[Darwin, PPC] Fix PR71496 by marking pic base loads as non-copyable.
[gcc.git] / gcc / ChangeLog
1 2016-12-11 Iain Sandoe <iain@codesourcery.com>
2
3 PR rtl-optimization/71496
4 * config/rs6000/darwin.md (load_macho_picbase_si): Mark as non-
5 copyable. (load_macho_picbase_di, reload_macho_picbase_si,
6 reload_macho_picbase_di): Likewise.
7
8 2012-12-11 John David Anglin <danglin@gcc.gnu.org>
9
10 * config/pa/pa.c (pa_callee_copies): New function.
11 * config/pa/pa.opt (mcaller-copies): New option.
12 * doc/invoke.texi (mcaller-copies): Document option.
13
14 2016-12-11 Uros Bizjak <ubizjak@gmail.com>
15
16 PR target/70799
17 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
18 <case ASHIFT, case LSHIFTRT>: Consider all constant shifts.
19 Add FIXME comment.
20 (dimode_scalar_chain::compute_convert_gain): Reduce gain for
21 constant shifts larger or equal than 32.
22
23 2016-12-11 Roger Pau Monné <roger.pau@citrix.com>
24
25 * config/i386/x86-64.h: Append --32 to the assembler options when
26 -m16 is used on non-glibc systems as well.
27
28 2016-12-10 Allan Sandfeld Jensen <allan.jensen@qt.io>
29
30 PR target/70118
31 * config/i386/mmintrin.h (__m64_u): New type
32 * config/i386/emmintrin.h (_mm_loadl_epi64, _mm_storel_epi64):
33 Make the allowed unaligned memory access explicit.
34
35 2016-12-10 Krister Walfridsson <krister.walfridsson@gmail.com>
36
37 * config.gcc (i386-*-netbsd*): Make i486 the default arch on NetBSD.
38 Generally use cpu generic.
39
40 2016-12-10 Jakub Jelinek <jakub@redhat.com>
41 Marc Glisse <marc.glisse@inria.fr>
42
43 PR tree-optimization/78720
44 * match.pd (A < 0 ? C : 0): Only optimize for signed A. If shift
45 is negative, sign extend to @1's type and than AND with C.
46
47 2016-12-10 Jakub Jelinek <jakub@redhat.com>
48
49 PR fortran/78758
50 * tree-object-size.c (compute_object_offset) <case ARRAY_REF>: Handle
51 non-zero low bound or non-standard element sizes.
52
53 PR sanitizer/78708
54 * lto-streamer-in.c (input_function): In addition to debug stmts
55 without -g, remove IFN_*SAN_* calls if corresponding flag_sanitize
56 bit is not enabled.
57
58 2016-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
59
60 * config/rs6000/rs6000-passes.def: New file.
61 * config/rs6000/rs6000-protos.h: Declare make_pass_analyze_swaps.
62 * config/rs6000/rs6000.c (rs6000_option_override): Remove
63 registration of machine-specific passes.
64 (pass_analyze_swaps::clone): New function.
65 * config/rs6000/t-rs6000: Define PASSES_EXTRA.
66
67 2016-12-09 Kugan Vivekanandarajah <kuganv@linaro.org>
68
69 PR ipa/78721
70 * ipa-cp.c (propagate_vr_accross_jump_function): Call
71 drop_tree_overflow after fold_convert.
72
73 2016-12-09 Jakub Jelinek <jakub@redhat.com>
74
75 PR target/72742
76 * config/rs6000/rs6000.md (*and<mode>3_imm_mask_dot,
77 *and<mode>3_imm_mask_dot2): Add rs6000_is_valid_and_mask to insn
78 condition.
79
80 2016-12-09 Segher Boessenkool <segher@kernel.crashing.org>
81
82 PR target/78683
83 * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Use
84 GET_MODE_BITSIZE. Return 2.
85 (CTZ_DEFINED_VALUE_AT_ZERO): Use GET_MODE_BITSIZE. Return 2. Handle
86 TARGET_POPCNTD the same as TARGET_CTZ.
87 * config/rs6000/rs6000.md (ctz<mode>2): Reimplement.
88 (ffs<mode>2): Reimplement.
89
90 2016-12-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
91
92 PR rtl-optimization/78255
93 * gcc/postreload.c (reload_cse_simplify): Do not CSE a function if
94 NO_FUNCTION_CSE is true.
95
96 2016-12-09 Cesar Philippidis <cesar@codesourcery.com>
97
98 PR ipa/78027
99 * ipa-icf.c (sem_function::parse): Don't process functions with
100 oacc decl attributes, as they may be OpenACC routines.
101
102 2016-12-09 David Malcolm <dmalcolm@redhat.com>
103
104 * rtl.h (get_mem_attrs): Add "const" qualifier to returned
105 pointer.
106
107 2016-12-09 Nathan Sidwell <nathan@acm.org>
108
109 PR C++/78550
110 * convert.c (convert_to_integer_1): Maybe fold conversions to
111 integral types with fewer bits than its mode.
112
113 2016-12-09 Martin Liska <mliska@suse.cz>
114
115 * tree-pretty-print.c (pretty_print_string): Escape non-printable
116 chars in strings.
117
118 2016-12-09 Jakub Jelinek <jakub@redhat.com>
119
120 PR tree-optimization/78726
121 * tree-ssa-reassoc.c (make_new_ssa_for_def): Add OPCODE and OP
122 argument. For lhs uses in debug stmts, don't replace lhs with
123 new_lhs, but with a debug temp set to new_lhs opcode op.
124 (make_new_ssa_for_all_defs): Add OPCODE argument, pass OPCODE and
125 OP down to make_new_ssa_for_def.
126 (zero_one_operation): Call make_new_ssa_for_all_defs even when
127 stmts_to_fix is empty, if *def has not changed yet. Pass
128 OPCODE to make_new_ssa_for_all_defs.
129
130 2016-12-08 Martin Sebor <msebor@redhat.com>
131
132 PR c/78284
133 * builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New
134 identifier tree nodes.
135 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list.
136 (ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same.
137 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same.
138 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same.
139 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same.
140 * builtins.c (expand_builtin_alloca): Call
141 maybe_warn_alloc_args_overflow.
142 * builtins.def (aligned_alloc, calloc, malloc, realloc):
143 Add attribute alloc_size.
144 (alloca): Add attribute alloc_size and returns_nonnull.
145 * calls.h (maybe_warn_alloc_args_overflow): Declare.
146 * calls.c (alloc_max_size, operand_signed_p): New functions.
147 (maybe_warn_alloc_args_overflow): Define.
148 (initialize_argument_information): Diagnose overflow in functions
149 declared with attaribute alloc_size.
150 * doc/invoke.texi (Warning Options): Document -Walloc-zero and
151 -Walloc-size-larger-than.
152
153 2016-12-08 Vladimir Makarov <vmakarov@redhat.com>
154
155 PR rtl-optimization/78671
156 * lra-assign.c (find_hard_regno_for_1): Check prohibited regs for an
157 allocno class.
158
159 2016-12-08 Uros Bizjak <ubizjak@gmail.com>
160
161 * config/i386/i386.h (HARD_REGNO_NREGS): Use GENERAL_REGNO_P.
162 (HARD_REGNO_NREGS_HAS_PADDING): Ditto. Simplify macro.
163
164 2015-12-08 Wilco Dijkstra <wdijkstr@arm.com>
165
166 PR target/78733
167 * config/aarch64/aarch64.c (aarch64_classify_address):
168 Set load_store_pair_p for TImode and TFmode.
169
170 2016-12-08 David Malcolm <dmalcolm@redhat.com>
171
172 * emit-rtl.c (gen_reg_rtx): Move regno_pointer_align and
173 regno_reg_rtx resizing logic to...
174 (emit_status::ensure_regno_capacity): ...this new method,
175 and ensure that the buffers are large enough.
176 (init_emit): Allocate regno_reg_rtx using ggc_cleared_vec_alloc
177 rather than ggc_vec_alloc.
178 * function.h (emit_status::ensure_regno_capacity): New method.
179
180 2016-12-08 Dmitry Vyukov <dvyukov@google.com>
181
182 * opts.c (finish_options): Enable -fsanitize-address-use-after-scope
183 only if -fsanitize=address is enabled (not -fsanitize=kernel-address).
184 * doc/invoke.texi (-fsanitize=kernel-address):
185 Don't say that it enables -fsanitize-address-use-after-scope.
186
187 2016-12-08 Bin Cheng <bin.cheng@arm.com>
188
189 PR middle-end/78684
190 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Check
191 sign bit for index step of data reference.
192
193 2016-12-08 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
194
195 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
196 Handle SYMBOL_SMALL_TLSGD for ILP32.
197 * config/aarch64/aarch64.md : tlsgd_small modified into
198 tlsgd_small_<mode> to support SImode and DImode.
199 *tlsgd_small modified into *tlsgd_small_<mode> to support SImode and
200 DImode.
201
202 2016-12-08 Andrew Pinski <apinski@cavium.com>
203
204 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
205 Access the lower part of RTX appropriately.
206
207 2016-12-07 David Malcolm <dmalcolm@redhat.com>
208
209 * genpreds.c (write_tm_constrs_h): Update for renaming of
210 rtx_reader_ptr to md_reader_ptr.
211 (write_tm_preds_h): Likewise.
212 (write_insn_preds_c): Likewise.
213 * read-md.c (rtx_reader_ptr): Rename to...
214 (md_reader_ptr): ...this, and convert from an
215 rtx_reader * to a md_reader *.
216 (rtx_reader::set_md_ptr_loc): Rename to...
217 (md_reader::set_md_ptr_loc): ...this.
218 (rtx_reader::get_md_ptr_loc): Rename to...
219 (md_reader::get_md_ptr_loc): ...this.
220 (rtx_reader::copy_md_ptr_loc): Rename to...
221 (md_reader::copy_md_ptr_loc): ...this.
222 (rtx_reader::fprint_md_ptr_loc): Rename to...
223 (md_reader::fprint_md_ptr_loc): ...this.
224 (rtx_reader::print_md_ptr_loc): Rename to...
225 (md_reader::print_md_ptr_loc): ...this.
226 (rtx_reader::join_c_conditions): Rename to...
227 (md_reader::join_c_conditions): ...this.
228 (rtx_reader::fprint_c_condition): ...this.
229 (rtx_reader::print_c_condition): Rename to...
230 (md_reader::print_c_condition): ...this.
231 (fatal_with_file_and_line): Update for renaming of
232 rtx_reader_ptr to md_reader_ptr.
233 (rtx_reader::require_char): Rename to...
234 (md_reader::require_char): ...this.
235 (rtx_reader::require_char_ws): Rename to...
236 (md_reader::require_char_ws): ...this.
237 (rtx_reader::require_word_ws): Rename to...
238 (md_reader::require_word_ws): ...this.
239 (rtx_reader::read_char): Rename to...
240 (md_reader::read_char): ...this.
241 (rtx_reader::unread_char): Rename to...
242 (md_reader::unread_char): ...this.
243 (rtx_reader::peek_char): Rename to...
244 (md_reader::peek_char): ...this.
245 (rtx_reader::read_name): Rename to...
246 (md_reader::read_name): ...this.
247 (rtx_reader::read_escape): Rename to...
248 (md_reader::read_escape): ...this.
249 (rtx_reader::read_quoted_string): Rename to...
250 (md_reader::read_quoted_string): ...this.
251 (rtx_reader::read_braced_string): Rename to...
252 (md_reader::read_braced_string): ...this.
253 (rtx_reader::read_string): Rename to...
254 (md_reader::read_string): ...this.
255 (rtx_reader::read_skip_construct): Rename to...
256 (md_reader::read_skip_construct): ...this.
257 (rtx_reader::handle_constants): Rename to...
258 (md_reader::handle_constants): ...this.
259 (rtx_reader::traverse_md_constants): Rename to...
260 (md_reader::traverse_md_constants): ...this.
261 (rtx_reader::handle_enum): Rename to...
262 (md_reader::handle_enum): ...this.
263 (rtx_reader::lookup_enum_type): Rename to...
264 (md_reader::lookup_enum_type): ...this.
265 (rtx_reader::traverse_enum_types): Rename to...
266 (md_reader::traverse_enum_types): ...this.
267 (rtx_reader::rtx_reader): Rename to...
268 (md_reader::md_reader): ...this, and update for renaming of
269 rtx_reader_ptr to md_reader_ptr.
270 (rtx_reader::~rtx_reader): Rename to...
271 (md_reader::~md_reader): ...this, and update for renaming of
272 rtx_reader_ptr to md_reader_ptr.
273 (rtx_reader::handle_include): Rename to...
274 (md_reader::handle_include): ...this.
275 (rtx_reader::handle_file): Rename to...
276 (md_reader::handle_file): ...this.
277 (rtx_reader::handle_toplevel_file): Rename to...
278 (md_reader::handle_toplevel_file): ...this.
279 (rtx_reader::get_current_location): Rename to...
280 (md_reader::get_current_location): ...this.
281 (rtx_reader::add_include_path): Rename to...
282 (md_reader::add_include_path): ...this.
283 (rtx_reader::read_md_files): Rename to...
284 (md_reader::read_md_files): ...this.
285 * read-md.h (class rtx_reader): Split into...
286 (class md_reader): ...new class.
287 (rtx_reader_ptr): Rename to...
288 (md_reader_ptr): ...this, and convert to a md_reader *.
289 (class noop_reader): Update base class to be md_reader.
290 (class rtx_reader): Reintroduce as a subclass of md_reader.
291 (rtx_reader_ptr): Reintroduce as a rtx_reader *.
292 (read_char): Update for renaming of rtx_reader_ptr to
293 md_reader_ptr.
294 (unread_char): Likewise.
295 * read-rtl.c (rtx_reader_ptr): New global.
296 (rtx_reader::apply_iterator_to_string): Rename to...
297 (md_reader::apply_iterator_to_string): ...this.
298 (rtx_reader::copy_rtx_for_iterators): Rename to...
299 (md_reader::copy_rtx_for_iterators): ...this.
300 (rtx_reader::read_conditions): Rename to...
301 (md_reader::read_conditions): ...this.
302 (rtx_reader::record_potential_iterator_use): Rename to...
303 (md_reader::record_potential_iterator_use): ...this.
304 (rtx_reader::read_mapping): Rename to...
305 (md_reader::read_mapping): ...this.
306 (rtx_reader::read_rtx): Use rtx_reader_ptr when calling
307 read_rtx_code.
308 (rtx_reader::read_rtx_operand): Use get_string_obstack rather
309 than directly accessing m_string_obstack.
310 (rtx_reader::rtx_reader): New ctor.
311 (rtx_reader::~rtx_reader): New dtor.
312
313 2016-12-07 Martin Sebor <msebor@redhat.com>
314
315 PR middle-end/77784
316 PR middle-end/78149
317 PR middle-end/78138
318
319 * builtins.c (expand_builtin_strcat, expand_builtin_strncat): New
320 functions.
321 (compute_dest_size, get_size_range, check_sizes, check_strncat_sizes)
322 (check_memop_sizes): Same.
323 (expand_builtin_memcpy): Call check memop_sizes.
324 (expand_builtin_mempcpy): Same.
325 (expand_builtin_memset): Same,
326 (expand_builtin_bzero): Same.
327 (expand_builtin_memory_chk): Call check_sizes.
328 (expand_builtin_strcpy): Same.
329 (expand_builtin_strncpy): Same.
330 (maybe_emit_sprintf_chk_warning): Same.
331 (expand_builtin): Handle strcat and strncat.
332 (fini_object_sizes): Reset pointers.
333 (compute_object_size): New function.
334 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
335 Avoid issuing warnings also issued during built-in expansion.
336 * doc/invoke.texi (Warning Options): Document -Wstringop-overflow.
337
338 2016-12-07 Michael Meissner <meissner@linux.vnet.ibm.com>
339
340 PR target/72717
341 * config/rs6000/rs6000.c (rs6000_expand_vector_init): If the
342 V2DImode elements are SUBREG's convert the result into DImode
343 rather than failing in emit_move_insn.
344
345 2016-12-07 Jakub Jelinek <jakub@redhat.com>
346
347 * builtins.c (fold_builtin_strstr): Removed.
348 (fold_builtin_2): Don't call fold_builtin_strstr.
349 * gimple-fold.c (gimple_fold_builtin_strchr): Check is_strrchr
350 earlier in the strrchr (x, 0) -> strchr (x, 0) optimization.
351 (gimple_fold_builtin_strstr): New function.
352 (gimple_fold_builtin): Call it.
353 * fold-const-call.c (fold_const_call): Handle CFN_BUILT_IN_STRSTR.
354
355 PR c++/78692
356 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Set lhs
357 var to lhs of new_stmt right before noreturn handling rather than to
358 lhs of e->call_stmt early.
359
360 2016-12-07 David Malcolm <dmalcolm@redhat.com>
361
362 * read-md.c (rtx_reader::require_char): New method.
363 (require_char_ws): Convert from function to...
364 (rtx_reader::require_char_ws): ...method.
365 (rtx_reader::require_word_ws): New method.
366 * read-md.h (rtx_reader::require_char): New method decl.
367 (require_char_ws): Remove global decl in favor of...
368 (rtx_reader::require_char_ws): ...new method decl.
369 (rtx_reader::require_word_ws): New method decl.
370 (rtx_reader::peek_char): New method decl.
371
372 2016-12-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
373
374 PR rtl-optimization/78617
375 * lra-remat.c (do_remat): Initialize live_hard_regs from live in
376 registers, also setting hard registers mapped to pseudo registers.
377
378 2016-12-07 David Malcolm <dmalcolm@redhat.com>
379
380 * cfgexpand.c (pass_expand::execute): Move stack initializations
381 to rtl_data::init_stack_alignment and call it.
382 * emit-rtl.c (rtl_data::init_stack_alignment): New method.
383 * emit-rtl.h (rtl_data::init_stack_alignment): New method.
384
385 2016-12-07 Wilco Dijkstra <wdijkstr@arm.com>
386
387 * gcc/ira.c (ira_setup_eliminable_regset): Initialize crtl->is_leaf.
388 (ira): Move initialization of crtl->is_leaf earlier.
389
390 2016-12-07 Wilco Dijkstra <wdijkstr@arm.com>
391
392 * config/aarch64/aarch64.md (movti_aarch64): Change Ump to m.
393 (movtf_aarch64): Likewise.
394 * config/aarch64/aarch64.c (aarch64_classify_address):
395 Use correct intersection of offsets.
396 (aarch64_legitimize_address_displacement): Use 9-bit signed offsets.
397 (aarch64_legitimize_address): Use 9-bit signed offsets for TI/TF mode.
398 Use 7-bit signed scaled mode for modes > 16 bytes.
399
400 2016-12-07 James Greenhalgh <james.greenhalgh@arm.com>
401
402 PR rtl-optimization/78561
403 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Use
404 constant_pool_empty_p in place of get_pool_size_upper_bound.
405 (rs6000_stack_info): Likewise.
406 (rs6000_emit_prologue): Likewise.
407 (rs6000_elf_declare_function_name): Likewise.
408 (rs6000_set_up_by_prologue): Likewise.
409 (rs6000_can_eliminate): Likewise.
410 * output.h (get_pool_size_upper_bound): Delete.
411 (constant_pool_empty_p): New.
412 * varasm.c (get_pool_size_upper_bound): Delete
413 (constant_pool_empty_p): New.
414
415 2016-12-07 Bin Cheng <bin.cheng@arm.com>
416
417 PR tree-optimization/78691
418 * match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
419 Require integral type for the outer expression.
420
421 2016-12-07 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
422
423 * config/aarch64/aarch64.c
424 (aarch64_builtin_support_vector_misalignment): New.
425 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Define.
426
427 2016-12-06 David Malcolm <dmalcolm@redhat.com>
428
429 PR bootstrap/78705
430 * config/i386/i386.c (ix86_test_dumping_memory_blockage):
431 Conditionalize the string comparison on Pmode == DImode.
432
433 2016-12-06 Tom de Vries <tom@codesourcery.com>
434
435 PR tree-optimization/67955
436 * tree-ssa-alias.c (same_addr_size_stores_p): New function.
437 (stmt_kills_ref_p): Use it.
438
439 2016-12-06 Eric Botcazou <ebotcazou@adacore.com>
440
441 PR middle-end/78700
442 * calls.c (expand_call): Move back call to prepare_call_address.
443
444 2016-12-06 Michael Meissner <meissner@linux.vnet.ibm.com>
445
446 PR target/78658
447 * config/rs6000/rs6000.md (zero_extendqi<mode>2): Use ^ instead of
448 ?* constraints for the ISA 3.0 patterns, so the register allocator
449 is more likely to allocate QImode/HImode to vector registers for
450 conversion to floating point unless a reload is needed.
451 (zero_extendhi<mode>2): Likewise.
452 (float<QHI:mode><FP_ISA3:mode>2_internal): Properly deal with the
453 first alternative which is converting QImode/HImode to floating
454 point and the QImode/HImode value is in a vector register, and
455 does not allocate the second pseudo register. Remove zero
456 extending into traditional floating point registers, since the
457 instruction used only works on traditional altivec registers.
458 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
459
460 2016-12-06 David Malcolm <dmalcolm@redhat.com>
461
462 * config/i386/i386.c: Include print-rtl.h.
463 (selftest::ix86_test_dumping_memory_blockage): New function.
464 (selftest::ix86_run_selftests): Call it.
465 * print-rtl-function.c (print_rtx_function): Create an
466 rtx_reuse_manager and use it.
467 * print-rtl.c: Include "rtl-iter.h".
468 (rtx_writer::rtx_writer): Add reuse_manager param.
469 (rtx_reuse_manager::rtx_reuse_manager): New ctor.
470 (uses_rtx_reuse_p): New function.
471 (rtx_reuse_manager::preprocess): New function.
472 (rtx_reuse_manager::has_reuse_id): New function.
473 (rtx_reuse_manager::seen_def_p): New function.
474 (rtx_reuse_manager::set_seen_def): New function.
475 (rtx_writer::print_rtx): If "in_rtx" has a reuse ID, print it as a
476 prefix the first time in_rtx is seen, and print reuse_rtx
477 subsequently.
478 (print_inline_rtx): Supply NULL for new reuse_manager param.
479 (debug_rtx): Likewise.
480 (print_rtl): Likewise.
481 (print_rtl_single): Likewise.
482 (rtx_writer::print_rtl_single_with_indent): Likewise.
483 * print-rtl.h: Include bitmap.h when building for host.
484 (rtx_writer::rtx_writer): Add reuse_manager param.
485 (rtx_writer::m_rtx_reuse_manager): New field.
486 (class rtx_reuse_manager): New class.
487 * rtl-tests.c (selftest::assert_rtl_dump_eq): Add reuse_manager
488 param and use it when constructing rtx_writer.
489 (selftest::test_dumping_rtx_reuse): New function.
490 (selftest::rtl_tests_c_tests): Call it.
491 * selftest-rtl.h (class rtx_reuse_manager): New forward decl.
492 (selftest::assert_rtl_dump_eq): Add reuse_manager param.
493 (ASSERT_RTL_DUMP_EQ): Supply NULL for reuse_manager param.
494 (ASSERT_RTL_DUMP_EQ_WITH_REUSE): New macro.
495
496 2016-12-06 Vladimir Makarov <vmakarov@redhat.com>
497
498 PR target/77761
499 * lra-lives.c (process_bb_lives): Update biggest mode for
500 implicitly used hard reg.
501
502 2016-12-06 Uros Bizjak <ubizjak@gmail.com>
503
504 * config/i386/predicates.md (general_gr_operand): New predicate.
505 * config/i386/i386.md (TImode and DImode push_operand splitter):
506 Use general_gr_operand. Macroize using DWI mode macro.
507 (TImode and DImode nonimmediate_operand splitter): Use
508 nonimmediate_gr_operand and general_gr_operand. Macroize using
509 DWI mode macro.
510 (TF/XF/DFmode push_operand splitter): Use general_gr_operand.
511 (TFmode nonimmediate_operand splitter): Use nonimmediate_gr_operand
512 and general_gr_operand.
513 (XFmode nonimmediate_operand splitter): Ditto.
514 (DFmode nonimmediate_operand splitter): Ditto.
515 * config/i386/mmx.md (MMXMODE nonimmediate_operand splitter): Ditto.
516
517 2016-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
518
519 * config/arm/arm-cores.def (cortex-m23, cortex-m33): Move into
520 alphabetical order with respect to other ARMv8 processors.
521 * config/arm/arm-tables.opt: Regenerate.
522 * config/arm/arm-tune.md: Likewise.
523
524 2016-12-06 Robert Suchanek <robert.suchanek@imgtec.com>
525
526 * config/mips/mips.c (mips_expand_builtin_insn): Check input
527 ranges of literal integer arguments.
528
529 2016-12-06 Aldy Hernandez <aldyh@redhat.com>
530
531 PR middle-end/78548
532 * tree-ssa-uninit.c (simplify_preds_4): Call release() instead of
533 destroy_predicate_vecs.
534 (uninit_uses_cannot_happen): Make uninit_preds a scalar.
535
536 2016-12-06 Aldy Hernandez <aldyh@redhat.com>
537
538 PR middle-end/78566
539 * tree-ssa-uninit.c (can_one_predicate_be_invalidated_p): Change
540 argument type to a pred_chain.
541 (can_chain_union_be_invalidated_p): Use pred_chain instead of a
542 worklist.
543 (flatten_out_predicate_chains): Remove.
544 (uninit_uses_cannot_happen): Rename from
545 uninit_ops_invalidate_phi_use.
546 Change logic so that we are checking that the PHI use will
547 invalidate _ALL_ possibly uninitialized operands.
548 (is_use_properly_guarded): Rename call to
549 uninit_ops_invalidate_phi_use into uninit_uses_cannot_happen.
550
551 2016-12-06 Tamar Christina <tamar.christina@arm.com>
552
553 * gcc/config/aarch64/arm_neon.h
554 (vreinterpretq_p8_p128, vreinterpretq_p16_p128): Added.
555 (vreinterpret_p64_p16, vreinterpretq_p64_p128): Likewise.
556 (vreinterpretq_p64_p16, vreinterpretq_p128_p8): Likewise.
557 (vreinterpretq_p128_p16, vreinterpretq_p128_f16): Likewise.
558 (vreinterpretq_p128_f32, vreinterpretq_p128_p64): Likewise.
559 (vreinterpretq_p128_s64, vreinterpretq_p128_u64): Likewise.
560 (vreinterpretq_p128_s8, vreinterpretq_p128_s16): Likewise.
561 (vreinterpretq_p128_s32, vreinterpretq_p128_u8): Likewise.
562 (vreinterpretq_p128_u16, vreinterpretq_p128_u32): Likewise.
563 (vreinterpretq_f16_p128, vreinterpretq_f32_p128): Likewise.
564 (vreinterpretq_s64_p128, vreinterpretq_u64_p128): Likewise.
565 (vreinterpretq_s8_p128, vreinterpretq_s16_p128): Likewise.
566 (vreinterpretq_s32_p128, vreinterpretq_u8_p128): Likewise.
567 (vreinterpretq_u16_p128, vreinterpretq_u32_p128): Likewise.
568
569 2016-12-06 Jakub Jelinek <jakub@redhat.com>
570
571 PR c++/71537
572 * fold-const.c (fold_comparison): Assume CONSTANT_CLASS_P (base0)
573 plus offset is non-zero. For maybe_nonzero_address decl base0,
574 require indirect_base0.
575
576 PR c++/71537
577 * fold-const-call.c (fold_const_call_1): Remove memchr handling here.
578 (fold_const_call) <case CFN_BUILT_IN_STRNCMP,
579 case CFN_BUILT_IN_STRNCASECMP>: Formatting improvements.
580 (fold_const_call) <case CFN_BUILT_IN_MEMCMP>: Likewise. If s2 is 0
581 and arguments have no side-effects, return 0.
582 (fold_const_call): Handle CFN_BUILT_IN_MEMCHR.
583
584 PR c++/71537
585 * fold-const-call.c (fold_const_call): Handle
586 CFN_BUILT_IN_{INDEX,STRCHR,RINDEX,STRRCHR}.
587
588 PR tree-optimization/78675
589 * tree-vect-loop.c (vectorizable_live_operation): For
590 VECTOR_BOOLEAN_TYPE_P vectype use integral type with bitsize precision
591 instead of TREE_TYPE (vectype) for the BIT_FIELD_REF.
592
593 2016-12-06 Eric Botcazou <ebotcazou@adacore.com>
594
595 PR middle-end/78642
596 * emit-rtl.c (verify_rtx_sharing) <CLOBBER>: Relax condition.
597 (copy_rtx_if_shared_1) <CLOBBER>: Likewise.
598 (copy_insn_1) <CLOBBER>: Likewise.
599
600 2016-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
601
602 PR target/78688
603 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Use IN_RANGE
604 instead of ((N) >= (X) && (N) <= (Y-X)) to silence warnings about
605 comparing signed to unsigned values.
606 (FUNCTION_ARG_REGNO_P): Likewise.
607
608 2016-12-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
609 Stefan Freudenberger <stefan@reservoir.com>
610
611 PR tree-optimization/78646
612 * gimple-ssa-strength-reduction.c (replace_ref): The pointer
613 addition used for the memory base expression should have the type
614 of the candidate.
615
616 2016-12-05 Waldemar Brodkorb <wbx@openadk.org>
617
618 PR target/71721
619 * config.gcc (*-*-uclinux*): Enable posix threads.
620
621 2016-12-05 Andrew Senkevich <andrew.senkevich@intel.com>
622
623 * config/i386/avx512bwintrin.h: Add new k-mask intrinsics.
624 * config/i386/avx512dqintrin.h: Ditto.
625 * config/i386/avx512fintrin.h: Ditto.
626 * config/i386/i386-builtin-types.def (UCHAR_FTYPE_UQI_UQI_PUCHAR,
627 UCHAR_FTYPE_UHI_UHI_PUCHAR, UCHAR_FTYPE_USI_USI_PUCHAR,
628 UCHAR_FTYPE_UDI_UDI_PUCHAR, UCHAR_FTYPE_UQI_UQI, UCHAR_FTYPE_UHI_UHI,
629 UCHAR_FTYPE_USI_USI, UCHAR_FTYPE_UDI_UDI, UQI_FTYPE_UQI_INT,
630 UHI_FTYPE_UHI_INT, USI_FTYPE_USI_INT, UDI_FTYPE_UDI_INT,
631 UQI_FTYPE_UQI, USI_FTYPE_USI, UDI_FTYPE_UDI, UQI_FTYPE_UQI_UQI): New
632 function types.
633 * config/i386/i386-builtin.def (__builtin_ia32_knotqi,
634 __builtin_ia32_knotsi, __builtin_ia32_knotdi,
635 __builtin_ia32_korqi, __builtin_ia32_korsi, __builtin_ia32_kordi,
636 __builtin_ia32_kxnorqi, __builtin_ia32_kxnorsi,
637 __builtin_ia32_kxnordi, __builtin_ia32_kxorqi, __builtin_ia32_kxorsi,
638 __builtin_ia32_kxordi, __builtin_ia32_kandqi,
639 __builtin_ia32_kandsi, __builtin_ia32_kanddi, __builtin_ia32_kandnqi,
640 __builtin_ia32_kandnsi, __builtin_ia32_kandndi): New.
641 * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
642
643 2016-12-05 Segher Boessenkool <segher@kernel.crashing.org>
644
645 * combine.c: Revert r243162.
646
647 2016-12-05 Paolo Bonzini <bonzini@gnu.org>
648
649 * match.pd: Simplify X ? C : 0 where C is a power of 2 and
650 X tests a single bit.
651
652 2016-12-05 Nathan Sidwell <nathan@acm.org>
653
654 * diagnostic.c (diagnostic_check_max_errors): New, broken out of ...
655 (diagnostic_action_after_output): ... here.
656 (diagnostic_report_diagnostic): Call it for non-notes.
657 * diagnostic.h (struct diagnostic_context): Make max_errors signed int.
658 (diagnostic_check_max_errors): Declare.
659
660 2016-12-05 Cupertino Miranda <cmiranda@synopsys.com>
661
662 * config/arc/arc.h (STARTFILE_SPEC): Use default linux specs.
663 (ENDFILE_SPEC): Likewise.
664
665 2016-12-05 Claudiu Zissulescu <claziss@synopsys.com>
666
667 * config/arc/arc-protos.h (insn_is_tls_gd_dispatch): Remove.
668 * config/arc/arc.c (arc_unspec_offset): New function.
669 (arc_finalize_pic): Change.
670 (arc_emit_call_tls_get_addr): Likewise.
671 (arc_legitimize_tls_address): Likewise.
672 (arc_legitimize_pic_address): Likewise.
673 (insn_is_tls_gd_dispatch): Remove.
674 * config/arc/arc.h (INSN_REFERENCES_ARE_DELAYED): Change.
675 * config/arc/arc.md (ls_gd_load): Remove unused pattern.
676 (tls_gd_dispatch): Likewise.
677
678 2016-12-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
679
680 * config/arm/arm.c (TARGET_ASM_INIT_SECTIONS): Fix wrong undef
681 location.
682
683 2016-12-05 Eric Botcazou <ebotcazou@adacore.com>
684
685 * config/sparc/sparc-protos.h (sparc_splitdi_legitimate): Rename to...
686 (sparc_split_reg_mem_legitimate): ...this.
687 (sparc_split_reg_mem): Declare.
688 (sparc_split_mem_reg): Likewise.
689 (sparc_split_regreg_legitimate): Rename to...
690 (sparc_split_reg_reg_legitimate): ...this.
691 * config/sparc/sparc.c (sparc_splitdi_legitimate): Rename to...
692 (sparc_split_reg_mem_legitimate): ...this.
693 (sparc_split_reg_mem): New function.
694 (sparc_split_mem_reg): Likewise.
695 (sparc_split_regreg_legitimate): Rename to...
696 (sparc_split_reg_reg_legitimate): ...this.
697 (sparc_split_reg_reg): New function.
698 * config/sparc/sparc.md (lra): Remove "none" value.
699 (enabled): Adjust to above change.
700 (*movdi_insn_sp32): Remove new (r,T) alternative and reorder others.
701 (DImode splitters): Adjust to above renamings and use new functions.
702 (*movdf_insn_sp32): Remove new (r,T) alternative and reorder others.
703 (DFmode splitters): Adjust to above renamings and use new functions.
704 (*mov<VM64:mode>_insn_sp64): Replace C with Z constraint and use W
705 constraint in conjunction with e.
706 (*mov<VM64:mode>_insn_sp32): Remove new (r,T) alternative, add (o,Y)
707 alternative and reorder others.
708 (VM64:mode splitters): Adjust to above renamings and use new functions.
709
710 2016-12-04 Martin Sebor <msebor@redhat.com>
711
712 PR c/78668
713 * builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New
714 identifier tree nodes.
715 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list.
716 (ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same.
717 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same.
718 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same.
719 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same.
720 * builtins.def (aligned_alloc, calloc, malloc, realloc):
721 Add attribute alloc_size.
722 (alloca): Add attribute alloc_size and returns_nonnull.
723
724 2016-12-04 Uros Bizjak <ubizjak@gmail.com>
725
726 PR target/70322
727 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NEG.
728 (dimode_scalar_chain::compute_convert_gain): Ditto.
729 (dimode_scalar_chain::convert_insn): Ditto.
730
731 2016-12-03 Eric Botcazou <ebotcazou@adacore.com>
732
733 * lra-constraints.c (emit_spill_move): Use gen_lowpart_SUBREG in all
734 cases to build a lowpart SUBREG.
735
736 2016-12-03 Eric Botcazou <ebotcazou@adacore.com>
737 David S. Miller <davem@davemloft.net>
738
739 * config/sparc/constraints.md (U): Adjust comment.
740 * config/sparc/sparc.md (lra): New attribute.
741 (enabled): For base instructions, if the lra attribute is set,
742 return 1 if it is in keeping with TARGET_LRA.
743 (*movdi_insn_sp32): Add lra attribute for alternatives mentioning U
744 constraint and duplicate them with U replaced by r.
745 (*movdf_insn_sp32): Likewise.
746 (*mov<VM64:mode>_insn_sp32): Likewise.
747 (*movtf_insn_sp32): Remove alternatives mentioning U constraint.
748
749 2016-12-02 Jeff Law <law@redhat.com>
750
751 * config/arm/arm.c (arm_handle_cmse_nonsecure_call): Remove unused
752 variable main_variant.
753
754 2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com>
755
756 * config.gcc (powerpc*-*-linux*): Set gnu-indirect-function by
757 default on PowerPC linux systems.
758
759 2016-12-02 Segher Boessenkool <segher@kernel.crashing.org>
760
761 PR rtl-optimization/78638
762 * simplify-rtx.c (simplify_truncation): M2 is not mode, it is
763 GET_MODE (op). Fix this.
764
765 2016-12-02 David Malcolm <dmalcolm@redhat.com>
766
767 PR bootstrap/78616
768 * selftest.c (selftest::assert_strndup_eq): Rename to...
769 (selftest::assert_xstrndup_eq): ...this, and remove call to
770 strndup.
771 (selftest::test_strndup): Rename to...
772 (selftest::test_xstrndup): ...this, updating for above renaming.
773 (selftest::test_libiberty): Update for renaming.
774
775 2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com>
776
777 PR target/78639
778 * config/rs6000/rs6000.md (movdi_internal64): Fix typo in
779 subversion id 242679 that causes the wrong store instruction to be
780 generated if a DImode is in an Altivec register using REG+REG
781 addressing.
782
783 2016-12-02 Uros Bizjak <ubizjak@gmail.com>
784
785 PR target/70322
786 * config/i386/i386.md (*andndi3_doubleword): Add non-BMI alternative
787 and corresponding post-reload splitter.
788
789 2016-12-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
790
791 * config/aarch64/aarch64.h (machine_function): Add
792 reg_is_wrapped_separately field.
793 * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Define new constant.
794 * config/aarch64/aarch64.c (emit_set_insn): Change return type to
795 rtx_insn *.
796 (aarch64_save_callee_saves): Don't save registers that are wrapped
797 separately.
798 (aarch64_restore_callee_saves): Don't restore registers that are
799 wrapped separately.
800 (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p,
801 aarch64_offset_7bit_signed_scaled_p): Move earlier in the file.
802 (aarch64_get_separate_components): New function.
803 (aarch64_get_next_set_bit): Likewise.
804 (aarch64_components_for_bb): Likewise.
805 (aarch64_disqualify_components): Likewise.
806 (aarch64_emit_prologue_components): Likewise.
807 (aarch64_emit_epilogue_components): Likewise.
808 (aarch64_set_handled_components): Likewise.
809 (aarch64_process_components): Likewise.
810 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
811 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
812 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
813 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
814 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
815 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
816
817 2016-12-02 Martin Jambor <mjambor@suse.cz>
818
819 * passes.def: Move pass_rebuild_cgraph_edges to the end of
820 pass_build_ssa_passes.
821
822 2016-12-02 Uros Bizjak <ubizjak@gmail.com>
823
824 * config/alpha/alpha.md (exception_receiver): Copy
825 alpha_gp_ave_rtx return value.
826
827 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
828
829 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
830 for several include directories that may be relative to sysroot.
831 * config/i386/x-mingw32 (gplus_includedir): Define.
832 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
833 (native_system_includedir): Likewise.
834 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
835 override if TARGET_SYSTEM_ROOT is defined.
836 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
837
838 2016-12-02 Jakub Jelinek <jakub@redhat.com>
839
840 PR target/70322
841 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NOT.
842 (dimode_scalar_chain::compute_convert_gain): Likewise.
843 (dimode_scalar_chain::convert_insn): Likewise.
844 * config/i386/i386.md (*one_cmpldi2_doubleword): New
845 define_insn_and_split.
846 (one_cmpl<mode>2): Use SWIM1248x iterator instead of SWIM.
847
848 PR target/78614
849 * rtl.c (copy_rtx): Don't clear used flag here.
850 (shallow_copy_rtx_stat): Clear used flag here unless code the rtx
851 is shareable.
852 * simplify-rtx.c (simplify_replace_fn_rtx): When copying rtx with
853 'E' in format, copy all vectors.
854 * emit-rtl.c (copy_insn_1): Don't clear used flag here.
855 * valtrack.c (cleanup_auto_inc_dec): Likewise.
856 * config/rs6000/rs6000.c (rs6000_frame_related): Likewise.
857
858 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
859 Thomas Preud'homme <thomas.preudhomme@arm.com>
860
861 * config/arm/arm-builtins.c (arm_builtins): Define
862 ARM_BUILTIN_CMSE_NONSECURE_CALLER.
863 (bdesc_2arg): Add line for cmse_nonsecure_caller.
864 (arm_init_builtins): Handle cmse_nonsecure_caller.
865 (arm_expand_builtin): Likewise.
866 * config/arm/arm_cmse.h (cmse_nonsecure_caller): New.
867
868 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
869 Thomas Preud'homme <thomas.preudhomme@arm.com>
870
871 * config/arm/arm.c (detect_cmse_nonsecure_call): New.
872 (cmse_nonsecure_call_clear_caller_saved): New.
873 (arm_reorg): Use cmse_nonsecure_call_clear_caller_saved.
874 (arm_function_ok_for_sibcall): Disable sibcalls for
875 cmse_nonsecure_call.
876 * config/arm/arm-protos.h (detect_cmse_nonsecure_call): New.
877 * config/arm/arm.md (call): Handle cmse_nonsecure_entry.
878 (call_value): Likewise.
879 (nonsecure_call_internal): New.
880 (nonsecure_call_value_internal): New.
881 * config/arm/thumb1.md (*nonsecure_call_reg_thumb1_v5): New.
882 (*nonsecure_call_value_reg_thumb1_v5): New.
883 * config/arm/thumb2.md (*nonsecure_call_reg_thumb2): New.
884 (*nonsecure_call_value_reg_thumb2): New.
885 * config/arm/unspecs.md (UNSPEC_NONSECURE_MEM): New.
886
887 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
888 Thomas Preud'homme <thomas.preudhomme@arm.com>
889
890 * config/arm/arm.c (gimplify.h): New include.
891 (arm_handle_cmse_nonsecure_call): New.
892 (arm_attribute_table): Added cmse_nonsecure_call.
893 (arm_comp_type_attributes): Deny compatibility of function types
894 with without the cmse_nonsecure_call attribute.
895 * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute.
896
897 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
898 Thomas Preud'homme <thomas.preudhomme@arm.com>
899
900 * config/arm/arm.c (output_return_instruction): Clear
901 registers.
902 (thumb2_expand_return): Likewise.
903 (thumb1_expand_epilogue): Likewise.
904 (thumb_exit): Likewise.
905 (arm_expand_epilogue): Likewise.
906 (cmse_nonsecure_entry_clear_before_return): New.
907 (comp_not_to_clear_mask_str_un): New.
908 (compute_not_to_clear_mask): New.
909 * config/arm/thumb1.md (*epilogue_insns): Change length attribute.
910 * config/arm/thumb2.md (*thumb2_return): Disable for
911 cmse_nonsecure_entry functions.
912 (*thumb2_cmse_entry_return): Duplicate thumb2_return pattern for
913 cmse_nonsecure_entry functions.
914
915 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
916 Thomas Preud'homme <thomas.preudhomme@arm.com>
917
918 * config/arm/arm.c (use_return_insn): Change to return with bxns
919 when cmse_nonsecure_entry.
920 (output_return_instruction): Likewise.
921 (arm_output_function_prologue): Likewise.
922 (thumb_pop): Likewise.
923 (thumb_exit): Likewise.
924 (thumb2_expand_return): Assert that entry functions always have simple
925 returns.
926 (arm_expand_epilogue): Handle entry functions.
927 (arm_function_ok_for_sibcall): Disable sibcall for entry functions.
928 (arm_asm_declare_function_name): New.
929 * config/arm/arm-protos.h (arm_asm_declare_function_name): New.
930 * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME): Redefine to
931 use arm_asm_declare_function_name.
932
933 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
934 Thomas Preud'homme <thomas.preudhomme@arm.com>
935
936 * config/arm/arm.c (arm_handle_cmse_nonsecure_entry): New.
937 (arm_attribute_table): Added cmse_nonsecure_entry
938 (arm_compute_func_type): Handle cmse_nonsecure_entry.
939 (cmse_func_args_or_return_in_stack): New.
940 (arm_handle_cmse_nonsecure_entry): New.
941 * config/arm/arm.h (ARM_FT_CMSE_ENTRY): New macro define.
942 (IS_CMSE_ENTRY): Likewise.
943 * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute.
944
945 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
946 Thomas Preud'homme <thomas.preudhomme@arm.com>
947
948 * config.gcc (extra_headers): Added arm_cmse.h.
949 * config/arm/arm-arches.def (ARM_ARCH):
950 (armv8-m): Add FL2_CMSE.
951 (armv8-m.main): Likewise.
952 (armv8-m.main+dsp): Likewise.
953 * config/arm/arm-c.c
954 (arm_cpu_builtins): Added __ARM_FEATURE_CMSE macro.
955 * config/arm/arm-flags.h: Define FL2_CMSE.
956 * config/arm.c (arm_arch_cmse): New.
957 (arm_option_override): New error for unsupported cmse target.
958 * config/arm/arm.h (arm_arch_cmse): New.
959 * config/arm/arm.opt (mcmse): New.
960 * config/arm/arm_cmse.h: New file.
961 * doc/invoke.texi (ARM Options): Add -mcmse.
962 * doc/sourcebuild.texi (arm_cmse_ok): Add new effective target.
963 * doc/extend.texi: Add ARMv8-M Security Extensions entry.
964
965 2016-12-02 Georg-Johann Lay <avr@gjlay.de>
966
967 * config/avr/avr.c: Fix coding rule glitches.
968
969 2016-12-02 Martin Jambor <mjambor@suse.cz>
970
971 * hsa.c (hsa_callable_function_p): Return false for artificial
972 functions.
973
974 2016-12-02 James Greenhalgh <james.greenhalgh@arm.com>
975
976 PR rtl-optimization/78561
977 * varasm.c (recompute_pool_offsets): New.
978 (output_constant_pool): Call it.
979
980 2016-12-02 James Greenhalgh <james.greenhalgh@arm.com>
981
982 PR rtl-optimization/78561
983 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Rename
984 get_pool_size to get_pool_size_upper_bound.
985 (rs6000_stack_info): Likewise.
986 (rs6000_emit_prologue): Likewise.
987 (rs6000_elf_declare_function_name): Likewise.
988 (rs6000_set_up_by_prologue): Likewise.
989 (rs6000_can_eliminate): Likewise, reformat spaces to tabs.
990 * output.h (get_pool_size): Rename to...
991 (get_pool_size_upper_bound): ...This.
992 * varasm.c (get_pool_size): Rename to...
993 (get_pool_size_upper_bound): ...This.
994
995 2016-12-02 Bin Cheng <bin.cheng@arm.com>
996
997 * match.pd: Add new pattern:
998 (cond (cmp (convert? x) c1) (op x c2) c3) -> (op (minmax x c1) c2).
999
1000 2016-12-02 Nathan Sidwell <nathan@acm.org>
1001
1002 * diagnostic.c (diagnostic_report_diagnostic): Remove extraneous
1003 braces.
1004
1005 2016-12-02 Aldy Hernandez <aldyh@redhat.com>
1006
1007 PR middle-end/78328
1008 * gimple-ssa-warn-alloca.c (alloca_call_type): Handle
1009 VR_ANTI_RANGE.
1010
1011 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1012
1013 * config/s390/s390.c (s390_save_gprs_to_fprs): Fix RTL sharing
1014 problem.
1015
1016 2016-12-02 Georg-Johann Lay <avr@gjlay.de>
1017
1018 * config/avr/avr-arch.h (avr_mcu_t) [n_flash]: Remove field.
1019 * config/avr/avr-devices.c (AVR_MCU): Remove N_FLASH macro argument.
1020 * config/avr/avr-mcus.def (AVR_MCU): Remove initializer for n_flash.
1021 * config/avr/avr.c (avr_set_core_architecture) [avr_n_flash]: Use
1022 avr_mcu_types.flash_size to compute default value.
1023 * config/avr/gen-avr-mmcu-specs.c (print_mcu) [cc1_n_flash]: Use
1024 mcu->flash_size to compute value for spec.
1025
1026 2016-12-02 Georg-Johann Lay <avr@gjlay.de>
1027
1028 * doc/invoke.texi (AVR Options) [-mabsdata]: Point to absdata.
1029 * doc/extend.texi (AVR Variable Attributes) [progmem]: Hint
1030 about linker description to avoid progmem altogether.
1031 [absdata]: Point to -mabsdata option.
1032
1033 2016-12-02 Jakub Jelinek <jakub@redhat.com>
1034
1035 PR rtl-optimization/78547
1036 * emit-rtl.c (unshare_all_rtl): Make sure DECL_RTL and
1037 DECL_INCOMING_RTL is not shared.
1038 * config/i386/i386.c (convert_scalars_to_vectors): If any
1039 insns have been converted, adjust all parameter's DEC_RTL and
1040 DECL_INCOMING_RTL back from V1TImode to TImode if the parameters have
1041 TImode.
1042
1043 PR rtl-optimization/78575
1044 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses): Use
1045 DF infrastructure to wrap all V1TImode reg uses into TImode subreg
1046 if not already wrapped in a subreg. Make sure df_insn_rescan does not
1047 affect further iterations.
1048
1049 2016-12-02 Martin Liska <mliska@suse.cz>
1050
1051 PR ipa/78555
1052 * sreal.c (sreal::to_int): Make absolute value before shifting.
1053 (sreal::operator/): Likewise.
1054 (sreal_verify_negative_division): New test.
1055 (void sreal_c_tests): Call the new test.
1056 * sreal.h (sreal::normalize_up): Use new SREAL_ABS and
1057 SREAL_SIGN macros.
1058 (sreal::normalize_down): Likewise.
1059
1060 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
1061
1062 * combine.c (combine_simplify_rtx): Suppress replacement of
1063 "(and (reg) (const_int bit))" with "if_then_else".
1064
1065 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
1066
1067 PR target/77822
1068 * config/s390/s390.md ("extzv")
1069 ("*extzv<mode><clobbercc_or_nocc>")
1070 ("*extzvdi<clobbercc_or_nocc>_lshiftrt")
1071 ("*<risbg_n>_ior_and_sr_ze")
1072 ("*extract1bitdi<clobbercc_or_nocc>")
1073 ("*insv<mode><clobbercc_or_nocc>", "*insv_rnsbg_noshift")
1074 ("*insv_rnsbg_srl", "*insv<mode>_mem_reg")
1075 ("*insvdi_mem_reghigh", "*insvdi_reg_imm"): Use EXTRACT_ARGS_IN_RANGE
1076 to validate the arguments of zero_extract and sign_extract.
1077
1078 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
1079
1080 PR target/77822
1081 * rtl.h (EXTRACT_ARGS_IN_RANGE): New.
1082
1083 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1084
1085 * gcc/config/s390/s390.c (s390_builtin_vectorization_cost): New
1086 function.
1087 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Define target
1088 macro.
1089
1090 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1091
1092 * config/s390/vector.md (vec_halfhalf): New mode iterator.
1093 ("vec_pack_trunc_<mode>", "vec_pack_ssat_<mode>")
1094 ("vec_pack_usat_<mode>", "vec_unpacks_hi_v16qi")
1095 ("vec_unpacks_low_v16qi", "vec_unpacku_hi_v16qi")
1096 ("vec_unpacku_low_v16qi", "vec_unpacks_hi_v8hi")
1097 ("vec_unpacks_lo_v8hi", "vec_unpacku_hi_v8hi")
1098 ("vec_unpacku_lo_v8hi", "vec_unpacks_hi_v4si")
1099 ("vec_unpacks_lo_v4si", "vec_unpacku_hi_v4si")
1100 ("vec_unpacku_lo_v4si"): New pattern definitions.
1101 * config/s390/vx-builtins.md: Move VI_HW_HSD mode iterator to
1102 vector.md.
1103
1104 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1105
1106 * config/s390/s390-protos.h (s390_reverse_condition): New
1107 prototype.
1108 * config/s390/s390.c (s390_canonicalize_comparison): Fold compares
1109 of CC mode values.
1110 (s390_reverse_condition): New function.
1111 * config/s390/s390.h (REVERSE_CC_MODE, REVERSE_CONDITION): Define
1112 target macros.
1113
1114 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1115
1116 * config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU)
1117 (CCVHUANY): Remove modes.
1118 (CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and
1119 documentation.
1120 * config/s390/s390.c (s390_match_ccmode_set): Rename cc modes.
1121 (s390_expand_vec_compare_scalar): Pick one of the cc consumer
1122 modes.
1123 (s390_branch_condition_mask): Adjust to use the new cc consumer
1124 modes. The new modes allow for proper reversal in the middle-end.
1125 (s390_expand_vec_compare_cc): Determine the proper cc producer and
1126 consumer modes for a comparison.
1127 * config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU
1128 throughout the file.
1129 * config/s390/vx-builtins.md: Likewise.
1130
1131 2016-12-02 Maxim Ostapenko <m.ostapenko@samsung.com>
1132
1133 * asan.c (asan_global_struct): Refactor.
1134 (create_odr_indicator): New function.
1135 (asan_needs_odr_indicator_p): Likewise.
1136 (is_odr_indicator): Likewise.
1137 (asan_add_global): Introduce odr_indicator_ptr. Pass it into global's
1138 constructor.
1139 (asan_protect_global): Do not protect odr indicators.
1140
1141 2016-12-01 Jeff Law <law@redhat.com>
1142
1143 * tree-ssa-threadedge.c
1144 (record_temporary_equivalences_from_stmts_at_dest): Avoid temporary
1145 propagation of operands if there are no operands.
1146
1147 2016-12-02 Jakub Jelinek <jakub@redhat.com>
1148
1149 PR tree-optimization/78586
1150 * gimple-ssa-sprintf.c (format_integer): Don't handle NOP_EXPR,
1151 CONVERT_EXPR or COMPONENT_REF here. Formatting fix. For
1152 SSA_NAME_DEF_STMT with NOP_EXPR only change argtype if the rhs1's
1153 type is INTEGER_TYPE or POINTER_TYPE.
1154
1155 2016-12-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
1156
1157 PR target/78577
1158 * config/rs6000/vsx.md (vextuhlx): Revise mode of operand 2.
1159 (vextuhrx): Likewise.
1160 (vextuwlx): Likewise.
1161 (vextuwrx): Likewise.
1162
1163 2016-12-01 David Malcolm <dmalcolm@redhat.com>
1164
1165 * dwarf2out.c (dwarf2out_c_finalize): Reset early_dwarf and
1166 early_dwarf_finished.
1167
1168 2016-12-01 Eric Botcazou <ebotcazou@adacore.com>
1169 David S. Miller <davem@davemloft.net>
1170
1171 * config/sparc/sparc.opt (mlra): New target option.
1172 * config/sparc/sparc.c (TARGET_LRA_P): Define to...
1173 (sparc_lra_p): ...this. New function.
1174 (D_MODES, DF_MODES): Add missing cast.
1175 * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
1176 provide these insns when flag_pic.
1177 (sethi_di_medlow, losum_di_medlow, seth44, setm44, setl44, sethh,
1178 setlm, sethm, setlo, embmedany_sethi, embmedany_losum,
1179 embmedany_brsum, embmedany_textuhi, embmedany_texthi,
1180 embmedany_textulo, embmedany_textlo): Likewise.
1181 (sethi_di_medlow_embmedany_pic): Provide it only with flag_pic.
1182
1183 2016-12-01 David Edelsohn <dje.gcc@gmail.com>
1184
1185 PR debug/66419
1186 PR c++/78235
1187 * dbxout.c (dbxout_type_fields): Skip TEMPLATE_DECLs.
1188
1189 2016-12-01 Richard Biener <rguenther@suse.de>
1190 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1191
1192 * vec.h (vec<T, A, vl_embed>::quick_grow_cleared): Guard call to
1193 memset if len-oldlen != 0.
1194 (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Likewise.
1195
1196 2016-12-01 Uros Bizjak <ubizjak@gmail.com>
1197
1198 * config/i386/i386.md (*andndi3_doubleword): Depend on TARGET_SSE2.
1199
1200 2016-12-01 Georg-Johann Lay <avr@gjlay.de>
1201
1202 * config/avr/avr.c: Fix coding rule glitches.
1203
1204 2016-12-01 Markus Trippelsdorf <markus@trippelsdorf.de>
1205
1206 PR tree-optimization/78598
1207 * tree-ssa-loop-prefetch.c (ddown): Cast to signed to avoid
1208 overflows.
1209
1210 2016-12-01 Markus Trippelsdorf <markus@trippelsdorf.de>
1211
1212 PR rtl-optimization/78596
1213 * combine.c (simplify_comparison): Cast to unsigned to avoid
1214 left shifting of negative value.
1215
1216 2016-12-01 Matthias Klose <doko@ubuntu.com>
1217
1218 * doc/install.texi: Don't use pkg-config to check for bdw-gc.
1219
1220 2016-12-01 Richard Biener <rguenther@suse.de>
1221
1222 * tree-ssa-alias.c (indirect_refs_may_alias_p): Do not
1223 treat arrays with same type as objects that cannot overlap.
1224
1225 2016-12-01 Georg-Johann Lay <avr@gjlay.de>
1226
1227 * config/avr/avr.c (avr_print_operand): Use SYMBOL_REF_P if possible.
1228 (avr_handle_addr_attribute, avr_asm_output_aligned_decl_common)
1229 (avr_asm_asm_output_aligned_bss, avr_addr_space_convert): Dito.
1230
1231 2016-12-01 Jakub Jelinek <jakub@redhat.com>
1232
1233 PR debug/78587
1234 * dwarf2out.c (loc_descr_plus_const): For negative offset use
1235 uint_loc_descriptor instead of int_loc_descriptor and perform negation
1236 in unsigned HOST_WIDE_INT type.
1237 (scompare_loc_descriptor): Shift UINTVAL left instead of INTVAL.
1238
1239 PR target/78614
1240 * config/rs6000/rs6000.c (rs6000_frame_related): Call
1241 set_used_flags (pat) before any simplifications. Clear used flag on
1242 PARALLEL copy. Don't guard add_reg_note call. Call
1243 copy_rtx_if_shared on pat before storing it into
1244 REG_FRAME_RELATED_EXPR.
1245
1246 2016-12-01 Alan Modra <amodra@gmail.com>
1247
1248 * gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly
1249 look inside UNSPEC_VSX_XXSPLTW vec.
1250
1251 2016-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1252
1253 PR rtl-optimization/78607
1254 * combine.c (try_combine): Emit a barrier after a unconditional trap.
1255
1256 2016-11-30 Michael Meissner <meissner@linux.vnet.ibm.com>
1257
1258 PR target/78602
1259 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): If the
1260 element is not a constant or in a register, force it to a
1261 register.
1262
1263 PR target/78560
1264 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Force value
1265 that will be set to a vector element to be in a register.
1266 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Fix thinko that used
1267 the wrong multiplier to convert the element number to a byte
1268 offset.
1269
1270 2016-11-30 Vladimir Makarov <vmakarov@redhat.com>
1271
1272 PR tree-optimization/77856
1273 * lra-constraints.c (inherit_in_ebb): Check original regno for
1274 invalid invariant regs too. Set only clobbered hard regs for the
1275 invalid invariant regs.
1276
1277 2016-11-30 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
1278
1279 Commit files forgotten in r242966.
1280
1281 * config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member.
1282 * config/avr/avr-devices.c (avr_mcu_types): Add flash size info.
1283 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded
1284 prefix check to find wrap-around value, instead use MCU flash size.
1285 For 8k flash devices, update link_pmem_wrap spec string to
1286 add --pmem-wrap-around=8k.
1287 * config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from
1288 here...
1289 (LINK_SPEC): ...to here.
1290
1291 2016-11-30 David Malcolm <dmalcolm@redhat.com>
1292
1293 PR c/78498
1294 * selftest.c (selftest::assert_strndup_eq): New function.
1295 (selftest::test_strndup): New function.
1296 (selftest::test_libiberty): New function.
1297 (selftest::selftest_c_tests): Call test_libiberty.
1298
1299 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org>
1300
1301 PR rtl-optimization/78610
1302 * ira.c (combine_and_move_insns): Don't substitute into TRAP_IF
1303 instructions.
1304
1305 2016-11-30 Bin Cheng <bin.cheng@arm.com>
1306
1307 PR tree-optimization/78574
1308 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Skip loop
1309 header PHI that doesn't define biv.
1310
1311 2016-11-30 Jakub Jelinek <jakub@redhat.com>
1312
1313 * emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of
1314 reset_used_flags.
1315
1316 * config/i386/i386.c (dimode_scalar_chain::convert_op): Avoid
1317 sharing the SUBREG rtx between move and following insn.
1318
1319 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx
1320 for REG_EQUIV argument.
1321
1322 2016-11-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
1323
1324 * config/arm/t-rmprofile: Add mappings for Cortex-M23 and Cortex-M33.
1325
1326 2016-11-30 Markus Trippelsdorf <markus@trippelsdorf.de>
1327
1328 PR ipa/78555
1329 * real.c (real_hash): Add cast to avoid left
1330 shifting of negative values.
1331
1332 2016-11-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1333
1334 PR target/78362
1335 * config/aarch64/aarch64.md (add<mode>3): Extract inner expression
1336 from a subreg in operands[1] and don't call REGNO on a non-reg
1337 expression when deciding to force operands[2] into a reg.
1338
1339 2016-11-30 Claudiu Zissulescu <claziss@synopsys.com>
1340 Andrew Burgess <andrew.burgess@embecosm.com>
1341
1342 * config/arc/arc-protos.h (arc_store_addr_hazard_p): Declare.
1343 * config/arc/arc.c (arc_store_addr_hazard_p): New function.
1344 (workaround_arc_anomaly): Call arc_store_addr_hazard_p for ARC700.
1345 * config/arc/arc700.md: Add define_bypass for store/load.
1346
1347 2016-11-30 Martin Liska <mliska@suse.cz>
1348
1349 * cgraph.c (symbol_table::initialize): Initialize
1350 ipa_clones_dump_file.
1351 (cgraph_node::remove): Report to ipa_clones_dump_file.
1352 * cgraph.h: Add new argument (suffix) to cloning methods.
1353 * cgraphclones.c (dump_callgraph_transformation): New function.
1354 (cgraph_node::create_clone): New argument.
1355 (cgraph_node::create_virtual_clone): Likewise.
1356 (cgraph_node::create_version_clone): Likewise.
1357 * dumpfile.c: Add .ipa-clones dump file.
1358 * dumpfile.h (enum tree_dump_index): Add TDI_clones
1359 * ipa-inline-transform.c (clone_inlined_nodes): Report operation
1360 to dump_callgraph_transformation.
1361
1362 2016-11-30 Martin Liska <mliska@suse.cz>
1363
1364 PR sanitizer/78541
1365 * asan.c (asan_expand_mark_ifn): Properly
1366 select a VAR_DECL from FRAME.* component reference.
1367
1368 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org>
1369
1370 PR rtl-optimization/78583
1371 * simplify-rtx.c (simplify_truncation): Add check missing from the
1372 previous commit.
1373
1374 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org>
1375
1376 PR rtl-optimization/78590
1377 * combine.c (change_zero_ext): Transform zero_extend of subregs only
1378 if the subreg_reg is a scalar integer mode.
1379
1380 2016-11-30 Jakub Jelinek <jakub@redhat.com>
1381
1382 PR tree-optimization/78586
1383 * gimple-ssa-sprintf.c (format_integer): Use TYPE_MAX_VALUE or
1384 TYPE_MIN_VALUE or build_all_ones_cst instead of folding LSHIFT_EXPR.
1385 Don't build_int_cst min/max twice. Formatting fix.
1386
1387 2016-11-30 Markus Trippelsdorf <markus@trippelsdorf.de>
1388
1389 PR rtl-optimization/78588
1390 * combine.c (if_then_else_cond): Also guard against BLKmode.
1391 * rtlanal.c (num_sign_bit_copies1): Add assert.
1392
1393 2016-11-29 Jeff Law <law@redhat.com>
1394
1395 * common/config/arc/arc-common.c (arc_handle_option): Remove unused
1396 variables.
1397
1398 * lra-constraints.c (check_and_process_move): Constrain the
1399 range of DCLASS and SCLASS to avoid false positive out of bounds
1400 array index warning.
1401
1402 2016-11-29 David Malcolm <dmalcolm@redhat.com>
1403
1404 * doc/install.texi (--with-target-bdw-gc): Remove stray '@'.
1405
1406 2016-11-29 David Malcolm <dmalcolm@redhat.com>
1407
1408 PR preprocessor/78569
1409 * input.c (get_substring_ranges_for_loc): Fail gracefully if
1410 line directives were present.
1411
1412 2016-11-30 Matthias Klose <doko@ubuntu.com>
1413
1414 * doc/install.texi: Document configure options --enable-objc-gc
1415 and --with-target-bdw-gc.
1416
1417 2016-11-29 Michael Meissner <meissner@linux.vnet.ibm.com>
1418
1419 PR target/78594
1420 * config/rs6000/rs6000.md (mov<mode>_internal, QHI iterator): Add
1421 'x' to stxsi<wd>x print pattern, so that QImode and HImode values
1422 residing in traditional altivec registers can be stored
1423 correctly.
1424
1425 2016-11-29 Max Filippov <jcmvbkbc@gmail.com>
1426
1427 PR target/78603
1428 * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
1429 overhead loop start between a call and its CALL_ARG_LOCATION
1430 note.
1431
1432 2016-11-29 Waldemar Brodkorb <wbx@openadk.org>
1433
1434 * config/bfin/linux.h (CPP_SPEC): Define.
1435
1436 2016-11-29 Martin Sebor <msebor@redhat.com>
1437
1438 PR tree-optimization/78512
1439 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Remove.
1440 * config/rs6000/linux.h: Same.
1441 * config/rs6000/linux64.h: Same.
1442 * config/sol2.h: Same.
1443 * config/sol2.c (solaris_printf_pointer_format): Remove.
1444 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Remove.
1445 * doc/tm.texi: Regenerate.
1446 * gimple-ssa-sprintf.c (format_pointer): Rempove.
1447 (pass_sprintf_length::compute_format_length): Return bool.
1448 (pass_sprintf_length::handle_gimple_call): Adjust.
1449 * target.def (printf_pointer_format): Remove.
1450 * targhooks.c (default_printf_pointer_format): Remove.
1451 (linux_printf_pointer_format): Same.
1452 * targhooks.h (default_printf_pointer_format): Remove.
1453 (linux_printf_pointer_format, solaris_printf_pointer_format): Same.
1454
1455 2016-11-29 Uros Bizjak <ubizjak@gmail.com>
1456
1457 * config/i386/sse.md (UNSPEC_MASKOP): Move from i386.md.
1458 (mshift): Ditto.
1459 (SWI1248_AVX512BWDQ): Ditto.
1460 (SWI1248_AVX512BW): Ditto.
1461 (k<any_logic:code><mode>): Ditto.
1462 (kandn<mode>): Ditto.
1463 (kxnor<mode>): Ditto.
1464 (knot<mode>): Ditto.
1465 (*k<any_lshift:code><mode>): Ditto.
1466 (kortestzhi, kortestchi): Ditto.
1467 (kunpckhi, kunpcksi, kunpckdi): Ditto.
1468
1469 2016-11-29 Andrew Pinski <apinski@cavium.com>
1470
1471 * tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node
1472 for the EQ_EXPR.
1473
1474 2016-11-29 Chen Gang <gang.chen.5i5j@gmail.com>
1475
1476 PR target/71331
1477 * config/tilegx/tilegx.c (tilegx_function_profiler): Save r10
1478 to stack before call mcount.
1479 (tilegx_can_use_return_insn_p): Clean up code.
1480
1481 2016-11-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
1482
1483 * config/avr/avr-mcu.def: (avr_mcu_types): Add flash size info.
1484
1485 2016-11-29 David Malcolm <dmalcolm@redhat.com>
1486
1487 PR c++/72774
1488 PR c++/72786
1489 PR c++/77922
1490 PR c++/78313
1491 * spellcheck.c (selftest::test_find_closest_string): Verify that
1492 we don't offer the goal string as a suggestion.
1493 * spellcheck.h (best_match::get_best_meaningful_candidate): Don't
1494 offer the goal string as a suggestion.
1495
1496
1497 2016-11-29 Claudiu Zissulescu <claziss@synopsys.com>
1498
1499 * config/arc/arc.c (arc_override_options): Avoid selection of
1500 compact casesi for ARCv2.
1501
1502 2016-11-29 Richard Biener <rguenther@suse.de>
1503
1504 * tree-cfg.c (lower_phi_internal_fn): Do not look for further
1505 PHIs after a regular stmt.
1506 (stmt_starts_bb_p): PHIs not preceeded by a PHI or a label
1507 start a new BB.
1508
1509 2016-11-29 Martin Liska <mliska@suse.cz>
1510
1511 PR gcov-profile/78582
1512 * tree-profile.c (gimple_gen_time_profiler): Make one extra BB
1513 to prevent PHI argument clash.
1514
1515 2016-11-29 Claudiu Zissulescu <claziss@synopsys.com>
1516
1517 * config/arc/arc.opt (marclinux): Fix typo.
1518 (marclinux_prof): Likewise.
1519
1520 2016-11-29 Jiong Wang <jiong.wang@arm.com>
1521
1522 * target.def (stack_protect_runtime_enabled_p): New.
1523 * function.c (expand_function_end): Guard stack_protect_epilogue with
1524 targetm.stack_protect_runtime_enabled_p.
1525 * cfgexpand.c (pass_expand::execute): Likewise.
1526 * calls.c (expand_call): Likewise.
1527 * doc/tm.texi.in (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): Add it.
1528 * doc/tm.texi: Regenerate.
1529
1530 2016-11-29 Richard Biener <rguenther@suse.de>
1531
1532 PR middle-end/78546
1533 * match.pd: Add CST1 - (CST2 - A) -> CST3 + A missing case.
1534
1535 2016-11-29 Janus Weil <janus@gcc.gnu.org>
1536
1537 * doc/contrib.texi: Add a few missing gfortran contributors.
1538
1539 2016-11-29 Segher Boessenkool <segher@kernel.crashing.org>
1540
1541 * combine.c (change_zero_ext): Also handle extends from a subreg
1542 to a mode bigger than that of the operand of the subreg.
1543
1544 2016-11-29 Segher Boessenkool <segher@kernel.crashing.org>
1545
1546 PR target/77687
1547 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Emit the
1548 stack_restore_tie insn instead of stack_tie, for the SVR4 and
1549 SPE ABIs.
1550 * config/rs6000/rs6000.md (stack_restore_tie): New define_insn.
1551
1552 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org>
1553
1554 * shrink-wrap.c (init_separate_shrink_wrap): Do not clear
1555 head_components and tail_components.
1556 (spread_components): New algorithm.
1557 (emit_common_tails_for_components): Clear head_components and
1558 tail_components.
1559 (insert_prologue_epilogue_for_components): Write extra output to the
1560 dump file for sibcalls and abnormal exits.
1561
1562 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org>
1563
1564 PR rtl-optimization/78342
1565 * combine.c: Include "cfghooks.h".
1566 (try_combine): If we create an unconditional trap, break the basic
1567 block in two just after it, and remove the edge between; also, set
1568 the *new_direct_jump_p flag so that cleanup_cfg is run.
1569
1570 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org>
1571
1572 * simplify-rtx.c (simplify_truncation): Handle truncate of zero_extract
1573 and sign_extract.
1574
1575 2016-11-28 Uros Bizjak <ubizjak@gmail.com>
1576
1577 * config/i386/i386.md (*and<mode>_1): Merge insn pattern from
1578 *andsi_1 and *andhi_1 using SWI24 mode iterator. Use multi-line
1579 output template string.
1580 (*anddi_1): Use multi-line output template string.
1581 (*andqi_1): Ditto.
1582
1583 2016-11-28 Jakub Jelinek <jakub@redhat.com>
1584
1585 PR middle-end/78540
1586 * rtl.h (remove_reg_equal_equiv_notes): Return bool instead of void.
1587 * rtlanal.c (remove_reg_equal_equiv_notes): Return true if any
1588 note has been removed.
1589 * postreload.c (reload_combine_recognize_pattern): If
1590 remove_reg_equal_equiv_notes returns true, call df_notes_rescan.
1591
1592 2016-11-28 Martin Sebor <msebor@redhat.com>
1593
1594 PR middle-end/78520
1595 * gimple-ssa-sprintf.c (target_max_value): Remove.
1596 (target_int_max, target_size_max): Use TYPE_MAX_VALUE.
1597 (get_width_and_precision): New function.
1598 (format_integer, format_floating, get_string_length, format_string):
1599 Correct handling of width and precision with unknown value.
1600 (format_directive): Add warning.
1601 (pass_sprintf_length::compute_format_length): Allow for precision
1602 to consist of a sole period with no asterisk or digits after it.
1603
1604 2016-11-28 Jakub Jelinek <jakub@redhat.com>
1605
1606 PR rtl-optimization/78546
1607 * simplify-rtx.c (neg_const_int): When negating most negative
1608 number in mode wider than HOST_BITS_PER_WIDE_INT, use
1609 simplify_const_unary_operation to produce CONST_DOUBLE or
1610 CONST_WIDE_INT.
1611 (simplify_plus_minus): Handle the case where neg_const_int
1612 doesn't return a CONST_INT.
1613
1614 2016-11-28 Markus Trippelsdorf <markus@trippelsdorf.de>
1615
1616 PR target/78556
1617 * config/rs6000/rs6000.c (vspltis_constant): Add casts to avoid
1618 left shifting of negative values.
1619
1620 2016-11-28 Jakub Jelinek <jakub@redhat.com>
1621
1622 PR fortran/78298
1623 * tree-nested.c (convert_local_reference_stmt): After adding
1624 shared (FRAME.NN) clause to omp parallel, task or target,
1625 add it also to all outer omp parallel, task or target constructs.
1626
1627 2016-11-28 Uros Bizjak <ubizjak@gmail.com>
1628
1629 * config/i386/i386.md (UNSPEC_KMASKOP): New.
1630 (UNSPEC_KMOV): Remove.
1631 (kmovw): Expand to plain HImode move.
1632 (k<any_logic:code><mode>): Rename from *k<logic><mode>. Use
1633 register_operand predicates. Tag pattern with UNSPEC_KMASKOP.
1634 Remove corresponding clobber-removing splitter.
1635 (*anddi_1): Remove mask register alternatives.
1636 (*andsi_1): Ditto.
1637 (*andhi_1): Ditto.
1638 (*andqi_1): Ditto.
1639 (*<any_or:code><mode>_1): Ditto.
1640 (*<any_or:code>qi_1): Ditto.
1641 (kandn<mode>): Use SWI1248_AVX512BW mode iterator. Remove
1642 general register alternatives. Tag pattern with UNSPEC_KMASKOP.
1643 Remove corresponding splitter to operation with general registers.
1644 (*andn<SWI38:mode>): Rename from *bmi_andn_<mode>.
1645 (*andn<SWI12:mode>): New pattern.
1646 (*kxnor<mode>): Remove general register alternatives. Tag pattern
1647 with UNSPEC_KMASKOP. Remove corresponding splitter to operation
1648 with general registers.
1649 (knot<mode>): New insn pattern.
1650 (*one_cmpl<mode>2_1): Remove mask register alternatives.
1651 (one_cmplqi2_1): Ditto.
1652 (*k<any_lshift:code><mode>): Rename from *k<mshift><mode>3.
1653 Tag pattern with UNSPEC_KMASKOP. Add mode attribute.
1654 * config/i386/predicates.md (mask_reg_operand): Remove predicate.
1655 * config/i386/sse.md (vec_unpacks_hi_hi): Update pattern
1656 to generate kmaskop shift.
1657 (vec_unpacks_hi_<mode>): Ditto.
1658 * config/i386/i386-builtin.def (__builtin_ia32_kandhi):
1659 Use CODE_FOR_kandhi.
1660 (__builtin_ia32_knothi): Use CODE_FOR_knothi.
1661 (__builtin_ia32_korhi): Use CODE_FOR_kiorhi.
1662 (__builtin_ia32_kxorhi): Use CODE_FOR_kxorhi.
1663
1664 2016-11-28 Richard Biener <rguenther@suse.de>
1665
1666 * tree-vrp.c (vrp_visit_assignment_or_call): Handle simplifications
1667 to SSA names via extract_range_from_ssa_name if allowed.
1668
1669 2016-11-28 Richard Biener <rguenther@suse.de>
1670
1671 PR tree-optimization/78542
1672 * tree-ssa-ccp.c (evaluate_stmt): Only valueize simplification
1673 if allowed.
1674
1675 2016-11-28 Paolo Bonzini <bonzini@gnu.org>
1676
1677 * combine.c (simplify_if_then_else): Simplify IF_THEN_ELSE that
1678 isolates a single bit, even if the condition involves subregs.
1679
1680 2016-11-28 Tamar Christina <tamar.christina@arm.com>
1681
1682 * config/aarch64/aarch64-simd-builtins.def
1683 (BSL_P): Added di and v2di mode.
1684 * config/aarch64/arm_neon.h
1685 (vsriq_n_p64, vsri_n_p64): Added poly type.
1686 (vextq_p64, vext_p64): Likewise.
1687 (vceq_p64, vbslq_p64, vbsl_p64): Likewise.
1688
1689 2016-11-28 Tamar Christina <tamar.christina@arm.com>
1690
1691 * config/aarch64/aarch64-builtins.c (TYPES_SETREGP): Added poly type.
1692 (TYPES_GETREGP): Likewise.
1693 (TYPES_SHIFTINSERTP): Likewise.
1694 (TYPES_COMBINEP): Likewise.
1695 (TYPES_STORE1P): Likewise.
1696 * config/aarch64/aarch64-simd-builtins.def
1697 (combine): Added poly generator.
1698 (get_dregoi): Likewise.
1699 (get_dregci): Likewise.
1700 (get_dregxi): Likewise.
1701 (ssli_n): Likewise.
1702 (ld1): Likewise.
1703 (st1): Likewise.
1704 * config/aarch64/arm_neon.h
1705 (poly64x1x2_t, poly64x1x3_t): New.
1706 (poly64x1x4_t, poly64x2x2_t): Likewise.
1707 (poly64x2x3_t, poly64x2x4_t): Likewise.
1708 (poly64x1_t): Likewise.
1709 (vcreate_p64, vcombine_p64): Likewise.
1710 (vdup_n_p64, vdupq_n_p64): Likewise.
1711 (vld2_p64, vld2q_p64): Likewise.
1712 (vld3_p64, vld3q_p64): Likewise.
1713 (vld4_p64, vld4q_p64): Likewise.
1714 (vld2_dup_p64, vld3_dup_p64): Likewise.
1715 (vld4_dup_p64, vsli_n_p64): Likewise.
1716 (vsliq_n_p64, vst1_p64): Likewise.
1717 (vst1q_p64, vst2_p64): Likewise.
1718 (vst3_p64, vst4_p64): Likewise.
1719 (__aarch64_vdup_lane_p64, __aarch64_vdup_laneq_p64): Likewise.
1720 (__aarch64_vdupq_lane_p64, __aarch64_vdupq_laneq_p64): Likewise.
1721 (vget_lane_p64, vgetq_lane_p64): Likewise.
1722 (vreinterpret_p8_p64, vreinterpretq_p8_p64): Likewise.
1723 (vreinterpret_p16_p64, vreinterpretq_p16_p64): Likewise.
1724 (vreinterpret_p64_f16, vreinterpret_p64_f64): Likewise.
1725 (vreinterpret_p64_s8, vreinterpret_p64_s16): Likewise.
1726 (vreinterpret_p64_s32, vreinterpret_p64_s64): Likewise.
1727 (vreinterpret_p64_f32, vreinterpret_p64_u8): Likewise.
1728 (vreinterpret_p64_u16, vreinterpret_p64_u32): Likewise.
1729 (vreinterpret_p64_u64, vreinterpret_p64_p8): Likewise.
1730 (vreinterpretq_p64_f64, vreinterpretq_p64_s8): Likewise.
1731 (vreinterpretq_p64_s16, vreinterpretq_p64_s32): Likewise.
1732 (vreinterpretq_p64_s64, vreinterpretq_p64_f16): Likewise.
1733 (vreinterpretq_p64_f32, vreinterpretq_p64_u8): Likewise.
1734 (vreinterpretq_p64_u16, vreinterpretq_p64_u32): Likewise.
1735 (vreinterpretq_p64_u64, vreinterpretq_p64_p8): Likewise.
1736 (vreinterpret_f16_p64, vreinterpretq_f16_p64): Likewise.
1737 (vreinterpret_f32_p64, vreinterpretq_f32_p64): Likewise.
1738 (vreinterpret_f64_p64, vreinterpretq_f64_p64): Likewise.
1739 (vreinterpret_s64_p64, vreinterpretq_s64_p64): Likewise.
1740 (vreinterpret_u64_p64, vreinterpretq_u64_p64): Likewise.
1741 (vreinterpret_s8_p64, vreinterpretq_s8_p64): Likewise.
1742 (vreinterpret_s16_p64, vreinterpret_s32_p64): Likewise.
1743 (vreinterpretq_s32_p64, vreinterpret_u8_p64): Likewise.
1744 (vreinterpret_u16_p64, vreinterpretq_u16_p64): Likewise.
1745 (vreinterpret_u32_p64, vreinterpretq_u32_p64): Likewise.
1746 (vset_lane_p64, vsetq_lane_p64): Likewise.
1747 (vget_low_p64, vget_high_p64): Likewise.
1748 (vcombine_p64, vst2_lane_p64): Likewise.
1749 (vst3_lane_p64, vst4_lane_p64): Likewise.
1750 (vst2q_lane_p64, vst3q_lane_p64): Likewise.
1751 (vst4q_lane_p64, vget_lane_p64): Likewise.
1752 (vget_laneq_p64, vset_lane_p64): Likewise.
1753 (vset_laneq_p64, vcopy_lane_p64): Likewise.
1754 (vcopy_laneq_p64, vdup_n_p64): Likewise.
1755 (vdupq_n_p64, vdup_lane_p64): Likewise.
1756 (vdup_laneq_p64, vld1_p64): Likewise.
1757 (vld1q_p64, vld1_dup_p64): Likewise.
1758 (vld1q_dup_p64, vld1q_dup_p64): Likewise.
1759 (vmov_n_p64, vmovq_n_p64): Likewise.
1760 (vst3q_p64, vst4q_p64): Likewise.
1761 (vld1_lane_p64, vld1q_lane_p64): Likewise.
1762 (vst1_lane_p64, vst1q_lane_p64): Likewise.
1763 (vcopy_laneq_p64, vcopyq_laneq_p64): Likewise.
1764 (vdupq_laneq_p64): Likewise.
1765
1766 2016-11-28 Tamar Christina <tamar.christina@arm.com>
1767
1768 * config/arm/arm_neon.h (vget_lane_p64): New.
1769
1770 2016-11-28 Iain Sandoe <iain@codesourcery.com>
1771
1772 PR target/71767
1773 * configure.ac (with_ld64): Use portable method to extract the
1774 major part of the version number.
1775 * configure: Regenerated.
1776
1777 2016-11-28 Jakub Jelinek <jakub@redhat.com>
1778
1779 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Look at
1780 UINTMAX_TYPE rather than SIZE_TYPE. Add gcc_unreachable if
1781 intmax_t couldn't be determined.
1782 (format_integer): Make {,u}intmax_type_node no longer static,
1783 initialize them only when needed. For z and t use
1784 signed_or_unsigned_type_for instead of assuming size_t and
1785 ptrdiff_t have the same precision.
1786
1787 PR lto/78211
1788 * ipa-icf.h (sem_item_optimizer): Add m_classes_vec member.
1789 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Initialize it.
1790 (sem_item_optimizer::~sem_item_optimizer): Traverse m_classes_vec
1791 vector instead of traversing m_classes hash table. Release
1792 m_classes_vec.
1793 (sem_item_optimizer::read_section, sem_item_optimizer::add_class):
1794 Formatting fixes.
1795 (sem_item_optimizer::get_group_by_hash): When inserting a new group,
1796 add it also to m_classes_vec vector.
1797 (sem_item_optimizer::remove_symtab_node,
1798 sem_item_optimizer::build_hash_based_classes,
1799 sem_item_optimizer::parse_nonsingleton_classes): Formatting fixes.
1800 (sem_item_optimizer::subdivide_classes_by_equality,
1801 sem_item_optimizer::subdivide_classes_by_sensitive_refs,
1802 sem_item_optimizer::verify_classes): Traverse m_classes_vec vector
1803 instead of traversing m_classes hash table. Formatting fixes.
1804 (sem_item_optimizer::traverse_congruence_split,
1805 sem_item_optimizer::do_congruence_step_for_index,
1806 sem_item_optimizer::do_congruence_step): Formatting fixes.
1807 (sem_item_optimizer::process_cong_reduction): Traverse m_classes_vec
1808 vector instead of traversing m_classes hash table.
1809 (sem_item_optimizer::dump_cong_classes): Likewise. Formatting fixes.
1810 (sem_item_optimizer::merge_classes): Traverse m_classes_vec vector
1811 instead of traversing m_classes hash table.
1812
1813 2016-11-28 Georg-Johann Lay <avr@gjlay.de>
1814
1815 * config/avr/avr.c (out_movhi_r_mr) [REG_X + PLUS]: Only SBIW if
1816 X is not unused after.
1817
1818 2016-11-28 Bernd Schmidt <bschmidt@redhat.com>
1819
1820 PR rtl-optimization/78120
1821 * rtlanal.c (insn_rtx_cost): Revert previous change.
1822
1823 2016-11-28 Georg-Johann Lay <avr@gjlay.de>
1824
1825 PR 41076
1826 * config/avr/avr.md (SPLIT34): New mode iterator.
1827 (bitop): New code iterator.
1828 (*iorhi3.ashift8-*). New insn-and-split patterns.
1829 (*movhi): Post-reload split reg = 0.
1830 [!MOVW]: Post-reload split reg = reg.
1831 (*mov<mode>) [SI,SF,PSI,SQ,USQ,SA,USA]: Post-reload split reg = reg.
1832 (andhi3, andpsi3, andsi3): Post-reload split reg-reg operations.
1833 (iorhi3, iorpsi3, iorsi3): Same.
1834 (xorhi3, xorpsi3, xorsi3): Same.
1835 * config/avr/avr.c (avr_rtx_costs_1) [IOR && HImode]: Adjust rtx
1836 costs to *iorhi3.ashift8-* patterns.
1837
1838 2016-11-27 Iain Sandoe <iain@codesourcery.com>
1839 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1840
1841 PR target/67710
1842 * config.in: Regenerate
1843 * config/darwin-driver.c (darwin_driver_init): Emit a version string
1844 for the assembler.
1845 * config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests.
1846 * config/darwin.opt(asm_macosx_version_min): New.
1847 * config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC.
1848 * configure: Regenerate
1849 * configure.ac: Check for mmacosx-version-min handling.
1850
1851 2016-11-27 Iain Sandoe <iain@codesourcery.com>
1852
1853 PR target/57438
1854 * config/i386/i386.c (ix86_code_end): Note that we emitted code
1855 where the function might otherwise appear empty for picbase thunks.
1856 (ix86_output_function_epilogue): If we find a zero-sized function
1857 assume that reaching it is UB and trap. If we find a trailing label
1858 append a nop.
1859 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): If we
1860 find a zero-sized function assume that reaching it is UB and trap.
1861 If we find a trailing label, append a nop.
1862
1863 2016-11-27 Iain Sandoe <iain@codesourcery.com>
1864
1865 PR target/71767
1866 * config/darwin-sections.def (picbase_thunk_section): New.
1867 * config/darwin.c (darwin_init_sections): Set up picbase thunk
1868 section. (darwin_rodata_section, darwin_objc2_section,
1869 machopic_select_section, darwin_asm_declare_constant_name,
1870 darwin_emit_weak_or_comdat, darwin_function_section): Don’t use
1871 coalesced with newer linkers.
1872 (darwin_override_options): Decide on usage of coalesed sections
1873 on the basis of the target linker version.
1874 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): New.
1875 * config/darwin.opt (mtarget-linker): New.
1876 * config/i386/i386.c (ix86_code_end): Do not force the thunks into
1877 a coalesced section, instead use a thunks section.
1878
1879 2016-11-27 Iain Sandoe <iain@codesourcery.com>
1880
1881 PR target/71767
1882 * configure.ac (with-ld64): New var, set for Darwin, set on
1883 detection of ld64, gcc_cv_ld64_export_dynamic: New, New test.
1884 * config/darwin.h: Use LD64_HAS_DYNAMIC export. DEF_LD64: New, define.
1885 * config/darwin10.h(DEF_LD64): Update for this target version.
1886 * config/darwin12.h(LINK_GCC_C_SEQUENCE_SPEC): Remove rdynamic test.
1887 (DEF_LD64): Update for this target version.
1888 * configure: Regenerated.
1889 * config.in: Regenerated.
1890
1891 2016-11-27 Iain Sandoe <iain@codesourcery.com>
1892
1893 PR target/71767
1894 * config/darwin.c (imachopic_indirection_name): Make data
1895 section indirections linker-visible.
1896 * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make local
1897 constant labels linker-visible.
1898
1899 2016-11-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1900
1901 * tree.c (build_common_tree_nodes): Initialize ptrdiff_type_node.
1902 (free_lang_data): Remove assignment to ptrdiff_type_node.
1903
1904 2016-11-25 Jakub Jelinek <jakub@redhat.com>
1905
1906 PR rtl-optimization/78526
1907 * simplify-rtx.c (simplify_immed_subreg): Don't use wi::extract_uhwi
1908 beyond val's precision.
1909
1910 PR rtl-optimization/78527
1911 * combine.c (make_compound_operation_int): Ignore LSHIFTRT with
1912 out of bounds shift count.
1913
1914 2016-11-25 Martin Liska <mliska@suse.cz>
1915
1916 PR web/71666
1917 * doc/invoke.texi (-fprofile-use): Fix reference to a section
1918 where -fprofile-generate is documented.
1919
1920 2016-11-25 Martin Liska <mliska@suse.cz>
1921
1922 PR gcov-profile/78086
1923 * coverage.c (build_init_ctor): Don't use priority {cd}tors if
1924 not supported by a target. Set priority to 100 if possible.
1925 (build_gcov_exit_decl): Likewise.
1926
1927 2016-11-25 Richard Biener <rguenther@suse.de>
1928
1929 PR ipa/78515
1930 * ipa-prop.c (compute_complex_assign_jump_func): Properly identify
1931 unary, binary and single RHSs.
1932 * tree.def (BIT_INSERT_EXPR): Adjust tree code name.
1933
1934 2016-11-25 Bin Cheng <bin.cheng@arm.com>
1935
1936 PR middle-end/78507
1937 PR middle-end/78510
1938 PR middle-end/78517
1939 * match.pd ((cond (cmp (convert1? @1) @3) (convert2? @1) @2)): Use
1940 cmp directly, rather than cmp_code. Initialize code to ERROR_MARK
1941 and set it to result code if transformation is valid. Use code EQ
1942 directly in last simplification case.
1943
1944 2016-11-25 Richard Biener <rguenther@suse.de>
1945
1946 * gimple-fold.c (fold_stmt_1): Check may_propagate_copy
1947 before valueizing return stmts.
1948
1949 2016-11-24 Richard Biener <rguenther@suse.de>
1950
1951 PR tree-optimization/78343
1952 * passes.def: Add CD-DCE pass after loop splitting.
1953 * tree-ssa-dce.c (find_obviously_necessary_stmts): Move
1954 SCEV init/finalize ...
1955 (perform_tree_ssa_dce): ... here. Deal with being
1956 executed inside the loop pipeline in aggressive mode.
1957
1958 2016-11-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
1959
1960 * tree-ssa-math-opts.c (struct symbolic_number): Improve comment.
1961
1962 2016-11-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
1963
1964 PR tree-optimization/77673
1965 * tree-ssa-math-opts.c (struct symbolic_number): Add new src field.
1966 (init_symbolic_number): Initialize src field from src parameter.
1967 (perform_symbolic_merge): Select most dominated statement as the
1968 source statement. Set src field of resulting n structure from the
1969 input src with the lowest address.
1970 (find_bswap_or_nop): Rename source_stmt into ins_stmt.
1971 (bswap_replace): Rename src_stmt into ins_stmt. Initially get source
1972 of load from src field rather than insertion statement. Cancel
1973 optimization if statement analyzed is not dominated by the insertion
1974 statement.
1975 (pass_optimize_bswap::execute): Rename src_stmt to ins_stmt. Compute
1976 dominance information.
1977
1978 2016-11-25 Eric Botcazou <ebotcazou@adacore.com>
1979
1980 PR ada/67205
1981 * config/mips/mips.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
1982
1983 2016-11-25 Martin Jambor <mjambor@suse.cz>
1984
1985 PR tree-optimization/70965
1986 * passes.def (pass_build_ssa_passes): Add pass_rebuild_cgraph_edges.
1987
1988 2016-11-24 James Greenahlgh <james.greenhalgh@arm.com>
1989
1990 PR target/78509
1991 * config/i386/i386.c (i386_excess_precision): Do not return
1992 FLT_EVAL_METHOD_UNPREDICTABLE when "type" is
1993 EXCESS_PRECISION_TYPE_STANDARD.
1994 * target.def (excess_precision): Document that targets should
1995 not return FLT_EVAL_METHOD_UNPREDICTABLE when "type" is
1996 EXCESS_PRECISION_TYPE_STANDARD or EXCESS_PRECISION_TYPE_FAST.
1997 Fix typo in first sentence.
1998 * doc/tm.texi: Regenerate.
1999
2000 2016-11-25 Richard Biener <rguenther@suse.de>
2001
2002 PR tree-optimization/78396
2003 * tree-vectorizer.c (vectorize_loops): When the if-converted
2004 body contains masked loads or stores do not attempt to
2005 basic-block-vectorize it.
2006
2007 2016-11-25 Richard Sandiford <richard.sandiford@arm.com>
2008 Alan Hayward <alan.hayward@arm.com>
2009 David Sherwood <david.sherwood@arm.com>
2010
2011 * function.h (spill_slot_alignment): Declare.
2012 * function.c (spill_slot_alignment): New function.
2013 * lra-spills.c (slot): Add align and size fields.
2014 (assign_mem_slot): Use them in the call to assign_stack_local.
2015 (add_pseudo_to_slot): Update the fields.
2016 (assign_stack_slot_num_and_sort_pseudos): Initialise the fields.
2017
2018 2016-11-25 Richard Sandiford <richard.sandiford@arm.com>
2019 Alan Hayward <alan.hayward@arm.com>
2020 David Sherwood <david.sherwood@arm.com>
2021
2022 * stor-layout.c (layout_type): Allow the caller to set the mode of
2023 a float type. Only choose one here if the mode is still VOIDmode.
2024 * tree.c (build_common_tree_nodes): Set the type mode of decimal
2025 floats before calling layout_type.
2026 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
2027
2028 2016-11-25 Richard Sandiford <richard.sandiford@arm.com>
2029
2030 * tree-tailcall.c (find_tail_calls): Allow calls to reference
2031 local variables if all references are known to be direct.
2032
2033 2016-11-25 Jakub Jelinek <jakub@redhat.com>
2034 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2035
2036 PR middle-end/78501
2037 * tree-vrp.c (extract_range_basic): Check for ptrdiff_type_node to be
2038 non null and it's precision matches precision of lhs's type.
2039
2040 2016-11-24 Martin Sebor <msebor@redhat.com>
2041
2042 PR tree-optimization/78476
2043 * gimple-ssa-sprintf.c (struct pass_sprintf_length::call_info):
2044 Add a member.
2045 (handle_gimple_call): Adjust signature.
2046 (try_substitute_return_value): Remove calls to bounded functions
2047 with zero buffer size whose result is known.
2048 (pass_sprintf_length::execute): Adjust call to handle_gimple_call.
2049
2050 2016-11-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2051
2052 * varasm.c (assemble_start_function): Wrap align_log definition in
2053 ASM_OUTPUT_MAX_SKIP_ALIGN.
2054
2055 2016-11-24 Uros Bizjak <ubizjak@gmail.com>
2056
2057 * config/i386/i386.md (wide AND insn to QImode splitter): Use
2058 explicit mode macros.
2059 (wide OR insn to QImode splitter): Ditto.
2060
2061 2016-11-24 Vladimir Makarov <vmakarov@redhat.com>
2062
2063 PR rtl-optimization/77541
2064 * lra-constraints.c (struct input_reload): Add field match_p.
2065 (get_reload_reg): Check modes of input reloads to generate unique
2066 value reload pseudo.
2067 (match_reload): Add input reload pseudo for the current insn.
2068
2069 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
2070
2071 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Update
2072 __FLT_EVAL_METHOD__ and __FLT_EVAL_METHOD_C99__ when we switch
2073 architecture levels.
2074 * config/aarch64/aarch64.c (aarch64_promoted_type): Only promote
2075 the aarch64_fp16_type_node, not all HFmode types.
2076 (aarch64_libgcc_floating_mode_supported_p): Support HFmode.
2077 (aarch64_scalar_mode_supported_p): Likewise.
2078 (aarch64_excess_precision): New.
2079 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
2080 (TARGET_SCALAR_MODE_SUPPORTED_P): Likewise.
2081 (TARGET_C_EXCESS_PRECISION): Likewise.
2082
2083 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
2084
2085 * config/aarch64/aarch64-c.c (aarch64_scalar_mode_supported_p): New.
2086 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
2087
2088 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
2089
2090 * config/aarch64/aarch64.md (<optab>sihf2): Convert to expand.
2091 (<optab>dihf2): Likewise.
2092 (aarch64_fp16_<optab><mode>hf2): New.
2093
2094 2016-11-24 Alexander Monakov <amonakov@ispras.ru>
2095
2096 PR target/67822
2097 * config/nvptx/mkoffload.c (main): Allow -fopenmp.
2098
2099 2016-11-24 Eric Botcazou <ebotcazou@adacore.com>
2100
2101 * common/config/sparc/sparc-common.c (sparc_option_optimization_table):
2102 Enable REE at -O2 and higher.
2103 * config/sparc/sparc.c (sparc_option_override): Disable it by default
2104 in 32-bit mode.
2105
2106 2016-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2107
2108 PR target/48863
2109 PR inline-asm/70184
2110 * tree-ssa-ter.c (temp_expr_table): Add reg_vars_cnt field.
2111 (new_temp_expr_table): Initialise reg_vars_cnt.
2112 (free_temp_expr_table): Release reg_vars_cnt.
2113 (process_replaceable): Add reg_vars_cnt argument, set reg_vars_cnt
2114 field of TAB.
2115 (find_replaceable_in_bb): Use the above to record register variable
2116 write occurrences and cancel replacement across them.
2117
2118 2016-11-24 Eric Botcazou <ebotcazou@adacore.com>
2119
2120 PR rtl-optimization/78437
2121 * ree.c (get_uses): New function.
2122 (combine_reaching_defs): When a copy is needed, return false if any
2123 reaching use of the source register reads it in a mode larger than
2124 the mode it is set in and WORD_REGISTER_OPERATIONS is true.
2125
2126 2016-11-24 Martin Liska <mliska@suse.cz>
2127
2128 * gimple-pretty-print.c (dump_edge_probability): New function.
2129 (dump_gimple_switch): Dump label edge probabilities.
2130 (dump_gimple_cond): Likewise.
2131 (dump_gimple_label): Dump
2132 (dump_gimple_bb_header): Dump basic block frequency.
2133 (pp_cfg_jump): Replace e->dest argument with e.
2134 (dump_implicit_edges): Likewise.
2135 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at):
2136 Use gimple_bb (at) instead of at->bb.
2137
2138 2016-11-24 Bernd Schmidt <bschmidt@redhat.com>
2139
2140 * common.opt (flimit-function-alignment): New.
2141 * doc/invoke.texi (-flimit-function-alignment): Document.
2142 * emit-rtl.h (struct rtl_data): Add max_insn_address field.
2143 * final.c (shorten_branches): Set it.
2144 * varasm.c (assemble_start_function): Limit alignment if
2145 requested.
2146
2147 2016-11-24 Richard Biener <rguenther@suse.de>
2148
2149 PR tree-optimization/71595
2150 * cfgloopmanip.h (remove_path): Add irred_invalidated and
2151 loop_closed_ssa_invalidated parameters, defaulted to NULL.
2152 * cfgloopmanip.c (remove_path): Likewise, pass them along to
2153 called functions. Only fix irred flags if the caller didn't
2154 request state.
2155 * tree-ssa-loop-ivcanon.c (unloop_loops): Use add_bb_to_loop.
2156 (unloop_loops): Pass irred_invalidated and loop_closed_ssa_invalidated
2157 to remove_path.
2158
2159 2016-11-24 Bernd Schmidt <bschmidt@redhat.com>
2160
2161 PR rtl-optimization/78120
2162 * ifcvt.c (noce_conversion_profitable_p): Check original cost in all
2163 cases, and additionally test against max_seq_cost for speed
2164 optimization.
2165 (noce_process_if_block): Compute an estimate for the original cost when
2166 optimizing for speed, using the minimum of then and else block costs.
2167
2168 PR rtl-optimization/78120
2169 * rtlanal.c (insn_rtx_cost): Use set_rtx_cost.
2170
2171 PR rtl-optimization/78120
2172 * config/i386/i386.c (ix86_rtx_costs): Fully handle SETs.
2173
2174 2016-11-24 Bin Cheng <bin.cheng@arm.com>
2175
2176 * match.pd: Refine type conversion in result expr for below pattern:
2177 (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).
2178
2179 2016-11-24 Eric Botcazou <ebotcazou@adacore.com>
2180
2181 PR middle-end/78429
2182 * tree.h (wi::fits_to_boolean_p): New predicate.
2183 (wi::fits_to_tree_p): Use it for boolean types.
2184 * tree.c (int_fits_type_p): Likewise.
2185
2186 2016-11-24 Martin Liska <mliska@suse.cz>
2187
2188 * print-tree.c (struct bucket): Remove.
2189 (print_node): Add new argument which drives whether a tree node
2190 is printed briefly or not.
2191 (debug_tree): Replace a custom hash table with hash_set<T>.
2192 * print-tree.h (print_node): Add the argument.
2193
2194 2016-11-24 Chung-Lin Tang <cltang@codesourcery.com>
2195
2196 * config/nios2/nios2.c (nios2_init_libfuncs): Add ATTRIBUTE_UNUSED.
2197
2198 2016-11-23 Peter Bergner <bergner@vnet.ibm.com>
2199
2200 PR target/78458
2201 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return MODE
2202 if it is at least NREGS wide.
2203
2204 2016-11-23 Joseph Myers <joseph@codesourcery.com>
2205
2206 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): For
2207 TARGET_E500_DOUBLE. handle TDmode, TImode and PTImode the same as
2208 TFmode, IFmode and KFmode.
2209
2210 2016-11-23 Joseph Myers <joseph@codesourcery.com>
2211
2212 * config/rs6000/spe.md (*frob_<SPE64:mode>_ti_8): New insn
2213 pattern.
2214
2215 2016-11-23 Segher Boessenkool <segher@kernel.crashing.org>
2216
2217 * combine.c (change_zero_ext): Only change the mode of a hard register
2218 destination if can_change_dest_mode holds for that.
2219
2220 2016-11-23 Jeff Law <law@redhat.com>
2221
2222 * varasm.c (assemble_name): Increase buffer size for name.
2223
2224 * config/spu/spu.md (floatunsdidf2): Remove unused local variable.
2225
2226 2016-11-23 Jakub Kicinski <jakub.kicinski@netronome.com>
2227
2228 * doc/extend.texi: Constify first argument to __builtin_object_size.
2229
2230 2016-11-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
2231
2232 * opth-gen.awk: Use unsigned shifts for bit masks. Allow all bits
2233 to be used. Add brackets around macro argument.
2234
2235 2016-11-23 Uros Bizjak <ubizjak@gmail.com>
2236
2237 * config/i386/i386.md (*<any_or:code>hi_1): Fix operand 2 constraints.
2238
2239 2016-11-23 Jakub Jelinek <jakub@redhat.com>
2240
2241 PR sanitizer/69278
2242 * opts.c (parse_sanitizer_options): For -fsanitize=undefined,
2243 restore enabling also SANITIZE_UNREACHABLE and SANITIZE_RETURN.
2244
2245 2016-11-23 Jakub Jelinek <jakub@redhat.com>
2246
2247 PR middle-end/69183
2248 * omp-low.c (build_outer_var_ref): Change lastprivate argument
2249 to code, pass it recursively, adjust uses. For OMP_CLAUSE_PRIVATE
2250 on worksharing constructs, treat it like clauses on simd construct.
2251 Formatting fix.
2252 (lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass
2253 OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref.
2254 (lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead
2255 of true as last argument to build_outer_var_ref.
2256
2257 2016-11-23 Uros Bizjak <ubizjak@gmail.com>
2258
2259 * config/i386/i386.md (*movqi_internal): Calculate mode
2260 attribute of alternatives 7,8,9 depending on TARGET_AVX512DQ.
2261 <TYPE_MSKMOV>: Emit kmovw for MODE_HI insn mode attribute.
2262 (*k<logic><mode>): Calculate mode attribute depending on
2263 TARGET_AVX512DQ. Emit k<logic>w for MODE_HI insn mode attribute.
2264 (*andqi_1): Calculate mode attribute of alternative 3 depending
2265 on TARGET_AVX512DQ. Emit kandw for MODE_HI insn mode attribute.
2266 (kandn<mode>): Calculate mode attribute of alternative 2 depending
2267 on TARGET_AVX512DQ. Emit kandnw for MODE_HI insn mode attribute.
2268 (kxnor<mode>): Merge insn patterns using SWI1248_AVX512BW mode
2269 iterator. Calculate mode attribute of alternative 1 depending
2270 on TARGET_AVX512DQ. Emit kxnorw for MODE_HI insn mode attribute.
2271 (*one_cmplqi2_1): Calculate mode attribute of alternative 2 depending
2272 on TARGET_AVX512DQ. Emit knotw for MODE_HI insn mode attribute.
2273
2274 2016-11-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2275
2276 PR middle-end/78153
2277 * gimple-fold.c (fold_stmt_1): Handle case for GIMPLE_RETURN.
2278 * tree-vrp.c (extract_range_basic): Handle case for
2279 CFN_BUILT_IN_STRLEN.
2280
2281 2016-11-23 Jeff Law <law@redhat.com>
2282
2283 * config/mcore/mcore.c (emit_new_cond_insn): Fix prototype.
2284
2285 * config/iq2000/iq2000.c (iq2000_rtx_costs): Avoid multiplication
2286 in boolean context warning.
2287
2288 * config/ia64/ia64.c (ia64_emit_insn_before): Fix prototype.
2289
2290 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
2291
2292 PR target/63250
2293 * config/arm/arm-builtins.c (arm_simd_floatHF_type_node): Rename to...
2294 (arm_fp16_type_node): ...This, make visibile.
2295 (arm_simd_builtin_std_type): Rename arm_simd_floatHF_type_node to
2296 arm_fp16_type_node.
2297 (arm_init_simd_builtin_types): Likewise.
2298 (arm_init_fp16_builtins): Likewise.
2299 * config/arm/arm.c (arm_excess_precision): New.
2300 (arm_floatn_mode): Likewise.
2301 (TARGET_C_EXCESS_PRECISION): Likewise.
2302 (TARGET_FLOATN_MODE): Likewise.
2303 (arm_promoted_type): Only promote arm_fp16_type_node.
2304 * config/arm/arm.h (arm_fp16_type_node): Declare.
2305
2306 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
2307
2308 * config/arm/arm.c (arm_convert_to_type): Delete.
2309 (TARGET_CONVERT_TO_TYPE): Delete.
2310 (arm_init_libfuncs): Enable trunc_optab from DFmode to HFmode.
2311 (arm_libcall_uses_aapcs_base): Add trunc_optab from DF- to HFmode.
2312 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): New.
2313 * config/arm/arm.md (truncdfhf2): Only convert through SFmode if we
2314 are in fast math mode, and have no single step hardware instruction.
2315 (extendhfdf2): Only expand through SFmode if we don't have a
2316 single-step hardware instruction.
2317 * config/arm/vfp.md (*truncdfhf2): New.
2318 (extendhfdf2): Likewise.
2319
2320 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
2321
2322 * targhooks.c (default_floatn_mode): Enable _Float16 if a target
2323 provides HFmode.
2324
2325 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
2326
2327 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Delete.
2328 * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): Delete.
2329 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Delete.
2330 * defaults.h (TARGET_FLT_EVAL_METHOD): Delete.
2331 * doc/tm.texi.in (TARGET_FLT_EVAL_METHOD): Delete.
2332 * doc/tm.texi: Regenerate.
2333 * system.h (TARGET_FLT_EVAL_METHOD): Poison.
2334
2335 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
2336
2337 * toplev.c (init_excess_precision): Delete most logic.
2338 * tree.c (excess_precision_type): Rewrite to use
2339 TARGET_EXCESS_PRECISION.
2340 * doc/invoke.texi (-fexcess-precision): Document behaviour in a
2341 more generic fashion.
2342 * ginclude/float.h: Wrap definition of FLT_EVAL_METHOD in
2343 __STDC_WANT_IEC_60559_TYPES_EXT__.
2344
2345 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
2346
2347 * common.opt (fpermitted-flt-eval-methods): New.
2348 * doc/invoke.texi (-fpermitted-flt-eval-methods): Document it.
2349 * flag_types.h (permitted_flt_eval_methods): New.
2350
2351 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
2352
2353 * config/m68k/m68k.c (m68k_excess_precision): New.
2354 (TARGET_C_EXCESS_PRECISION): Define.
2355
2356 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
2357
2358 * config/s390/s390.c (s390_excess_precision): New.
2359 (TARGET_C_EXCESS_PRECISION): Define.
2360
2361 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
2362
2363 * config/i386/i386.c (ix86_excess_precision): New.
2364 (TARGET_C_EXCESS_PRECISION): Define.
2365
2366 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
2367
2368 * target.def (excess_precision): New hook.
2369 * target.h (flt_eval_method): New.
2370 (excess_precision_type): Likewise.
2371 * targhooks.c (default_excess_precision): New.
2372 * targhooks.h (default_excess_precision): New.
2373 * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): New.
2374 * doc/tm.texi: Regenerate.
2375
2376 2016-11-23 Martin Sebor <msebor@redhat.com>
2377
2378 PR middle-end/78461
2379 * gimple-ssa-sprintf.c (format_string): Correct the maxima and
2380 set the minimum number of bytes for an unknown string to zero.
2381
2382 2016-11-23 Martin Jambor <mjambor@suse.cz>
2383 Martin Liska <mliska@suse.cz>
2384
2385 * hsa-builtins.def: New file.
2386 * Makefile.in (BUILTINS_DEF): Add hsa-builtins.def dependency.
2387 * builtins.def: Include hsa-builtins.def.
2388 (DEF_HSA_BUILTIN): New macro.
2389 * dumpfile.h (OPTGROUP_OPENMP): Define.
2390 * dumpfile.c (optgroup_options): Added OPTGROUP_OPENMP.
2391 * gimple.h (gf_mask): Added elements GF_OMP_FOR_GRID_INTRA_GROUP and
2392 GF_OMP_FOR_GRID_GROUP_ITER.
2393 (gimple_omp_for_grid_phony): Added checking assert.
2394 (gimple_omp_for_set_grid_phony): Likewise.
2395 (gimple_omp_for_grid_intra_group): New function.
2396 (gimple_omp_for_set_grid_intra_group): Likewise.
2397 (gimple_omp_for_grid_group_iter): Likewise.
2398 (gimple_omp_for_set_grid_group_iter): Likewise.
2399 * omp-low.c (check_omp_nesting_restrictions): Allow GRID loop where
2400 previosuly only distribute loop was permitted.
2401 (lower_lastprivate_clauses): Allow non tcc_comparison predicates.
2402 (grid_get_kernel_launch_attributes): Support multiple HSA grid
2403 dimensions.
2404 (grid_expand_omp_for_loop): Likewise and also support standalone
2405 distribute constructs. New parameter INTRA_GROUP, updated both users.
2406 (grid_expand_target_grid_body): Support standalone distribute
2407 constructs.
2408 (pass_data_expand_omp): Changed optinfo_flags to OPTGROUP_OPENMP.
2409 (pass_data_expand_omp_ssa): Likewise.
2410 (pass_data_omp_device_lower): Likewsie.
2411 (pass_data_lower_omp): Likewise.
2412 (pass_data_diagnose_omp_blocks): Likewise.
2413 (pass_data_oacc_device_lower): Likewise.
2414 (pass_data_omp_target_link): Likewise.
2415 (grid_lastprivate_predicate): New function.
2416 (lower_omp_for_lastprivate): Call grid_lastprivate_predicate for
2417 gridified loops.
2418 (lower_omp_for): Support standalone distribute constructs.
2419 (grid_prop): New type.
2420 (grid_safe_assignment_p): Check for assignments to group_sizes, new
2421 parameter GRID.
2422 (grid_seq_only_contains_local_assignments): New parameter GRID, pass
2423 it to callee.
2424 (grid_find_single_omp_among_assignments_1): Likewise, improve missed
2425 optimization info messages.
2426 (grid_find_single_omp_among_assignments): Likewise.
2427 (grid_find_ungridifiable_statement): Do not bail out for SIMDs.
2428 (grid_parallel_clauses_gridifiable): New function.
2429 (grid_inner_loop_gridifiable_p): Likewise.
2430 (grid_dist_follows_simple_pattern): Likewise.
2431 (grid_gfor_follows_tiling_pattern): Likewise.
2432 (grid_call_permissible_in_distribute_p): Likewise.
2433 (grid_handle_call_in_distribute): Likewise.
2434 (grid_dist_follows_tiling_pattern): Likewise.
2435 (grid_target_follows_gridifiable_pattern): Support standalone
2436 distribute constructs.
2437 (grid_var_segment): New enum.
2438 (grid_mark_variable_segment): New function.
2439 (grid_copy_leading_local_assignments): Call grid_mark_variable_segment
2440 if a new argument says so.
2441 (grid_process_grid_body): New function.
2442 (grid_eliminate_combined_simd_part): Likewise.
2443 (grid_mark_tiling_loops): Likewise.
2444 (grid_mark_tiling_parallels_and_loops): Likewise.
2445 (grid_process_kernel_body_copy): Support standalone distribute
2446 constructs.
2447 (grid_attempt_target_gridification): New grid variable holding overall
2448 gridification state. Support standalone distribute constructs and
2449 collapse clauses.
2450 * doc/optinfo.texi (Optimization groups): Document OPTGROUP_OPENMP.
2451 * hsa.h (hsa_bb): Add method method append_phi.
2452 (hsa_insn_br): Renamed to hsa_insn_cbr, renamed all
2453 occurences in all files too.
2454 (hsa_insn_br): New class, now the ancestor of hsa_incn_cbr.
2455 (is_a_helper <hsa_insn_br *>::test): New function.
2456 (is_a_helper <hsa_insn_cbr *>::test): Adjust to only cover conditional
2457 branch instructions.
2458 (hsa_insn_signal): Make a direct descendant of
2459 hsa_insn_basic. Add memorder constructor parameter and
2460 m_memory_order and m_signalop member variables.
2461 (hsa_insn_queue): Changed constructor parameters to common form.
2462 Added m_segment and m_memory_order member variables.
2463 (hsa_summary_t): Add private member function
2464 process_gpu_implementation_attributes.
2465 (hsa_function_summary): Rename m_binded_function to
2466 m_bound_function.
2467 (hsa_insn_basic_p): Remove typedef.
2468 (hsa_op_with_type): Change hsa_insn_basic_p into plain pointers.
2469 (hsa_op_reg_p): Remove typedef.
2470 (hsa_function_representation): Change hsa_op_reg_p into plain
2471 pointers.
2472 (hsa_insn_phi): Removed new and delete operators.
2473 (hsa_insn_br): Likewise.
2474 (hsa_insn_cbr): Likewise.
2475 (hsa_insn_sbr): Likewise.
2476 (hsa_insn_cmp): Likewise.
2477 (hsa_insn_mem): Likewise.
2478 (hsa_insn_atomic): Likewise.
2479 (hsa_insn_signal): Likewise.
2480 (hsa_insn_seg): Likewise.
2481 (hsa_insn_call): Likewise.
2482 (hsa_insn_arg_block): Likewise.
2483 (hsa_insn_comment): Likewise.
2484 (hsa_insn_srctype): Likewise.
2485 (hsa_insn_packed): Likewise.
2486 (hsa_insn_cvt): Likewise.
2487 (hsa_insn_alloca): Likewise.
2488 * hsa.c (hsa_destroy_insn): Also handle instances of hsa_insn_br.
2489 (process_gpu_implementation_attributes): New function.
2490 (link_functions): Move some functionality into it. Adjust after
2491 renaming m_binded_functions to m_bound_functions.
2492 (hsa_insn_basic::op_output_p): Add BRIG_OPCODE_DEBUGTRAP
2493 to the list of instructions with no output registers.
2494 (get_in_type): Return this if it is a register of
2495 matching size.
2496 (hsa_get_declaration_name): Moved to...
2497 * hsa-gen.c (hsa_get_declaration_name): ...here. Allocate
2498 temporary string on an obstack instead from ggc.
2499 (query_hsa_grid): Renamed to query_hsa_grid_dim, reimplemented, cut
2500 down to two overloads.
2501 (hsa_allocp_operand_address): Removed.
2502 (hsa_allocp_operand_immed): Likewise.
2503 (hsa_allocp_operand_reg): Likewise.
2504 (hsa_allocp_operand_code_list): Likewise.
2505 (hsa_allocp_operand_operand_list): Likewise.
2506 (hsa_allocp_inst_basic): Likewise.
2507 (hsa_allocp_inst_phi): Likewise.
2508 (hsa_allocp_inst_mem): Likewise.
2509 (hsa_allocp_inst_atomic): Likewise.
2510 (hsa_allocp_inst_signal): Likewise.
2511 (hsa_allocp_inst_seg): Likewise.
2512 (hsa_allocp_inst_cmp): Likewise.
2513 (hsa_allocp_inst_br): Likewise.
2514 (hsa_allocp_inst_sbr): Likewise.
2515 (hsa_allocp_inst_call): Likewise.
2516 (hsa_allocp_inst_arg_block): Likewise.
2517 (hsa_allocp_inst_comment): Likewise.
2518 (hsa_allocp_inst_queue): Likewise.
2519 (hsa_allocp_inst_srctype): Likewise.
2520 (hsa_allocp_inst_packed): Likewise.
2521 (hsa_allocp_inst_cvt): Likewise.
2522 (hsa_allocp_inst_alloca): Likewise.
2523 (hsa_allocp_bb): Likewise.
2524 (hsa_obstack): New.
2525 (hsa_init_data_for_cfun): Initialize obstack.
2526 (hsa_deinit_data_for_cfun): Release memory of the obstack.
2527 (hsa_op_immed::operator new): Use obstack instead of object_allocator.
2528 (hsa_op_reg::operator new): Likewise.
2529 (hsa_op_address::operator new): Likewise.
2530 (hsa_op_code_list::operator new): Likewise.
2531 (hsa_op_operand_list::operator new): Likewise.
2532 (hsa_insn_basic::operator new): Likewise.
2533 (hsa_insn_phi::operator new): Likewise.
2534 (hsa_insn_br::operator new): Likewise.
2535 (hsa_insn_sbr::operator new): Likewise.
2536 (hsa_insn_cmp::operator new): Likewise.
2537 (hsa_insn_mem::operator new): Likewise.
2538 (hsa_insn_atomic::operator new): Likewise.
2539 (hsa_insn_signal::operator new): Likewise.
2540 (hsa_insn_seg::operator new): Likewise.
2541 (hsa_insn_call::operator new): Likewise.
2542 (hsa_insn_arg_block::operator new): Likewise.
2543 (hsa_insn_comment::operator new): Likewise.
2544 (hsa_insn_srctype::operator new): Likewise.
2545 (hsa_insn_packed::operator new): Likewise.
2546 (hsa_insn_cvt::operator new): Likewise.
2547 (hsa_insn_alloca::operator new): Likewise.
2548 (hsa_init_new_bb): Likewise.
2549 (hsa_bb::append_phi): New function.
2550 (gen_hsa_phi_from_gimple_phi): Use it.
2551 (get_symbol_for_decl): Fix dinstinguishing between
2552 global and local functions. Put local variables into a segment
2553 according to their attribute or static flag, if there is one.
2554 (hsa_insn_br::hsa_insn_br): New.
2555 (hsa_insn_br::operator new): Likewise.
2556 (hsa_insn_cbr::hsa_insn_cbr): Set width via ancestor constructor.
2557 (query_hsa_grid_nodim): New function.
2558 (multiply_grid_dim_characteristics): Likewise.
2559 (gen_get_num_threads): Likewise.
2560 (gen_get_num_teams): Reimplemented.
2561 (gen_get_team_num): Likewise.
2562 (gen_hsa_insns_for_known_library_call): Updated calls to the above
2563 helper functions.
2564 (get_memory_order_name): Removed.
2565 (get_memory_order): Likewise.
2566 (hsa_memorder_from_tree): New function.
2567 (gen_hsa_ternary_atomic_for_builtin): Renamed to
2568 gen_hsa_atomic_for_builtin, can also create signals.
2569 (gen_hsa_insns_for_call): Handle many new builtins. Adjust to use
2570 hsa_memory_order_from_tree and gen_hsa_atomic_for_builtin.
2571 (hsa_insn_atomic): Fix function comment.
2572 (hsa_insn_signal::hsa_insn_signal): Fix comment. Update call to
2573 ancestor constructor and initialization of new member variables.
2574 (hsa_insn_queue::hsa_insn_queue): Added initialization of new
2575 member variables.
2576 (hsa_get_host_function): Handle functions with no bound CPU
2577 implementation. Fix binded to bound.
2578 (get_brig_function_name): Likewise.
2579 (HSA_SORRY_ATV): Remove semicolon after macro.
2580 (HSA_SORRY_AT): Likewise.
2581 (omp_simple_builtin::generate): Add missing semicolons.
2582 (hsa_insn_phi::operator new): Removed.
2583 (hsa_insn_br::operator new): Likewise.
2584 (hsa_insn_cbr::operator new): Likewise.
2585 (hsa_insn_sbr::operator new): Likewise.
2586 (hsa_insn_cmp::operator new): Likewise.
2587 (hsa_insn_mem::operator new): Likewise.
2588 (hsa_insn_atomic::operator new): Likewise.
2589 (hsa_insn_signal::operator new): Likewise.
2590 (hsa_insn_seg::operator new): Likewise.
2591 (hsa_insn_call::operator new): Likewise.
2592 (hsa_insn_arg_block::operator new): Likewise.
2593 (hsa_insn_comment::operator new): Likewise.
2594 (hsa_insn_srctype::operator new): Likewise.
2595 (hsa_insn_packed::operator new): Likewise.
2596 (hsa_insn_cvt::operator new): Likewise.
2597 (hsa_insn_alloca::operator new): Likewise.
2598 (get_symbol_for_decl): Accept CONST_DECLs, put them to
2599 readonly segment.
2600 (gen_hsa_addr): Also process CONST_DECLs.
2601 (gen_hsa_addr_insns): Process CONST_DECLs by creating private
2602 copies.
2603 (gen_hsa_unary_operation): Make sure the function does
2604 not use bittype source type for firstbit and lastbit operations.
2605 (gen_hsa_popcount_to_dest): Make sure the function uses a bittype
2606 source type.
2607 * hsa-brig.c (emit_insn_operands): Cope with zero operands in an
2608 instruction.
2609 (emit_branch_insn): Renamed to emit_cond_branch_insn.
2610 Emit the width stored in the class.
2611 (emit_generic_branch_insn): New function.
2612 (emit_insn): Call emit_generic_branch_insn.
2613 (emit_signal_insn): Remove obsolete comment. Update
2614 member variable name, pick a type according to profile.
2615 (emit_alloca_insn): Remove obsolete comment.
2616 (emit_atomic_insn): Likewise.
2617 (emit_queue_insn): Get segment and memory order from the IR object.
2618 (hsa_brig_section): Make allocate_new_chunk, chunks
2619 and cur_chunk provate, add a default NULL parameter to add method.
2620 (hsa_brig_section::add): Added a new parameter, store pointer to
2621 output data there if it is non-NULL.
2622 (emit_function_directives): Use this new parameter instead of
2623 calculating the pointer itself, fix function comment.
2624 (hsa_brig_emit_function): Add forgotten endian conversion.
2625 (hsa_output_kernels): Remove unnecessary building of
2626 kernel_dependencies_vector_type.
2627 (emit_immediate_operand): Declare.
2628 (emit_directive_variable): Also emit initializers of CONST_DECLs.
2629 (gen_hsa_insn_for_internal_fn_call): Also handle IFN_RSQRT.
2630 (verify_function_arguments): Properly detect variadic
2631 arguments.
2632 * hsa-dump.c (hsa_width_specifier_name): New function.
2633 (dump_hsa_insn_1): Dump generic branch instructions, update signal
2634 member variable name. Special dumping for queue objects.
2635 * ipa-hsa.c (process_hsa_functions): Adjust after renaming
2636 m_binded_functions to m_bound_functions. Copy externally visible flag
2637 to the node.
2638 (ipa_hsa_write_summary): Likewise.
2639 (ipa_hsa_read_section): Likewise.
2640
2641 2016-11-23 Richard Biener <rguenther@suse.de>
2642
2643 PR tree-optimization/78396
2644 * tree-vectorizer.c (vectorize_loops): If an innermost loop didn't
2645 vectorize try vectorizing an if-converted body using BB vectorization.
2646
2647 2016-11-23 Richard Sandiford <richard.sandiford@arm.com>
2648 Alan Hayward <alan.hayward@arm.com>
2649 David Sherwood <david.sherwood@arm.com>
2650
2651 * rtlanal.c (subreg_get_info): Use more local variables.
2652 Remark that for HARD_REGNO_NREGS_HAS_PADDING, each scalar unit
2653 occupies at least one register. Assume that full hard registers
2654 have consistent endianness. Share previously-duplicated if block.
2655 Rework the main handling so that it operates on independently-
2656 addressable YMODE-sized blocks. Use subreg_size_lowpart_offset
2657 to check lowpart offsets, without trying to find an equivalent
2658 integer mode first. Handle WORDS_BIG_ENDIAN != REG_WORDS_BIG_ENDIAN
2659 as a final register-endianness correction.
2660
2661 2016-11-23 Segher Boessenkool <segher@kernel.crashing.org>
2662
2663 PR target/77881
2664 PR bootstrap/78390
2665 PR target/78438
2666 PR bootstrap/78477
2667 * combine.c (make_compound_operation_int): Do not convert a subreg of
2668 a non-constant logical shift right to a zero_extract. Handle the case
2669 where some zero bits have been shifted into the range covered by that
2670 subreg.
2671
2672 2016-11-23 Richard Sandiford <richard.sandiford@arm.com>
2673 Alan Hayward <alan.hayward@arm.com>
2674 David Sherwood <david.sherwood@arm.com>
2675
2676 * rtl.h (subreg_size_offset_from_lsb): Declare.
2677 (subreg_offset_from_lsb): New function.
2678 (subreg_size_lowpart_offset): Declare.
2679 (subreg_lowpart_offset): Turn into an inline function.
2680 (subreg_size_highpart_offset): Declare.
2681 (subreg_highpart_offset): Turn into an inline function.
2682 * emit-rtl.c (subreg_size_lowpart_offset): New function.
2683 (subreg_size_highpart_offset): Likewise
2684 * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
2685
2686 2016-11-23 Richard Biener <rguenther@suse.de>
2687
2688 PR tree-optimization/78482
2689 * tree-cfgcleanup.c: Include tree-ssa-loop-niter.h.
2690 (remove_forwarder_block_with_phi): When merging with a loop
2691 header creates a new latch reset number of iteration information
2692 of the loop.
2693
2694 2016-11-23 Eric Botcazou <ebotcazou@adacore.com>
2695
2696 * config/sparc/sparc.md (*ashrsi3_extend): Rename to...
2697 (*ashrsi3_extend0): ...this. Accept constant integers.
2698 (*ashrsi3_extend2): Rename to...
2699 (*ashrsi3_extend1): ...this.
2700 (*ashrsi3_extend2): New pattern.
2701 (*lshrsi3_extend1): Accept constant integers.
2702 (*lshrsi3_extend2): Fix condition on operand 2.
2703
2704 2016-11-23 Martin Liska <mliska@suse.cz>
2705
2706 * config/i386/i386.c: Initialize function pointer to NULL.
2707
2708 2016-11-23 Bin Cheng <bin.cheng@arm.com>
2709
2710 * fold-const.c (fold_cond_expr_with_comparison): Move simplification
2711 for A == C1 ? A : C2 to below.
2712 * match.pd: Move from above to here:
2713 (cond (eq (convert1? x) c1) (convert2? x) c2)
2714 -> (cond (eq x c1) c1 c2).
2715
2716 2016-11-23 Bin Cheng <bin.cheng@arm.com>
2717
2718 * fold-const.c (fold_cond_expr_with_comparison): Move simplification
2719 for A cmp C1 ? A : C2 to below, also simplify remaining code.
2720 * match.pd: Move and extend simplification from above to here:
2721 (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).
2722 * tree-if-conv.c (ifcvt_follow_ssa_use_edges): New func.
2723 (predicate_scalar_phi): Call fold_stmt using the new valueize func.
2724
2725 2016-11-23 Martin Liska <mliska@suse.cz>
2726 Martin Jambor <mjambor@suse.cz>
2727
2728 * doc/install.texi: Remove entry about --with-hsa-kmt-lib.
2729
2730 2016-11-23 Aldy Hernandez <aldyh@redhat.com>
2731
2732 PR target/78213
2733 * opts.c (finish_options): Set -fsyntax-only if running self tests.
2734
2735 2016-11-23 Richard Biener <rguenther@suse.de>
2736
2737 PR middle-end/71762
2738 * match.pd ((~X & Y) -> X < Y, (X & ~Y) -> Y < X,
2739 (~X | Y) -> X <= Y, (X | ~Y) -> Y <= X): Remove.
2740
2741 2016-11-23 Richard Biener <rguenther@suse.de>
2742
2743 PR lto/78472
2744 * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
2745 fields.
2746
2747 2016-11-23 Richard Biener <rguenther@suse.de>
2748 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.rog>
2749
2750 PR tree-optimization/78154
2751 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Return true if function
2752 returns it's argument and the argument is nonnull.
2753 * builtin-attrs.def: Define ATTR_RETURNS_NONNULL,
2754 ATT_RETNONNULL_NOTHROW_LEAF.
2755 * builtins.def (BUILT_IN_MEMPCPY): Change attribute to
2756 ATTR_RETNONNULL_NOTHROW_LEAF.
2757 (BUILT_IN_STPCPY): Likewise.
2758 (BUILT_IN_STPNCPY): Likewise.
2759 (BUILT_IN_MEMPCPY_CHK): Likewise.
2760 (BUILT_IN_STPCPY_CHK): Likewise.
2761 (BUILT_IN_STPNCPY_CHK): Likewise.
2762 (BUILT_IN_STRCAT): Change attribute to ATTR_RET1_NOTHROW_NONNULL_LEAF.
2763 (BUILT_IN_STRNCAT): Likewise.
2764 (BUILT_IN_STRNCPY): Likewise.
2765 (BUILT_IN_MEMSET_CHK): Likewise.
2766 (BUILT_IN_STRCAT_CHK): Likewise.
2767 (BUILT_IN_STRCPY_CHK): Likewise.
2768 (BUILT_IN_STRNCAT_CHK): Likewise.
2769 (BUILT_IN_STRNCPY_CHK): Likewise.
2770
2771 2016-11-23 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2772
2773 * fold-const.c (tree_expr_nonzero_p) : Make non-static.
2774 * fold-const.h (tree_expr_nonzero_p) : Declare.
2775 * match.pd (cmp (mult:c @0 @1) (mult:c @2 @1) : New Pattern.
2776
2777 2016-11-23 Paolo Bonzini <bonzini@gnu.org>
2778
2779 * system.h (HAVE_DESIGNATED_INITIALIZERS,
2780 HAVE_DESIGNATED_UNION_INITIALIZERS): Do not use
2781 "defined" in macros.
2782 * doc/cpp.texi (Defined): Mention -Wexpansion-to-defined.
2783 * doc/cppopts.texi (Invocation): Document -Wexpansion-to-defined.
2784 * doc/invoke.texi (Warning Options): Document -Wexpansion-to-defined.
2785
2786 2016-11-23 Georg-Johann Lay <avr@gjlay.de>
2787
2788 PR target/60300
2789 * config/avr/constraints.md (Csp): Widen range to [-11..6].
2790 * config/avr/avr.c (avr_prologue_setup_frame): Limit number
2791 of RCALLs in prologue to 3.
2792
2793 2016-11-22 Michael Collison <michael.collison@arm.com>
2794
2795 * config/aarch64/aarch64-protos.h
2796 (aarch64_and_split_imm1, aarch64_and_split_imm2)
2797 (aarch64_and_bitmask_imm): New prototypes
2798 * config/aarch64/aarch64.c (aarch64_and_split_imm1):
2799 New overloaded function to create bit mask covering the
2800 lowest to highest bits set.
2801 (aarch64_and_split_imm2): New overloaded functions to create bit
2802 mask of zeros between first and last bit set.
2803 (aarch64_and_bitmask_imm): New function to determine if a integer
2804 is a valid two instruction "and" operation.
2805 * config/aarch64/aarch64.md:(and<mode>3): New define_insn and _split
2806 allowing wider range of constants with "and" operations.
2807 * (ior<mode>3, xor<mode>3): Use new LOGICAL2 iterator to prevent
2808 "and" operator from matching restricted constant range used for
2809 ior and xor operators.
2810 * config/aarch64/constraints.md (UsO constraint): New SImode constraint
2811 for constants in "and" operantions.
2812 (UsP constraint): New DImode constraint for constants
2813 in "and" operations.
2814 * config/aarch64/iterators.md (lconst2): New mode iterator.
2815 (LOGICAL2): New code iterator.
2816 * config/aarch64/predicates.md (aarch64_logical_and_immediate): New
2817 predicate.
2818 (aarch64_logical_and_operand): New predicate allowing extended
2819 constants for "and" operations.
2820
2821 2016-11-22 Walter Lee <walt@tilera.com>
2822
2823 * config/tilegx/tilegx.md (trap): New pattern.
2824 * config/tilepro/tilepro.md (trap): Likewise.
2825
2826 2016-11-22 Walter Lee <walt@tilera.com>
2827
2828 * config/tilegx/tilegx.md (*zero_extract): Use
2829 define_insn_and_split instead of define_insn; Handle pos + size >
2830 64.
2831 (*sign_extract): Likewise.
2832
2833 2016-11-22 Marek Polacek <polacek@redhat.com>
2834
2835 PR tree-optimization/78455
2836 * tree-ssa-uninit.c (can_chain_union_be_invalidated_p): Fix typo.
2837
2838 2016-11-22 Ian Lance Taylor <iant@golang.org>
2839
2840 PR go/78431
2841 PR go/78432
2842 * godump.c (go_format_type): Always pass alignment as 1 when
2843 calling go_append_padding at end of struct/union.
2844
2845 2016-11-22 Jakub Jelinek <jakub@redhat.com>
2846
2847 PR target/78451
2848 * config/i386/avx512bwintrin.h (_mm512_setzero_qi,
2849 _mm512_setzero_hi): Removed.
2850 (_mm512_maskz_mov_epi16, _mm512_maskz_loadu_epi16,
2851 _mm512_maskz_mov_epi8, _mm512_maskz_loadu_epi8,
2852 _mm512_maskz_broadcastb_epi8, _mm512_maskz_set1_epi8,
2853 _mm512_maskz_broadcastw_epi16, _mm512_maskz_set1_epi16,
2854 _mm512_mulhrs_epi16, _mm512_maskz_mulhrs_epi16, _mm512_mulhi_epi16,
2855 _mm512_maskz_mulhi_epi16, _mm512_mulhi_epu16,
2856 _mm512_maskz_mulhi_epu16, _mm512_maskz_mullo_epi16,
2857 _mm512_cvtepi8_epi16, _mm512_maskz_cvtepi8_epi16, _mm512_cvtepu8_epi16,
2858 _mm512_maskz_cvtepu8_epi16, _mm512_permutexvar_epi16,
2859 _mm512_maskz_permutexvar_epi16, _mm512_avg_epu8, _mm512_maskz_avg_epu8,
2860 _mm512_maskz_add_epi8, _mm512_maskz_sub_epi8, _mm512_avg_epu16,
2861 _mm512_maskz_avg_epu16, _mm512_subs_epi8, _mm512_maskz_subs_epi8,
2862 _mm512_subs_epu8, _mm512_maskz_subs_epu8, _mm512_adds_epi8,
2863 _mm512_maskz_adds_epi8, _mm512_adds_epu8, _mm512_maskz_adds_epu8,
2864 _mm512_maskz_sub_epi16, _mm512_subs_epi16, _mm512_maskz_subs_epi16,
2865 _mm512_subs_epu16, _mm512_maskz_subs_epu16, _mm512_maskz_add_epi16,
2866 _mm512_adds_epi16, _mm512_maskz_adds_epi16, _mm512_adds_epu16,
2867 _mm512_maskz_adds_epu16, _mm512_srl_epi16, _mm512_maskz_srl_epi16,
2868 _mm512_packs_epi16, _mm512_sll_epi16, _mm512_maskz_sll_epi16,
2869 _mm512_maddubs_epi16, _mm512_maskz_maddubs_epi16, _mm512_unpackhi_epi8,
2870 _mm512_maskz_unpackhi_epi8, _mm512_unpackhi_epi16,
2871 _mm512_maskz_unpackhi_epi16, _mm512_unpacklo_epi8,
2872 _mm512_maskz_unpacklo_epi8, _mm512_unpacklo_epi16,
2873 _mm512_maskz_unpacklo_epi16, _mm512_shuffle_epi8,
2874 _mm512_maskz_shuffle_epi8, _mm512_min_epu16, _mm512_maskz_min_epu16,
2875 _mm512_min_epi16, _mm512_maskz_min_epi16, _mm512_max_epu8,
2876 _mm512_maskz_max_epu8, _mm512_max_epi8, _mm512_maskz_max_epi8,
2877 _mm512_min_epu8, _mm512_maskz_min_epu8, _mm512_min_epi8,
2878 _mm512_maskz_min_epi8, _mm512_max_epi16, _mm512_maskz_max_epi16,
2879 _mm512_max_epu16, _mm512_maskz_max_epu16, _mm512_sra_epi16,
2880 _mm512_maskz_sra_epi16, _mm512_srav_epi16, _mm512_maskz_srav_epi16,
2881 _mm512_srlv_epi16, _mm512_maskz_srlv_epi16, _mm512_sllv_epi16,
2882 _mm512_maskz_sllv_epi16, _mm512_maskz_packs_epi16, _mm512_packus_epi16,
2883 _mm512_maskz_packus_epi16, _mm512_abs_epi8, _mm512_maskz_abs_epi8,
2884 _mm512_abs_epi16, _mm512_maskz_abs_epi16, _mm512_dbsad_epu8,
2885 _mm512_maskz_dbsad_epu8, _mm512_srli_epi16, _mm512_maskz_srli_epi16,
2886 _mm512_slli_epi16, _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16,
2887 _mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16,
2888 _mm512_maskz_shufflelo_epi16, _mm512_srai_epi16,
2889 _mm512_maskz_srai_epi16, _mm512_packs_epi32,
2890 _mm512_maskz_packs_epi32, _mm512_packus_epi32,
2891 _mm512_maskz_packus_epi32): Use _mm512_setzero_si512 instead of
2892 _mm512_setzero_qi or _mm512_setzero_hi.
2893 (_mm512_maskz_alignr_epi8, _mm512_dbsad_epu8,
2894 _mm512_maskz_dbsad_epu8): Formatting fixes.
2895 (_mm512_srli_epi16, _mm512_maskz_srli_epi16, _mm512_slli_epi16,
2896 _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16,
2897 _mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16,
2898 _mm512_maskz_shufflelo_epi16, _mm512_srai_epi16,
2899 _mm512_maskz_srai_epi16): Use _mm512_setzero_si512 instead of
2900 _mm512_setzero_qi or _mm512_setzero_hi.
2901
2902 2016-11-22 Nathan Sidwell <nathan@acm.org>
2903
2904 * gcc-ar.c (main): Fix indentation.
2905 * gcov-io.c (gcov_write_summary): Remove extraneous {...}
2906 * ggc-page.c (move_ptes_to_front): Fix formatting.
2907 * hsa-dump.c (dump_has_cfun): Fix indentation.
2908 * sel-sched-ir.h: Remove trailing blank lines.
2909
2910 2016-11-22 Jakub Jelinek <jakub@redhat.com>
2911 Alexander Monakov <amonakov@ispras.ru>
2912
2913 * internal-fn.c (expand_GOMP_USE_SIMT): New function.
2914 * tree.c (omp_clause_num_ops): OMP_CLAUSE__SIMT_ has 0 operands.
2915 (omp_clause_code_name): Add _simt_ name.
2916 (walk_tree_1): Handle OMP_CLAUSE__SIMT_.
2917 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SIMT_.
2918 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__SIMT_.
2919 (scan_omp_simd): New function.
2920 (scan_omp_1_stmt): Use it in target regions if needed.
2921 (omp_max_vf): Don't max with omp_max_simt_vf.
2922 (lower_rec_simd_input_clauses): Use omp_max_simt_vf if
2923 OMP_CLAUSE__SIMT_ is present.
2924 (lower_rec_input_clauses): Compute maybe_simt from presence of
2925 OMP_CLAUSE__SIMT_.
2926 (lower_lastprivate_clauses): Likewise.
2927 (expand_omp_simd): Likewise. Remove explicit offloaded region check.
2928 (execute_omp_device_lower): Lower IFN_GOMP_USE_SIMT.
2929 * internal-fn.def (GOMP_USE_SIMT): New internal function.
2930 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__SIMT_.
2931
2932 2016-11-22 Alexander Monakov <amonakov@ispras.ru>
2933
2934 * internal-fn.c (expand_GOMP_SIMT_LANE): New.
2935 (expand_GOMP_SIMT_VF): New.
2936 (expand_GOMP_SIMT_LAST_LANE): New.
2937 (expand_GOMP_SIMT_ORDERED_PRED): New.
2938 (expand_GOMP_SIMT_VOTE_ANY): New.
2939 (expand_GOMP_SIMT_XCHG_BFLY): New.
2940 (expand_GOMP_SIMT_XCHG_IDX): New.
2941 * internal-fn.def (GOMP_SIMT_LANE): New.
2942 (GOMP_SIMT_VF): New.
2943 (GOMP_SIMT_LAST_LANE): New.
2944 (GOMP_SIMT_ORDERED_PRED): New.
2945 (GOMP_SIMT_VOTE_ANY): New.
2946 (GOMP_SIMT_XCHG_BFLY): New.
2947 (GOMP_SIMT_XCHG_IDX): New.
2948 * omp-low.c (omp_maybe_offloaded_ctx): New, outlined from...
2949 (create_omp_child_function): ...here. Set "omp target entrypoint"
2950 or "omp declare target" attribute based on is_gimple_omp_offloaded.
2951 (omp_max_simt_vf): New. Use it...
2952 (omp_max_vf): ...here.
2953 (lower_rec_input_clauses): Add reduction lowering for SIMT execution.
2954 (lower_lastprivate_clauses): Likewise, for "lastprivate" lowering.
2955 (lower_omp_ordered): Likewise, for "ordered" lowering.
2956 (expand_omp_simd): Add SIMT transforms.
2957 (pass_data_lower_omp): Add PROP_gimple_lomp_dev.
2958 (execute_omp_device_lower): New.
2959 (pass_data_omp_device_lower): New.
2960 (pass_omp_device_lower): New pass.
2961 (make_pass_omp_device_lower): New.
2962 * passes.def (pass_omp_device_lower): Position new pass.
2963 * tree-pass.h (PROP_gimple_lomp_dev): Define.
2964 (make_pass_omp_device_lower): Declare.
2965
2966 2016-11-22 Jakub Jelinek <jakub@redhat.com>
2967
2968 PR target/78451
2969 * config/i386/avx512vlintrin.h (_mm_setzero_di): Removed.
2970 (_mm_maskz_mov_epi64): Use _mm_setzero_si128 instead of
2971 _mm_setzero_di.
2972 (_mm_maskz_load_epi64): Likewise.
2973 (_mm_setzero_hi): Removed.
2974 (_mm_maskz_loadu_epi64): Use _mm_setzero_si128 instead of
2975 _mm_setzero_di.
2976 (_mm_abs_epi64, _mm_maskz_abs_epi64, _mm_maskz_srl_epi64,
2977 _mm_maskz_unpackhi_epi64, _mm_maskz_unpacklo_epi64,
2978 _mm_maskz_compress_epi64, _mm_srav_epi64, _mm_maskz_srav_epi64,
2979 _mm_maskz_sllv_epi64, _mm_maskz_srlv_epi64, _mm_rolv_epi64,
2980 _mm_maskz_rolv_epi64, _mm_rorv_epi64, _mm_maskz_rorv_epi64,
2981 _mm_min_epi64, _mm_max_epi64, _mm_max_epu64, _mm_min_epu64,
2982 _mm_lzcnt_epi64, _mm_maskz_lzcnt_epi64, _mm_conflict_epi64,
2983 _mm_maskz_conflict_epi64, _mm_sra_epi64, _mm_maskz_sra_epi64,
2984 _mm_maskz_sll_epi64, _mm_rol_epi64, _mm_maskz_rol_epi64,
2985 _mm_ror_epi64, _mm_maskz_ror_epi64, _mm_alignr_epi64,
2986 _mm_maskz_alignr_epi64, _mm_srai_epi64, _mm_maskz_slli_epi64):
2987 Likewise.
2988 (_mm_cvtepi32_epi8, _mm256_cvtepi32_epi8, _mm_cvtsepi32_epi8,
2989 _mm256_cvtsepi32_epi8, _mm_cvtusepi32_epi8, _mm256_cvtusepi32_epi8,
2990 _mm_cvtepi32_epi16, _mm256_cvtepi32_epi16, _mm_cvtsepi32_epi16,
2991 _mm256_cvtsepi32_epi16, _mm_cvtusepi32_epi16, _mm256_cvtusepi32_epi16,
2992 _mm_cvtepi64_epi8, _mm256_cvtepi64_epi8, _mm_cvtsepi64_epi8,
2993 _mm256_cvtsepi64_epi8, _mm_cvtusepi64_epi8, _mm256_cvtusepi64_epi8,
2994 _mm_cvtepi64_epi16, _mm256_cvtepi64_epi16, _mm_cvtsepi64_epi16,
2995 _mm256_cvtsepi64_epi16, _mm_cvtusepi64_epi16, _mm256_cvtusepi64_epi16,
2996 _mm_cvtepi64_epi32, _mm256_cvtepi64_epi32, _mm_cvtsepi64_epi32,
2997 _mm256_cvtsepi64_epi32, _mm_cvtusepi64_epi32, _mm256_cvtusepi64_epi32,
2998 _mm_maskz_set1_epi32, _mm_maskz_set1_epi64): Formatting fixes.
2999 (_mm_maskz_cvtps_ph, _mm256_maskz_cvtps_ph): Use _mm_setzero_si128
3000 instead of _mm_setzero_hi.
3001 (_mm256_permutex_pd, _mm256_maskz_permutex_epi64, _mm256_insertf32x4,
3002 _mm256_maskz_insertf32x4, _mm256_inserti32x4, _mm256_maskz_inserti32x4,
3003 _mm256_extractf32x4_ps, _mm256_maskz_extractf32x4_ps,
3004 _mm256_shuffle_i32x4, _mm256_maskz_shuffle_i32x4, _mm256_shuffle_f64x2,
3005 _mm256_maskz_shuffle_f64x2, _mm256_shuffle_f32x4,
3006 _mm256_maskz_shuffle_f32x4, _mm256_maskz_shuffle_pd,
3007 _mm_maskz_shuffle_pd, _mm256_maskz_shuffle_ps, _mm_maskz_shuffle_ps,
3008 _mm256_maskz_srli_epi32, _mm_maskz_srli_epi32, _mm_maskz_srli_epi64,
3009 _mm256_mask_slli_epi32, _mm256_maskz_slli_epi32, _mm256_mask_slli_epi64,
3010 _mm256_maskz_slli_epi64, _mm256_roundscale_ps,
3011 _mm256_maskz_roundscale_ps, _mm256_roundscale_pd,
3012 _mm256_maskz_roundscale_pd, _mm_roundscale_ps, _mm_maskz_roundscale_ps,
3013 _mm_roundscale_pd, _mm_maskz_roundscale_pd, _mm256_getmant_ps,
3014 _mm256_maskz_getmant_ps, _mm_getmant_ps, _mm_maskz_getmant_ps,
3015 _mm256_getmant_pd, _mm256_maskz_getmant_pd, _mm_getmant_pd,
3016 _mm_maskz_getmant_pd, _mm256_maskz_shuffle_epi32,
3017 _mm_maskz_shuffle_epi32, _mm256_rol_epi32, _mm256_maskz_rol_epi32,
3018 _mm_rol_epi32, _mm_maskz_rol_epi32, _mm256_ror_epi32,
3019 _mm256_maskz_ror_epi32, _mm_ror_epi32, _mm_maskz_ror_epi32,
3020 _mm_maskz_alignr_epi32, _mm_maskz_alignr_epi64,
3021 _mm256_maskz_srai_epi32, _mm_maskz_srai_epi32, _mm_srai_epi64,
3022 _mm_maskz_srai_epi64, _mm256_maskz_permutex_pd,
3023 _mm256_maskz_permute_pd, _mm256_maskz_permute_ps, _mm_maskz_permute_pd,
3024 _mm_maskz_permute_ps, _mm256_permutexvar_ps): Formatting fixes.
3025 (_mm_maskz_slli_epi64, _mm_rol_epi64, _mm_maskz_rol_epi64,
3026 _mm_ror_epi64, _mm_maskz_ror_epi64): Use _mm_setzero_si128 instead of
3027 _mm_setzero_di.
3028 (_mm_maskz_cvtps_ph, _mm256_maskz_cvtps_ph): Use _mm_setzero_si128
3029 instead of _mm_setzero_hi.
3030 * config/i386/avx512dqintrin.h (_mm512_broadcast_f64x2,
3031 _mm512_broadcast_i64x2, _mm512_broadcast_f32x2, _mm512_broadcast_i32x2,
3032 _mm512_broadcast_f32x8, _mm512_broadcast_i32x8): Formatting fixes.
3033 (_mm512_extracti64x2_epi64, _mm512_maskz_extracti64x2_epi64): Use
3034 _mm_setzero_si128 instead of _mm_setzero_di.
3035 (_mm512_cvtt_roundpd_epi64, _mm512_mask_cvtt_roundpd_epi64,
3036 _mm512_maskz_cvtt_roundpd_epi64, _mm512_cvtt_roundpd_epu64,
3037 _mm512_mask_cvtt_roundpd_epu64, _mm512_maskz_cvtt_roundpd_epu64,
3038 _mm512_cvtt_roundps_epi64, _mm512_mask_cvtt_roundps_epi64,
3039 _mm512_maskz_cvtt_roundps_epi64, _mm512_cvtt_roundps_epu64,
3040 _mm512_mask_cvtt_roundps_epu64, _mm512_maskz_cvtt_roundps_epu64,
3041 _mm512_cvt_roundpd_epi64, _mm512_mask_cvt_roundpd_epi64,
3042 _mm512_maskz_cvt_roundpd_epi64, _mm512_cvt_roundpd_epu64,
3043 _mm512_mask_cvt_roundpd_epu64, _mm512_maskz_cvt_roundpd_epu64,
3044 _mm512_cvt_roundps_epi64, _mm512_mask_cvt_roundps_epi64,
3045 _mm512_maskz_cvt_roundps_epi64, _mm512_cvt_roundps_epu64,
3046 _mm512_mask_cvt_roundps_epu64, _mm512_maskz_cvt_roundps_epu64,
3047 _mm512_cvt_roundepi64_ps, _mm512_mask_cvt_roundepi64_ps,
3048 _mm512_maskz_cvt_roundepi64_ps, _mm512_cvt_roundepu64_ps,
3049 _mm512_mask_cvt_roundepu64_ps, _mm512_maskz_cvt_roundepu64_ps,
3050 _mm512_cvt_roundepi64_pd, _mm512_mask_cvt_roundepi64_pd,
3051 _mm512_maskz_cvt_roundepi64_pd, _mm512_cvt_roundepu64_pd,
3052 _mm512_mask_cvt_roundepu64_pd, _mm512_maskz_cvt_roundepu64_pd,
3053 _mm512_reduce_pd, _mm512_maskz_reduce_pd, _mm512_reduce_ps,
3054 _mm512_maskz_reduce_ps, _mm512_extractf32x8_ps,
3055 _mm512_maskz_extractf32x8_ps, _mm512_extractf64x2_pd,
3056 _mm512_maskz_extractf64x2_pd, _mm512_extracti32x8_epi32,
3057 _mm512_maskz_extracti32x8_epi32, _mm512_range_pd,
3058 _mm512_maskz_range_pd, _mm512_range_ps, _mm512_maskz_range_ps,
3059 _mm512_range_round_pd, _mm512_maskz_range_round_pd,
3060 _mm512_range_round_ps, _mm512_maskz_range_round_ps,
3061 _mm512_maskz_insertf64x2, _mm512_insertf32x8,
3062 _mm512_maskz_insertf32x8): Formatting fixes.
3063 (_mm512_extracti64x2_epi64, _mm512_maskz_extracti64x2_epi64): Use
3064 _mm_setzero_si128 instead of _mm_setzero_di.
3065 * config/i386/avx512vldqintrin.h (_mm_cvttpd_epi64,
3066 _mm_cvttpd_epu64, _mm_cvtpd_epi64, _mm_cvtpd_epu64,
3067 _mm_cvttps_epi64, _mm_maskz_cvttps_epi64, _mm_cvttps_epu64,
3068 _mm_maskz_cvttps_epu64, _mm_maskz_mullo_epi64, _mm_cvtps_epi64,
3069 _mm_maskz_cvtps_epi64, _mm_cvtps_epu64, _mm_maskz_cvtps_epu64,
3070 _mm256_extracti64x2_epi64, _mm256_maskz_extracti64x2_epi64): Use
3071 _mm_setzero_si128 instead of _mm_setzero_di.
3072 (_mm256_extracti64x2_epi64, _mm256_maskz_extracti64x2_epi64):
3073 Likewise in macros.
3074 * config/i386/avx512vlbwintrin.h (_mm_maskz_mov_epi8,
3075 _mm_maskz_loadu_epi16, _mm_maskz_mov_epi16, _mm_maskz_loadu_epi8,
3076 _mm_permutexvar_epi16, _mm_maskz_maddubs_epi16): Use
3077 _mm_setzero_si128 instead of _mm_setzero_hi.
3078 (_mm_maskz_min_epu16, _mm_maskz_max_epu8, _mm_maskz_max_epi8,
3079 _mm_maskz_min_epu8, _mm_maskz_min_epi8, _mm_maskz_max_epi16,
3080 _mm_maskz_max_epu16, _mm_maskz_min_epi16): Use _mm_setzero_si128
3081 instead of _mm_setzero_di.
3082 (_mm_dbsad_epu8, _mm_maskz_shufflehi_epi16,
3083 _mm_maskz_shufflelo_epi16): Use _mm_setzero_si128 instead of
3084 _mm_setzero_hi.
3085 (_mm_maskz_shufflehi_epi16, _mm_maskz_shufflelo_epi16,
3086 _mm_maskz_slli_epi16): Use _mm_setzero_si128 instead of
3087 _mm_setzero_hi.
3088 (_mm_maskz_alignr_epi8): Use _mm_setzero_si128 instead of
3089 _mm_setzero_di.
3090 (_mm_maskz_mulhi_epi16, _mm_maskz_mulhi_epu16, _mm_maskz_mulhrs_epi16,
3091 _mm_maskz_mullo_epi16, _mm_srav_epi16, _mm_srlv_epi16,
3092 _mm_sllv_epi16): Use _mm_setzero_si128 instead of _mm_setzero_hi.
3093
3094 2016-11-22 Carl Love <cel@us.ibm.com>
3095
3096 * config/rs6000/rs6000-c.c: Add built-in support for vector compare
3097 equal and vector compare not equal. The vector compares take two
3098 arguments of type vector bool char, vector bool short, vector bool int,
3099 vector bool long long with the same return type.
3100 * doc/extend.texi: Update built-in documentation file for the new
3101 powerpc built-ins.
3102
3103 2016-11-22 Uros Bizjak <ubizjak@gmail.com>
3104
3105 * Makefile.in ($(lang_checks_parallelized)): Fix detection
3106 of -j argument.
3107
3108 2016-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
3109
3110 * config.gcc: Allow new rmprofile value for configure option
3111 --with-multilib-list.
3112 * config/arm/t-rmprofile: New file.
3113 * doc/install.texi (--with-multilib-list): Document new rmprofile value
3114 for ARM.
3115
3116 2016-11-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3117
3118 PR target/78439
3119 * config/arm/vfp.md (*movdi_vfp_cortexa8): Use 'q' constraints for the
3120 register operand in alternatives 4,5,6.
3121
3122 2016-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
3123
3124 PR target/77904
3125 * config/arm/arm.c (thumb1_compute_save_reg_mask): Mark frame pointer
3126 in save register mask if it is needed.
3127
3128 2016-11-22 Jakub Jelinek <jakub@redhat.com>
3129
3130 PR tree-optimization/78436
3131 * gimple-ssa-store-merging.c (zero_char_buf): Removed.
3132 (shift_bytes_in_array, shift_bytes_in_array_right,
3133 merged_store_group::apply_stores): Formatting fixes.
3134 (clear_bit_region): Likewise. Use memset.
3135 (encode_tree_to_bitpos): Formatting fixes. Fix comment typos - EPXR
3136 instead of EXPR and inerted instead of inserted. Use memset instead
3137 of zero_char_buf. For !BYTES_BIG_ENDIAN decrease byte_size by 1
3138 if shift_amnt is 0.
3139
3140 PR middle-end/78416
3141 * expmed.c (expand_divmod): Use wide_int for computation of
3142 op1_is_pow2. Don't set it if op1 is 0. Formatting fixes.
3143 Use size <= HOST_BITS_PER_WIDE_INT instead of
3144 HOST_BITS_PER_WIDE_INT >= size.
3145
3146 PR tree-optimization/78445
3147 * tree-if-conv.c (tree_if_conversion): If any_pred_load_store or
3148 any_complicated_phi, version loop even if flag_tree_loop_if_convert
3149 is 1. Formatting fix.
3150
3151 2016-11-22 Martin Liska <mliska@suse.cz>
3152
3153 PR ipa/78309
3154 * ipa-icf.c (void sem_item::set_hash): Update m_hash_set.
3155 (sem_function::get_hash): Use the new field.
3156 (sem_function::parse): Remove an argument from ctor.
3157 (sem_variable::parse): Likewise.
3158 (sem_variable::get_hash): Use the new field.
3159 (sem_item_optimizer::read_section): Use new ctor and set hash.
3160 * ipa-icf.h: _hash is removed from sem_item::sem_item,
3161 sem_variable::sem_variable, sem_function::sem_function.
3162
3163 2016-11-21 Jeff Law <law@redhat.com>
3164
3165 PR target/68538
3166 * config/cris/cris.md: Don't call copy_to_mode_reg unless
3167 can_create_pseudo_p is true.
3168
3169 2016-11-21 Segher Boessenkool <segher@kernel.crashing.org>
3170
3171 PR target/68803
3172 * config/rs6000/rs6000.md (*rotlsi3_insert_5, *rotldi3_insert_6,
3173 *rotldi3_insert_7): New define_insns.
3174
3175 2016-11-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3176
3177 * config/rs6000/rs6000.md (movdi_internal32): Change constraints
3178 so that DImode can be allocated to FP/vector registers in more
3179 cases, and we can avoid direct move operations. If the register
3180 needs reloading, prefer GPRs over FP/vector registers. In the
3181 case of FPR vs. Altivec registers, prefer FPR registers unless we
3182 have the ISA 3.0 reg+offset scalar instructions.
3183 (movdi_internal64): Likewise.
3184
3185 2016-11-21 Jakub Jelinek <jakub@redhat.com>
3186
3187 PR middle-end/67335
3188 * omp-simd-clone.c (simd_clone_adjust_argument_types): Use NULL prefix
3189 for tmp simd array if DECL_NAME (parm) is NULL.
3190
3191 2016-11-20 Jeff Law <law@redhat.com>
3192
3193 PR target/25128
3194 * config/m68k/predicates.md (swap_peephole_relational_operator): New
3195 predicate.
3196 * config/m68k/m68k.md (relational tests against 65535/65536): New
3197 peephole2.
3198
3199 2016-11-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3200
3201 * tree-ssa-loop-prefetch.c: Delete FIXME after the includes.
3202
3203 2016-11-21 Martin Sebor <msebor@redhat.com>
3204
3205 * doc/invoke.texi (-fprintf-return-value): Document that option
3206 is enabled by default.
3207
3208 2016-11-21 Georg-Johann Lay <avr@gjlay.de>
3209
3210 * config/avr/avr-c.c (avr_register_target_pragmas): Use C++
3211 for-loop declaration of loop variable.
3212 (avr_register_target_pragmas, avr_cpu_cpp_builtins): Same.
3213 * config/avr/avr.c (avr_popcount_each_byte)
3214 (avr_init_expanders, avr_regs_to_save, sequent_regs_live)
3215 (get_sequence_length, avr_prologue_setup_frame, avr_map_metric)
3216 (avr_expand_epilogue, avr_function_arg_advance)
3217 (avr_out_compare, avr_out_plus_1, avr_out_bitop, avr_out_fract)
3218 (avr_rotate_bytes, _reg_unused_after, avr_assemble_integer)
3219 (avr_adjust_reg_alloc_order, output_reload_in_const)
3220 (avr_conditional_register_usage, avr_find_unused_d_reg)
3221 (avr_map_decompose, avr_fold_builtin): Same.
3222
3223 2016-11-21 Georg-Johann Lay <avr@gjlay.de>
3224
3225 * config/avr/avr.c (avr_popcount): Remove static function.
3226 (avr_popcount_each_byte, avr_out_bitop): Use popcount_hwi instead.
3227
3228 2016-11-21 Richard Earnshaw <rearnsha@arm.com>
3229
3230 * arm.opt (mapcs-float): Delete option.
3231 * arm.c (arm_option_override): Remove hunk relating to
3232 TARGET_APCS_FLOAT.
3233 * doc/invoke.texi (arm options): Remove documentation for -mapcs-float.
3234
3235 2016-11-21 Richard Sandiford <richard.sandiford@arm.com>
3236
3237 * tree-tailcall.c (process_assignment): Simplify the check for
3238 a valid copy, allowing the source to be a local variable as
3239 well as an SSA name.
3240 (find_tail_calls): Allow copies between local variables to follow
3241 the call. Allow the result to be stored in any local variable,
3242 even if it's an aggregate.
3243 (eliminate_tail_call): Check whether the result is an SSA name
3244 before updating its SSA_NAME_DEF_STMT.
3245
3246 2016-11-21 David Malcolm <dmalcolm@redhat.com>
3247
3248 PR preprocessor/78324
3249 * input.c (get_substring_ranges_for_loc): Fail gracefully if
3250 -ftrack-macro-expansion has a value other than 2.
3251
3252 2016-11-21 Segher Boessenkool <segher@kernel.crashing.org>
3253
3254 PR rtl-optimization/78400
3255 * shrink-wrap.c (try_shrink_wrapping_separate): Call
3256 df_update_entry_exit_and_calls instead of df_update_entry_block_defs
3257 and df_update_exit_block_uses.
3258
3259 2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
3260
3261 PR c++/71973
3262 * doc/invoke.texi (-Wno-builtin-declaration-mismatch): Document the
3263 new default-enabled warning..
3264 * builtin-types.def (BT_CONST_TM_PTR): New primitive type.
3265 (BT_PTR_CONST_STRING): Updated.
3266 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR): Removed.
3267 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_TM_PTR): New function type.
3268 * builtins.def (DEF_TM_BUILTIN): Disable BOTH_P for TM builtins.
3269 (strftime): Update builtin function.
3270 * tree-core.h (TI_CONST_TM_PTR_TYPE): New enum value.
3271 * tree.h (const_tm_ptr_type_node): New type node.
3272 * tree.c (free_lang_data, build_common_tree_nodes): Initialize
3273 const_tm_ptr_type_node.
3274
3275 2016-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3276
3277 PR tree-optimization/78413
3278 * tree-if-conv.c (versionable_outer_loop_p): Require that both
3279 inner and outer loop latches have single predecessors.
3280
3281 2016-11-21 Georg-Johann Lay <avr@gjlay.de>
3282
3283 PR target/78093
3284 * config/avr/avr.c (avr_decl_maybe_lds_p): New static function.
3285 (avr_encode_section_info) [TARGET_ABSDATA && AVR_TINY]: Use it.
3286
3287 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3288
3289 * rtl.h: Adjust prototype.
3290 * rtlanal.c (dead_or_set_p): Change argument type to rtx_insn *.
3291 (dead_or_set_regno_p): Likewise.
3292
3293 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3294
3295 * rtl.h: Adjust prototype.
3296 * rtlanal.c (add_int_reg_note): Change argument type to rtx_insn *.
3297
3298 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3299
3300 * function.c (contains): Change argument type to rtx_insn *.
3301 (prologue_contains): Likewise.
3302 (epilogue_contains): Likewise.
3303 (prologue_epilogue_contains): Likewise.
3304 * function.h: Adjust prototype.
3305
3306 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3307
3308 * optabs.c (emit_libcall_block): Change argument type to
3309 rtx_insn *.
3310 * optabs.h: Adjust prototype.
3311
3312 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3313
3314 * cfgrtl.c (delete_insn): Change argument type to rtx_insn *.
3315 (fixup_reorder_chain): Adjust.
3316 * cfgrtl.h: Adjust prototype.
3317
3318 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3319
3320 * rtl.h: Adjust prototype.
3321 * rtlanal.c (replace_label_in_insn): Change argument type to
3322 rtx_insn *.
3323
3324 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3325
3326 * config/v850/v850.c (expand_prologue): Adjust.
3327 (expand_epilogue): Likewise.
3328 * expr.c (init_expr_target): Likewise.
3329 * genrecog.c (print_subroutine): Always make the argument type
3330 rtx_insn *.
3331 * recog.h: Adjust prototype.
3332
3333 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3334
3335 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): split
3336 up variables to make some rtx_insn *.
3337 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
3338 * config/arc/arc.c: Likewise.
3339 * config/arm/arm.c: Likewise.
3340 * config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Likewise.
3341 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue):
3342 Likewise.
3343 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
3344
3345 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3346
3347 * config/arm/arm.c (legitimize_pic_address): Change to use
3348 rtx_insn * as the type of variables.
3349 (arm_pic_static_addr): Likewise.
3350 (arm_emit_movpair): Likewise.
3351 * config/c6x/c6x.c (reorg_split_calls): Likewise.
3352 * config/darwin.c (machopic_legitimize_pic_address): Likewise.
3353 * config/frv/frv.c (frv_optimize_membar_local): Likewise.
3354 * config/frv/frv.md: Likewise.
3355 * config/i386/i386-protos.h: Likewise.
3356 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
3357 (ix86_split_fp_branch): Likewise.
3358 (predict_jump): Likewise.
3359 * config/ia64/ia64.c: Likewise.
3360 * config/mcore/mcore.c: Likewise.
3361 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
3362 * config/s390/s390.c: Likewise.
3363 * config/s390/s390.md: Likewise.
3364 * config/spu/spu.md: Likewise.
3365 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise.
3366 * lower-subreg.c (resolve_simple_move): Likewise.
3367
3368 2016-11-20 Jeff Law <law@redhat.com>
3369
3370 PR target/48551
3371 * reload.h (struct target_reload): Make x_double_reg_address_ok
3372 be per-mode rather.
3373 * reload.c (find_reloads_address): Check if double_reg_address_ok
3374 is true for the mode of the memory reference.
3375 * reload1.c (init_reload): Initialize double_reg_address_ok for
3376 each mode.
3377
3378 2016-11-20 Aldy Hernandez <aldyh@redhat.com>
3379
3380 PR middle-end/61409
3381 * tree-ssa-uninit.c: Define new global max_phi_args.
3382 (compute_uninit_opnds_pos): Use max_phi_args.
3383 (prune_uninit_phi_opnds): Same.
3384 (use_pred_not_overlap_with_undef_path_pred): Remove reference to
3385 missing NUM_PREDS in function comment.
3386 (can_one_predicate_be_invalidated_p): New.
3387 (can_chain_union_be_invalidated_p): New.
3388 (flatten_out_predicate_chains): New.
3389 (uninit_ops_invalidate_phi_use): New.
3390 (is_use_properly_guarded): Call uninit_ops_invalidate_phi_use.
3391
3392 2016-11-20 Marc Glisse <marc.glisse@inria.fr>
3393
3394 * fold-const.c (fold_comparison): Ignore EXACT_DIV_EXPR.
3395 * match.pd (A /[ex] B CMP C): New simplifications.
3396
3397 2016-11-20 Marc Glisse <marc.glisse@inria.fr>
3398
3399 * match.pd (0 / X, X / X, X % X): New simplifications.
3400
3401 2016-11-19 Jakub Jelinek <jakub@redhat.com>
3402
3403 * config/i386/i386.c (ix86_can_inline_p): Use || instead of &
3404 when checking if callee's isa flags are subset of caller's isa flags.
3405 Fix comment wording.
3406
3407 * config/i386/i386.c (ix86_valid_target_attribute_tree): Don't
3408 clear opts->x_ix86_isa_flags, clear opts->x_ix86_isa_flags2
3409 instead and using = 0 instead of &= 0.
3410
3411 * config/i386/i386.c (def_builtin, def_builtin2, def_builtin_const2,
3412 ix86_add_new_builtins): Formatting fixes.
3413 (ix86_expand_builtin): Use || instead of && for isa vs. isa2.
3414 (ix86_get_builtin): Likewise.
3415
3416 * config/i386/i386.c (ix86_expand_builtin): Remove msk_mov variable,
3417 don't initialize it, don't use it for the case where it isn't
3418 provable %{z} nor using the same argument, instead move merge
3419 argument into a new pseudo and use that as target. Formatting fixes.
3420
3421 2016-11-19 Jeff Law <law@redhat.com>
3422
3423 PR target/25111
3424 * config/m68k/m68k.md (bsetdreg): New pattern.
3425 (bchgdreg, bclrdreg): Likewise.
3426
3427 2016-11-19 Kaz Kojima <kkojima@gcc.gnu.org>
3428
3429 PR target/78426
3430 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Use copy_to_mode_reg
3431 instead of force_reg.
3432 (sh_expand_setmem): Likewise.
3433
3434 2016-11-19 Krister Walfridsson <krister.walfridsson@gmail.com>
3435
3436 * config.gcc (*-*-netbsd): Set use_gcc_stdint=wrap.
3437
3438 2016-11-18 Walter Lee <walt@tilera.com>
3439
3440 * config/tilegx/tilegx.c (tilegx_gen_bundles): Preserve
3441 end-of-bundle marker for consecutive barriers.
3442
3443 2016-11-18 Walter Lee <walt@tilera.com>
3444
3445 * config/tilegx/tilegx.md (clzsi2): Fix for big-endian.
3446
3447 2016-11-18 Jakub Jelinek <jakub@redhat.com>
3448
3449 PR middle-end/78419
3450 * multiple_target.c (get_attr_len): Start with argnum and increment
3451 argnum on every arg. Use strchr in a loop instead of counting commas
3452 manually.
3453 (get_attr_str): Increment argnum for every comma in the string.
3454 (separate_attrs): Use for instead of while loop, simplify.
3455 (expand_target_clones): Rename defenition argument to definition.
3456 Free attrs and attr_str even when diagnosing errors. Temporarily
3457 change input_location around targetm.target_option.valid_attribute_p
3458 calls. Don't emit warning or errors if that function fails.
3459
3460 * dwarf2out.c (size_of_discr_list): Fix typo in function comment.
3461
3462 PR debug/78191
3463 * dwarf2out.c (abbrev_opt_base_type_end): New variable.
3464 (die_abbrev_cmp): Sort dies with die_abbrev smaller than
3465 abbrev_opt_base_type_end only by increasing die_abbrev, before
3466 any other dies.
3467 (optimize_abbrev_table): Don't change abbrev numbers of
3468 base types and CU or optimize implicit consts in them if
3469 calc_base_type_die_sizes has been called during build_abbrev_table.
3470 (calc_base_type_die_sizes): If abbrev_opt_start, set
3471 abbrev_opt_base_type_end to one plus largest base type's die_abbrev.
3472
3473 2016-11-18 Jeff Law <law@redhat.com>
3474
3475 PR target/25112
3476 * config/m68k/m68k.c (moveq feeding equality comparison): New
3477 peepholes.
3478 * config/m68k/predicates.md (addq_subq_operand): New predicate.
3479 (equality_comparison_operator): Likewise.
3480
3481 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
3482
3483 * rtlanal.c (load_extend_op): Move to...
3484 * rtl.h: ...here and make inline.
3485
3486 2016-11-18 Terry Guo <terry.guo@arm.com>
3487 Thomas Preud'homme <thomas.preudhomme@arm.com>
3488
3489 * common/config/arm/arm-common.c (arm_target_thumb_only): New function.
3490 * config/arm/arm-opts.h: Include arm-flags.h.
3491 (struct arm_arch_core_flag): Define.
3492 (arm_arch_core_flags): Define.
3493 * config/arm/arm-protos.h: Include arm-flags.h
3494 (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M, FL_MODE26, FL_MODE32,
3495 FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED, FL_STRONG, FL_ARCH5E,
3496 FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF, FL_ARCH6K, FL_THUMB2, FL_NOTM,
3497 FL_THUMB_DIV, FL_VFPV3, FL_NEON, FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV,
3498 FL_ARCH8, FL_CRC32, FL_SMALLMUL, FL_NO_VOLATILE_CE, FL_IWMMXT,
3499 FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1, FL2_ARCH8_2, FL2_FP16INST,
3500 FL_TUNE, FL_FOR_ARCH2, FL_FOR_ARCH3, FL_FOR_ARCH3M, FL_FOR_ARCH4,
3501 FL_FOR_ARCH4T, FL_FOR_ARCH5, FL_FOR_ARCH5T, FL_FOR_ARCH5E,
3502 FL_FOR_ARCH5TE, FL_FOR_ARCH5TEJ, FL_FOR_ARCH6, FL_FOR_ARCH6J,
3503 FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK, FL_FOR_ARCH6KZ,
3504 FL_FOR_ARCH6T2, FL_FOR_ARCH6M, FL_FOR_ARCH7, FL_FOR_ARCH7A,
3505 FL_FOR_ARCH7VE, FL_FOR_ARCH7R, FL_FOR_ARCH7M, FL_FOR_ARCH7EM,
3506 FL_FOR_ARCH8A, FL2_FOR_ARCH8_1A, FL2_FOR_ARCH8_2A, FL_FOR_ARCH8M_BASE,
3507 FL_FOR_ARCH8M_MAIN, arm_feature_set, ARM_FSET_MAKE,
3508 ARM_FSET_MAKE_CPU1, ARM_FSET_MAKE_CPU2, ARM_FSET_CPU1, ARM_FSET_CPU2,
3509 ARM_FSET_EMPTY, ARM_FSET_ANY, ARM_FSET_HAS_CPU1, ARM_FSET_HAS_CPU2,
3510 ARM_FSET_HAS_CPU, ARM_FSET_ADD_CPU1, ARM_FSET_ADD_CPU2,
3511 ARM_FSET_DEL_CPU1, ARM_FSET_DEL_CPU2, ARM_FSET_UNION, ARM_FSET_INTER,
3512 ARM_FSET_XOR, ARM_FSET_EXCLUDE, ARM_FSET_IS_EMPTY,
3513 ARM_FSET_CPU_SUBSET): Move to ...
3514 * config/arm/arm-flags.h: This new file.
3515 * config/arm/arm.h (TARGET_MODE_SPEC_FUNCTIONS): Define.
3516 (EXTRA_SPEC_FUNCTIONS): Add TARGET_MODE_SPEC_FUNCTIONS to its value.
3517 (TARGET_MODE_SPECS): Define.
3518 (DRIVER_SELF_SPECS): Add TARGET_MODE_SPECS to its value.
3519
3520 2016-11-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
3521
3522 * config/arm/arm-protos.h (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M,
3523 FL_MODE26, FL_MODE32, FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED,
3524 FL_STRONG, FL_ARCH5E, FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF,
3525 FL_ARCH6K, FL_THUMB2, FL_NOTM, FL_THUMB_DIV, FL_VFPV3, FL_NEON,
3526 FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV, FL_ARCH8, FL_CRC32, FL_SMALLMUL,
3527 FL_NO_VOLATILE_CE, FL_IWMMXT, FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1,
3528 FL2_ARCH8_2, FL2_FP16INST): Reindent comment, add final dot when
3529 missing and make value unsigned.
3530 (arm_feature_set): Use unsigned entries instead of unsigned long.
3531
3532 2016-11-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
3533
3534 Re-apply after PR bootstrap/77359 is fixed:
3535 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
3536
3537 * explow.c (get_dynamic_stack_size): Take known alignment of stack
3538 pointer + STACK_DYNAMIC_OFFSET into account when calculating the
3539 size needed.
3540
3541 2016-11-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
3542
3543 PR bootstrap/77359
3544 * config/rs6000/rs6000.c (rs6000_stack_info): Properly align local
3545 variables in functions calling alloca. Also update the ASCII
3546 drawings.
3547 * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET)
3548 (STACK_DYNAMIC_OFFSET): Likewise.
3549 * config/rs6000/aix.h (STARTING_FRAME_OFFSET)
3550 (STACK_DYNAMIC_OFFSET): Copy AIX specific versions of the rs6000.h
3551 macros to aix.h.
3552
3553 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
3554 Alan Hayward <alan.hayward@arm.com>
3555 David Sherwood <david.sherwood@arm.com>
3556
3557 * combine.c (try_combine): Use rtx_mode_t instead of std::make_pair.
3558 * dwarf2out.c (mem_loc_descriptor, loc_descriptor): Likewise.
3559 (add_const_value_attribute): Likewise.
3560 * explow.c (plus_constant): Likewise.
3561 * expmed.c (expand_mult, make_tree): Likewise.
3562 * expr.c (convert_modes): Likewise.
3563 * loop-doloop.c (doloop_optimize): Likewise.
3564 * postreload.c (reload_cse_simplify_set): Likewise.
3565 * simplify-rtx.c (simplify_const_unary_operation): Likewise
3566 (simplify_binary_operation_1, simplify_const_binary_operation):
3567 Likewise.
3568 (simplify_const_relational_operation, simplify_immed_subreg): Likewise.
3569 * wide-int.h: Update documentation to recommend rtx_mode_t
3570 instead of std::make_pair.
3571
3572 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
3573 Alan Hayward <alan.hayward@arm.com>
3574 David Sherwood <david.sherwood@arm.com>
3575
3576 * tree.h (SET_DECL_MODE): New macro.
3577 * cfgexpand.c (avoid_deep_ter_for_debug): Use SET_DECL_MODE.
3578 (expand_gimple_basic_block): Likewise.
3579 * function.c (split_complex_args): Likeise.
3580 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3581 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise.
3582 * stor-layout.c (layout_decl, relayout_decl): Likewise.
3583 (finish_bitfield_representative): Likewise.
3584 * tree.c (make_node_stat): Likewise.
3585 * tree-inline.c (remap_ssa_name): Likewise.
3586 (tree_function_versioning): Likewise.
3587 * tree-into-ssa.c (rewrite_debug_stmt_uses): Likewise.
3588 * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
3589 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
3590 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise.
3591 * tree-ssa.c (insert_debug_temp_for_var_def): Likewise.
3592 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
3593 * varasm.c (make_debug_expr_from_rtl): Likewise.
3594
3595 2016-11-18 Segher Boessenkool <segher@kernel.crashing.org>
3596
3597 PR rtl-optimization/71785
3598 * bb-reorder.c (maybe_duplicate_computed_goto): New function.
3599 (duplicate_computed_gotos): New function.
3600 (pass_duplicate_computed_gotos::execute): Rewrite.
3601
3602 2016-11-17 Jeff Law <law@redhat.com>
3603
3604 PR target/47192
3605 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a scheduling
3606 barrier prior to deallocating the stack.
3607
3608 2016-11-17 Andrew Burgess <andrew.burgess@embecosm.com>
3609
3610 * config/arc/arc.md (cmem bit/sign-extend peephole2): New peephole
3611 to make better use of cmem loads in the case where a single bit is
3612 being accessed.
3613 * config/arc/predicates.md (ge_lt_comparison_operator): New predicate.
3614
3615 2016-11-17 Andrew Senkevich <andrew.senkevich@intel.com>
3616
3617 * config/i386/i386.c (processor_features): Add F_AVX5124VNNIW,
3618 F_AVX5124FMAPS.
3619 (isa_names_table): Handle new features.
3620
3621 2016-11-17 Kirill Yukhin <kirill.yukhin@gmail.com>
3622 Andrew Senkevich <andrew.senkevich@intel.com>
3623
3624 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX5124FMAPS_SET,
3625 OPTION_MASK_ISA_AVX5124FMAPS_UNSET, OPTION_MASK_ISA_AVX5124VNNIW_SET,
3626 OPTION_MASK_ISA_AVX5124VNNIW_UNSET): New.
3627 (ix86_handle_option): Handle OPT_mavx5124fmaps, OPT_mavx5124vnniw.
3628 * config.gcc: Add avx5124fmapsintrin.h, avx5124vnniwintrin.h.
3629 * config/i386/avx5124fmapsintrin.h: New file.
3630 * config/i386/avx5124vnniwintrin.h: Ditto.
3631 * config/i386/constraints.md (h): New constraint.
3632 * config/i386/cpuid.h (bit_AVX5124VNNIW, bit_AVX5124FMAPS): New.
3633 * config/i386/driver-i386.c (host_detect_local_cpu):
3634 Detect avx5124fmaps, avx5124vnniw.
3635 * config/i386/i386-builtin-types.def: Add types
3636 V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF_V16SF_UHI,
3637 V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF,
3638 V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF,
3639 V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF_V4SF_UQI,
3640 V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI,
3641 V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI_V16SI_UHI.
3642 * config/i386/i386-builtin.def (__builtin_ia32_4fmaddps_mask,
3643 __builtin_ia32_4fmaddps, __builtin_ia32_4fmaddss,
3644 __builtin_ia32_4fmaddss_mask, __builtin_ia32_4fnmaddps_mask,
3645 __builtin_ia32_4fnmaddps, __builtin_ia32_4fnmaddss,
3646 __builtin_ia32_4fnmaddss_mask, __builtin_ia32_vp4dpwssd,
3647 __builtin_ia32_vp4dpwssd_mask, __builtin_ia32_vp4dpwssds,
3648 __builtin_ia32_vp4dpwssds_mask): New.
3649 * config/i386/i386-c.c (ix86_target_macros_internal):
3650 Define __AVX5124FMAPS__, __AVX5124VNNIW__.
3651 * config/i386/i386-modes.def: Fixed comment typos, added new
3652 modes (VECTOR_MODES (FLOAT, 256), VECTOR_MODE (INT, SI, 64)).
3653 * config/i386/i386.c (ix86_target_string): Add -mavx5124fmaps,
3654 -mavx5124vnniw.
3655 (PTA_AVX5124FMAPS, PTA_AVX5124VNNIW): Define.
3656 (ix86_option_override_internal): Handle new options.
3657 (ix86_valid_target_attribute_inner_p): Add avx5124fmaps,
3658 avx5124vnniw.
3659 (ix86_expand_builtin): Handle new builtins.
3660 (ix86_additional_allocno_class_p): New.
3661 * config/i386/i386.h (TARGET_AVX5124FMAPS, TARGET_AVX5124FMAPS_P,
3662 TARGET_AVX5124VNNIW, TARGET_AVX5124VNNIW_P): Define.
3663 (reg_class): Add MOD4_SSE_REGS.
3664 (MOD4_SSE_REG_P, MOD4_SSE_REGNO_P): New.
3665 * config/i386/i386.opt: Add mavx5124fmaps, mavx5124vnniw.
3666 * config/i386/immintrin.h: Include avx5124fmapsintrin.h,
3667 avx5124vnniwintrin.h.
3668 * config/i386/sse.md (unspec): Add UNSPEC_VP4FMADD, UNSPEC_VP4FNMADD,
3669 UNSPEC_VP4DPWSSD, UNSPEC_VP4DPWSSDS.
3670 (define_mode_iterator IMOD4): New.
3671 (define_mode_attr imod4_narrow): Ditto.
3672 (define_insn "mov<mode>"): Ditto.
3673 (define_insn "avx5124fmaddps_4fmaddps"): Ditto.
3674 (define_insn "avx5124fmaddps_4fmaddps_mask"): Ditto.
3675 (define_insn "avx5124fmaddps_4fmaddps_maskz"): Ditto.
3676 (define_insn "avx5124fmaddps_4fmaddss"): Ditto.
3677 (define_insn "avx5124fmaddps_4fmaddss_mask"): Ditto.
3678 (define_insn "avx5124fmaddps_4fmaddss_maskz"): Ditto.
3679 (define_insn "avx5124fmaddps_4fnmaddps"): Ditto.
3680 (define_insn "avx5124fmaddps_4fnmaddps_mask"): Ditto.
3681 (define_insn "avx5124fmaddps_4fnmaddps_maskz"): Ditto.
3682 (define_insn "avx5124fmaddps_4fnmaddss"): Ditto.
3683 (define_insn "avx5124fmaddps_4fnmaddss_mask"): Ditto.
3684 (define_insn "avx5124fmaddps_4fnmaddss_maskz"): Ditto.
3685 (define_insn "avx5124vnniw_vp4dpwssd"): Ditto.
3686 (define_insn "avx5124vnniw_vp4dpwssd_mask"): Ditto.
3687 (define_insn "avx5124vnniw_vp4dpwssd_maskz"): Ditto.
3688 (define_insn "avx5124vnniw_vp4dpwssds"): Ditto.
3689 (define_insn "avx5124vnniw_vp4dpwssds_mask"): Ditto.
3690 (define_insn "avx5124vnniw_vp4dpwssds_maskz"): Ditto.
3691 * init-regs.c (initialize_uninitialized_regs): Add emit_clobber call.
3692 * genmodes.c (mode_size_inline): Extend return type.
3693 * machmode.h (mode_size, mode_base_align): Extend type.
3694
3695 2016-11-17 Michael Meissner <meissner@linux.vnet.ibm.com>
3696
3697 PR target/78101
3698 * config/rs6000/predicates.md (fusion_addis_mem_combo_load): Add
3699 the appropriate checks for SFmode/DFmode load/stores in GPR
3700 registers.
3701 (fusion_addis_mem_combo_store): Likewise.
3702 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Rename
3703 fusion_fpr_* to fusion_vsx_* and add in support for ISA 3.0 scalar
3704 d-form instructions for traditional Altivec registers.
3705 (emit_fusion_p9_load): Likewise.
3706 (emit_fusion_p9_store): Likewise.
3707 * config/rs6000/rs6000.md (p9 fusion store peephole2): Remove
3708 early clobber from scratch register. Do not match if the register
3709 being stored is the scratch register.
3710 (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Rename fusion_fpr_*
3711 to fusion_vsx_* and add in support for ISA 3.0 scalar d-form
3712 instructions for traditional Altivec registers.
3713 (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
3714 (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
3715 (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
3716
3717 2016-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
3718
3719 PR target/77933
3720 * config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr
3721 being live in the function and lr needing to be saved. Distinguish
3722 between already saved pushable registers and registers to push.
3723 Check for LR being an available pushable register.
3724
3725 2016-11-17 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3726
3727 * config/i386/i386.md (cmpstrnsi): New test to bail out if neither
3728 string input is a string constant.
3729 * builtins.c (expand_builtin_strncmp): Attempt expansion of strncmp
3730 via cmpstrnsi even if neither string is constant.
3731
3732 2016-11-17 Jakub Jelinek <jakub@redhat.com>
3733
3734 PR middle-end/78201
3735 * varasm.c (default_use_anchors_for_symbol_p): Fix a comment typo.
3736 Don't test decl != NULL. Don't look at DECL_SIZE, but DECL_SIZE_UNIT
3737 instead, return false if it is NULL, or doesn't fit into uhwi, or
3738 is larger or equal to targetm.max_anchor_offset.
3739
3740 2016-11-17 Pip Cet <pipcet@gmail.com>
3741 Eric Botcazou <ebotcazou@adacore.com>
3742
3743 PR rtl-optimization/78355
3744 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Document that the macro only
3745 needs to deal with unaligned accesses.
3746 * doc/tm.texi: Regenerate.
3747 * lra-constraints.c (simplify_operand_subreg): Only invoke
3748 SLOW_UNALIGNED_ACCESS on innermode if the MEM is not aligned enough.
3749
3750 2016-11-17 David Malcolm <dmalcolm@redhat.com>
3751
3752 * input.c (selftest::test_lexer_string_locations_long_line): New
3753 function.
3754 (selftest::test_lexer_string_locations_raw_string_multiline): New
3755 function.
3756 (selftest::input_c_tests): Call the new functions, via
3757 for_each_line_table_case.
3758
3759 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3760
3761 * config/aarch64/aarch64.md (mov<mode>): Call
3762 aarch64_split_dimode_const_store on DImode constant stores.
3763 * config/aarch64/aarch64-protos.h (aarch64_split_dimode_const_store):
3764 New prototype.
3765 * config/aarch64/aarch64.c (aarch64_split_dimode_const_store): New
3766 function.
3767
3768 2016-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3769 Richard Biener <rguenther@suse.de>
3770
3771 PR tree-optimization/77848
3772 * tree-if-conv.c (tree_if_conversion): Always version loops unless
3773 the user specified -ftree-loop-if-convert.
3774
3775 2016-11-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
3776
3777 PR target/77308
3778 * config/arm/arm.md (*thumb2_ldrd, *thumb2_ldrd_base,
3779 *thumb2_ldrd_base_neg, *thumb2_strd, *thumb2_strd_base,
3780 *thumb2_strd_base_neg): Recognize insn regardless of
3781 current_tune->prefer_ldrd_strd.
3782 * config/arm/ldrdstrd.md: Enable all ldrd/strd peephole rules
3783 whenever possible.
3784
3785 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com>
3786
3787 * config/arc/arc.c (arc_ccfsm_post_advance): Handle return
3788 instruction type.
3789
3790 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com>
3791
3792 * config/arc/arc-arches.def: Add FPX quarkse instruction as valid
3793 for arcem.
3794 * config/arc/arc-c.def (__ARC_FPX_QUARK__): Define.
3795 * config/arc/arc-cpus.def (quarkse_em): Add.
3796 * config/arc/arc-options.def (FL_FPX_QUARK, FL_QUARK): Likewise.
3797 * config/arc/arc-opts.h (FPX_QK): Define.
3798 * config/arc/arc-tables.opt: Regenerate.
3799 * config/arc/arc.c (gen_compare_reg): Change.
3800 (arc_register_move_cost): Avoid Dy,Dx moves.
3801 * config/arc/arc.h (TARGET_HARD_FLOAT): Change.
3802 (TARGET_FPX_QUARK, TARGET_FP_ASSIST): Define.
3803 * config/arc/arc.md (divsf3, sqrtsf2, fix_truncsfsi2, floatsisf2):
3804 New expands.
3805 * config/arc/fpu.md (divsf3_fpu, sqrtsf2_fpu, floatsisf2_fpu)
3806 (fix_truncsfsi2_fpu): Rename.
3807 * config/arc/fpx.md (cmp_quark, cmpsf_quark_, cmpsf_quark_ord)
3808 (cmpsf_quark_uneq, cmpsf_quark_eq, divsf3_quark, sqrtsf2_quark)
3809 (fix_truncsfsi2_quark, floatsisf2_quark): New patterns.
3810 * config/arc/t-multilib: Regenerate.
3811
3812 2016-11-17 Georg-Johann Lay <avr@gjlay.de>
3813
3814 * config/avr/avr.c (avr_print_operand_address): Use CONST_INT_P if
3815 appropriate.
3816 (ashlqi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out): Same.
3817 (ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Same.
3818 (avr_rtx_costs_1, extra_constraint_Q): Same.
3819 (avr_address_cost): Use SUBREG_P if possible.
3820
3821 2016-11-17 Richard Biener <rguenther@suse.de>
3822
3823 PR middle-end/78383
3824 * tree-cfgcleanup.c (cleanup_control_flow_bb): Do not turn
3825 non-local goto into CFG.
3826
3827 2016-11-17 Richard Biener <rguenther@suse.de>
3828
3829 * common.opt (ftree-loop-if-convert-stores): Mark as preserved for
3830 backward compatibility.
3831 * doc/invoke.texi (ftree-loop-if-convert-stores): Remove.
3832 * tree-if-conv.c (pass_if_conversion::gate): Do not test
3833 flag_tree_loop_if_convert_stores.
3834 (pass_if_conversion::execute): Likewise.
3835
3836 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3837
3838 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): Check for
3839 const_double code before calling aarch64_float_const_zero_rtx_p.
3840
3841 2016-11-17 Richard Biener <rguenther@suse.de>
3842
3843 PR tree-optimization/78306
3844 * ipa-inline-analysis.c (initialize_inline_failed): Do not
3845 inhibit inlining if function calls cilk_spawn.
3846 (can_inline_edge_p): Likewise.
3847
3848 2016-11-17 Richard Biener <rguenther@suse.de>
3849
3850 PR middle-end/78305
3851 * fold-const.c (negate_expr_p): Fix multiplication case.
3852
3853 2016-11-17 Chung-Lin Tang <cltang@codesourcery.com>
3854
3855 PR target/78357
3856 * config/nios2/nios2.c (nios2_init_libfuncs): Remove TARGET_LINUX_ABI
3857 condition.
3858 (TARGET_INIT_LIBFUNCS): Delete definition and...
3859 * config/nios2/linux.h (TARGET_INIT_LIBFUNCS): ...move to here, add
3860 comments.
3861
3862 2016-11-17 Krister Walfridsson <krister.walfridsson@gmail.com>
3863
3864 * config/netbsd-stdint.h: New.
3865 * config.gcc (i[34567]86-*-netbsd): Add netbsd-stdint.h to tm_file.
3866 (x86_64-*-netbsd*): Likewise.
3867
3868 2016-11-16 Andrew PInski <apinski@cavium.com>
3869
3870 * config/aarch64/aarch64.opt (mverbose-cost-dump): New option.
3871 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
3872 flag_aarch64_verbose_cost instead of checking for details dump.
3873 (aarch64_rtx_costs_wrapper): Likewise.
3874
3875 2016-11-16 Jakub Jelinek <jakub@redhat.com>
3876
3877 PR rtl-optimization/78378
3878 * combine.c (make_extraction): Use force_to_mode for non-{REG,MEM}
3879 inner only if pos is 0. Fix up formatting.
3880
3881 2016-11-17 Alan Modra <amodra@gmail.com>
3882
3883 PR rtl-optimization/78325
3884 PR rtl-optimization/70890
3885 * ira.c (combine_and_move_insns): Only remove REG_EQUIV notes
3886 for dead regno.
3887
3888 2016-11-16 Jason Merrill <jason@redhat.com>
3889
3890 * rtl.h: Declare gt_ggc_mx and gt_pch_nx.
3891
3892 2016-11-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3893 Richard Biener <rguenther@suse.de>
3894
3895 PR tree-optimization/77848
3896 * tree-if-conv.c (version_loop_for_if_conversion): When versioning
3897 an outer loop, only save basic block aux information for the inner
3898 loop.
3899 (versionable_outer_loop_p): New function.
3900 (tree_if_conversion): Version the outer loop instead of the inner
3901 one if the pattern will be recognized for outer-loop
3902 vectorization.
3903
3904 2016-11-16 Andrew Burgess <andrew.burgess@embecosm.com>
3905
3906 * gcc/bb-reorder.c: Remove 'toplev.h' include.
3907 (pass_partition_blocks::gate): No longer check
3908 user_defined_section_attribute, instead check the function decl
3909 for a section attribute.
3910 * gcc/c-family/c-attribs.c (handle_section_attribute): No longer
3911 set user_defined_section_attribute.
3912 * gcc/final.c (rest_of_handle_final): Likewise.
3913 * gcc/toplev.c: Remove definition of user_defined_section_attribute.
3914 * gcc/toplev.h: Remove declaration of
3915 user_defined_section_attribute.
3916
3917 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3918
3919 * config/mips/mips.md (casesi_internal_mips16_<mode>):
3920 Explicitly switch between JR and JRC for the table jump. Adjust
3921 instruction count.
3922
3923 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3924
3925 * config/mips/mips.md (casesi_internal_mips16_<mode>): Set
3926 `insn_count' to 11 rather than 16.
3927
3928 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3929
3930 * config/mips/mips.md (casesi_internal_mips16_<mode>): Use the
3931 `ltu' rather than `leu' operation in the RTL pattern
3932
3933 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3934
3935 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add
3936 missing <d> instruction prefixes throughout. Correct
3937 formatting.
3938
3939 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3940
3941 * config/mips/mips.c (mips_output_jump): Output R_MICROMIPS_JALR
3942 rather than R_MIPS_JALR relocation in microMIPS code. Do not
3943 cancel short delay slots in PIC call relaxation.
3944
3945 2016-11-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
3946
3947 * config/arm/arm.md (arm_addsi3): Add alternative for addition of
3948 general register with general register or ARM constant into SP
3949 register.
3950
3951 2016-11-16 Jakub Jelinek <jakub@redhat.com>
3952
3953 PR fortran/78299
3954 * omp-low.c (expand_omp_for_static_nochunk): Don't assert
3955 that loop->header == body_bb if broken_loop.
3956
3957 2015-11-16 Wilco Dijkstra <wdijkstr@arm.com>
3958
3959 * tree-ssa-math-opts.c (bswap_replace): Remove test
3960 of SLOW_UNALIGNED_ACCESS.
3961
3962 2016-11-16 Alexander Monakov <amonakov@ispras.ru>
3963
3964 * config/nvptx/mkoffload.c (main): Check that either OpenACC or OpenMP
3965 is selected. Pass -mgomp to offload compiler in OpenMP case.
3966 * config/nvptx/nvptx-protos.h (nvptx_shuffle_kind): Move enum
3967 declaration from nvptx.c.
3968 (nvptx_gen_shuffle): Declare.
3969 (nvptx_output_set_softstack): Declare.
3970 * config/nvptx/nvptx.c (nvptx_shuffle_kind): Move to nvptx-protos.h.
3971 (need_softstack_decl): New variable.
3972 (need_unisimt_decl): New variable.
3973 (diagnose_openacc_conflict): New. Use it...
3974 (nvptx_option_override): ...here. Handle TARGET_GOMP.
3975 (nvptx_encode_section_info): Handle "shared" attribute.
3976 (write_as_kernel): Restrict to OpenACC target regions.
3977 (init_softstack_frame): New.
3978 (nvptx_init_unisimt_predicate): New.
3979 (write_omp_entry): New. Use it...
3980 (nvptx_declare_function_name): ...here to emit OpenMP target region
3981 entrypoints. Handle TARGET_SOFT_STACK. Call
3982 nvptx_init_unisimt_predicate.
3983 (nvptx_output_set_softstack): New.
3984 (nvptx_get_drap_rtx): Return %argp as the DRAP if needed.
3985 (nvptx_gen_shuffle): Export.
3986 (nvptx_output_call_insn): Handle COND_EXEC patterns. Emit instruction
3987 predicate.
3988 (nvptx_print_operand): Fix handling of instruction predicates.
3989 (nvptx_get_unisimt_master): New helper function.
3990 (nvptx_get_unisimt_predicate): Ditto.
3991 (nvptx_call_insn_is_syscall_p): Ditto.
3992 (nvptx_unisimt_handle_set): Ditto.
3993 (nvptx_reorg_uniform_simt): New. Transform code for -muniform-simt.
3994 (nvptx_reorg): Call nvptx_reorg_uniform_simt.
3995 (nvptx_handle_shared_attribute): New. Use it...
3996 (nvptx_attribute_table): ... here (new entry).
3997 (nvptx_record_offload_symbol): Handle NULL attributes.
3998 (nvptx_file_end): Handle need_softstack_decl and need_unisimt_decl.
3999 (nvptx_simt_vf): New.
4000 (TARGET_SIMT_VF): Define.
4001 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Define
4002 __nvptx_softstack or __nvptx_unisimt__ when -msoft-stack, or resp.
4003 -muniform-simt option is active.
4004 (STACK_SIZE_MODE): Define.
4005 (FIXED_REGISTERS): Adjust.
4006 (SOFTSTACK_SLOT_REGNUM): New.
4007 (SOFTSTACK_PREV_REGNUM): New.
4008 (REGISTER_NAMES): Adjust.
4009 (struct machine_function): New fields.
4010 * config/nvptx/nvptx.md (UNSPEC_SET_SOFTSTACK): New.
4011 (UNSPEC_VOTE_BALLOT): Ditto.
4012 (UNSPEC_LANEID): Ditto.
4013 (UNSPECV_NOUNROLL): Ditto.
4014 (atomic): New attribute.
4015 (predicable): New attribute. Generate predicated forms via
4016 define_cond_exec.
4017 (br_true): Mark as not predicable.
4018 (br_false): Ditto.
4019 (br_true_uni): Ditto.
4020 (br_false_uni): Ditto.
4021 (return): Ditto.
4022 (trap_if_true): Ditto.
4023 (trap_if_false): Ditto.
4024 (nvptx_fork): Ditto.
4025 (nvptx_forked): Ditto.
4026 (nvptx_joining): Ditto.
4027 (nvptx_join): Ditto.
4028 (nvptx_barsync): Ditto.
4029 (epilogue): Emit stack restore if TARGET_SOFT_STACK.
4030 (allocate_stack): Implement for TARGET_SOFT_STACK. Remove unused code.
4031 (allocate_stack_<mode>): Remove unused pattern.
4032 (set_softstack_insn): New pattern.
4033 (restore_stack_block): Handle for TARGET_SOFT_STACK.
4034 (nvptx_vote_ballot): New pattern.
4035 (omp_simt_lane): Ditto.
4036 (omp_simt_last_lane): Ditto.
4037 (omp_simt_ordered): Ditto.
4038 (omp_simt_vote_any): Ditto.
4039 (omp_simt_xchg_bfly): Ditto.
4040 (omp_simt_xchg_idx): Ditto.
4041 (nvptx_nounroll): Ditto.
4042 (atomic_compare_and_swap<mode>_1): Mark with atomic attribute.
4043 (atomic_exchange<mode>): Ditto.
4044 (atomic_fetch_add<mode>): Ditto.
4045 (atomic_fetch_addsf): Ditto.
4046 (atomic_fetch_<logic><mode>): Ditto.
4047 * config/nvptx/nvptx.opt (msoft-stack): New option.
4048 (muniform-simt): Ditto.
4049 (mgomp): Ditto.
4050 * config/nvptx/t-nvptx (MULTILIB_OPTIONS): New.
4051 * doc/extend.texi (Nvidia PTX Variable Attributes): New section.
4052 * doc/invoke.texi (msoft-stack): Document.
4053 (muniform-simt): Document
4054 (mgomp): Document.
4055 * doc/tm.texi: Regenerate.
4056 * doc/tm.texi.in (TARGET_SIMT_VF): New hook.
4057 * target.def: Define it.
4058 * target-insns.def (omp_simt_lane): New.
4059 (omp_simt_last_lane): New.
4060 (omp_simt_ordered): New.
4061 (omp_simt_vote_any): New.
4062 (omp_simt_xchg_bfly): New.
4063 (omp_simt_xchg_idx): New.
4064
4065 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
4066
4067 * config/mips/mips-protos.h (mips_set_text_contents_type): New
4068 prototype.
4069 * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): New macro.
4070 (ASM_OUTPUT_CASE_END): Likewise.
4071 * config/mips/mips.c (mips_set_text_contents_type): New function.
4072 (mips16_emit_constants): Record the pool's initial label number
4073 with the `consttable' insn. Emit a `consttable_end' insn at the end.
4074 (mips_final_prescan_insn): Call `mips_set_text_contents_type'
4075 for `consttable' insns.
4076 (mips_final_postscan_insn): Call `mips_set_text_contents_type'
4077 for `consttable_end' insns.
4078 * config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE_END enum value.
4079 (consttable): Add operand.
4080 (consttable_end): New insn.
4081
4082 2016-11-16 Yuri Rumyantsev <ysrumyan@gmail.com>
4083
4084 * params.def (PARAM_VECT_EPILOGUES_NOMASK): New.
4085 * tree-if-conv.c (tree_if_conversion): Make public.
4086 * * tree-if-conv.h: New file.
4087 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences) Avoid
4088 dynamic alias checks for epilogues.
4089 * tree-vect-loop-manip.c (vect_do_peeling): Return created epilog.
4090 * tree-vect-loop.c: include tree-if-conv.h.
4091 (new_loop_vec_info): Add zeroing orig_loop_info field.
4092 (vect_analyze_loop_2): Don't try to enhance alignment for epilogues.
4093 (vect_analyze_loop): Add argument ORIG_LOOP_INFO which is not NULL
4094 if epilogue is vectorized, set up orig_loop_info field of loop_vinfo
4095 using passed argument.
4096 (vect_transform_loop): Check if created epilogue should be returned
4097 for further vectorization with less vf. If-convert epilogue if
4098 required. Print vectorization success for epilogue.
4099 * tree-vectorizer.c (vectorize_loops): Add epilogue vectorization
4100 if it is required, pass loop_vinfo produced during vectorization of
4101 loop body to vect_analyze_loop.
4102 * tree-vectorizer.h (struct _loop_vec_info): Add new field
4103 orig_loop_info.
4104 (LOOP_VINFO_ORIG_LOOP_INFO): New.
4105 (LOOP_VINFO_EPILOGUE_P): New.
4106 (LOOP_VINFO_ORIG_VECT_FACTOR): New.
4107 (vect_do_peeling): Change prototype to return epilogue.
4108 (vect_analyze_loop): Add argument of loop_vec_info type.
4109 (vect_transform_loop): Return created loop.
4110
4111 2016-11-16 Segher Boessenkool <segher@kernel.crashing.org>
4112
4113 * config/rs6000/rs6000.c (rs6000_components_for_bb): Mark the LR
4114 component as used also if LR_REGNO is a live input to the bb.
4115 * df-scan.c (df_get_entry_block_def_set): Return immediately after
4116 clearing the set if DF_SCAN_EMPTY_ENTRY_EXIT is set.
4117 (df_get_exit_block_use_set): Ditto.
4118 * df.h (df_scan_flags): New enum.
4119 * shrink-wrap.c (try_shrink_wrapping_separate): Set
4120 DF_SCAN_EMPTY_ENTRY_EXIT in df_scan->local_flags, and call
4121 df_update_entry_block_defs and df_update_exit_block_uses
4122 at the start; clear the flag and call those functions at the end.
4123
4124 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
4125 Alan Hayward <alan.hayward@arm.com>
4126 David Sherwood <david.sherwood@arm.com>
4127
4128 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Set
4129 nb_iterations to the number of latch iterations rather than the
4130 number of loop iterations.
4131
4132 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
4133 Alan Hayward <alan.hayward@arm.com>
4134 David Sherwood <david.sherwood@arm.com>
4135
4136 * combine.c (maybe_swap_commutative_operands): New function.
4137 (combine_simplify_rtx): Use it.
4138 (change_zero_ext): Likewise.
4139 (make_compound_operation_int): New function, split out of...
4140 (make_compound_operation): ...here. Use
4141 maybe_swap_commutative_operands for both.
4142
4143 2016-11-16 Richard Earnshaw <rearnsha@arm.com>
4144
4145 * arm/arm-fpus.def (vfpv2): New FPU, currently an alias for 'vfp'.
4146 (neon-vfpv3): New FPU, currently an alias for 'neon'.
4147 * arm/arm-tables.opt: Regenerated.
4148 * arm/t-aprofile (MULTILIB_REUSE): Add reuse rules for vfpv2 and
4149 neon-vfpv3.
4150 * doc/invoke.texi (ARM: -mfpu): Document new options. Note that 'vfp'
4151 and 'neon' are aliases for specific implementations.
4152
4153 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
4154 Alan Hayward <alan.hayward@arm.com>
4155 David Sherwood <david.sherwood@arm.com>
4156
4157 * optabs.c (vector_compare_rtx): Add a cmp_mode parameter
4158 and use it in the final call to gen_rtx_fmt_ee.
4159 (expand_vec_cond_expr): Update accordingly.
4160 (expand_vec_cmp_expr): Likewise.
4161
4162 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
4163 Alan Hayward <alan.hayward@arm.com>
4164 David Sherwood <david.sherwood@arm.com>
4165
4166 * cprop.c (local_cprop_find_used_regs): Use df_read_modify_subreg_p.
4167
4168 2016-11-16 Richard Biener <rguenther@suse.de>
4169
4170 PR middle-end/78333
4171 * gimplify.c (gimplify_function_tree): Do not instrument
4172 GNU extern inline functions.
4173
4174 2016-11-16 Martin Liska <mliska@suse.cz>
4175
4176 PR sanitizer/78270
4177 * gimplify.c (gimplify_switch_expr): Always save previous
4178 gimplify_ctxp->live_switch_vars.
4179
4180 2016-11-16 Andrew Burgess <andrew.burgess@embecosm.com>
4181
4182 * config/arc/arc.md (movb peephole2): New peephole2 to merge two
4183 zero_extract operations to allow a movb to occur.
4184 * testsuite/gcc.target/arc/movb-1.c: Update little endian arc results.
4185 * testsuite/gcc.target/arc/movb-2.c: Likewise.
4186 * testsuite/gcc.target/arc/movb-5.c: Likewise.
4187 * testsuite/gcc.target/arc/movh_cl-1.c: Extend test to cover
4188 little endian arc.
4189
4190 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
4191 Alan Hayward <alan.hayward@arm.com>
4192 David Sherwood <david.sherwood@arm.com>
4193
4194 * expr.c (emit_group_load_1): Tighten check for whether an
4195 access involves only one operand of a CONCAT. Use extract_bit_field
4196 for constants if the bit range does span the whole operand.
4197
4198 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
4199 Alan Hayward <alan.hayward@arm.com>
4200 David Sherwood <david.sherwood@arm.com>
4201
4202 * rtlanal.c (rtx_addr_can_trap_p_1): Handle unknown sizes.
4203
4204 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
4205 Alan Hayward <alan.hayward@arm.com>
4206 David Sherwood <david.sherwood@arm.com>
4207
4208 * tree-vect-loop.c (vect_transform_loop): Protect the updates of
4209 all three iteration counts with an any_* test. Use a single update
4210 for each count. Fix the calculation of nb_iterations_estimate.
4211
4212 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
4213
4214 * config/pdp11/pdp11.c: Include dbxout.h.
4215
4216 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
4217
4218 * config/arc/arc.c (arc_loop_hazard): Add missing brackets.
4219
4220 2016-11-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4221
4222 PR target/78364
4223 * config/arm/arm.md (*extv_reg): Restrict operands 2 and 3 to the
4224 proper ranges for an SBFX instruction.
4225 (extzv_t2): Likewise for UBFX.
4226
4227 2016-11-16 Richard Biener <rguenther@suse.de>
4228
4229 PR tree-optimization/78348
4230 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMMOVE.
4231 (generate_memcpy_builtin): Honor PKIND_MEMCPY on the partition.
4232 (classify_partition): Set PKIND_MEMCPY if dependence analysis
4233 revealed no dependency, PKIND_MEMMOVE otherwise.
4234
4235 2016-11-16 Jakub Jelinek <jakub@redhat.com>
4236
4237 PR sanitizer/77823
4238 * ubsan.c (ubsan_build_overflow_builtin): Add DATAP argument, if
4239 it points to non-NULL tree, use it instead of ubsan_create_data.
4240 (instrument_si_overflow): Handle vector signed integer overflow
4241 checking.
4242 * ubsan.h (ubsan_build_overflow_builtin): Add DATAP argument.
4243 * tree-vrp.c (simplify_internal_call_using_ranges): Punt for
4244 vector IFN_UBSAN_CHECK_*.
4245 * internal-fn.c (expand_addsub_overflow): Add DATAP argument,
4246 pass it through to ubsan_build_overflow_builtin.
4247 (expand_neg_overflow, expand_mul_overflow): Likewise.
4248 (expand_vector_ubsan_overflow): New function.
4249 (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB,
4250 expand_UBSAN_CHECK_MUL): Use tit for vector arithmetics.
4251 (expand_arith_overflow): Adjust expand_*_overflow callers.
4252
4253 2016-11-16 Matthias Klose <doko@ubuntu.com>
4254
4255 * doc/install.texi: Remove references to java/libjava.
4256
4257 2016-11-16 Kugan Vivekanandarajah <kuganv@linaro.org>
4258
4259 * tree-ssa-coalesce.c (register_default_def): Remove
4260 register_ssa_partition.
4261 (create_outofssa_var_map): Likewise.
4262 * tree-ssa-live.c (register_ssa_partition_check): Remove.
4263 * tree-ssa-live.h (register_ssa_partition): Likewise.
4264
4265 2016-11-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
4266
4267 * genattrtab.c (attr_rtx_1): Avoid allocating new rtx objects.
4268 Clear ATTR_CURR_SIMPLIFIED_P for re-used binary rtx objects.
4269 Use DEF_ATTR_STRING for string arguments. Use RTL_HASH for
4270 integer arguments. Only set ATTR_PERMANENT_P on newly hashed
4271 rtx when all sub-rtx are also permanent.
4272 (attr_eq): Simplify.
4273 (attr_copy_rtx): Remove.
4274 (make_canonical, get_attr_value): Use attr_equal_p.
4275 (copy_boolean): Rehash NOT.
4276 (simplify_test_exp_in_temp,
4277 optimize_attrs): Remove call to attr_copy_rtx.
4278 (attr_alt_intersection, attr_alt_union,
4279 attr_alt_complement, mk_attr_alt): Rehash EQ_ATTR_ALT.
4280 (make_automaton_attrs): Use attr_eq.
4281
4282 2016-11-15 Matthias Klose <doko@ubuntu.com>
4283
4284 * doc/install.texi: Remove references to java/libjava.
4285 * doc/sourcebuild.texi: Likewise.
4286 * doc/invoke.texi: Likewise.
4287 * doc/standards.texi: Likewise.
4288
4289 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
4290 Alan Hayward <alan.hayward@arm.com>
4291 David Sherwood <david.sherwood@arm.com>
4292
4293 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use Pmode instead
4294 of VOIDmode.
4295 * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Likewise.
4296 * config/iq2000/iq2000.h (INCOMING_RETURN_ADDR_RTX): Likewise.
4297 * config/m68k/m68k.h (INCOMING_RETURN_ADDR_RTX): Likewise.
4298 * config/microblaze/microblaze.h (INCOMING_RETURN_ADDR_RTX): Likewise.
4299 * config/mips/mips.h (INCOMING_RETURN_ADDR_RTX): Likewise.
4300 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Likewise.
4301 * config/nios2/nios2.h (INCOMING_RETURN_ADDR_RTX): Likewise.
4302
4303 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
4304 Alan Hayward <alan.hayward@arm.com>
4305 David Sherwood <david.sherwood@arm.com>
4306
4307 * dce.c (check_argument_store): Pass the size instead of
4308 the memory reference.
4309 (find_call_stack_args): Pass MEM_SIZE to check_argument_store.
4310
4311 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
4312 Alan Hayward <alan.hayward@arm.com>
4313 David Sherwood <david.sherwood@arm.com>
4314
4315 * alias.c (canon_rtx): Use simplify_gen_binary.
4316
4317 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
4318 Alan Hayward <alan.hayward@arm.com>
4319 David Sherwood <david.sherwood@arm.com>
4320
4321 * rtl.h (load_extend_op): Declare.
4322 * rtlanal.c (load_extend_op): New function.
4323 (nonzero_bits1): Use it.
4324 (num_sign_bit_copies1): Likewise.
4325 * cse.c (cse_insn): Likewise.
4326 * fold-const.c (fold_single_bit_test): Likewise.
4327 (fold_unary_loc): Likewise.
4328 * fwprop.c (free_load_extend): Likewise.
4329 * postreload.c (reload_cse_simplify_set): Likewise.
4330 (reload_cse_simplify_operands): Likewise.
4331 * combine.c (try_combine): Likewise.
4332 (simplify_set): Likewise. Remove redundant SUBREG_BYTE and
4333 subreg_lowpart_p checks.
4334
4335 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
4336 Alan Hayward <alan.hayward@arm.com>
4337 David Sherwood <david.sherwood@arm.com>
4338
4339 * combine.c (simplify_shift_const_1): Use the number of bits
4340 in the inner mode to determine the range of the shift.
4341 When handling shifts of vectors, skip any rules that apply
4342 only to scalars.
4343
4344 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
4345 Alan Hayward <alan.hayward@arm.com>
4346 David Sherwood <david.sherwood@arm.com>
4347
4348 * rtlanal.c (num_sign_bit_copies1): Calculate bitwidth after
4349 handling VOIDmode.
4350
4351 2016-11-15 Matthias Klose <doko@ubuntu.com>
4352
4353 * doc/install.texi: Remove references to gcj/libjava.
4354 * doc/invoke.texi: Likewise.
4355
4356 2016-11-15 Jeff Law <law@redhat.com>
4357
4358 * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded
4359 parameter. Callers changed.
4360 (check-subpath_and_update_thread_path): Extracted from
4361 fsm_find_control_statement_thread_paths.
4362 (handle_phi, handle_assignment, handle_assignment_p): Likewise.
4363 (handle_phi, handle_assignment): Allow any constant node, not
4364 just INTEGER_CST.
4365
4366 2016-11-15 Claudiu Zissulescu <claziss@synopsys.com>
4367
4368 * config/arc/arc-arch.h: New file.
4369 * config/arc/arc-arches.def: Likewise.
4370 * config/arc/arc-cpus.def: Likewise.
4371 * config/arc/arc-options.def: Likewise.
4372 * config/arc/t-multilib: Likewise.
4373 * config/arc/genmultilib.awk: Likewise.
4374 * config/arc/genoptions.awk: Likewise.
4375 * config/arc/arc-tables.opt: Likewise.
4376 * config/arc/driver-arc.c: Likewise.
4377 * testsuite/gcc.target/arc/nps400-cpu-flag.c: Likewise.
4378 * common/config/arc/arc-common.c (arc_handle_option): Trace
4379 toggled options.
4380 * config.gcc (arc*-*-*): Add arc-tables.opt to arc's extra
4381 options; check for supported cpu against arc-cpus.def file.
4382 (arc*-*-elf*, arc*-*-linux-uclibc*): Use new make fragment; define
4383 TARGET_CPU_BUILD macro; add driver-arc.o as an extra object.
4384 * config/arc/arc-c.def: Add emacs local variables.
4385 * config/arc/arc-opts.h (processor_type): Use arc-cpus.def file.
4386 (FPU_FPUS, FPU_FPUD, FPU_FPUDA, FPU_FPUDA_DIV, FPU_FPUDA_FMA)
4387 (FPU_FPUDA_ALL, FPU_FPUS_DIV, FPU_FPUS_FMA, FPU_FPUS_ALL)
4388 (FPU_FPUD_DIV, FPU_FPUD_FMA, FPU_FPUD_ALL): New defines.
4389 (DEFAULT_arc_fpu_build): Define.
4390 (DEFAULT_arc_mpy_option): Define.
4391 * config/arc/arc-protos.h (arc_init): Delete.
4392 * config/arc/arc.c (arc_cpu_name): New variable.
4393 (arc_selected_cpu, arc_selected_arch, arc_arcem, arc_archs)
4394 (arc_arc700, arc_arc600, arc_arc601): New variable.
4395 (arc_init): Add static; remove selection of default tune value,
4396 cleanup obsolete error messages.
4397 (arc_override_options): Make use of .def files for selecting the
4398 right cpu and option configurations.
4399 * config/arc/arc.h (stdbool.h): Include.
4400 (TARGET_CPU_DEFAULT): Define.
4401 (CPP_SPEC): Remove mcpu=NPS400 handling.
4402 (arc_cpu_to_as): Declare.
4403 (EXTRA_SPEC_FUNCTIONS): Define.
4404 (OPTION_DEFAULT_SPECS): Likewise.
4405 (ASM_DEFAULT): Remove.
4406 (ASM_SPEC): Use arc_cpu_to_as.
4407 (DRIVER_SELF_SPECS): Remove deprecated options.
4408 (arc_base_cpu): Declare.
4409 (TARGET_ARC600, TARGET_ARC601, TARGET_ARC700, TARGET_EM)
4410 (TARGET_HS, TARGET_V2, TARGET_ARC600): Make them use arc_base_cpu
4411 variable.
4412 (MULTILIB_DEFAULTS): Use ARC_MULTILIB_CPU_DEFAULT.
4413 * config/arc/arc.md (attr_cpu): Remove.
4414 * config/arc/arc.opt (mno-mpy): Deprecate.
4415 (mcpu=ARC600, mcpu=ARC601, mcpu=ARC700, mcpu=NPS400, mcpu=ARCEM)
4416 (mcpu=ARCHS): Remove.
4417 (mcrc, mdsp-packa, mdvbf, mmac-d16, mmac-24, mtelephony, mrtsc):
4418 Deprecate.
4419 (mbarrel_shifte, mspfp_, mdpfp_, mdsp_pack, mmac_): Remove.
4420 (arc_fpu): Use new defines.
4421 (mpy-option): Change to use numeric or string like inputs.
4422 * config/arc/t-arc (driver-arc.o): New target.
4423 (arc-cpus, t-multilib, arc-tables.opt): Likewise.
4424 * config/arc/t-arc-newlib: Delete.
4425 * config/arc/t-arc-uClibc: Renamed to t-uClibc.
4426 * doc/invoke.texi (ARC): Update arc options.
4427
4428 2016-11-15 Maciej W. Rozycki <macro@imgtec.com>
4429
4430 * config/mips/mips.c (mips16_emit_constants): Emit `consttable'
4431 insn at the beginning of the constant pool.
4432 (mips_insert_insn_pseudos): New function.
4433 (mips_machine_reorg2): Call it.
4434 * config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE and
4435 UNSPEC_INSN_PSEUDO enum values.
4436 (insn_pseudo, consttable): New insns.
4437
4438 2016-11-15 Michael Matz <matz@suse.de>
4439
4440 PR missed-optimization/77881
4441 * combine.c (simplify_comparison): Remove useless subregs
4442 also inside the loop, not just after it.
4443 (make_compound_operation): Recognize some subregs as being
4444 masking as well.
4445
4446 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
4447 Alan Hayward <alan.hayward@arm.com>
4448 David Sherwood <david.sherwood@arm.com>
4449
4450 * dwarf2out.c (mem_loc_descriptor): Fix GET_MODE_CLASS/
4451 GET_MODE_SIZE typo.
4452
4453 2016-11-14 Michael Meissner <meissner@linux.vnet.ibm.com>
4454
4455 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Add support
4456 for using xxinsertw and vinsert{b,h} on ISA 3.0.
4457
4458 * config/rs6000/vsx.md (vsx_extract_<mode>): Update comment.
4459 (vsx_set_<mode>_p9): New insn to generate xxinsertw and
4460 vinsert{b,h} on ISA 3.0.
4461
4462 2016-11-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4463
4464 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
4465 and cmpnop in two steps: first the ones not accessed in original gimple
4466 expression in a endian independent way and then the ones not accessed
4467 in the final result in an endian-specific way.
4468 (bswap_replace): Stop doing big endian adjustment.
4469
4470 2016-11-14 Uros Bizjak <ubizjak@gmail.com>
4471
4472 * config/i386/i386.md (*andndi3_doubleword): Merge operand constraints.
4473 (*ashl<mode>3_doubleword): Ditto.
4474
4475 2016-11-14 Martin Liska <mliska@suse.cz>
4476
4477 * tree-ssa-dse.c (dse_optimize_stmt): Remove quotes and extra new line.
4478
4479 2016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
4480 Richard Biener <rguenther@suse.de>
4481
4482 * doc/invoke.texi (fgimple): Document.
4483 * dumpfile.h (TDF_GIMPLE): Add.
4484 * dumpfile.c (dump_options): Add gimple.
4485 * gimple-pretty-print.c (dump_gimple_switch): Adjust dump
4486 for TDF_GIMPLE.
4487 (dump_gimple_label): Likewise.
4488 (dump_gimple_phi): Likewise.
4489 (dump_gimple_bb_header): Likewise.
4490 (dump_phi_nodes): Likewise.
4491 (pp_cfg_jump): Likewise. Pass in dump flags.
4492 (dump_implicit_edges): Adjust.
4493 * passes.c (pass_init_dump_file): Do not dump function header
4494 for TDF_GIMPLE.
4495 * tree-cfg.c (dump_function_to_file): Dump function return type
4496 and __GIMPLE keyword for TDF_GIMPLE. Change guard for dumping
4497 GIMPLE stmts.
4498 * tree-pretty-print.c (dump_decl_name): Adjust dump for TDF_GIMPLE.
4499 (dump_generic_node): Likewise.
4500 * function.h (struct function): Add pass_startwith member.
4501 * passes.c (execute_one_pass): Implement startwith.
4502 * tree-ssanames.c (make_ssa_name_fn): New argument, check for version
4503 and assign proper version for parsed ssa names.
4504 * tree-ssanames.h (make_ssa_name_fn): Add new argument to the function.
4505 * internal-fn.c (expand_PHI): New function.
4506 * internal-fn.h (expand_PHI): Declared here.
4507 * internal-fn.def: New defination for PHI.
4508 * tree-cfg.c (lower_phi_internal_fn): New function.
4509 (build_gimple_cfg): Call it.
4510 (verify_gimple_call): Condition for passing label as arg in internal
4511 function PHI.
4512 * tree-into-ssa.c (rewrite_add_phi_arguments): Handle already
4513 present PHIs with arguments.
4514
4515 2016-11-14 Martin Liska <mliska@suse.cz>
4516
4517 PR bootstrap/78069
4518 * common.opt: Add prefer-atomic as a new enum value for
4519 -fprofile-update.
4520 * coretypes.h: Likewise.
4521 * doc/invoke.texi: Document the new option value.
4522 * gcc.c: Replace atomic with prefer-atomic. Remove warning.
4523 * tree-profile.c (tree_profiling): Select default value
4524 of -fprofile-update when 'prefer-atomic' is selected.
4525
4526 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
4527
4528 * config/arm/cortex-a57.md (cortex_a57_alu): Move extend here, bfm...
4529 (cortex_a57_alu_shift): ...here.
4530
4531 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
4532
4533 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3)
4534 Use bfx attribute.
4535 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
4536 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
4537 (<optab>si3_insn_uxtw): Likewise.
4538 (<optab><mode>3_insn): Likewise.
4539 (<ANY_EXTEND:optab><GPI:mode>_ashl<SHORT:mode>): Likewise.
4540 (zero_extend<GPI:mode>_lshr<SHORT:mode>): Likewise.
4541 (extend<GPI:mode>_ashr<SHORT:mode>): Likewise.
4542 (<optab><mode>): Likewise.
4543 (insv<mode>): Likewise.
4544 (andim_ashift<mode>_bfiz): Likewise.
4545 * config/aarch64/thunderx.md (thunderx_shift): Add bfx.
4546 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
4547 * config/arm/cortex-a57.md (cortex_a57_alu): Add bfx.
4548 * config/arm/exynos-m1.md (exynos_m1_alu): Add bfx.
4549 (exynos_m1_alu_p): Likewise.
4550 * config/arm/types.md: Add bfx.
4551 * config/arm/xgene1.md (xgene1_bfm): Add bfx.
4552
4553 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
4554
4555 * config/aarch64/aarch64.c (cortexa57_vector_cost):
4556 Change vec_stmt_cost, vec_align_load_cost and vec_unalign_load_cost.
4557
4558 2016-11-14 Richard Biener <rguenther@suse.de>
4559
4560 PR tree-optimization/78312
4561 * gimple-ssa-backprop.c (backprop::prepare_change): Reset
4562 flow-sensitive info.
4563
4564 2016-11-14 Georg-Johann Lay <avr@gjlay.de>
4565
4566 PR target/78093
4567 * doc/invoke.texi (AVR Options) [-mabsdata]: Document new option.
4568 * config/avr/avr.opt (-mabsdata): New option.
4569 * config/avr/avr-arch.h (avr_device_specific_features): Add AVR_ISA_LDS.
4570 * config/avr/avr.c (avr_encode_section_info) [AVR_TINY]: If
4571 -mabsdata & symbol is not progmem, tag as AVR_SYMBOL_FLAG_TINY_ABSDATA.
4572 * config/avr/avr-mcus.def (attiny4/5/9/10/20): Use AVR_ISA_LDS.
4573 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Print cc1_absdata
4574 spec depending on AVR_ISA_LDS.
4575 * config/avr/specs.h (CC1_SPEC): Enhanced by cc1_absdata spec.
4576
4577 2016-11-13 Jakub Jelinek <jakub@redhat.com>
4578
4579 * match.pd: Don't try to compare addresses of variables with
4580 DECL_VALUE_EXPR.
4581
4582 2016-11-13 Kugan Vivekanandarajah <kuganv@linaro.org>
4583
4584 * ipa-cp.c (ipa_get_jf_pass_through_result): Skip unary expressions.
4585 (propagate_vr_accross_jump_function): Handle unary expressions.
4586 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
4587 (load_from_param_1): New.
4588 (load_from_unmodified_param): Factor common part into load_from_param_1.
4589 (load_from_param): New.
4590 (compute_complex_assign_jump_func): Handle unary expressions.
4591 (update_jump_functions_after_inlining): Likewise.
4592 (ipa_write_jump_function): Likewise.
4593 (ipa_read_jump_function): Likewise.
4594
4595 2016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4596
4597 PR c/35503
4598 * doc/invoke.texi: Document Wrestrict.
4599 * pretty-print.c (pp_format): Add case for "Z" specifier.
4600 (test_pp_format): Test "Z" specifier.
4601
4602 2016-11-13 Eric Botcazou <ebotcazou@adacore.com>
4603
4604 * ipa-icf.c (sem_function::merge): Do not create a wrapper also if the
4605 original function needs a static chain.
4606
4607 2016-11-13 David Edelsohn <dje.gcc@gmail.com>
4608
4609 PR target/78336
4610 * config/rs6000/rs6000.c (rs6000_asm_weaken_decl): Protect
4611 ASM_OUTPUT_DEF.
4612
4613 2016-11-12 Segher Boessenkool <segher@kernel.crashing.org>
4614
4615 PR target/77957
4616 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
4617 return early if !optional_tbtab.
4618
4619 2016-11-11 Eric Botcazou <ebotcazou@adacore.com>
4620
4621 PR rtl-optimization/59461
4622 * doc/rtl.texi (paradoxical subregs): Add missing word.
4623 * combine.c (reg_nonzero_bits_for_combine): Do not discard results
4624 in modes with precision larger than that of last_set_mode.
4625 * rtlanal.c (nonzero_bits1) <SUBREG>: If WORD_REGISTER_OPERATIONS is
4626 set and LOAD_EXTEND_OP is appropriate, propagate results from inner
4627 REGs to paradoxical SUBREGs.
4628 (num_sign_bit_copies1) <SUBREG>: Likewise. Check that the mode is not
4629 larger than a word before invoking LOAD_EXTEND_OP on it.
4630
4631 2016-11-11 Michael Meissner <meissner@linux.vnet.ibm.com>
4632
4633 PR target/78243
4634 * config/rs6000/vsx.md (vsx_extract_<mode>_p9): Correct the
4635 element order for little endian ordering.
4636
4637 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Use
4638 VECTOR_ELT_ORDER_BIG and not BYTES_BIG_ENDIAN to adjust element
4639 number.
4640
4641 2016-11-11 Uros Bizjak <ubizjak@gmail.com>
4642
4643 PR target/78310
4644 * config/i386/i386.md (rotate to rotatex splitter): Avoid overflow
4645 when calculating operand 2.
4646 (rotate to rotatex zext splitter): Ditto.
4647
4648 2016-11-11 Jeff Law <law@redhat.com>
4649
4650 * gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New
4651 function.
4652 (stmt_uses_name_in_undefined_way): New function, extracted from
4653 find_implicit_erroneous_behavior and extended for div/mod case.
4654 (stmt_uses_0_or_null_in_undefined_way): New function, extracted from
4655 find_explicit_erroneous_behavior and extended for div/mod case.
4656 (find_implicit_erroneous_behavior): Use new helper function.
4657 (find_explicit_erroneous_behavior): Use new helper function.
4658
4659 2016-11-11 Richard Biener <rguenther@suse.de>
4660
4661 PR tree-optimization/71575
4662 * graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove
4663 bogus assert.
4664
4665 2016-11-11 Richard Biener <rguenther@suse.de>
4666
4667 PR middle-end/78295
4668 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
4669 about uninitialized destination arg of BIT_INSERT_EXPR.
4670
4671 2016-11-10 Sandra Loosemore <sandra@codesourcery.com>
4672
4673 PR c/37998
4674 * doc/invoke.texi (Code Gen Options) [-fno-common]: Use correct
4675 terminology. Expand to remove ambiguity.
4676
4677 2016-11-10 Segher Boessenkool <segher@kernel.crashing.org>
4678
4679 PR rtl-optimization/78232
4680 * combine.c (try_combine): Add a big comment about why reusing i2dest
4681 is undesirable.
4682 (change_zero_ext): Do not call simplify_gen_binary, do the
4683 simplifications manually.
4684
4685 2016-11-10 Michael Meissner <meissner@linux.vnet.ibm.com>
4686
4687 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0,
4688 enable HImode and QImode to go in vector registers by default if
4689 the -mvsx-small-integer option is enabled.
4690 (rs6000_secondary_reload_simple_move): Likewise.
4691 (rs6000_preferred_reload_class): Don't force integer constants to
4692 be loaded into vector registers that we can easily make into
4693 memory (or being created in the GPRs and moved over with direct move).
4694 * config/rs6000/vsx.md (UNSPEC_P9_MEMORY): Delete, no longer used.
4695 (vsx_extract_<mode>): Rework V4SImode, V8HImode, and V16QImode
4696 vector extraction on ISA 3.0 when the scalar integer can be
4697 allocated in vector registers. Generate the VEC_SELECT directy,
4698 and don't use UNSPEC's to avoid having the scalar type in a vector
4699 register. Make the expander target registers, and let the
4700 combiner fold in results storing to memory, if the machine
4701 supports stores.
4702 (vsx_extract_<mode>_di): Likewise.
4703 (vsx_extract_<mode>_p9): Likewise.
4704 (vsx_extract_<mode>_di_p9): Likewise.
4705 (vsx_extract_<mode>_store_p9): Likewise.
4706 (vsx_extract_si): Likewise.
4707 (vsx_extract_<mode>_p8): Likewise.
4708 (p9_lxsi<wd>zx): Delete, no longer used.
4709 (p9_stxsi<wd>x): Likewise.
4710 * config/rs6000/rs6000.md (INT_ISA3): New mode iterator for
4711 integers in vector registers for ISA 3.0.
4712 (QHI): Update comment.
4713 (zero_extendqi<mode>2): Add support for ISA 3.0 scalar load or
4714 vector extract instructions in sign/zero extend.
4715 (zero_extendhi<mode>): Likewise.
4716 (extendqi<mode>): Likewise.
4717 (extendhi<mode>2): Likewise.
4718 (HImode splitter for load/sign extend in vector register): Likewise.
4719 (float<QHI:mode><FP_ISA3:mode>2): Eliminate old method of
4720 optimizing floating point conversions to/from small data types and
4721 rewrite it to support QImode/HImode being allowed in vector
4722 registers on ISA 3.0.
4723 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
4724 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
4725 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
4726 (fix_trunc<SFDF:mode><QHI:mode>2): Likewise.
4727 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
4728 (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
4729 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
4730 VSPLITISW on ISA 2.07.
4731 (movhi_internal): Combine movhi_internal and movqi_internal into
4732 one mov<mode>_internal with an iterator. Add support for QImode
4733 and HImode being allowed in vector registers. Make large number
4734 of attributes and constraints easier to read.
4735 (movqi_internal): Likewise.
4736 (mov<mode>_internal): Likewise.
4737 (movdi_internal64): Fix constraint to allow loading -16..15 with
4738 VSPLITISW on ISA 2.07.
4739 (integer XXSPLTIB splitter): Add support for QI, HI, and SImode as
4740 well as DImode.
4741
4742 2016-11-10 Pat Haugen <pthaugen@us.ibm.com>
4743
4744 PR rtl-optimization/78241
4745 * loop-unroll.c (unroll_loop_runtime_iterations): Don't adjust 'niter',
4746 but emit initial peel copy if niter expr is not reliable.
4747
4748 2016-11-10 Segher Boessenkool <segher@kernel.crashing.org>
4749
4750 * dwarf2cfi.c (dump_cfi_row): Add forward declaration.
4751 (maybe_record_trace_start): If the CFI is different on the new and
4752 old paths, print out both to the dump file before ICEing.
4753
4754 2016-11-10 Vladimir Makarov <vmakarov@redhat.com>
4755
4756 * target.def (additional_allocno_class_p): New.
4757 * hooks.h (hook_bool_reg_class_t_false): New prototype.
4758 * hooks.c (hook_bool_reg_class_t_false): New.
4759 * ira.c (setup_allocno_and_important_classes): Use the new hook.
4760 * doc/tm.texi.in (TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Add it.
4761 * doc/tm.texi: Update.
4762
4763 2016-11-10 Jason Merrill <jason@redhat.com>
4764
4765 * gengtype.c (new_structure): Append to structures list.
4766 (find_structure): Likewise.
4767
4768 2016-11-10 Jim Wilson <jim.wilson@linaro.org>
4769
4770 * tree-loop-distribution.c (pg_add_dependence_edges): Return 2 if
4771 this_dir is 2. Check for this_dir non-zero before dir != this_dir
4772 check.
4773
4774 2016-11-10 Jakub Jelinek <jakub@redhat.com>
4775
4776 * omp-low.c (lower_omp_target): Fix up argument to is_reference.
4777 (expand_omp_ordered_sink): Handle TREE_PURPOSE of deps being
4778 TRUNC_DIV_EXPR.
4779 * gimplify.c (gimplify_scan_omp_clauses): Likewise. Set
4780 ctx->target_map_scalars_firstprivate on OMP_TARGET even for Fortran.
4781 Remove omp_no_lastprivate callers. Propagate lastprivate on combined
4782 teams distribute parallel for simd even to distribute and teams
4783 construct. For OMP_CLAUSE_DEPEND add missing break at the end of
4784 OMP_CLAUSE_DEPEND_SINK case.
4785 (omp_notice_variable): Use lang_hooks.decls.omp_scalar_p.
4786 (omp_no_lastprivate): Removed.
4787 (gimplify_adjust_omp_clauses): Remove omp_no_lastprivate callers.
4788 (gimplify_omp_for): Likewise.
4789 (computable_teams_clause): Fail for automatic vars from current
4790 function not yet seen in bind expr.
4791 * langhooks.c (lhd_omp_scalar_p): New function.
4792 * langhooks.h (struct lang_hooks_for_decls): Add omp_scalar_p.
4793 * varpool.c (varpool_node::get_create): Set node->offloading
4794 even for DECL_EXTERNAL decls.
4795 * langhooks-def.h (lhd_omp_scalar_p): New prototype.
4796 (LANG_HOOKS_OMP_SCALAR_P): Define.
4797 (LANG_HOOKS_DECLS): Use it.
4798
4799 2016-11-10 Martin Liska <mliska@suse.cz>
4800
4801 PR sanitizer/78270
4802 * gimplify.c (gimplify_switch_expr): Create live_switch_vars
4803 only when SWITCH_BODY is a BIND_EXPR.
4804
4805 2016-11-10 Pierre-Marie de Rodat <derodat@adacore.com>
4806
4807 PR debug/78112
4808 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
4809 on the context only when it has no DIE yet.
4810
4811 2016-11-10 Richard Earnshaw <rearnsha@arm.com>
4812
4813 * arm.h (target_cpus): Delete.
4814 * arm-opts.h (enum processor_type): Prefix entires with TARGET_CPU_.
4815 * arm.c (all_cores): Prefix IDENT with TARGET_CPU_.
4816 (all_architectures): Likewise.
4817 (arm_option_override): Adjust use of CPU enums.
4818 (arm_sched_reorder): Likewise.
4819 * vfp.md (movdi_vfp, movdi_vfp_cortexa8): Likewise.
4820 * arm.opt (mcpu, mtune): Adjust use of CPU enums.
4821 * arm/genopt.sh (processor_type): Prefix enumeration entries with
4822 TARGET_CPU_.
4823 * arm-tables.opt: Regenerated.
4824
4825 2016-11-10 Siddhesh Poyarekar <siddhesh.poyarekar@linaro.org>
4826
4827 * config/aarch64/aarch64-cores.def (qdf24xx): Update part number.
4828 (falkor): New core.
4829 * config/aarch64/aarch64-tune.md: Regenerated.
4830 * config/arm/arm-cores.def (falkor): New core.
4831 * config/arm/arm-tables.opt: Regenerated.
4832 * config/arm/arm-tune.md: Regenerated.
4833 * config/arm/bpabi.h (BE8_LINK_SPEC): Add falkor support.
4834 * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
4835 * doc/invoke.texi (AArch64 Options/-mtune): Document it.
4836 (ARM Options/-mtune): Likewise.
4837
4838 2016-11-10 Kugan Vivekanandarajah <kuganv@linaro.org>
4839
4840 Revert
4841 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
4842
4843 * ipa-cp.c (ipa_get_jf_pass_through_result): Handle unary expressions.
4844 (propagate_vr_accross_jump_function): Likewise.
4845 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
4846 (load_from_param_1): New.
4847 (load_from_unmodified_param): Factor common part into load_from_param_1.
4848 (load_from_param): New.
4849 (compute_complex_assign_jump_func): Handle unary expressions.
4850 (ipa_write_jump_function): Likewise.
4851 (ipa_read_jump_function): Likewise.
4852
4853 2016-11-09 Segher Boessenkool <segher@kernel.crashing.org>
4854
4855 * simplify-rtx.c (simplify_binary_operation_1): Simplify
4856 (xor (and (xor A B) C) B) to (ior (and A C) (and B ~C)) and
4857 (xor (and (xor A B) C) A) to (ior (and A ~C) (and B C)) if C
4858 is a const_int.
4859
4860 2016-11-09 David Malcolm <dmalcolm@redhat.com>
4861
4862 * print-rtl-function.c: Include varasm.h.
4863 (print_any_param_name): New function.
4864 (print_param): New function.
4865 (print_rtx_function): Call print_param for each argument.
4866 * print-rtl.c (rtx_writer::finish_directive): New function.
4867 * print-rtl.h (rtx_writer::finish_directive): New decl.
4868
4869 2016-11-09 Uros Bizjak <ubizjak@gmail.com>
4870
4871 PR target/78262
4872 * config/i386/i386.md (*<shift_insn><mode>3_doubleword): Mark
4873 operand 0 as earlyclobber.
4874 (*ashl<mode>3_doubleword): Ditto for all operand 0 alternatives.
4875
4876 2016-11-09 Martin Liska <mliska@suse.cz>
4877
4878 * fold-const-call.c (fold_const_call): Fix up type of s0 and s1.
4879
4880 2016-11-09 Jakub Jelinek <jakub@redhat.com>
4881
4882 PR target/77718
4883 * builtins.c (expand_builtin_memcmp): Formatting fix.
4884
4885 * flag-types.h (enum sanitize_code): Add SANITIZE_SHIFT_BASE
4886 and SANITIZE_SHIFT_EXPONENT, change SANITIZE_SHIFT to bitwise
4887 or of them, renumber other enumerators.
4888 * opts.c (sanitizer_opts): Add shift-base and shift-exponent.
4889 * doc/invoke.texi: Document -fsanitize=shift-base and
4890 -fsanitize-shift-exponent, document -fsanitize=shift as
4891 having those 2 suboptions.
4892
4893 2016-11-09 Richard Biener <rguenther@suse.de>
4894
4895 * fold-const.c (tree_swap_operands_p): Remove unused arg.
4896 * fold-const.c (tree_swap_operands_p): Likewise.
4897 (fold_binary_loc): Adjust.
4898 (fold_ternary_loc): Likewise.
4899 * genmatch.c (dt_operand::gen_gimple_exp): Likewise.
4900 * gimple-fold.c (fold_stmt_1): Likewise.
4901 * gimple-match-head.c (gimple_resimplify2): Likewise.
4902 (gimple_resimplify3): Likewise.
4903 (gimple_simplify): Likewise.
4904 * tree-ssa-dom.c (record_equality): Likewise.
4905 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Likewise.
4906 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
4907 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): Likewise.
4908
4909 2016-11-09 Richard Biener <rguenther@suse.de>
4910
4911 * tree-ssa-dom.c (canonicalize_comparison): Remove.
4912 (optimize_stmt): Remove redundant pre-propagation canonicalization
4913 of comparison operand order.
4914
4915 2016-11-09 Martin Liska <mliska@suse.cz>
4916
4917 * fold-const-call.c (fold_const_call): Fix the folding.
4918
4919 2016-11-09 Richard Biener <rguenther@suse.de>
4920
4921 * common.opt (flag_evaluation_order): Remove.
4922 * expr.c (expand_operands): Remove code guarded by
4923 flag_evaluation_order.
4924 * fold-const.c (reorder_operands_p): Remove, it always returns
4925 true.
4926 (negate_expr_p): Remove calls to reorder_operands_p.
4927 (fold_negate_expr): Likewise.
4928 (tree_swap_operands_p): Likewise.
4929 (fold_binary_loc): Likewise.
4930
4931 2016-11-09 Andreas Schwab <schwab@suse.de>
4932
4933 PR target/78254
4934 * config/m68k/m68k.md: Reject out-of-range bit pos in bit-fields
4935 insns operating on a register.
4936
4937 2016-11-09 Richard Biener <rguenther@suse.de>
4938
4939 PR tree-optimization/78007
4940 * tree-vect-stmts.c (vectorizable_bswap): New function.
4941 (vectorizable_call): Call vectorizable_bswap for
4942 BUILT_IN_BSWAP{16,32,64} if arguments are not promoted.
4943
4944 2016-11-09 Richard Biener <rguenther@suse.de>
4945
4946 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
4947 Look at the DR_BASE_ADDRESS object for forcing alignment.
4948
4949 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
4950
4951 * ipa-cp.c (ipa_get_jf_pass_through_result): Handle unary expressions.
4952 (propagate_vr_accross_jump_function): Likewise.
4953 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
4954 (load_from_param_1): New.
4955 (load_from_unmodified_param): Factor common part into load_from_param_1.
4956 (load_from_param): New.
4957 (compute_complex_assign_jump_func): Handle unary expressions.
4958 (ipa_write_jump_function): Likewise.
4959 (ipa_read_jump_function): Likewise.
4960
4961 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
4962
4963 PR ipa/78121
4964 * ipa-cp.c (propagate_vr_accross_jump_function): Pass param type.
4965 Also fold constant passed as argument while computing value range.
4966 (propagate_constants_accross_call): Pass param type.
4967 * ipa-prop.c: export ipa_get_callee_param_type.
4968 * ipa-prop.h: export ipa_get_callee_param_type.
4969
4970 2016-11-09 Maxim Ostapenko <m.ostapenko@samsung.com>
4971
4972 * asan.h (asan_intercepted_p): Handle BUILT_IN_STRCSPN,
4973 BUILT_IN_STRPBRK, BUILT_IN_STRSPN and BUILT_IN_STRSTR.
4974
4975 2016-11-09 Maxim Ostapenko <m.ostapenko@samsung.com>
4976
4977 * asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove.
4978 * asan.c (ASAN_STACK_MAGIC_PARTIAL): Replace with
4979 ASAN_STACK_MAGIC_MIDDLE.
4980 (asan_global_struct): Increase the size of fields.
4981 (asan_add_global): Add new field constructor.
4982 * sanitizer.def (__asan_version_mismatch_check_v6): Replace with
4983 __asan_version_mismatch_check_v8.
4984
4985 2016-11-08 David Edelsohn <dje.gcc@gmail.com>
4986
4987 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Test XCOFF_DEBUGGING_INFO
4988 at runtime.
4989
4990 2016-11-08 Uros Bizjak <ubizjak@gmail.com>
4991
4992 PR target/70799
4993 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
4994 Handle ASHIFT and LSHIFTRT.
4995 (dimode_scalar_chain::compute_convert_gain): Ditto.
4996 (dimode_scalar_chain::convert_insn): Ditto.
4997
4998 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4999
5000 * gimple-ssa-store-merging.c: Include selftest.h
5001 (verify_array_eq): New function.
5002 (verify_shift_bytes_in_array): Likewise.
5003 (verify_shift_bytes_in_array_right): Likewise.
5004 (verify_clear_bit_region): Likewise.
5005 (verify_clear_bit_region_be): Likewise.
5006 (store_merging_c_tests): Likewise.
5007 * selftest.h (store_merging_c_tests): Declare prototype.
5008 * selftest-run-tests.c (selftest::run_tests): Run
5009 store_merging_c_tests.
5010
5011 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5012
5013 * config/arm/arm.opt (mold-rtx-costs): Delete.
5014 (mnew-generic-costs): Delete.
5015 * config/arm/arm-protos.h (struct tune_params): Delete rtx_costs field.
5016 * config/arm/arm.c (arm_rtx_costs_1): Delete.
5017 (arm_size_rtx_costs): Likewise.
5018 (arm_slowmul_rtx_costs): Likewise.
5019 (arm_fastmul_rtx_costs): Likewise.
5020 (arm_xscale_rtx_costs): Likewise.
5021 (arm_9e_rtx_costs): Likewise.
5022 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
5023 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
5024 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
5025 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
5026 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
5027 arm_cortex_a5_tune, arm_xgene1_tune, arm_marvell_pj4_tune,
5028 arm_cortex_a35_tune, arm_exynosm1_tune, arm_cortex_a73_tune,
5029 arm_cortex_m7_tune):
5030 Delete rtx_costs field.
5031 (arm_new_rtx_costs): Rename to...
5032 (arm_rtx_costs_internal): ... This.
5033 (arm_rtx_costs): Remove old way of doing rtx costs.
5034
5035 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5036
5037 * config/arm/arm.c (arm_slowmul_tune): Use generic_extra_costs.
5038 (arm_fastmul_tune): Likewise.
5039 (arm_strongarm_tune): Likewise.
5040 (arm_xscale_tune): Likewise.
5041 (arm_9e_tune): Likewise.
5042 (arm_marvell_pj4_tune): Likewise.
5043 (arm_v6t2_tune): Likewise.
5044 (arm_v6m_tune): Likewise.
5045 (arm_fa726te_tune): Likewise.
5046
5047 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5048
5049 PR tree-optimization/78234
5050 * gimple-ssa-store-merging.c (clear_bit_region): Fix off-by-one error
5051 in start != 0 case.
5052
5053 2016-11-08 Martin Liska <mliska@suse.cz>
5054
5055 PR testsuite/78242
5056 * dbgcnt.def: Add new debug counter asan_use_after_scope.
5057 * gimplify.c (gimplify_decl_expr): Do not sanitize vars
5058 with a value expr. Do not add artificial variables to
5059 live_switch_vars. Use the debug counter.
5060 (gimplify_target_expr): Use the debug counter.
5061 * internal-fn.def: Remove ECF_TM_PURE from ASAN_MARK builtin.
5062 * sanitizer.def: Set ATTR_NOTHROW_LEAF_LIST to
5063 BUILT_IN_ASAN_CLOBBER_N and BUILT_IN_ASAN_UNCLOBBER_N.
5064
5065 2016-11-08 Richard Biener <rguenther@suse.de>
5066
5067 * tree-vect-stmts.c (get_group_load_store_type): If the
5068 access is aligned do not trigger peeling for gaps.
5069 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
5070 force alignment of vars with DECL_USER_ALIGN.
5071
5072 2016-11-08 James Greenhalgh <james.greenhalgh@arm.com>
5073
5074 * config/aarch64/t-aarch64 (aarch64-c.o): Depend on TARGET_H.
5075
5076 2016-11-08 Richard Biener <rguenther@suse.de>
5077
5078 PR tree-optimization/78205
5079 * tree-vect-stmts.c (vectorizable_load): Move check whether
5080 we may run into gaps when BB vectorizing SLP permutations ...
5081 * tree-vect-slp.c (vect_supported_load_permutation_p): ...
5082 here where we can do a more precise check.
5083
5084 2016-11-08 Richard Biener <rguenther@suse.de>
5085
5086 PR tree-optimization/78224
5087 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
5088 Split the fallthru edge in case its successor may have PHIs.
5089 Do not free dominance info.
5090
5091 2016-11-07 Jakub Jelinek <jakub@redhat.com>
5092
5093 PR target/78229
5094 * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
5095 EH info even for bzhi and pdep/pext.
5096
5097 2016-11-07 Peter Bergner <bergner@vnet.ibm.com>
5098
5099 * config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of
5100 INCLUDE_EXTRA_SPEC for Advance Toolchain builds.
5101
5102 2016-11-07 Segher Boessenkool <segher@kernel.crashing.org>
5103
5104 * config/rs6000/rs6000.md (div<mode>3): Expand using rs6000_emit_swdiv
5105 if appropriate.
5106 * config/rs6000/vector.md (div<mode>3): Ditto.
5107
5108 2016-11-07 David Edelsohn <dje.gcc@gmail.com>
5109
5110 * configure.ac (.hidden): Change to conftest_s string. Provide string
5111 for AIX assembler.
5112 (gcc_cv_ld_hidden): Yes for AIX.
5113 * configure: Regenerate.
5114
5115 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Don't set for AIX (XCOFF).
5116
5117 * config/rs6000/rs6000-protos.h (rs6000_asm_weaken_decl): Declare
5118 (rs6000_xcoff_asm_output_aligned_decl_common): Declare.
5119 * config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_DECL_NAME): Define.
5120 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5121 (ASM_OUTPUT_ALIGNED_COMMON): Delete.
5122 * config/rs6000/rs6000.c (rs6000_init_builtins): Change clog rename
5123 from #if to if.
5124 (rs6000_xcoff_visibility): New.
5125 (rs6000_xcoff_declare_function_name): Add visibility support.
5126 (rs6000_xcoff_asm_globalize_decl_name): New.
5127 (rs6000_xcoff_asm_output_aligned_decl_common): New.
5128 (rs6000_asm_weaken_decl): New.
5129 (rs6000_code_end): Disable HIDDEN_LINKONCE on XCOFF.
5130 config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Change definition to
5131 reference function.
5132
5133 2016-11-07 Jack Howarth <howarth.at.gcc@gmail.com>
5134
5135 PR driver/78206
5136 * incpath.c (remove_dup): Also silently ignore EPERM.
5137
5138 2016-11-07 Martin Jambor <mjambor@suse.cz>
5139
5140 * tree.c (verify_type_variant): Use pointer comparison to check that
5141 TYPE_SIZE_UNIT match.
5142
5143 2016-11-07 Jakub Jelinek <jakub@redhat.com>
5144
5145 PR target/77834
5146 * dse.c (dse_step5): Call scan_reads even if just
5147 insn_info->frame_read. Improve and fix dump file messages.
5148
5149 PR target/78227
5150 * config/i386/i386.c (ix86_expand_sse_cmp): Force dest into
5151 cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp.
5152
5153 2016-11-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5154
5155 PR middle-end/35691
5156 * match.pd: Add following two patterns:
5157 (x == 0 & y == 0) -> (x | typeof(x)(y)) == 0.
5158 (x != 0 | y != 0) -> (x | typeof(x)(y)) != 0.
5159
5160 2016-11-07 Bernd Schmidt <bschmidt@redhat.com>
5161
5162 * emit-rtl.c (emit_copy_of_insn_after): Duplicate notes in order.
5163 * sel-sched-ir.c (create_copy_of_insn_rtx): Likewise.
5164 * rtl.h (duplicate_reg_notes): Declare.
5165 * rtlanal.c (duplicate_reg_note): New function.
5166
5167 PR rtl-optimization/77309
5168 * combine.c (make_compound_operation): Allow EQ for IN_CODE, and
5169 don't assume an equality comparison for plain COMPARE.
5170 (simplify_comparison): Pass a more accurate code to
5171 make_compound_operation.
5172
5173 2016-11-07 Pat Haugen <pthaugen@us.ibm.com>
5174
5175 * target.def (compute_pressure_classes): New target hook.
5176 * doc/tm.texi.in: Document it.
5177 * doc/tm.texi: Regenerate.
5178 * ira.c (setup_pressure_classes): Call target hook if defined.
5179
5180 2016-11-07 David Malcolm <dmalcolm@redhat.com>
5181
5182 * print-rtl.c (rtx_writer::operand_has_default_value_p): New
5183 method.
5184 (rtx_writer::print_rtx): In compact mode, omit trailing operands
5185 that have the default values.
5186 * print-rtl.h (rtx_writer::operand_has_default_value_p): New
5187 method.
5188 * rtl-tests.c (selftest::test_dumping_insns): Remove empty
5189 label string from expected dump.
5190 (seltest::test_uncond_jump): Remove trailing "(nil)" for REG_NOTES
5191 from expected dump.
5192
5193 2016-11-07 Jakub Jelinek <jakub@redhat.com>
5194
5195 PR target/77834
5196 * alias.c (nonoverlapping_memrefs_p): If one decl is
5197 FUNCTION_DECL or LABEL_DECL and the other is not, return 1.
5198
5199 2016-11-07 Richard Biener <rguenther@suse.de>
5200
5201 PR target/78229
5202 * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
5203 EH info.
5204
5205 2016-11-07 Richard Biener <rguenther@suse.de>
5206
5207 PR tree-optimization/78218
5208 * gimple-ssa-store-merging.c
5209 (pass_store_merging::terminate_all_aliasing_chains):
5210 Drop unused argument, fix alias check to also consider uses.
5211 (pass_store_merging::execute): Adjust.
5212
5213 2016-11-07 Richard Biener <rguenther@suse.de>
5214
5215 PR tree-optimization/78228
5216 * tree-ssa-phiopt.c (abs_replacement): Avoid introducing
5217 undefined behavior.
5218
5219 2016-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5220
5221 PR target/77822
5222 * config/aarch64/aarch64.md (*tb<optab><mode>1): Use
5223 aarch64_simd_shift_imm_<mode> predicate for operand 1.
5224 (<optab>, ANY_EXTRACT): Use tighter predicates on operands 2 and 3
5225 to restrict them to an appropriate range and add FAIL check if the
5226 region they specify is out of range. Delete useless constraint
5227 strings.
5228 (*<optab><mode>, ANY_EXTRACT): Add appropriate predicates on operands
5229 2 and 3 to restrict their range and add pattern predicate.
5230
5231 2016-11-07 Martin Liska <mliska@suse.cz>
5232
5233 * asan.c (enum asan_check_flags): Move the enum to header file.
5234 (asan_init_shadow_ptr_types): Make type creation more generic.
5235 (shadow_mem_size): New function.
5236 (asan_emit_stack_protection): Use newly added ASAN_SHADOW_GRANULARITY.
5237 Rewritten stack unpoisoning code.
5238 (build_shadow_mem_access): Add new argument return_address.
5239 (instrument_derefs): Instrument local variables if use after scope
5240 sanitization is enabled.
5241 (asan_store_shadow_bytes): New function.
5242 (asan_expand_mark_ifn): Likewise.
5243 (asan_sanitize_stack_p): Moved from asan_sanitize_stack_p.
5244 * asan.h (enum asan_mark_flags): Moved here from asan.c
5245 (asan_protect_stack_decl): Protect all declaration that need
5246 to live in memory.
5247 (asan_sanitize_use_after_scope): New function.
5248 (asan_no_sanitize_address_p): Likewise.
5249 * cfgexpand.c (partition_stack_vars): Consider
5250 asan_sanitize_use_after_scope in condition.
5251 (expand_stack_vars): Likewise.
5252 * common.opt (-fsanitize-address-use-after-scope): New option.
5253 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
5254 Explain the parameter.
5255 * flag-types.h (enum sanitize_code): Define SANITIZE_USE_AFTER_SCOPE.
5256 * gimplify.c (build_asan_poison_call_expr): New function.
5257 (asan_poison_variable): Likewise.
5258 (gimplify_bind_expr): Generate poisoning/unpoisoning for local
5259 variables that have address taken.
5260 (gimplify_decl_expr): Likewise.
5261 (gimplify_target_expr): Likewise for C++ temporaries.
5262 (sort_by_decl_uid): New function.
5263 (gimplify_expr): Unpoison all variables for a label we can jump
5264 from outside of a scope.
5265 (gimplify_switch_expr): Unpoison variables defined in the switch
5266 context.
5267 (gimplify_function_tree): Clear asan_poisoned_variables.
5268 (asan_poison_variables): New function.
5269 (warn_switch_unreachable_r): Handle IFN_ASAN_MARK.
5270 * internal-fn.c (expand_ASAN_MARK): New function.
5271 * internal-fn.def (ASAN_MARK): Declare.
5272 * opts.c (finish_options): Handle -fstack-reuse if
5273 -fsanitize-address-use-after-scope is enabled.
5274 (common_handle_option): Enable address sanitization if
5275 -fsanitize-address-use-after-scope is enabled.
5276 * params.def (PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD):
5277 New parameter.
5278 * params.h: Likewise.
5279 * sancov.c (pass_sanopt::execute): Handle IFN_ASAN_MARK.
5280 * sanitizer.def: Define __asan_poison_stack_memory and
5281 __asan_unpoison_stack_memory functions.
5282 * asan.c (asan_mark_poison_p): New function.
5283 (transform_statements): Handle asan_mark_poison_p calls.
5284 * gimple.c (nonfreeing_call_p): Handle IFN_ASAN_MARK.
5285
5286 2016-11-07 Tamar Christina <tamar.christina@arm.com>
5287
5288 PR driver/78196
5289 * Makefile.in (SELFTEST_FLAGS): Added -o /dev/null.
5290
5291 2016-11-07 Martin Liska <mliska@suse.cz>
5292
5293 * tree-profile.c (gimple_gen_time_profiler): Set proper type
5294 to time_profiler_counter_ptr.
5295
5296 2016-11-07 Richard Biener <rguenther@suse.de>
5297
5298 PR tree-optimization/37150
5299 * tree-vectorizer.h (vect_transform_slp_perm_load): Add n_perms
5300 parameter.
5301 * tree-vect-slp.c (vect_supported_load_permutation_p): Adjust.
5302 (vect_analyze_slp_cost_1): Account for the real number of
5303 permutations emitted and for dead loads.
5304 (vect_transform_slp_perm_load): Add n_perms parameter counting
5305 the number of emitted permutations.
5306 * tree-vect-stmts.c (vectorizable_load): Adjust.
5307
5308 2016-11-07 Richard Biener <rguenther@suse.de>
5309
5310 PR tree-optimization/78189
5311 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Fix
5312 alignment computation.
5313
5314 2016-11-06 Kugan Vivekanandarajah <kuganv@linaro.org>
5315
5316 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove unreachable code.
5317
5318 2016-11-05 Martin Sebor <msebor@redhat.com>
5319
5320 * doc/invoke.texi (Warning Options): Correct typos in -Walloca
5321 documentation.
5322
5323 2016-11-05 David Edelsohn <dje.gcc@gmail.com>
5324
5325 PR bootstrap/78188
5326 PR c++/71848
5327 * ipa-comdats.c (pass_ipa_comdats::gate): Require HAVE_COMDAT_GROUP.
5328
5329 2016-11-04 Jakub Jelinek <jakub@redhat.com>
5330
5331 PR target/77834
5332 * alias.c (nonoverlapping_memrefs_p): Return 0 if exprx or expry
5333 doesn't have rtl set.
5334
5335 2016-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5336
5337 * config/rs6000/rs6000.c (gimple-ssa.h): New #include.
5338 (TARGET_GIMPLE_FOLD_BUILTIN): Define as
5339 rs6000_gimple_fold_builtin.
5340 (rs6000_gimple_fold_builtin): New function. Add handling for
5341 early expansion of vector addition builtins.
5342
5343 2016-11-04 Eric Botcazou <ebotcazou@adacore.com>
5344
5345 * expr.h (copy_blkmode_from_reg): Delete.
5346 * expr.c (copy_blkmode_from_reg): Make static.
5347
5348 2016-11-04 Eric Botcazou <ebotcazou@adacore.com>
5349
5350 * defaults.h (LOAD_EXTEND_OP): Define if not already defined.
5351 * combine.c (LOAD_EXTEND_OP): Delete.
5352 (simplify_comparison): Fix comment about LOAD_EXTEND_OP.
5353 * cse.c (LOAD_EXTEND_OP): Delete.
5354 * fold-const.c (LOAD_EXTEND_OP): Likewise.
5355 * fwprop.c (free_load_extend): Remove #ifdef LOAD_EXTEND_OP/#endif.
5356 * postreload.c (LOAD_EXTEND_OP): Delete.
5357 * reload.c (push_reload): Remove #ifdef LOAD_EXTEND_OP/#endif.
5358 Convert conditional compilation based on WORD_REGISTER_OPERATIONS.
5359 (find_reloads): Likewise.
5360 * reload1.c (eliminate_regs_1): Likewise.
5361 * rtlanal.c (nonzero_bits1): Remove #ifdef LOAD_EXTEND_OP/#endif.
5362 (num_sign_bit_copies1): Likewise.
5363
5364 2016-11-04 David Malcolm <dmalcolm@redhat.com>
5365
5366 * config/i386/i386.c: Include "selftest.h" and "selftest-rtl.h".
5367 (selftest::ix86_test_dumping_hard_regs): New function.
5368 (selftest::ix86_run_selftests): New function.
5369 (TARGET_RUN_TARGET_SELFTESTS): When CHECKING_P, wire this up to
5370 selftest::ix86_run_selftests.
5371 * doc/tm.texi.in (TARGET_RUN_TARGET_SELFTESTS): New.
5372 * doc/tm.texi: Regenerate
5373 * selftest-rtl.h: New file.
5374 * rtl-tests.c: Include "selftest-rtl.h".
5375 (selftest::assert_rtl_dump_eq): Make non-static.
5376 (ASSERT_RTL_DUMP_EQ): Move to selftest-rtl.h.
5377 (selftest::test_dumping_regs): Update comment.
5378 * selftest-run-tests.c: Include "target.h".
5379 (selftest::run_tests): If non-NULL, call
5380 targetm.run_target_selftests.
5381 * target.def (run_target_selftests): New hook.
5382
5383 2016-11-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
5384
5385 * config/arm/arm-arches.def (armv8-m.main+dsp): Set Cortex-M33 as
5386 representative core for this architecture.
5387 * config/arm/arm-cores.def (cortex-m33): Define new processor.
5388 * config/arm/arm-tables.opt: Regenerate.
5389 * config/arm/arm-tune.md: Likewise.
5390 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of
5391 valid -mcpu options.
5392 * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor.
5393
5394 2016-11-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
5395
5396 * config/arm/arm-arches.def (armv8-m.base): Set Cortex-M23 as
5397 representative core for this architecture.
5398 * config/arm/arm-cores.def (cortex-m23): Define new processor.
5399 * config/arm/arm-tables.opt: Regenerate.
5400 * config/arm/arm-tune.md: Likewise.
5401 * config/arm/arm.c (arm_v6m_tune): Add Cortex-M23 to the list of cores
5402 this tuning parameters apply to in the comment.
5403 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M23 to the list of
5404 valid -mcpu options.
5405 * doc/invoke.texi (ARM Options): Document new Cortex-M23 processor.
5406
5407 2016-11-04 Bin Cheng <bin.cheng@arm.com>
5408
5409 * fold-const.c (fold_cond_expr_with_comparison): Remove call
5410 to pedantic_non_lvalue_loc. Remove useless code for lvalue
5411 where cond_expr can't be a lvalue.
5412
5413 2016-11-04 Claudiu Zissulescu <claziss@synopsys.com>
5414
5415 * config/arc/arc.c (arc_process_double_reg_moves): Use
5416 gen_dexcl_2op call.
5417 * config/arc/arc.md (movsi_insn): Disable unsupported move
5418 instructions for ARCv2 cores.
5419 (movdi): Use prepare_move_operands.
5420 (movsf, movdf): Use move_dest_operand predicate.
5421 * config/arc/constraints.md (Chs): Enable when barrel shifter is
5422 present.
5423 * config/arc/fpu.md (divsf3): Change to divsf3_fpu.
5424 * config/arc/fpx.md (dexcl_3op_peep2_insn): Dx data register is
5425 also a destination.
5426 (dexcl_3op_peep2_insn_nores): Likewise.
5427 * config/arc/arc.h (SHIFT_COUNT_TRUNCATED): Define to one.
5428 (LINK_COMMAND_SPEC): Remove.
5429
5430 2016-11-04 Richard Biener <rguenther@suse.de>
5431
5432 PR middle-end/78185
5433 * loop-invariant.c (find_exits): Record entering inner
5434 loops as possibly exiting to handle infinite sub-loops.
5435 * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
5436 (fill_always_executed_in_1): Honor infinite child loops.
5437
5438 2016-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
5439
5440 PR target/78192
5441 * config/rs6000/vsx.md (vsx_extract_<mode>_di): The element number
5442 has already been adjusted for endianness, so don't adjust it any
5443 further.
5444
5445 PR target/77993
5446 * config/rs6000/rs6000.h (FLOAT128_IBM_P): Do not allow IFmode or
5447 ICmode unless we have standard PowerPC floating point.
5448 * config/rs6000/rs6000.md (FP iterator): Likewise.
5449 (FMOVE128 iterator): Likewise.
5450
5451 2016-11-03 Jakub Jelinek <jakub@redhat.com>
5452 Alexandre Oliva <aoliva@redhat.com>
5453 Jason Merrill <jason@redhat.com>
5454
5455 PR debug/28767
5456 PR debug/56974
5457 * langhooks.h (struct lang_hooks_for_types): Add type_dwarf_attribute
5458 langhook.
5459 * langhooks.c (lhd_type_dwarf_attribute): New function.
5460 * langhooks-def.h (lhd_type_dwarf_attribute): Declare.
5461 (LANG_HOOKS_TYPE_DWARF_ATTRIBUTE): Define.
5462 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add
5463 LANG_HOOKS_TYPE_DWARF_ATTRIBUTE.
5464 (check_qualified_type, check_aligned_type): Call it.
5465 * dwarf2out.c (modified_type_die): Don't use type_main_variant
5466 for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with
5467 check_base_type and check_lang_type.
5468 (gen_ptr_to_mbr_type_die): If lookup_type_die is already non-NULL,
5469 return early. For pointer-to-data-member add DW_AT_use_location
5470 attribute.
5471 (gen_subroutine_type_die): Add DW_AT_{,rvalue_}reference attribute
5472 if needed.
5473 (gen_type_die_with_usage): Don't use type_main_variant
5474 for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with
5475 check_base_type and check_lang_type. Formatting fixes. Call
5476 get_debug_type langhook.
5477
5478 2016-11-03 Jason Merrill <jason@redhat.com>
5479
5480 * tree.c (check_lang_type): New.
5481 (check_qualified_type): Use it.
5482 (check_aligned_type): Use it.
5483 * tree.h: Declare it.
5484
5485 2016-11-03 Richard Earnshaw <rearnsha@arm.com>
5486
5487 * config.gcc (arm-wrs-vxworks): Set target_cpu_cname.
5488 (arm*-freebsd*): Likewise.
5489 (arm*-*-netbsdelf*): Likewise.
5490 (arm*-*-linux*): Likewise.
5491 (arm*-*-uclinux*eabi*): Likewise.
5492 (arm*-*-phoenix*): Likewise.
5493 (arm*-*-eabi*, arm*-*-symbianelf*, arm*-*-rtems*): Likewise.
5494 (arm*-*-*): Don't clobber target_cpu_cname when --with-cpu is not
5495 specified. Default to arm6 if target_cpu_cname is not set.
5496 * arm/arm.c (arm_option_override): Simplify logic. Assert that the
5497 default cpu has been correctly configured.
5498 * arm/arm.h (TARGET_CPU_DEFAULT): Delete.
5499 (target_cpus): Delete TARGET_CPU_generic, add TARGET_CPU_num_cores.
5500 * arm/freebsd.h (SUBTARGET_CPU_DEFAULT): Delete.
5501 * arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Delete.
5502 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
5503 * arm/symbian.h (SUBTARGET_CPU_DEFAULT): Delete.
5504 * arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
5505
5506 2016-11-03 Jiong Wang <jiong.wang@arm.com>
5507
5508 * reg-notes.def (CFA_VAL_EXPRESSION): New entry.
5509 * dwarf2cfi.c (dwarf2out_frame_debug_cfa_val_expression): New function.
5510 (dwarf2out_frame_debug): Support REG_CFA_VAL_EXPRESSION.
5511 (output_cfa_loc): Support DW_CFA_val_expression.
5512 (output_cfa_loc_raw): Likewise.
5513 (output_cfi): Likewise.
5514 (output_cfi_directive): Likewise.
5515 * dwarf2out.c (dw_cfi_oprnd1_desc): Support DW_CFA_val_expression.
5516 (dw_cfi_oprnd2_desc): Likewise.
5517 (mem_loc_descriptor): Recognize new pattern generated for value
5518 expression.
5519
5520 2016-11-03 Segher Boessenkool <segher@kernel.crashing.org>
5521
5522 PR rtl-optimization/78186
5523 * combine.c (change_zero_ext): Mask the RHS of a zero_extract as
5524 well, when converting to IOR.
5525
5526 2016-11-03 Eric Botcazou <ebotcazou@adacore.com>
5527
5528 * config/sparc/sparc.md (vec_interleave_lowv8qi): Delete.
5529 (vec_interleave_highv8qi): Likewise.
5530
5531 2016-11-03 Martin Liska <mliska@suse.cz>
5532
5533 * profile.c (instrument_values): Fix coding style.
5534 (branch_prob): Use renamed function.
5535 * tree-profile.c (init_ic_make_global_vars): Likewise.
5536 (gimple_init_edge_profiler): Rename to
5537 gimple_init_gcov_profiler.
5538 tree_time_profiler_counter variable declaration.
5539 (gimple_gen_time_profiler): Rewrite to do a direct gimple code
5540 emission.
5541 * value-prof.h: Remove an argument.
5542
5543 2016-11-03 Richard Biener <rguenther@suse.de>
5544
5545 * config/rs6000/rs6000.c (rs6000_xcoff_declare_object_name): Use
5546 symtab_node::get_create.
5547
5548 2016-11-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5549
5550 * rtlanal.c (nonzero_bits1): Fix WORD_REGISTER_OPERATIONS condition.
5551 Move comments into more natural position.
5552
5553 2016-11-03 Vineet Gupta <vgupta@synopsys.com>
5554
5555 * config/arc/arc.h (SIZE_TYPE): Define as unsigned int.
5556 (PTRDIFF_TYPE): Define as int.
5557
5558 2016-11-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5559
5560 * ccmp.c (expand_ccmp_expr_1): Adjust.
5561 (expand_ccmp_expr): Likewise.
5562 (expand_ccmp_next): Likewise.
5563 * config/aarch64/aarch64.c (aarch64_gen_ccmp_next): Likewise.
5564 (aarch64_gen_ccmp_first): Likewise.
5565 * doc/tm.texi: Regenerate.
5566 * target.def (gen_ccmp_first): Change argument types to rtx_insn *.
5567 (gen_ccmp_next): Likewise.
5568
5569 2016-11-03 Bin Cheng <bin.cheng@arm.com>
5570
5571 * tree-vect-loop.c (destroy_loop_vec_info): Handle cond_expr.
5572 (vect_is_simple_reduction): Swap cond_reduction by inversion.
5573
5574 2016-11-02 Uros Bizjak <ubizjak@gmail.com>
5575
5576 * config/i386/i386.c (ix86_init_libfuncs): New. Call
5577 darwin_rename_builtins here.
5578 (ix86_expand_divmod_libfunc): New.
5579 (TARGET_INIT_LIBFUNCS): Unconditionally define to ix86_init_libfuncs.
5580 (TARGET_EXPAND_DIVMOD_LIBFUNC): Define.
5581
5582 2016-11-02 Cesar Philippidis <cesar@codesourcery.com>
5583 Nathan Sidwell <nathan@acm.org>
5584
5585 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Set to zero.
5586
5587 2016-11-02 Max Filippov <jcmvbkbc@gmail.com>
5588
5589 * config/xtensa/xtensa.c (xtensa_output_integer_literal_parts):
5590 New function.
5591 (xtensa_output_literal): Use xtensa_output_integer_literal_parts
5592 to format MODE_INT and MODE_PARTIAL_INT literals.
5593
5594 2016-11-02 Segher Boessenkool <segher@kernel.crashing.org>
5595
5596 PR target/78168
5597 * config/r6000/rs6000.c (rs6000_get_separate_components): Return
5598 NULL if TARGET_SPE_ABI.
5599
5600 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5601
5602 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Don't forget to
5603 clear padding bits even when they're less than a byte.
5604
5605 2016-11-02 Richard Biener <rguenther@suse.de>
5606
5607 * gimple-ssa-store-merging.c: Include gimplify-me.h.
5608 (imm_store_chain_info::output_merged_stores): Force base_addr
5609 to be proper GIMPLE for a MEM_REF address.
5610 (pass_store_merging::execute): Restrict negative bitpos
5611 handling to non-MEM_REF bases. Remove TREE_THIS_VOLATILE
5612 check. Take into account non-NULL_TREE offset if the base
5613 is already addressable.
5614
5615 2016-11-26 Wilco Dijkstra <wdijkstr@arm.com>
5616
5617 * config/aarch64/aarch64-simd.md (aarch64_crypto_sha1hv4si):
5618 New pattern.
5619 (aarch64_be_crypto_sha1hv4si): New pattern.
5620
5621 2016-11-02 Wilco Dijkstra <wdijkstr@arm.com>
5622
5623 * config/aarch64/aarch64.md (add<mode>3): Remove
5624 redundant code. Don't split frame based additions.
5625
5626 2016-11-02 Richard Biener <rguenther@suse.de>
5627
5628 * gimple-ssa-store-merging.c (struct store_immediate_info): Remove
5629 redundant val and dest members.
5630 (store_immediate_info::store_immediate_info): Adjust.
5631 (merged_store_group::merged_store_group): Adjust.
5632 (merged_store_group::apply_stores): Likewise.
5633 (struct imm_store_chain_info): Add base_addr field.
5634 (imm_store_chain_info::imm_store_chain_info): New constructor.
5635 (imm_store_chain_info::terminate_and_process_chain): Do not pass base.
5636 (imm_store_chain_info::output_merged_store): Likewise. Use
5637 addr_base which is already the address.
5638 (imm_store_chain_info::output_merged_stores): Likewise.
5639 (pass_tree_store_merging::terminate_all_aliasing_chains): Take
5640 imm_store_chain_info instead of base. Fix alias check.
5641 (pass_tree_store_merging::terminate_and_release_chain): Likewise.
5642 (imm_store_chain_info::coalesce_immediate_stores): Adjust.
5643 (pass_store_merging::execute): Refuse to operate on TARGET_MEM_REF.
5644 use the address of the base and adjust for other changes.
5645
5646 2016-11-02 Martin Liska <mliska@suse.cz>
5647
5648 * fold-const-call.c (host_size_t_cst_p): Test whether
5649 t is convertible to size_t.
5650
5651 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5652
5653 PR tree-optimization/78170
5654 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Truncate padding
5655 introduced by native_encode_expr on little-endian as well.
5656
5657 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5658
5659 PR tree-optimization/78162
5660 * gimple-ssa-store-merging.c (execute): Mark stores with bitpos < 0
5661 as invalid.
5662
5663 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5664
5665 * config/aarch64/aarch64.c (aarch64_register_saved_on_entry): Add
5666 function comment.
5667 (aarch64_next_callee_save): Likewise.
5668 (aarch64_pushwb_single_reg): Likewise.
5669 (aarch64_gen_storewb_pair): Likewise.
5670 (aarch64_push_regs): Likewise.
5671 (aarch64_gen_loadwb_pair): Likewise.
5672 (aarch64_pop_regs): Likewise.
5673 (aarch64_gen_store_pair): Likewise.
5674 (aarch64_gen_load_pair): Likewise.
5675 (aarch64_save_callee_saves): Likewise.
5676 (aarch64_restore_callee_saves): Likewise.
5677
5678 2016-11-02 Richard Biener <rguenther@suse.de>
5679
5680 PR tree-optimization/78035
5681 PR tree-optimization/77964
5682 * gimple-pretty-print.c (pp_points_to_solution): Print
5683 vars_contains_interposable.
5684 * tree-ssa-alias.c: Include varasm.h.
5685 (ptrs_compare_unequal): Check vars_contains_interposable and
5686 decl_binds_to_current_def_p.
5687 (dump_points_to_solution): Dump vars_contains_interposable.
5688 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_interposable
5689 flag.
5690 * tree-ssa-structalias.c: Include varasm.h.
5691 (set_uids_in_ptset): Record whether vars contains a
5692 not decl_binds_to_current_def_p variable in vars_contains_interposable.
5693 (ipa_escaped_pt): Update initializer.
5694
5695 2016-11-02 Richard Biener <rguenther@suse.de>
5696
5697 PR tree-optimization/78047
5698 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Initialize
5699 fake field at offset zero conservatively regarding to may_have_pointers.
5700
5701 2016-11-02 Richard Biener <rguenther@suse.de>
5702
5703 * tree-vrp.c (evrp_dom_walker::before_dom_children): Call
5704 infer_value_range on stmt ops and update value-ranges.
5705 Dump visited stmts and blocks.
5706 (evrp_dom_walker::push_value_range): Dump changes.
5707 (evrp_dom_walker::pop_value_range): Likewise.
5708 (evrp_dom_walker::try_find_new_range): Avoid noop changes.
5709
5710 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5711
5712 * emit-rtl.c (prev_nonnote_insn_bb): Change argument type to
5713 rtx_insn *.
5714 * rtl.h (prev_nonnote_insn_bb): Adjust prototype.
5715
5716 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5717
5718 * cfgrtl.c (delete_insn_chain): Change argument type to rtx_insn *
5719 and adjust for that.
5720 * cfgrtl.h (delete_insn_chain): Adjust prototype.
5721
5722 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5723
5724 * config/rl78/rl78.c (gen-and_emit_move): Change argument type
5725 to rtx_insn *.
5726 (transcode_memory_rtx): Likewise.
5727 (move_to_acc): Likewise.
5728 (move_from_acc): Likewise.
5729 (move_acc_to_reg): Likewise.
5730 (move_to_x): Likewise.
5731 (move_to_hl): Likewise.
5732 (move_to_de): Likewise.
5733 * config/rs6000/rs6000.c (emit_frame_save): Likewise.
5734 (rs6000_emit_savres_rtx): Likewise.
5735 (rs6000_emit_prologue): Likewise.
5736 * reorg.c (update_reg_unused_notes): Likewise.
5737 * rtl.h (remove_note): Adjust prototype.
5738 * rtlanal.c (remove_note): Make argument type rtx_insn *.
5739
5740 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5741
5742 * config/alpha/alpha.c (alpha_legitimize_address_1): Split up
5743 variables so some can be rtx_insn *.
5744 (alpha_emit_xfloating_libcall): Likewise.
5745 * config/mips/mips.c (mips_call_tls_get_addr): Likewise.
5746 (mips_legitimize_tls_address): Likewise.
5747 * optabs.c (expand_binop): Likewise.
5748 * reload1.c (gen_reload): Likewise.
5749
5750 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5751
5752 * reorg.c (relax_delay_slots): Split up the trial variable.
5753
5754 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5755
5756 * config/arc/arc.c (arc_emit_call_tls_get_addr): Make the type
5757 of variables rtx_insn *.
5758 * config/arm/arm.c (arm_call_tls_get_addr): Likewise.
5759 (legitimize_tls_address): Likewise.
5760 * config/bfin/bfin.c (hwloop_optimize): Likewise.
5761 (bfin_gen_bundles): Likewise.
5762 * config/c6x/c6x.c (reorg_split_calls): Likewise.
5763 (c6x_reorg): Likewise.
5764 * config/frv/frv.c (frv_reorder_packet): Likewise.
5765 * config/i386/i386.c (ix86_split_idivmod): Likewise.
5766 * config/ia64/ia64.c (ia64_expand_compare): Likewise.
5767 * config/m32c/m32c.c (m32c_prepare_shift): Likewise.
5768 * config/mn10300/mn10300.c: Likewise.
5769 * config/rl78/rl78.c: Likewise.
5770 * config/s390/s390.c (s390_fix_long_loop_prediction): Likewise.
5771 * config/sh/sh-mem.cc (sh_expand_cmpstr): Likewise.
5772 (sh_expand_cmpnstr): Likewise.
5773 (sh_expand_strlen): Likewise.
5774 (sh_expand_setmem): Likewise.
5775 * config/sh/sh.md: Likewise.
5776 * emit-rtl.c (emit_pattern_before): Likewise.
5777 * except.c: Likewise.
5778 * final.c: Likewise.
5779 * jump.c: Likewise.
5780
5781 2016-11-01 Jason Merrill <jason@redhat.com>
5782
5783 * tree-inline.c (copy_tree_body_r): Only copy the taken branch of
5784 a COND_EXPR with constant condition.
5785
5786 2016-11-01 Jakub Jelinek <jakub@redhat.com>
5787
5788 * dwarf2out.c (gen_variable_die): Remove again origin_die variable
5789 and its initialization.
5790
5791 2016-11-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5792
5793 * dwarf2out.c (output_rnglists): Wrap basebuf, len in
5794 HAVE_AS_LEB128.
5795
5796 2016-11-01 Jakub Jelinek <jakub@redhat.com>
5797
5798 * dwarf2out.c (add_name_and_src_coords_attributes): Add NO_LINKAGE_NAME
5799 argument, don't call add_linkage_name if it is true.
5800 (gen_variable_die): For C++ inline static data members, consider the
5801 initial call when old_die is NULL to be declaration and call
5802 add_name_and_src_coords_attributes in that case with true as
5803 NO_LINKAGE_NAME. Add DW_AT_inline attribute if needed.
5804 (gen_member_die): For C++ inline static data members, emit a
5805 definition DIE right away in DW_TAG_compile_unit context.
5806
5807 2016-11-01 John David Anglin <danglin@gcc.gnu.org>
5808
5809 PR target/78166
5810 * config/pa/pa.md: Add new shift/add patterns to handle
5811 (plus (mult (reg) (mem_shadd_operand)) (reg)) source operand.
5812
5813 2016-11-01 Max Filippov <jcmvbkbc@gmail.com>
5814
5815 * config/xtensa/xtensa-protos.h
5816 (xtensa_use_return_instruction_p): New prototype.
5817 * config/xtensa/xtensa.c (xtensa_current_frame_size,
5818 xtensa_callee_save_size): Remove.
5819 (struct machine_function): Add new fields: current_frame_size,
5820 callee_save_size, frame_laid_out and epilogue_done.
5821 (compute_frame_size, xtensa_expand_prologue,
5822 xtensa_expand_epilogue): Replace xtensa_callee_save_size with
5823 cfun->machine->callee_save_size and xtensa_current_frame_size
5824 with cfun->machine->current_frame_size.
5825 (compute_frame_size): Update cfun->machine->frame_laid_out and
5826 don't update frame layout after reload completion.
5827 (xtensa_expand_epilogue): Set cfun->machine->epilogue_done
5828 instead of zeroing xtensa_current_frame_size.
5829 (xtensa_use_return_instruction_p): New function.
5830 * config/xtensa/xtensa.h (xtensa_current_frame_size): Remove
5831 declaration.
5832 (INITIAL_ELIMINATION_OFFSET): Use return value of
5833 compute_frame_size instead of xtensa_current_frame_size value.
5834 * config/xtensa/xtensa.md ("return" pattern): Use new predicate
5835 function xtensa_use_return_instruction_p instead of inline code.
5836
5837 2016-11-01 Jakub Jelinek <jakub@redhat.com>
5838
5839 * tree.h (BLOCK_IN_COLD_SECTION_P): Define.
5840 * final.c (final_scan_insn): Set BLOCK_IN_COLD_SECTION_P.
5841 * dwarf2out.c (rnglist_idx): New variable.
5842 (struct dw_ranges): Add label, idx and maybe_new_sec fields.
5843 (DEBUG_RNGLISTS_SECTION): Define.
5844 (ranges_base_label): New variable.
5845 (size_of_die) <case dw_val_class_range_list>: If using
5846 DW_FORM_rnglistx, count size of uleb128 of range list index.
5847 (value_format) <case dw_val_class_range_list>: For
5848 -gdwarf-5 -gsplit-dwarf return DW_FORM_rnglistx.
5849 (output_range_list_offset): Handle -gdwarf-5 .debug_rnglists
5850 offsets. Multiply dwarf < 5 offsets by 2 * DWARF_ADDR_SIZE.
5851 (add_ranges_num): Remove useless prototype. Don't multiply
5852 by 2 * DWARF2_ADDR_SIZE. Add maybe_new_sec argument, adjust
5853 for new fields added to dw_ranges struct.
5854 (add_ranges): Add maybe_new_sec argument and pass it
5855 through to add_ranges_num.
5856 (note_rnglist_head): New function.
5857 (add_ranges_by_labels): Pass true as maybe_new_sec to
5858 add_ranges_num, call note_rnglist_head on the head of the list.
5859 (output_ranges): Add function comment. Switch to
5860 .debug_ranges section here and emit .Ldebug_ranges0 label.
5861 (index_rnglists, output_rnglists): New functions.
5862 (gen_subprogram_die): Formatting fixes.
5863 (add_high_low_attributes): Don't divide offsets
5864 by 2 * DWARF2_ADDR_SIZE. Call note_rnglist_head on the
5865 first list element or when pointing into the middle of
5866 a list. Pass true as second argument to add_ranges on the
5867 first block fragment after cold/hot section switch.
5868 (init_sections_and_labels): For -gdwarf-5 use .debug_rnglists
5869 section instead of .debug_ranges. Initialize
5870 ranges_base_label if -gdwarf-5 -gsplit-dwarf.
5871 (dwarf2out_finish): For -gdwarf-5 -gsplit-dwarf call
5872 index_rnglists and add DW_AT_rnglists_base attr. Don't switch
5873 to dwarf_ranges_section here or emit .Ldebug_ranges0 label.
5874 Call output_rnglists for -gdwarf-5.
5875 (dwarf2out_c_finalize): Clear rnglist_idx.
5876
5877 2016-11-01 Fritz Reese <fritzoreese@gmail.com>
5878
5879 * combine.c (simplify_compare_const): Add gcc_fallthrough.
5880
5881 2016-11-01 Bilyan Borisov <bilyan.borisov@arm.com>
5882 Tamar Christina <tamar.christina@arm.com>
5883
5884 * config/arm/arm-c.c (arm_cpu_builtins): New macro definition.
5885 * config/arm/arm_neon.h (vmaxnm_f32): New intrinsinc.
5886 (vmaxnmq_f32): Likewise.
5887 (vminnm_f32): Likewise.
5888 (vminnmq_f32): Likewise.
5889 * config/arm/arm_neon_builtins.def (vmaxnm): New builtin.
5890 (vminnm): Likewise.
5891 * config/arm/neon.md (neon_<fmaxmin_op><mode>, VCVTF): New
5892 expander.
5893
5894 2016-10-31 Michael Meissner <meissner@linux.vnet.ibm.com>
5895
5896 * config/rs6000/vsx.md (VSX_EXTRACT_FL): New iterator for all
5897 binary floating point types supported by the hardware except for
5898 double.
5899 (vsx_xvcvsxwdp_df): Provide scalar result alternative to the
5900 vector instruction for optimizing extracting a SImode from a
5901 V4SImode vector and converting it to floating point.
5902 (vsx_xvcvuxwdp_df): Likewise.
5903 (vsx_extract_si): On ISA 3.0, allow extract target and temporary
5904 registers to be any VSX register. Move stores to the end of the
5905 constraints.
5906 (vsx_extract_si_<uns>float_df): New combiner pattern and splitter
5907 to optimize extracting a SImode from a V4SImode vector and
5908 converting it to a binary floating point type supported by the
5909 hardware. Use the vector converts instead of extracting the
5910 element, sign extending it, and then converting it to double.
5911 Other floating point types than double first convert to double,
5912 then the double is converted to that type.
5913 (vsx_extract_si_<uns>float_<mode>): Likewise.
5914
5915 2016-10-31 Andrew Pinski <apinski@cavium.com>
5916
5917 * config/aarch64/driver-aarch64.c (host_detect_local_cpu):
5918 Rewrite handling of part num to handle the case where
5919 multiple implementers share the same part num.
5920
5921 2016-10-31 Jan Kratochvil <jan.kratochvil@redhat.com>
5922 Jakub Jelinek <jakub@redhat.com>
5923
5924 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): Adjust for -gdwarf-5.
5925 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Likewise.
5926
5927 2016-10-31 Jakub Jelinek <jakub@redhat.com>
5928
5929 * dwarf2out.c (dwarf_AT): Handle DW_AT_dwo_name.
5930 (use_debug_types): Adjust comment for DWARF5 DW_UT_type units.
5931 (new_die): Handle DW_TAG_skeleton_unit like DW_TAG_compile_unit.
5932 (is_cu_die, is_unit_die): Likewise.
5933 (should_move_die_to_comdat, break_out_comdat_types): Adjust
5934 comments for DWARF5 DW_UT_type units.
5935 (output_compilation_unit_header): Add UT argument, output
5936 start of DWARF5 .debug_info section header.
5937 (output_comp_unit): Add dwo_id argument. Adjust
5938 output_compilation_unit_header caller, for DW_UT_split_compile
5939 emit dwo_id field, otherwise padding1. Emit padding2 field.
5940 (add_top_level_skeleton_die_attrs): Add DW_AT_dwo_name
5941 rather than DW_AT_GNU_dwo_name attr for -gdwarf-5.
5942 (output_skeleton_debug_sections): Add dwo_id argument, for
5943 -gdwarf-5 emit DWARF 5 DW_UT_skeleton header.
5944 (output_comdat_type_unit): For -gdwarf-5 emit .debug_info
5945 DW_UT_type or DW_UT_split_type units rather than .debug_types.
5946 (dwarf2out_finish): Use DW_TAG_skeleton_unit rather than
5947 DW_TAG_compile_unit for skeleton unit die. Don't add
5948 DW_AT_GNU_dwo_id attributes for -gdwarf-5, instead pass checksum
5949 address to output_comp_unit and output_skeleton_debug_sections.
5950
5951 * dwarf2out.c (debug_line_str_section): New variable.
5952 (debug_line_str_hash): Likewise.
5953 (DEBUG_LINE_STR_SECTION): Define.
5954 (set_indirect_string): Handle DW_FORM_line_strp like
5955 DW_FORM_strp.
5956 (find_string_form): Fix up formatting.
5957 (size_of_die): Handle DW_FORM_line_strp like DW_FORM_strp.
5958 Fix up indentation.
5959 (output_die): Handle DW_FORM_line_strp.
5960 (DWARF5_USE_DEBUG_LINE_STR): Define.
5961 (output_line_string): New function.
5962 (output_file_names): Add -gdwarf-5 support.
5963 (output_line_info): Likewise.
5964 (init_sections_and_labels): Initialize debug_line_str_section.
5965 (output_indirect_string): Change 2nd argument from void *
5966 to enum dwarf_form form, compare with form rather than
5967 DW_FORM_strp.
5968 (output_indirect_strings): Pass DW_FORM_strp to
5969 output_indirect_string traversion.
5970 (dwarf2out_finish): Output .debug_line_str strings.
5971 (dwarf2out_c_finalize): Clear debug_line_str_section and
5972 debug_line_str_hash.
5973
5974 2016-10-31 Tom Tromey <tom@tromey.com>
5975
5976 PR debug/77315
5977 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_form_tls_address.
5978 (resolve_args_picking_1): Move DW_OP_form_tls_address case next to
5979 DW_OP_GNU_push_tls_address case.
5980 (loc_list_from_tree_1): Use DW_OP_form_tls_address.
5981
5982 2016-10-31 Jakub Jelinek <jakub@redhat.com>
5983
5984 * dwarf2out.h (struct dw_loc_descr_node): Adjust comment
5985 for frame_offset_rel bit.
5986 (struct array_descr_info): Add rank field.
5987 * dwarf2out.c (struct loc_descr_context): Add placeholder_arg
5988 and placeholder_seen fields.
5989 (resolve_args_picking_1): Handle also frame_offset_rel DW_OP_dup
5990 and DW_OP_over. Optimize DW_OP_pick 0 into DW_OP_dup and
5991 DW_OP_pick 1 into DW_OP_over.
5992 (function_to_dwarf_procedure, type_byte_size, field_byte_offset,
5993 gen_variant_part): Clear placeholder_{arg,seen}.
5994 (loc_list_from_tree_1): Drop const from context argument.
5995 Handle integral PLACEHOLDER_EXPR if context->placeholder_arg.
5996 (loc_list_for_address_of_addr_expr_of_indirect_ref,
5997 loc_list_from_tree, loc_descriptor_from_tree): Drop const from
5998 context argument.
5999 (add_scalar_info): Drop const from context argument. Handle
6000 context->placeholder_arg.
6001 (add_bound_info): Drop const from context argument.
6002 (gen_descr_array_type_die): Drop const from ctx variable.
6003 Initialize placeholder_arg and placeholder_seen. Add DW_AT_rank
6004 attribute and use a single DW_TAG_generic_subrange instead of
6005 7 DW_TAG_subrange_type for assumed rank arrays.
6006
6007 * dwarf2out.h (enum dw_val_class): Add dw_val_class_loclistsptr.
6008 * dwarf2out.c (struct dw_loc_list_struct): Change emitted field
6009 from bool to 1-bit uchar bitfield. Add num_assigned and
6010 offset_emitted bitfields.
6011 (dw_val_equal_p): Compare v.val_lbl_id rather than v.val_unsigned
6012 for dw_val_class_lineptr and dw_val_class_macptr. Handle
6013 dw_val_class_loclistsptr.
6014 (new_addr_loc_descr): Fix up formatting.
6015 (DEBUG_LOCLISTS_SECTION, DEBUG_DWO_LOCLISTS_SECTION): Define.
6016 (add_AT_low_high_pc): Fix up formatting.
6017 (add_AT_loclistsptr): New function.
6018 (AT_lbl): Allow dw_val_class_loclistsptr.
6019 (print_dw_val, attr_checksum, attr_checksum_ordered, same_dw_val_p):
6020 Handle dw_val_class_loclistsptr.
6021 (loc_list_idx): New variable.
6022 (output_loclists_offsets, assign_location_list_indexes): New
6023 functions.
6024 (size_of_die): For dw_val_class_loc_list -gsplit-dwarf -gdwarf-5
6025 add size_of_uleb128 of the index. Drop never used
6026 dwarf_split_debug_info AT_index handling. Handle
6027 dw_val_class_loclistsptr.
6028 (value_format): Return DW_FORM_loclistsx for dw_val_class_loc_list
6029 if -gsplit-dwarf -gdwarf-5. Handle dw_val_class_loclistsptr.
6030 (output_loc_list): Handle DWARF 5 .debug_loclists* format.
6031 (output_loc_list_offset): Handle -gsplit-dwarf -gdwarf-5
6032 DW_FORM_loclistx indexes.
6033 (output_attr_index_or_value): Fix up formatting. Don't handle
6034 dw_val_class_loc_list here.
6035 (output_die): Formatting fixes. Handle dw_val_class_loclistsptr.
6036 For dw_val_class_loc_list call output_loc_list_offset rather than
6037 output_attr_index_or_value.
6038 (init_sections_and_labels): For -gdwarf-5 use .debug_loclists
6039 or .debug_loclists.dwo section name for debug_loc_section.
6040 (resolve_addr_in_expr): Formatting fix.
6041 (index_location_lists): Likewise.
6042 (dwarf2out_finish): If there are any location lists, for
6043 -gsplit-dwarf -gdwarf-5 add DW_AT_loclists_base attribute. Call
6044 index_location_lists only if have_location_lists. Call
6045 assign_location_list_indexes for -gsplit-dwarf -gdwarf-5. Emit
6046 .debug_loclists{,.dwo} section header for -gdwarf-5, for -gdwarf-5
6047 -gsplit-dwarf also emit offset table.
6048
6049 * dwarf2out.c (DWARF_LARGEST_DATA_FORM_BITS): Define.
6050 (size_of_die, value_format, output_die): Use
6051 DW_FORM_data16 for 128-bit dw_val_class_const_double or
6052 dw_val_class_wide_int.
6053
6054 * dwarf2out.c (dwarf_op): Renamed to ...
6055 (dwarf_OP): ... this.
6056 (convert_descriptor_to_mode, scompare_loc_descriptor,
6057 minmax_loc_descriptor, typed_binop, mem_loc_descriptor,
6058 implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr): Adjust
6059 callers.
6060 (dwarf_AT, dwarf_TAG): New functions.
6061 (check_die): Disallow DW_AT_call_all_calls next to
6062 DW_AT_GNU_all_call_sites.
6063 (gen_call_site_die): Use dwarf_TAG and dwarf_AT with DWARF 5 tag
6064 and attributes instead of the corresponding GNU tag and attributes.
6065 (gen_subprogram_die): Likewise. Emit call site information even
6066 for -gdwarf-5 -gstrict-dwarf. Replace DW_AT_GNU_defaulted with
6067 DW_AT_defaulted in comment.
6068 (resolve_addr): Handle DW_AT_call_origin attribute on
6069 DW_TAG_call_site DIE like DW_AT_abstract_origin on
6070 DW_TAG_GNU_call_site DIE.
6071
6072 * dwarf2out.c (dwarf_op): New function.
6073 (size_of_loc_descr): Handle DW_OP_{implicit_pointer,entry_value},
6074 DW_OP_{const,regval,deref}_type and DW_OP_{convert,reinterpret}.
6075 (output_loc_operands, output_loc_operands_raw): Likewise.
6076 (resolve_args_picking_1, prune_unused_types_walk_loc_descr,
6077 mark_base_types, hash_loc_operands, compare_loc_operands): Likewise.
6078 (resolve_addr_in_expr): Likewise. Only punt for !dwarf_strict
6079 if dwarf_version < 5.
6080 (convert_descriptor_to_mode): Use dwarf_op (DW_OP_xxx) instead of
6081 DW_OP_GNU_xxx.
6082 (scompare_loc_descriptor, ucompare_loc_descriptor,
6083 minmax_loc_descriptor, typed_binop, mem_loc_descriptor,
6084 implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr,
6085 optimize_location_into_implicit_ptr): Likewise. Only punt for
6086 !dwarf_strict if dwarf_version < 5.
6087 (string_cst_pool_decl): Adjust comment.
6088 (non_dwarf_expression): Handle DW_OP_implicit_pointer.
6089
6090 * dwarf2out.h (enum dw_val_class): Add dw_val_class_const_implicit,
6091 dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit.
6092 (struct dw_val_node): Add val_file_implicit field.
6093 * dwarf2out.c (dw_val_equal_p, print_dw_val, attr_checksum,
6094 attr_checksum_ordered, same_dw_val_p, size_of_die, value_format,
6095 output_die): Handle dw_val_class_const_implicit,
6096 dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit.
6097 (abbrev_die_table): Change into va_gc vec.
6098 (abbrev_die_table_allocated, abbrev_die_table_in_use,
6099 ABBREV_DIE_TABLE_INCREMENT): Remove.
6100 (AT_int, AT_unsigned, AT_file): Allow dw_val_class_*_implicit.
6101 (abbrev_opt_start, abbrev_usage_count, sorted_abbrev_dies): New
6102 variables.
6103 (build_abbrev_table): Adjust for abbrev_die_table being a va_gc vec.
6104 If abbrev_opt_start, fill in abbrev_usage_count and abbrev_dies
6105 vectors.
6106 (die_abbrev_cmp, optimize_implicit_const, optimize_abbrev_table): New
6107 functions.
6108 (output_die_abbrevs): For DW_FORM_implicit_const emit sleb128 with
6109 the implicit value.
6110 (output_abbrev_section): Adjust for abbrev_die_table being a va_gc
6111 vec.
6112 (output_comp_unit): Initialize abbrev_opt_start if emitting the main
6113 unit. Call optimize_abbrev_table.
6114 (dwarf2out_init, dwarf2out_finish, dwarf2out_c_finalize): Adjust for
6115 abbrev_die_table being a va_gc vec.
6116
6117 PR tree-optimization/77860
6118 * tree-ssa-reassoc.c (eliminate_using_constants): Handle
6119 also integral complex and vector constants.
6120
6121 * dwarf2out.c (dwarf2out_define, dwarf2out_undef, output_macinfo_op,
6122 optimize_macinfo_range, save_macinfo_strings): Replace
6123 DW_MACRO_GNU_* constants with corresponding DW_MACRO_* constants.
6124 (output_macinfo): Likewise. Emit .debug_macro* rather than
6125 .debug_macinfo* even for -gstrict-dwarf -gdwarf-5.
6126 (init_sections_and_labels): Use .debug_macro* labels rather than
6127 .debug_macinfo* labels even for -gstrict-dwarf -gdwarf-5.
6128 (dwarf2out_finish): Use DW_AT_macros instead of DW_AT_macro_info
6129 or DW_AT_GNU_macros for -gdwarf-5.
6130
6131 2016-10-31 Waldemar Brodkorb <wbx@openadk.org>
6132
6133 * config/microblaze/linux.h (UCLIBC_DYNAMIC_LINKER): Define.
6134
6135 2016-09-11 Le-Chun Wu <lcwu@google.com>
6136 Mark Wielaard <mjw@redhat.com>
6137
6138 * common.opt (Wshadow=global): New option. Default for -Wshadow.
6139 (Wshadow=local): New option.
6140 (Wshadow-local): Hidden alias for -Wshadow=local.
6141 (Wshadow=compatible-local): New option.
6142 (Wshadow-compatible-local): Hidden alias for
6143 -Wshadow=compatible-local.
6144 * doc/invoke.texi: Document Wshadow=global, Wshadow=local and
6145 Wshadow=compatible-local.
6146
6147 2016-10-31 Bin Cheng <bin.cheng@arm.com>
6148
6149 * tree-vect-slp.c (vect_get_and_check_slp_defs): New parameter SWAP.
6150 Check slp defs for COND_EXPR by swapping/inverting operands if the
6151 new parameter SWAP indicates so.
6152 (vect_build_slp_tree_1): New parameter SWAP. Check COND_EXPR stmt
6153 is isomorphic to the first stmt via swapping/inverting. Store swap
6154 information in the new parameter SWAP.
6155 (vect_build_slp_tree): New local array SWAP and pass it to function
6156 vect_build_slp_tree_1. Cleanup result handling code for function
6157 call to vect_get_and_check_slp_defs. Skip operand swapping if the
6158 order of operands has been fixed as indicated by SWAP[i].
6159
6160 2016-10-31 Bin Cheng <bin.cheng@arm.com>
6161
6162 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip
6163 unnecessary data dependence check after visited store stmt.
6164
6165 2016-10-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6166
6167 PR tree-optimization/71915
6168 PR tree-optimization/71490
6169 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
6170 stride_type field.
6171 (find_basis_for_base_expr): Require stride types to match when
6172 seeking a basis.
6173 (alloc_cand_and_find_basis): Record the stride type.
6174 (slsr_process_phi): Pass stride type to alloc_cand_and_find_basis.
6175 (backtrace_base_for_ref): Pass types to legal_cast_p_1 rather than
6176 the expressions having those types.
6177 (slsr_process_ref): Pass stride type to alloc_cand_and_find_basis.
6178 (create_mul_ssa_cand): Likewise.
6179 (create_mul_imm_cand): Likewise.
6180 (create_add_ssa_cand): Likewise.
6181 (create_add_imm_cand): Likewise.
6182 (legal_cast_p_1): Change interface to accept types rather than the
6183 expressions having those types.
6184 (legal_cast_p): Pass types to legal_cast_p_1.
6185 (slsr_process_cast): Pass stride type to
6186 alloc_cand_and_find_basis.
6187 (slsr_process_copy): Likewise.
6188 (dump_candidate): Display stride type when a cast exists.
6189 (create_add_on_incoming_edge): Introduce a cast when necessary for
6190 the stride type.
6191 (analyze_increments): Change the code checking for invalid casts
6192 to rely on the stride type, and update the documentation and
6193 example. Change the code checking for pointer multiplies to rely
6194 on the stride type.
6195 (insert_initializers): Introduce a cast when necessary for the
6196 stride type. Use the stride type for the type of the initializer.
6197
6198 2016-10-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6199
6200 * config/arm/arm.c (arm_const_not_ok_for_debug_p): Use VAR_P.
6201
6202 2016-10-29 Jakub Jelinek <jakub@redhat.com>
6203
6204 PR rtl-optimization/77919
6205 * expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing
6206 into memory if both modes are complex and their inner modes have the
6207 same precision. If the two modes are different complex modes, convert
6208 each part separately and generate a new CONCAT.
6209
6210 2016-10-29 John David Anglin <danglin@gcc.gnu.org>
6211
6212 * config/pa/pa64-hpux.h (FINI_SECTION_ASM_OP): Define to null string.
6213
6214 2016-10-29 Jakub Jelinek <jakub@redhat.com>
6215
6216 PR target/78148
6217 * gimple-ssa-store-merging.c
6218 (imm_store_chain_info::output_merged_store): Use build_aligned_type
6219 instead of SET_TYPE_ALIGN on shared integral type.
6220
6221 2016-10-29 John David Anglin <danglin@gcc.gnu.org>
6222
6223 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
6224 (MALLOC_ABI_ALIGNMENT): Define to 128 on all targets except SOM.
6225 Adjust comment.
6226
6227 2016-10-28 Jeff Law <law@redhat.com>
6228
6229 * config/vax/vax.h (REGNO_REG_CLASS): Access the REGNO argument.
6230 * config/spu/spu.h (REGNO_REG_CLASS): Likewise.
6231
6232 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
6233
6234 * doc/sourcebuild.texi (Ada Tests): Remove mention of gcc chapter.
6235
6236 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
6237
6238 * target.def (min_arithmetic_precision): New hook.
6239 * doc/tm.texi.in (Misc): Add TARGET_MIN_ARITHMETIC_PRECISION.
6240 * doc/tm.texi: Regenerate.
6241 * internal-fn.c (expand_arith_overflow): Adjust handling of target
6242 dependent support by means of TARGET_MIN_ARITHMETIC_PRECISION.
6243 * targhooks.c (default_min_arithmetic_precision): New function.
6244 * targhooks.h (default_min_arithmetic_precision): Declare.
6245 * config/sparc/sparc.c (TARGET_MIN_ARITHMETIC_PRECISION): Define.
6246 (sparc_min_arithmetic_precision): New function.
6247
6248 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org>
6249
6250 PR target/71847
6251 * combine.c (change_zero_ext): Handle zero_ext of hard registers.
6252 Swap commutative operands in new RTL if needed. Handle zero_ext
6253 in the set_dest.
6254 (recog_for_combine): Pass *pnewpat to change_zero_ext instead of
6255 PATTERN (insn).
6256
6257 2016-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6258 Kugan Vivekanandarajah <kuganv@linaro.org>
6259 Jim Wilson <jim.wilson@linaro.org>
6260
6261 PR tree-optimization/43721
6262 * target.def: New hook expand_divmod_libfunc.
6263 * doc/tm.texi.in: Add hook for TARGET_EXPAND_DIVMOD_LIBFUNC.
6264 * doc/tm.texi: Regenerate.
6265 * internal-fn.def: Add new entry for DIVMOD ifn.
6266 * internal-fn.c (expand_DIVMOD): New.
6267 * tree-ssa-math-opts.c: Include optabs-libfuncs.h, tree-eh.h,
6268 targhooks.h.
6269 (widen_mul_stats): Add new field divmod_calls_inserted.
6270 (target_supports_divmod_p): New.
6271 (divmod_candidate_p): Likewise.
6272 (convert_to_divmod): Likewise.
6273 (pass_optimize_widening_mul::execute): Call calculate_dominance_info,
6274 renumber_gimple_stmt_uids at beginning of function. Call
6275 convert_to_divmod and record stats for divmod.
6276 * config/arm/arm.c (arm_expand_divmod_libfunc): Override hook
6277 TARGET_EXPAND_DIVMOD_LIBFUNC.
6278 * doc/sourcebuild.texi: Add items for arm_divmod_simode, divmod,
6279 divmod_simode.
6280
6281 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
6282 Segher Boessenkool <segher@kernel.crashing.org>
6283
6284 * dojump.c (do_jump_by_parts_greater_rtx): Invert probability when
6285 swapping the arms of the branch.
6286 * internal-fn.c (expand_addsub_overflow): Use a straight-line code
6287 sequence for the generic signed-signed-signed case.
6288
6289 2016-10-28 Jeff Law <law@redhat.com>
6290
6291 * config/bfin/bfin.c (bfin_legitimate_address_p): Add missing
6292 fallthru comment.
6293 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
6294
6295 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org>
6296
6297 PR rtl-optimization/78029
6298 * function.c (prologue_contains, epilogue_contains): New functions.
6299 (record_prologue_seq, record_epilogue_seq): New functions.
6300 * function.h (prologue_contains, epilogue_contains,
6301 record_prologue_seq, record_epilogue_seq): New declarations.
6302 * sched-deps.c (sched_analyze_insn): Make dependencies to prevent
6303 mixing prologue and epilogue insns.
6304 (init_deps): Initialize the new fields in struct deps_desc.
6305 * sched-int.h (struct deps_desc): New fields last_prologue,
6306 last_epilogue, and last_logue_was_epilogue.
6307 * shrink-wrap.c (emit_common_heads_for_components): Record all
6308 emitted prologue and epilogue insns.
6309 (emit_common_tails_for_components): Ditto.
6310 (insert_prologue_epilogue_for_components): Ditto.
6311
6312 2016-10-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6313
6314 PR middle-end/22141
6315 * Makefile.in (OBJS): Add gimple-ssa-store-merging.o.
6316 * common.opt (fstore-merging): New Optimization option.
6317 * opts.c (default_options_table): Add entry for
6318 OPT_ftree_store_merging.
6319 * fold-const.h (can_native_encode_type_p): Declare prototype.
6320 * fold-const.c (can_native_encode_type_p): Define.
6321 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Define.
6322 (PARAM_MAX_STORES_TO_MERGE): Likewise.
6323 * timevar.def (TV_GIMPLE_STORE_MERGING): New timevar.
6324 * passes.def: Insert pass_tree_store_merging.
6325 * tree-pass.h (make_pass_store_merging): Declare extern
6326 prototype.
6327 * gimple-ssa-store-merging.c: New file.
6328 * doc/invoke.texi (Optimization Options): Document
6329 -fstore-merging.
6330 (--param documentation): Document store-merging-allow-unaligned
6331 and max-stores-to-merge.
6332
6333 2016-10-28 Will Schmidt <will_schmidt@vnet.ibm.com>
6334
6335 PR middle-end/72747
6336 * gimplify.c (gimplify_init_constructor): Move emit of constructor
6337 assignment to earlier in the if/else logic.
6338
6339 2016-10-28 Richard Biener <rguenther@suse.de>
6340
6341 PR middle-end/78128
6342 PR middle-end/71002
6343 * fold-const.c (make_bit_field_ref): Only adjust alias set
6344 when the original alias set was zero.
6345
6346 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6347
6348 * config/s390/s390.c (s390_adjust_loop_scan_osc): New function.
6349 (s390_adjust_loops): New function.
6350 (s390_reorg): Invoke s390_adjust_loops.
6351 * config/s390/s390.md (UNSPEC_OSC_BREAK): New constant.
6352 ("osc_break"): New insn definition.
6353
6354 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6355
6356 * config/s390/s390.opt: Support alternate cpu level naming (archXX).
6357 * config.gcc: Support alternate archXX cpu levels with
6358 --with-arch= and --with-tune=.
6359 * config/s390/linux.h: Translate new archXX cpu levels to the
6360 original names when calling GAS.
6361 * config/s390/tpf.h: Likewise.
6362 * doc/invoke.texi: Document the alternate cpu level names.
6363
6364 2016-10-28 Jakub Jelinek <jakub@redhat.com>
6365
6366 PR rtl-optimization/77919
6367 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into
6368 MEM if mode1 is not a complex mode.
6369
6370 PR rtl-optimization/78132
6371 * ree.c (combine_reaching_defs): Give up if copy_needed and
6372 !HARD_REGNO_MODE_OK (REGNO (src_reg), dst_mode).
6373
6374 2016-10-27 Eric Botcazou <ebotcazou@adacore.com>
6375
6376 * config/sparc/sparc.md (<*vlop:code><VL:mode>3): Remove leading '*'.
6377
6378 2016-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
6379
6380 * config/rs6000/constraints.md (wH constraint): Add new
6381 constraints for allowing 32-bit integers (and eventually 8/16-bit
6382 integers) into the vector registers.
6383 (wI constraint): Likewise.
6384 (wJ constraint): Likewise.
6385 (wK constraint): Likewise.
6386 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
6387 -mvsx-small-integer as a default option for ISA 2.07
6388 (i.e. power8).
6389 (POWERPC_MASKS): Likewise.
6390 * config/rs6000/rs6000.opt (-mvsx-small-integer): Add new debug
6391 switch to turn off small integer support in vector registers.
6392 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Eliminate
6393 test for -mupper-regs-di, since it is already done with the
6394 reg_add[mode].scalar_in_vsx_p. Add support for the switch
6395 -mvsx-small-integer.
6396 (rs6000_debug_reg_global): Add support for wH, wI, wJ, and wK
6397 constraints.
6398 (rs6000_setup_reg_addr_masks): Likewise.
6399 (rs6000_init_hard_regno_mode_ok): Likewise.
6400 (rs6000_option_override_internal): Add consistency checks for
6401 -mvsx-small-integer.
6402 (rs6000_secondary_reload_simple_move): SImode is a simple move if
6403 -mvsx-small-integer.
6404 (rs6000_secondary_reload): Use std::swap.
6405 (rs6000_preferred_reload_class): Don't prefer FLOAT_REGS over
6406 VSX_REGS for small integers in vector registers, since there is no
6407 D-FORM address mode for such types.
6408 (rs6000_register_move_cost): Use FIRST_FPR_REGNO instead of 32.
6409 (rs6000_opt_masks): Add -mvsx-small-integer.
6410 * config/rs6000/vsx.md (VSINT_84): Add SImode for small integer
6411 support.
6412 (VSX_EXTRACT_I2): Clone VSX_EXTRACT_I, but drop V4SI since SImode
6413 extracts can be done on ISA 2.07.
6414 (vsx_extract_<mode>): Add support for small integers in vsx
6415 registers.
6416 (vsx_extract_<mode>_p9): Use 'v' instead of VSX_EX, since we no
6417 longer support V4SImode in this pattern.
6418 (vsx_extract_si): New insn to support extraction of SImode in ISA
6419 2.07 using either xxextractuw or vspltw.
6420 (vsx_extract_<mode>_p8): Use 'v' instead of VSX_EX, since we no
6421 longer support V4SImode in this pattern.
6422 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wH, wI,
6423 wJ, and wK constraints.
6424 * config/rs6000/rs6000.md (f32_sv): Use correct instruction for
6425 storing SDmode with VSX instructions.
6426 (zero_extendsi<mode>2): Reorder pattern, so RLDICL comes after the
6427 GPR load and before the FPR and VSX loads. Remove ??, ! from the
6428 constraints. Add MFVSRWZ and XXEXTRACTUW instructions to support
6429 small integers in vector registers.
6430 (extendsi<mode>2): Reorder pattern, so EXTSW comes after the GPR
6431 load and before the FPR and VSX loads. Remove ??, ! from the
6432 constraints. Add VEXTSW2D support for small integers in vector
6433 registers.
6434 (lfiwax): Remove ! constraint. Add VEXTSW2D support for small
6435 integers in vector registers.
6436 (floatsi<mode>2_lfiwax): If -mvsx-small-integer issue a normal
6437 move instead of using an UNSPEC.
6438 (lfiwzx): Remove ! constraint. Add XXEXTRACTUW support for small
6439 integers in vector registers.
6440 (floatunssi<mode>2_lfiwzx): If -mvsx-small-integer issue a normal
6441 move instead of using an UNSPEC.
6442 (movsi_internal1): Add support for -mvsx-small-integer. Align
6443 columns so that it is more readable.
6444 (SImode splitter for ISA 3.0 constants): Add splitter for
6445 -128..127 constants that can easily be constructed on ISA 3.0.
6446 * doc/md.texi (PowerPC Constraints): Document wH, wI, wJ, and wK
6447 constraints.
6448
6449 2016-10-27 Jakub Jelinek <jakub@redhat.com>
6450
6451 PR middle-end/78025
6452 * omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
6453 functions.
6454
6455 2016-10-27 Aldy Hernandez <aldyh@redhat.com>
6456
6457 * builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating
6458 PIC_OFFSET_TABLE_REGNUM twice.
6459
6460 2016-10-27 Bin Cheng <bin.cheng@arm.com>
6461
6462 * match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add
6463 support for constant operand for OP.
6464
6465 2016-10-27 Jakub Jelinek <jakub@redhat.com>
6466
6467 * dwarf2out.c (gen_member_die): Only reparent_child instead of
6468 splice_child_die if child doesn't have DW_AT_specification attribute.
6469
6470 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
6471
6472 * config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline.
6473 (TARGET_HAVE_LDREXBH): Likewise.
6474 (TARGET_HAVE_LDACQ): Likewise.
6475
6476 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
6477
6478 * config/arm/arm.c (arm_split_atomic_op): Add function comment. Add
6479 logic to to decide whether to copy over old value to register for new
6480 value.
6481 * config/arm/sync.md: Add comments explaning why mode and code
6482 attribute are not defined in iterators.md
6483 (thumb1_atomic_op_str): New code attribute.
6484 (thumb1_atomic_newop_str): Likewise.
6485 (thumb1_atomic_fetch_op_str): Likewise.
6486 (thumb1_atomic_fetch_newop_str): Likewise.
6487 (thumb1_atomic_fetch_oldop_str): Likewise.
6488 (atomic_exchange<mode>): Add new ARMv8-M Baseline only alternatives to
6489 mirror the more restrictive constraints of the Thumb-1 insns after
6490 split compared to Thumb-2 counterpart insns.
6491 (atomic_<sync_optab><mode>): Likewise. Add comment to keep constraints
6492 in sync with non atomic version.
6493 (atomic_nand<mode>): Likewise.
6494 (atomic_fetch_<sync_optab><mode>): Likewise.
6495 (atomic_fetch_nand<mode>): Likewise.
6496 (atomic_<sync_optab>_fetch<mode>): Likewise.
6497 (atomic_nand_fetch<mode>): Likewise.
6498 * config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint
6499 in sync with atomic version.
6500 (thumb1_subsi3_insn): Likewise.
6501 (thumb1_andsi3_insn): Likewise.
6502 (thumb1_iorsi3_insn): Likewise.
6503 (thumb1_xorsi3_insn): Likewise.
6504
6505 2016-10-27 Nick Clifton <nickc@redhat.com>
6506
6507 * plugin.c (register_plugin_info): Produce an error message if the
6508 plugin is not found in the hash table.
6509
6510 2016-10-27 Bin Cheng <bin.cheng@arm.com>
6511
6512 * match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
6513 New pattern.
6514
6515 2016-10-26 Kelvin Nilsen <kelvin@gcc.gnu.org>
6516
6517 PR target/78056
6518 * config/rs6000/rs6000.c (spe_init_builtins): Modify loops to not
6519 define builtin functions from the bdesc_spe_predicates or
6520 bdesc_spe_evsel arrays if the builtin mask is not compatible with
6521 the current compiler configuration.
6522 (paired_init_builtins): Modify loop to not define define builtin
6523 functions from the bdesc_paried_preds array if the builtin mask is
6524 not compatible with the current compiler configuration.
6525 (altivec_init_builtins): Modify loops to not define the
6526 __builtin_altivec_stxvl function nor the builtin functions from
6527 the bdesc_dst or bdesc_altivec_preds, or bdesc_abs arrays if the
6528 builtin mask is not compatible with the current compiler
6529 configuration.
6530
6531 2016-10-26 Jeff Law <law@redhat.com>
6532
6533 * config/sh/sh.c (output_branch): Add missing fallthru comments.
6534 (gen_shl_and): Likewise.
6535 * config/sh/sh.md (movsicc): Add missing fallthru comments.
6536
6537 * config/mips/mips.c (mips16_constant_cost): Add missing
6538 fallthru comments.
6539 (mips16_build_call_stub): Increase buffer size. Adjust
6540 fallthru comment.
6541
6542 2016-10-26 David Malcolm <dmalcolm@redhat.com>
6543
6544 * print-rtl.c (rtx_writer::print_rtx_operand_code_u): Print
6545 INSN_UIDs for all insns in compact mode.
6546 (rtx_writer::print_rtx): Likewise.
6547 * print-rtl.h (rtx_writer::flag_compact): Update comment.
6548 * rtl-tests.c (selftest::test_dumping_insns): Update expected
6549 output to include INSN_UID.
6550 (selftest::test_uncond_jump): Likewise.
6551
6552 2016-10-26 Pat Haugen <pthaugen@us.ibm.com>
6553
6554 * haifa-sched.c (call_used_regs_num): Rename to...
6555 (call_saved_regs_num): ...this.
6556 (fixed_regs_num): New variable.
6557 (sched_pressure_start_bb): Subtract out fixed_regs. Scale call_saved
6558 regs not call_used.
6559 (alloc_global_sched_pressure_data): Compute call_saved and fixed regs.
6560
6561 2016-10-26 David Malcolm <dmalcolm@redhat.com>
6562
6563 * print-rtl-function.c (print_rtx_function): Rewrite in terms of
6564 class rtx_writer.
6565 * print-rtl.c (outfile): Delete global.
6566 (sawclose): Likewise.
6567 (indent): Likewise.
6568 (in_call_function_usage): Likewise.
6569 (flag_compact): Likewise.
6570 (flag_simple): Likewise.
6571 (rtx_writer::rtx_writer): New ctor.
6572 (print_rtx_operand_code_0): Convert to...
6573 (rtx_writer::print_rtx_operand_code_0): ...this.
6574 (print_rtx_operand_code_e): Convert to...
6575 (rtx_writer::print_rtx_operand_code_e): ...this.
6576 (print_rtx_operand_codes_E_and_V): Convert to...
6577 (rtx_writer::print_rtx_operand_codes_E_and_V): ...this.
6578 (print_rtx_operand_code_i): Convert to...
6579 (rtx_writer::print_rtx_operand_code_i): ...this.
6580 (print_rtx_operand_code_r): Convert to...
6581 (rtx_writer::print_rtx_operand_code_r): ...this.
6582 (print_rtx_operand_code_u): Convert to...
6583 (rtx_writer::print_rtx_operand_code_u): ...this.
6584 (print_rtx_operand): Convert to...
6585 (rtx_writer::print_rtx_operand): ...this.
6586 (print_rtx): Convert to...
6587 (rtx_writer::print_rtx): ...this.
6588 (print_inline_rtx): Rewrite in terms of class rtx_writer.
6589 (debug_rtx): Likewise.
6590 (print_rtl): Convert to...
6591 (rtx_writer::print_rtl): ...this.
6592 (print_rtl): Reimplement in terms of class rtx_writer.
6593 (print_rtl_single): Rewrite in terms of class rtx_writer.
6594 (print_rtl_single_with_indent): Convert to..
6595 (rtx_writer::print_rtl_single_with_indent): ...this.
6596 (print_simple_rtl): Rewrite in terms of class rtx_writer.
6597 * print-rtl.h (flag_compact): Delete decl.
6598 (class rtx_writer): New class.
6599 * rtl-tests.c (selftest::assert_rtl_dump_eq): Rewrite in terms of
6600 class rtx_writer.
6601
6602 2016-10-26 Jeff Law <law@redhat.com>
6603
6604 * config/microblaze/microblaze.c (tls_mentioned_p): Avoid
6605 fallthru.
6606
6607 * config/arc/arc.c (acr_print_operand): Adjust fallthru comment.
6608 (check_if_valid_sleep_operand): Add missing fallthru comment.
6609 (arc_register_move_cost): Increase buffer size.
6610 * config/arc/arc.md (cbranch4si_scratch): Add missing fallthru
6611 comment.
6612 * config/arc/predicates.md (move_str_operand): Avoid fallthru.
6613
6614 * config/cr16/cr16.c (cr16_print_operand): Add missing fallthru
6615 comment. Add gcc_unreachable for path that should never happen.
6616
6617 * config/epiphany/epiphany.c (epiphany_print_operand): Adjust
6618 fallthru comment.
6619
6620 2016-10-26 Jakub Jelinek <jakub@redhat.com>
6621 Martin Liska <mliska@suse.cz>
6622
6623 PR fortran/77973
6624 * gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
6625 clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
6626 on outer context if any.
6627
6628 2016-10-26 Jakub Jelinek <jakub@redhat.com>
6629
6630 * gen-pass-instances.awk (adjust_linenos): Increment pass_lines[p]
6631 by increment rather than double it.
6632 (insert_remove_pass): Strip leading whitespace from args[3]. Don't
6633 emit a space before args[4].
6634 (END): Don't emit a space before with_arg.
6635
6636 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
6637
6638 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M
6639 Baseline only alternatives to (i) hold store atomic success value in a
6640 return register rather than a scratch register, (ii) use a low register
6641 for it and to (iii) ensure the cbranchsi insn generated by the split
6642 respect the constraints of Thumb-1 cbranchsi4_insn and
6643 cbranchsi4_scratch.
6644 * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate
6645 constraints must match those in atomic_compare_and_swap.
6646 (cbranchsi4_scratch): Likewise.
6647
6648 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
6649
6650 * config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local
6651 variable. Add the new parameter to the insn generator. Set that
6652 parameter to be CC flag for 32-bit targets, bval otherwise. Set the
6653 return value from the negation of that parameter for Thumb-1, keeping
6654 the logic unchanged otherwise except for using bdst as the destination
6655 register of the compare_and_swap insn.
6656 (arm_split_compare_and_swap): Add explanation about how is the value
6657 returned to the function comment. Rename scratch variable to
6658 neg_bval. Adapt initialization of variables holding operands to the
6659 new operand numbers. Use return register to hold result of store
6660 exclusive for Thumb-1, scratch register otherwise. Construct the
6661 appropriate cbranch for Thumb-1 targets, keeping the logic unchanged
6662 for 32-bit targets. Guard Z flag setting to restrict to 32bit targets.
6663 Use gen_cbranchsi4 rather than hand-written conditional branch to loop
6664 for strongly ordered compare_and_swap.
6665 * config/arm/predicates.md (cc_register_operand): New predicate.
6666 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Use a
6667 match_operand with the new predicate to accept either the CC flag or a
6668 destination register for the boolean return value, restricting it to
6669 CC flag only via constraint. Adapt operand numbers accordingly.
6670
6671 2016-10-26 Jeff Law <law@redhat.com>
6672
6673 * config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment.
6674
6675 * config/frv/frv.c (comparison_string): Do not fall through after
6676 an error.
6677
6678 * config/iq2000/iq2000.c (iq2000_function_arg): Adjust fallthru
6679 comment.
6680 (expand_one_builtin): Add missing break.
6681
6682 * config/m32c/m32c.c (encode_pattern_1): Add fallthru comment.
6683 (m32c_legitimate_address_p): Likewise.
6684
6685 * config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment.
6686
6687 * config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments.
6688
6689 * config/microblaze/microblaze.c (microblaze_function_arg): Adjust
6690 fallthru comment.
6691
6692 * config/msp430/msp430.c (msp430_legitimate_address_p): Adjust
6693 fallthru comment.
6694
6695 * config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru.
6696
6697 * config/rl78/rl78.c (rl78_calculate_death_notes): Add fallthru
6698 comment.
6699 (rl78_asm_ctor_dtor): Increase buffer size.
6700
6701 * config/stormy16/stormy16.c (xstormy16_asm_output_destrutor): Increase
6702 buffer size.
6703 (xstormy16_asm_output_constructor): Likewise.
6704
6705 * config/pa/pa.c (pa_asm_output_mi_thunk): Increase buffer
6706 size.
6707
6708 * config/h8300/h8300.c (h8300_print_operand): Adjust FALLTHRU
6709 comment to silence warning.
6710
6711 * config/spu/spu.c (spu_sched_reorder): Add missing fallthru comment.
6712 (spu_legitimate_address_p): Fix logic error and add missing fallthru
6713 comment.
6714
6715 2016-10-26 Michael Matz <matz@suse.de>
6716
6717 PR tree-optimization/78060
6718 PR tree-optimization/78061
6719 PR tree-optimization/78088
6720 * tree-ssa-loop-split.c (easy_exit_values): New function.
6721 (tree_ssa_split_loops): Use it.
6722 (compute_new_first_bound): Change order of operations,
6723 fix invalid use of types.
6724
6725 2016-10-26 Georg-Johann Lay <avr@gjlay.de>
6726
6727 gen-pass-instances.awk is sensitive to the order in which
6728 passes are added; passes that appear later have to be added first.
6729
6730 PR target/71676
6731 PR target/71678
6732 * config/avr/avr-passes.def: Swap order of directives for
6733 gen-pass-instances.awk.
6734
6735 2016-10-25 Jeff Law <law@redhat.com>
6736
6737 * config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment.
6738 (vax_notice_update_cc): Likewise.
6739
6740 2016-10-25 Eric Botcazou <ebotcazou@adacore.com>
6741
6742 * config.gcc (sparc*-*-solaris2*): Adjust.
6743 (sparc64-*-linux*): Likewise.
6744 * config/sparc/default-64.h: Rename to...
6745 * config/sparc/default64.h: ...this.
6746 * config/sparc/sparc.c (sparc_option_override): Replace TARGET_64BIT
6747 with TARGET_ARCH64.
6748 (sparc_mangle_type): Replace !TARGET_64BIT with TARGET_ARCH32.
6749 * config/sparc/sparc.h: Minor tweaks.
6750 * config/sparc/sparc.md: Replace !TARGET_64BIT and !TARGET_ARCH64 with
6751 TARGET_ARCH32 throughout. Minor various tweaks throughout.
6752
6753 2016-10-25 David Malcolm <dmalcolm@redhat.com>
6754
6755 * input.c (fcache::file_patch): Add comment about lifetime.
6756 (selftest::cpp_reader_ptr): New class.
6757 (selftest::lexer_test): Convert m_parser from cpp_reader *
6758 to a cpp_reader_ptr, and move m_tempfile to after it.
6759 (selftest::lexer_test::lexer_test): Update for above reordering.
6760 (lexer_test::~lexer_test): Move cleanup of m_parser to
6761 cpp_reader_ptr's dtor.
6762
6763 2016-10-25 David Malcolm <dmalcolm@redhat.com>
6764
6765 * toplev.c (toplev::main): Remove call to
6766 location_adhoc_data_fini.
6767
6768 2016-10-25 Eric Botcazou <ebotcazou@adacore.com>
6769
6770 * tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.
6771 * tree.c (int_fits_type_p): Likewise. Adjust head comment.
6772
6773 2016-10-25 David Malcolm <dmalcolm@redhat.com>
6774
6775 * ggc-tests.c (forcibly_ggc_collect): Rename to...
6776 (selftest::forcibly_ggc_collect): ...this, and remove "static".
6777 (test_basic_struct): Update for above renaming.
6778 (test_length): Likewise.
6779 (test_union): Likewise.
6780 (test_finalization): Likewise.
6781 (test_deletable_global): Likewise.
6782 (test_inheritance): Likewise.
6783 (test_chain_next): Likewise.
6784 (test_user_struct): Likewise.
6785 (test_tree_marking): Likewise.
6786 * selftest-run-tests.c (selftest::run_tests): Call
6787 selftest::forcibly_ggc_collect at the end of the selftests.
6788 * selftest.h (selftest::forcibly_ggc_collect): New decl.
6789
6790 2016-10-25 Jakub Jelinek <jakub@redhat.com>
6791
6792 PR target/78102
6793 * optabs.def (vcondeq_optab, vec_cmpeq_optab): New optabs.
6794 * optabs.c (expand_vec_cond_expr): For comparison codes
6795 EQ_EXPR and NE_EXPR, attempt vcondeq_optab as fallback.
6796 (expand_vec_cmp_expr): For comparison codes
6797 EQ_EXPR and NE_EXPR, attempt vec_cmpeq_optab as fallback.
6798 * optabs-tree.h (expand_vec_cmp_expr_p, expand_vec_cond_expr_p):
6799 Add enum tree_code argument.
6800 * optabs-query.h (get_vec_cmp_eq_icode, get_vcond_eq_icode): New
6801 inline functions.
6802 * optabs-tree.c (expand_vec_cmp_expr_p): Add CODE argument. For
6803 CODE EQ_EXPR or NE_EXPR, attempt to use vec_cmpeq_optab as
6804 fallback.
6805 (expand_vec_cond_expr_p): Add CODE argument. For CODE EQ_EXPR or
6806 NE_EXPR, attempt to use vcondeq_optab as fallback.
6807 * tree-vect-generic.c (expand_vector_comparison,
6808 expand_vector_divmod, expand_vector_condition): Adjust
6809 expand_vec_cmp_expr_p and expand_vec_cond_expr_p callers.
6810 * tree-vect-stmts.c (vectorizable_condition,
6811 vectorizable_comparison): Likewise.
6812 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern,
6813 check_bool_pattern, search_type_for_mask_1): Likewise.
6814 * expr.c (do_store_flag): Likewise.
6815 * doc/md.texi (@code{vec_cmpeq@var{m}@var{n}},
6816 @code{vcondeq@var{m}@var{n}}): Document.
6817 * config/i386/sse.md (vec_cmpeqv2div2di, vcondeq<VI8F_128:mode>v2di):
6818 New expanders.
6819
6820 2016-10-25 Jeff Law <law@redhat.com>
6821
6822 * config/v850/v850.c (v850_handle_data_area_attribute): Fix fallthru
6823 comment.
6824 (v850_output_aligned_bss): Add missing break.
6825
6826 * config/m68k/m68k.c (m68k_get_reloc_decoration): Add gcc_unreachable.
6827
6828 2016-10-25 Martin Liska <mliska@suse.cz>
6829
6830 PR sanitizer/78106
6831 * sanopt.c (imm_dom_path_with_freeing_call): Handle gasm
6832 statements as they can also contain possibly a freeing call.
6833
6834 2016-10-25 H.J. Lu <hongjiu.lu@intel.com>
6835 Martin Liska <mliska@suse.cz>
6836
6837 PR ipa/78099
6838 * common.opt: Mark flag_ipa_icf_variables as Optimization flag.
6839 * ipa-icf.c (sem_function::get_hash): Add target optimization
6840 node to hash.
6841
6842 2016-10-25 Wilco Dijkstra <wdijkstr@arm.com>
6843
6844 PR target/78041
6845 * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
6846 Remove partial overlap check for shift by 1.
6847 (ashldi3_neon): Likewise.
6848
6849 2016-10-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
6850
6851 * config/arm/constraints.md (Q constraint): Document its use for
6852 Thumb-1.
6853 (Pf constraint): New constraint for relaxed, consume or relaxed memory
6854 models.
6855 * config/arm/sync.md (atomic_load<mode>): Add new ARMv8-M Baseline only
6856 alternatives to allow any register when memory model matches Pf and
6857 thus lda is used, but only low registers otherwise. Use unpredicated
6858 output template for Thumb-1 targets.
6859 (atomic_store<mode>): Likewise for stl.
6860 (arm_load_exclusive<mode>): Add new ARMv8-M Baseline only alternative
6861 whose output template does not have predication.
6862 (arm_load_acquire_exclusive<mode>): Likewise.
6863 (arm_load_exclusivesi): Likewise.
6864 (arm_load_acquire_exclusivesi): Likewise.
6865 (arm_store_release_exclusive<mode>): Likewise.
6866 (arm_store_exclusive<mode>): Use unpredicated output template for
6867 Thumb-1 targets.
6868
6869 2016-10-25 Jakub Jelinek <jakub@redhat.com>
6870
6871 * internal-fn.def (LAUNDER): New internal function.
6872 * internal-fn.c (expand_LAUNDER): New function.
6873
6874 2016-10-25 Georg-Johann Lay <avr@gjlay.de>
6875 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
6876
6877 New avr target pass to work around performance loss by PR fix.
6878
6879 PR target/71676
6880 PR target/71678
6881 * config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn.
6882 (*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3.
6883 * config/avr/predicates.md (extend_operator): New.
6884 * config/avr/avr-passes.def (avr_pass_casesi): Register new pass.
6885 * config/avr/avr-protos.h (avr_casei_sequence_check_operands)
6886 (make_avr_pass_casesi): New prototypes.
6887 * config/avr/avr.c (print-rtl.h): Include it.
6888 (pass_data avr_pass_data_casesi): Data for new pass.
6889 (avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi.
6890 (make_avr_pass_casesi, avr_parallel_insn_from_insns)
6891 (avr_is_casesi_sequence, avr_casei_sequence_check_operands)
6892 (avr_optimize_casesi): New functions.
6893
6894 2016-10-25 Georg-Johann Lay <avr@gjlay.de>
6895 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
6896
6897 PR target/71676
6898 PR target/71678
6899 * config/avr/avr.md (casesi): Rewrite avoiding subregs of SI.
6900
6901 2016-10-24 Jakub Jelinek <jakub@redhat.com>
6902
6903 * dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or
6904 DW_AT_rvalue_reference attributes.
6905
6906 2016-10-24 Bernd Edlinger <bernd.edlinger@hotmail.de>
6907
6908 * doc/invoke.text (Wint-in-bool-context): Update documentation.
6909 * value-prof.c (stringop_block_profile): Fix a warning.
6910
6911 2016-10-24 Martin Sebor <msebor@redhat.com>
6912
6913 PR middle-end/77735
6914 * builtins.c (string_length): New function.
6915 (c_strlen): Use string_length. Correctly handle wide strings.
6916 * gimple-ssa-sprintf.c (target_max_value, target_size_max): New
6917 functions.
6918 (target_int_max): Call target_max_value.
6919 (format_result::knownrange): New data member.
6920 (fmtresult::fmtresult): Define default constructor.
6921 (format_integer): Use it and set format_result::knownrange.
6922 Handle global constants.
6923 (format_floating_max): Add third argument.
6924 (format_floating): Recompute maximum value for %a for each argument.
6925 (get_string_length): Use fmtresult default ctor.
6926 (format_string): Set format_result::knownrange.
6927 (format_directive): Check format_result::knownrange.
6928 (add_bytes): Same. Correct caret placement in diagnostics.
6929 (pass_sprintf_length::compute_format_length): Set
6930 format_result::knownrange.
6931 (pass_sprintf_length::handle_gimple_call): Use target_size_max.
6932
6933 2016-10-24 Jakub Jelinek <jakub@redhat.com>
6934
6935 * config/i386/i386.c (ix86_in_large_data_p, ix86_expand_builtin): Use
6936 VAR_P (x) instead of TREE_CODE (x) == VAR_DECL.
6937
6938 2016-10-24 Ximin Luo <infinity0@pwned.gg>
6939
6940 PR debug/77985
6941 * dwarf2out.c (file_table_relative_p): Remove.
6942 (gen_compile_unit_die, dwarf2out_early_finish): Emit DW_AT_comp_dir
6943 also for absolute paths.
6944 * doc/tm.texi: Update.
6945 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Remove.
6946 * target.def (force_at_comp_dir): Remove hook.
6947 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Remove define.
6948
6949 2016-10-24 Richard Biener <rguenther@suse.de>
6950
6951 * tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore
6952 backedges when identifying the single predecessor to take
6953 conditional info from. Use SCEV to get at ranges for loop IVs.
6954 * lto-streamer-out.c (lto_write_mode_table): CSE inner mode to
6955 avoid false warning.
6956
6957 2016-10-24 Georg-Johann Lay <avr@gjlay.de>
6958
6959 PR target/78093
6960 * doc/extend.texi (AVR Variable Attributes) [absdata]: Document it.
6961 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_ABSDATA): New macro.
6962 (avr_address_tiny_absdata_p): New static function.
6963 (avr_legitimate_address_p, avr_legitimize_address) [AVR_TINY]: Use
6964 it to determine validity of constant addresses.
6965 (avr_attribute_table) [absdata]: New variable attribute...
6966 (avr_handle_absdata_attribute): ...and handler.
6967 (avr_decl_absdata_p): New static function.
6968 (avr_encode_section_info) [AVR_TINY]: Use it to add flag
6969 AVR_SYMBOL_FLAG_TINY_ABSDATA to respective symbols_refs.
6970 (avr_address_cost) [AVR_TINY]: absdata addresses cost 2.
6971
6972 2016-10-24 Richard Biener <rguenther@suse.de>
6973
6974 PR tree-optimization/78076
6975 * tree-ssa-loop-split.c (tree_ssa_split_loops): Reset aux
6976 also on the loop tree root.
6977
6978 2016-10-24 Jakub Jelinek <jakub@redhat.com>
6979
6980 * config/i386/i386.c (ix86_fold_builtin): Handle
6981 IX86_BUILTIN_BEXTR{,I}{32,64}, IX86_BUILTIN_BZHI{32,64},
6982 IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
6983 (ix86_gimple_fold_builtin): Handle IX86_BUILTIN_BZHI{32,64},
6984 IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
6985
6986 2016-10-24 Martin Liska <mliska@suse.cz>
6987
6988 PR sanitizer/77966
6989 * opts.c (finish_options): Skip conditionally.
6990
6991 2016-10-23 Martin Sebor <msebor@redhat.com>
6992
6993 PR target/77837
6994 * config/rs6000/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define.
6995 * config/rs6000/linux64.h (TARGET_PRINTF_POINTER_FORMAT): Likewise.
6996
6997 2016-10-23 Eric Botcazou <ebotcazou@adacore.com>
6998
6999 * config/sparc/sparc.md (cpu_feature): Minor tweak.
7000 (enabled): Likewise.
7001 (movsi_insn, movdi_insn_sp32, movdi_insn_sp64, movsf_insn,
7002 movdf_insn_sp32, movdf_insn_sp64, zero_extendsidi2_insn_sp64,
7003 sign_extendsidi2_insn, mov<VM32:mode>_insn, mov<VM64:mode>_insn_sp64,
7004 mov<VM64:mode>_insn_sp32, not_<code><mode>, nand<mode>_vis,
7005 <code>_not1<mode>_vi, <code>_not2<mode>_vis, one_cmpl<mode>2,
7006 fcmp<code><GCM:gcm_name>, pdistn<mode>_vis): Likewise.
7007
7008 2016-10-23 Eric Botcazou <ebotcazou@adacore.com>
7009
7010 * config/sparc/sparc-c.c (sparc_target_macros): Replace TARGET_64BIT
7011 with TARGET_ARCH64. Define __VIS to 0x400 if TARGET_VIS4.
7012
7013 2016-10-21 Andrew Pinski <apinski@cavium.com>
7014
7015 * config/aarch64/aarch64-cores.def: Rewrite so IMP and PART are
7016 integer constants.
7017 * config/aarch64/driver-aarch64.c (struct aarch64_core_data): Change
7018 implementer_id to unsigned char.
7019 Change part_no to unsigned int.
7020 (AARCH64_BIG_LITTLE): New define.
7021 (INVALID_IMP): New define.
7022 (INVALID_CORE): New define.
7023 (cpu_data): Change the last element's implementer_id and part_no to
7024 integers.
7025 (valid_bL_string_p): Rewrite to ..
7026 (valid_bL_core_p): this for integers instead of strings.
7027 (parse_field): New function.
7028 (contains_string_p): Rewrite to ...
7029 (contains_core_p): this for integers and only for the part_no.
7030 (host_detect_local_cpu): Rewrite handling of implementation and
7031 par num to be integers; simplifying the code.
7032
7033 2016-10-21 Kugan Vivekanandarajah <kuganv@linaro.org>
7034
7035 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Create nonzero
7036 value range for pointers in more cases.
7037
7038 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com>
7039
7040 * config/aarch64/aarch64.c (aarch64_add_constant_internal):
7041 Add extra argument to allow emitting the move immediate.
7042 Use add/sub with positive immediate.
7043 (aarch64_add_constant): Add inline function.
7044 (aarch64_add_sp): Likewise.
7045 (aarch64_sub_sp): Likewise.
7046 (aarch64_expand_prologue): Call aarch64_sub_sp.
7047 (aarch64_expand_epilogue): Call aarch64_add_sp.
7048 Decide when to leave out move.
7049 (aarch64_output_mi_thunk): Call aarch64_add_constant.
7050
7051 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com>
7052
7053 * config/aarch64/aarch64.c (aarch64_layout_frame):
7054 Align FP callee-saves.
7055
7056 2016-10-21 Jakub Jelinek <jakub@redhat.com>
7057
7058 * config/i386/adxintrin.h (_subborrow_u32, _addcarry_u32,
7059 _addcarryx_u32, _subborrow_u64, _addcarry_u64, _addcarryx_u64):
7060 Formatting fixes.
7061 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
7062 _rdseed64_step): Likewise.
7063 * config/i386/tbmintrin.h (__bextri_u32): Likewise.
7064
7065 PR target/78057
7066 * config/i386/i386.c: Include fold-const-call.h, tree-vrp.h
7067 and tree-ssanames.h.
7068 (ix86_fold_builtin): Fold IX86_BUILTIN_[LT]ZCNT{16,32,64}
7069 with INTEGER_CST argument.
7070 (ix86_gimple_fold_builtin): New function.
7071 (TARGET_GIMPLE_FOLD_BUILTIN): Define.
7072
7073 * dwarf2out.c (ranges_table): Change into vec<dw_ranges, va_gc> *.
7074 (ranges_by_label): Change into vec<dw_ranges_by_label, va_gc> *.
7075 (ranges_table_allocated, ranges_table_in_use,
7076 ranges_by_label_allocated, ranges_by_label_in_use,
7077 RANGES_TABLE_INCREMENT): Removed.
7078 (add_ranges_num): Use vec_safe_push into ranges_table.
7079 (add_ranges_by_labels): Use vec_safe_push into ranges_by_label.
7080 (output_ranges): Adjust for ranges_table and ranges_by_label
7081 conversion from arrays to vec.
7082 (add_high_low_attributes, dwarf2out_finish): Adjust for range_table
7083 conversion from arrays to vec.
7084 (dwarf2out_c_finalize): Don't clear ranges_table_allocated,
7085 ranges_table_in_use, ranges_by_label_allocated and
7086 ranges_by_label_in_use. Set ranges_by_label to NULL instead of 0.
7087
7088 * dwarf2out.c (gen_variable_die): Emit DW_AT_const_expr attribute
7089 if needed. Re-add origin_die variable and its initialization.
7090
7091 * gimplify.c (gimplify_bind_expr): Handle oacc_declare_returns
7092 even for -fstack-reuse=none, or for volatile vars etc.
7093
7094 2016-10-21 David Malcolm <dmalcolm@redhat.com>
7095
7096 * print-rtl-function.c (flag_compact): Move extern decl to...
7097 * print-rtl.h (flag_compact): ...here.
7098 * rtl-tests.c (selftests::assert_rtl_dump_eq): New function.
7099 (ASSERT_RTL_DUMP_EQ): New macro.
7100 (selftest::test_dumping_regs): New function.
7101 (selftest::test_dumping_insns): New function.
7102 (selftest::test_uncond_jump): Add uses of ASSERT_RTL_DUMP_EQ on
7103 the insns.
7104 (selftest::rtl_tests_c_tests): Call the new test functions.
7105
7106 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7107
7108 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
7109 (outgoing_edges_match): Likewise.
7110 (try_crossjump_to_edge): Likewise.
7111 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
7112 (rtl_tidy_fallthru_edge): Likewise.
7113 * rtl.h (tablejump_p): Adjust prototype.
7114 * rtlanal.c (tablejump_p): Return the label as a rtx_insn *.
7115
7116 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7117
7118 * rtl.h (label_ref_label): New function.
7119 (set_label_ref_label): New function.
7120 (LABEL_REF_LABEL): Delete.
7121 * alias.c (rtx_equal_for_memref_p): Adjust.
7122 * cfgbuild.c (make_edges): Likewise.
7123 (purge_dead_tablejump_edges): Likewise.
7124 * cfgexpand.c (convert_debug_memory_address): Likewise.
7125 * cfgrtl.c (patch_jump_insn): Likewise.
7126 * combine.c (distribute_notes): Likewise.
7127 * cse.c (hash_rtx_cb): Likewise.
7128 (exp_equiv_p): Likewise.
7129 (fold_rtx): Likewise.
7130 (check_for_label_ref): Likewise.
7131 * cselib.c (rtx_equal_for_cselib_1): Likewise.
7132 (cselib_hash_rtx): Likewise.
7133 * emit-rtl.c (mark_label_nuses): Likewise.
7134 * explow.c (convert_memory_address_addr_space_1): Likewise.
7135 * final.c (output_asm_label): Likewise.
7136 (output_addr_const): Likewise.
7137 * gcse.c (add_label_notes): Likewise.
7138 * genconfig.c (walk_insn_part): Likewise.
7139 * genrecog.c (validate_pattern): Likewise.
7140 * ifcvt.c (cond_exec_get_condition): Likewise.
7141 (noce_emit_store_flag): Likewise.
7142 (noce_get_alt_condition): Likewise.
7143 (noce_get_condition): Likewise.
7144 * jump.c (maybe_propagate_label_ref): Likewise.
7145 (mark_jump_label_1): Likewise.
7146 (redirect_exp_1): Likewise.
7147 (rtx_renumbered_equal_p): Likewise.
7148 * lra-constraints.c (operands_match_p): Likewise.
7149 * print-rtl.c (print_value): Likewise.
7150 * reload.c (find_reloads): Likewise.
7151 * reload1.c (set_label_offsets): Likewise.
7152 * reorg.c (get_branch_condition): Likewise.
7153 * rtl-tests.c (test_uncond_jump): Likewise.
7154 * rtl.c (rtx_equal_p_cb): Likewise.
7155 (rtx_equal_p): Likewise.
7156 * rtlanal.c (reg_mentioned_p): Likewise.
7157 (rtx_referenced_p): Likewise.
7158 (get_condition): Likewise.
7159 * varasm.c (const_hash_1): Likewise.
7160 (compare_constant): Likewise.
7161 (const_rtx_hash_1): Likewise.
7162 (output_constant_pool_1): Likewise.
7163
7164 2016-10-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7165
7166 PR target/71627
7167 * reload.c (find_valid_class_1): Allow regclass if atleast one
7168 regno in regclass is ok. Compute and use rclass size based on
7169 actually available regnos for mode in rclass.
7170
7171 2016-10-21 Eric Botcazou <ebotcazou@adacore.com>
7172
7173 * config/sparc/sparc-modes.def (CCV): New.
7174 (CCXV): Likewise.
7175 * config/sparc/predicates.md (v_comparison_operator): New.
7176 (icc_comparison_operator): Add support for CCV/CCXV.
7177 (xcc_comparison_operator): Likewise.
7178 * config/sparc/sparc.c (output_cbranch): Likewise.
7179 (sparc_print_operand): Likewise.
7180 * config/sparc/sparc.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
7181 (uaddvdi4): New expander.
7182 (addvdi4): Likewise.
7183 (uaddvdi4_sp32): New instruction.
7184 (addvdi4_sp32): Likewise.
7185 (uaddvsi4): New expander.
7186 (addvsi4): Likewise.
7187 (cmp_ccc_plus_sltu_set): New instruction.
7188 (cmp_ccv_plus): Likewise.
7189 (cmp_ccxv_plus): Likewise.
7190 (cmp_ccv_plus_set): Likewise.
7191 (cmp_ccxv_plus_set): Likewise.
7192 (cmp_ccv_plus_sltu_set): Likewise.
7193 (uaddvdi4): New expander.
7194 (subvdi4): Likewise.
7195 (usubdi4_sp32): New instruction.
7196 (subvdi4_sp32): Likewise.
7197 (usubvsi4): New expander.
7198 (subvsi4): Likewise.
7199 (cmpsi_minus_sltu_set): New instruction.
7200 (cmp_ccv_minus): Likewise.
7201 (cmp_ccxv_minus): Likewise.
7202 (cmp_ccv_minus_set): Likewise.
7203 (cmp_ccxv_minus_set): Likewise.
7204 (cmp_ccv_minus_sltu_set): Likewise.
7205 (unegvdi3): New expander.
7206 (negvdi3): Likewise.
7207 (unegdi3_sp32): New instruction.
7208 (negvdi3_sp32): Likewise.
7209 (unegvsi3): New expander.
7210 (negvsi3): Likewise.
7211 (cmp_ccc_neg_sltu_set): New instruction.
7212 (cmp_ccv_neg): Likewise.
7213 (cmp_ccxv_neg): Likewise.
7214 (cmp_ccv_neg_set): Likewise.
7215 (cmp_ccxv_neg_set): Likewise.
7216 (cmp_ccv_neg_sltu_set): Likewise.
7217
7218 * tree-ssa-loop-split.c: Remove trailing spaces.
7219 * match.pd: Likewise.
7220
7221 2016-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7222
7223 PR rtl-optimization/78038
7224 * ree.c (get_defs): Return NULL if a defining insn for REG cannot
7225 be deduced to set REG through the RTL structure.
7226 (make_defs_and_copies_lists): Return false on a failing get_defs call.
7227
7228 2016-10-21 Richard Biener <rguenther@suse.de>
7229
7230 PR tree-optimization/78051
7231 * tree-vrp.c (evrp_dom_walker::before_dom_children): Update stmt
7232 and mark replaced if folding did something.
7233
7234 2016-10-21 David Edelsohn <dje.gcc@gmail.com>
7235
7236 * config/rs6000/rs6000.c (rs6000_assemble_visibility): Swap "internal"
7237 and "protected" in visibility types.
7238 (rs6000_xcoff_declare_function_name): Fix formatting.
7239 (rs6000_xcoff_declare_object_name): Fix formatting.
7240
7241 2016-10-21 Uros Bizjak <ubizjak@gmail.com>
7242
7243 * config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ
7244 and IX86_BUILTIN_HUGE_VALQ here ...
7245 (ix86_expand_builtin): ... not here.
7246
7247 2016-10-20 Jakub Jelinek <jakub@redhat.com>
7248
7249 * doc/gty.texi (for_user): Use @item next to @findex.
7250
7251 2016-10-20 Uros Bizjak <ubizjak@gmail.com>
7252
7253 PR target/78037
7254 * config/i386/bmiintrin.h (__tzcnt_u16): Call __builtin_ia32_tzcnt_u16.
7255 (__tzcnt_u32, _tzcnt_u32): Call __builtin_ia32_tzcnt_u32.
7256 (__tzcnt_u64, _tzcnt_u64): Call __builtin_ia32_tzcnt_u64.
7257 * config/i386/lzcntintrin.h (__lzcnt_u16): Call
7258 __builtin_ia32_lzcnt_u16.
7259 (__lzcnt_u32, _lzcnt_u32): Call __builtin_ia32_lzcnt_u32.
7260 (__lzcnt_u64, _lzcnt_u64): Call __builtin_ia32_lzcnt_u64.
7261 * config/i386/i386.md (UNSPEC_LZCNT, UNSPEC_TZCNT): New unspecs.
7262 (ctz<mode>2, *ctz<mode>2): Use SWI48 mode iterator.
7263 (bmi_tzcnt_<mode>): New expander.
7264 (*bmi_tzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
7265 (*bmi_tzcnt_<mode>_falsedep, *bmi_tzcnt_<mode>): New insn patterns.
7266 (clz<mode>2_lzcnt, *clz<mode>2_lzcnt): Use SWI48 mode iterator.
7267 (lzcnt_<mode>): New expander.
7268 (*lzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
7269 (*lzcnt_<mode>_falsedep, *lzcnt_<mode>): New insn patterns.
7270 * config/i386/i386-builtin-types.def (UINT_FTYPE_UINT): New.
7271 (UINT64_FTYPE_UINT64): New.
7272 * config/i386/i386-builtin.def (__builtin_clzs): Remove description.
7273 (__builtin_ia32_lzcnt_u16): New description.
7274 (__builtin_ia32_lzcnt_u32): Ditto.
7275 (__builtin_ia32_lzcnt_u64): Ditto.
7276 (__builtin_ctzs): Remove description.
7277 (__builtin_ia32_tzcnt_u16): New description.
7278 (__builtin_ia32_tzcnt_u32): Ditto.
7279 (__builtin_ia32_tzcnt_u64): Ditto.
7280 * config/i386/i386.c (ix86_expand_args_builtin): Handle
7281 UINT_FTYPE_UINT and UINT64_FTYPE_UINT64.
7282
7283 2016-10-20 Martin Liska <mliska@suse.cz>
7284
7285 PR lto/78049
7286 * lto-streamer-in.c (fixup_call_stmt_edges_1): Replace value
7287 comparison with STMT_UID_NOT_IN_RANGE.
7288 (fixup_call_stmt_edges): Do not fixup edges of a thunk in
7289 LTRANS.
7290
7291 2016-10-20 Eric Botcazou <ebotcazou@adacore.com>
7292
7293 * compare-elim.c (conforming_compare): Accept UNSPECs.
7294 (find_comparison_dom_walker::before_dom_children): Deal with
7295 instructions both using and killing the flags register.
7296 (equivalent_reg_at_start): New function extracted from...
7297 (try_eliminate_compare): ...here. Use it and add support for
7298 registers and UNSPECs as second operand of the compare.
7299 * config/visium/visium-modes.def (CCV): New.
7300 * config/visium/predicates.md (visium_v_comparison_operator): New.
7301 (visium_branch_operator): Deal with CCV mode.
7302 * config/visium/visium.c (visium_select_cc_mode): Likewise.
7303 (output_cbranch): Likewise.
7304 * config/visium/visium.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
7305 (uaddv<mode>4): New expander.
7306 (addv<mode>4): Likewise.
7307 (add<mode>3_insn_set_carry): New instruction.
7308 (add<mode>3_insn_set_overflow): Likewise.
7309 (addsi3_insn_set_overflow): Likewise.
7310 (usubv<mode>4): New expander.
7311 (subv<mode>4): Likewise.
7312 (sub<mode>3_insn_set_carry): New instruction.
7313 (sub<mode>3_insn_set_overflow): Likewise.
7314 (subsi3_insn_set_overflow): Likewise.
7315 (unegv<mode>3): New expander.
7316 (negv<mode>3): Likewise.
7317 (neg<mode>2_insn_set_overflow): New instruction.
7318 (addv_tst<mode>): Likewise.
7319 (subv_tst<mode>): Likewise.
7320 (negv_tst<mode>): Likewise.
7321 (cbranch<mode>4_addv_insn): New splitter and instruction.
7322 (cbranch<mode>4_subv_insn): Likewise.
7323 (cbranch<mode>4_negv_insn): Likewise.
7324
7325 2016-10-20 Richard Biener <rguenther@suse.de>
7326
7327 * tree-ssa-alias.c (ptrs_compare_unequal): Remove code duplication.
7328 Handle decls possibly not bound.
7329 * tree-ssa-structalias.c (get_constraint_for_ssa_var): Add
7330 nothing_id for decls that might not be bound if we are interested
7331 for the address.
7332 (get_constraint_for_component_ref): Deal with that.
7333
7334 2016-10-20 Michael Matz <matz@suse.de>
7335
7336 Loop splitting.
7337 * common.opt (-fsplit-loops): New flag.
7338 * passes.def (pass_loop_split): Add.
7339 * opts.c (default_options_table): Add OPT_fsplit_loops entry at -O3.
7340 (enable_fdo_optimizations): Add loop splitting.
7341 * timevar.def (TV_LOOP_SPLIT): Add.
7342 * tree-pass.h (make_pass_loop_split): Declare.
7343 * tree-ssa-loop-manip.h (rewrite_into_loop_closed_ssa_1): Declare.
7344 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h,
7345 * tree-ssa-loop-split.c: New file.
7346 * Makefile.in (OBJS): Add tree-ssa-loop-split.o.
7347 * doc/invoke.texi (fsplit-loops): Document.
7348 * doc/passes.texi (Loop optimization): Add paragraph about loop
7349 splitting.
7350
7351 2016-10-20 Richard Biener <rguenther@suse.de>
7352
7353 * cgraphunit.c (analyze_functions): Set node->definition to
7354 false to signal symbol removal to debug_hooks->late_global_decl.
7355 * ipa.c (symbol_table::remove_unreachable_nodes): When not in
7356 WPA signal symbol removal to the debuginfo machinery.
7357 * dwarf2out.c (dwarf2out_late_global_decl): Instead of
7358 using early_finised to guard the we're called for symbol
7359 removal case look at the symtabs definition flag.
7360 (gen_variable_die): Remove redundant check.
7361
7362 2016-10-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7363
7364 * config/s390/s390.md ("prefetch"): Add fallthrough comment.
7365
7366 2016-10-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7367
7368 PR tree-optimization/53979
7369 * match.pd ((a ^ b) | a -> a | b): New pattern.
7370
7371 2016-10-19 John David Anglin <danglin@gcc.gnu.org>
7372
7373 * config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to
7374 config/pa/pa64-hpux-lib.h.
7375 (PA_CRTBEGIN_HACK): Likewise.
7376 (DTOR_LIST_BEGIN): Likewise.
7377
7378 2016-10-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
7379
7380 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
7381 register only if "in" and "out" are different registers.
7382
7383 2016-10-19 Eric Botcazou <ebotcazou@adacore.com>
7384
7385 * omp-low.c (pass_oacc_device_lower::gate): New method.
7386 (execute): Always call execute_oacc_device_lower.
7387
7388 2016-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7389
7390 PR tree-optimization/77916
7391 PR tree-optimization/77937
7392 * gimple-ssa-strength-reduction.c (analyze_increments): Remove
7393 stopgap fix.
7394 (insert_initializers): Requirement of initializer for -1 should be
7395 based on pointer-typedness of the candidate basis.
7396
7397 2016-10-19 Bin Cheng <bin.cheng@arm.com>
7398
7399 PR tree-optimization/78005
7400 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Compute
7401 upper (included) bound for niters of prolog loop.
7402 (vect_gen_scalar_loop_niters): Change parameter VF to VFM1.
7403 Compute niters of scalar loop above which vectorized loop is
7404 preferred, as well as the upper (included) bound for the niters.
7405 (vect_do_peeling): Record niter bound for loops accordingly.
7406
7407 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
7408
7409 PR lto/77458
7410 * tree-core.h (enum tree_index): Put the complex types after their
7411 component types.
7412 * tree-streamer.c (verify_common_node_recorded): New function.
7413 (preload_common_nodes) <TREE_CODE (node) == COMPLEX_TYPE>: Use it.
7414
7415 2016-10-19 Martin Liska <mliska@suse.cz>
7416
7417 * cgraph.h (cgraph_edge::binds_to_current_def_p):
7418 Replace NULL with false as a return value.
7419
7420 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
7421
7422 PR tree-optimization/78024
7423 * omp-low.c (oacc_loop_discovery): Call clear_bb_flags before, and
7424 don't clear BB_VISITED after processing.
7425
7426 2016-10-19 Richard Biener <rguenther@suse.de>
7427
7428 * domwalk.c (dom_walker::walk): Use RPO order.
7429
7430 2016-10-19 Richard Biener <rguenther@suse.de>
7431
7432 * tree-vrp.c (evrp_dom_walker::evrp_dom_walker): Initialize
7433 stmts_to_remove.
7434 (evrp_dom_walker::~evrp_dom_walker): Free it.
7435 (evrp_dom_walker::stmts_to_remove): Add.
7436 (evrp_dom_walker::before_dom_children): Mark PHIs and stmts
7437 whose output we fully propagate for removal. Propagate
7438 into BB destination PHI arguments.
7439 (execute_early_vrp): Remove queued stmts. Dump value ranges
7440 before stmt removal.
7441
7442 2016-10-18 Aldy Hernandez <aldyh@redhat.com>
7443
7444 * Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o.
7445 * passes.def: Add two instances of pass_walloca.
7446 * tree-pass.h (make_pass_walloca): New.
7447 * gimple-ssa-warn-alloca.c: New file.
7448 * doc/invoke.texi: Document -Walloca, -Walloca-larger-than=, and
7449 -Wvla-larger-than= options.
7450
7451 2016-10-18 Thomas Schwinge <thomas@codesourcery.com>
7452
7453 * cfg.c (clear_bb_flags): Use FOR_ALL_BB_FN.
7454 * config/nvptx/nvptx.c (nvptx_find_sese): Likewise.
7455
7456 2016-10-18 Kelvin Nilsen <kelvin@gcc.gnu.org>
7457
7458 * config/rs6000/altivec.h (vec_xl_len): New macro.
7459 (vec_xst_len): New macro.
7460 (vec_cmpnez): New macro.
7461 (vec_cntlz_lsbb): New macro.
7462 (vec_cnttz_lsbb): New macro.
7463 (vec_xlx): New macro.
7464 (vec_xrx): New macro.
7465 (vec_all_nez): New C++ predicate template.
7466 (vec_any_eqz): New C++ predicate template.
7467 (vec_all_ne): Revised C++ predicate template under _ARCH_PWR9
7468 conditional compilation.
7469 (vec_any_eq): Revised C++ predicate template under _ARCH_PWR9
7470 conditional compilation.
7471 (vec_all_nez): New macro.
7472 (vec_any_eqz): New macro.
7473 (vec_all_ne): Revised macro under _ARCH_PWR9 conditional
7474 compilation.
7475 (vec_any_eq): Revised macro under _ARCH_PWR9 conditional
7476 compilation.
7477 * config/rs6000/vector.md (VI): Moved this mode iterator
7478 definition from altivec.md to vector.md.
7479 (UNSPEC_NEZ_P): New value.
7480 (vector_ne_<mode>_p): New expansion for implementation of
7481 vec_all_ne and vec_any_eq built-in functions.
7482 (vector_nez_<mode>_p): New expansion for implementation of
7483 vec_all_nez and vec_any_eqz built-in functions.
7484 (vector_ne_v2di_p): New expansion for implementation of vec_all_ne
7485 and vec_any_eq built-in function.
7486 (cr6_test_for_zero): New commentary to explain this expansion.
7487 (cr6_test_for_zero_reverse): New commentary to explain this expansion.
7488 (cr6_test_for_lt): New commentary to explain this expansion.
7489 (cr6_test_for_lt_reverse): New commentary to explain this
7490 expansion.
7491 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7492 overloaded function prototypes for vec_all_ne, vec_all_nez,
7493 vec_any_eq, vec_any_eqz, vec_cmpnez, vec_cntlz_lsbb,
7494 vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, and vec_xrx
7495 built-in functions.
7496 (altivec_resolve_overloaded_builtin): Modify the handling of
7497 ALTIVEC_BUILTIN_VEC_CMPNE to use the Power9 instructions when
7498 the compiler is configured to support TARGET_P9_VECTOR.
7499 * config/rs6000/rs6000-builtin.def (BU_ALTIVEC_P): Add commentary
7500 to explain the special processing that is given to predicate
7501 built-ins introduced using this macro.
7502 (BU_ALTIVEC_OVERLOAD_P): Add commentary to alert maintainers to
7503 the special processing given to predicate built-ins introduced
7504 using this macro.
7505 (BU_VSX_P): Likewise.
7506 (BU_P8V_AV_P): Likewise.
7507 (BU_P9V_AV_P): Likewise.
7508 (BU_P9V_AV_X): New macro.
7509 (BU_P9V_64BIT_AV_X): New macro.
7510 (BU_P9V_VSX_3): New macro.
7511 (BU_P9V_OVERLOAD_P): New macro.
7512 (LXVL): New BU_P9V_64BIT_VSX_2.
7513 (VEXTUBLX): New BU_P9V_AV_2.
7514 (VEXTUBRX): Likewise.
7515 (VEXTUHLX): Likewise.
7516 (VEXTUHRX): Likewise.
7517 (VEXTUWLX): Likewise.
7518 (VEXTUWRX): Likewise.
7519 (STXVL): New BU_P9V_64BIT_AV_X.
7520 (VCLZLSBB): New BU_P9V_AV_1.
7521 (VCTZLSBB): Likewise.
7522 (CMPNEB): New BU_P9V_AV_2.
7523 (CMPNEH): Likewise.
7524 (CMPNEW): Likewise.
7525 (CMPNEF): Likewise.
7526 (CMPNED): Likewise.
7527 (VCMPNEB_P): New BU_P9V_AV_P.
7528 (VCMPNEH_P): Likewise.
7529 (VCMPNEW_P): Likewise.
7530 (VCMPNED_P): Likewise.
7531 (VCMPNEFP_P): Likewise.
7532 (VCMPNEDP_P): Likewise.
7533 (CMPNEZB): New BU_P9V_AV_2.
7534 (CMPNEZH): Likewise.
7535 (CMPNEZW): Likewise.
7536 (VCMPNEZB_P): New BU_P9V_AV_P.
7537 (VCMPNEZH_P): Likewise.
7538 (VCMPNEZW_P): Likewise.
7539 (LXVL): New BU_P9V_OVERLOAD_2.
7540 (STXVL): New BU_P9V_OVERLOAD_3.
7541 (VEXTULX): New BU_P9V_OVERLOAD_2.
7542 (VEXTURX): Likewise.
7543 (CMPNEZ): Likewise.
7544 (VCMPNEZ_P): New BU_P9V_OVERLOAD_P.
7545 (VCMPNE_P): Likewise.
7546 (VCLZLSBB): New BU_P9V_OVERLOAD_1.
7547 (VCTZLSBB): Likewise.
7548 * config/rs6000/rs6000.c (altivec_expand_predicate_builtin): Add
7549 comment to explain mode used for scratch register.
7550 (altivec_expand_stxvl_builtin): New function.
7551 (altivec_expand_builtin): Add case for new constant P9V_BUILTIN_STXVL.
7552 (altivec_init_builtins): Add initialized variable
7553 void_ftype_v16qi_pvoid_long and use this type to define the
7554 built-in function __builtin_altivec_stxvl.
7555 * config/rs6000/vsx.md (UNSPEC_LXVL): New value.
7556 (UNSPEC_STXVL): New value.
7557 (UNSPEC_VCLZLSBB): New value.
7558 (UNSPEC_VCTZLSBB): New value.
7559 (UNSPEC_VEXTUBLX): New value.
7560 (UNSPEC_VEXTUHLX): New value.
7561 (UNSPEC_VEXTUWLX): New value.
7562 (UNSPEC_VEXTUBRX): New value.
7563 (UNSPEC_VEXTUHRX): New value.
7564 (UNSPEC_VEXTUWRX): New value.
7565 (UNSPEC_VCMPNEB): New value.
7566 (UNSPEC_VCMPNEZB): New value.
7567 (UNSPEC_VCMPNEH): New value.
7568 (UNSPEC_VCMPNEZH): New value.
7569 (UNSPEC_VCMPNEW): New value.
7570 (UNSPEC_VCMPNEZW): New value.
7571 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
7572 vector of integer modes.
7573 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
7574 vector of float or double modes.
7575 (*vector_nez_<mode>_p): New insn for vector test all not equal or
7576 zero.
7577 (lxvl): New expand for load VSX vector with length.
7578 (*lxvl): New insn for load VSX vector with length.
7579 (stxvl): New expand for store VSX vector with length.
7580 (*stxvl): New insn for store VSX vector with length.
7581 (vcmpneb): New insn for vector of byte compare not equal.
7582 (vcmpnezb): New insn for vector of byte compare not equal or zero.
7583 (vcmpneh): New insn for vector of half word compare not equal.
7584 (vcmpnezh): New insn for vector of half word compare not equal or
7585 zero.
7586 (vcmpnew): New insn for vector of word compare not equal.
7587 (vcmpne<VSs>): New insn for vector of float or double compare not
7588 equal.
7589 (vcmpnezw): New insn for vector of word compare not equal or zero.
7590 (vclzlsbb): New insn for vector count leading zero
7591 least-significant bits byte.
7592 (vctzlsbb): New insn for vector count trailing zero least
7593 signficant bits byte.
7594 (vextublx): New insn for vector extract unsigned byte left
7595 indexed.
7596 (vextubrx): New insn for vector extract unsigned byte right
7597 indexed.
7598 (vextuhlx): New insn for vector extract unsigned half word left
7599 indexed.
7600 (vextuhrx): New insn for vector extract unsigned half word right
7601 indexed.
7602 (vextuwlx): New insn for vector extract unsigned word left
7603 indexed.
7604 (vextuwrx): New insn for vector extract unsigned word right
7605 indexed.
7606 * config/rs6000/rs6000.h (RS6000_BTC_CONST): Enhance comment to
7607 clarify intent of this constant.
7608 * config/rs6000/altivec.md (VI): Move this mode iterator to vsx.md.
7609 * doc/extend.texi (PowerPC Altivec Built-in Functions): Add
7610 documentation for vec_all_nez, vec_any_eqz, vec_cmpnez,
7611 vec_cntlz_lsbb, vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx,
7612 and vec_xrx functions.
7613
7614 2016-10-18 Andrew Pinski <apinski@cavium.com>
7615
7616 PR tree-opt/65950
7617 * predict.c (is_exit_with_zero_arg): New function.
7618 (tree_bb_level_predictions): Don't consider paths leading to exit(0)
7619 as nottaken.
7620
7621 2016-10-18 Uros Bizjak <ubizjak@gmail.com>
7622
7623 PR target/77991
7624 * config/i386/i386.c (legitimize_tls_address)
7625 <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
7626 convert dest to Pmode if different than Pmode.
7627
7628 2016-10-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7629
7630 PR tree-optimization/77916
7631 * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate
7632 stopgap fix, as pointers with -1 increment are still broken.
7633
7634 2016-10-18 David Edelsohn <dje.gcc@gmail.com>
7635
7636 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Move storage
7637 mapping class decoration from here...
7638 (rs6000_xcoff_encode_section): ...to here.
7639
7640 (rs6000_savres_strategy) [AIX,ELFv2]: Inline FPR save and restore
7641 if shrink-wrapping and optimizing for speed.
7642
7643 2016-10-18 Richard Biener <rguenther@suse.de>
7644
7645 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
7646 not visited but non-executable predecessors. Return taken edge.
7647 Simplify conditions and refactor propagation vs. folding step.
7648
7649 2016-10-18 Segher Boessenkool <segher@kernel.crashing.org>
7650
7651 * config/rs6000/rs6000.c (rs6000_savres_strategy): Do not select
7652 {SAVE,REST}_MULTIPLE if shrink-wrapping separate components.
7653 (rs6000_get_separate_components): Assert we do not have those
7654 strategies selected.
7655
7656 2016-10-18 Richard Biener <rguenther@suse.de>
7657
7658 * tree-ssa-propagate.h (substitute_and_fold): Adjust prototype.
7659 * tree-ssa-propagate.c (ssa_prop_fini): Remove final BB_VISITED
7660 clearing.
7661 (substitute_and_fold_dom_walker): Adjust constructor.
7662 (substitute_and_fold_dom_walker::before_dom_children): Remove
7663 do_dce flag and handling (always true).
7664 (substitute_and_fold): Likewise.
7665 * tree-vrp.c (vrp_finalize): Adjust.
7666 (execute_early_vrp): Remove final BB_VISITED clearing.
7667 * tree-ssa-ccp.c (ccp_finalize): Adjust.
7668 * tree-ssa-copy.c (fini_copy_prop): Likewise.
7669 * ira.c (ira): Call clear_bb_flags.
7670
7671 2016-10-18 Richard Biener <rguenther@suse.de>
7672
7673 * genmatch.c (dt_operand::gen_gimple_expr): Use get_name to
7674 get at the operand to look at with TREE_OPERAND for generic
7675 sub-nodes.
7676
7677 2016-10-18 David Malcolm <dmalcolm@redhat.com>
7678
7679 * genattrtab.c (attr_string): Use rtx_reader_ptr for call to
7680 copy_md_ptr_loc.
7681 (gen_attr): Use rtx_reader_ptr for lookup_enum_type call.
7682 (write_test_expr): Use rtx_reader_ptr for calls to
7683 fprint_c_condition.
7684 (write_attr_value): Likewise.
7685 * genconditions.c (write_one_condition): Use rtx_reader_ptr for
7686 call to print_md_ptr_loc.
7687 (write_one_condition): Likewise for calls to print_c_condition.
7688 * genconstants.c: Include "statistics.h" and "vec.h".
7689 (main): Update for conversion to member functions.
7690 * genemit.c (emit_c_code): Use rtx_reader_ptr for
7691 call to print_md_ptr_loc.
7692 * genenums.c: Include "statistics.h" and "vec.h".
7693 (main): Update for conversion of traverse_enum_types to a method.
7694 * genmddeps.c: Include "statistics.h" and "vec.h".
7695 * genoutput.c (process_template): Use rtx_reader_ptr for call to
7696 print_md_ptr_loc.
7697 * genpreds.c (write_predicate_subfunction): Likewise.
7698 (write_predicate_expr): Likewise for calls to print_c_condition.
7699 * genrecog.c (print_test): Likewise.
7700 * gensupport.c (process_rtx): Likewise for calls to
7701 copy_md_ptr_loc and join_c_conditions.
7702 (alter_test_for_insn): Likewise for call to join_c_conditions.
7703 (process_substs_on_one_elem): Likewise.
7704 (gen_mnemonic_setattr): Update for move of string_obstack to a
7705 field of rtx_reader.
7706 (mnemonic_htab_callback): Likewise. Fix formatting.
7707 (gen_mnemonic_attr): Likewise.
7708 * gentarget-def.c (def_target_insn): Use rtx_reader_ptr for calls
7709 to print_c_condition.
7710 * read-md.c: Include "statistics.h" and "vec.h".
7711 (string_obstack): Convert this global to field "m_string_obstack"
7712 of class rtx_reader.
7713 (ptr_locs): Likewise, as "m_ptr_locs".
7714 (ptr_loc_obstack): Likewise, as "m_ptr_loc_obstack".
7715 (joined_conditions): Likewise, as "m_joined_conditions".
7716 (joined_conditions_obstack): Likewise, as "m_joined_conditions_obstack".
7717 (md_constants): Likewise, as "m_md_constants".
7718 (enum_types): Likewise, as "m_enum_types".
7719 (set_md_ptr_loc): Convert to...
7720 (rtx_reader::set_md_ptr_loc): ...member function.
7721 (get_md_ptr_loc): Convert to...
7722 (rtx_reader::get_md_ptr_loc): ...member function.
7723 (copy_md_ptr_loc): Convert to...
7724 (rtx_reader::copy_md_ptr_loc): ...member function.
7725 (fprint_md_ptr_loc): Convert to...
7726 (rtx_reader::fprint_md_ptr_loc): ...member function.
7727 (print_md_ptr_loc): Convert to...
7728 (rtx_reader::print_md_ptr_loc): ...member function.
7729 (join_c_conditions): Convert to...
7730 (rtx_reader::join_c_conditions): ...member function.
7731 (fprint_c_condition): Convert to...
7732 (rtx_reader::fprint_c_condition): ...member function.
7733 (print_c_condition): Convert to...
7734 (rtx_reader::print_c_condition): ...member function.
7735 (read_name): Convert to...
7736 (rtx_reader::read_name): ...member function.
7737 (read_escape): Convert to...
7738 (rtx_reader::read_escape): ...member function.
7739 (read_quoted_string): Convert to...
7740 (rtx_reader::read_quoted_string): ...member function.
7741 (read_braced_string): Convert to...
7742 (rtx_reader::read_braced_string): ...member function.
7743 (read_string): Convert to...
7744 (rtx_reader::read_string): ...member function.
7745 (read_skip_construct): Convert to...
7746 (rtx_reader::read_skip_construct): ...member function.
7747 (handle_constants): Convert to...
7748 (rtx_reader::handle_constants): ...member function.
7749 (traverse_md_constants): Convert to...
7750 (rtx_reader::traverse_md_constants): ...member function.
7751 (handle_enum): Convert to...
7752 (rtx_reader::handle_enum): ...member function.
7753 (lookup_enum_type): Convert to...
7754 (rtx_reader::lookup_enum_type): ...member function.
7755 (traverse_enum_types): Convert to...
7756 (rtx_reader::traverse_enum_types): ...member function.
7757 (rtx_reader::rtx_reader): Move initializations
7758 of various former global data from rtx_reader::read_md_files to
7759 here, as fields, along with the call to unlock_std_streams.
7760 (rtx_reader::~rtx_reader): Clean up m_base_dir, and clean up
7761 the new fields.
7762 (rtx_reader::read_md_files): Move initializations of various
7763 global data from here to the ctor.
7764 * read-md.h (read_name): Convert to...
7765 (rtx_reader::read_name): ...member function.
7766 (rtx_reader::read_escape): New method decl.
7767 (read_quoted_string): Convert to...
7768 (rtx_reader::read_quoted_string): ...member function.
7769 (rtx_reader::read_braced_string): New method decl.
7770 (read_string): Convert to...
7771 (rtx_reader::read_string): ...member function.
7772 (rtx_reader::read_skip_construct): New method decl.
7773 (rtx_reader::set_md_ptr_loc): New method decl.
7774 (rtx_reader::get_md_ptr_loc): New method decl.
7775 (copy_md_ptr_loc): Convert to...
7776 (rtx_reader::copy_md_ptr_loc): ...member function.
7777 (fprint_md_ptr_loc): Convert to...
7778 (rtx_reader::fprint_md_ptr_loc): ...member function.
7779 (print_md_ptr_loc): Convert to...
7780 (rtx_reader::print_md_ptr_loc): ...member function.
7781 (rtx_reader::lookup_enum_type): New method decl.
7782 (rtx_reader::traverse_enum_types): New method decl.
7783 (rtx_reader::handle_constants): New method decl.
7784 (traverse_md_constants): Convert to...
7785 (rtx_reader::traverse_md_constants): ...member function.
7786 (rtx_reader::handle_enum): New method decl.
7787 (rtx_reader::join_c_conditions): New method decl.
7788 (fprint_c_condition): Convert to...
7789 (rtx_reader::fprint_c_condition): ...member function.
7790 (print_c_condition): Convert to...
7791 (rtx_reader::print_c_condition): ...member function.
7792 (rtx_reader::apply_iterator_to_string): New method decl.
7793 (rtx_reader::copy_rtx_for_iterators): New method decl.
7794 (rtx_reader::read_conditions): New method decl.
7795 (rtx_reader::record_potential_iterator_use): New method decl.
7796 (rtx_reader::read_mapping): New method decl.
7797 (rtx_reader::read_rtx): New method decl.
7798 (rtx_reader::read_rtx_code): New method decl.
7799 (rtx_reader::read_rtx_operand): New method decl.
7800 (rtx_reader::read_nested_rtx): New method decl.
7801 (rtx_reader::read_rtx_variadic): New method decl.
7802 (rtx_reader::get_string_obstack): New method.
7803 (rtx_reader::get_md_constants): New method.
7804 (string_obstack): Convert global variable decl to...
7805 (rtx_reader::m_string_obstack): ...this new field.
7806 (rtx_reader::m_ptr_locs): New field.
7807 (rtx_reader::m_ptr_loc_obstack): New field.
7808 (rtx_reader::m_joined_conditions): New field.
7809 (rtx_reader::m_joined_conditions_obstack): New field.
7810 (rtx_reader::m_md_constants): New field.
7811 (rtx_reader::m_enum_types): New field.
7812 * read-rtl.c (apply_iterator_to_string): Convert to...
7813 (rtx_reader::apply_iterator_to_string): ...member function.
7814 (copy_rtx_for_iterators): Convert to...
7815 (rtx_reader::copy_rtx_for_iterators): ...member function.
7816 (add_condition_to_string): Use rtx_reader_ptr for
7817 calls join_c_conditions.
7818 (apply_iterators): Use rtx_reader_ptr for calls to
7819 join_c_conditions and copy_rtx_for_iterators.
7820 (read_conditions): Convert to...
7821 (rtx_reader::read_conditions): ...member function.
7822 (record_potential_iterator_use): Convert to...
7823 (rtx_reader::record_potential_iterator_use): ...member function.
7824 (read_mapping): Convert to...
7825 (rtx_reader::read_mapping): ...member function.
7826 (read_subst_mapping): Use rtx_reader_ptr for read_string call.
7827 (read_rtx): Convert to...
7828 (rtx_reader::read_rtx): ...member function.
7829 (read_rtx_code): Convert to...
7830 (rtx_reader::read_rtx_code): ...member function.
7831 (read_rtx_operand): Convert to...
7832 (rtx_reader::read_rtx_operand): ...member function. Update for move
7833 of string_obstack to a field.
7834 (read_nested_rtx): Convert to..
7835 (rtx_reader::read_nested_rtx): ...member function.
7836 (read_rtx_variadic): Convert to..
7837 (rtx_reader::read_rtx_variadic): ...member function.
7838
7839 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
7840
7841 * tree-vrp.c (get_value_range): Check get_ptr_nonnull.
7842
7843 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
7844
7845 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Set value range
7846 for pointer type too.
7847 (ipcp_update_vr): set_ptr_nonnull for pointer.
7848
7849 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
7850
7851 * tree-ssa-alias.h (pt_solution_singleton_or_null_p): Renamed from
7852 pt_solution_singleton_p.
7853 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use renamed
7854 pt_solution_singleton_or_null_p from pt_solution_singleton_p.
7855 * tree-ssa-structalias.c (find_what_p_points_to): Preserve
7856 pointer nonnull computed by VRP.
7857 Also Conservatively set pt.null to 1.
7858 (pt_solution_reset): Conservatively set pt.null to 1.
7859 (pt_solution_singleton_or_null_p): Renamed from
7860 pt_solution_singleton_p.
7861 * tree-ssanames.h (set_ptr_nonnull): Declare.
7862 (get_ptr_nonnull): Likewise.
7863 * tree-ssanames.c (set_ptr_nonnull): New.
7864 (get_ptr_nonnull): Likewise.
7865 * tree-vrp.c (vrp_finalize): Set ptr that are nonnull.
7866 (evrp_dom_walker::before_dom_children): Likewise.
7867
7868 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
7869
7870 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
7871 * config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
7872 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
7873 * config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
7874 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to.
7875 * config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
7876 (rs6000_option_override_internal): Clear it if ABI_AIX.
7877 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
7878 * config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here.
7879
7880 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7881
7882 * gimple-ssa-strength-reduction.c (record_increment): Remove
7883 garbage comment.
7884
7885 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
7886
7887 * expmed.c (expand_shift_1): Add MAY_FAIL parameter and do not assert
7888 that the result is non-zero if it is true.
7889 (maybe_expand_shift): New wrapper around expand_shift_1.
7890 (emit_store_flag): Call maybe_expand_shift in lieu of expand_shift.
7891
7892 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7893
7894 PR tree-optimization/77916
7895 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
7896 Don't allow a MINUS_EXPR for pointer arithmetic for either known
7897 or unknown strides.
7898 (record_increment): Increments of -1 for unknown strides just use
7899 a multiply initializer like other negative values.
7900 (analyze_increments): Remove stopgap solution for -1 increment
7901 applied to pointer arithmetic.
7902
7903 2016-10-17 Yuri Rumyantsev <ysrumyan@gmail.com>
7904
7905 * dominance.c (dom_info::dom_info): Add new constructor for region
7906 which is vector of basic blocks.
7907 (dom_init): New method to initialize members common for both
7908 constructors.
7909 (dom_info::dom_info): Invoke dom_init for partial initialization.
7910 (dom_info::get_idom): Add check to corner cases on basic blocks which
7911 are not in region.
7912 (dom_info::calc_dfs_tree): Check M_FAKE_EXIT_EDGE instead of M_REVERSE
7913 to detect unreachable bbs.
7914 (dom_info::calc_idoms): Likewise.
7915 (compute_dom_fast_query_in_region): New function.
7916 (calculate_dominance_info_for_region): Likewise.
7917 (free_dominance_info_for_region): Likewise.
7918 * dominance.h: Add prototypes for introduced region-based functions
7919 * tree-if-conv.c (build_region): New function.
7920 (if_convertible_loop_p_1): Invoke local version of post-dominators
7921 calculation before basic block predication with subsequent freeing
7922 post-dominator info.
7923 (tree_if_conversion): Remove free of post-dominator info
7924 (pass_if_conversion::execute): Delete detection of infinite loops
7925 and fake edges to exit block since post-dominator calculation is
7926 performed per if-converted loop only.
7927
7928 2016-10-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
7929
7930 PR target/77308
7931 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
7932 register explicitly.
7933 * config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Don't FAIL if
7934 optimizing for size.
7935
7936 2016-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7937
7938 * config/aarch64/aarch64.c: Delete inclusion of
7939 cortex-a57-fma-steering.h.
7940 (aarch64_override_options): Delete call
7941 to aarch64_register_fma_steering.
7942 * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare.
7943 * config/aarch64/cortex-a57-fma-steering.h: Delete.
7944 * config/aarch64/aarch64-passes.def: New file.
7945 * config/aarch64/cortex-a57-fma-steering.c
7946 (aarch64_register_fma_steering): Delete definition.
7947 (make_pass_fma_steering): Remove static qualifier.
7948 * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive.
7949 (cortex-a57-fma-steering.o): Remove dependency on
7950 cortex-a57-fma-steering.h.
7951
7952 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
7953
7954 * explow.c (validize_mem): Do not modify the argument in-place.
7955
7956 2016-10-17 Thomas Schwinge <thomas@codesourcery.com>
7957
7958 * tree-streamer.c (record_common_node): Explicitly list expected
7959 tree codes.
7960
7961 2016-10-17 Richard Biener <rguenther@suse.de>
7962
7963 PR tree-optimization/77988
7964 * tree-vrp.c (remove_range_assertions): Use replace_uses_by.
7965
7966 2016-10-17 Marek Polacek <polacek@redhat.com>
7967
7968 * Makefile.in (C_COMMON_OBJS): Add c-family/c-attribs.o.
7969
7970 2016-10-17 Richard Biener <rguenther@suse.de>
7971
7972 * bb-reorder.c (reorder_basic_blocks_simple): Clear BB_VISITED
7973 before using it.
7974
7975 2016-10-17 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7976
7977 PR tree-optimization/71636
7978 * match.pd (x & ((1 << b) - 1) -> x & ~(~0 << b)): New pattern.
7979
7980 2016-10-17 Richard Biener <rguenther@suse.de>
7981
7982 * gimplify.c (gimplify_function_tree): Do not move the outer
7983 binds block.
7984
7985 2016-10-17 Jakub Jelinek <jakub@redhat.com>
7986
7987 * langhooks.h (struct lang_hooks_for_decls): Remove
7988 function_decl_explicit_p, function_decl_deleted_p and
7989 function_decl_defaulted hooks. Add decl_dwarf_attribute hook.
7990 * langhooks-def.h (lhd_decl_dwarf_attribute): Declare.
7991 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
7992 LANG_HOOKS_FUNCTION_DECL_DELETED_P,
7993 LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Remove.
7994 (LANG_HOOKS_DECL_DWARF_ATTRIBUTE): Define.
7995 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
7996 LANG_HOOKS_FUNCTION_DECL_DELETED_P and
7997 LANG_HOOKS_FUNCTION_DECL_DEFAULTED. Add
7998 LANG_HOOKS_DECL_DWARF_ATTRIBUTE.
7999 * langhooks.c (lhd_decl_dwarf_attribute): New function.
8000 * dwarf2out.c (gen_subprogram_die): Use
8001 lang_hooks.decls.decl_dwarf_attribute instead of
8002 lang_hooks.decls.function_decl_*.
8003
8004 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
8005
8006 PR ada/37139
8007 PR ada/67205
8008 * common.opt (-ftrampolines): New option.
8009 * doc/invoke.texi (Code Gen Options): Document it.
8010 * doc/tm.texi.in (Trampolines): Add TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
8011 * doc/tm.texi: Regenerate.
8012 * builtins.def: Add init_descriptor and adjust_descriptor.
8013 * builtins.c (expand_builtin_init_trampoline): Do not issue a warning
8014 on platforms with descriptors.
8015 (expand_builtin_init_descriptor): New function.
8016 (expand_builtin_adjust_descriptor): Likewise.
8017 (expand_builtin) <BUILT_IN_INIT_DESCRIPTOR>: New case.
8018 <BUILT_IN_ADJUST_DESCRIPTOR>: Likewise.
8019 * calls.c (prepare_call_address): Remove SIBCALLP parameter and add
8020 FLAGS parameter. Deal with indirect calls by descriptor and adjust.
8021 Set STATIC_CHAIN_REG_P on the static chain register, if any.
8022 (call_expr_flags): Set ECF_BY_DESCRIPTOR for calls by descriptor.
8023 (expand_call): Likewise. Move around call to prepare_call_address
8024 and pass all flags to it.
8025 * cfgexpand.c (expand_call_stmt): Reinstate CALL_EXPR_BY_DESCRIPTOR.
8026 * gimple.h (enum gf_mask): New GF_CALL_BY_DESCRIPTOR value.
8027 (gimple_call_set_by_descriptor): New setter.
8028 (gimple_call_by_descriptor_p): New getter.
8029 * gimple.c (gimple_build_call_from_tree): SetCALL_EXPR_BY_DESCRIPTOR.
8030 (gimple_call_flags): Deal with GF_CALL_BY_DESCRIPTOR.
8031 * langhooks.h (struct lang_hooks): Add custom_function_descriptors.
8032 * langhooks-def.h (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS): Define.
8033 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS.
8034 * rtl.h (STATIC_CHAIN_REG_P): New macro.
8035 * rtlanal.c (find_first_parameter_load): Skip static chain registers.
8036 * target.def (custom_function_descriptors): New POD hook.
8037 * tree.h (FUNC_ADDR_BY_DESCRIPTOR): New flag on ADDR_EXPR.
8038 (CALL_EXPR_BY_DESCRIPTOR): New flag on CALL_EXPR.
8039 * tree-core.h (ECF_BY_DESCRIPTOR): New mask.
8040 Document FUNC_ADDR_BY_DESCRIPTOR and CALL_EXPR_BY_DESCRIPTOR.
8041 * tree.c (make_node_stat) <tcc_declaration>: Use FUNCTION_ALIGNMENT.
8042 (build_common_builtin_nodes): Initialize init_descriptor and
8043 adjust_descriptor.
8044 * tree-nested.c: Include target.h.
8045 (struct nesting_info): Add 'any_descr_created' field.
8046 (get_descriptor_type): New function.
8047 (lookup_element_for_decl): New function extracted from...
8048 (create_field_for_decl): Likewise.
8049 (lookup_tramp_for_decl): ...here. Adjust.
8050 (lookup_descr_for_decl): New function.
8051 (convert_tramp_reference_op): Deal with descriptors.
8052 (build_init_call_stmt): New function extracted from...
8053 (finalize_nesting_tree_1): ...here. Adjust and deal with descriptors.
8054 * defaults.h (FUNCTION_ALIGNMENT): Define.
8055 (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY.
8056 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
8057 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
8058 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS):Likewise.
8059 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
8060
8061 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
8062
8063 * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
8064 constants in CONST_VECTORs.
8065
8066 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
8067
8068 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
8069 register as destination of bmask.
8070 (vector_init_bshuffle): Likewise.
8071 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
8072 (bmaskdi_vis): Enable only in 64-bit mode.
8073
8074 2016-10-15 Segher Boessenkool <segher@kernel.crashing.org>
8075
8076 * config/rs6000/rs6000.c (rs6000_get_separate_components): Do not
8077 make LR a separately shrink-wrapped component unless savres_strategy
8078 contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}. Do not wrap
8079 GPRs unless both {SAVE,REST}_INLINE_GPRS. Do not disallow all
8080 wrapping when not both {SAVE,REST}_INLINE_GPRS.
8081
8082 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
8083
8084 * optabs.c (expand_parity): Fix mode mismatch, add final conversion
8085 and keep looping on failure.
8086
8087 2016-10-14 David Malcolm <dmalcolm@redhat.com>
8088
8089 * print-rtl-function.c (print_edge): Omit "(flags)" when none are
8090 set.
8091 (print_rtx_function): Update example in comment for...
8092 * print-rtl.c (print_rtx_operand_code_r): In compact mode, print
8093 non-virtual pseudos with a '%' sigil followed by the regno, offset
8094 by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual
8095 pseudo is dumped as "%0".
8096
8097 2016-10-14 Jakub Jelinek <jakub@redhat.com>
8098
8099 PR middle-end/77959
8100 * expr.c (expand_expr_real_1) <case CONST_DECL>: For EXPAND_WRITE
8101 return a MEM.
8102
8103 2016-10-14 Eric Botcazou <ebotcazou@adacore.com>
8104
8105 * config/sparc/sparc-passes.def: New file.
8106 * config/sparc/t-sparc (PASSES_EXTRA): Add sparc-passes.def.
8107 * config/sparc/sparc-protos.h (make_pass_work_around_errata): New.
8108 * config/sparc/sparc.c (sparc_option_override): Don't register passes.
8109
8110 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
8111
8112 * loop-unroll.c (unroll_loop_runtime_iterations): Condition initial
8113 loop peel to loops with exit test at the beginning.
8114
8115 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
8116
8117 PR rtl-optimization/68212
8118 * cfgloopmanip.c (duplicate_loop_to_header_edge): Use preheader edge
8119 frequency when computing scale factor for peeled copies.
8120 * loop-unroll.c (unroll_loop_runtime_iterations): Fix freq/count
8121 values for switch/peel blocks/edges.
8122
8123 2016-10-14 Pedro Alves <palves@redhat.com>
8124
8125 * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h.
8126
8127 2016-10-14 Catherine Moore <clm@codesourcery.com>
8128
8129 * config/mips/mips.c (mips_prepare_pch_save): Initialize
8130 micromips_globals to zero.
8131
8132 2016-10-14 Richard Biener <rguenther@suse.de>
8133
8134 PR tree-optimization/77979
8135 * tree-vrp.c (compare_name_with_value): Handle released SSA names
8136 in the equivalency sets.
8137 (compare_names): Likewise.
8138
8139 2016-10-14 Martin Liska <mliska@suse.cz>
8140
8141 * builtins.h(target_char_cst_p): Declare the function.
8142 * builtins.c (fold_builtin_memchr): Remove.
8143 (target_char_cst_p): Move the function from gimple-fold.c.
8144 (fold_builtin_3): Do not call the function.
8145 * gimple-fold.c (gimple_fold_builtin_memchr): New function.
8146 (gimple_fold_builtin): Call the function.
8147 * fold-const-call.c (fold_const_call_1): Handle CFN_BUILT_IN_MEMCHR.
8148
8149 2016-10-14 Martin Liska <mliska@suse.cz>
8150
8151 * builtins.c (fold_builtin_strcmp): Remove function.
8152 (fold_builtin_strncmp): Likewise.
8153 (fold_builtin_2): Remove call of the function.
8154 (fold_builtin_3): Likewise.
8155 * fold-const-call.c (fold_const_call): Add constant folding
8156 for CFN_BUILT_IN_STRCASECMP and CFN_BUILT_IN_STRNCASECMP.
8157 * fold-const-call.h (build_cmp_result): Declare the function.
8158 * gimple-fold.c (gimple_load_first_char): New function.
8159 (gimple_fold_builtin_string_compare): Likewise.
8160 (gimple_fold_builtin): Call the function.
8161
8162 2016-10-14 Nathan Sidwell <nathan@acm.org>
8163
8164 * gcov-io.c (gcov_open): Deconstify 'mode'.
8165
8166 2016-10-14 Martin Liska <mliska@suse.cz>
8167
8168 * fold-const.c (c_getstr): Support of properly \0-terminated
8169 string constants. New argument is added.
8170 * fold-const.h: New argument is added.
8171
8172 2016-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8173
8174 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
8175 New function.
8176 (aarch64_print_hint_for_core): Likewise.
8177 (aarch64_print_hint_for_arch): Likewise.
8178 (aarch64_validate_march): Use it. Fix indentation in type signature.
8179 (aarch64_validate_mcpu): Use aarch64_print_hint_for_core_or_arch.
8180 (aarch64_validate_mtune): Likewise.
8181 (aarch64_handle_attr_arch): Likewise.
8182 (aarch64_handle_attr_cpu): Likewise.
8183 (aarch64_handle_attr_tune): Likewise.
8184
8185 2016-10-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8186
8187 * optabs.def: Remove optab function gen_int_libfunc for sdivmod_optab
8188 and udivmod_optab.
8189
8190 2016-10-13 Andreas Schwab <schwab@linux-m68k.org>
8191
8192 * config/m68k/m68k.c (m68k_option_override): Check
8193 opt_fstack_limit_symbol_arg and opt_fstack_limit_register_no
8194 instead of stack_limit_rtx.
8195
8196 2016-10-13 Jakub Jelinek <jakub@redhat.com>
8197
8198 * dwarf2out.c (gen_member_die): Handle inline static data member
8199 definitions.
8200
8201 2016-10-13 Nathan Sidwell <nathan@acm.org>
8202
8203 * gcov-io.c (gcov_open): Fix documentation. Simplify setting
8204 gcov_var.mode. Remove unnecessary fstat.
8205
8206 2016-10-13 Segher Boessenkool <segher@kernel.crashing.org>
8207
8208 PR bootstrap/77962
8209 * function.c (thread_prologue_and_epilogue_insns): Call all
8210 make_*logue_seq in the same order as traditional. Call them
8211 all a second time if shrink_wrapped_separate.
8212
8213 2016-10-13 Marek Polacek <polacek@redhat.com>
8214
8215 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
8216 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Don't
8217 use -Wno-error.
8218
8219 2016-10-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8220
8221 PR tree-optimization/77937
8222 * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
8223 to infinite when we have a pointer with an increment of -1.
8224
8225 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
8226
8227 * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
8228 into ...
8229 * memmodel.h: This file.
8230 * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
8231 caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
8232 cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
8233 combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
8234 common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
8235 common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
8236 common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
8237 compare-elim.c, config/aarch64/aarch64-builtins.c,
8238 config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
8239 config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
8240 config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
8241 config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
8242 config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
8243 config/darwin.c, config/epiphany/epiphany.c,
8244 config/epiphany/mode-switch-use.c,
8245 config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
8246 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
8247 config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
8248 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
8249 config/m68k/m68k.c, config/mcore/mcore.c,
8250 config/microblaze/microblaze.c, config/mmix/mmix.c,
8251 config/mn10300/mn10300.c, config/moxie/moxie.c,
8252 config/msp430/msp430.c, config/nds32/nds32-cost.c,
8253 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
8254 config/nds32/nds32-memory-manipulation.c,
8255 config/nds32/nds32-predicates.c, config/nds32/nds32.c,
8256 config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
8257 config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
8258 config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
8259 config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
8260 config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
8261 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
8262 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
8263 config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
8264 coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
8265 df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
8266 dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
8267 expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
8268 ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
8269 ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
8270 ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
8271 loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
8272 lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
8273 lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
8274 lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
8275 postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
8276 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
8277 reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
8278 rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
8279 sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
8280 stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
8281 targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
8282 tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
8283 tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
8284 tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
8285 var-tracking.c, varasm.c: Include memmodel.h.
8286 * genattrtab.c (write_header): Include memmodel.h in generated file.
8287 * genautomata.c (main): Likewise.
8288 * gengtype.c (open_base_files): Likewise.
8289 * genopinit.c (main): Likewise.
8290 * genconditions.c (write_header): Include memmodel.h earlier in
8291 generated file.
8292 * genemit.c (main): Likewise.
8293 * genoutput.c (output_prologue): Likewise.
8294 * genpeep.c (main): Likewise.
8295 * genpreds.c (write_insn_preds_c): Likewise.
8296 * genrecog.c (write_header): Likewise.
8297 * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
8298
8299 2016-10-13 David Malcolm <dmalcolm@redhat.com>
8300
8301 * function-tests.c (selftest::test_expansion_to_rtl): Add "true"
8302 for new "compact" param of print_rtx_function. Check for "cinsn"
8303 rather than "insn".
8304 * print-rtl-function.c (flag_compact): New decl.
8305 (print_rtx_function): Add param "compact" and use it to set
8306 flag_compact, adding a description of the effect to the leading
8307 comment, and updating the example output.
8308 * print-rtl.c (flag_compact): New variable.
8309 (print_rtx_operand_code_0): Omit the JUMP_LABEL reference in compact
8310 mode.
8311 (print_rtx_operand_code_i): When printing source locations, wrap
8312 xloc.file in quotes. Don't print INSN_CODEs in compact mode.
8313 (print_rtx_operand_code_r): Don't print regnos for hard regs and
8314 virtuals in compact mode.
8315 (print_rtx_operand_code_u): Don't print insn UIDs in compact mode,
8316 apart from in LABEL_REFs.
8317 (print_rtx_operand): In case 'w', don't print in hex in compact mode.
8318 Don't print basic block ids in compact mode.
8319 (print_rtx): In compact mode, prefix the code of insns with "c",
8320 only print the INSN_UID of CODE_LABELs, and omit their LABEL_NUSES.
8321 * print-rtl.h (print_rtx_function): Add "compact" param.
8322
8323 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
8324
8325 * arm.h (TARGET_VFP): Delete.
8326 (TARGET_VFPD32): Remove references to TARGET_VFP.
8327 (TARGET_VFP3, TARGET_VFP5): Likewise.
8328 (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise.
8329 (TARGET_NEON_FP16): Likewise.
8330 (TARGET_FMA): Likewise.
8331 (TARGET_CRYPTO): Likewise.
8332 (TARGET_NEON): Likewise.
8333 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
8334 (FUNCTION_ARG_REGNO_P): Likewise.
8335 * arm.c (arm_option_check_internal): Likewise.
8336 (arm_option_override): Likewise.
8337 (use_return_insn): Likewise.
8338 (arm_function_value_regno_p): Likewise.
8339 (arm_apply_result_size): Likewise.
8340 (use_vfp_abi): Likewise.
8341 (arm_legitimate_address_outer_p): Likewise.
8342 (thumb2_legitimate_address_p): Likewise.
8343 (arm_legitimate_index_p): Likewise.
8344 (thumb2_legitimate_index_p): Likewise.
8345 (arm_legitimate_address): Likewise.
8346 (arm_get_vfp_saved_size): Likewise.
8347 (arm_emit_vfp_multi_reg_pop): Likewise.
8348 (arm_get_frame_offsets): Likewise.
8349 (arm_save_coproc_regs): Likewise.
8350 (arm_hard_regno_mode_ok): Likewise.
8351 (arm_expand_epilogue_apcs_frame): Likewise.
8352 (arm_expand_epilogue): Likewise.
8353 (arm_file_start): Likewise.
8354 (arm_conditional_register_usage): Likewise.
8355 (arm_validize_comparison): Use vfp_compare_operand directly.
8356 * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP.
8357 (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting
8358 unsupported usage.
8359 (arm_atomic_assign_expand_fenv): Likewise.
8360 * arm.md (divsf3): Likewise.
8361 (arm_negsi2): Likewise.
8362 (absdf2): Likewise.
8363 (arm_movdi): Likewise.
8364 (arm_movt): Likewise.
8365 (cbranchsf4): Change predicate to vfp_compare_operand.
8366 (cbranchdf4): Change predicate to vfp_compare_operand.
8367 (cstorehf4): Change predicate to vfp_compare_operand.
8368 (cstoresf4): Change predicate to vfp_compare_operand.
8369 (cstoredf4): Change predicate to vfp_compare_operand.
8370 (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP.
8371 (movhi_insn_arch4, movhi_bytes): Likewise.
8372 * constraints.md (Dt): Likewise.
8373 (Dp): Likewise.
8374 * iterators.md (SDF): Likewise.
8375 * predicates.md (arm_float_compare_operand): Delete.
8376 (const_double_vcvt_power_of_two_reciprocal): Remove references to
8377 TARGET_VFP.
8378 (const_double_vcvt_power_of_two): Likewise.
8379 * thumb2.md thumb2_movsi_insn): Likewise.
8380 * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise.
8381 (movhf_vfp): Likewise.
8382 (arm_movsi_vfp, thumb2_movsi_vfp): Likewise.
8383 (movdi_vfp, movdi_vfp_cortexa8): Likewise.
8384 (movsf_vfp, thumb2_movsf_vfp): Likewise.
8385 (movdf_vfp, thumb2_movdf_vfp): Likewise.
8386 (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise.
8387 (subsf3_vfp, divsf3_vfp): Likewise.
8388 (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise.
8389 (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise.
8390 (mulsf3negsfsubsf_vfp): Likewise.
8391 (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise.
8392 (floatunssisf2, sqrtsf2_vfp): Likewise.
8393 (movcc_vfp): Likewise.
8394 (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise.
8395 (cmpsf_vfp, cmpsf_trap_vfp): Likewise.
8396 (push_multi_vfp): Likewise.
8397 (set_fpscr, get_fpscr): Likewise.
8398 * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__.
8399
8400 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
8401
8402 * arm.h (TARGET_VFP): Unconditionally define to 1.
8403 (arm_fpu_desc): Remove 'model' field.
8404 (TARGET_FPU_MODEL): Delete.
8405 * arm.c (all_fpus): Don't initialize the model field.
8406 (arm_can_inline_p): Don't check the FPU model.
8407 * arm-fpus.def: Remove redundant model field from all FPU
8408 descriptions.
8409
8410 2016-10-13 Richard Biener <rguenther@suse.de>
8411
8412 PR middle-end/77826
8413 * genmatch.c (struct capture): Add value_match member.
8414 (commutate): Preserve value_match.
8415 (lower_opt_convert): Likewise.
8416 (lower_cond): Likewise.
8417 (replace_id): Likewise.
8418 (struct dt_operand): Add value_match member.
8419 (decision_tree::cmp_node): Compare it.
8420 (decision_tree::insert_operand): Honor it when finding and
8421 when appending a DT_MATCH.
8422 (dt_operand::gen_match_op): Generate a type check after
8423 operand_equal_p if ! value_match for both GENERIC and GIMPLE.
8424 (parser::get_internal_capture_id): New helper.
8425 (parser::finish_match_operand): New function lowering @@<id>.
8426 (parser::parse_capture): Parse @@<id> as value-match.
8427 (parser::parse_expr): Use get_internal_capture_id.
8428 (parser::parse_simplify): Call finish_match_operand.
8429 (walk_captures): New helper.
8430 * match.pd (X - (X / Y) * Y -> X % Y): Use value-matching instead
8431 of operand_equal_p.
8432 ((X /[ex] A) * A -> X): Likewise.
8433 ((X | Y) ^ X -> Y & ~ X): Handle constants properly by using
8434 convert[12] and value-matching.
8435 ((A | B) & (A | C) -> A | (B & C)): Likewise.
8436 ((X | Y) | Y -> X | Y): Likewise.
8437 ((X ^ Y) ^ Y -> X): Likewise.
8438 (A - (A & B) -> ~B & A): Likewise.
8439 ((T)(P + A) - (T)P -> (T) A): Likewise.
8440 ((T)P - (T)(P + A) -> -(T) A): Likewise.
8441 ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Likewise.
8442 * doc/match-and-simplify.texi: Amend capture section.
8443
8444 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
8445
8446 * config/arc/arc.md (umul_600): Remove predicated variant.
8447 (umul64_600): Likewise.
8448
8449 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
8450
8451 * config/arc/arc.h (INSN_LENGTH_ALIGNMENT): Change.
8452
8453 2016-10-13 Bin Cheng <bin.cheng@arm.com>
8454
8455 * tree-vect-loop.c (loop_niters_no_overflow): New func.
8456 (vect_transform_loop): Call loop_niters_no_overflow. Pass the
8457 no-overflow information to vect_do_peeling_for_loop_bound and
8458 vect_gen_vector_loop_niters.
8459
8460 2016-10-13 Bin Cheng <bin.cheng@arm.com>
8461
8462 * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only
8463 iterates 1 time.
8464
8465 2016-10-13 Bin Cheng <bin.cheng@arm.com>
8466
8467 * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release
8468 adjust_vec automatically.
8469 (slpeel_add_loop_guard): Remove param cond_expr_stmt_list. Rename
8470 param exit_bb to guard_to.
8471 (slpeel_checking_verify_cfg_after_peeling):
8472 (set_prologue_iterations):
8473 (create_lcssa_for_virtual_phi): New func which is factored out from
8474 slpeel_tree_peel_loop_to_edge.
8475 (slpeel_tree_peel_loop_to_edge):
8476 (iv_phi_p): New func.
8477 (vect_can_advance_ivs_p): Call iv_phi_p.
8478 (vect_update_ivs_after_vectorizer): Call iv_phi_p. Directly insert
8479 new gimple stmts in basic block.
8480 (vect_gen_niters_for_prolog_loop): Rename to...
8481 (vect_gen_prolog_loop_niters): ...Rename from. Change parameters and
8482 adjust implementation.
8483 (vect_update_inits_of_drs): Fix code style issue. Convert niters to
8484 sizetype if necessary.
8485 (vect_build_loop_niters): Move to here from tree-vect-loop.c. Change
8486 it to external function.
8487 (vect_gen_scalar_loop_niters, vect_gen_vector_loop_niters): New.
8488 (vect_gen_vector_loop_niters_mult_vf): New.
8489 (slpeel_update_phi_nodes_for_loops): New.
8490 (slpeel_update_phi_nodes_for_guard1): Reimplement.
8491 (find_guard_arg, slpeel_update_phi_nodes_for_guard2): Reimplement.
8492 (slpeel_update_phi_nodes_for_lcssa, vect_do_peeling): New.
8493 * tree-vect-loop.c (vect_build_loop_niters): Move to file
8494 tree-vect-loop-manip.c
8495 (vect_generate_tmps_on_preheader): Delete.
8496 (vect_transform_loop): Rename vectorization_factor to vf. Call
8497 vect_do_peeling instead of vect_do_peeling-* functions.
8498 * tree-vectorizer.h (vect_do_peeling): New decl.
8499 (vect_build_loop_niters, vect_gen_vector_loop_niters): New decls.
8500 (vect_do_peeling_for_loop_bound): Delete.
8501 (vect_do_peeling_for_alignment): Delete.
8502
8503 2016-10-13 Bin Cheng <bin.cheng@arm.com>
8504
8505 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Put
8506 duplicated loop after its preheader and after the original loop.
8507
8508 2016-10-13 Bin Cheng <bin.cheng@arm.com>
8509
8510 * tree-vect-loop.c (vect_analyze_loop_2): Check and skip loop if it
8511 has no enough iterations for LOOP_VINFO_PEELING_FOR_GAPS.
8512
8513 2016-10-13 Bin Cheng <bin.cheng@arm.com>
8514
8515 * tree-vect-loop.c (vectorizable_live_operation): Support handling
8516 for live variable outside loop but not in lcssa form.
8517
8518 2016-10-13 Bin Cheng <bin.cheng@arm.com>
8519
8520 * cfg.c (reset_original_copy_tables): New func.
8521 * cfg.h (reset_original_copy_tables): New decl.
8522
8523 2016-10-13 Jakub Jelinek <jakub@redhat.com>
8524
8525 PR c/77946
8526 * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of
8527 public_flag.
8528 * varasm.c (default_binds_local_p_3): Formatting fix.
8529
8530 2016-10-13 Bin Cheng <bin.cheng@arm.com>
8531
8532 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code
8533 style issue.
8534 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
8535 Remove useless code.
8536
8537 2016-10-13 Martin Liska <mliska@suse.cz>
8538
8539 PR tree-optimization/77943
8540 * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
8541 a different EH landing pads.
8542
8543 2016-10-13 Jakub Jelinek <jakub@redhat.com>
8544
8545 PR target/77957
8546 * hooks.h (hook_tree_void_null): Declare.
8547 * hooks.c (hook_tree_void_null): New function.
8548 * langhooks.c (lhd_return_null_tree_v): Remove.
8549 * langhooks-def.h (lhd_return_null_tree_v): Remove.
8550 * cfgexpand.c (stack_protect_prologue): If guard_decl is NULL,
8551 set y to const0_rtx.
8552 * function.c (stack_protect_epilogue): Likewise.
8553 * config/tilepro/tilepro.c (TARGET_STACK_PROTECT_GUARD): Redefine
8554 if TARGET_THREAD_SSP_OFFSET is defined.
8555 * config/s390/s390.c (TARGET_STACK_PROTECT_GUARD): Likewise.
8556 * config/sparc/sparc.c (TARGET_STACK_PROTECT_GUARD): Likewise.
8557 * config/tilegx/tilegx.c (TARGET_STACK_PROTECT_GUARD): Likewise.
8558 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Likewise.
8559 * config/i386/i386.c (TARGET_STACK_PROTECT_GUARD): Likewise.
8560 (ix86_stack_protect_guard): New function.
8561
8562 2016-10-13 Richard Biener <rguenther@suse.de>
8563
8564 * dwarf2out.c (tree_add_const_value_attribute): Do not try
8565 rtl_for_decl_init during early phase.
8566 (gen_variable_die): Do not create locations during early phase.
8567 (gen_label_die): Likewise.
8568 (decls_for_scope): Do not waste time handling BLOCK_NONLOCALIZED_VARs
8569 twice.
8570
8571 2016-10-12 Richard Biener <rguenther@suse.de>
8572
8573 * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from
8574 try_add_new_range and made to eturn new range.
8575 (evrp_dom_walker::before_dom_children): Push op1 value range before
8576 pushing op0 value range.
8577
8578 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8579
8580 PR tree-optimization/77937
8581 * gimple-ssa-strength-reduction.c (analyze_increments): Use
8582 POINTER_TYPE_P on the candidate type to determine whether
8583 candidates in this chain require pointer arithmetic.
8584
8585 2016-10-12 Eric Botcazou <ebotcazou@adacore.com>
8586
8587 * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
8588 correction if the type is smaller than a word.
8589 (visium_select_cc_mode): Add ... fall through ... comment.
8590
8591 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8592
8593 * config/rs6000/rs6000.c (machine_function): Add new fields
8594 gpr_is_wrapped_separately and lr_is_wrapped_separately.
8595 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
8596 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
8597 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
8598 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
8599 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
8600 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
8601 (rs6000_get_separate_components): New function.
8602 (rs6000_components_for_bb): New function.
8603 (rs6000_disqualify_components): New function.
8604 (rs6000_emit_prologue_components): New function.
8605 (rs6000_emit_epilogue_components): New function.
8606 (rs6000_set_handled_components): New function.
8607 (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
8608 Don't emit GPR saves if gpr_is_wrapped_separately for that register.
8609 (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
8610 (rs6000_emit_epilogue): Don't emit GPR restores if
8611 gpr_is_wrapped_separately for that register. Don't make a
8612 REG_CFA_RESTORE note for registers we did not restore, either.
8613
8614 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8615
8616 * function.c (thread_prologue_and_epilogue_insns): Call
8617 try_shrink_wrapping_separate. Compute the prologue_seq afterwards,
8618 if it has possibly changed. Compute the split_prologue_seq and
8619 epilogue_seq later, too.
8620 * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
8621 (dump_components): New function.
8622 (struct sw): New struct.
8623 (SW): New function.
8624 (init_separate_shrink_wrap): New function.
8625 (fini_separate_shrink_wrap): New function.
8626 (place_prologue_for_one_component): New function.
8627 (spread_components): New function.
8628 (disqualify_problematic_components): New function.
8629 (emit_common_heads_for_components): New function.
8630 (emit_common_tails_for_components): New function.
8631 (insert_prologue_epilogue_for_components): New function.
8632 (try_shrink_wrapping_separate): New function.
8633 * shrink-wrap.h: Declare try_shrink_wrapping_separate.
8634
8635 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8636
8637 * regrename.c (build_def_use): Invalidate chains that have a
8638 REG_CFA_RESTORE on some instruction.
8639
8640 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8641
8642 * dce.c (delete_unmarked_insns): Don't delete instructions with
8643 a REG_CFA_RESTORE note.
8644
8645 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8646
8647 * common.opt (-fshrink-wrap-separate): New flag.
8648 * doc/invoke.texi: Document it.
8649 * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
8650 * doc/tm.texi: Regenerate.
8651 * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
8652 * target.def (shrink_wrap): New hook vector.
8653 (get_separate_components, components_for_bb, disqualify_components,
8654 emit_prologue_components, emit_epilogue_components,
8655 set_handled_components): New hooks.
8656
8657 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8658
8659 * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
8660 vector return by reference only if -Wpsabi.
8661 (rs6000_pass_by_reference): Similarly, for argument passing.
8662
8663 2016-10-12 David Malcolm <dmalcolm@redhat.com>
8664
8665 * function-tests.c: Include "print-rtl.h".
8666 (selftest::test_expansion_to_rtl): Call print_rtx_function on the
8667 function, and verify what is dumped.
8668 * print-rtl-function.c (print_edge): New function.
8669 (begin_any_block): New function.
8670 (end_any_block): New function.
8671 (can_have_basic_block_p): New function.
8672 (print_rtx_function): Track the basic blocks of insns in the
8673 chain, wrapping those that are within blocks within "(block)"
8674 directives. Remove the "(cfg)" directive.
8675
8676 2016-10-12 David Malcolm <dmalcolm@redhat.com>
8677
8678 * selftest.c (selftest::read_file): New function.
8679 (selftest::test_read_file): New function.
8680 (selftest::selftest_c_tests): Call test_read_file.
8681 * selftest.h (selftest::read_file): New decl.
8682
8683 2016-10-12 Richard Biener <rguenther@suse.de>
8684
8685 PR debug/77947
8686 * cgraphunit.c (analyze_functions): Preserve cgraph nodes
8687 function context.
8688
8689 2016-10-12 Thomas Schwinge <thomas@codesourcery.com>
8690
8691 * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
8692
8693 * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
8694 dwarf2out_assembly_start.
8695
8696 * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
8697
8698 * Makefile.in (SELFTEST_FLAGS): New variable.
8699 (s-selftest, selftest-gdb, selftest-valgrind): Use it.
8700
8701 * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
8702 early_finish hook.
8703
8704 2016-10-12 Georg-Johann Lay <avr@gjlay.de>
8705
8706 * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
8707 dumped in RTL dumps.
8708
8709 2016-10-12 Martin Liska <mliska@suse.cz>
8710
8711 * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
8712 (gimple_fold_builtin_memory_op): Use the function.
8713 (gimple_fold_builtin_strchr): Likewise.
8714 (gimple_fold_builtin_strcat): Likewise.
8715 (gimple_build): Likewise.
8716
8717 2016-10-12 Nathan Sidwell <nathan@acm.org>
8718
8719 * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
8720
8721 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
8722
8723 * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
8724 equivalent 32-bit constant (modulo 2**32) when that yields
8725 smaller instructions.
8726 (size_of_int_loc_descriptor): Update accordingly.
8727
8728 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
8729
8730 * dwarf2out.c (dwarf2out_early_global_decl): For nested
8731 functions, call dwarf2out_decl on the parent function first.
8732
8733 2016-10-12 Richard Biener <rguenther@suse.de>
8734
8735 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
8736 on the conversion.
8737
8738 2016-10-12 Richard Biener <rguenther@suse.de>
8739
8740 * tree-ssa-propagate.c
8741 (substitute_and_fold_dom_walker::before_dom_children): Do not
8742 ignore ASSERT_EXPRs but only preserve them.
8743 * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
8744 that have been propagated into.
8745 (vrp_finalize): Enable DCE for substitute_and_fold.
8746
8747 2016-10-12 Richard Biener <rguenther@suse.de>
8748
8749 PR tree-optimization/77920
8750 * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
8751 (simplify_min_or_max_using_ranges): Pass in gsi and use it.
8752 (simplify_abs_using_ranges): Likewise.
8753 (simplify_conversion_using_ranges): Likewise.
8754 (simplify_stmt_using_ranges): Adjust.
8755
8756 2016-10-12 Jakub Jelinek <jakub@redhat.com>
8757
8758 PR tree-optimization/77929
8759 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
8760 (*ops)[ranges[i].idx]->op != ranges[i].exp case.
8761
8762 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
8763
8764 PR target/77934
8765 * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
8766 needs a base register for arg 1.
8767
8768 2016-10-12 Jakub Jelinek <jakub@redhat.com>
8769
8770 * common.opt (Wimplicit-fallthrough) Turn into alias to
8771 -Wimplicit-fallthrough=3. Remove EnabledBy.
8772 (Wimplicit-fallthrough=): New option.
8773 * gimplify.c (warn_implicit_fallthrough_r): Use
8774 OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
8775 * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
8776 to -Wimplicit-fallthrough=3.
8777 (-Wimplicit-fallthrough=): Document.
8778
8779 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
8780
8781 * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
8782 and GEU in DImode if TARGET_SUBXC.
8783 * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
8784 (seqdi<W:mode>_zero_subxc): Delete.
8785 (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
8786 (neg_seqdi<W:mode>_zero_vis3): Delete.
8787 (plus_seqdi<W:mode>_zero): Likewise.
8788 (minus_seqdi<W:mode>_zero): Likewise.
8789 (plus_plus_sltu<W:mode>): Accept only register.
8790 (addx<W:mode>): Likewise.
8791 (plus_sltu<W:mode>_vis3): Likewise.
8792 (plus_plus_sltu<W:mode>_vis3): Likewise.
8793 (neg_sgeu<W:mode>_vis3): Delete.
8794 (minus_sgeu<W:mode>_vis3): Likewise.
8795 (addxc<W:mode>): Accept only registers.
8796 (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
8797 (minus_neg_sltu<W:mode>_subxc): Accept only register.
8798 (neg_plus_sltu<W:mode>_subxc): Likewise.
8799 (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
8800 (minus_minus_sltu<W:mode>_subxc): Accept only register.
8801 (sgeu<W:mode>_insn_subxc): Delete.
8802 (plus_sgeu<W:mode>_subxc): Likewise.
8803 (subxc<W:mode>): Accept only register.
8804 (scc splitter): Split always GEU again.
8805
8806 2016-10-11 Jeff Law <law@redhat.com>
8807
8808 PR tree-optimization/77424
8809 * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
8810 dead conditionals. Assert that all e->aux fields are NULL.
8811
8812 2016-10-11 David Malcolm <dmalcolm@redhat.com>
8813
8814 * print-rtl.c (print_rtx): Rename "i" to "idx". Split out the
8815 operand-printing "switch" statement into...
8816 (print_rtx_operand_code_0): ...this new function, ...
8817 (print_rtx_operand_code_e): ...this new function, ...
8818 (print_rtx_operand_codes_E_and_V): ...this new function, ...
8819 (print_rtx_operand_code_i): ...this new function, ...
8820 (print_rtx_operand_code_r): ...this new function, ...
8821 (print_rtx_operand_code_u): ...this new function, ...
8822 (print_rtx_operand): ...and this new function.
8823
8824 2016-10-11 Uros Bizjak <ubizjak@gmail.com>
8825
8826 * config/alpha/alpha-passes.def: New file.
8827 * config/alpha/t-alpha: New file.
8828 * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
8829 (make_pass_handle_trap_shadows): New prototype.
8830 (make_pass_align_insns): Ditto.
8831 * config/alpha/alpha.c (alpha_option_override): Don't register
8832 passes here.
8833 * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
8834
8835 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
8836
8837 PR target/77924
8838 * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
8839 distinct __ibm128 IBM extended double type if long doubles are
8840 128-bits and the default format for long double is IEEE 128-bit.
8841
8842 2016-10-11 Richard Biener <rguenther@suse.de>
8843
8844 * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
8845 (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
8846 (verify_die): New function.
8847 (dwarf2out_finish): Call it.
8848 (output_line_info): Handle case of -gsplit-dwarf without
8849 DWARF2_ASM_LINE_DEBUG_INFO.
8850
8851 2016-10-11 Richard Biener <rguenther@suse.de>
8852
8853 PR debug/77931
8854 * gimple-low.c (lower_gimple_bind): Handle arbitrary common
8855 sub-chains of BLOCK_VARS and gimple_bind_vars.
8856
8857 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
8858
8859 * config/i386/znver1.md : Fix imov/imovx load type reservations.
8860
8861 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
8862
8863 * config/sparc/sparc.opt (msubxc): New option.
8864 * doc/invoke.texi (SPARC options): Document it and tidy up.
8865 * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
8866 * doc/tm.texi: Regenerate.
8867 * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
8868 (CCNZ): ...this.
8869 (CCX_NOOV): Rename into...
8870 (CCXNZ): ...this.
8871 (CCC): New.
8872 (CCXC): Likewise.
8873 * config/sparc/predicates.m (fcc_register_operand): Simplify.
8874 (fcc0_register_operand): Likewise.
8875 (icc_register_operand): New.
8876 (icc_or_fcc_register_operand): Simplify.
8877 (nz_comparison_operator): New.
8878 (c_comparison_operator): Likewise.
8879 (noov_compare_operator): Rename into...
8880 (icc_comparison_operator): ...this. Use above predicates.
8881 (noov_compare64_operator): Rename into...
8882 (v9_comparison_operator): ...this and tidy up.
8883 (fcc_comparison_operator): New.
8884 (icc_or_fcc_comparison_operator): Likewise.
8885 (v9_register_compare_operator): Rename info...
8886 (v9_register_comparison_operator): ...this.
8887 * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
8888 (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
8889 for Niagara-7.
8890 (sparc_fixed_condition_code_regs): New function.
8891 (select_cc_mode): Remove ATTRIBUTE_UNUSED. Adjust for CCNZ/CCXNZ
8892 renaming and add support for CCC/CCXC.
8893 (output_cbranch): Likewise.
8894 (sparc_print_operand): Likewise.
8895 (gen_v9_scc): Remove obsolete assertion.
8896 (emit_scc_insn): Emit RTL directly for EQ and NE. Add direct support
8897 for EQ in DImode if TARGET_SUBXC. Remove test on TARGET_VIS3 for GEU.
8898 (output_cbcond): Remove bogus handling of CC modes.
8899 (sparc_register_move_cost): Return 100 for NO_REGS.
8900 * config/sparc/sparc.md (W): New mode iterator.
8901 (length): Adjust for noov_compare64_operator renaming.
8902 (cmpsi_sne): New instruction.
8903 (cmpdi_sne): Likewise.
8904 (seqdi_special): Delete.
8905 (seqdi_special): Likewise.
8906 (snesi<P:mode>_special): Likewise.
8907 (snedi_special): Likewise.
8908 (snedi_special_vis3): Likewise.
8909 (snesi patterns): Use W iterator.
8910 (snedi patterns): Likewise. Add TARGET_SUBXC patterns.
8911 (sltu patterns): Likewise.
8912 (sgeu patterns): Likewise.
8913 (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
8914 (normal_branch): Use icc_comparison_operator predicate.
8915 (inverted_branch): Likewise.
8916 (cbcond_sp32): Use comparison_operator predicate.
8917 (cbcond_sp64): Likewise.
8918 (normal_int_branch_sp64): Adjust for renaming
8919 (inverted_int_branch_sp64): Likewise.
8920 (mov<I:mode>_cc_reg_sp64): Likewise.
8921 (movsf_cc_reg_sp6): Likewise.
8922 (movdf_cc_reg_sp64): Likewise.
8923 (movtf_cc_reg_hq_sp64): Likewise.
8924 (movtf_cc_reg_sp64): Likewise.
8925 (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
8926 (movsf_cc_v9): Likewise.
8927 (movdf_cc_v9): Likewise.
8928 (movtf_cc_hq_v9): Likewise.
8929 (movtf_cc_v9): Likewise.
8930 (adddi3): Call gen_adddi3_sp32.
8931 (adddi3_insn_sp32): Rename to...
8932 (adddi3_sp32): ...this. Accept only register_operand as operand #1
8933 and use CCCmode for the carry.
8934 (addx_extend_sp32): Use CCCmode for the carry.
8935 (addx_extend_sp64): Delete.
8936 (adddi3_extend_sp32): Use CCCmode for the carry.
8937 (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
8938 (subdi3): Call gen_subdi3_sp32.
8939 (subdi3_insn_sp32): Rename to...
8940 (subdi3_sp32): ...this and use CCmode for the carry.
8941 (subx_extend_sp32): Use CCCmode for the carry.
8942 (subx_extend_sp64): Delete.
8943 (subdi3_extend_sp32): Use CCmode for the carry.
8944 (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
8945 (negdi3): Call gen_negdi3_sp32.
8946 (negdi3_sp32): Use CCCmode for the carry.
8947 (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
8948 (cmp_nz_ashift_1): Use CCNZ mode.
8949 (cmp_nz_set_ashift_1): Likewise.
8950 (ctrapsi4): Use comparison_operator predicate.
8951 (ctrapdi4): Likewise.
8952 (trapsi_insn): Use icc_comparison_operator predicate.
8953 (trapdi_insn): Likewise.
8954 (edge8 patterns): Use CCNZmode.
8955 (edge16 patterns): Likewise.
8956 (edge32 patterns): Likewise.
8957
8958 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
8959
8960 * config/visium/visium-modes.def (CC_NOOV): Rename into...
8961 (CCNZ): ...this.
8962 (CC_BTST): Rename into...
8963 (CCC): ...this.
8964 * config/visium/predicates.md (real_add_operand): New.
8965 (visium_btst_operator): Rename into...
8966 (visium_equality_comparison_operator): ...this.
8967 (visium_noov_operator): Rename into...
8968 (visium_nz_comparison_operator): ...this.
8969 (visium_c_comparison_operator): New.
8970 (visium_branch_operator): Adjust and deal with all CC modes.
8971 * config/visium/visium.c (visium_adjust_cost): Adjust.
8972 (visium_split_double_add): Use the *_set_carry patterns.
8973 (visium_select_cc_mode): Add support for CCC mode and adjust.
8974 (output_cbranch): Adjust and use the carry-based operators for
8975 floating-point comparisons.
8976 * config/visium/visium.md (flags_subst_arith): Adjust.
8977 (addsi3_insn_set_carry): New instruction.
8978 (subsi3_insn_set_carry): Likewise.
8979 (negsi2_insn_set_carry): Likewise.
8980 (btst): Adjust.
8981 (cmp<mode>_sne): Likewise.
8982 (cbranch<mode>4): Use ordered_comparison_operator.
8983 (cbranch<mode>4_insn): Likewise.
8984 (cbranchsi4_btst_insn): Adjust.
8985
8986 2016-10-11 Tom de Vries <tom@codesourcery.com>
8987
8988 PR middle-end/77558
8989 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
8990 special-casing.
8991
8992 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
8993
8994 * tree.h (build_complex_type): Add second parameter with default.
8995 * tree.c (build_complex_type): Add NAMED second parameter and adjust
8996 recursive call. Create a TYPE_DECL only if NAMED is true.
8997 (build_common_tree_nodes): Pass true in calls to build_complex_type.
8998
8999 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
9000
9001 New avr-passes.def to register AVR specific passes.
9002
9003 * config/avr/avr-passes.def: New file.
9004 * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
9005 * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
9006 (make_avr_pass_recompute_note): New proto.
9007 * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
9008 (avr_pass_recompute_notes): Use anonymous namespace.
9009 (avr_register_passes): Remove function...
9010 (avr_option_override): ...and its call.
9011
9012 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
9013
9014 * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
9015 PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
9016 PTF_AVOID_BRANCHLIKELY_SPEED for others.
9017 (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
9018 flags.
9019 * config/mips/mips.c (mips_option_override): Enable the branch
9020 likely depending on the tune flags and optimization level.
9021 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
9022 (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
9023 (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
9024 (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
9025
9026 2016-10-11 Richard Biener <rguenther@suse.de>
9027
9028 * lto-streamer-out.c (collect_block_tree_leafs): New helper.
9029 (output_function): Properly stream the whole block tree.
9030 * lto-streamer-in.c (input_function): Likewise.
9031
9032 2016-10-11 Marek Polacek <polacek@redhat.com>
9033
9034 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
9035
9036 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
9037
9038 * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
9039 (evrp_dom_walker::before_dom_children): Infer and push new value
9040 ranges for x in y < x.
9041
9042 2016-10-10 Joseph Myers <joseph@codesourcery.com>
9043
9044 PR target/77586
9045 * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
9046 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
9047 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
9048 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
9049 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
9050 (IA64_NO_LIBGCC_TFMODE): Likewise.
9051
9052 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
9053
9054 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
9055 copying.
9056
9057 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
9058
9059 * config.gcc: Add aarch64-*-freebsd* support.
9060 * config.host: Likewise.
9061 * config/aarch64/aarch64-freebsd.h: New file.
9062 * config/aarch64/t-aarch64-freebsd: Ditto.
9063
9064 2016-10-10 Jeff Law <law@redhat.com>
9065
9066 PR tree-optimization/71947
9067 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
9068 B with A within a single statement.
9069
9070 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9071
9072 PR tree-optimization/77824
9073 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
9074 zero cost for copies.
9075 (find_candidates_dom_walker::before_dom_children): Replace
9076 MODIFY_EXPR with SSA_NAME.
9077 (replace_mult_candidate): Likewise.
9078 (replace_profitable_candidates): Likewise.
9079
9080 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9081
9082 * config/s390/s390.h: Wrap more macros args in brackets and fix
9083
9084 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
9085
9086 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
9087
9088 2016-10-10 Andreas Schwab <schwab@suse.de>
9089
9090 PR target/77738
9091 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
9092 pseudo is not DImode.
9093
9094 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
9095
9096 * common/config/arc/arc-common.c (arc_option_optimization_table):
9097 Remove compact casesi option.
9098 * config/arc/arc.c (arc_override_options): Use compact casesi
9099 option only for pre-ARCv2 cores.
9100 * doc/invoke.texi (mcompact-casesi): Update text.
9101
9102 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
9103
9104 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
9105 Add macro to say we can efficiently handle overlapping unaligned
9106 loads.
9107 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
9108 poor code for processors older than p8.
9109
9110 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
9111
9112 * gen-pass-instances.awk: Remove GNUism.
9113
9114 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9115
9116 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
9117 NULL of (*ipcp_transformations)][node->uid].
9118
9119 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
9120
9121 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
9122 (MALLOC_ABI_ALIGNMENT): Define.
9123
9124 2016-10-09 Jakub Jelinek <jakub@redhat.com>
9125
9126 * tree-ssa.c (target_for_debug_bind, verify_phi_args,
9127 ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
9128 VAR_OR_FUNCTION_DECL_P macros.
9129 * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
9130 chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
9131 chkp_find_bounds_1): Likewise.
9132 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
9133 * hsa-gen.c (get_symbol_for_decl): Likewise.
9134 * cgraphunit.c (check_global_declaration, analyze_functions,
9135 handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
9136 Likewise.
9137 * gimple-fold.c (can_refer_decl_in_current_unit_p,
9138 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
9139 Likewise.
9140 * tree.c (set_decl_section_name, copy_node_stat,
9141 need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
9142 merge_dllimport_decl_attributes, handle_dll_attribute,
9143 decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
9144 verify_type): Likewise.
9145 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
9146 find_explicit_erroneous_behavior): Likewise.
9147 * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
9148 * ipa.c (process_references): Likewise.
9149 * tree-chkp-opt.c (chkp_get_check_result): Likewise.
9150 * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
9151 notice_global_symbol, assemble_variable, mark_decl_referenced,
9152 build_constant_desc, output_constant_def_contents, do_assemble_alias,
9153 make_decl_one_only, default_section_type_flags,
9154 categorize_decl_for_section, default_encode_section_info): Likewise.
9155 * trans-mem.c (requires_barrier): Likewise.
9156 * gimple-expr.c (mark_addressable): Likewise.
9157 * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
9158 expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
9159 expand_debug_expr): Likewise.
9160 * tree-dump.c (dequeue_and_dump): Likewise.
9161 * ubsan.c (instrument_bool_enum_load): Likewise.
9162 * tree-pretty-print.c (print_declaration): Likewise.
9163 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
9164 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
9165 * asan.c (asan_protect_global, instrument_derefs): Likewise.
9166 * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
9167 pass_build_ssa::execute): Likewise.
9168 * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
9169 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
9170 Likewise.
9171 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
9172 Likewise.
9173 * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
9174 can_be_nonlocal, remap_decls, copy_debug_stmt,
9175 initialize_inlined_parameters, add_local_variables,
9176 reset_debug_binding, replace_locals_op): Likewise.
9177 * dse.c (can_escape): Likewise.
9178 * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
9179 Likewise.
9180 * tree-diagnostic.c (default_tree_printer): Likewise.
9181 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
9182 unpack_ts_decl_with_vis_value_fields,
9183 lto_input_ts_decl_common_tree_pointers): Likewise.
9184 * builtins.c (builtin_save_expr, fold_builtin_expect,
9185 readonly_data_expr): Likewise.
9186 * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
9187 create_variable_info_for, set_uids_in_ptset, visit_loadstore):
9188 Likewise.
9189 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
9190 * gimplify.c (force_constant_size, gimplify_bind_expr,
9191 gimplify_decl_expr, gimplify_var_or_parm_decl,
9192 gimplify_compound_lval, gimplify_init_constructor,
9193 gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
9194 gimplify_type_sizes): Likewise.
9195 * cgraphbuild.c (record_reference, record_type_list, mark_address,
9196 mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
9197 * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
9198 remove_unused_locals): Likewise.
9199 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
9200 ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
9201 * function.c (instantiate_expr, instantiate_decls_1,
9202 setjmp_vars_warning, add_local_decl): Likewise.
9203 * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
9204 Likewise.
9205 * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
9206 va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
9207 optimize_va_list_gpr_fpr_size): Likewise.
9208 * tree-nrv.c (pass_nrv::execute): Likewise.
9209 * tsan.c (instrument_expr): Likewise.
9210 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
9211 * vtable-verify.c (verify_bb_vtables): Likewise.
9212 * tree-dfa.c (ssa_default_def, set_ssa_default_def,
9213 get_ref_base_and_extent): Likewise.
9214 * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
9215 Likewise.
9216 * tree-sra.c (static bool constant_decl_p, find_var_candidates,
9217 analyze_all_variable_accesses): Likewise.
9218 * tree-nested.c (get_nonlocal_debug_decl,
9219 convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
9220 note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
9221 get_local_debug_decl, convert_local_omp_clauses,
9222 convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
9223 Likewise.
9224 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
9225 * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
9226 * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
9227 dbxout_symbol, dbxout_common_check): Likewise.
9228 * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
9229 string_constant): Likewise.
9230 * hsa.c (hsa_get_declaration_name): Likewise.
9231 * passes.c (rest_of_decl_compilation): Likewise.
9232 * tree-ssanames.c (make_ssa_name_fn): Likewise.
9233 * tree-streamer-out.c (pack_ts_decl_common_value_fields,
9234 pack_ts_decl_with_vis_value_fields,
9235 write_ts_decl_common_tree_pointers): Likewise.
9236 * stor-layout.c (place_field): Likewise.
9237 * symtab.c (symtab_node::maybe_create_reference,
9238 symtab_node::verify_base, symtab_node::make_decl_local,
9239 symtab_node::copy_visibility_from,
9240 symtab_node::can_increase_alignment_p): Likewise.
9241 * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
9242 decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
9243 fortran_common, add_location_or_const_value_attribute,
9244 add_scalar_info, add_linkage_name, set_block_abstract_flags,
9245 local_function_static, gen_variable_die, dwarf2out_late_global_decl,
9246 optimize_one_addr_into_implicit_ptr,
9247 optimize_location_into_implicit_ptr): Likewise.
9248 * gimple-low.c (record_vars_into): Likewise.
9249 * ipa-visibility.c (update_vtable_references): Likewise.
9250 * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
9251 Likewise.
9252 * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
9253 DFS::DFS_write_tree_body, write_symbol): Likewise.
9254 * langhooks.c (lhd_warn_unused_global_decl,
9255 lhd_set_decl_assembler_name): Likewise.
9256 * attribs.c (decl_attributes): Likewise.
9257 * except.c (output_ttype): Likewise.
9258 * varpool.c (varpool_node::get_create, ctor_for_folding,
9259 varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
9260 * fold-const.c (fold_unary_loc): Likewise.
9261 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
9262 ipa_find_agg_cst_from_init): Likewise.
9263 * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
9264 expand_omp_target, lower_omp_regimplify_p,
9265 grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
9266 find_link_var_op): Likewise.
9267 * tree-chrec.c (chrec_contains_symbols): Likewise.
9268 * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
9269 gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
9270 execute_fixup_cfg): Likewise.
9271
9272 PR tree-optimization/77901
9273 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
9274 if ranges[i].exp is SSA_NAME when looking for >= and only when
9275 ranges[i].exp is NULL or SSA_NAME when looking for the other
9276 comparison.
9277
9278 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9279
9280 * ipa-cp.c (ipcp_alignment_lattice): Remove.
9281 (ipcp_param_lattices): Remove field alignment.
9282 (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
9283 (set_all_contains_variable): Remove call to
9284 ipcp_alignment_lattice::set_to_bottom.
9285 (initialize_node_lattices): Likewise.
9286 (propagate_alignment_accross_jump_function): Remove.
9287 (propagate_constants_accross_call): Remove call to
9288 propagate_alignment_accross_jump_function.
9289 (ipcp_store_alignment_results): Remove.
9290 (ipcp_driver): Remove call to ipcp_store_alignment_results.
9291 (propagate_bits_accross_jump_function): Handle ancestor jump function.
9292 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
9293 pretty-printing of alignment jump function.
9294 (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
9295 (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
9296 alignments and remove computing ipa_alignment jump function.
9297 (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
9298 (ipa_write_jump_functions): Remove streaming for ipa_alignment.
9299 (ipa_read_jump_function): Remove reading of ipa_alignment.
9300 (write_ipcp_transformation_info): Remove streaming for alignment
9301 propagation summary.
9302 (read_ipcp_transformation_info): Remove reading of alignment
9303 propagation summary.
9304 (ipcp_update_alignments): Remove.
9305 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
9306 type.
9307 (ipcp_transform_function): Remove call to ipcp_update_alignments()
9308 and remove assignment to (*ipcp_transformations)[node->uid].alignments.
9309 * ipa-prop.h (ipa_alignment): Remove.
9310 (ipa_jump_func): Remove field alignment.
9311 (ipcp_transformation_summary): Remove field alignments.
9312 * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
9313 * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
9314 (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
9315
9316 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
9317
9318 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
9319
9320 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
9321 change.
9322 (visium_expand_fp_cstore): Likewise.
9323
9324 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9325
9326 * diagnostic-core.h (warning_at_rich_loc_n): Declare.
9327 * diagnostic.c (warning_at_rich_loc_n): New function.
9328 (diagnostic_n_impl_richloc): Likewise.
9329 (diagnostic_n_impl): Move most of the function to
9330 diagnostic_n_impl_richloc and call it.
9331
9332 2016-10-08 Jakub Jelinek <jakub@redhat.com>
9333
9334 * gen-pass-instances.awk: Rewritten.
9335 * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
9336 $(PASSES_EXTRA) after passes.def to the script.
9337 * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
9338 * config/i386/i386-passes.def: New file.
9339 * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
9340 make_pass_stv): Declare.
9341 * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
9342 false.
9343 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
9344 or !TARGET_64BIT.
9345 (pass_stv::clone, pass_stv::set_pass_param): New methods.
9346 (pass_stv::timode_p): New non-static data member.
9347 (ix86_option_override): Don't register passes here.
9348
9349 * doc/invoke.texi: Document accepting Else, fallthrough.
9350
9351 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
9352 style changes.
9353
9354 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
9355 FALLTHRU comment styles.
9356
9357 2016-10-07 Andrew Pinski <apinski@cavium.com>
9358
9359 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
9360 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
9361 * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
9362 Likewise.
9363 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
9364 Likewise.
9365 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
9366 Likewise.
9367 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
9368 (AARCH64_ARCH): Likewise.
9369 * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
9370 Likewise.
9371 (AARCH64_CORE): Likewise.
9372 (AARCH64_ARCH): Likewise.
9373 * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
9374 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
9375 * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
9376 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
9377 (AARCH64_ARCH): Likewise.
9378 (AARCH64_CORE): Likewise.
9379 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
9380 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
9381 (AARCH64_CORE): Likewise.
9382 (AARCH64_ARCH): Likewise.
9383
9384 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
9385
9386 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
9387 -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
9388 floating point type infrastructre, and -mfloat128 that enables the
9389 keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
9390 if -mfloat128-type. Define __ibm128 to be long double by default.
9391 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
9392 the IEEE 128-bit floating point type infrastructure should
9393 automatically be enabled.
9394 (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
9395 instead of -mfloat128 to enable KFmode.
9396 (rs6000_option_override_internal): Split the option -mfloat128
9397 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit
9398 systems, automatically set -mfloat128-type, but don't enable it on
9399 other operating systems. Move setting the long double size and
9400 IEEE quad support before the IEEE 128-bit floating point changes.
9401 (rs6000_init_builtins): Do not create a unique type for __ibm128
9402 if long double is IBM extended double, instead rely on __ibm128
9403 being defined as 'long double'. If -mfloat128-type and not
9404 -mfloat128, create the KFmode type with an undocumented __ieee128
9405 keyword.
9406 (rs6000_init_libfuncs): Use -mfloat128-type instead of
9407 -mfloat128 for tests about the types, but keep tests for
9408 -mfloat128 to enable the keyword support.
9409 (rs6000_complex_function_value): Likewise.
9410 (rs6000_scalar_mode_supported_p): Likewise.
9411 (rs6000_floatn_mode): Likewise.
9412 (rs6000_c_mode_for_suffix): Likewise.
9413 (rs6000_opt_masks): Add -mfloat128-type.
9414 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
9415 -mfloat128-type being split from -mfloat128. Add
9416 -mfloat128-hardware, which was missing.
9417 * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
9418 -mfloat128 and -mfloat128-type:
9419 (-mfloat128-type): Likewise.
9420 * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
9421 that 64-bit Linux systems with enable -mfloat128-type by default
9422 on VSX systems.
9423 * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
9424 (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
9425 -mfloat128-type instead of -mfloat128.
9426 (FLOAT128_2REG_P): Likewise.
9427 (MASK_FLOAT128_TYPE): Likewise.
9428 (ALTIVEC_ARG_MAX_RETURN): Likewise.
9429 (RS6000_BTM_FLOAT128): Likewise.
9430 (TARGET_FLOAT128): Poison old identifiers.
9431 (OPTION_MASK_FLOAT128): Likewise.
9432 (MASK_FLOAT128): Likewise.
9433 * config/rs6000/rs6000.md (FP): Likewise.
9434 (FLOAT128): Likewise.
9435 (fix_trunc<mode>di2): Likewise.
9436 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
9437 (floatdi<mode>2): Likewise.
9438 (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
9439 (neg<mode>2, FLOAT128 iterator): Likewise.
9440 (abs<mode>2, FLOAT128 iterator): Likewise.
9441 (ieee_128bit_negative_zero): Likewise.
9442 (ieee_128bit_vsx_neg<mode>2): Likewise.
9443 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
9444 (ieee_128bit_vsx_abs<mode>2): Likewise.
9445 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
9446 (ieee_128bit_vsx_nabs<mode>2): Likewise.
9447 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
9448 (extendiftf2): Likewise.
9449 (extendifkf2): Likewise.
9450 (extendtfkf2): Likewise.
9451 (trunciftf2): Likewise.
9452 (truncifkf2): Likewise.
9453 (trunckftf2): Likewise.
9454 (trunctfif2): Likewise.
9455 (extendkftf2): Likewise.
9456 (trunctfkf2): Likewise.
9457
9458 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9459
9460 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
9461 before merging in bytes to pass down to real_from_target.
9462
9463 2016-10-07 Richard Biener <rguenther@suse.de>
9464
9465 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
9466 required hack.
9467 (substitute_and_fold_dom_walker::before_dom_children):
9468 Substitute and fold before pass specific folding to avoid
9469 feeding that with SSA names that will be later released.
9470 * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
9471 introduced by folding and visited by evaluate_stmt called during
9472 ccp_fold_stmt.
9473 (likely_value): Likewise.
9474 (evaluate_stmt): Likewise.
9475 * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
9476 (simplify_div_or_mod_using_ranges): Likewise.
9477 (simplify_min_or_max_using_ranges): Likewise.
9478 (simplify_abs_using_ranges): Likewise.
9479 (simplify_conversion_using_ranges): Likewise.
9480 (simplify_float_conversion_using_ranges): Likewise.
9481 (simplify_stmt_using_ranges): Likewise.
9482
9483 2016-10-07 Marek Polacek <polacek@redhat.com>
9484
9485 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
9486 FALLTHROUGH_LABEL_P here...
9487 (warn_implicit_fallthrough_r): ...not here.
9488
9489 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
9490
9491 PR tree-optimization/77880
9492 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
9493 necessary.
9494
9495 2016-10-07 Marek Polacek <polacek@redhat.com>
9496
9497 PR c++/77803
9498 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
9499
9500 2016-10-07 Richard Biener <rguenther@suse.de>
9501
9502 * bitmap.h: Document constraints on bitmap modification while
9503 iterating over it.
9504
9505 2016-10-07 Richard Biener <rguenther@suse.de>
9506
9507 * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
9508 * bitmap.h (bmp_iter_set): When advancing to the next element
9509 check that we didn't remove the current one.
9510 (bmp_iter_and): Likewise.
9511 (bmp_iter_and_compl): Likewise.
9512 * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
9513 we currently iterate on but keep a one-level queue.
9514 * sched-deps.c (remove_from_deps): Do not clear current bit
9515 but keep a one-level queue.
9516
9517 2016-10-07 Jakub Jelinek <jakub@redhat.com>
9518
9519 PR tree-optimization/77664
9520 * tree-ssa-reassoc.c (update_range_test): Also clear low and high
9521 for the other ranges.
9522 (optimize_range_tests_diff): Fix up formatting.
9523 (optimize_range_tests_var_bound): New function.
9524 (optimize_range_tests): Use it.
9525
9526 2016-10-07 Martin Liska <mliska@suse.cz>
9527
9528 * coverage.c (build_gcov_exit_decl): Fix priority what
9529 should be really 99.
9530
9531 2016-10-07 Richard Biener <rguenther@suse.de>
9532
9533 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
9534 vars in gimple_bind_vars but not in BLOCK_VARS.
9535
9536 2016-10-07 Richard Biener <rguenther@suse.de>
9537
9538 PR tree-optimization/77879
9539 * tree-ssa-structalias.c (handle_const_call): Properly handle
9540 NRV return slots.
9541 (handle_pure_call): Likewise.
9542
9543 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
9544
9545 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
9546 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
9547 possible overflow.
9548
9549 2016-10-06 Andrew Pinski <apinski@cavium.com>
9550
9551 * config/aarch64/aarch64-cores.def: Add a comment before each
9552 set of cores.
9553
9554 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
9555
9556 PR tree-optimization/77862
9557 * tree-vrp.c (add_equivalence): Use get_value_range so that
9558 num_vr_values is checked before accessing vr_values.
9559
9560 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
9561
9562 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
9563 POINTER_TYPE_P.
9564
9565 2016-10-05 Jeff Law <law@redhat.com>
9566
9567 PR tree-optimization/71661
9568 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
9569 removal of a forwarder exposes a new natural loop.
9570
9571 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
9572
9573 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
9574 Introduce ssesuffix variable.
9575 (<mask_codefor><code><mode>3<mask_name>): Ditto.
9576 (*<code><mode>3): Ditto.
9577
9578 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
9579
9580 * postreload.c (reload_cse_simplify): Skip also USE when detecting
9581 noop move.
9582
9583 2016-10-06 Richard Biener <rguenther@suse.de>
9584
9585 PR tree-optimization/77855
9586 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
9587 instead of removing the current item while iterating over the set
9588 which is not safe.
9589
9590 2016-10-06 James Clarke <jrtc27@jrtc27.com>
9591 Eric Botcazou <ebotcazou@adacore.com>
9592
9593 PR target/77759
9594 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
9595 (classify_registers): Don't set it
9596 (function_arg_slotno): Don't initialize and test it. Tidy up.
9597
9598 2016-10-06 Richard Biener <rguenther@suse.de>
9599
9600 PR tree-optimization/77839
9601 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
9602 lattice transition.
9603
9604 2016-10-06 Martin Liska <mliska@suse.cz>
9605
9606 * gcc.c: Set -fprofile-update=atomic when profiling is
9607 enabled and -pthread is set. Warn when one combines
9608 -pthread and -fprofile-update=single for an app using
9609 profiling code.
9610
9611 2016-10-06 Martin Liska <mliska@suse.cz>
9612
9613 PR bootstrap/77788
9614 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
9615 * gimple-ssa-strength-reduction.c (slsr_process_cast):
9616 Initialize a pointer to NULL.
9617 (slsr_process_copy): Likewise.
9618 * input.c (location_get_source_line): Likewise.
9619 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
9620
9621 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
9622
9623 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
9624 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
9625 (ix86_handle_option): Deleted handle of OPT_mpcommit.
9626 * config.gcc: Deleted pcommitintrin.h
9627 * config/i386/pcommitintrin.h: Deleted file.
9628 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
9629 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
9630 detection.
9631 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
9632 __PCOMMIT__.
9633 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
9634 (PTA_PCOMMIT): Deleted define.
9635 (ix86_option_override_internal): Deleted handle of option.
9636 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
9637 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
9638 __builtin_ia32_pcommit): Deleted.
9639 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
9640 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
9641 (pcommit): Deleted instruction.
9642 * config/i386/i386.opt: Mention -mpcommit deprecation.
9643 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
9644
9645 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
9646
9647 PR target/77874
9648 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
9649 Remove wrong assert.
9650 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
9651 Use <round_constraint> as operand 1 constraint.
9652
9653 2016-10-05 Jakub Jelinek <jakub@redhat.com>
9654
9655 PR sanitizer/66343
9656 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
9657 (ubsan_instrument_float_cast): And not here.
9658
9659 PR sanitizer/66343
9660 * ubsan.c (ubsan_ids): New GTY(()) array.
9661 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
9662 instead of static local counters.
9663
9664 2016-10-05 Martin Sebor <msebor@redhat.com>
9665
9666 PR bootstrap/77819
9667 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
9668 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
9669 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
9670 (default_printf_pointer_format): Define function.
9671 * targhooks.c (linux_printf_pointer_format): Define new function.
9672 * targhooks.h (linux_printf_pointer_format): Declare.
9673 (gnu_libc_printf_pointer_format): Remove declaration.
9674
9675 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9676
9677 * fold-const.c (native_encode_real): Fix logic for selecting offset
9678 to write to when BYTES_BIG_ENDIAN.
9679
9680 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
9681
9682 * builtins.c (fold_builtin_strchr): Remove function.
9683 (fold_builtin_strrchr): Likewise.
9684 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
9685 * gimple-fold.c (target_char_cst_p): New function.
9686 (gimple_fold_builtin_strchr) Add more foldings.
9687 (gimple_fold_builtin): Add index, strrchr, rindex cases.
9688
9689 2016-10-05 Richard Biener <rguenther@suse.de>
9690
9691 PR middle-end/77863
9692 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
9693 capture ids in c-exprs.
9694
9695 2016-10-05 Richard Biener <rguenther@suse.de>
9696
9697 PR middle-end/77826
9698 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
9699 with types_match for GIMPLE code gen to handle type mismatched
9700 constants properly.
9701 (dt_operand::gen): Adjust.
9702 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
9703 and constant A.
9704
9705 2016-10-05 Richard Biener <rguenther@suse.de>
9706
9707 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
9708
9709 2016-10-05 Richard Biener <rguenther@suse.de>
9710
9711 PR middle-end/77842
9712 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
9713
9714 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
9715
9716 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
9717 version check to protect only DW_TAG_imported_module generation.
9718
9719 2016-10-05 Richard Biener <rguenther@suse.de>
9720
9721 PR middle-end/55152
9722 * match.pd (min(a,-a) -> -abs(a)): New pattern.
9723
9724 2016-10-04 Ian Lance Taylor <iant@golang.org>
9725
9726 * explow.c (allocate_dynamic_stack_space): Call
9727 do_pending_stack_adjust before handling flag_split_stack.
9728
9729 2016-10-04 David Malcolm <dmalcolm@redhat.com>
9730
9731 * genattrtab.c (make_internal_attr): Supply dummy column number to
9732 file_location ctor.
9733 (main): Likewise.
9734 * genoutput.c (init_insn_for_nothing): Likewise.
9735 * gensupport.c (add_define_attr): Likewise.
9736 * read-md.c (message_at_1): Print column number.
9737 (fatal_with_file_and_line): Likewise.
9738 (rtx_reader::read_char): Track column numbers.
9739 (rtx_reader::unread_char): Likewise.
9740 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
9741 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
9742 (rtx_reader::handle_file): Initialize m_read_md_colno.
9743 (rtx_reader::get_current_location): Supply column number to
9744 file_location ctor.
9745 * read-md.h (struct file_location): Add field "colno".
9746 (file_location::file_location): Likewise.
9747 (rtx_reader::get_colno): New accessor.
9748 (rtx_reader::m_read_md_colno): New field.
9749 (rtx_reader::m_last_line_colno): New field.
9750
9751 2016-10-04 Jakub Jelinek <jakub@redhat.com>
9752
9753 * doc/extend.texi (Java Exceptions): Remove.
9754 (java_interface): Remove.
9755
9756 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
9757
9758 PR tree-optimization/77808
9759 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
9760 and addr are different before copying points-to information.
9761
9762 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
9763
9764 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
9765 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
9766 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
9767 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
9768
9769 2016-10-04 Richard Biener <rguenther@suse.de>
9770
9771 PR tree-optimization/77399
9772 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
9773 verify the target can convert.
9774
9775 2016-10-04 Richard Biener <rguenther@suse.de>
9776
9777 PR middle-end/77833
9778 * explow.c (plus_constant): Verify the mode of the constant
9779 pool offset before calling plus_constant.
9780
9781 2016-10-04 Richard Biener <rguenther@suse.de>
9782
9783 PR middle-end/77407
9784 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
9785 type support, mark with :C.
9786 (X / -X -> -1): Mark with :C.
9787
9788 2016-10-04 Jakub Jelinek <jakub@redhat.com>
9789
9790 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
9791 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
9792 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
9793 * doc/tm.texi: Regenerated.
9794 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
9795 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
9796 * config/darwin.h (JCR_SECTION_NAME): Remove.
9797 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
9798 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
9799 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
9800 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
9801 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
9802 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
9803
9804 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9805
9806 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
9807 between "because" and "param" in dump message in call to fprintf.
9808
9809 2016-10-03 Jeff Law <law@redhat.com>
9810
9811 PR tree-optimization/71550
9812 PR tree-optimization/71403
9813 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
9814 (profitable_jump_thread_path): Also return boolean indicating if
9815 the realized path will create an irreducible loop.
9816 Remove loop depth tests from 71403.
9817 (fsm_find_control_statement_thread_paths): Remove loop depth tests
9818 from 71403. If threading will create an irreducible loop, then
9819 throw away loop iteration and related information.
9820
9821 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
9822
9823 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
9824 -Woverloaded-virtual checks for warning options.
9825 * configure: Regenerate.
9826
9827 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
9828
9829 PR preprocessor/77699
9830 * input.c (maybe_grow): Don't allocate one byte extra headroom.
9831 (get_next_line): Return false on error.
9832 (read_next_line): Removed, use get_next_line instead.
9833 (read_line_num): Don't copy the line.
9834 (location_get_source_line): Don't use static data.
9835 (selftest::test_reading_source_line): Add more test cases.
9836
9837 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9838
9839 Revert
9840 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9841
9842 * ifcvt.c (noce_try_avoid_const_materialization): New function.
9843 (noce_process_if_block): Use it.
9844
9845 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
9846
9847 * doc/invoke.texi: Update -Wint-in-bool-context.
9848
9849 2016-10-02 Jakub Jelinek <jakub@redhat.com>
9850
9851 * dwarf2out.c (output_fde, output_call_frame_info,
9852 dwarf2out_do_cfi_startproc, set_indirect_string,
9853 gen_internal_sym, output_die, output_line_info): Use
9854 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
9855 ASM_GENERATE_INTERNAL_LABEL output.
9856
9857 2016-10-01 Richard Biener <rguenther@suse.de>
9858
9859 PR middle-end/77798
9860 * genmatch.c (get_operand_type): Add operand position arg
9861 and handle COND_EXPR comparison operand with fixed boolean_type_node.
9862 (expr::gen_transform): Adjust.
9863 (dt_simplify::gen_1): Likewise.
9864
9865 2016-10-01 Jakub Jelinek <jakub@redhat.com>
9866
9867 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
9868 comments. Simplify asserts, remove unnecessary conditions.
9869 Formatting fixes.
9870 (*<code><mode>3): Likewise.
9871
9872 2016-09-30 Jakub Jelinek <jakub@redhat.com>
9873
9874 * doc/invoke.texi (-Wregister): Document.
9875
9876 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
9877
9878 * configure.ac: Split CHECKING_P into CHECKING_P and
9879 ENABLE_EXTRA_CHECKING.
9880 * configure: Regenerated.
9881 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
9882 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
9883
9884 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
9885
9886 PR other/31566
9887 * gcc.c (process_command): For @filename handling, output
9888 the correct name if the file does not exist.
9889
9890 2016-09-30 Marek Polacek <polacek@redhat.com>
9891
9892 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
9893 * config/alpha/predicates.md: Likewise.
9894
9895 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9896
9897 * ifcvt.c (noce_try_avoid_const_materialization): New function.
9898 (noce_process_if_block): Use it.
9899
9900 2016-09-30 Martin Liska <mliska@suse.cz>
9901
9902 * doc/invoke.texi: Document asan-use-after-return that
9903 it's disabled by default in runtime.
9904
9905 2016-09-30 Richard Biener <rguenther@suse.de>
9906
9907 * tree-vrp.c (intersect_ranges): If we failed to handle
9908 the intersection choose a constant singleton range if available.
9909
9910 2016-09-30 Richard Biener <rguenther@suse.de>
9911
9912 PR tree-optimization/77399
9913 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
9914 float <-> int conversions.
9915
9916 2016-09-30 Alan Modra <amodra@gmail.com>
9917
9918 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
9919
9920 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
9921
9922 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
9923 ext_level before calling CPUID with 0x80000008.
9924 Simplify xgetbv checks.
9925
9926 2016-09-29 David Malcolm <dmalcolm@redhat.com>
9927
9928 * Makefile.in (OBJS): Add print-rtl-function.o.
9929 * print-rtl-function.c: New file.
9930 * print-rtl.h (print_rtx_function): New decl.
9931
9932 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
9933
9934 PR target/77756
9935 * config/i386/cpuid.h (__get_cpuid_count): New.
9936 (__get_cpuid): Rename __level to __leaf.
9937
9938 2016-09-29 Marek Polacek <polacek@redhat.com>
9939
9940 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
9941
9942 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
9943
9944 PR target/77718
9945 * builtins.c (expand_builtin_memcmp): Don't swap args unless
9946 result is only being compared with zero.
9947
9948 2016-09-29 Marek Polacek <polacek@redhat.com>
9949
9950 * dwarf2out.c (loc_descriptor): Add fall through comment.
9951 (add_const_value_attribute): Likewise.
9952
9953 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
9954
9955 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
9956 with "v6t2". Move "arch" attribute above "pool_range".
9957 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
9958 with "v6t2".
9959 (*thumb2_movhi_vfp): Likewise.
9960 (*arm_movhi_fp16): Likewise.
9961 (*thumb2_movhi_fp16): Likewise.
9962 (*arm_movsi_vfp): Remove "arch" attribute.
9963 (*thumb2_movsi_vfp): Likewise.
9964
9965 2016-09-29 Martin Liska <mliska@suse.cz>
9966
9967 * doc/extend.texi: Remove limitation of Objective C for
9968 __attribute__((constructor)) and __attribute__((destructor)).
9969
9970 2016-09-29 Richard Biener <rguenther@suse.de>
9971
9972 PR tree-optimization/77768
9973 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9974 Handle stores to readonly memory when removing redundant stores.
9975
9976 2016-09-29 Richard Biener <rguenther@suse.de>
9977
9978 PR middle-end/77407
9979 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
9980 X / -X -> -1 simplifications.
9981
9982 2016-09-29 Richard Biener <rguenther@suse.de>
9983
9984 PR middle-end/55152
9985 * match.pd: Add max(a,-a) -> abs(a) pattern.
9986 * tree-ssa-phiopt.c (minmax_replacement): Disable for
9987 HONOR_SIGNED_ZEROS types.
9988
9989 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
9990
9991 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
9992 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
9993
9994 2016-09-29 Richard Biener <rguenther@suse.de>
9995
9996 * tree-vrp.c (set_defs_to_varying): New helper avoiding
9997 writing to vr_const_varying.
9998 (vrp_initialize): Call it.
9999 (vrp_visit_stmt): Likewise.
10000 (evrp_dom_walker::before_dom_children): Likewise.
10001
10002 2016-09-29 Richard Biener <rguenther@suse.de>
10003
10004 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
10005 constructors with vector elements.
10006
10007 2016-09-29 Richard Biener <rguenther@suse.de>
10008
10009 PR tree-optimization/77768
10010 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
10011 with stores to a place we know has a constant value.
10012
10013 2016-09-29 Alan Modra <amodra@gmail.com>
10014
10015 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
10016 * doc/invoke.texi: Document it.
10017 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
10018 (rs6000_passes_float): Comment.
10019 (rs6000_passes_long_double): New static var.
10020 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
10021 (init_cumulative_args): Set up to emit fp .gnu_attribute for
10022 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
10023 to include fp values returned in vectors.
10024 Set rs6000_passes_long_double.
10025 (rs6000_function_arg_advance_1): Likewise for function args.
10026 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
10027 and SPE. Emit long double tag value too.
10028 (rs6000_opt_vars): Add gnu-attr.
10029 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
10030 * configure: Regenerate.
10031 * config.in: Regenerate.
10032
10033 2016-09-28 Jakub Jelinek <jakub@redhat.com>
10034
10035 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
10036 of 0 < x.
10037 (format_floating, format_string, format_directive,
10038 get_destination_size, pass_sprintf_length::handle_gimple_call):
10039 Likewise.
10040
10041 2016-09-28 Jakub Jelinek <jakub@redhat.com>
10042
10043 * gimple-ssa-sprintf.c: Fix comment formatting.
10044 (format_integer): Use is_gimple_assign.
10045 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
10046 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
10047 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
10048 (pass_sprintf_length::execute): Use is_gimple_call.
10049
10050 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
10051
10052 * gimple-fold.c (gimple_fold_builtin): After failing to fold
10053 strchr, also try the generic folding.
10054
10055 2016-09-28 Martin Sebor <msebor@redhat.com>
10056
10057 PR c/77762
10058 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
10059 Fix typos.
10060
10061 2016-09-28 Martin Sebor <msebor@redhat.com>
10062
10063 PR middle-end/77683
10064 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
10065 length modifier is not expected.
10066 (format_floating): Ignore l length modifier and fail gracefuly
10067 when it isn't one of the other expected ones.
10068
10069 2016-09-28 Martin Sebor <msebor@redhat.com>
10070
10071 PR bootstrap/77753
10072 * varasm.c (assemble_addr_to_section): Increase local buffer size.
10073
10074 2016-09-27 Richard Biener <rguenther@suse.de>
10075
10076 * dwarf2out.c (cu_die_list): New global.
10077 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
10078 main_comp_unit_die to cu_die_list if we created it.
10079 Move break_out_includes ...
10080 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
10081 the cu_die_list.
10082
10083 2016-09-28 Richard Biener <rguenther@suse.de>
10084
10085 * dwarf2out.c (struct die_struct): Add removed flag.
10086 (lookup_type_die): If the DIE is marked as removed, clear
10087 TYPE_SYMTAB_DIE and return NULL.
10088 (lookup_decl_die): If the DIE is marked as removed, remove it
10089 from the hash and return NULL.
10090 (mark_removed): New helper.
10091 (prune_unused_types_prune): Call it for removed DIEs.
10092 (gen_subprogram_die): Move the premark_used_types call to after
10093 DIEs for the functions scopes are generated.
10094 (process_scope_var): Do not re-create pruned types or type decls.
10095 Make sure to also re-parent type decls.
10096 (dwarf2out_finish): Move unused type pruning and debug_types
10097 handling ...
10098 (dwarf2out_early_finish): ... here.
10099
10100 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
10101
10102 * config/arc/arc-c.c: New file.
10103 * config/arc/arc-c.def: Likewise.
10104 * config/arc/t-arc: Likewise.
10105 * config.gcc: Include arc-c.o as c and cpp object.
10106 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
10107 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
10108 arc_cpu_cpp_builtins.
10109
10110 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
10111
10112 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
10113 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
10114
10115 2016-09-28 Nathan Sidwell <nathan@acm.org>
10116
10117 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
10118 printing.
10119
10120 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
10121
10122 PR tree-optimization/61056
10123 * gimple-fold.c (gimple_fold_builtin_strchr):
10124 New function to optimize strchr (s, 0) to strlen.
10125 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
10126
10127 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
10128
10129 PR tree-optimization/77724
10130 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
10131 Add tree_fits_shwi_p check.
10132
10133 2016-09-27 Jakub Jelinek <jakub@redhat.com>
10134
10135 * auto-inc-dec.c (try_merge): Remove break after return.
10136 * cselib.c (autoinc_split): Likewise.
10137 * explow.c (promote_mode): Likewise.
10138 * fixed-value.c (fixed_arithmetic): Likewise.
10139 * hsa.c (hsa_internal_fn::get_arity): Likewise.
10140 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
10141 * trans-mem.c (get_attrs_for): Likewise.
10142 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
10143 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
10144 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
10145 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
10146 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
10147 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
10148 * config/cris/cris.c (cris_op_str): Likewise.
10149 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
10150 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
10151
10152 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
10153
10154 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
10155 IFN_GOACC_REDUCTION_CODES): New.
10156 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
10157 ifn_goacc_reduction_kind): Use them.
10158 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
10159 of internal functions, when applicable.
10160
10161 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
10162
10163 * config/mips/constraints.md (d): Fix documentation.
10164 * doc/md.texi (Machine Constraints): Update accordingly.
10165
10166 2016-09-27 Richard Biener <rguenther@suse.de>
10167
10168 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
10169 cur_line_info_table initialization ...
10170 (dwarf2out_assembly_start): ... here.
10171
10172 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
10173
10174 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
10175 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
10176 (*thumb2_movhi_vfp): Likewise.
10177 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
10178 template. Expand predicable attribute to mark VMOV.F16 as not
10179 predicable. Add "arch" attribute.
10180 (*thumb2_movhi_fp16): Likewise.
10181 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
10182 (*thumb2_movsi_vfp): Add "arch" attribute.
10183
10184 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
10185
10186 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
10187 VAR_DECL string.
10188
10189 2016-09-27 Marek Polacek <polacek@redhat.com>
10190
10191 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
10192 comment.
10193
10194 * config/c6x/c6x.h: Adjust fall through comment.
10195 * config/sh/sh.c (final_prescan_insn): Likewise.
10196 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
10197 (visium_expand_fp_cstore): Likewise.
10198
10199 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10200
10201 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
10202 expected by -Wimplicit-fallthrough.
10203 (thumb1_size_rtx_costs): Likewise.
10204 (thumb2_reorg): Likewise.
10205 (tls_mentioned_p): Add "Fall through" comment.
10206 (thumb2_reorg): Likewise.
10207 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
10208 comment form expected by -Wimplicit-fallthrough.
10209
10210 2016-09-27 Martin Liska <mliska@suse.cz>
10211
10212 PR gcov-profile/46266
10213 * input.h (RESERVED_LOCATION_P): New macro.
10214 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
10215 instread of comparison with UNKNOWN_LOCATION.
10216
10217 2016-09-27 Richard Biener <rguenther@suse.de>
10218
10219 PR tree-optimization/77745
10220 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10221 When removing redundant stores make sure to check compatibility
10222 of the TBAA state for downstream accesses.
10223 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
10224 value-numbering virtual operands for store matches.
10225
10226 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
10227
10228 PR target/51244
10229 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
10230 movrt patterns. Match them before anything else in the SET case.
10231
10232 2016-09-27 Martin Liska <mliska@suse.cz>
10233
10234 PR gcov-profile/7970
10235 PR gcov-profile/16855
10236 PR gcov-profile/44779
10237 * coverage.c (build_gcov_exit_decl): New function.
10238 (coverage_obj_init): Call the function and generate __gcov_exit
10239 destructor.
10240 * doc/gcov.texi: Document when __gcov_exit function is called.
10241
10242 2016-09-27 Marek Polacek <polacek@redhat.com>
10243
10244 PR bootstrap/77751
10245 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
10246 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
10247 -Wno-error instead of -Wno-implicit-fallthrough.
10248
10249 2016-09-27 Martin Liska <mliska@suse.cz>
10250
10251 PR bootstrap/77749
10252 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
10253
10254 2016-09-27 Jakub Jelinek <jakub@redhat.com>
10255
10256 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
10257 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
10258 comments. Remove break after return.
10259 (ix86_fp_compare_code_to_integer, has_dispatch,
10260 ix86_simd_clone_usable): Remove break after return.
10261
10262 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
10263
10264 PR rlt-optimization/77714
10265 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
10266 REG_EQUAL note.
10267
10268 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
10269
10270 PR ipa/77677
10271 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
10272 extract_range_from_unary_expr to convert value_range.
10273 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
10274 (extract_range_from_unary_expr): This.
10275 * tree-vrp.h (extract_range_from_unary_expr): Declare.
10276
10277 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
10278
10279 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
10280
10281 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10282
10283 * config/i386/i386.c (ix86_print_operand)
10284 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
10285 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
10286 (epilogue_renumber): Likewise.
10287
10288 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
10289
10290 PR middle-end/77719
10291 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
10292 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
10293
10294 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
10295
10296 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
10297 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
10298 is_mm_seq_cst, is_mm_sync): Move to ...
10299 * memmodel.h: This. New file.
10300 * builtins.c: Include memmodel.h.
10301 * optabs.c: Likewise.
10302 * tsan.c: Likewise.
10303 * config/aarch64/aarch64.c: Likewise.
10304 * config/alpha/alpha.c: Likewise.
10305 * config/arm/arm.c: Likewise.
10306 * config/i386/i386.c: Likewise.
10307 * config/ia64/ia64.c: Likewise.
10308 * config/mips/mips.c: Likewise.
10309 * config/rs6000/rs6000.c: Likewise.
10310 * config/sparc/sparc.c: Likewise.
10311 * genconditions.c: Include memmodel.h in generated file.
10312 * genemit.c: Likewise.
10313 * genoutput.c: Likewise.
10314 * genpeep.c: Likewise.
10315 * genpreds.c: Likewise.
10316 * genrecog.c: Likewise.
10317
10318 2016-09-26 David Malcolm <dmalcolm@redhat.com>
10319
10320 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
10321 "c" instead when parsing characters. Move operand parsing into...
10322 (read_rtx_operand): ...this new function, renaming "i" to "idx",
10323 and tightening the scope of various locals.
10324
10325 2016-09-26 Liu Hao <lh_mouse@126.com>
10326
10327 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
10328
10329 2016-09-26 Marek Polacek <polacek@redhat.com>
10330
10331 * system.h: Use __has_attribute to check whether the fallthrough
10332 attribute is supported.
10333
10334 2016-09-26 Marek Polacek <polacek@redhat.com>
10335
10336 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
10337 gimple_call_internal_p.
10338 * ipa-split.c (find_return_bb): Likewise.
10339 (execute_split_functions): Likewise.
10340 * omp-low.c (dump_oacc_loop_part): Likewise.
10341 (oacc_loop_xform_head_tail): Likewise.
10342 * predict.c (predict_loops): Likewise.
10343 * sanopt.c (pass_sanopt::execute): Likewise.
10344 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
10345 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
10346 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
10347 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
10348 (expand_ifn_va_arg): Likewise.
10349 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
10350 (optimize_mask_stores): Likewise.
10351 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
10352 (vect_transform_stmt): Likewise.
10353 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
10354 * tsan.c (instrument_memory_accesses): Likewise.
10355
10356 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10357 Alexander Monakov <amonakov@ispras.ru>
10358
10359 * regrename.c (rename_chains): Check
10360 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
10361 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
10362 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10363
10364 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10365
10366 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
10367 (s390_sched_score): Likewise.
10368
10369 2016-09-26 Martin Liska <mliska@suse.cz>
10370
10371 * doc/gcov.texi: Update program output of gcov tool.
10372
10373 2016-09-26 Martin Liska <mliska@suse.cz>
10374
10375 PR gcov-profile/23332
10376 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
10377 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
10378 * value-prof.c (dump_histogram_value): Do not handle
10379 HIST_TYPE_CONST_DELTA.
10380 (stream_in_histogram_value): Likewise.
10381 (gimple_find_values_to_profile): Likewise.
10382 * value-prof.h (enum hist_type): Likewise.
10383
10384 2016-09-26 Martin Liska <mliska@suse.cz>
10385
10386 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
10387 from default sanitize recover values.
10388 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
10389 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
10390 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
10391 consistent.
10392 * opts.c (finish_options): Do a generic loop over options
10393 that can be recovered.
10394 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
10395 SANITIZE_RETURN.
10396 (common_handle_option): Likewise.
10397 * opts.h: Declare can_recover to sanitizer_opts_s.
10398
10399 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
10400
10401 * target.def(elf_flags_numeric): Change documentation to present tense.
10402 * doc/tm.texi: Regenerate.
10403
10404 2016-09-26 Marek Polacek <polacek@redhat.com>
10405
10406 PR c/7652
10407 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
10408 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
10409 -Wno-switch-fallthrough.
10410 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
10411 (expand_builtin): Likewise.
10412 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
10413 * convert.c (convert_to_real_1): Likewise.
10414 (convert_to_integer_1): Likewise.
10415 * final.c (output_alternate_entry_point): Likewise.
10416 * genattrtab.c (make_canonical): Likewise.
10417 (write_test_expr): Likewise.
10418 * genpreds.c (validate_exp): Likewise.
10419 * gimple-ssa-strength-reduction.c
10420 (find_candidates_dom_walker::before_dom_children): Likewise.
10421 * godump.c (go_format_type): Likewise.
10422 * reload1.c (elimination_effects): Likewise.
10423 * resource.c (mark_referenced_resources): Likewise.
10424 (mark_set_resources): Likewise.
10425 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
10426 * varasm.c (output_addressed_constants): Likewise.
10427
10428 2016-09-26 Marek Polacek <polacek@redhat.com>
10429
10430 PR c/7652
10431 * common.opt (Wimplicit-fallthrough): New option.
10432 * doc/extend.texi: Document statement attributes and the fallthrough
10433 attribute.
10434 * doc/invoke.texi: Document -Wimplicit-fallthrough.
10435 * gimple.h (gimple_call_internal_p): New function.
10436 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
10437 (struct label_entry): New struct.
10438 (find_label_entry): New function.
10439 (case_label_p): New function.
10440 (collect_fallthrough_labels): New function.
10441 (last_stmt_in_scope): New function.
10442 (should_warn_for_implicit_fallthrough): New function.
10443 (warn_implicit_fallthrough_r): New function.
10444 (maybe_warn_implicit_fallthrough): New function.
10445 (expand_FALLTHROUGH_r): New function.
10446 (expand_FALLTHROUGH): New function.
10447 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
10448 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
10449 (gimplify_label_expr): New function.
10450 (gimplify_case_label_expr): Set location.
10451 (gimplify_expr): Call gimplify_label_expr.
10452 * internal-fn.c (expand_FALLTHROUGH): New function.
10453 * internal-fn.def (FALLTHROUGH): New internal function.
10454 * langhooks.c (lang_GNU_OBJC): New function.
10455 * langhooks.h (lang_GNU_OBJC): Declare.
10456 * system.h (gcc_fallthrough): Define.
10457 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
10458 * tree.h (FALLTHROUGH_LABEL_P): Define.
10459
10460 2016-09-26 Richard Biener <rguenther@suse.de>
10461
10462 * dwarf2out.c (stripattributes): Remove unused function.
10463 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
10464 Push dwarf_split_debug_info handling into init_sections_and_labels.
10465 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
10466 (DEBUG_MACRO_SECTION_FLAGS): Remove.
10467 (debug_macinfo_section_name): New global.
10468 (output_macinfo): Use debug_macinfo_section_name.
10469 (init_sections_and_labels): Split out section and label generation
10470 from dwarf2out_init. Set debug_macinfo_section_name.
10471 (dwarf2out_init): Move text section label generation and emission
10472 to ...
10473 (dwarf2out_assembly_start): ... here.
10474 (dwarf2out_finish): Call init_sections_and_labels before DWARF
10475 output starts.
10476
10477 2016-09-26 Richard Biener <rguenther@suse.de>
10478
10479 PR debug/77692
10480 * cgraphunit.c (analyze_functions): Before early removing
10481 global vars calls the late_global_decl debug handler mark
10482 the variable as readonly.
10483
10484 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
10485
10486 PR target/51244
10487 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
10488 (sh_rtx_costs): Handle SET of movt and movrt patterns.
10489 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
10490 declare new overloads.
10491 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
10492 operand.
10493
10494 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10495
10496 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
10497 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
10498
10499 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
10500
10501 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
10502 * configure: Regenerate.
10503
10504 2016-09-24 Marek Polacek <polacek@redhat.com>
10505
10506 PR c/77490
10507 * doc/invoke.texi: Document -Wbool-operation.
10508
10509 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10510
10511 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
10512 * config/rs6000/rs6000.c (expand_block_compare): New function used by
10513 cmpmemsi pattern to do builtin expansion of memcmp ().
10514 (compute_current_alignment): Add helper function for
10515 expand_block_compare used to compute alignment as the compare proceeds.
10516 (select_block_compare_mode): Used by expand_block_compare to select
10517 the mode used for reading the next chunk of bytes in the compare.
10518 (do_load_for_compare): Used by expand_block_compare to emit the load
10519 insns for the compare.
10520 (rs6000_emit_dot_insn): Moved this function to avoid a forward
10521 reference from expand_block_compare ().
10522 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
10523 prototype for this function.
10524 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
10525 target option for controlling how much code inline expansion of
10526 memcmp() will be allowed to generate.
10527
10528 2016-09-23 Jakub Jelinek <jakub@redhat.com>
10529
10530 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
10531 hook_bool_mode_false, hook_bool_mode_true,
10532 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
10533 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
10534 hook_bool_const_rtx_insn_const_rtx_insn_true,
10535 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
10536 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
10537 hook_bool_const_tree_hwi_hwi_const_tree_false,
10538 hook_bool_const_tree_hwi_hwi_const_tree_true,
10539 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
10540 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
10541 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
10542 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
10543 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
10544 hook_bool_const_tree_true, hook_bool_tree_tree_false,
10545 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
10546 hook_bool_rtx_insn_true, hook_bool_rtx_false,
10547 hook_bool_uintp_uintp_false,
10548 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
10549 hook_rtx_tree_int_null, hook_uint_mode_0,
10550 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
10551 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
10552 hook_constcharptr_const_rtx_insn_null,
10553 hook_constcharptr_const_tree_const_tree_null,
10554 hook_constcharptr_int_const_tree_null,
10555 hook_constcharptr_int_const_tree_const_tree_null,
10556 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
10557 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
10558 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
10559
10560 * vec.h (vNULL): Extend comment to say = vNULL initialization
10561 isn't needed for static vars.
10562
10563 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
10564 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
10565 = vNULL initialization of file scope vec.
10566 * passes.c (pass_tab, enabled_pass_uid_range_tab,
10567 disabled_pass_uid_range_tab): Likewise.
10568 * haifa-sched.c (sched_luids, h_i_d): Likewise.
10569 * tree-chkp-opt.c (check_infos): Likewise.
10570 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
10571
10572 * vec.h (vnull::operator vec): Add constexpr keyword for
10573 C++11 and later.
10574
10575 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
10576
10577 PR tree-optimization/77654
10578 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
10579 to duplicate_ssa_name_ptr_info.
10580
10581 2016-09-23 David Malcolm <dmalcolm@redhat.com>
10582
10583 PR preprocessor/77672
10584 * input.c (selftest::test_lexer_string_locations_simple): Update
10585 test to expect location information of the terminator character
10586 at the location of the final closing quote.
10587 (selftest::test_lexer_string_locations_hex): Likewise.
10588 (selftest::test_lexer_string_locations_oct): Likewise.
10589 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
10590 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
10591 (selftest::test_lexer_string_locations_ucn4): Likewise.
10592 (selftest::test_lexer_string_locations_ucn8): Likewise.
10593 (selftest::test_lexer_string_locations_u8): Likewise.
10594 (selftest::test_lexer_string_locations_utf8_source): Likewise.
10595 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
10596 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
10597 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
10598 (selftest::test_lexer_string_locations_macro): Likewise.
10599 (selftest::test_lexer_string_locations_long_line): Likewise.
10600
10601 2016-09-23 Richard Biener <rguenther@suse.de>
10602
10603 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
10604 virtual definition to virtual use if the call devirtualizes
10605 to a const or pure function.
10606 (visit_use): Also visit calls we can devirtualize to a
10607 const or pure function.
10608
10609 2016-09-23 Richard Biener <rguenther@suse.de>
10610
10611 PR tree-optimization/77697
10612 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
10613 signal error if we have sth ternary or unhandled.
10614
10615 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10616
10617 * config/arm/arm_neon.h (vabd_f16): New.
10618 (vabdq_f16): New.
10619 (vabs_f16): New.
10620 (vabsq_f16): New.
10621 (vadd_f16): New.
10622 (vaddq_f16): New.
10623 (vcage_f16): New.
10624 (vcageq_f16): New.
10625 (vcagt_f16): New.
10626 (vcagtq_f16): New.
10627 (vcale_f16): New.
10628 (vcaleq_f16): New.
10629 (vcalt_f16): New.
10630 (vcaltq_f16): New.
10631 (vceq_f16): New.
10632 (vceqq_f16): New.
10633 (vceqz_f16): New.
10634 (vceqzq_f16): New.
10635 (vcge_f16): New.
10636 (vcgeq_f16): New.
10637 (vcgez_f16): New.
10638 (vcgezq_f16): New.
10639 (vcgt_f16): New.
10640 (vcgtq_f16): New.
10641 (vcgtz_f16): New.
10642 (vcgtzq_f16): New.
10643 (vcle_f16): New.
10644 (vcleq_f16): New.
10645 (vclez_f16): New.
10646 (vclezq_f16): New.
10647 (vclt_f16): New.
10648 (vcltq_f16): New.
10649 (vcltz_f16): New.
10650 (vcltzq_f16): New.
10651 (vcvt_f16_s16): New.
10652 (vcvt_f16_u16): New.
10653 (vcvt_s16_f16): New.
10654 (vcvt_u16_f16): New.
10655 (vcvtq_f16_s16): New.
10656 (vcvtq_f16_u16): New.
10657 (vcvtq_s16_f16): New.
10658 (vcvtq_u16_f16): New.
10659 (vcvta_s16_f16): New.
10660 (vcvta_u16_f16): New.
10661 (vcvtaq_s16_f16): New.
10662 (vcvtaq_u16_f16): New.
10663 (vcvtm_s16_f16): New.
10664 (vcvtm_u16_f16): New.
10665 (vcvtmq_s16_f16): New.
10666 (vcvtmq_u16_f16): New.
10667 (vcvtn_s16_f16): New.
10668 (vcvtn_u16_f16): New.
10669 (vcvtnq_s16_f16): New.
10670 (vcvtnq_u16_f16): New.
10671 (vcvtp_s16_f16): New.
10672 (vcvtp_u16_f16): New.
10673 (vcvtpq_s16_f16): New.
10674 (vcvtpq_u16_f16): New.
10675 (vcvt_n_f16_s16): New.
10676 (vcvt_n_f16_u16): New.
10677 (vcvtq_n_f16_s16): New.
10678 (vcvtq_n_f16_u16): New.
10679 (vcvt_n_s16_f16): New.
10680 (vcvt_n_u16_f16): New.
10681 (vcvtq_n_s16_f16): New.
10682 (vcvtq_n_u16_f16): New.
10683 (vfma_f16): New.
10684 (vfmaq_f16): New.
10685 (vfms_f16): New.
10686 (vfmsq_f16): New.
10687 (vmax_f16): New.
10688 (vmaxq_f16): New.
10689 (vmaxnm_f16): New.
10690 (vmaxnmq_f16): New.
10691 (vmin_f16): New.
10692 (vminq_f16): New.
10693 (vminnm_f16): New.
10694 (vminnmq_f16): New.
10695 (vmul_f16): New.
10696 (vmul_lane_f16): New.
10697 (vmul_n_f16): New.
10698 (vmulq_f16): New.
10699 (vmulq_lane_f16): New.
10700 (vmulq_n_f16): New.
10701 (vneg_f16): New.
10702 (vnegq_f16): New.
10703 (vpadd_f16): New.
10704 (vpmax_f16): New.
10705 (vpmin_f16): New.
10706 (vrecpe_f16): New.
10707 (vrecpeq_f16): New.
10708 (vrnd_f16): New.
10709 (vrndq_f16): New.
10710 (vrnda_f16): New.
10711 (vrndaq_f16): New.
10712 (vrndm_f16): New.
10713 (vrndmq_f16): New.
10714 (vrndn_f16): New.
10715 (vrndnq_f16): New.
10716 (vrndp_f16): New.
10717 (vrndpq_f16): New.
10718 (vrndx_f16): New.
10719 (vrndxq_f16): New.
10720 (vrsqrte_f16): New.
10721 (vrsqrteq_f16): New.
10722 (vrecps_f16): New.
10723 (vrecpsq_f16): New.
10724 (vrsqrts_f16): New.
10725 (vrsqrtsq_f16): New.
10726 (vsub_f16): New.
10727 (vsubq_f16): New.
10728
10729 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10730
10731 * config.gcc (extra_headers): Add arm_fp16.h
10732 * config/arm/arm_fp16.h: New.
10733 * config/arm/arm_neon.h: Include "arm_fp16.h".
10734
10735 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10736
10737 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
10738 variants).
10739 (vmulf): New (v8hf, v4hf variants).
10740 (vfma): New (v8hf, v4hf variants).
10741 (vfms): New (v8hf, v4hf variants).
10742 (vsub): New (v8hf, v4hf variants).
10743 (vcage): New (v8hf, v4hf variants).
10744 (vcagt): New (v8hf, v4hf variants).
10745 (vcale): New (v8hf, v4hf variants).
10746 (vcalt): New (v8hf, v4hf variants).
10747 (vceq): New (v8hf, v4hf variants).
10748 (vcgt): New (v8hf, v4hf variants).
10749 (vcge): New (v8hf, v4hf variants).
10750 (vcle): New (v8hf, v4hf variants).
10751 (vclt): New (v8hf, v4hf variants).
10752 (vceqz): New (v8hf, v4hf variants).
10753 (vcgez): New (v8hf, v4hf variants).
10754 (vcgtz): New (v8hf, v4hf variants).
10755 (vcltz): New (v8hf, v4hf variants).
10756 (vclez): New (v8hf, v4hf variants).
10757 (vabd): New (v8hf, v4hf variants).
10758 (vmaxf): New (v8hf, v4hf variants).
10759 (vmaxnm): New (v8hf, v4hf variants).
10760 (vminf): New (v8hf, v4hf variants).
10761 (vminnm): New (v8hf, v4hf variants).
10762 (vpmaxf): New (v4hf variant).
10763 (vpminf): New (v4hf variant).
10764 (vpadd): New (v4hf variant).
10765 (vrecps): New (v8hf, v4hf variants).
10766 (vrsqrts): New (v8hf, v4hf variants).
10767 (vabs): New (v8hf, v4hf variants).
10768 (vneg): New (v8hf, v4hf variants).
10769 (vrecpe): New (v8hf, v4hf variants).
10770 (vrnd): New (v8hf, v4hf variants).
10771 (vrnda): New (v8hf, v4hf variants).
10772 (vrndm): New (v8hf, v4hf variants).
10773 (vrndn): New (v8hf, v4hf variants).
10774 (vrndp): New (v8hf, v4hf variants).
10775 (vrndx): New (v8hf, v4hf variants).
10776 (vrsqrte): New (v8hf, v4hf variants).
10777 (vmul_lane): Add v4hf and v8hf variants.
10778 (vmul_n): Add v4hf and v8hf variants.
10779 (vext): New (v8hf, v4hf variants).
10780 (vcvts): New (v8hi, v4hi variants).
10781 (vcvts): New (v8hf, v4hf variants).
10782 (vcvtu): New (v8hi, v4hi variants).
10783 (vcvtu): New (v8hf, v4hf variants).
10784 (vcvts_n): New (v8hf, v4hf variants).
10785 (vcvtu_n): New (v8hi, v4hi variants).
10786 (vcvts_n): New (v8hi, v4hi variants).
10787 (vcvtu_n): New (v8hf, v4hf variants).
10788 (vbsl): New (v8hf, v4hf variants).
10789 (vcvtas): New (v8hf, v4hf variants).
10790 (vcvtau): New (v8hf, v4hf variants).
10791 (vcvtms): New (v8hf, v4hf variants).
10792 (vcvtmu): New (v8hf, v4hf variants).
10793 (vcvtns): New (v8hf, v4hf variants).
10794 (vcvtnu): New (v8hf, v4hf variants).
10795 (vcvtps): New (v8hf, v4hf variants).
10796 (vcvtpu): New (v8hf, v4hf variants).
10797
10798 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10799
10800 * config/arm/arm-builtins.c (hf_UP): New.
10801 (si_UP): New.
10802 (vfp_builtin_data): New. Update comment.
10803 (enum arm_builtins): Include "arm_vfp_builtins.def".
10804 (ARM_BUILTIN_VFP_PATTERN_START): New.
10805 (arm_init_vfp_builtins): New.
10806 (arm_init_builtins): Add arm_init_vfp_builtins.
10807 (arm_expand_vfp_builtin): New.
10808 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
10809 long line.
10810 * config/arm/arm_vfp_builtins.def: New file.
10811 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
10812 (arm-builtins.o): Likewise.
10813
10814 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
10815
10816 PR ipa/77677
10817 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
10818 from constant while creating value range.
10819
10820 2016-09-23 Renlin Li <renlin.li@arm.com>
10821
10822 * ira.c (ira): Move ira_use_lra_p initialization code to ...
10823 (ira_init_once): Here.
10824
10825 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
10826 Jakub Jelinek <jakub@redhat.com>
10827
10828 * hooks.h (hook_uint_uintp_false): Rename to...
10829 (hook_bool_uint_uintp_false): ... this.
10830 * hooks.c (hook_uint_uintp_false): Rename to...
10831 (hook_bool_uint_uintp_false): ... this.
10832 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
10833 instead of hook_uint_uintp_false.
10834
10835 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10836
10837 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
10838 (arm_init_builtins): Move body of a loop to the standalone
10839 function arm_init_neon_builtin.
10840 (arm_expand_neon_builtin_1): New. Update comment. Function body
10841 moved from arm_neon_builtin with some white-space fixes.
10842 (arm_expand_neon_builtin): Move code into the standalone function
10843 arm_expand_neon_builtin_1.
10844
10845 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10846
10847 * config/arm/iterators.md (VCVTHI): New.
10848 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
10849 (NEON_VAGLTE): New.
10850 (VFM_LANE_AS): New.
10851 (VH_CVTTO): New.
10852 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
10853 (V_HALF): Add V4HF. Fix white-space.
10854 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
10855 (V_s_elem): Likewise.
10856 (V_sz_elem): Fix white-space.
10857 (V_elem_ch): Likewise.
10858 (VH_elem_ch): New.
10859 (scalar_mul_constraint): Add V8HF and V4HF.
10860 (Is_float_mode): Fix white-space.
10861 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
10862 (q): Add HF. Fix white-space.
10863 (float_sup): New.
10864 (float_SUP): New.
10865 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
10866 (neon_vfm_lane_as): New.
10867 * config/arm/neon.md (add<mode>3_fp16): New.
10868 (sub<mode>3_fp16): New.
10869 (mul<mode>3add<mode>_neon): New.
10870 (fma<VH:mode>4_intrinsic): New.
10871 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
10872 (fmsub<VH:mode>4_intrinsic): New.
10873 (<absneg_str><mode>2): New.
10874 (neon_v<absneg_str><mode>): New.
10875 (neon_v<fp16_rnd_str><mode>): New.
10876 (neon_vrsqrte<mode>): New.
10877 (neon_vpaddv4hf): New.
10878 (neon_vadd<mode>): New.
10879 (neon_vsub<mode>): New.
10880 (neon_vmulf<mode>): New.
10881 (neon_vfma<VH:mode>): New.
10882 (neon_vfms<VH:mode>): New.
10883 (neon_vc<cmp_op><mode>): New.
10884 (neon_vc<cmp_op><mode>_fp16insn): New
10885 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
10886 (neon_vca<cmp_op><mode>): New.
10887 (neon_vca<cmp_op><mode>_fp16insn): New.
10888 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
10889 (neon_vc<cmp_op>z<mode>): New.
10890 (neon_vabd<mode>): New.
10891 (neon_v<maxmin>f<mode>): New.
10892 (neon_vp<maxmin>fv4hf: New.
10893 (neon_<fmaxmin_op><mode>): New.
10894 (neon_vrecps<mode>): New.
10895 (neon_vrsqrts<mode>): New.
10896 (neon_vrecpe<mode>): New (VH variant).
10897 (neon_vdup_lane<mode>_internal): New.
10898 (neon_vdup_lane<mode>): New.
10899 (neon_vcvt<sup><mode>): New (VCVTHI variant).
10900 (neon_vcvt<sup><mode>): New (VH variant).
10901 (neon_vcvt<sup>_n<mode>): New (VH variant).
10902 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
10903 (neon_vcvt<vcvth_op><sup><mode>): New.
10904 (neon_vmul_lane<mode>): New.
10905 (neon_vmul_n<mode>): New.
10906 * config/arm/unspecs.md (UNSPEC_VCALE): New
10907 (UNSPEC_VCALT): New.
10908 (UNSPEC_VFMA_LANE): New.
10909 (UNSPECS_VFMS_LANE): New.
10910
10911 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
10912
10913 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
10914 ("*extzv<mode><clobbercc_or_nocc>"):
10915 Correct a typo in a comment.
10916 Merged patterns.
10917 ("*insv<mode>_zEC12", "*insv<mode>_z10")
10918 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
10919 ("*insv<mode>_zEC12_appendbitsleft")
10920 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
10921 ("*insv<mode>_z10_appendbitsleft"): Ditto.
10922 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
10923 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
10924 Provide pattern with operands switched.
10925 ("*pre_z10_extv<mode>"):
10926 Use new subst patterns.
10927 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
10928 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
10929 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
10930 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
10931 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
10932 ("*<risbg_n>_sidi_ior_and_lshiftrt")
10933 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
10934 New patterns.
10935 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
10936 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
10937 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
10938 on zEC12.
10939 ("SINT"): New mode_iterator with SI, HI, QI.
10940 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
10941 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
10942 duplication.
10943
10944 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
10945
10946 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
10947 new interface of s390_contiguous_bitmask_p.
10948 ("contiguous_bitmask_nowrap_operand"): New predicate.
10949 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
10950 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
10951 of s390_contiguous_bitmask_p.
10952 ("NxxDw"): Rename NxxDq constraint to NxxDw.
10953 ("NxxSw"): New constraint.
10954 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
10955 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
10956 interface.
10957 (s390_contiguous_bitmask_nowrap_p): Export.
10958 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
10959 former s390_contiguous_bitmask_p.
10960 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
10961 detect contiguous bit ranges with wraparound. Change signature to
10962 return START and END position instead of POS and LENGTH.
10963 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
10964 ranges with wraparound.
10965 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
10966 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
10967 Adapt to new signature of s390_contiguous_bitmask_p.
10968
10969 2016-09-23 Bin Cheng <bin.cheng@arm.com>
10970
10971 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
10972 (create_intersect_range_checks): New.
10973 (vect_create_cond_for_alias_checks): Call above function.
10974
10975 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10976
10977 * config/arm/iterators.md (Code iterators): Fix some white-space
10978 in the comments.
10979 (GLTE): New.
10980 (ABSNEG): New
10981 (FCVT): Moved from vfp.md.
10982 (VCVT_HF_US_N): New.
10983 (VCVT_SI_US_N): New.
10984 (VCVT_HF_US): New.
10985 (VCVTH_US): New.
10986 (FP16_RND): New.
10987 (absneg_str): New.
10988 (FCVTI32typename): Moved from vfp.md.
10989 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
10990 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
10991 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
10992 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
10993 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
10994 (vcvth_op): New.
10995 (fp16_rnd_str): New.
10996 (fp16_rnd_insn): New.
10997 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
10998 (UNSPEC_VCVT_HF_U_N): New.
10999 (UNSPEC_VCVT_SI_S_N): New.
11000 (UNSPEC_VCVT_SI_U_N): New.
11001 (UNSPEC_VCVTH_S): New.
11002 (UNSPEC_VCVTH_U): New.
11003 (UNSPEC_VCVTA_S): New.
11004 (UNSPEC_VCVTA_U): New.
11005 (UNSPEC_VCVTM_S): New.
11006 (UNSPEC_VCVTM_U): New.
11007 (UNSPEC_VCVTN_S): New.
11008 (UNSPEC_VCVTN_U): New.
11009 (UNSPEC_VCVTP_S): New.
11010 (UNSPEC_VCVTP_U): New.
11011 (UNSPEC_VCVTP_S): New.
11012 (UNSPEC_VCVTP_U): New.
11013 (UNSPEC_VRND): New.
11014 (UNSPEC_VRNDA): New.
11015 (UNSPEC_VRNDI): New.
11016 (UNSPEC_VRNDM): New.
11017 (UNSPEC_VRNDN): New.
11018 (UNSPEC_VRNDP): New.
11019 (UNSPEC_VRNDX): New.
11020 * config/arm/vfp.md (<absneg_str>hf2): New.
11021 (neon_vabshf): New.
11022 (neon_v<fp16_rnd_str>hf): New.
11023 (neon_vrndihf): New.
11024 (addhf3): New.
11025 (subhf3): New.
11026 (divhf3): New.
11027 (mulhf3): New.
11028 (*mulsf3neghf_vfp): New.
11029 (*negmulhf3_vfp): New.
11030 (*mulsf3addhf_vfp): New.
11031 (*mulhf3subhf_vfp): New.
11032 (*mulhf3neghfaddhf_vfp): New.
11033 (*mulhf3neghfsubhf_vfp): New.
11034 (fmahf4): New.
11035 (neon_vfmahf): New.
11036 (fmsubhf4_fp16): New.
11037 (neon_vfmshf): New.
11038 (*fnmsubhf4): New.
11039 (*fnmaddhf4): New.
11040 (neon_vsqrthf): New.
11041 (neon_vrsqrtshf): New.
11042 (FCVT): Move to iterators.md.
11043 (FCVTI32typename): Likewise.
11044 (neon_vcvth<sup>hf): New.
11045 (neon_vcvth<sup>si): New.
11046 (neon_vcvth<sup>_nhf_unspec): New.
11047 (neon_vcvth<sup>_nhf): New.
11048 (neon_vcvth<sup>_nsi_unspec): New.
11049 (neon_vcvth<sup>_nsi): New.
11050 (neon_vcvt<vcvth_op>h<sup>si): New.
11051 (neon_<fmaxmin_op>hf): New.
11052
11053 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
11054
11055 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
11056 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
11057 ("*insv<mode>_zEC12_appendbitsleft")
11058 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
11059 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
11060
11061 2016-09-23 Jakub Jelinek <jakub@redhat.com>
11062
11063 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
11064 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
11065 construct values without normalization.
11066 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
11067 static local lhs_ops to vNULL.
11068
11069 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
11070 Jiong Wang <jiong.wang@arm.com>
11071
11072 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
11073 available when FP16 instructions are available.
11074 (output_move_vfp): Add support for 16-bit data moves.
11075 (arm_validize_comparison): Fix some white-space. Support HFmode
11076 by conversion to SFmode.
11077 * config/arm/arm.md (truncdfhf2): Fix a comment.
11078 (extendhfdf2): Likewise.
11079 (cstorehf4): New.
11080 (movsicc): Fix some white-space.
11081 (movhfcc): New.
11082 (movsfcc): Fix some white-space.
11083 (*cmovhf): New.
11084 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
11085 instructions are available.
11086 (*thumb2_movhi_vfp): Likewise.
11087 (*arm_movhi_fp16): New.
11088 (*thumb2_movhi_fp16): New.
11089 (*movhf_vfp_fp16): New.
11090 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
11091 (*movhf_vfp): Likewise.
11092 (extendhfsf2): Enable when VFP FP16 instructions are available.
11093 (truncsfhf2): Enable when VFP FP16 instructions are available.
11094
11095 2016-09-23 Martin Liska <mliska@suse.cz>
11096
11097 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
11098
11099 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
11100
11101 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
11102 V4HF modes.
11103 (arm_evpc_neon_vtrn): Likewise.
11104 (arm_evpc_neon_vrev): Likewise.
11105 (arm_evpc_neon_vext): Likewise.
11106 * config/arm/arm_neon.h (vbsl_f16): New.
11107 (vbslq_f16): New.
11108 (vdup_n_f16): New.
11109 (vdupq_n_f16): New.
11110 (vdup_lane_f16): New.
11111 (vdupq_lane_f16): New.
11112 (vext_f16): New.
11113 (vextq_f16): New.
11114 (vmov_n_f16): New.
11115 (vmovq_n_f16): New.
11116 (vrev64_f16): New.
11117 (vrev64q_f16): New.
11118 (vtrn_f16): New.
11119 (vtrnq_f16): New.
11120 (vuzp_f16): New.
11121 (vuzpq_f16): New.
11122 (vzip_f16): New.
11123 (vzipq_f16): New.
11124 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
11125 (vdup_lane): New (v8hf, v4hf variants).
11126 (vext): New (v8hf, v4hf variants).
11127 (vbsl): New (v8hf, v4hf variants).
11128 * config/arm/iterators.md (VDQWH): New.
11129 (VH): New.
11130 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
11131 (Scalar_mul_8_16): Fix white-space.
11132 (Is_d_reg): Add V4HF and V8HF.
11133 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
11134 (neon_vdup_lane<mode>): New.
11135 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
11136 (*neon_vtrn<mode>_insn): Likewise.
11137 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
11138 (*neon_vzip<mode>_insn): Likewise
11139 (neon_vuzp<mode>_internal): Likewise.
11140 (*neon_vuzp<mode>_insn): Likewise
11141 * config/arm/vec-common.md (vec_perm_const<mode>): New.
11142
11143 2016-09-23 Jiong Wang <jiong.wang@arm.com>
11144 Matthew Wahab <matthew.wahab@arm.com>
11145
11146 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
11147 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
11148 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
11149 available. Also fix some white-space.
11150 * config/arm/vfp.md (*arm_movhi_vfp): New.
11151 (*thumb2_movhi_vfp): New.
11152
11153 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
11154
11155 * config/arm/arm-c.c (arm_cpu_builtins): Define
11156 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
11157 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
11158
11159 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
11160
11161 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
11162 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
11163 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
11164 arm_v8_2a_fp16_neon_hw.
11165 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
11166 arm_v8_2a_neon.
11167
11168 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
11169
11170 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
11171 arm_fp16_alternative_ok and arm_fp16_none_ok.
11172
11173 2016-09-23 Martin Liska <mliska@suse.cz>
11174
11175 * ipa-icf.c (sem_variable::merge): Replace adress with address.
11176
11177 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
11178
11179 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
11180 ("armv8.2-a"): New.
11181 ("armv8.2-a+fp16"): New.
11182 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
11183 (FL2_FP16INST): New.
11184 (FL2_FOR_ARCH8_2A): New.
11185 * config/arm/arm-tables.opt: Regenerate.
11186 * config/arm/arm.c (arm_arch8_2): New.
11187 (arm_fp16_inst): New.
11188 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
11189 for incompatible fp16-format settings.
11190 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
11191 (TARGET_NEON_FP16INST): New.
11192 (arm_arch8_2): Declare.
11193 (arm_fp16_inst): Declare.
11194 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
11195 march=armv8.2-a and march=armv8.2-a+fp16.
11196 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
11197 and armv8.2-a+fp16.
11198 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
11199 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
11200
11201 2016-09-23 Martin Liska <mliska@suse.cz>
11202
11203 * doc/extend.texi: Remove fused-madd from i386 target options.
11204
11205 2016-09-23 Martin Liska <mliska@suse.cz>
11206
11207 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
11208 Handle movbe.
11209
11210 2016-09-23 Martin Liska <mliska@suse.cz>
11211
11212 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
11213 Handle crc32.
11214
11215 2016-09-23 Martin Liska <mliska@suse.cz>
11216
11217 PR target/71652
11218 * config/i386/i386.c (ix86_option_override_internal): Change
11219 signature and return false when there's an error related to
11220 arch string.
11221 (release_options_strings): New function.
11222 (ix86_valid_target_attribute_tree): Call the function.
11223
11224 2016-09-23 Jakub Jelinek <jakub@redhat.com>
11225
11226 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
11227 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
11228 (gen_hsa_ctor_assignment): Likewise.
11229 * print-tree.c (print_node): Likewise.
11230 * tree-dump.c (dequeue_and_dump): Likewise.
11231 * tree-sra.c (sra_modify_constructor_assign): Likewise.
11232 * expr.c (store_constructor): Likewise.
11233 * fold-const.c (operand_equal_p): Likewise.
11234 * tree-pretty-print.c (dump_generic_node): Likewise.
11235 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
11236 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
11237
11238 2016-09-23 Richard Biener <rguenther@suse.de>
11239
11240 * hooks.h (hook_uint_uintp_false): Declare.
11241
11242 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
11243
11244 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
11245 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
11246
11247 2016-09-22 Martin Sebor <msebor@redhat.com>
11248
11249 PR target/77676
11250 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
11251 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
11252 (target_int_min): Correct computation.
11253 (format_integer): Use long long as the argument for the ll length
11254 modifier.
11255 (format_floating): Use target_int_max().
11256 (get_string_length): Same.
11257 (format_string): Avoid setting the bounded flag for strings
11258 of unknown length.
11259 (try_substitute_return_value): Avoid setting range info when
11260 the result isn't bounded.
11261 * varasm.c (assemble_name): Increase buffer size.
11262
11263 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
11264 Terry Guo <terry.guo@arm.com>
11265
11266 * target.def (elf_flags_numeric): New target hook.
11267 * targhooks.h (default_asm_elf_flags_numeric): New.
11268 * varasm.c (default_asm_elf_flags_numeric): New.
11269 (default_elf_asm_named_section): Use new target hook.
11270 * config/arm/arm.opt (mpure-code): New.
11271 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
11272 * config/arm/arm.c (arm_asm_init_sections): Add section
11273 attribute to default text section if -mpure-code.
11274 (arm_option_check_internal): Diagnose use of option with
11275 non supported targets and/or options.
11276 (arm_asm_elf_flags_numeric): New.
11277 (arm_function_section): New.
11278 (arm_elf_section_type_flags): New.
11279 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
11280 for -mpure-code.
11281 * doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
11282 * doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
11283
11284 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
11285
11286 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
11287
11288 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11289
11290 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
11291 * rtl.h: Adjust prototype.
11292
11293 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11294
11295 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
11296 (prev_active_insn): Likewise.
11297 (active_insn_p): Likewise.
11298 * rtl.h: Adjust prototypes.
11299 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
11300 * config/arc/arc.md: Likewise.
11301 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
11302 (branch_needs_nop_p): Likewise.
11303 (use_skip_p): Likewise.
11304 * config/sh/sh.c (gen_block_redirect): Likewise.
11305 (split_branches): Likewise.
11306 * reorg.c (optimize_skip): Likewise.
11307 (fill_simple_delay_slots): Likewise.
11308 (fill_slots_from_thread): Likewise.
11309 (relax_delay_slots): Likewise.
11310 * resource.c (mark_target_live_regs): Likewise.
11311
11312 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11313
11314 * config/cris/cris.c (cris_asm_output_case_end): Change argument
11315 type to rtx_insn *.
11316 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
11317 (prev_nonnote_nondebug_insn): Likewise.
11318 * config/cris/cris-protos.h: Adjust prototype.
11319 * rtl.h: Likewise.
11320 * jump.c (rtx_renumbered_equal_p): Adjust.
11321
11322 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11323
11324 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
11325 * rtl.h: Adjust prototype.
11326 * config/sh/sh.md: Adjust.
11327 * dwarf2out.c (add_var_loc_to_decl): Likewise.
11328
11329 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11330
11331 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
11332 (prev_nondebug_insn): Likewise.
11333 * loop-doloop.c (doloop_condition_get): Likewise.
11334 * rtl.h: Adjust prototype.
11335 * cfgloop.h: Likewise.
11336
11337 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11338
11339 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
11340 (prev_nonnote_insn): Likewise.
11341 * jump.c (reversed_comparison_code_parts): Likewise.
11342 (reversed_comparison): Likewise.
11343 * rtl.h: Adjust prototypes.
11344 * config/arc/arc.md: Adjust.
11345 * cse.c (find_comparison_args): Likewise.
11346 * reorg.c (redundant_insn): Change return type to rtx_insn *.
11347 (fix_reg_dead_note): Change argument type to rtx_insn *.
11348 (delete_prior_computation): Likewise.
11349 (delete_computation): Likewise.
11350 (fill_slots_from_thread): Adjust.
11351 (relax_delay_slots): Likewise.
11352 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11353 (simplify_relational_operation_1): Likewise.
11354 (simplify_ternary_operation): Likewise.
11355
11356 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11357
11358 * config/arc/arc-protos.h (arc_label_align): Change type of
11359 variables from rtx to rtx_insn *.
11360 * config/arc/arc.c (arc_label_align): Likewise.
11361 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
11362 * config/bfin/bfin.c (workaround_speculation): Likewise.
11363 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
11364 (find_last_same_clock): Likewise.
11365 (reorg_split_calls): Likewise.
11366 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
11367 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
11368 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
11369 (same_cmp_following_p): Likewise.
11370 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
11371 (same_cmp_following_p): Likwise.
11372 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
11373 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
11374 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
11375 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
11376 (rl78_alloc_physical_registers_cmp): Likewise.
11377 (rl78_alloc_physical_registers_umul): Likewise.
11378 (rl78_calculate_death_notes): Likewise.
11379 * config/s390/s390-protos.h (s390_label_align): Likewise.
11380 * config/s390/s390.c (s390_label_align): Likewise.
11381 * config/sh/sh.c (barrier_align): Likewise.
11382 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
11383 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
11384 (emit_cbcond_nop): Likewise.
11385
11386 2016-09-22 Martin Liska <mliska@suse.cz>
11387
11388 PR ipa/77653
11389 * ipa-icf.c (sem_variable::merge): Yield merge operation if
11390 alias address matters, not necessarily address of original.
11391
11392 2016-09-22 Richard Biener <rguenther@suse.de>
11393
11394 PR middle-end/77697
11395 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
11396 fold fails.
11397
11398 2016-09-22 Richard Biener <rguenther@suse.de>
11399
11400 PR middle-end/77677
11401 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
11402 from constant folding results.
11403 (gimple_resimplify2): Likewise.
11404 (gimple_resimplify3): Likewise.
11405
11406 2016-09-22 Richard Biener <rguenther@suse.de>
11407
11408 PR middle-end/77678
11409 * expr.c (expand_expr_real_1): Guard array access against negative
11410 offset.
11411
11412 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11413
11414 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
11415 of MPFR_RNDN.
11416 (format_floating): Likewise.
11417
11418 2016-09-22 Jakub Jelinek <jakub@redhat.com>
11419
11420 PR fortran/77665
11421 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
11422 for all IFN_GOMP_SIMD_* internal fns, not just for
11423 IFN_GOMP_SIMD_ORDERED_*.
11424
11425 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
11426
11427 PR target/77670
11428 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
11429 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
11430 instructions when you want to invert the test.
11431 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
11432 correct order for XXSEL.
11433 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
11434 for using XSCMP{EQ,GT,GE}DP.
11435
11436 2016-09-21 David Malcolm <dmalcolm@redhat.com>
11437
11438 * genconstants.c (main): Introduce noop_reader and convert call
11439 to read_md_files to a method call.
11440 * genenums.c (main): Likewise.
11441 * genmddeps.c (main): Likewise.
11442 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
11443 rtx_reader_ptr->get_top_level_filename ().
11444 (write_tm_preds_h): Likewise.
11445 (write_insn_preds_c): Likewise.
11446 * gensupport.c (class gen_reader): New subclass of rtx_reader.
11447 (rtx_handle_directive): Convert to...
11448 (gen_reader::handle_unknown_directive): ...this.
11449 (init_rtx_reader_args_cb): Convert return type from bool to
11450 rtx_reader *. Create a gen_reader instance, using it for the
11451 call to read_md_files. Return it if no errors occur.
11452 (init_rtx_reader_args): Convert return type from bool to
11453 rtx_reader *.
11454 * gensupport.h (init_rtx_reader_args_cb): Likewise.
11455 (init_rtx_reader_args_cb): Likewise.
11456 * read-md.c (struct file_name_list): Move to class rtx_reader.
11457 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
11458 (read_md_filename): Delete in favor of
11459 rtx_reader::m_read_md_filename.
11460 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
11461 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
11462 (base_dir): Delete in favor of rtx_reader::m_base_dir.
11463 (first_dir_md_include): Delete in favor of
11464 rtx_reader::m_first_dir_md_include.
11465 (last_dir_md_include_ptr): Delete in favor of
11466 rtx_reader::m_last_dir_md_include_ptr.
11467 (max_include_len): Delete.
11468 (rtx_reader_ptr): New.
11469 (fatal_with_file_and_line): Use get_filename and get_lineno
11470 accessors of rtx_reader_ptr.
11471 (require_char_ws): Likewise.
11472 (rtx_reader::read_char): New method, based on ::read_char.
11473 (rtx_reader::unread_char): New method, based on ::unread_char.
11474 (read_escape): Use get_filename and get_lineno accessors of
11475 rtx_reader_ptr.
11476 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
11477 (read_string): Use get_filename and get_lineno accessors of
11478 rtx_reader_ptr.
11479 (rtx_reader::rtx_reader): New ctor.
11480 (rtx_reader::~rtx_reader): New dtor.
11481 (handle_include): Convert from a function to...
11482 (rtx_reader::handle_include): ...this method, converting
11483 handle_directive from a callback to a virtual function.
11484 (handle_file): Likewise, converting to...
11485 (rtx_reader::handle_file): ...this method.
11486 (handle_toplevel_file): Likewise, converting to...
11487 (rtx_reader::handle_toplevel_file): ...this method.
11488 (rtx_reader::get_current_location): New method.
11489 (parse_include): Convert from a function to...
11490 (rtx_reader::add_include_path): ...this method, dropping redundant
11491 update to unused max_include_len.
11492 (read_md_files): Convert from a function to...
11493 (rtx_reader::read_md_files): ...this method, converting
11494 handle_directive from a callback to a virtual function.
11495 (noop_reader::handle_unknown_directive): New method.
11496 * read-md.h (directive_handler_t): Delete this typedef.
11497 (in_fname): Delete.
11498 (read_md_file): Delete.
11499 (read_md_lineno): Delete.
11500 (read_md_filename): Delete.
11501 (class rtx_reader): New class.
11502 (rtx_reader_ptr): New decl.
11503 (class noop_reader): New subclass of rtx_reader.
11504 (read_char): Reimplement in terms of rtx_reader::read_char.
11505 (unread_char): Reimplement in terms of rtx_reader::unread_char.
11506 (read_md_files): Delete.
11507 * read-rtl.c (read_rtx_code): Update for deletion of globals
11508 read_md_filename and read_md_lineno.
11509
11510 2016-09-21 Jason Merrill <jason@redhat.com>
11511
11512 * input.h (from_macro_definition_at): New.
11513
11514 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
11515
11516 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
11517
11518 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
11519
11520 PR tree-optimization/77550
11521 * tree-vect-stmts.c (create_array_ref): Change parameters.
11522 (get_group_alias_ptr_type): New function.
11523 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
11524
11525 2016-09-21 Marek Polacek <polacek@redhat.com>
11526
11527 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
11528 Add falls through comment.
11529
11530 2016-09-21 Richard Biener <rguenther@suse.de>
11531
11532 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
11533 (replace_child): Likewise.
11534 (remove_child_TAG): Adjust.
11535 (move_marked_base_types): Likewise.
11536 (prune_unused_types_prune): Clear die_sib of removed children.
11537
11538 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
11539
11540 PR target/77326
11541 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
11542 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
11543
11544 2016-09-21 Richard Biener <rguenther@suse.de>
11545
11546 PR tree-optimization/77648
11547 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
11548 with complex RHS.
11549 (make_transitive_closure_constraints): Adjust comment.
11550 (make_any_offset_constraints): New function.
11551 (handle_rhs_call): Make sure to first expand a pointer to all
11552 subfields before transitively closing it.
11553 (handle_const_call): Likewise. Properly expand returned
11554 pointers as well.
11555 (handle_pure_call): Likewise.
11556
11557 2016-09-21 Richard Biener <rguenther@suse.de>
11558 Jakub Jelinek <jakub@redhat.com>
11559
11560 PR tree-optimization/77621
11561 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
11562 group at non-vectorizable stmts.
11563
11564 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
11565
11566 PR tree-optimization/72835
11567 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
11568 (make_new_ssa_for_all_defs): Likewise.
11569 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
11570
11571 2016-09-20 Martin Sebor <msebor@redhat.com>
11572
11573 PR middle-end/49905
11574 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
11575 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
11576 * config/linux.c (gnu_libc_printf_pointer_format): New function.
11577 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
11578 * config/sol2.c (solaris_printf_pointer_format): New function.
11579 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
11580 options.
11581 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
11582 * doc/tm.texi: Regenerate.
11583 * gimple-fold.h (get_range_strlen): New function.
11584 (get_maxval_strlen): Declare existing function.
11585 * gimple-fold.c (get_range_strlen): Add arguments and compute both
11586 maximum and minimum.
11587 (get_range_strlen): Define overload.
11588 (get_maxval_strlen): Adjust.
11589 * gimple-ssa-sprintf.c: New file and pass.
11590 * passes.def (pass_sprintf_length): Add new pass.
11591 * targhooks.h (default_printf_pointer_format): Declare new function.
11592 (gnu_libc_printf_pointer_format): Same.
11593 (solaris_libc_printf_pointer_format): Same.
11594 * targhooks.c (default_printf_pointer_format): Define new function.
11595 * tree-pass.h (make_pass_sprintf_length): Declare new function.
11596 * print-tree.c: Increase buffer size.
11597
11598 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
11599
11600 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
11601
11602 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
11603
11604 * common.opt: New option -fipa-vrp.
11605 * ipa-cp.c (ipa_get_vr_lat): New.
11606 (ipcp_vr_lattice::print): Likewise.
11607 (print_all_lattices): Call ipcp_vr_lattice::print.
11608 (ipcp_vr_lattice::meet_with): New.
11609 (ipcp_vr_lattice::meet_with_1): Likewise.
11610 (ipcp_vr_lattice::top_p): Likewise.
11611 (ipcp_vr_lattice::bottom_p): Likewsie.
11612 (ipcp_vr_lattice::set_to_bottom): Likewise.
11613 (set_all_contains_variable): Call VR set_to_bottom.
11614 (initialize_node_lattices): Init VR lattices.
11615 (propagate_vr_accross_jump_function): New.
11616 (propagate_constants_accross_call): Call
11617 propagate_vr_accross_jump_function.
11618 (ipcp_store_vr_results): New.
11619 (ipcp_driver): Handle VR.
11620 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
11621 (ipa_set_jf_unknown): Likewise.
11622 (ipa_compute_jump_functions_for_edge): Likewise.
11623 (ipa_node_params_t::duplicate): Likewise.
11624 (ipa_write_jump_function): Likewise.
11625 (ipa_read_jump_function): Likewise.
11626 (write_ipcp_transformation_info): Likewise.
11627 (read_ipcp_transformation_info): Likewise.
11628 (ipcp_update_vr): New.
11629 (ipcp_transform_function): Handle VR.
11630 * ipa-prop.h (struct ipa_vr): New.
11631 * cgraph.c: Include tree-vrp.h.
11632 * cgraphunit.c: Likewise.
11633 * ipa-utils.c: Likewise.
11634 * ipa.c: Likewise.
11635 * opts.c: Likewise.
11636 * toplev.c: Likewise.
11637 * ipa-devirt.c: Likewise.
11638 * ipa-inline-transform.c: Likewise.
11639 * ipa-inline.c: Likewise.
11640 * ipa-profile.c: Likewise.
11641
11642 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
11643
11644 * doc/invoke.texi: Document -fdump-tree-evrp.
11645 * passes.def: Define new pass_early_vrp.
11646 * timevar.def: Define new TV_TREE_EARLY_VRP.
11647 * tree-pass.h (make_pass_early_vrp): New.
11648 * tree-ssa-propagate.c: Make replace_uses_in non static.
11649 * tree-ssa-propagate.h: Export replace_uses_in.
11650 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
11651 (extract_range_from_assert): Factor out
11652 extract_range_for_var_from_comparison_expr.
11653 (vrp_initialize_lattice): New.
11654 (vrp_initialize): Factor out vrp_initialize_lattice.
11655 (vrp_valueize): Fix it to reject complex value ranges.
11656 (vrp_free_lattice): New.
11657 (evrp_dom_walker::before_dom_children): Likewise.
11658 (evrp_dom_walker::after_dom_children): Likewise.
11659 (evrp_dom_walker::push_value_range): Likewise.
11660 (evrp_dom_walker::pop_value_range): Likewise.
11661 (execute_early_vrp): Likewise.
11662 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
11663 (make_pass_early_vrp): New.
11664
11665 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
11666
11667 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
11668 instead of exact_log2.
11669
11670 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
11671
11672 PR target/77621
11673 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
11674 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
11675 (ix86_add_stmt_cost): Penalize DFmode vector operations
11676 for !TARGET_VECTORIZE_DOUBLE.
11677
11678 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
11679
11680 * doc/invoke.texi (Warning Options): Simplify language.
11681 (Optimize Options): Complete sentence.
11682
11683 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
11684
11685 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
11686 early_finish hook.
11687
11688 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
11689
11690 PR target/71395
11691 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
11692 inits on power8 and above, use the VMRGEW instruction instead of a
11693 permute.
11694
11695 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
11696 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
11697 initialization.
11698
11699 2016-09-20 Tamar Christina <tamar.christina@arm.com>
11700
11701 * config/aarch64/arm_neon.h
11702 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
11703 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
11704 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
11705
11706 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
11707
11708 * config/var/vax.h (ELIMINABLE_REGS): Define.
11709 (INITIAL_ELIMINATION_OFFSET): Define.
11710
11711 2016-09-20 Jakub Jelinek <jakub@redhat.com>
11712
11713 PR middle-end/77624
11714 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
11715 cast to void * if the cast is from some other pointer type.
11716
11717 2016-09-20 Richard Biener <rguenther@suse.de>
11718
11719 PR tree-optimization/77646
11720 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
11721 a VDEF.
11722
11723 2016-09-20 Tamar Christina <tamar.christina@arm.com>
11724
11725 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
11726 attributes to all inlined functions and make them extern.
11727
11728 2016-09-20 Richard Biener <rguenther@suse.de>
11729
11730 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
11731 hook.
11732 * debug.c (do_nothing_debug_hooks): Adjust.
11733 * dbxout.c (dbx_debug_hooks): Likewise.
11734 * sdbout.c (sdb_debug_hooks): Likewise.
11735 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
11736 (dwarf2out_finish): Move producer, filename and
11737 path annotation ...
11738 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
11739 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
11740
11741 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
11742
11743 PR c++/77434
11744 * doc/invoke.texi: Document -Wint-in-bool-context.
11745
11746 PR middle-end/77421
11747 * dwarf2out.c (output_loc_operands): Fix an assertion.
11748
11749 2016-09-19 Joseph Myers <joseph@codesourcery.com>
11750
11751 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
11752 (CR_DECIMAL_DIG): New macro.
11753
11754 2016-09-19 Joseph Myers <joseph@codesourcery.com>
11755
11756 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
11757 element.
11758
11759 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
11760
11761 PR rtl-optimization/77416
11762 * lra-remat.c (operand_to_remat): Process hard coded insn
11763 registers.
11764
11765 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11766
11767 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
11768 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
11769
11770 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
11771
11772 * target.def (lra_p): Wordsmithing.
11773 * doc/tm.texi: Regenerate.
11774
11775 2016-09-19 Jakub Jelinek <jakub@redhat.com>
11776 Jan Hubicka <jh@suse.cz>
11777
11778 PR target/77587
11779 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
11780 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
11781 Call ultimate_alias_target just once, not up to 4 times.
11782
11783 2016-09-19 Richard Biener <rguenther@suse.de>
11784
11785 * dwarf2out.c (early_dwarf_finished): New global.
11786 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
11787 is false.
11788 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
11789 if called from LTO exit early.
11790 (dwarf2out_late_global_decl): When being during the early
11791 debug phase do not add locations but only const value attributes.
11792 Adjust the way we generate early DIEs for LTO.
11793
11794 2016-09-19 Richard Biener <rguenther@suse.de>
11795
11796 PR middle-end/77605
11797 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
11798 proper niter to bound the loops.
11799
11800 2016-09-19 Richard Biener <rguenther@suse.de>
11801
11802 PR tree-optimization/77514
11803 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
11804 search for folded stmt.
11805
11806 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
11807
11808 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
11809 * tree-pass.h (make_pass_early_thread_jumps): Declare.
11810 * tree-ssa-threadbackward.c (fsm_find_thread_path,
11811 fsm_find_thread_path, profitable_jump_thread_path,
11812 fsm_find_control_statement_thread_paths,
11813 find_jump_threads_backwards): Add speed_p parameter.
11814 (pass_data_early_thread_jumps): New pass.
11815 (make_pass_early_thread_jumps): New function.
11816
11817 2016-09-17 Andreas Schwab <schwab@suse.de>
11818
11819 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
11820 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
11821
11822 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
11823
11824 * recog.c (rest_of_handle_split_after_reload): Delete.
11825 (pass_split_after_reload::gate): New method.
11826 (pass_split_after_reload::execute): Call split_all_insns directly.
11827
11828 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
11829
11830 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
11831 parameters for functions taking long long arguments.
11832
11833 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11834
11835 PR target/77613
11836 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
11837 splat with truncate.
11838
11839 2016-09-16 Jason Merrill <jason@redhat.com>
11840
11841 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
11842 New.
11843 * hwint.c (exact_log2): Use pow2p_hwi.
11844 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
11845 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
11846 * builtins.c (get_object_alignment_2, get_object_alignment)
11847 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
11848 least_bit_hwi.
11849 * calls.c (compute_argument_addresses, store_one_arg): Use
11850 least_bit_hwi.
11851 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
11852 * combine.c (force_to_mode): Use least_bit_hwi.
11853 (contains_muldiv, find_split_point, combine_simplify_rtx)
11854 (simplify_if_then_else, simplify_set, force_to_mode)
11855 (if_then_else_cond, simplify_and_const_int_1)
11856 (simplify_compare_const): Use pow2p_hwi.
11857 * cse.c (fold_rtx): Use pow2p_hwi.
11858 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
11859 Use least_bit_hwi.
11860 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
11861 (init_expmed_one_conv): Use pow2p_hwi.
11862 * expr.c (is_aligning_offset): Use pow2p_hwi.
11863 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
11864 (fold_binary_loc): Use pow2p_hwi.
11865 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
11866 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
11867 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
11868 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
11869 Use least_bit_hwi.
11870 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
11871 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
11872 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
11873 * omp-low.c (oacc_loop_fixed_partitions)
11874 (oacc_loop_auto_partitions): Use least_bit_hwi.
11875 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
11876 * stor-layout.c (place_field): Use least_bit_hwi.
11877 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
11878 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
11879 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
11880 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
11881 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
11882 * tree-vect-data-refs.c (vect_analyze_group_access_1)
11883 (vect_grouped_store_supported, vect_grouped_load_supported)
11884 (vect_permute_load_chain, vect_shift_permute_load_chain)
11885 (vect_transform_grouped_load): Use pow2p_hwi.
11886 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
11887 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
11888 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
11889 least_bit_hwi.
11890 * tsan.c (instrument_expr): Use least_bit_hwi.
11891 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
11892
11893 2016-09-16 Andreas Schwab <schwab@suse.de>
11894
11895 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
11896 OFFSET, not offset.
11897 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
11898
11899 2016-09-16 Jakub Jelinek <jakub@redhat.com>
11900
11901 PR target/77526
11902 * combine.c (rest_of_handle_combine): If any edges have been purged,
11903 free dominators if available.
11904
11905 2016-09-16 Jakub Jelinek <jakub@redhat.com>
11906 Eric Botcazou <ebotcazou@adacore.com>
11907
11908 PR middle-end/77594
11909 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
11910 through into expand_addsub_overflow after expand_neg_overflow.
11911
11912 2016-09-15 David Malcolm <dmalcolm@redhat.com>
11913
11914 * diagnostic-show-locus.c
11915 (selftest::test_fixit_insert_containing_newline): New function.
11916 (selftest::test_fixit_replace_containing_newline): New function.
11917 (selftest::diagnostic_show_locus_c_tests): Call the above.
11918
11919 2016-09-15 Bin Cheng <bin.cheng@arm.com>
11920
11921 PR tree-optimization/77503
11922 * tree-vect-loop.c (vectorizable_reduction): Record reduction
11923 code for CONST_COND_REDUCTION at analysis stage and use it at
11924 transform stage.
11925 * tree-vectorizer.h (struct _stmt_vec_info): New field.
11926 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
11927 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
11928 field.
11929
11930 2016-09-15 Richard Biener <rguenther@suse.de>
11931
11932 PR middle-end/77544
11933 * fold-const.c (split_tree): Do not split constant ~X.
11934
11935 2016-09-15 Jakub Jelinek <jakub@redhat.com>
11936
11937 PR rtl-optimization/77425
11938 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
11939 is NULL.
11940
11941 PR middle-end/77475
11942 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
11943 use %qs instead of %s where desirable, use argument instead of arg in
11944 the diagnostic wording, add list of supported strategies and
11945 spellcheck hint.
11946 (ix86_option_override_internal): Emit target("m...") instead of
11947 option("m...") in the diagnostic. Use %qs instead of %s in invalid
11948 -march/-mtune option diagnostic. Add list of supported arches/tunings
11949 and spellcheck hint. Remove prefix, suffix and sw variables, use
11950 main_args_p ? "..." : "..." in diagnostics to make translation
11951 possible.
11952
11953 2016-09-15 Richard Biener <rguenther@suse.de>
11954
11955 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
11956 extra offset argument.
11957 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
11958 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
11959 to reflect new offset parameter.
11960 * doc/tm.texi: Regenerate.
11961 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
11962 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
11963 offset argument.
11964 (darwin_asm_output_dwarf_offset): Likewise.
11965 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
11966 argument.
11967 (darwin_asm_output_dwarf_offset): Pass offset argument through.
11968 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
11969 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
11970
11971 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
11972
11973 PR fortran/72743
11974 * ipa-icf.c (set_alias_uids): New function.
11975 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
11976 all the merged variable's referring aliases.
11977
11978 2016-09-15 Richard Biener <rguenther@suse.de>
11979
11980 PR tree-optimization/77514
11981 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
11982 only forced_stmts sequence.
11983
11984 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
11985
11986 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
11987 * cfgexpand.c (update_alias_info_with_stack_vars): Use
11988 FOR_EACH_SSA_NAME to iterate over SSA variables.
11989 (pass_expand::execute): Likewise.
11990 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
11991 * tree-cfg.c (dump_function_to_file): Likewise.
11992 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
11993 (update_ssa): Likewise.
11994 * tree-ssa-alias.c (dump_alias_info): Likewise.
11995 * tree-ssa-ccp.c (ccp_finalize): Likewise.
11996 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
11997 (create_outofssa_var_map): Likewise.
11998 (coalesce_ssa_name): Likewise.
11999 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
12000 * tree-ssa-pre.c (compute_avail): Likewise.
12001 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
12002 (scc_vn_restore_ssa_info): Likewise.
12003 (free_scc_vn): Likwise.
12004 (run_scc_vn): Likewise.
12005 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
12006 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
12007 * tree-ssa-copy.c (fini_copy_prop): Likewise.
12008 * tree-ssa.c (verify_ssa): Likewise.
12009
12010 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
12011
12012 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
12013 and mips64r2 as default 32-bit and 64-bit architectures.
12014 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
12015 as default 32-bit and 64-bit architectures.
12016
12017 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
12018
12019 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
12020 of succ edge.
12021
12022 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
12023
12024 * target.def (lra_p): Change commentary (for the manual) for the
12025 new default.
12026 * doc/tm.texi: Regenerate.
12027
12028 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
12029
12030 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
12031 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
12032 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
12033 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
12034
12035 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
12036
12037 * targhooks.c (default_lra_p): Return true instead of false.
12038
12039 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
12040
12041 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
12042 hook_bool_void_false.
12043 * config/avr/avr.c: Ditto.
12044 * config/bfin/bfin.c: Ditto.
12045 * config/c6x/c6x.c: Ditto.
12046 * config/cr16/cr16.c: Ditto.
12047 * config/cris/cris.c: Ditto.
12048 * config/epiphany/epiphany.c: Ditto.
12049 * config/fr30/fr30.c: Ditto.
12050 * config/frv/frv.c: Ditto.
12051 * config/h8300/h8300.c: Ditto.
12052 * config/ia64/ia64.c: Ditto.
12053 * config/iq2000/iq2000.c: Ditto.
12054 * config/lm32/lm32.c: Ditto.
12055 * config/m32c/m32c.c: Ditto.
12056 * config/m32r/m32r.c: Ditto.
12057 * config/m68k/m68k.c: Ditto.
12058 * config/mcore/mcore.c: Ditto.
12059 * config/microblaze/microblaze.c: Ditto.
12060 * config/mmix/mmix.c: Ditto.
12061 * config/mn10300/mn10300.c: Ditto.
12062 * config/moxie/moxie.c: Ditto.
12063 * config/msp430/msp430.c: Ditto.
12064 * config/nios2/nios2.c: Ditto.
12065 * config/nvptx/nvptx.c: Ditto.
12066 * config/pa/pa.c: Ditto.
12067 * config/pdp11/pdp11.c: Ditto.
12068 * config/rl78/rl78.c: Ditto.
12069 * config/sparc/sparc.c: Ditto.
12070 * config/spu/spu.c: Ditto.
12071 * config/stormy16/stormy16.c: Ditto.
12072 * config/tilegx/tilegx.c: Ditto.
12073 * config/tilepro/tilepro.c: Ditto.
12074 * config/v850/v850.c: Ditto.
12075 * config/vax/vax.c: Ditto.
12076 * config/visium/visium.c: Ditto.
12077 * config/xtensa/xtensa.c: Ditto.
12078
12079 2016-09-14 Jakub Jelinek <jakub@redhat.com>
12080
12081 PR sanitizer/68260
12082 * tsan.c: Include target.h.
12083 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
12084 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
12085 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
12086 BUILT_IN_ATOMIC_TEST_AND_SET entries.
12087 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
12088
12089 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
12090 Martin Liska <mliska@suse.cz>
12091
12092 PR middle-end/77574
12093 * predict.c (force_edge_cold): Add braces to a condition.
12094
12095 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
12096
12097 PR rtl-optimization/77289
12098 * lra-constraints.c (get_final_hard_regno): Removed.
12099 (get_hard_regno): Add new parameter final_p.
12100 (get_reg_class): Directly call lra_get_elimination_hard_regno.
12101 (operands_match_p): Adjust call to get_hard_regno.
12102 (uses_hard_regs_p): Likewise.
12103 (process_alt_operands): Likewise.
12104
12105 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
12106
12107 PR target/70713
12108 * config/msp430/msp430.c (msp430_start_function): Emit an error
12109 if a function is both weak and specifies an interrupt number.
12110
12111 2016-09-13 Jakub Jelinek <jakub@redhat.com>
12112
12113 PR tree-optimization/77454
12114 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
12115 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
12116 Formatting fix.
12117
12118 2016-09-13 Tamar Christina <tamar.christina@arm.com>
12119
12120 * config/aarch64/aarch64-builtins.c
12121 (aarch64_init_simd_builtins): Fix builtin type signature printing.
12122
12123 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
12124
12125 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
12126 SFmode and SCmode arguments by reference.
12127
12128 2016-09-13 David Malcolm <dmalcolm@redhat.com>
12129
12130 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
12131 Rename to...
12132 (selftest::test_one_liner_fixit_insert_before): ...this, and update
12133 for renaming of add_fixit_insert to add_fixit_insert_before.
12134 (selftest::test_one_liner_fixit_insert_after): New function.
12135 (selftest::test_one_liner_fixit_validation_adhoc_locations):
12136 Update for renaming of add_fixit_insert to add_fixit_insert_before.
12137 (selftest::test_one_liner_many_fixits): Likewise.
12138 (selftest::test_diagnostic_show_locus_one_liner): Update for
12139 renaming, call new test function.
12140 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
12141 renaming of add_fixit_insert to add_fixit_insert_before.
12142 (selftest::test_fixit_consolidation): Likewise.
12143 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
12144 Likewise.
12145 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
12146 (selftest::test_applying_fixits_insert_before): ...this.
12147 (selftest::test_applying_fixits_insert): Update for renaming of
12148 add_fixit_insert to add_fixit_insert_before.
12149 (selftest::test_applying_fixits_insert_after): New function.
12150 (selftest::test_applying_fixits_insert_after_at_line_end): New
12151 function.
12152 (selftest::test_applying_fixits_insert_after_failure): New function.
12153 (selftest::test_applying_fixits_multiple): Update for renaming of
12154 add_fixit_insert to add_fixit_insert_before.
12155 (selftest::change_line): Likewise.
12156 (selftest::test_applying_fixits_unreadable_file): Likewise.
12157 (selftest::test_applying_fixits_line_out_of_range): Likewise.
12158 (selftest::test_applying_fixits_column_validation): Likewise.
12159 (selftest::test_applying_fixits_column_validation): Likewise.
12160 (selftest::edit_context_c_tests): Update for renamed test function;
12161 call new test functions.
12162
12163 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
12164
12165 PR tree-optimization/77536
12166 PR rtl-optimization/68212
12167 * config/rs6000/rs6000.md (div->recip splitter): Remove
12168 optimize_insn_for_speed_p condition.
12169
12170 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
12171
12172 * optabs.c (prepare_cmp_insn): Update documentation comment.
12173
12174 2016-09-13 Jakub Jelinek <jakub@redhat.com>
12175 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12176
12177 PR middle-end/77475
12178 * opts.h (candidates_list_and_hint): Declare.
12179 * opts-common.c (candidates_list_and_hint): New function.
12180 (cmdline_handle_error): Use it.
12181
12182 2016-09-12 David Malcolm <dmalcolm@redhat.com>
12183
12184 * edit-context.c (edited_line::get_len): New accessor.
12185 (edited_file::print_diff): Split out hunk-printing into...
12186 (edited_file::print_diff_hunk): New method.
12187 (edited_file::print_diff_line): New method.
12188
12189 2016-09-12 Andrew Pinski <apinski@cavium.com>
12190
12191 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
12192 New tuning option.
12193 * config/aarch64/aarch64.c (thunderx_tunings): Enable
12194 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
12195 (aarch64_operands_ok_for_ldpstp): Return false if
12196 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
12197 was SImode and the alignment is less than 8 byte.
12198 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
12199
12200 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
12201
12202 PR target/77570
12203 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
12204
12205 2016-09-12 Marek Polacek <polacek@redhat.com>
12206
12207 * doc/extend.texi: Use lowercase "boolean".
12208 * doc/invoke.texi: Likewise.
12209 * doc/md.texi: Likewise.
12210 * target.def: Likewise.
12211 * doc/tm.texi: Regenerated.
12212
12213 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12214
12215 PR middle-end/77426
12216 * expmed.c (synth_mult): Delete duplicate mode check.
12217
12218 2016-09-10 Tom de Vries <tom@codesourcery.com>
12219
12220 PR C/71602
12221 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
12222 va_list type only.
12223 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
12224 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
12225
12226 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
12227
12228 PR rtl-optimization/77289
12229 * lra-constraints.c (get_final_hard_regno): Add support for non hard
12230 register numbers. Remove support for subregs.
12231 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
12232 (get_reg_class): Delete removed get_final_hard_regno() argument.
12233 (uses_hard_regs_p): Call get_final_hard_regno().
12234
12235 2016-09-09 Martin Sebor <msebor@redhat.com>
12236
12237 PR c/77520
12238 PR c/77521
12239 * pretty-print.c (pp_quoted_string): New function.
12240 (pp_format): Call it for %c and %s directives.
12241
12242 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
12243
12244 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
12245 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
12246 INITIAL_ELIMINATION_OFFSET) : Update documentation.
12247 * target.def (frame_pointer_required, can_eliminate): Likewise.
12248 * doc/tm.texi: Regenerated.
12249 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
12250 ELIMINABLE_REGS.
12251 * df-scan.c (df_hard_reg_init): Likewise.
12252 * ira.c (ira_setup_eliminable_regset): Likewise.
12253 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
12254 init_elim_table): Likewise.
12255 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
12256 set_initial_elim_offsets, update_eliminables,
12257 init_elim_table): Likewise.
12258 * rtlanal.c (get_initial_register_offset): Likewise.
12259 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
12260 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
12261 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
12262 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
12263 * config/fr30/fr30.h: Fix comment.
12264 * config/frv/frv.c: Likewise.
12265 * config/frv/frv.h: Likewise.
12266 * config/ft32/ft32.h: Likewise.
12267 * config/visium/visium.h: Likewise.
12268 * config/pa/pa64-linux.h: Likewise.
12269 * config/v850/v850.h: Likewise.
12270 * config/cris/cris.c: Likewise.
12271 * config/ia64/ia64.h: Likewise.
12272 * config/moxie/moxie.h: Likewise.
12273 * config/m32r/m32r.h: Likewise.
12274
12275 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
12276
12277 PR target/77267
12278 * config.in: Regenerate.
12279 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
12280 New macro.
12281 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
12282 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
12283 static-libmpxwrappers case.
12284 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
12285 MPX_LD_AS_NEEDED_GUARD_POP.
12286 * configure: Regenerate.
12287 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
12288 defined if linker support "--push-state"/"--pop-state".
12289
12290 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
12291
12292 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
12293
12294 2016-09-09 Joseph Myers <joseph@codesourcery.com>
12295
12296 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
12297 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
12298 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
12299 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
12300 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
12301 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
12302 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
12303 Document.
12304 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
12305 width macros from TS 18661-1.
12306 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
12307
12308 2016-09-08 Jakub Jelinek <jakub@redhat.com>
12309
12310 PR fortran/77516
12311 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
12312 OMP_CLAUSE_SAFELEN_EXPR.
12313
12314 2016-09-07 David Malcolm <dmalcolm@redhat.com>
12315
12316 * Makefile.in (OBJS): Add substring-locations.o.
12317 * langhooks-def.h (class substring_loc): New forward decl.
12318 (lhd_get_substring_location): New decl.
12319 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
12320 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
12321 * langhooks.c (lhd_get_substring_location): New function.
12322 * langhooks.h (class substring_loc): New forward decl.
12323 (struct lang_hooks): Add field get_substring_location.
12324 * substring-locations.c: New file, taking definition of
12325 format_warning_va and format_warning_at_substring from
12326 c-family/c-format.c, making them non-static.
12327 * substring-locations.h (class substring_loc): Move class here
12328 from c-family/c-common.h. Add and rewrite comments.
12329 (format_warning_va): New decl.
12330 (format_warning_at_substring): New decl.
12331 (get_source_location_for_substring): Add comment.
12332
12333 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
12334
12335 * config/i386/i386.c: Add 'U' suffix to processor feature bits
12336 to avoid -Wnarrowing warning.
12337 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
12338 * opts.c: Likewise for SANITIZER_OPT bitmasks.
12339
12340 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
12341
12342 * config/aarch64/aarch64.c (aarch64_legitimize_address):
12343 Avoid use of base_offset if offset already in range.
12344
12345 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
12346
12347 * config/sh/sh-protos.h (struct sh_atomic_model,
12348 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
12349 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
12350 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
12351 * config/sh/sh.h (struct sh_atomic_model,
12352 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
12353 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
12354 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
12355 Guard with __cplusplus.
12356
12357 2016-09-06 Jakub Jelinek <jakub@redhat.com>
12358
12359 PR target/69255
12360 * config/i386/i386.c (ix86_expand_builtin): For builtin with
12361 unsupported or unknown ISA, use expand_call.
12362
12363 2016-09-06 Martin Liska <mliska@suse.cz>
12364
12365 PR gcov-profile/77378
12366 PR gcov-profile/77466
12367 * tree-profile.c (tree_profiling): Detect whether target can use
12368 -fprofile-update=atomic.
12369
12370 2016-09-06 Richard Biener <rguenther@suse.de>
12371
12372 PR tree-optimization/77479
12373 * tree-vrp.c (update_value_range): Extend overflow handling to
12374 VARYING.
12375
12376 2016-09-05 Jakub Jelinek <jakub@redhat.com>
12377
12378 PR target/77476
12379 * config/i386/i386.md (isa): Add x64_avx512bw.
12380 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
12381 (kmov_isa): New mode attr.
12382 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
12383 (*zero_extend<mode>si2): Likewise.
12384 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
12385
12386 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
12387
12388 * doc/invoke.texi (SPU Options): nops -> NOPs.
12389 (x86 Options): Ditto.
12390
12391 2016-09-05 Jakub Jelinek <jakub@redhat.com>
12392
12393 PR middle-end/77475
12394 * toplev.c (process_options): Temporarily set input_location
12395 to UNKNOWN_LOCATION around targetm.target_option.override () call.
12396
12397 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
12398
12399 PR rtl-optimization/77452
12400 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
12401 inner-mode reference to a CONST_VECTOR constant in the constant pool.
12402
12403 2016-09-05 Marek Polacek <polacek@redhat.com>
12404
12405 PR c/77423
12406 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
12407
12408 2016-09-05 Jakub Jelinek <jakub@redhat.com>
12409
12410 PR other/77421
12411 * gensupport.c (alter_output_for_subst_insn): Remove redundant
12412 *insn_out == '*' test. Don't copy unnecessary to yet another
12413 memory buffer, and don't leak it.
12414
12415 PR rtl-optimization/77425
12416 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
12417
12418 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
12419
12420 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
12421
12422 2016-09-02 David Malcolm <dmalcolm@redhat.com>
12423
12424 * common.opt (fdiagnostics-generate-patch): New option.
12425 * diagnostic.c: Include "edit-context.h".
12426 (diagnostic_initialize): Initialize context->edit_context_ptr.
12427 (diagnostic_finish): Delete context->edit_context_ptr.
12428 (diagnostic_report_diagnostic): Add fix-it hints from the
12429 diagnostic to context->edit_context_ptr, if any.
12430 * diagnostic.h (class edit_context): Add forward decl.
12431 (struct diagnostic_context): Add field "edit_context_ptr".
12432 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
12433 -fdiagnostics-generate-patch.
12434 (-fdiagnostics-generate-patch): New item.
12435 * toplev.c: Include "edit-context.h".
12436 (process_options): Set global_dc->edit_context_ptr to a new
12437 edit_context if the options need one.
12438 (toplev::main): Handle -fdiagnostics-generate-patch by using
12439 global_dc->edit_context_ptr.
12440
12441 2016-09-02 Jakub Jelinek <jakub@redhat.com>
12442
12443 PR c/65467
12444 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
12445 map and firstprivate clauses on target construct for _Atomic
12446 qualified decls.
12447 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
12448 on target construct for _Atomic qualified decls.
12449 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
12450 decls.
12451 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
12452 _Atomic qualified arguments not mentioned in uniform clause.
12453
12454 2016-09-02 David Malcolm <dmalcolm@redhat.com>
12455
12456 * Makefile.in (OBJS-libcommon): Add edit-context.o.
12457 * diagnostic-color.c (color_dict): Add "diff-filename",
12458 "diff-hunk", "diff-delete", and "diff-insert".
12459 (parse_gcc_colors): Update default value of GCC_COLORS in comment
12460 to reflect above changes.
12461 * doc/invoke.texi (-fdiagnostics-color): Update description of
12462 default GCC_COLORS, and of the supported capabilities.
12463 * edit-context.c: New file.
12464 * edit-context.h: New file.
12465 * input.c (struct fcache): Add field "missing_trailing_newline".
12466 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
12467 true.
12468 (add_file_to_cache_tab): Likewise.
12469 (fcache::fcache): Likewise.
12470 (get_next_line): Update c->missing_trailing_newline.
12471 (location_missing_trailing_newline): New function.
12472 * input.h (location_missing_trailing_newline): New decl.
12473 * selftest-run-tests.c (selftest::run_tests): Call
12474 edit_context_c_tests.
12475 * selftest.h (edit_context_c_tests): New decl.
12476
12477 2016-09-02 Jakub Jelinek <jakub@redhat.com>
12478 Richard Biener <rguenth@suse.de>
12479
12480 PR tree-optimization/77444
12481 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
12482 as steptype, remove redundant initialization.
12483
12484 2016-09-02 Jakub Jelinek <jakub@redhat.com>
12485
12486 PR sanitizer/77396
12487 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
12488 (sanopt_optimize_walker): Optimize away
12489 __asan_before_dynamic_init (...) followed by
12490 __asan_after_dynamic_init () without intervening memory loads/stores.
12491 * ipa-pure-const.c (special_builtin_state): Handle
12492 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
12493 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
12494
12495 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12496
12497 * cfg.c (free_original_copy_tables): Replace second assignment of
12498 bb_copy = NULL by bb_original = NULL.
12499
12500 2016-09-02 Jakub Jelinek <jakub@redhat.com>
12501
12502 PR other/77421
12503 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
12504 assignment added in r216794.
12505
12506 2016-09-02 David Malcolm <dmalcolm@redhat.com>
12507
12508 * Makefile.in (OBJS): Add typed-splay-tree.o.
12509 * selftest-run-tests.c (selftest::run_tests): Call
12510 typed_splay_tree_c_tests.
12511 * selftest.h (typed_splay_tree_c_tests): New decl.
12512 * typed-splay-tree.c: New file.
12513 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
12514 (typed_splay_tree::max): New method.
12515 (typed_splay_tree::min): New method.
12516 (typed_splay_tree::foreach): New method.
12517 (typed_splay_tree::closure): New struct.
12518 (typed_splay_tree::inner_foreach_fn): New function.
12519
12520 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12521
12522 * ipa-cp.c (ipcp_store_bits_results): Change option name from
12523 -fipa-cp-bit to -fipa-bit-cp.
12524
12525 2016-09-01 Martin Sebor <msebor@redhat.com>
12526
12527 PR tree-optimization/71831
12528 * tree-object-size.h: Return bool instead of the size and add
12529 argument for the size.
12530 * tree-object-size.c (compute_object_offset): Update signature.
12531 (addr_object_size): Same.
12532 (compute_builtin_object_size): Return bool instead of the size
12533 and add argument for the size. Handle POINTER_PLUS_EXPR when
12534 optimization is disabled.
12535 (expr_object_size): Adjust.
12536 (plus_stmt_object_size): Adjust.
12537 (pass_object_sizes::execute): Adjust.
12538 * builtins.c (fold_builtin_object_size): Adjust.
12539 * doc/extend.texi (Object Size Checking): Update.
12540 * ubsan.c (instrument_object_size): Adjust.
12541
12542 2016-09-01 Martin Sebor <msebor@redhat.com>
12543
12544 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
12545 it fits the output of the formatted function regardless of its
12546 arguments.
12547 * genmodes.c (parser::parse_expr): Same.
12548 * gimplify.c (gimplify_asm_expr): Same.
12549 * passes.c (pass_manager::register_one_dump_file): Same.
12550 * print-tree.c (print_node): Same.
12551
12552 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
12553
12554 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
12555
12556 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
12557
12558 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
12559
12560 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
12561
12562 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
12563 * config/rs6000/vector.md: Ditto.
12564 * config/rs6000/vsx.md: Ditto.
12565
12566 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
12567
12568 * ipa-inline-analysis.c (param_change_prob): Get to the base object
12569 first in all cases.
12570
12571 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
12572
12573 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
12574 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
12575 *return_and_restore_gpregs_<mode>_r11,
12576 *return_and_restore_gpregs_<mode>_r12,
12577 *return_and_restore_gpregs_<mode>_r1,
12578 *return_and_restore_fpregs_<mode>_r11,
12579 *return_and_restore_fpregs_<mode>_r12,
12580 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
12581 directly instead of via the "l" constraint. Renumber operands.
12582 Fix whitespace.
12583
12584 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
12585
12586 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
12587 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
12588 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
12589 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
12590 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
12591 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
12592 *call_value_nonlocal_darwin64, reload_macho_picbase,
12593 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
12594 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
12595 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
12596 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
12597 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
12598 *save_fpregs_<mode>_r1): Ditto.
12599 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
12600 *return_and_restore_gpregs_spe): Ditto.
12601
12602 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
12603
12604 * config/rs6000/rs6000.md
12605 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
12606 the use of the link register.
12607 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
12608
12609 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12610 Michael Meissner <meissner@linux.vnet.ibm.com>
12611
12612 PR target/72827
12613 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
12614 reg+reg addressing for TImode.
12615 (rs6000_legitimate_address_p): Only allow register indirect
12616 addressing for TImode, even without TARGET_QUAD_MEMORY.
12617
12618 2016-09-01 Richard Biener <rguenther@suse.de>
12619
12620 PR middle-end/77436
12621 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
12622 check whether the result fits the desired result type.
12623
12624 2016-09-01 Nathan Sidwell <nathan@acm.org>
12625
12626 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
12627
12628 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
12629
12630 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
12631 New function.
12632 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
12633
12634 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12635
12636 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
12637 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
12638 for comparisons of integer ZERO_EXTEND against zero.
12639
12640 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
12641
12642 * config/i386/i386.c (ix86_option_override_internal): Also disable the
12643 STV pass if -mstackrealign is enabled.
12644
12645 2016-08-31 Ilya Verbin <iverbin@gmail.com>
12646
12647 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
12648 AVX512IFMA.
12649
12650 2016-08-31 David Malcolm <dmalcolm@redhat.com>
12651
12652 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
12653 (layout_range::intersects_line_p): New method.
12654 (test_range_contains_point_for_single_point): Rename to...
12655 (test_layout_range_for_single_point): ...this, and add testing
12656 for layout_range::intersects_line_p.
12657 (test_range_contains_point_for_single_line): Rename to...
12658 (test_layout_range_for_single_line): ...this, and add testing
12659 for layout_range::intersects_line_p.
12660 (test_range_contains_point_for_multiple_lines): Rename to...
12661 (test_layout_range_for_multiple_lines): ...this, and add testing
12662 for layout_range::intersects_line_p.
12663 (layout::layout): Populate m_fixit_hints.
12664 (layout::get_expanded_location): Handle the case of a line-span
12665 for a fix-it hint.
12666 (layout::validate_fixit_hint_p): New method.
12667 (get_line_span_for_fixit_hint): New function.
12668 (layout::calculate_line_spans): Add spans for fixit-hints.
12669 (layout::should_print_annotation_line_p): New method.
12670 (layout::print_any_fixits): Drop param "richloc", instead using
12671 validated fixits in m_fixit_hints. Add "const" to hint pointers.
12672 (diagnostic_show_locus): Avoid printing blank annotation lines.
12673 (selftest::test_diagnostic_context::test_diagnostic_context):
12674 Initialize show_column and start_span.
12675 (selftest::test_diagnostic_context::start_span_cb): New static
12676 function.
12677 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
12678 (selftest::diagnostic_show_locus_c_tests): Update for function
12679 renamings. Call test_diagnostic_show_locus_fixit_lines.
12680
12681 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
12682
12683 PR tree-optimization/73714
12684 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
12685
12686 2016-08-31 David Malcolm <dmalcolm@redhat.com>
12687
12688 * selftest.c: Move "namespace selftest {" to top of file,
12689 removing explicit "selftest::" qualifiers throughout.
12690
12691 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
12692
12693 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
12694 New types.
12695 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
12696 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
12697 Replace builtin with vector extension.
12698 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
12699 New types.
12700 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
12701 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
12702 Replace builtin with vector extension.
12703 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
12704 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
12705 Replace builtin with vector extension.
12706 * config/i386/xmmintrin.h (__m128_u): New type.
12707 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
12708 (_mm_load_ps, _mm_store_ps): Simplify.
12709
12710 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
12711
12712 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
12713
12714 2016-08-30 David Malcolm <dmalcolm@redhat.com>
12715
12716 * diagnostic-show-locus.c (colorizer::begin_state): Support more
12717 than 3 ranges per diagnostic by alternating between color 1 and
12718 color 2.
12719 (layout::layout): Replace use of rich_location::MAX_RANGES
12720 with richloc->get_num_locations ().
12721 (layout::calculate_line_spans): Replace use of
12722 rich_location::MAX_RANGES with m_layout_ranges.length ().
12723 (layout::print_annotation_line): Handle arbitrary numbers of
12724 ranges in caret-printing by defaulting to '^'.
12725 (selftest::test_one_liner_many_fixits): New function.
12726 (test_diagnostic_show_locus_one_liner): Call it.
12727 * diagnostic.c (diagnostic_initialize): Update for renaming
12728 of rich_location::MAX_RANGES to
12729 rich_location::STATICALLY_ALLOCATED_RANGES.
12730 * diagnostic.h (struct diagnostic_context): Likewise.
12731
12732 2016-08-30 David Malcolm <dmalcolm@redhat.com>
12733
12734 * selftest.c (selftest::named_temp_file::named_temp_file): New
12735 ctor.
12736 (selftest::temp_source_file::~temp_source_file): Move to...
12737 (selftest::named_temp_file::~named_temp_file): ...here.
12738 (selftest::test_named_temp_file): New function.
12739 (selftest::selftest_c_tests): Call test_named_temp_file.
12740 * selftest.h (class named_temp_file): New class.
12741 (class temp_source_file): Convert to a subclass of named_temp_file.
12742
12743 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
12744
12745 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
12746 USEs of LR_REGNO in returns and sibcalls.
12747 (rs6000_output_mi_thunk): Similar.
12748 (rs6000_sibcall_aix): Similar.
12749 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
12750 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
12751 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
12752 Remove the USE of LR_REGNO from the patterns as well. Delete an
12753 obsolete comment.
12754 (return_internal_<mode>): Delete.
12755
12756 2016-08-30 Tamar Christina <tamar.christina@arm.com>
12757
12758 * config/aarch64/aarch64-simd.md
12759 (aarch64_ld2<mode>_dreg_le): New.
12760 (aarch64_ld2<mode>_dreg_be): New.
12761 (aarch64_ld2<mode>_dreg): Removed.
12762 (aarch64_ld3<mode>_dreg_le): New.
12763 (aarch64_ld3<mode>_dreg_be): New.
12764 (aarch64_ld3<mode>_dreg): Removed.
12765 (aarch64_ld4<mode>_dreg_le): New.
12766 (aarch64_ld4<mode>_dreg_be): New.
12767 (aarch64_ld4<mode>_dreg): Removed.
12768 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
12769
12770 2016-08-30 David Malcolm <dmalcolm@redhat.com>
12771
12772 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
12773 redundant location param.
12774 (test_one_liner_fixit_remove): Likewise.
12775 (test_one_liner_fixit_replace): Likewise.
12776 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
12777 * gcc-rich-location.c
12778 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
12779 get_range_from_loc. Drop overload taking a const char *.
12780 * gcc-rich-location.h
12781 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
12782 a const char *.
12783
12784 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
12785
12786 * config/linux.c (linux_libc_has_function): Return true on musl.
12787
12788 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
12789
12790 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
12791
12792 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
12793
12794 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
12795 used for abnormal egdes.
12796
12797 2016-08-30 Jakub Jelinek <jakub@redhat.com>
12798
12799 PR tree-optimization/72866
12800 * tree-vect-patterns.c (search_type_for_mask): Turn into
12801 a small wrapper, move all code to ...
12802 (search_type_for_mask_1): ... this new function. Add caching
12803 and adjust recursive calls.
12804
12805 PR debug/77363
12806 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
12807 instead of lookup_type_die (type_main_variant (type)) even for array
12808 types.
12809
12810 PR middle-end/77377
12811 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
12812 constant pool reference return x instead of c.
12813
12814 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
12815
12816 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
12817 include MQ.
12818
12819 2016-08-29 David Malcolm <dmalcolm@redhat.com>
12820
12821 * input.c
12822 (selftest::test_make_location_nonpure_range_endpoints): Fix
12823 header comment.
12824
12825 2016-08-29 David Malcolm <dmalcolm@redhat.com>
12826
12827 * diagnostic-show-locus.c
12828 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
12829 function.
12830 (selftest::test_diagnostic_show_locus_one_liner): Call it.
12831 * input.c (get_pure_location): Move to libcpp/line-map.c.
12832 * input.h (get_pure_location): Convert decl to an inline function
12833 calling implementation in libcpp.
12834
12835 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
12836
12837 PR target/77403
12838 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
12839 template for intel asm dialect.
12840 (vec_set_hi_<mode><mask_name>): Ditto.
12841
12842 2016-08-29 David Malcolm <dmalcolm@redhat.com>
12843
12844 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
12845 (selftest::fail_formatted): Likewise.
12846
12847 2016-08-29 David Malcolm <dmalcolm@redhat.com>
12848
12849 * input.c (make_location): Call get_start and get_finish
12850 on the endpoints to avoid storing packed ranges or ad-hoc
12851 ranges in them.
12852 (selftest::test_make_location_nonpure_range_endpoints): New function.
12853 (selftest::input_c_tests): Call it.
12854 * input.h (get_start): New inline function.
12855
12856 2016-08-29 Tom de Vries <tom@codesourcery.com>
12857
12858 PR c/77398
12859 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
12860 with assert.
12861
12862 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
12863
12864 * Makefile.in (gcov-iov.h): Add dummy recipe.
12865
12866 2016-08-29 Nathan Sidwell <nathan@acm.org>
12867
12868 * config/nvptx/nvptx.c: #include tree-vrp.h.
12869
12870 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
12871
12872 PR target/77324
12873 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
12874 HIGH+LO construct during reload.
12875
12876 2016-08-28 Tom de Vries <tom@codesourcery.com>
12877
12878 PR lto/70955
12879 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
12880 'sysv_abi va_list' attribute.
12881 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
12882 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
12883 attributes.
12884
12885 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12886
12887 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
12888 * emit-rtl.c (unshare_all_rtl_1): Adjust.
12889 (unshare_all_rtl_again): Likewise.
12890 * function.c (assign_stack_local_1): Likewise.
12891 (assign_stack_temp_for_type): Likewise.
12892
12893 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12894
12895 * cfgbuild.c (make_edges): Adjust.
12896 * cfgrtl.c (can_delete_label_p): Likewise.
12897 * dwarf2cfi.c (create_trace_edges): Likewise.
12898 * except.c (sjlj_emit_dispatch_table): Likewise.
12899 * function.h (struct expr_status): make x_forced_labels a vector.
12900 * jump.c (rebuild_jump_labels_1): Adjust.
12901 * reload1.c (set_initial_label_offsets): Likewise.
12902 * stmt.c (force_label_rtx): Likewise.
12903 (expand_label): Likewise.
12904
12905 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12906
12907 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
12908
12909 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
12910
12911 PR tree-optimization/71077
12912 PR tree-optimization/68542
12913 * fold-const.c (fold_relational_const): Fix folding of
12914 VECTOR_CST comparisons that have a scalar boolean result type.
12915 (selftest::test_vector_folding): New static function.
12916 (selftest::fold_const_c_tests): Call it.
12917
12918 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
12919
12920 * doc/extend.texi (SPU Built-in Functions): Remove stale
12921 references to material formerly at IBM and Sony.
12922
12923 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
12924
12925 PR target/77349
12926 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
12927
12928 2016-08-26 David Malcolm <dmalcolm@redhat.com>
12929
12930 * diagnostic-show-locus.c
12931 (selftest::test_fixit_consolidation): New function.
12932 (selftest::diagnostic_show_locus_c_tests): Call it.
12933 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
12934 constructor based on source_range.
12935
12936 2016-08-26 David Malcolm <dmalcolm@redhat.com>
12937
12938 * diagnostic-color.c (color_dict): Add "fixit-insert" and
12939 "fixit-delete".
12940 (parse_gcc_colors): Update description of default GCC_COLORS.
12941 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
12942 (colorizer::set_fixit_insert): New method.
12943 (colorizer::set_fixit_delete): New method.
12944 (colorizer::get_color_by_name): New method.
12945 (colorizer::STATE_FIXIT_INSERT): New constant.
12946 (colorizer::STATE_FIXIT_DELETE): New constant.
12947 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
12948 fields in favor of new field "m_stop_color". Add fields
12949 "m_fixit_insert" and "m_fixit_delete".
12950 (colorizer::colorizer): Update for above changes. Replace
12951 colorize_start calls with calls to get_color_by_name.
12952 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
12953 STATE_FIXIT_DELETE. Update for field renamings.
12954 (colorizer::finish_state): Simplify by using m_stop_color,
12955 rather than multiple identical "*_ce" fields.
12956 (colorizer::get_color_by_name): New method.
12957 (layout::print_any_fixits): Print insertions and replacements
12958 using the "fixit-insert" color, and deletions using the
12959 "fixit-delete" color.
12960 * doc/invoke.texi (-fdiagnostics-color): Update description of
12961 default GCC_COLORS, and of the supported capabilities.
12962
12963 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
12964
12965 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
12966 current_function_static_stack_size variable with the static
12967 stack frame size of the current function when
12968 flag_stack_usage_info is enabled.
12969
12970 2016-08-26 Nathan Sidwell <nathan@acm.org>
12971
12972 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
12973 assignment inside if condition.
12974
12975 2016-08-26 Richard Biener <rguenther@suse.de>
12976
12977 PR tree-optimization/69047
12978 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
12979 extracts similar to what FRE does.
12980 (non_rewritable_mem_ref_base): Likewise.
12981
12982 2016-08-26 Joseph Myers <joseph@codesourcery.com>
12983
12984 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
12985 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
12986 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12987 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12988 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
12989 Likewise.
12990 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12991 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12992 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12993 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
12994 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12995
12996 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12997
12998 PR target/70473
12999 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
13000 reservation duration to 15 cycles.
13001 (cortex_a8_vfp_macs): Likewise.
13002 (cortex_a8_vfp_macd): Likewise.
13003 (cortex_a8_vfp_divs): Likewise.
13004 (cortex_a8_vfp_divd): Likewise.
13005
13006 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13007
13008 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
13009 (aarch_macro_fusion_pair_p): Use above to avoid early return.
13010
13011 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13012 Martin Jambhor <mjambor@suse.cz>
13013
13014 * common.opt: New option -fipa-bit-cp.
13015 * doc/invoke.texi: Document -fipa-bit-cp.
13016 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
13017 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
13018 * tree-ssa-ccp.h: New header file.
13019 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
13020 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
13021 Replace all occurences of tree parameter by two new params: signop, int.
13022 (bit_value_unop_1): Change to bit_value_unop and export it.
13023 Replace all occurences of tree parameter by two new params: signop,
13024 int.
13025 (bit_value_binop): Change call from bit_value_binop_1 to
13026 bit_value_binop.
13027 (bit_value_assume_aligned): Likewise.
13028 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
13029 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
13030 to ccp_finalize.
13031 (ccp_finalize): Skip processing if val->mask == 0.
13032 * ipa-cp.c: Include tree-ssa-ccp.h
13033 (ipcp_bits_lattice): New class.
13034 (ipcp_param_lattice (bits_lattice): New member.
13035 (print_all_lattices): Call ipcp_bits_lattice::print.
13036 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
13037 (initialize_node_lattices): Likewise.
13038 (propagate_bits_accross_jump_function): New function.
13039 (propagate_constants_accross_call): Call
13040 propagate_bits_accross_jump_function.
13041 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
13042 (ipcp_store_bits_results): New function.
13043 (ipcp_driver): Call ipcp_store_bits_results.
13044 * ipa-prop.h (ipa_bits): New struct.
13045 (ipa_jump_func): Add new member bits of type ipa_bits.
13046 (ipa_param_descriptor): Change decl to decl_or_type.
13047 (ipa_get_param): Change decl to decl_or_type and assert on
13048 PARM_DECL.
13049 (ipa_get_type): New function.
13050 (ipcp_transformation_summary): New member bits.
13051 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
13052 (ipa_populate_param_decls): Likewise.
13053 (ipa_dump_param): Likewise.
13054 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
13055 function.
13056 (ipa_set_jf_unknown): Set ipa_bits::known to false.
13057 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
13058 propagation.
13059 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
13060 (ipa_write_jump_function): Add streaming for ipa_bits.
13061 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
13062 (write_ipcp_transformation_info): Add streaming for ipa_bits
13063 summary for ltrans.
13064 (read_ipcp_transfomration_info): Add support for reading streamed
13065 ipa_bits.
13066 (ipcp_update_bits): New function.
13067 (ipcp_transform_function): Call ipcp_update_bits.
13068
13069 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
13070
13071 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
13072 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
13073
13074 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
13075
13076 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
13077
13078 2016-08-25 Richard Biener <rguenther@suse.de>
13079
13080 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
13081 Only add locations in late dwarf.
13082 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
13083 (dwarf2out_early_finish): But do it here.
13084
13085 2016-08-24 Michael Collison <michael.collison@linaro.org>
13086 Michael Collison <michael.collison@arm.com>
13087
13088 * config/arm/arm-modes.def: Add new condition code mode CC_V
13089 to represent the overflow bit.
13090 * config/arm/arm.c (maybe_get_arm_condition_code):
13091 Add support for CC_Vmode.
13092 (arm_gen_unlikely_cbranch): New function to generate common
13093 rtl conditional branches for overflow patterns.
13094 * config/arm/arm-protos.h: Add prototype for
13095 arm_gen_unlikely_cbranch.
13096 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
13097 addsi3_compareV_upper): New patterns to support signed
13098 builtin overflow add operations.
13099 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
13100 New patterns to support unsigned builtin add overflow operations.
13101 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
13102 builtin overflow subtract operations,
13103 (usubv<mode>4): New patterns to support unsigned builtin subtract
13104 overflow operations.
13105 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
13106 to support builtin overflow negate operations.
13107
13108 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13109
13110 Revert
13111 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
13112
13113 * explow.c (get_dynamic_stack_size): Take known alignment of stack
13114 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
13115 needed.
13116
13117 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
13118
13119 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
13120 MULTILIB_OPTIONS should be used. Small wording fixes.
13121 * genmultilib: Memorize set of all option combinations in
13122 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
13123 found in MULTILIB_OPTIONS by checking if option set is listed in
13124 combination_space. Output new and existing error message to stderr.
13125
13126 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
13127
13128 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
13129 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
13130 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
13131 (MULTILIB_REUSE): Remove reuse rules for option set including
13132 -mfpu=fp-armv8 and -mfpu=vfpv4
13133
13134 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
13135
13136 * config/arm/t-rtems: Add vfp multilib.
13137
13138 2016-08-23 Ian Lance Taylor <iant@golang.org>
13139
13140 * config/s390/s390.c (s390_asm_file_start): Call
13141 default_file_start.
13142
13143 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13144
13145 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
13146 initialization of all 0's to the 0 constant, instead of directly
13147 generating XOR. Add support for V4SImode vector initialization on
13148 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
13149 initialization. Change variables used in V4SFmode vector
13150 intialization. For V4SFmode vector splat on ISA 3.0, make sure
13151 any memory addresses are in index form. Add support for using
13152 VSPLTH/VSPLTB to initialize vector short and vector char vectors
13153 with all of the same element.
13154 (regno_or_subregno): New helper function to return a register
13155 number for either REG or SUBREG.
13156 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
13157 Use regno_or_subregno where possible.
13158 (rs6000_split_v4si_init_di_reg): New helper function to build up a
13159 DImode value from two SImode values in order to generate V4SImode
13160 vector initialization on 64-bit systems with direct move.
13161 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
13162 initialization.
13163 (rtx_is_swappable_p): V4SImode vector initialization insn is not
13164 swappable.
13165 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
13166 declaration.
13167 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
13168 attributes to initialize V8HImode and V16QImode vectors with the
13169 same element.
13170 (VSX_SPLAT_COUNT): Likewise.
13171 (VSX_SPLAT_SUFFIX): Likewise.
13172 (UNSPEC_VSX_VEC_INIT): New unspec.
13173 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
13174 Allow SFmode values to come from Altivec registers.
13175 (vsx_init_v4si): New insn/split for V4SImode vector initialization
13176 on 64-bit systems with direct move.
13177 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
13178 vector initializations, to allow V4SImode vector initializations
13179 on 64-bit systems with direct move.
13180 (vsx_splat_v4si): Likewise.
13181 (vsx_splat_v4si_di): Likewise.
13182 (vsx_splat_v4sf): Likewise.
13183 (vsx_splat_v4sf_internal): Likewise.
13184 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
13185 register classes.
13186 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
13187 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
13188 initializing V8HImode and V16QImode vectors with the same
13189 element.
13190 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
13191 optimization if -maltivec=be.
13192
13193 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
13194
13195 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
13196 attribute for alternatives 3 and 4.
13197
13198 2016-08-23 David Malcolm <dmalcolm@redhat.com>
13199
13200 * selftest.c (selftest::assert_str_contains): New function.
13201 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
13202 * selftest.h (selftest::assert_str_contains): New decl.
13203 (ASSERT_STR_CONTAINS): New macro.
13204
13205 2016-08-23 Richard Biener <rguenther@suse.de>
13206
13207 PR tree-optimization/77286
13208 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
13209 the CFG here.
13210 (vect_transform_loop): Split exit edges of loop and scalar
13211 loop if required and at the appropriate time.
13212
13213 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
13214
13215 * explow.c (get_dynamic_stack_size): Take known alignment of stack
13216 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
13217 needed.
13218 Correct a typo in a comment.
13219
13220 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
13221
13222 * config/s390/s390.md ("*andc_split"): New splitter for and with
13223 complement.
13224
13225 2016-08-23 Richard Biener <rguenther@suse.de>
13226
13227 PR tree-optimization/27336
13228 * tree-vrp.c (infer_value_range): Handle stmts that can throw
13229 by looking for a non-EH edge.
13230 (process_assert_insertions_for): Likewise.
13231
13232 2016-08-23 Richard Biener <rguenther@suse.de>
13233
13234 PR middle-end/77305
13235 * statistics.c (statistics_counter_event): Robustify against
13236 NULL current_pass.
13237
13238 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
13239
13240 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
13241 for targets amdfam10 and barcelona.
13242
13243 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
13244
13245 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
13246 (zero_extend<mode>di2): Ditto.
13247 (*zero_extend<mode>si2): Ditto.
13248 (*zero_extendqihi2): Ditto.
13249
13250 2016-08-22 Joseph Myers <joseph@codesourcery.com>
13251
13252 PR middle-end/77269
13253 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
13254 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
13255
13256 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
13257
13258 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
13259 identical consecutive elements.
13260 [SSA_NAME]: Print the name's def stmt on its own line. When printing
13261 the node's def stmt, avoid printing an unwanted trailing newline by
13262 replacing the call to print_gimple_stmt() with its inlined body and
13263 adjusting it to not set pp_needs_newline and to call pp_flush()
13264 instead of pp_newline_and_flush().
13265
13266 2016-08-22 Joseph Myers <joseph@codesourcery.com>
13267
13268 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
13269 (float32_type_node, float64_type_node, float32x_type_node)
13270 (float128x_type_node): New macros.
13271 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
13272 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
13273 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
13274 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
13275 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
13276 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
13277 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
13278 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
13279 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
13280 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
13281 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
13282 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
13283 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
13284 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
13285 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
13286 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
13287 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
13288 (copysign, fabs, huge_val, inf, nan, nans): Use it.
13289 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
13290 and copysign.
13291 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
13292 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
13293 * doc/extend.texi (Other Builtins): Document these built-in
13294 functions.
13295 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
13296 for nan and nans.
13297
13298 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
13299
13300 * doc/install.texi (Binaries): www.opencsw.org now uses https.
13301
13302 2016-08-22 Richard Biener <rguenther@suse.de>
13303
13304 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
13305
13306 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
13307
13308 PR target/77270
13309 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
13310 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
13311 non-SSE2 athlons only, otherwise prefer SSE prefetches.
13312
13313 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
13314
13315 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
13316 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
13317 (vrp_visit_switch_stmt): Likewise.
13318 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
13319 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
13320 (vrp_visit_stmt): Use extract_range_from_stmt.
13321 (vrp_visit_phi_node): Use extract_range_from_phi_node.
13322
13323 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
13324
13325 * Makefile.in: Add tree-vrp.h to GTFILES.
13326 * gengtype.c (open_base_files): Add tree-vrp.h.
13327 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
13328 * builtins.c: Likewise.
13329 * fold-const.c: Likewise.
13330 * gimple-builder.c: Likewise.
13331 * gimple-laddress.c: Likewise.
13332 * hsa-gen.c: Likewise.
13333 * internal-fn.c: Likewise.
13334 * ssa.h: Likewise.
13335 * targhooks.c: Liewise,
13336 * tree-ssa-address.c: Likewise.
13337 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
13338 * tree-vrp.c (struct value_range): Move to tree-vrp.h
13339 * tree-vrp.h: New file.
13340
13341 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
13342
13343 PR tree-optimization/61839
13344 * tree-vrp.c (two_valued_val_range_p): New.
13345 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
13346 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
13347 Also Convert VAR BINOP CST where VAR is two-valued to
13348 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
13349
13350 2016-08-19 David Malcolm <dmalcolm@redhat.com>
13351
13352 * diagnostic-show-locus.c
13353 (layout::annotation_line_showed_range_p): New method.
13354 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
13355 Reimplement case fixit_hint::REPLACE to cover removals, and
13356 replacements where the range of the replacement isn't one
13357 of the ranges in the rich_location.
13358 (test_one_liner_fixit_replace): Likewise.
13359 (selftest::test_one_liner_fixit_replace_non_equal_range): New
13360 function.
13361 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
13362 New function.
13363 (selftest::test_diagnostic_show_locus_one_liner): Call the new
13364 functions.
13365 * diagnostic.c (print_parseable_fixits): Remove case
13366 fixit_hint::REMOVE.
13367
13368 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
13369
13370 PR target/77270
13371 * config/i386/i386.c (ix86_option_override_internal): Remove
13372 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
13373 Enable SSE prefetch also for TARGET_PREFETCHWT1.
13374 Do not try to enable TARGET_PRFCHW ISA flag here.
13375 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
13376 Rewrite expander function body.
13377 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
13378
13379 2016-08-19 Joseph Myers <joseph@codesourcery.com>
13380
13381 PR c/32187
13382 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
13383 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
13384 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
13385 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
13386 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
13387 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
13388 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
13389 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
13390 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
13391 tree_index values.
13392 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
13393 macros.
13394 (struct floatn_type_info): New structure type.
13395 (floatn_nx_types): New variable declaration.
13396 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
13397 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
13398 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
13399 * tree.c (floatn_nx_types): New variable.
13400 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
13401 corresponding complex types.
13402 * target.def (floatn_mode): New hook.
13403 * targhooks.c: Include "real.h".
13404 (default_floatn_mode): New function.
13405 * targhooks.h (default_floatn_mode): New prototype.
13406 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
13407 types.
13408 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
13409 effective-target and dg-add-options keywords.
13410 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
13411 Document new effective-target keywords.
13412 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
13413 * doc/tm.texi: Regenerate.
13414 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
13415 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
13416 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
13417 18661-3.
13418 * real.h (struct real_format): Add field ieee_bits.
13419 * real.c (ieee_single_format, mips_single_format)
13420 (motorola_single_format, spu_single_format, ieee_double_format)
13421 (mips_double_format, motorola_double_format)
13422 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
13423 (ieee_extended_intel_128_format)
13424 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
13425 (mips_extended_format, ieee_quad_format, mips_quad_format)
13426 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
13427 (decimal_double_format, decimal_quad_format, ieee_half_format)
13428 (arm_half_format, real_internal_format: Initialize ieee_bits
13429 field.
13430 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
13431 float128_type_node. Set float80_type_node to float64x_type_node
13432 if appropriate and long_double_type_node not appropriate.
13433 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
13434 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
13435 Initialize ieee_bits field.
13436 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
13437 (rs6000_init_builtins): Set ieee128_float_type_node to
13438 float128_type_node.
13439 (rs6000_floatn_mode): New function.
13440
13441 2016-08-19 Jakub Jelinek <jakub@redhat.com>
13442
13443 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
13444 _rdseed64_step): Uglify argument names and/or local variable names
13445 in inline functions.
13446 * config/i386/rtmintrin.h (_xabort): Likewise.
13447 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
13448 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
13449 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
13450 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
13451 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
13452 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
13453 _mm_maskz_ternarylogic_epi32): Likewise.
13454 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
13455 __lwpins32, __lwpins64): Likewise.
13456 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
13457 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
13458 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
13459 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
13460 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
13461 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
13462 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
13463 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
13464 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
13465 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
13466 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
13467 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
13468 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
13469 _mm256_mask_i64gather_epi32): Likewise.
13470 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
13471 * config/i386/ia32intrin.h (__writeeflags): Likewise.
13472 * config/i386/pkuintrin.h (_wrpkru): Likewise.
13473 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
13474 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
13475 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
13476 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
13477 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
13478 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
13479 _mm512_mask_prefetch_i64scatter_ps): Likewise.
13480 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
13481 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
13482 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
13483 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
13484 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
13485 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
13486 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
13487 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
13488
13489 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
13490 returning void.
13491 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
13492 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
13493 Likewise.
13494 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
13495 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
13496 function name.
13497 (_rdpkru_u32): Add space after function name.
13498
13499 * config/i386/t-i386 (i386-c.o): Don't depend on
13500 i386-builtin-types.inc.
13501 (i386.o): Depend on i386-builtin-types.inc.
13502
13503 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
13504
13505 PR target/77281
13506 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
13507 Use const_vec_duplicate to check for duplicated elements.
13508
13509 2016-08-19 Richard Biener <rguenther@suse.de>
13510
13511 PR tree-optimization/77290
13512 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
13513 Fix flag_tree_parallelize_loops check.
13514
13515 2016-08-19 Richard Biener <rguenther@suse.de>
13516
13517 * match.pd (x | 0 -> x): Add.
13518
13519 2016-08-19 Richard Biener <rguenther@suse.de>
13520
13521 PR tree-optimization/77286
13522 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
13523 Deal with virtual PHIs being out-of-order.
13524
13525 2016-08-18 David Malcolm <dmalcolm@redhat.com>
13526
13527 * doc/invoke.texi (fverbose-asm): Note that source code lines
13528 are emitted, and provide an example.
13529 * final.c (asm_show_source): New function.
13530 (final_scan_insn): Call asm_show_source.
13531
13532 2016-08-18 David Malcolm <dmalcolm@redhat.com>
13533
13534 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
13535 param with diagnostic_kind.
13536 (class colorizer): Similarly replace field m_diagnostic with
13537 m_diagnostic_kind.
13538 (colorizer::colorizer): Replace diagnostic
13539 param with diagnostic_kind.
13540 (colorizer::begin_state): Update for above field change.
13541 (layout::layout): Replace diagnostic param with rich_location *
13542 and diagnostic_kind.
13543 (diagnostic_show_locus): Replace diagnostic param with richloc
13544 and diagnostic_kind.
13545 (class selftest::test_diagnostic_context): New class.
13546 (selftest::test_diagnostic_show_locus_unknown_location): New
13547 function.
13548 (selftest::test_one_liner_simple_caret): New function.
13549 (selftest::test_one_liner_caret_and_range): New function.
13550 (selftest::test_one_liner_multiple_carets_and_ranges): New
13551 function.
13552 (selftest::test_one_liner_fixit_remove): New function.
13553 (selftest::test_one_liner_fixit_replace): New function.
13554 (selftest::test_diagnostic_show_locus_one_liner): New function.
13555 (selftest::diagnostic_show_locus_c_tests): Call the new test
13556 functions.
13557 * diagnostic.c (diagnostic_initialize): Initialize
13558 colorize_source_p, show_ruler_p and parseable_fixits_p.
13559 (default_diagnostic_finalizer): Update for change to
13560 diagnostic_show_locus.
13561 (diagnostic_append_note): Likewise.
13562 * diagnostic.h (diagnostic_show_locus): Replace
13563 const diagnostic_info * param with location * and diagnostic_t.
13564
13565 2016-08-18 David Malcolm <dmalcolm@redhat.com>
13566
13567 * input.c (saved_line_table): New global.
13568 (class selftest::temp_line_table): Rename to line_table_test and
13569 move declaration to selftest.h, and drop field m_old_line_table.
13570 (selftest::temp_line_table::temp_line_table): Rename ctor to...
13571 (selftest::line_table_test::line_table_test): ...this. Add a
13572 default ctor. Store current value of line_table within
13573 saved_line_table.
13574 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
13575 (selftest::line_table_test::~line_table_test): ...this, and
13576 restore line_table from the saved_line_table, rather than
13577 m_old_line_table.
13578 (selftest::test_accessing_ordinary_linemaps): Update for above
13579 renaming.
13580 (selftest::test_lexer): Likewise.
13581 (struct selftest::lexer_test): Likewise.
13582 (selftest::lexer_test::lexer_test): Likewise.
13583 (selftest::input_c_tests): Move the looping over test cases from
13584 here into...
13585 (selftest::for_each_line_table_case): New function.
13586 * input.h (saved_line_table): New decl.
13587 * selftest.h (struct selftest::line_table_case): New forward decl.
13588 (class selftest::line_table_test): New class, moved here from
13589 selftest::temp_line_table in input.c, and renamed.
13590 (selftest::for_each_line_table_case): New decl.
13591
13592 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
13593
13594 PR target/72839
13595 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
13596
13597 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
13598
13599 PR middle-end/70895
13600 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
13601 enclosing parallel construct for reduction variables on OpenACC loop
13602 directives.
13603
13604 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
13605
13606 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
13607 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
13608 -gdwarf-3.
13609 (function_to_dwarf_procedure): Update comment.
13610
13611 2016-08-18 David Malcolm <dmalcolm@redhat.com>
13612
13613 * input.c (diagnostics_file_cache_forcibly_evict_file): New
13614 function.
13615 * input.h (diagnostics_file_cache_forcibly_evict_file): New
13616 declaration.
13617 * selftest.c (selftest::temp_source_file::~temp_source_file):
13618 Evict m_filename from the diagnostic file cache.
13619
13620 2016-08-18 Richard Biener <rguenther@suse.de>
13621
13622 * tree-pass.h (make_pass_materialize_all_clones): Declare.
13623 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
13624 make_pass_materialize_all_clones): New simple IPA pass encapsulating
13625 clone materialization.
13626 * passes.def (all_late_ipa_passes): Start with
13627 pass_materialize_all_clones.
13628 * cgraphunit.c (symbol_table::compile): Remove call to
13629 materialize_all_clones.
13630 * tree-into-ssa.c: Include statistics.h.
13631 (update_ssa): Count number of times we do incremental/rewrite
13632 SSA update.
13633
13634 2016-08-18 Richard Biener <rguenther@suse.de>
13635
13636 PR tree-optimization/77282
13637 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
13638 When doing auto-parallelizing also prevent use of PHIs that
13639 carry dependences across loop backedges.
13640
13641 2016-08-18 Tamar Christina <tamar.christina@arm.com>
13642 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13643
13644 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
13645
13646 2016-08-18 Richard Biener <rguenther@suse.de>
13647
13648 * ssa-iterators.h (ssa_vuse_operand): New inline.
13649 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
13650 (predicate_all_scalar_phis): Use remove_phi_node to remove
13651 phi nodes predicated. Delay removing virtual PHIs.
13652 (predicate_mem_writes): Update virtual operands.
13653 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
13654 (tree_if_conversion): Do not rewrite virtual SSA form.
13655 * tree-phinodes.c (release_phi_node): Make static.
13656 * tree-phinodes.h (release_phi_node): Remove.
13657
13658 2016-08-18 Jakub Jelinek <jakub@redhat.com>
13659
13660 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
13661 codes that appear in bdesc_* arrays, instead include i386-builtin.def
13662 twice to define those.
13663 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
13664 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
13665 bdesc_multi_arg): Define by including i386-builtin.def the third time.
13666 * config/i386/i386-builtin.def: New file.
13667
13668 2016-08-17 David Malcolm <dmalcolm@redhat.com>
13669
13670 * input.c (get_source_range_for_char): Rename to...
13671 (selftest::get_source_range_for_char): ...this, and move within
13672 the #if CHECKING_P guard.
13673 (get_num_source_ranges_for_substring): Rename to...
13674 (selftest::get_num_source_ranges_for_substring): ...this, move
13675 within the #if CHECKING_P guard, and make static.
13676 (selftest::assert_num_substring_ranges): Initialize
13677 actual_num_ranges.
13678
13679 2016-08-18 Alan Modra <amodra@gmail.com>
13680
13681 PR rtl-optimization/72771
13682 * reload.c (find_reloads): Don't assume that a subreg mem is OK
13683 when find_reloads_toplev returns address_reloaded==-1.
13684 (alternative_allows_const_pool_ref): Update comment.
13685
13686 2015-08-17 Alan Hayward <alan.hayward@arm.com>
13687
13688 PR tree-optimization/71752
13689 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
13690 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
13691
13692 2016-08-17 Jakub Jelinek <jakub@redhat.com>
13693
13694 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
13695 instead of testing ECF_NORETURN bit in gimple_call_flags.
13696 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
13697 * predict.c (tree_bb_level_predictions): Likewise.
13698 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
13699
13700 PR middle-end/77259
13701 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
13702 turning a call into __builtin_unreachable-like noreturn call, adjust
13703 gimple_call_set_fntype.
13704 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
13705 gimple_call_fntype has void return type.
13706
13707 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
13708
13709 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
13710 maybe_lookup_decl, to handle nested acc loop directives.
13711
13712 2016-08-17 Richard Biener <rguenther@suse.de>
13713
13714 PR tree-optimization/76490
13715 * tree-vrp.c (update_value_range): Preserve overflow infinities
13716 when intersecting with ranges from get_range_info.
13717 (operand_less_p): Handle overflow infinities correctly.
13718 (value_range_constant_singleton): Use vrp_operand_equal_p
13719 to handle overflow max/min correctly.
13720 (vrp_valueize): Likewise.
13721 (union_ranges): Likewise.
13722 (intersect_ranges): Likewise.
13723 (vrp_visit_phi_node): Improve iteration limitation to only
13724 apply when we'll possibly re-visit the PHI via a changed argument
13725 on the backedge.
13726
13727 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
13728
13729 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
13730 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
13731 rather than those that should not be built.
13732
13733 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
13734
13735 PR target/66488
13736 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
13737
13738 2016-08-17 Richard Biener <rguenther@suse.de>
13739
13740 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
13741 (verify_vssa): New function verifying virtual SSA form.
13742 (verify_ssa): Call it.
13743 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
13744 Do not apply loop-closed SSA handling to virtuals.
13745 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
13746 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
13747 when rewriting their symbol.
13748 (prepare_def_site_for): Likewise.
13749 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
13750 operands of moved stmts.
13751
13752 2016-08-17 Richard Biener <rguenther@suse.de>
13753
13754 PR tree-optimization/23855
13755 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
13756 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
13757 find guards to hoist. Do not update SSA form but rewrite virtuals
13758 into loop closed SSA.
13759 (find_loop_guard): Adjust to skip already hoisted guards. Do
13760 not mark virtuals for renaming or update SSA form.
13761
13762 2016-08-17 Martin Liska <mliska@suse.cz>
13763
13764 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
13765 a LONG_LONG_TYPE_SIZE comparison.
13766 * gcov-io.h: Remove macro definitions.
13767 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
13768 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
13769 comparison.
13770
13771 2016-08-16 Jakub Jelinek <jakub@redhat.com>
13772
13773 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
13774 that builtins not mentioned in bdesc_* arrays come first, then
13775 the ones mentioned in bdesc_* arrays in the order they appear in
13776 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
13777 IX86_BUILTIN__BDESC_*_LAST enumerator.
13778 (bdesc_mpx): Fix up a comment typo.
13779 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
13780 __builtin_ia32_vpcomneu[bwdq] builtins.
13781 (BDESC_VERIFY, BDESC_VERIFYS): Define.
13782 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
13783 enum ix86_builtins ordering.
13784 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
13785 for direct bdesc_* array member access instead of searching all the
13786 arrays until an fcode match is found.
13787
13788 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
13789
13790 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
13791 pattern as define_insn_and_split. Split insn before reload to
13792 ashl<mode>3_1.
13793 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
13794 <shift_insn><mode>3_1.
13795 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
13796 <rotate_insn><mode>3_1.
13797
13798 2016-08-16 David Malcolm <dmalcolm@redhat.com>
13799
13800 PR c/72857
13801 * input.c (get_source_range_for_substring): Rename to...
13802 (get_source_location_for_substring): ...this, adding param
13803 "caret_idx", and converting output param from source_range * to
13804 location_t *.
13805 (get_source_range_for_char): New function.
13806 (get_num_source_ranges_for_substring): Update comment to reflect
13807 above renaming.
13808 (assert_char_at_range): Update to use get_source_range_for_char
13809 rather than get_source_range_for_substring.
13810 (test_lexer_string_locations_concatenation_2): Likewise.
13811 * substring-locations.h (get_source_range_for_substring): Rename
13812 to...
13813 (get_source_location_for_substring): ...this, and adding param
13814 "caret_idx", and converting output param from source_range * to
13815 location_t *.
13816
13817 2016-08-16 David Malcolm <dmalcolm@redhat.com>
13818
13819 * input.c (class selftest::temp_source_file): Move to
13820 selftest.h.
13821 (selftest::temp_source_file::temp_source_file): Move to
13822 selftest.c.
13823 (selftest::temp_source_file::~temp_source_file): Likewise.
13824 * selftest.c (selftest::temp_source_file::temp_source_file): Move
13825 here from input.c.
13826 (selftest::temp_source_file::~temp_source_file): Likewise.
13827 * selftest.h (class selftest::temp_source_file): Move here from
13828 input.c
13829
13830 2016-08-16 Jakub Jelinek <jakub@redhat.com>
13831
13832 PR target/71910
13833 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
13834 inlining, add cgraph edge for the added __builtin_unreachable call.
13835
13836 PR middle-end/67485
13837 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
13838 only cast it to SHWI for the final comparison.
13839
13840 2016-08-16 Martin Liska <mliska@suse.cz>
13841
13842 PR gcov-profile/36412
13843 * doc/gcov.texi: Document --hash-filenames(-x).
13844 * gcov.c (print_usage): Add the option.
13845 (process_args): Process the option, sort options alphabetically.
13846 (md5sum_to_hex): New function.
13847 (make_gcov_file_name): Do the md5sum and append it to a
13848 filename.
13849
13850 2016-08-16 Bin Cheng <bin.cheng@arm.com>
13851
13852 PR tree-optimization/69848
13853 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
13854 and swtich operands to avoid additional NOT instruction.
13855 (vcond<v_cmp_mixed><mode>): Ditto.
13856 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
13857
13858 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
13859
13860 * doc/install.texi (*-*-solaris2*): Adjust latest change.
13861
13862 2016-08-16 Richard Biener <rguenther@suse.de>
13863
13864 PR tree-optimization/76783
13865 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
13866 BB visited flags at start.
13867
13868 2016-08-16 Bin Cheng <bin.cheng@arm.com>
13869
13870 PR tree-optimization/72817
13871 PR tree-optimization/73450
13872 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
13873 multiple_of_p for adjusted IV.base.
13874
13875 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
13876
13877 PR target/72867
13878 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
13879 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
13880 for !flag_finite_math_only or flag_signed_zeros.
13881 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
13882 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
13883 depend on flag_finite_math_only.
13884 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
13885 New insn pattern.
13886 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
13887 (*ieee_smin<mode>3): Ditto.
13888 (*ieee_smax<mode>3): Ditto.
13889 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
13890 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
13891 flag_signed_zeros.
13892 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
13893 depend on flag_finite_math_only.
13894 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
13895 (*mmx_<code>v2sf3): Remove.
13896 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
13897 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
13898 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
13899
13900 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
13901
13902 PR rtl-optimization/73650
13903 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
13904 it is not a simple move.
13905
13906 2016-08-15 Martin Liska <mliska@suse.cz>
13907
13908 PR driver/72765
13909 * gcc.c (do_spec_1): Call save_string with the right size.
13910 (save_string): Do an assert about string we copy.
13911
13912 2016-08-15 Richard Biener <rguenther@suse.de>
13913
13914 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
13915 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
13916 TV_MACH_DEP.
13917 (pass_data_stv): Likewise.
13918
13919 2016-08-15 Richard Biener <rguenther@suse.de>
13920
13921 PR tree-optimization/73434
13922 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
13923 TBAA info on the base when forwarding a non-invariant address.
13924
13925 2016-08-15 Jakub Jelinek <jakub@redhat.com>
13926
13927 * dwarf2out.c (struct checksum_attributes): Add
13928 at_string_length_bit_size and at_string_length_byte_size fields.
13929 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
13930 and DW_AT_string_length_byte_size.
13931 (die_checksum_ordered): Handle at_string_length_bit_size and
13932 at_string_length_byte_size.
13933 (gen_array_type_die): For dwarf_version >= 5 emit
13934 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
13935 (adjust_string_types): For dwarf_version >= 5 remove
13936 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
13937 (resolve_addr): Likewise.
13938
13939 PR debug/71906
13940 * dwarf2out.c (string_types): New variable.
13941 (gen_array_type_die): Change early_dwarf handling of
13942 DW_AT_string_length, create DW_OP_call4 referencing the
13943 length var temporarily. Handle parameters that are pointers
13944 to string length.
13945 (adjust_string_types): New function.
13946 (gen_subprogram_die): Temporarily set string_types to local var,
13947 call adjust_string_types if needed.
13948 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
13949 New functions.
13950 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
13951
13952 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
13953
13954 * doc/install.texi (*-*-solaris2*): Fix version number and document
13955 requirement on GNU make for building libjava with the Solaris linker.
13956
13957 2016-08-15 Martin Liska <mliska@suse.cz>
13958 Jakub Jelinek <jakub@redhat.com>
13959
13960 PR tree-optimization/72824
13961 * tree-loop-distribution.c (const_with_all_bytes_same)
13962 <case VECTOR_CST>: Fix a typo.
13963
13964 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
13965
13966 PR target/76342
13967 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
13968 Renamed from _mm512_undefined_si512.
13969 (_mm_undefined_si512): New definition.
13970
13971 2016-08-13 Richard Biener <rguenther@suse.de>
13972
13973 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
13974 into PHIs and update the lattice for its def.
13975
13976 2016-08-12 Jakub Jelinek <jakub@redhat.com>
13977
13978 PR c/71512
13979 * ubsan.c (instrument_si_overflow): Pass true instead of false
13980 to gsi_replace.
13981 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
13982 of bbs. Return TODO_cleanup_cfg if any returned true.
13983
13984 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
13985
13986 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
13987 ISA 3.0 MTVSRDD instruction.
13988 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
13989 vecperm.
13990
13991 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
13992
13993 PR tree-optimization/71083
13994 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
13995 bitfield access when possible.
13996
13997 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
13998
13999 PR middle-end/71654
14000 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
14001 sign-changing cast from a shorter unsigned type to a wider
14002 signed type.
14003
14004 2016-08-12 Jakub Jelinek <jakub@redhat.com>
14005
14006 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
14007 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
14008 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
14009
14010 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14011
14012 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
14013 Correct costs for vec_construct.
14014
14015 2016-08-12 Bin Cheng <bin.cheng@arm.com>
14016
14017 PR tree-optimization/69848
14018 * tree-vectorizer.h (enum vect_def_type): New condition reduction
14019 type CONST_COND_REDUCTION.
14020 * tree-vect-loop.c (vectorizable_reduction): Support new condition
14021 reudction type CONST_COND_REDUCTION.
14022
14023 2016-08-12 Richard Biener <rguenther@suse.de>
14024
14025 PR tree-optimization/57326
14026 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
14027 returning an SSA name.
14028 (phi_translate_1): When fully_constant_expression returns a NAME
14029 make sure we have a leader for it.
14030
14031 2016-08-12 Martin Liska <mliska@suse.cz>
14032 Adam Fineman <afineman@afineman.com>
14033
14034 * gcov.c (process_file): Create .gcov file when .gcda
14035 file is missing.
14036
14037 2016-08-12 Marek Polacek <polacek@redhat.com>
14038
14039 PR c/7652
14040 * alias.c (find_base_value): Adjust fall through comment.
14041 * cfgexpand.c (expand_debug_expr): Likewise.
14042 * combine.c (find_split_point): Likewise.
14043 (expand_compound_operation): Likewise. Add FALLTHRU.
14044 (make_compound_operation): Adjust fall through comment.
14045 (canon_reg_for_combine): Add FALLTHRU.
14046 (force_to_mode): Adjust fall through comment.
14047 (simplify_shift_const_1): Likewise.
14048 (simplify_comparison): Likewise.
14049 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
14050 FALLTHRU.
14051 * config/aarch64/predicates.md: Likewise.
14052 * config/i386/i386.c (function_arg_advance_32): Likewise.
14053 (ix86_gimplify_va_arg): Likewise.
14054 (print_reg): Likewise.
14055 (ix86_print_operand): Likewise.
14056 (ix86_build_const_vector): Likewise.
14057 (ix86_expand_branch): Likewise.
14058 (ix86_sched_init_global): Adjust fall through comment.
14059 (ix86_expand_args_builtin): Add FALLTHRU.
14060 (ix86_expand_builtin): Likewise.
14061 (ix86_expand_vector_init_one_var): Likewise.
14062 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
14063 (rs6000_adjust_cost): Likewise.
14064 (insn_must_be_first_in_group): Likewise.
14065 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
14066 * dbxout.c (dbxout_symbol): Adjust fall through comment.
14067 * df-scan.c (df_uses_record): Likewise.
14068 * dojump.c (do_jump): Add FALLTHRU.
14069 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
14070 comment.
14071 (resolve_args_picking_1): Adjust fall through comment.
14072 (loc_list_from_tree_1): Likewise.
14073 * expmed.c (make_tree): Likewise.
14074 * expr.c (expand_expr_real_2): Add FALLTHRU.
14075 (expand_expr_real_1): Likewise. Adjust fall through comment.
14076 * fold-const.c (const_binop): Adjust fall through comment.
14077 (fold_truth_not_expr): Likewise.
14078 (fold_cond_expr_with_comparison): Add FALLTHRU.
14079 (fold_binary_loc): Likewise.
14080 (contains_label_1): Adjust fall through comment.
14081 (multiple_of_p): Likewise.
14082 * gcov-tool.c (process_args): Add FALLTHRU.
14083 * genattrtab.c (check_attr_test): Likewise.
14084 (write_test_expr): Likewise.
14085 * genconfig.c (walk_insn_part): Likewise.
14086 * genpreds.c (validate_exp): Adjust fall through comment.
14087 (needs_variable): Likewise.
14088 * gensupport.c (get_alternatives_number): Add FALLTHRU.
14089 (subst_dup): Likewise.
14090 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
14091 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
14092 (gimplify_scan_omp_clauses): Add FALLTHRU.
14093 (goa_stabilize_expr): Likewise.
14094 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
14095 through comment.
14096 * hsa-gen.c (get_address_from_value): Likewise.
14097 * ipa-icf.c (sem_function::hash_stmt): Likewise.
14098 * ira.c (ira_setup_alts): Add FALLTHRU.
14099 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
14100 comment.
14101 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
14102 * opts.c (common_handle_option): Likewise.
14103 * read-rtl.c (read_rtx_code): Likewise.
14104 * real.c (round_for_format): Likewise.
14105 * recog.c (asm_operand_ok): Likewise.
14106 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
14107 * reload1.c (set_label_offsets): Likewise.
14108 (eliminate_regs_1): Likewise.
14109 (reload_reg_reaches_end_p): Likewise.
14110 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
14111 (rtx_cost): Likewise.
14112 * sched-rgn.c (is_exception_free): Likewise.
14113 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
14114 * stor-layout.c (int_mode_for_mode): Likewise.
14115 * toplev.c (print_to_asm_out_file): Likewise.
14116 (print_to_stderr): Likewise.
14117 * tree-cfg.c (gimple_verify_flow_info): Likewise.
14118 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
14119 (chrec_fold_multiply): Likewise.
14120 (evolution_function_is_invariant_rec_p): Likewise.
14121 (for_each_scev_op): Likewise.
14122 * tree-data-ref.c (siv_subscript_p): Likewise.
14123 (get_references_in_stmt): Likewise.
14124 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
14125 (substitute_in_expr): Likewise.
14126 (type_cache_hasher::equal): Likewise.
14127 (walk_type_fields): Likewise.
14128 * var-tracking.c (adjust_mems): Add FALLTHRU.
14129 (set_dv_changed): Adjust fall through comment.
14130 * varasm.c (default_function_section): Add FALLTHRU.
14131
14132 2016-08-12 Marek Polacek <polacek@redhat.com>
14133
14134 PR c/7652
14135 * tree-complex.c (expand_complex_division): Add missing break.
14136
14137 2016-08-12 Richard Biener <rguenther@suse.de>
14138
14139 * passes.c (execute_todo): Do not push/pop TV_TODO.
14140 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
14141 (execute_one_pass): Likewise.
14142 * common.opt (ftime-report-details): New switch.
14143 * doc/invoke.texi (ftime-report-details): Document.
14144 * timevar.h (timer::print_row): Adjust signature.
14145 (timer::all_zero): New static helper.
14146 (timer::child_map_t): New typedef.
14147 (timer::time_var_def): Add children field.
14148 * timevar.c (timer::named_items::print): Adjust.
14149 (timer::~timer): Free timevar recorded children.
14150 (timer::pop_internal): When -ftime-report-details record
14151 time spent in sub-timevars.
14152 (timer::print_row): Adjust.
14153 (timer::print): Print sub-timevar stats, use all_zero.
14154 * timevar.def (TV_TODO): Remove.
14155
14156 2016-08-12 Richard Biener <rguenther@suse.de>
14157
14158 PR tree-optimization/72851
14159 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
14160 worklists to use bitmaps indexed in execution order.
14161 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
14162 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
14163 (cfg_blocks): Make a bitmap.
14164 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
14165 New globals.
14166 (cfg_blocks_empty_p): Adjust.
14167 (cfg_blocks_add): Likewise.
14168 (cfg_blocks_get): Likewise.
14169 (add_ssa_edge): Likewise.
14170 (add_control_edge): Likewise.
14171 (simulate_stmt): Likewise.
14172 (process_ssa_edge_worklist): Likewise.
14173 (simulate_block): Likewise.
14174 (ssa_prop_init): Compute PRE order and stmt UIDs.
14175 (ssa_prop_fini): Adjust.
14176 (ssa_propagate): Adjust.
14177
14178 2016-08-12 Richard Biener <rguenther@suse.de>
14179
14180 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
14181 the currently executable edges have fixed ranges. Always
14182 go through update_value_range.
14183
14184 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
14185
14186 PR debug/63240
14187 * langhooks-def.h
14188 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
14189 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
14190 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
14191 (LANG_HOOKS_DECLS): Add it.
14192 * langhooks.h (struct lang_hooks_for_decls): Add
14193 function_decl_defaulted. Const_tree-ify
14194 function_decl_explicit_p and function_decl_deleted_p.
14195 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
14196 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
14197 also at strict DWARF v5.
14198
14199 PR debug/55641
14200 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
14201 TYPE_QUAL_CONST in reference-typed decls.
14202
14203 PR debug/49366
14204 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
14205 in DW_OP_pieces, just enough to handle pointers to member
14206 functions.
14207 (gen_remaining_tmpl_value_param_die_attribute): Use a location
14208 expression on DWARFv5 if a constant value doesn't work.
14209
14210 2016-08-11 David Malcolm <dmalcolm@redhat.com>
14211
14212 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
14213 * selftest.c (selftest::test_assertions): New function.
14214 (selftest::selftest_c_tests): New function.
14215 * selftest.h (selftest::selftest_c_tests): New declaration.
14216
14217 2016-08-11 Richard Biener <rguenther@suse.de>
14218 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14219
14220 PR rtl-optimization/72855
14221 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
14222
14223 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14224
14225 PR target/72863
14226 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
14227 (vsx_store_<mode>): Likewise.
14228
14229 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
14230
14231 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
14232 TImode CONST_WIDE_INT store.
14233 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
14234
14235 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
14236
14237 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
14238 mode if unaligned SSE load and store are optimal.
14239
14240 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
14241
14242 PR tree-optimization/71083
14243 * tree-predcom.c (ref_at_iteration): Correctly align the
14244 reference type.
14245
14246 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14247
14248 * config/s390/s390-builtin-types.def: Add INT128 types.
14249 * config/s390/s390-builtins.def: Add INT128 variants for the add
14250 sub low-level builtins dealing with TImode.
14251 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
14252 via subreg when expanding a builtin.
14253 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
14254 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
14255 Fix comment.
14256 * config/s390/vecintrin.h: Adjust builtin names accordingly.
14257 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
14258 ("vec_addc<mode>", "vec_addc_u128"): Merge to
14259 "vacc<bhfgq>_<mode>".
14260 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
14261 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
14262 ("vec_subc<mode>", "vec_subc_u128"): Merge to
14263 "vscbi<bhfgq>_<mode>".
14264 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
14265 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
14266
14267 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14268
14269 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
14270
14271 2016-08-11 Bin Cheng <bin.cheng@arm.com>
14272
14273 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
14274 unused declaration.
14275 (vcond<v_cmp_mixed><mode>): Ditto.
14276 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
14277
14278 2016-08-11 Bin Cheng <bin.cheng@arm.com>
14279
14280 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
14281 variable explicitly, also assert on it before use.
14282
14283 2016-08-11 Richard Biener <rguenther@suse.de>
14284
14285 PR tree-optimization/72772
14286 * cfgloopmanip.c (create_preheader): Use split_edge if there
14287 is a single loop entry, avoiding degenerate PHIs.
14288
14289 2016-08-11 Richard Biener <rguenther@suse.de>
14290
14291 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
14292 unconditional TODO_cleanup_cfg.
14293 (pass_thread_jumps::execute): Initialize loops, perform a CFG
14294 cleanup only if we threaded a jump.
14295
14296 2016-08-11 Alan Modra <amodra@gmail.com>
14297
14298 PR target/71680
14299 * lra-constraints.c (simplify_operand_subreg): Allow subreg
14300 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
14301 slow. Emit two reloads for slow mem case, first loading in
14302 fast innermode, then converting to required mode.
14303
14304 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
14305
14306 * config/rs6000/altivec.h (vec_extract_exp): New macro.
14307 (vec_extract_sig): New macro.
14308 (vec_insert_exp): New macro.
14309 (vec_test_data_class): New macro.
14310 (scalar_extract_exp): New macro.
14311 (scalar_extract_sig): New macro.
14312 (scalar_insert_exp): New macro.
14313 (scalar_test_data_class): New macro.
14314 (scalar_test_neg): New macro.
14315 (scalar_cmp_exp_gt): New macro.
14316 (scalar_cmp_exp_lt): New macro.
14317 (scalar_cmp_exp_eq): New macro.
14318 (scalar_cmp_exp_unordered): New macro.
14319 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
14320 to enforce constraint that operand is a 7-bit unsigned literal.
14321 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
14322 for power9 built-ins.
14323 (BU_P9V_VSX_2): Likewise.
14324 (BU_P9V_64BIT_VSX_2): Likewise.
14325 (VSEEDP): Add scalar extract exponent support.
14326 (VSEESP): Add scalar extract signature support.
14327 (VSTDCNDP): Add scalar test negative support.
14328 (VSTDCNSP): Likewise.
14329 (VSIEDP): Add scalar insert exponent support.
14330 (VSCEDPGT): Add scalar compare exponent greater than support.
14331 (VSCEDPLT): Add scalar compare exponent less than support.
14332 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
14333 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
14334 (VSTDCDP): Add scalar test data class support.
14335 (VSTDCSP): Likewise.
14336 (VSEEDP): Add overload support for scalar extract exponent
14337 operation.
14338 (VSESDP): Add overload support for scalar extract signature
14339 operation.
14340 (VSTDCN): Add overload support for scalar test negative
14341 operation.
14342 (VSTDCNDP): Add overload support for scalar test negative
14343 operation.
14344 (VSTDCNSP): Add overload support for scalar test negative
14345 operation.
14346 (VSIEDP): Add overload support for scalar insert exponent
14347 operation.
14348 (VSTDC): Add overload support for scalar test data class
14349 operation.
14350 (VSTDCDP): Add overload support for scalar test data class
14351 operation.
14352 (VSTDCSP): Add overload support for scalar test data class
14353 opreation.
14354 (VSCEDPGT): Add overload support for scalar compare exponent
14355 greater than operation.
14356 (VSCEDPLT): Add overload support for scalar compare exponent
14357 less than operation.
14358 (VSCEDPEQ): Add overload support for scalar compare exponent
14359 test-for-equality operation.
14360 (VSCEDPUO): Add overload support for scalar compare exponent
14361 test-for-unordered operation.
14362 (VEEDP): Add vector extract exponent support.
14363 (VEESP): Likewise.
14364 (VESDP): Add vector extract significand support.
14365 (VESSP): Likewise.
14366 (VIEDP): Add vector insert exponent support.
14367 (VIESP): Likewise.
14368 (VTDCDP): Add vector test data class support.
14369 (VTDCSP): Likewise.
14370 (VES): Add overload support for vector extract significand operation.
14371 (VESDP): Likewise.
14372 (VESSP): Likewise
14373 (VEE): Add overload support for vector extract exponent operation.
14374 (VEEDP): Likewise.
14375 (VEESP): Likewise.
14376 (VTDC): Add overload support for vector test data class operation.
14377 (VTDCDP): Likewise.
14378 (VTDCSP): Likewise.
14379 (VIE): Add overload support for vector insert exponent operation.
14380 (VIEDP): Likewise.
14381 (VIESP): Likewise.
14382 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14383 overloaded binary floating point functions.
14384 (altivec_resolve_overloaded_builtin): Improve error messages to
14385 distinguish between functions not supported in the current
14386 compiler configuration and functions that were invoked with an
14387 invalid parameter combination, and include the built-in function
14388 name in both error messages.
14389 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
14390 New prototype.
14391 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
14392 function.
14393 (rs6000_expand_binop_builtin): Add check to enforce that argument
14394 2 of the test data class operations is a 7-bit unsigned literal.
14395 (rs6000_invalid_builtin): Add code to issue an error message if a
14396 built-in function that requires the power9_vector and -m32
14397 command-line options is compiled without these options.
14398 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
14399 (UNSPEC_VSX_SXSIGDP): New value.
14400 (UNSPEC_VSX_SXSIGPDP): New value.
14401 (UNSPEC_VSX_SIEXPDP): New value.
14402 (UNSPEC_VSX_SCMPEXPDP): New value.
14403 (UNSPEC_VSX_STSTDC): New value.
14404 (UNSPEC_VSX_VXEXP): New value.
14405 (UNSPEC_VSX_VXSIG): New value.
14406 (UNSPEC_VSX_VIEXP): New value.
14407 (UNSPEC_VSX_VTSTDC): New value.
14408 (xsxexpdp): New insn for scalar extract exponent.
14409 (xsxsigdp): New insn for scalar extract significand.
14410 (xsiexpdp): New insn for scalar insert exponent.
14411 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
14412 (*xscmpexpdp): New insn for scalar compare exponents.
14413 (xststdc<Fvsx): New expansion for both single- and
14414 double-precision scalar test data class operations.
14415 (xststdcneg<Fvsx>): New expansion for both single- and
14416 double-precision scalar test for negative value operations.
14417 (*xststdc<Fvsx>): New insn for scalar test data class
14418 operation.
14419 (xvxexp<VSs>): New insn for single- and double-precision
14420 vector extract exponent operation.
14421 (xvxsig<VSs>): New insn for single- and double-precision
14422 vector extract significand operation.
14423 (xviexp<VSs>): New insn for single- and double-precision
14424 vector insert exponent operation.
14425 (xvtstdc<VSs>): New insn for single- and double-precision
14426 vector test data class operation.
14427 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
14428 built-in functions to represent the Power9 binary floating-point
14429 support instructions.
14430
14431 2016-08-10 bin cheng <bin.cheng@arm.com>
14432
14433 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
14434
14435 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
14436 Renlin Li <renlin.li@arm.com>
14437 Bin Cheng <bin.cheng@arm.com>
14438
14439 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
14440 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
14441 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
14442 (aarch64_vcond_internal<mode><mode>): Delete pattern.
14443 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
14444 (vcond<v_cmp_result><mode>): Ditto.
14445 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
14446 (vcondu<mode><mode>): Ditto.
14447 (vcond<v_cmp_mixed><mode>): New pattern.
14448 (vcondu<mode><v_cmp_mixed>): New pattern.
14449 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
14450 of aarch64_vcond_internal.
14451
14452 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
14453 Renlin Li <renlin.li@arm.com>
14454 Bin Cheng <bin.cheng@arm.com>
14455
14456 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
14457 (vec_cmp<mode><v_cmp_result>): New pattern.
14458 (vec_cmpu<mode><mode>): New pattern.
14459 (vcond_mask_<mode><v_cmp_result>): New pattern.
14460
14461 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
14462
14463 PR tree-optimization/71734
14464 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
14465 REF_LOOP, invoke ref_indep_loop_p_1.
14466 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
14467 to ref_indep_loop_p.
14468 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
14469 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
14470 is inside LOOP, do not cache dpendence value for loops with
14471 non-zero SAFELEN.
14472 (ref_indep_loop_p_2): Delete function.
14473 (can_sm_ref_p): Pass LOOP as additional argument to
14474 ref_indep_loop_p.
14475
14476 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
14477
14478 PR target/72853
14479 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
14480 being an offsettable address.
14481
14482 2016-08-10 Martin Liska <mliska@suse.cz>
14483
14484 PR gcov-profile/58306
14485 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
14486 atomic variants of profile update functions.
14487
14488 2016-08-10 Martin Liska <mliska@suse.cz>
14489
14490 Cherry picked (and modified) from google-4_7 branch
14491 2012-12-26 Rong Xu <xur@google.com>
14492 * common.opt (fprofile-update): Add new flag.
14493 * coretypes.h: Define enum profile_update.
14494 * doc/invoke.texi: Document -fprofile-update.
14495 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
14496 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
14497 * tree-profile.c (gimple_init_edge_profiler): Generate
14498 also atomic profiler update.
14499 (gimple_gen_edge_profiler): Likewise.
14500
14501 2016-08-10 David Malcolm <dmalcolm@redhat.com>
14502
14503 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
14504 stack_usage_file to NULL after fclose calls.
14505
14506 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
14507
14508 PR target/71873
14509 * reload.c (push_reload): Compute subreg_in_class for
14510 subregs of constants and plus expressions. Remove special
14511 handling of SYMBOL_REFs.
14512
14513 2016-08-10 Alan Modra <amodra@gmail.com>
14514
14515 PR target/71680
14516 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
14517 SImode for TARGET_E500_DOUBLE when given SImode.
14518
14519 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
14520
14521 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
14522 unused variable __O.
14523
14524 2016-08-09 Martin Liska <mliska@suse.cz>
14525
14526 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
14527 _gcov_reset to __gcov_reset.
14528 * doc/gcov-tool.texi: Fix typo.
14529
14530 2016-08-09 Martin Liska <mliska@suse.cz>
14531
14532 * value-prof.c (gimple_divmod_values_to_profile): Do not
14533 instrument MOD histogram if a value is not a SSA name.
14534
14535 2016-08-09 Martin Liska <mliska@suse.cz>
14536
14537 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
14538 values.
14539
14540 2016-08-09 Renlin Li <renlin.li@arm.com>
14541
14542 PR middle-end/64971
14543 * calls.c (prepare_call_address): Convert funexp to Pmode when
14544 necessary.
14545 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
14546 (sibcall_value): Likewise.
14547
14548 2016-08-09 Marek Polacek <polacek@redhat.com>
14549
14550 PR c/7652
14551 * cselib.c (cselib_expand_value_rtx_1): Add return.
14552 * gengtype.c (dbgprint_count_type_at): Likewise.
14553 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
14554 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
14555
14556 2016-08-09 Martin Jambor <mjambor@suse.cz>
14557
14558 PR ipa/71981
14559 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
14560 if instance is a MEM_REF.
14561
14562 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
14563
14564 PR target/72843
14565 * config/i386/i386.md (*movtf_internal): Use
14566 lra_in_progress || reload_completed instead of !can_create_pseudo_p
14567 in the insn constraint.
14568 (*movxf_internal): Ditto.
14569 (*movdf_internal): Ditto.
14570 (*movsf_internal): Ditto.
14571
14572 2016-08-09 Bin Cheng <bin.cheng@arm.com>
14573
14574 PR tree-optimization/72772
14575 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
14576 for expanded base.
14577
14578 2016-08-09 Bin Cheng <bin.cheng@arm.com>
14579
14580 PR tree-optimization/72772
14581 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
14582 parameter STOP.
14583 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
14584 parameter STOP and update calls. Move expand_simple_operations
14585 function call from here...
14586 (simplify_using_initial_conditions): ...to here. Delete parameter
14587 STOP.
14588 (tree_simplify_using_condition): Delete parameter STOP.
14589 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
14590 simplify_using_initial_conditions.
14591
14592 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
14593
14594 PR c/65345
14595 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
14596 Use create_tmp_var_raw instead of create_tmp_var.
14597
14598 2016-08-09 Richard Biener <rguenther@suse.de>
14599
14600 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
14601 Treat same SSA names related.
14602
14603 2016-08-09 Jakub Jelinek <jakub@redhat.com>
14604
14605 PR tree-optimization/72824
14606 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
14607 real_zerop is not negative.
14608
14609 2016-08-09 Richard Biener <rguenther@suse.de>
14610
14611 PR tree-optimization/71802
14612 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
14613 all merge opportunities with the predecessor.
14614
14615 2016-08-09 Richard Biener <rguenther@suse.de>
14616
14617 PR ipa/68273
14618 * ipa-prop.c (ipa_modify_formal_parameters): Build
14619 parameter types with natural alignment also for the
14620 over-aligned case.
14621
14622 2016-08-08 Andi Kleen <ak@linux.intel.com>
14623
14624 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
14625
14626 2016-08-08 David Malcolm <dmalcolm@redhat.com>
14627
14628 PR c/64955
14629 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
14630 do-nothing langhook.
14631 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
14632 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
14633 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
14634 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
14635
14636 2016-08-08 David Malcolm <dmalcolm@redhat.com>
14637
14638 PR bootstrap/72844
14639 * input.c: Ensure that HAVE_ICONV is defined.
14640
14641 2016-08-08 Jakub Jelinek <jakub@redhat.com>
14642
14643 PR middle-end/72781
14644 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
14645 private vars for lastprivate and for linear iterator.
14646
14647 PR middle-end/68762
14648 * omp-simd-clone.c: Include varasm.h.
14649 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
14650 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
14651 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
14652 update function name.
14653
14654 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
14655
14656 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
14657 (avr_diagnose_devicespecs_error): Remove.
14658 (avr_devicespecs_file): Remove composing absolute path for specfile
14659 and its verbose info. Remove conditions to check specs-file,
14660
14661 2016-08-08 Jakub Jelinek <jakub@redhat.com>
14662
14663 PR rtl-optimization/72821
14664 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
14665 just return false for them.
14666
14667 2016-08-08 Alan Modra <amodra@gmail.com>
14668
14669 PR target/72771
14670 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
14671 toc refs created during reload. Update function comment.
14672
14673 2016-08-08 Alan Modra <amodra@gmail.com>
14674
14675 PR target/72802
14676 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
14677 alternatives. Put loads first, then stores, and reg/reg moves
14678 within same class later. Delete attr length.
14679
14680 2016-08-08 Alan Modra <amodra@gmail.com>
14681
14682 PR target/72802
14683 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
14684 (mem_operand_ds_form): New predicate.
14685 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
14686 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
14687 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
14688 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
14689 (extendsfdf2_fpr): Replace o constraint with wY.
14690
14691 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
14692
14693 * tree-ssa-threadbackward.c: Include tree-inline.h
14694 (profitable_jump_thread_path): Use estimate_num_insns to estimate
14695 size of copied block; for cold paths reduce duplication.
14696 (find_jump_threads_backwards): Remove redundant tests.
14697 (pass_thread_jumps::gate): Enable for -Os.
14698
14699 2016-08-07 Jakub Jelinek <jakub@redhat.com>
14700
14701 PR c/72816
14702 * stor-layout.c (layout_decl): Fix up formatting.
14703 (relayout_decl): Allow DECL to be FIELD_DECL.
14704
14705 2016-08-07 Alan Modra <amodra@gmail.com>
14706
14707 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
14708
14709 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
14710
14711 * data-streamer-in.c (streamer_read_wide_int): New.
14712 (streamer_read_widest_int): Renamed function.
14713 * data-streamer-out.c (streamer_write_wide_int): New
14714 (streamer_write_widest_int): Renamed function.
14715 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
14716 data-stream-in.c.
14717 (input_cfg): Call renamed function.
14718 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
14719 data-stream-out.c.
14720 (output_cfg): Call renamed function.
14721 * data-streamer.h: Add declarations.
14722
14723 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14724
14725 * tree-ssa-ccp.c (extend_mask): New param sgn.
14726 Remove ORing with wi::mask.
14727 (get_default_value): Adjust call to extend_mask to pass sign.
14728 (evaluate_stmt): Likewise.
14729
14730 2016-08-06 Jakub Jelinek <jakub@redhat.com>
14731
14732 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
14733 INT64_MAX.
14734
14735 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14736
14737 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
14738 transform if operand's type is pointer to function or method.
14739
14740 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
14741
14742 PR tree-optimization/18046
14743 * tree-ssa-threadedge.c: Include cfganal.h.
14744 (simplify_control_statement_condition): If simplifying a
14745 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
14746 with the dominating ASSERT_EXPR before handing it off to VRP.
14747 Mention that a CASE_LABEL_EXPR may be returned.
14748 (thread_around_empty_blocks): Adjust to handle
14749 simplify_control_statement_condition() returning a
14750 CASE_LABEL_EXPR.
14751 (thread_through_normal_block): Likewise.
14752 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
14753 a switch statement by trying to determine which case label
14754 will be taken.
14755
14756 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
14757
14758 PR rtl-optimization/69847
14759 * lra-constraints.c (process_invariant_for_inheritance): Save
14760 pattern instead of src.
14761 (remove_inheritance_pseudos): Use the pattern. Add assert.
14762
14763 2016-08-05 David Malcolm <dmalcolm@redhat.com>
14764
14765 * input.c (string_concat::string_concat): New constructor.
14766 (string_concat_db::string_concat_db): New constructor.
14767 (string_concat_db::record_string_concatenation): New method.
14768 (string_concat_db::get_string_concatenation): New method.
14769 (string_concat_db::get_key_loc): New method.
14770 (class auto_cpp_string_vec): New class.
14771 (get_substring_ranges_for_loc): New function.
14772 (get_source_range_for_substring): New function.
14773 (get_num_source_ranges_for_substring): New function.
14774 (class selftest::lexer_test_options): New class.
14775 (struct selftest::lexer_test): New struct.
14776 (class selftest::ebcdic_execution_charset): New class.
14777 (selftest::ebcdic_execution_charset::s_singleton): New variable.
14778 (selftest::lexer_test::lexer_test): New constructor.
14779 (selftest::lexer_test::~lexer_test): New destructor.
14780 (selftest::lexer_test::get_token): New method.
14781 (selftest::assert_char_at_range): New function.
14782 (ASSERT_CHAR_AT_RANGE): New macro.
14783 (selftest::assert_num_substring_ranges): New function.
14784 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
14785 (selftest::assert_has_no_substring_ranges): New function.
14786 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
14787 (selftest::test_lexer_string_locations_simple): New function.
14788 (selftest::test_lexer_string_locations_ebcdic): New function.
14789 (selftest::test_lexer_string_locations_hex): New function.
14790 (selftest::test_lexer_string_locations_oct): New function.
14791 (selftest::test_lexer_string_locations_letter_escape_1): New function.
14792 (selftest::test_lexer_string_locations_letter_escape_2): New function.
14793 (selftest::test_lexer_string_locations_ucn4): New function.
14794 (selftest::test_lexer_string_locations_ucn8): New function.
14795 (selftest::uint32_from_big_endian): New function.
14796 (selftest::test_lexer_string_locations_wide_string): New function.
14797 (selftest::uint16_from_big_endian): New function.
14798 (selftest::test_lexer_string_locations_string16): New function.
14799 (selftest::test_lexer_string_locations_string32): New function.
14800 (selftest::test_lexer_string_locations_u8): New function.
14801 (selftest::test_lexer_string_locations_utf8_source): New function.
14802 (selftest::test_lexer_string_locations_concatenation_1): New
14803 function.
14804 (selftest::test_lexer_string_locations_concatenation_2): New
14805 function.
14806 (selftest::test_lexer_string_locations_concatenation_3): New
14807 function.
14808 (selftest::test_lexer_string_locations_macro): New function.
14809 (selftest::test_lexer_string_locations_stringified_macro_argument):
14810 New function.
14811 (selftest::test_lexer_string_locations_non_string): New function.
14812 (selftest::test_lexer_string_locations_long_line): New function.
14813 (selftest::test_lexer_char_constants): New function.
14814 (selftest::input_c_tests): Call the new test functions once per
14815 case within the line_table test matrix.
14816 * input.h (struct string_concat): New struct.
14817 (struct location_hash): New struct.
14818 (class string_concat_db): New class.
14819 * substring-locations.h: New header.
14820
14821 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
14822
14823 PR tree-optimization/72810
14824 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
14825 the type of the case labels when truncating.
14826
14827 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
14828
14829 PR Target/72819
14830 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
14831 (aarch64_fp16_ptr_type_node): Likewise.
14832 * config/aarch64/aarch64-simd-builtins.c
14833 (aarch64_fp16_ptr_type_node): Define.
14834 (aarch64_init_fp16_types): New, refactored out of...
14835 (aarch64_init_builtins): ...here, update to call
14836 aarch64_init_fp16_types.
14837 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
14838 HFmode.
14839 (aapcs_vfp_sub_candidate): Likewise.
14840
14841 2016-08-05 Martin Liska <mliska@suse.cz>
14842 Joshua Cranmer <Pidgeot18@gmail.com>
14843
14844 * gcov.c (line_t::has_block): New function.
14845 (enum loop_type): New enum.
14846 (handle_cycle): New function.
14847 (unblock): Likewise.
14848 (circuit): Likewise.
14849 (get_cycles_count): Likewise.
14850 (accumulate_line_counts): Use new loop detection algorithm.
14851
14852 2016-08-05 Martin Liska <mliska@suse.cz>
14853
14854 * gcov.c (output_intermediate_file): Rename
14855 function_info::line_next to next_file_fn.
14856 (process_file): Likewise.
14857 (read_graph_file): Likewise.
14858 (accumulate_line_counts): Likewise.
14859 (output_lines): Likewise.
14860
14861 2016-08-05 Richard Biener <rguenther@suse.de>
14862
14863 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
14864 restriction on threading to a loop header.
14865
14866 2016-08-05 Richard Biener <rguenther@suse.de>
14867
14868 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
14869 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
14870 adjust loop info accordingly.
14871
14872 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
14873
14874 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
14875 before folding call to __builtin_constant_p with parameters to false.
14876
14877 2016-08-05 Alan Modra <amodra@gmail.com>
14878
14879 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
14880 code accidentally committed 2016-05-02 providing class when given
14881 NO_REGS.
14882
14883 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
14884
14885 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
14886 the case label ranges that partially overlap with OP's value
14887 range.
14888
14889 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
14890
14891 PR target/72805
14892 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
14893 Cast builtin function result to __mmask16 instead of __mmask8.
14894 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
14895 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
14896 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
14897
14898 2016-08-04 David Malcolm <dmalcolm@redhat.com>
14899
14900 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
14901 (ASSERT_TRUE_AT): New macro.
14902 (ASSERT_FALSE): Reimplement in terms of...
14903 (ASSERT_FALSE_AT): New macro.
14904 (ASSERT_STREQ_AT): Fix typo in comment.
14905
14906 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
14907
14908 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
14909 labels are exhaustive, designate the label with the widest
14910 range to be the default label.
14911
14912 2016-08-04 Andrew Pinski <apinski@cavium.com>
14913
14914 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
14915 (thunderx_tunings): Use thunderx_vector_cost instead of
14916 generic_vector_cost.
14917
14918 2016-08-04 Martin Liska <mliska@suse.cz>
14919
14920 * gcov.c (main): Fix GNU coding style.
14921 (output_intermediate_file): Likewise.
14922 (process_file): Likewise.
14923 (generate_results): Likewise.
14924 (release_structures): Likewise.
14925 (create_file_names): Likewise.
14926 (find_source): Likewise.
14927 (read_graph_file): Likewise.
14928 (find_exception_blocks): Likewise.
14929 (canonicalize_name): Likewise.
14930 (make_gcov_file_name): Likewise.
14931 (mangle_name): Likewise.
14932 (accumulate_line_counts): Likewise.
14933 (output_branch_count): Likewise.
14934 (read_line): Likewise.
14935
14936 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
14937
14938 PR rtl-optimization/71779
14939 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
14940 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
14941 or if it was truncated.
14942
14943 PR rtl-optimization/70903
14944 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
14945
14946 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
14947
14948 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
14949 accessing SSA_NAME_PTR_INFO.
14950
14951 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
14952
14953 PR 70677
14954 * common/config/avr/avr-common.c (avr_option_optimization_table)
14955 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
14956
14957 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
14958
14959 PR 55181
14960 * config/avr/avr.md: New pattern to work around do_store_flag
14961 generating shift instructions for bit extractions.
14962
14963 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
14964
14965 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
14966 BITMAP_ALLOC.
14967 (add_equivalence): Likewise.
14968 (get_value_range): Allocate value range with vrp_value_range_pool.
14969 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
14970 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
14971
14972 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
14973
14974 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
14975 the default for the rs6000 port.
14976
14977 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
14978
14979 PR middle-end/71876
14980 * calls.c (special_function_p): Remove special handling of
14981 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
14982 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
14983 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
14984
14985 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
14986
14987 PR middle-end/72778
14988 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
14989 Don't stop on regular insns.
14990
14991 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
14992
14993 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
14994 size to DImode boundary.
14995 (nvptx_propagate): Likewise.
14996
14997 2016-08-03 Alan Modra <amodra@gmail.com>
14998
14999 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
15000 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
15001 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
15002 from -mefficient-unaligned-vector. Note that this affects fp too.
15003
15004 2016-08-03 Alan Modra <amodra@gmail.com>
15005
15006 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
15007 cost more.
15008
15009 2016-08-03 Alan Modra <amodra@gmail.com>
15010
15011 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
15012 to a reg. Localize vars.
15013
15014 2016-08-03 Alan Modra <amodra@gmail.com>
15015
15016 * config/rs6000/rs6000.opt: Remove negatives from help strings
15017 and comments.
15018
15019 2016-08-03 Alan Modra <amodra@gmail.com>
15020
15021 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
15022 Delete duplicated code.
15023
15024 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
15025
15026 PR middle-end/72778
15027 * lra-spills.c (regno_in_use_p): New.
15028 (lra_final_code_change): Use it.
15029
15030 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
15031
15032 PR rtl-optimization/69847
15033 * lra-int.h (struct lra-reg): Use restore_rtx instead of
15034 restore_regno.
15035 (lra_rtx_hash): New.
15036 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
15037 of restore_regno.
15038 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
15039 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
15040 * lra-spills.c (lra_final_code_change): Don't delete insn when the
15041 next insn is USE with the same reg as the current insn source.
15042 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
15043 of restore_regno.
15044 (lra_constraints_init): Call initiate_invariants.
15045 (lra_constraints_finish): Call finish_invariants.
15046 (struct invariant, invariant_t, invariant_ptr_t): New.
15047 (const_invariant_ptr_t, invariants, invariants_pool): New.
15048 (invariant_table, invariant_hash, invariant_eq_p): New.
15049 (insert_invariant, initiate_invariants, finish_invariants): New.
15050 (clear_invariants, invalid_invariant_regs): New.
15051 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
15052 instead of restore_regno.
15053 (invariant_p, process_invariant_for_inheritance): New.
15054 (inherit_in_ebb): Implement invariant inheritance.
15055 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
15056 (remove_inheritance_pseudos): Implement undoing invariant
15057 inheritance.
15058 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
15059 instead of restore_regno.
15060 * lra-assigns.c (regno_live_length): New.
15061 (reload_pseudo_compare_func): Use regno_live_length.
15062 (assign_by_spills): Use restore_rtx instead of restore_regno.
15063 (lra_assign): Ditto. Initiate regno_live_length.
15064
15065 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
15066
15067 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
15068 __builtin_aarch64_fmindf.
15069
15070 2016-08-02 Bin Cheng <bin.cheng@arm.com>
15071
15072 PR tree-optimization/34114
15073 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
15074 information for more control IVs.
15075
15076 2016-08-02 Bin Cheng <bin.cheng@arm.com>
15077
15078 PR tree-optimization/34114
15079 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
15080 PLUS_EXPR case. Handle SSA_NAME case.
15081
15082 2016-08-02 Tamar Christina <tamar.christina@arm.com>
15083
15084 * config/aarch64/aarch64-simd-builtins.def
15085 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
15086 (__builtin_aarch64_fmaxdf): Likewise.
15087 (__builtin_aarch64_smin_nandf): Likewise.
15088 (__builtin_aarch64_smax_nandf): Likewise.
15089 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
15090 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
15091 (<fmaxmin><mode>3): ...this.
15092 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
15093 (vminnm_f64): Likewise.
15094 (vmin_f64): Likewise.
15095 (vmax_f64): Likewise.
15096 * config/aarch64/iterators.md (FMAXMIN): Merge with...
15097 (FMAXMIN_UNS): ...this.
15098 (fmaxmin): Merged with
15099 (fmaxmin_op): ...this...
15100 (maxmin_uns_op): ...in to this.
15101
15102 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
15103
15104 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15105 Add support for vec_extract on vector float, vector int, vector
15106 short, and vector char vector types.
15107 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
15108 vector float, vector int, vector short, and vector char
15109 optimizations on 64-bit ISA 2.07 systems for both constant and
15110 variable element numbers.
15111 (rs6000_split_vec_extract_var): Likewise.
15112 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
15113 Altivec registers on ISA 2.07 and above.
15114 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
15115 which never was matched due to the split occuring before register
15116 allocation (and the code would not have worked on little endian
15117 systems if it did match). Allow extracts to go to the Altivec
15118 registers if ISA 2.07 (power8). Change from using "" around the
15119 C++ code to using {}'s.
15120 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
15121 vec_extracts when the vector is in memory.
15122 (vsx_extract_v4sf_var): New insn to optimize vector float
15123 vec_extracts when the element number is variable on 64-bit ISA
15124 2.07 systems.
15125 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
15126 for 64-bit ISA 2.07 as well as ISA 3.0.
15127 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
15128 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
15129 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
15130 optimize vector int, vector short, and vector char vec_extracts
15131 when the vector is in memory.
15132 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
15133 optimize vector int, vector short, and vector char vec_extracts
15134 when the element number is variable.
15135
15136 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
15137
15138 PR target/71948
15139 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
15140 does not overlap with other symbol flags.
15141
15142 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
15143
15144 * config/aarch64/aarch64.h (aarch64_frame):
15145 Remove padding0 and hardfp_offset. Add locals_offset,
15146 initial_adjust, callee_adjust, callee_offset and final_adjust.
15147 * config/aarch64/aarch64.c (aarch64_layout_frame):
15148 Remove unused padding0 and hardfp_offset initializations.
15149 Choose frame layout and set frame variables accordingly.
15150 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
15151 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
15152 (aarch64_pop_regs): Likewise.
15153 (aarch64_expand_prologue): Remove all decision code, just emit
15154 prolog according to frame variables.
15155 (aarch64_expand_epilogue): Remove all decision code, just emit
15156 epilog according to frame variables.
15157 (aarch64_initial_elimination_offset): Use offset to local/arg area.
15158
15159 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
15160
15161 PR target/72748
15162 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
15163 fix_debug_reg_uses after changing source register mode to
15164 V1TImode if source register is undefined.
15165
15166 2015-08-01 Alan Hayward <alan.hayward@arm.com>
15167
15168 PR tree-optimization/71818
15169 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
15170 with non invariant evolutions
15171
15172 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
15173
15174 PR target/72767
15175 * config/avr/avr.md (length) [branch]: Correct insn length
15176 attribute for forward branches.
15177
15178 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
15179
15180 * doc/extend.texi (AVR Built-in Functions): Document
15181 __builtin_avr_nops.
15182 * config/avr/builtins.def (NOPS): New.
15183 * config/avr/avr.c (avr_expand_nops): New static function.
15184 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
15185
15186 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15187
15188 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
15189 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
15190 addresses.
15191
15192 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
15193
15194 * config/aarch64/aarch64.c (vulcan_tunings): Update
15195 vulcan L1 cache_line_size.
15196
15197 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
15198
15199 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
15200 function that takes a vector memory address, a hard register, an
15201 element number and a temporary base register, and recreates an
15202 address that points to the appropriate element within the vector.
15203 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
15204 (rs6000_split_vec_extract_var): Add support for the target of a
15205 vec_extract with variable element number being a scalar memory
15206 location.
15207 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
15208 swappable.
15209 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
15210 vsx_extract_<mode>_load insn with a new insn that optimizes
15211 storing either element to a memory location, using scratch
15212 registers to pick apart the vector and reconstruct the address.
15213 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
15214 (vsx_extract_<mode>_store): Rework alternatives to more correctly
15215 support Altivec registers. Add support for ISA 3.0 Altivec d-form
15216 store instruction.
15217 (vsx_extract_<mode>_var): Add support for extracting a variable
15218 element number from memory.
15219
15220 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
15221
15222 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
15223 when testing for compares against constants of the form 0xabab.
15224
15225 2016-07-29 Bin Cheng <bin.cheng@arm.com>
15226
15227 PR tree-optimization/57558
15228 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
15229 function.
15230 (vect_loop_versioning): Support versioning with niter assumptions.
15231 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
15232 (vect_get_loop_niters): New parameter. Reimplement to support
15233 assumptions in loop niter info.
15234 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
15235 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
15236 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
15237 Support loop versioning for niters.
15238 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
15239 (vect_free_loop_info_assumptions): New function.
15240 (vectorize_loops): Free loop niter info for loops with flag
15241 LOOP_F_ASSUMPTIONS set if vectorization failed.
15242 * tree-vectorizer.h (struct _loop_vec_info): New field
15243 num_iters_assumptions.
15244 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
15245 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
15246 (LOOP_REQUIRES_VERSIONING): New macro.
15247 (vect_free_loop_info_assumptions): New decl.
15248
15249 2016-07-29 Bin Cheng <bin.cheng@arm.com>
15250
15251 * cfgloop.h (struct loop): New field constraints.
15252 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
15253 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
15254 functions.
15255 * cfgloop.c (alloc_loop): Initialize new field.
15256 * cfgloopmanip.c (copy_loop_info): Copy constraints.
15257 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
15258 Adjust niter analysis wrto loop constraints.
15259 * doc/loop.texi (@node Number of iterations): Add description for loop
15260 constraints.
15261
15262 2016-07-29 Marek Polacek <polacek@redhat.com>
15263
15264 PR c/7652
15265 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
15266 (ix86_expand_round_builtin): Likewise.
15267
15268 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
15269 Georg-Johann Lay <avr@gjlay.de>
15270
15271 PR rtl-optimization/71976
15272 * combine.c (get_last_value): Return 0 if the argument for which
15273 the function is called has a wider mode than the recorded value.
15274
15275 2016-07-29 Marek Polacek <polacek@redhat.com>
15276
15277 PR c/7652
15278 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
15279 (altivec_expand_st_builtin): Likewise.
15280
15281 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
15282
15283 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
15284 introduced in r238381.
15285
15286 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
15287
15288 PR middle-end/68217
15289 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
15290 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
15291
15292 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
15293
15294 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
15295 New declaration.
15296 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15297 Add support for vec_extract of vector double or vector long having
15298 a variable element number on 64-bit ISA 2.07 systems or newer.
15299 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
15300 Likewise.
15301 (rs6000_split_vec_extract_var): New function to split a
15302 vec_extract built-in function with variable element number.
15303 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
15304 swappable.
15305 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
15306 (UNSPEC_VSX_EXTRACT): Likewise.
15307 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
15308 direct move instructions to be generated on 64-bit ISA 2.07
15309 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
15310 instruction.
15311 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
15312 arguments for vec_extract variable element.
15313 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
15314 vec_extract with variable element on V2DFmode and V2DImode
15315 vectors.
15316 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
15317 -mupper-regs-df requirement, since it isn't needed.
15318 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
15319 do direct moves on 64-bit systems, which allows optimization of
15320 vec_extract on 64-bit ISA 2.07 systems and newer.
15321
15322 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
15323 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
15324
15325 * config/aarch64/aarch64.md
15326 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
15327 statement and type.
15328 (<optab>qihi2_aarch64): Likewise, and split into two.
15329 (extendqihi2_aarch64): New.
15330 (zero_extendqihi2_aarch64): New.
15331 * config/aarch64/iterators.md (ldrxt): Remove.
15332 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
15333 uxtb/uxth.
15334
15335 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
15336
15337 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
15338
15339 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
15340
15341 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
15342 (aarch64_push_reg): New function to push 1 or 2 registers.
15343 (aarch64_pop_reg): New function to pop 1 or 2 registers.
15344 (aarch64_expand_prologue): Use aarch64_push_regs.
15345 (aarch64_expand_epilogue): Use aarch64_pop_regs.
15346
15347 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
15348
15349 PR tree-optimization/71734
15350 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
15351 attribute instead of REF_LOOP and use it.
15352 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
15353 set it for Loops having non-zero safelen attribute.
15354 (ref_indep_loop_p): Pass zero as initial value for safelen.
15355
15356 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
15357
15358 PR middle-end/72657
15359 PR target/72683
15360 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
15361 call using chkp_gimple_call_builtin_p.
15362 (chkp_copy_bounds_for_assign): Likewise.
15363
15364 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15365
15366 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
15367 * config/arm/arm-protos.h (struct tune_params): Likewise.
15368 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
15369 (cortex_a9_sched_adjust_cost): Likewise.
15370 (fa726te_sched_adjust_cost): Likewise.
15371 (arm_adjust_cost): Likewise.
15372 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
15373 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
15374 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
15375 * config/i386/i386.c (ix86_adjust_cost): Likewise.
15376 * config/ia64/ia64.c: Likewise.
15377 * config/m68k/m68k.c: Likewise.
15378 * config/mep/mep.c (mep_adjust_cost): Likewise.
15379 * config/microblaze/microblaze.c (microblaze_adjust_cost):
15380 * Likewise.
15381 * config/mips/mips.c (mips_adjust_cost): Likewise.
15382 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
15383 * Likewise.
15384 * config/pa/pa.c (pa_adjust_cost): Likewise.
15385 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
15386 (rs6000_debug_adjust_cost): Likewise.
15387 * config/sh/sh.c (sh_adjust_cost): Likewise.
15388 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
15389 (hypersparc_adjust_cost): Likewise.
15390 (sparc_adjust_cost): Likewise.
15391 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
15392 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
15393 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
15394 * Likewise.
15395 * config/visium/visium.c (visium_adjust_cost): Likewise.
15396 * doc/tm.texi: Regenerate.
15397 * haifa-sched.c (dep_cost_1): Adjust.
15398 * target.def: Merge adjust_cost and adjust_cost_2.
15399
15400 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15401
15402 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
15403
15404 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15405
15406 * store-motion.c (struct st_expr): Make pattern_regs a vector.
15407 (extract_mentioned_regs): Append to a vector instead of
15408 returning a rtx_expr_list.
15409 (st_expr_entry): Adjust.
15410 (free_st_expr_entry): Likewise.
15411 (store_ops_ok): Likewise.
15412 (store_killed_in_insn): Likewise.
15413 (find_moveable_store): Likewise.
15414
15415 2016-07-28 Martin Liska <mliska@suse.cz>
15416
15417 PR gcov-profile/68025
15418 * tree-profile.c (tree_profiling): Respect
15419 no_profile_instrument_function attribute.
15420 * doc/extend.texi: Document no_profile_instrument_function
15421 attribute.
15422
15423 2016-07-28 Martin Liska <mliska@suse.cz>
15424
15425 PR rtl-optimization/70944
15426 * combine.c (make_compound_operation):
15427 Do not allow make_compound_operation for vector mode
15428
15429 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
15430
15431 PR middle-end/71994
15432 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
15433 before calling get_ops.
15434
15435 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
15436
15437 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
15438 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
15439 (BITS_PER_UNIT_LOG): Remove.
15440 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
15441 * expr.c (expand_assignment): Likewise.
15442 * stor-layout.c (initialize_sizetypes): Likewise.
15443
15444 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
15445
15446 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
15447 signature of rs6000_expand_vector_extract so that the element
15448 number is a RTX instead of a constant integer.
15449 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
15450 Likewise.
15451 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
15452 (altivec_expand_vec_ext_builtin): Likewise.
15453 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
15454 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
15455 MFVSRLD instruction.
15456
15457 2016-07-27 David Malcolm <dmalcolm@redhat.com>
15458
15459 * input.c (get_pure_location): Move here from tree.c.
15460 (make_location): Likewise. Add header comment.
15461 (selftest::test_accessing_ordinary_linemaps): Verify
15462 pure_location_p, make_location, get_location_from_adhoc_loc and
15463 get_range_from_loc.
15464 * input.h (get_pure_location): Move declaration here from tree.h.
15465 (get_finish): Likewise for inline function.
15466 (make_location): Likewise for declaration.
15467 * tree.c (get_pure_location): Move to input.c.
15468 (make_location): Likewise.
15469 * tree.h (get_pure_location): Move declaration to tree.h.
15470 (get_finish): Likewise for inline function.
15471 (make_location): Likewise for declaration.
15472
15473 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15474
15475 PR middle-end/71078
15476 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
15477
15478 2016-07-27 David Malcolm <dmalcolm@redhat.com>
15479
15480 * system.h (STATIC_ASSERT): Use static_assert if building
15481 with C++11 onwards.
15482
15483 2016-07-27 Richard Biener <rguenther@suse.de>
15484
15485 PR tree-optimization/72517
15486 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
15487 Revert change to not compute read-read dependences.
15488
15489 2016-07-27 Richard Biener <rguenther@suse.de>
15490
15491 * predict.c (set_even_probabilities): Make nedges unsigned.
15492
15493 2016-07-27 Martin Liska <mliska@suse.cz>
15494
15495 * predict.c (set_even_probabilities): Handle unlikely edges.
15496 (combine_predictions_for_bb): Likewise.
15497
15498 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
15499
15500 PR target/71869
15501 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
15502 __float128 support when we don't have hardware support, so that
15503 the IEEE built-in functions like isgreater, first call __unordkf3
15504 to make sure neither operand is a NaN, and if both operands are
15505 ordered, do the normal comparison.
15506
15507 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
15508
15509 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
15510 name.
15511 (extract_code_and_val_from_cond_with_ops): Verify that name is
15512 either cond_op0 or cond_op1.
15513
15514 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
15515
15516 PR tree-optimization/18046
15517 * genmodes.c (emit_mode_size_inline): Emit an assert that
15518 verifies that mode is a valid array index.
15519 (emit_mode_nuinits_inline): Likewise.
15520 (emit_mode_inner_inline): Likewise.
15521 (emit_mode_unit_size_inline): Likewise.
15522 (emit_mode_unit_precision_inline): Likewise.
15523 * tree-vrp.c: Include params.h.
15524 (find_switch_asserts): Register edge assertions for the default
15525 label which correspond to the anti-ranges of each case label.
15526 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
15527 * doc/invoke.texi: Document it.
15528
15529 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15530
15531 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
15532 and unnecessary call to gimple_bb.
15533
15534 2016-07-26 Richard Biener <rguenther@suse.de>
15535
15536 PR rtl-optimization/71984
15537 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
15538 for VOIDmode.
15539
15540 2016-07-26 Richard Biener <rguenther@suse.de>
15541
15542 PR middle-end/72517
15543 * expmed.c (extract_bit_field_1): Constrain the vector mode
15544 with element size matching the extraction mode size when
15545 choosing a better vector mode to do the extraction from.
15546
15547 2016-07-26 Richard Biener <rguenther@suse.de>
15548 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15549
15550 PR middle-end/70920
15551 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
15552 pattern.
15553
15554 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15555
15556 * tree-ssa-structalias.c (struct scc_info): Change types of
15557 members to auto_sbitmap and auto_vec.
15558 (scc_info::scc_info): New constructor.
15559 (scc_info::~scc_info): New destructor.
15560 (init_scc_info): Remove.
15561 (free_scc_info): Remove.
15562 (find_indirect_cycles): Adjust.
15563 (perform_var_substitution): Likewise.
15564 (free_var_substitution_info): Likewise.
15565
15566 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15567
15568 * tree-outof-ssa.c (struct elim_graph): Change type of members
15569 to auto_vec and auto_sbitmap.
15570 (elim_graph::elim_graph): New constructor.
15571 (delete_elim_graph): Remove.
15572 (expand_phi_nodes): Adjust.
15573
15574 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15575
15576 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
15577 (new_elim_graph): Adjust.
15578 (clear_elim_graph): Likewise.
15579 (delete_elim_graph): Likewise.
15580 (elim_graph_size): Likewise.
15581 (elim_graph_add_node): Likewise.
15582 (elim_graph_add_edge): Likewise.
15583 (elim_graph_remove_succ_edge): Likewise.
15584 (eliminate_name): Likewise.
15585 (eliminate_build): Likewise.
15586 (elim_forward): Likewise.
15587 (elim_unvisited_predecessor): Likewise.
15588 (elim_backward): Likewise.
15589 (elim_create): Likewise.
15590 (eliminate_phi): Likewise.
15591 (expand_phi_nodes): Likewise.
15592
15593 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15594
15595 * bt-load.c (compute_out): Use auto_sbitmap class.
15596 (link_btr_uses): Likewise.
15597 * cfganal.c (mark_dfs_back_edges): Likewise.
15598 (post_order_compute): Likewise.
15599 (inverted_post_order_compute): Likewise.
15600 (pre_and_rev_post_order_compute_fn): Likewise.
15601 (single_pred_before_succ_order): Likewise.
15602 * cfgexpand.c (pass_expand::execute): Likewise.
15603 * cfgloop.c (verify_loop_structure): Likewise.
15604 * cfgloopmanip.c (fix_bb_placements): Likewise.
15605 (remove_path): Likewise.
15606 (update_dominators_in_loop): Likewise.
15607 * cfgrtl.c (break_superblocks): Likewise.
15608 * ddg.c (check_sccs): Likewise.
15609 (create_ddg_all_sccs): Likewise.
15610 * df-core.c (df_worklist_dataflow): Likewise.
15611 * dse.c (dse_step3): Likewise.
15612 * except.c (eh_region_outermost): Likewise.
15613 * function.c (thread_prologue_and_epilogue_insns): Likewise.
15614 * gcse.c (prune_expressions): Likewise.
15615 (prune_insertions_deletions): Likewise.
15616 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
15617 * graph.c (draw_cfg_nodes_no_loops): Likewise.
15618 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
15619 * lcm.c (compute_earliest): Likewise.
15620 (compute_farthest): Likewise.
15621 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
15622 (unroll_loop_runtime_iterations): Likewise.
15623 (unroll_loop_stupid): Likewise.
15624 * lower-subreg.c (decompose_multiword_subregs): Likewise.
15625 * lra-lives.c: Likewise.
15626 * lra.c (lra): Likewise.
15627 * modulo-sched.c (schedule_reg_moves): Likewise.
15628 (optimize_sc): Likewise.
15629 (get_sched_window): Likewise.
15630 (sms_schedule_by_order): Likewise.
15631 (check_nodes_order): Likewise.
15632 (order_nodes_of_sccs): Likewise.
15633 (order_nodes_in_scc): Likewise.
15634 * recog.c (split_all_insns): Likewise.
15635 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
15636 * reload1.c (reload): Likewise.
15637 * sched-rgn.c (haifa_find_rgns): Likewise.
15638 (split_edges): Likewise.
15639 (compute_trg_info): Likewise.
15640 * sel-sched.c (init_seqno): Likewise.
15641 * store-motion.c (remove_reachable_equiv_notes): Likewise.
15642 * tree-into-ssa.c (update_ssa): Likewise.
15643 * tree-ssa-live.c (live_worklist): Likewise.
15644 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
15645 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
15646 * Likewise.
15647 (try_peel_loop): Likewise.
15648 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
15649 * Likewise.
15650 * tree-ssa-pre.c (compute_antic): Likewise.
15651 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
15652 * tree-stdarg.c (reachable_at_most_once): Likewise.
15653 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
15654 * var-tracking.c (vt_find_locations): Likewise.
15655
15656 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15657
15658 * sbitmap.h (auto_sbitmap): New class.
15659
15660 2016-07-26 Alan Modra <amodra@gmail.com>
15661
15662 PR target/72103
15663 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
15664 sri->t_icode.
15665
15666 2016-07-25 David Malcolm <dmalcolm@redhat.com>
15667
15668 * input.c (selftest::temp_source_file::temp_source_file): Fix
15669 missing "%s" in fprintf.
15670
15671 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
15672
15673 PR middle-end/71732
15674 * cselib.c (cselib_process_insn): Invalidate argument slots for
15675 const/pure calls.
15676
15677 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15678
15679 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
15680 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
15681 vmulxh_lane_f16, vmulxh_laneq_f16): New.
15682
15683 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15684
15685 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15686 * config/aarch64/aarch64.md (fma, fnma): Support HF.
15687 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
15688
15689 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15690
15691 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15692 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
15693 New.
15694 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
15695 (add<mode>3): Likewise.
15696 (sub<mode>3): Likewise.
15697 (mul<mode>3): Likewise.
15698 (div<mode>3): Likewise.
15699 (*div<mode>3): Likewise.
15700 (<fmaxmin><mode>3): Extend to HF.
15701 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
15702 (fabd<mode>3): Likewise.
15703 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
15704 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
15705 (aarch64_fmulx<mode>): Likewise.
15706 (aarch64_fac<optab><mode>): Likewise.
15707 (aarch64_frecps<mode>): Likewise.
15708 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
15709 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
15710 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
15711 (VSDQ_HSDI): Support HI.
15712 (fcvt_target, FCVT_TARGET): Likewise.
15713 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
15714 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
15715 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
15716 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
15717 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
15718 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
15719 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
15720 vrsqrtsh_f16): New.
15721
15722 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15723
15724 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
15725 * config/aarch64/aarch64-builtins.c (hi_UP): New.
15726 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15727 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
15728 mode.
15729 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
15730 (aarch64_cm<optab><mode>): Likewise.
15731 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
15732 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
15733 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
15734 (sqrt<mode>2): Likewise.
15735 (*sqrt<mode>2): Likewise.
15736 (abs<mode>2): Likewise.
15737 (<optab><mode>hf2): New pattern for HF mode.
15738 (<optab>hihf2): Likewise.
15739 * config/aarch64/arm_neon.h: Include arm_fp16.h.
15740 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
15741 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
15742 Support HF mode.
15743 * config/aarch64/arm_fp16.h: New file.
15744 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
15745 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
15746 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
15747 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
15748 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
15749 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
15750 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
15751 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
15752 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
15753 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
15754 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
15755 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
15756 vsqrth_f16): New.
15757
15758 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15759
15760 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
15761 reduc_smin_scal_): Use VDQIF_F16.
15762 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
15763 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
15764 Use VHSDF.
15765 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
15766 * config/aarch64/iterators.md (VDQIF_F16): New.
15767 (vp): Support HF modes.
15768 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
15769 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
15770
15771 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15772
15773 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
15774 "*aarch64_mulx_elt_from_dup<mode>".
15775 (*aarch64_mul3_elt<mode>): Update schedule type.
15776 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
15777 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
15778 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
15779 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
15780 (f, fp): Support HF modes.
15781 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
15782 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
15783 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
15784 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
15785 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
15786 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
15787
15788 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15789
15790 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15791 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
15792 modes.
15793 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
15794 vfmsq_f16): New.
15795
15796 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15797
15798 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15799 * config/aarch64/aarch64-simd.md
15800 (aarch64_rsqrts<mode>): Extend to HF modes.
15801 (fabd<mode>3): Likewise.
15802 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
15803 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
15804 (aarch64_<maxmin_uns>p<mode>): Likewise.
15805 (<su><maxmin><mode>3): Likewise.
15806 (<maxmin_uns><mode>3): Likewise.
15807 (<fmaxmin><mode>3): Likewise.
15808 (aarch64_faddp<mode>): Likewise.
15809 (aarch64_fmulx<mode>): Likewise.
15810 (aarch64_frecps<mode>): Likewise.
15811 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
15812 (add<mode>3): Extend to HF modes.
15813 (sub<mode>3): Likewise.
15814 (mul<mode>3): Likewise.
15815 (div<mode>3): Likewise.
15816 (*div<mode>3): Likewise.
15817 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
15818 HF, V4HF and V8HF.
15819 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
15820 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
15821 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
15822 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
15823 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
15824 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
15825 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
15826 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
15827 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
15828 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
15829 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
15830 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
15831 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
15832 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
15833
15834 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15835
15836 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
15837 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15838 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
15839 (neg<mode>2): Likewise.
15840 (abs<mode>2): Likewise.
15841 (<frint_pattern><mode>2): Likewise.
15842 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
15843 (<optab><VDQF:mode><fcvt_target>2): Likewise.
15844 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
15845 (ftrunc<VDQF:mode>2): Likewise.
15846 (<optab><fcvt_target><VDQF:mode>2): Likewise.
15847 (sqrt<mode>2): Likewise.
15848 (*sqrt<mode>2): Likewise.
15849 (aarch64_frecpe<mode>): Likewise.
15850 (aarch64_cm<optab><mode>): Likewise.
15851 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
15852 HF, V4HF and V8HF.
15853 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
15854 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
15855 (stype): New.
15856 * config/aarch64/arm_neon.h (vdup_n_f16): New.
15857 (vdupq_n_f16): Likewise.
15858 (vld1_dup_f16): Use vdup_n_f16.
15859 (vld1q_dup_f16): Use vdupq_n_f16.
15860 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
15861 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
15862 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
15863 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
15864 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
15865 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
15866 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
15867 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
15868 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
15869 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
15870 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
15871 vsqrt_f16, vsqrtq_f16): New.
15872
15873 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15874
15875 * config/aarch64/aarch64-simd.md
15876 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
15877 (aarch64_ext<mode>): Likewise.
15878 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
15879 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
15880 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
15881 and V8HFmode.
15882 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
15883 float16x8_t.
15884 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
15885 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
15886 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
15887 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
15888 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
15889 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
15890 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
15891 New.
15892 (vmov_n_f16): Reimplement using vdup_n_f16.
15893 (vmovq_n_f16): Reimplement using vdupq_n_f16..
15894
15895 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15896
15897 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
15898 "frame_related_p". Generate CFA annotation when it's necessary.
15899 (aarch64_expand_prologue): Use aarch64_add_constant.
15900 (aarch64_expand_epilogue): Likewise.
15901 (aarch64_output_mi_thunk): Pass "false" when calling
15902 aarch64_add_constant.
15903
15904 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15905
15906 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
15907 sequences.
15908
15909 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15910
15911 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
15912 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
15913 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
15914 (aarch64_build_constant): Delete.
15915
15916 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
15917
15918 Revert
15919 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
15920
15921 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
15922 flag_toplevel_reorder.
15923
15924 2016-07-25 Richard Biener <rguenther@suse.de>
15925
15926 * cgraph.c (cgraph_node::verify_node): Compare against builtin
15927 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
15928 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
15929 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
15930 (streamer_get_builtin_tree): Likewise.
15931 (streamer_write_builtin): Likewise.
15932 * lto-streamer.h (LTO_builtin_decl): Remove.
15933 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
15934 (lto_input_scc): Remove LTO_builtin_decl handling.
15935 (lto_input_tree_1): Liekwise.
15936 * lto-streamer-out.c (lto_output_tree_1): Remove special
15937 handling of builtins.
15938 (DFS::DFS): Likewise.
15939 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
15940 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
15941 assert.
15942 (streamer_write_builtin): Remove.
15943
15944 2016-07-25 Martin Liska <mliska@suse.cz>
15945
15946 * lto-cgraph.c (input_symtab): Don't call get_working_sets
15947 if flag_auto_profile is set to true.
15948
15949 2016-07-25 Martin Liska <mliska@suse.cz>
15950
15951 PR gcov-profile/71868
15952 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
15953 have a function with multiple latches, count them all.
15954
15955 2016-07-25 Martin Liska <mliska@suse.cz>
15956
15957 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
15958
15959 2016-07-25 Martin Liska <mliska@suse.cz>
15960
15961 PR tree-optimization/71987
15962 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
15963 just for SSA_NAMEs. Fix GNU coding style.
15964
15965 2016-07-25 Martin Liska <mliska@suse.cz>
15966
15967 PR gcov-profile/64874
15968 * gcov-io.h: Update command about file format.
15969 * gcov-iov.c (main): Adapt the numbering scheme.
15970
15971 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
15972
15973 PR middle-end/66726
15974 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
15975 whose result is used in PHI.
15976 (final_range_test_p): Likewise.
15977 (maybe_optimize_range_tests): Likewise.
15978
15979 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
15980
15981 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15982 Reformat two multi-line strings.
15983
15984 2016-07-22 Martin Sebor <msebor@redhat.com>
15985
15986 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
15987
15988 2016-07-22 Martin Sebor <msebor@redhat.com>
15989
15990 PR c/71560
15991 * doc/extend.texi (Compound Literals): Correct and clarify.
15992 (Cast to Union): Same.
15993
15994 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
15995
15996 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
15997 comments to explain why certain error messages make mention of
15998 undocumented options.
15999 (rs6000_invalid_builtin): Change error messages to replace mention
16000 of undocumented options with mention of the -mcpu=power9 option
16001 that enables those undocumented options.
16002 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
16003 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
16004 definition of this macro to correct an existing error.
16005 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
16006 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
16007 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
16008 descriptions of built-in functions so that they depend on
16009 -mcpu=power9 instead of on the corresponding undocumented flags.
16010 * doc/invoke.texi (Option Summary): Remove all mention of newly
16011 undocumented flags.
16012 (IBM RS/6000 and PowerPC Options): Likewise.
16013 * doc/md.texi (Constraints for Particuliar Machines): Remove all
16014 mention of newly undocumented flags.
16015
16016 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
16017
16018 * ipa-cp.c (determine_versionability): Do not create constprop clones,
16019 when target_clones attribute is set.
16020
16021 2016-07-22 Bin Cheng <bin.cheng@arm.com>
16022
16023 * common.opt (funsafe-loop-optimizations): Mark ignore.
16024 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
16025 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
16026 related code.
16027 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
16028 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
16029
16030 2016-07-22 Bin Cheng <bin.cheng@arm.com>
16031
16032 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
16033 Parameter.
16034 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
16035 Parameter.
16036 (number_of_iterations_exit): Warn missed loop optimization for
16037 possible infinite loops.
16038
16039 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
16040
16041 PR target/71216
16042 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
16043 when to emit a ".machine" pseudo-op.
16044
16045 2016-07-22 Martin Liska <mliska@suse.cz>
16046
16047 PR gcov-profile/69028
16048 PR gcov-profile/62047
16049 * coverage.c (coverage_compute_lineno_checksum): Do not
16050 calculate checksum for fns w/o xloc.file.
16051 (coverage_compute_profile_id): Likewise.
16052
16053 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
16054
16055 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
16056 (avr_secondary_reload): ...and implementation.
16057 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
16058 * config/avr/avr.md (reload_in<mode>): Remove insns.
16059 (adjust_len) [lpm]: Remove insn attribute value.
16060 * config/avr/predicates.md (flash_operand): Remove insn predicate.
16061
16062 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
16063
16064 PR middle-end/71876
16065 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
16066 attribute.
16067 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
16068 * calls.c (special_function_p): Remove the special handling of the
16069 "__builtin_" prefix.
16070
16071 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
16072
16073 PR middle-end/71876
16074 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
16075 if STMT may be an alloca call.
16076 (gimple_alloca_call_p, alloca_call_p): Return only true for the
16077 builtin alloca call.
16078 * calls.h (gimple_maybe_alloca_call_p): New function.
16079 * tree-inline.c (inline_forbidden_p_stmt): Use
16080 gimple_maybe_alloca_call_p here.
16081
16082 2016-07-21 David Malcolm <dmalcolm@redhat.com>
16083
16084 * spellcheck-tree.c (best_macro_match::best_macro_match):
16085 Explictly specify the template arguments when invoking the base
16086 class constructor, to help older C++ compilers.
16087
16088 2016-07-21 Jakub Jelinek <jakub@redhat.com>
16089
16090 PR sanitizer/71953
16091 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
16092 before builtin_decl_implicit.
16093
16094 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
16095
16096 * optabs.c (emit_condiitonal_move): Short circuit for identical
16097 sources.
16098
16099 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
16100
16101 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
16102 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
16103 (noce_conversion_profitable_p): New.
16104 (noce_try_store_flag_constants): Use it.
16105 (noce_try_addcc): Likewise.
16106 (noce_try_store_flag_mask): Likewise.
16107 (noce_try_cmove): Likewise.
16108 (noce_try_cmove_arith): Likewise.
16109 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
16110 overwriting it.
16111 (noce_convert_multiple_sets): Move cost model to here, from...
16112 (bb_ok_for_noce_convert_multiple_sets) ...here.
16113 (noce_process_if_block): Update calls for above changes.
16114 (noce_find_if_block): Record new noce_if_info parameters.
16115
16116 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
16117
16118 * target.def (max_noce_ifcvt_seq_cost): New.
16119 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
16120 * doc/tm.texi: Regenerate.
16121 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
16122 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
16123 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
16124 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
16125 * doc/invoke.texi: Document new params.
16126
16127 2016-07-21 Richard Biener <rguenther@suse.de>
16128
16129 PR tree-optimization/71947
16130 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
16131 ranges have useful limit_vr information.
16132
16133 2016-07-21 Richard Biener <rguenther@suse.de>
16134
16135 * function-tests.c (build_trivial_generic_function): Set
16136 BLOCK_SUPERCONTEXT of DECL_INITIAL.
16137 * omp-low.c (create_omp_child_function): Likewise.
16138 (grid_expand_target_grid_body): Likewise.
16139 * cgraphunit.c (init_lowered_empty_function): Likewise.
16140 (cgraph_node::expand_thunk): Likewise.
16141 * tree-parloops.c (create_loop_fn): Likewise.
16142 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
16143
16144 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16145
16146 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
16147 in comment.
16148
16149 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
16150
16151 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
16152 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
16153 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
16154 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
16155 values for insn attribute.
16156 * config/avr/avr.c (avr_out_insert_notbit): New function.
16157 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
16158 ADJUST_LEN_INSV_NOTBIT_0/_7.
16159 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
16160
16161 2016-07-21 Bin Cheng <bin.cheng@arm.com>
16162
16163 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
16164 (chrec_convert_1, chrec_convert): Ditto.
16165 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
16166 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
16167 * tree-vrp.c (adjust_range_with_scev): Ditto.
16168 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
16169 (scev_var_range_cant_overflow): New function.
16170 (scev_probably_wraps_p): New parameter. Call above function.
16171 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
16172
16173 2016-07-21 Bin Cheng <bin.cheng@arm.com>
16174
16175 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
16176 by removing computation of may_be_zero.
16177
16178 2016-07-21 Jakub Jelinek <jakub@redhat.com>
16179
16180 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
16181
16182 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
16183
16184 Improving concepts performance and diagnostics.
16185 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
16186 for constraint satisfaction and subsumption.
16187 * timevar.h (auto_timevar): New constructor that matches the push/pop
16188 pattern of usage in pt.c.
16189
16190 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
16191
16192 * hwint.h (HOST_WIDE_INT_0): New define.
16193 (HOST_WIDE_INT_0U): Ditto.
16194 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
16195 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
16196 * simplify-rtx.c: Ditto.
16197 * tree-object-size.c: Ditto.
16198
16199 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16200
16201 * config/s390/s390.c (s390_encode_section_info): Remove mode size
16202 check.
16203
16204 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
16205
16206 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
16207 * combine.c: Use HOST_WIDE_INT_M1U instead of
16208 ~(unsigned HOST_WIDE_INT) 0.
16209 * double-int.h: Ditto.
16210 * dse.c: Ditto.
16211 * dwarf2asm.c:Ditto.
16212 * expmed.c: Ditto.
16213 * genmodes.c: Ditto.
16214 * match.pd: Ditto.
16215 * read-rtl.c: Ditto.
16216 * tree-ssa-loop-ivopts.c: Ditto.
16217 * tree-ssa-loop-prefetch.c: Ditto.
16218 * tree-vect-generic.c: Ditto.
16219 * tree-vect-patterns.c: Ditto.
16220 * tree.c: Ditto.
16221
16222 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
16223
16224 * config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
16225 constant addresses outside [0,0xc0] into a register.
16226 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
16227 cases where the base address register is unused after.
16228 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
16229 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
16230 (avr_out_store_psi_reg_disp_tiny): Same.
16231
16232 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
16233
16234 Implement attribute progmem on reduced Tiny cores by adding
16235 flash offset 0x4000 to respective symbols.
16236
16237 PR target/71948
16238 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
16239 documentation how it works on reduced Tiny cores.
16240 (AVR Named Address Spaces): No support for reduced Tiny.
16241 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
16242 (avr_address_tiny_pm_p): New static function.
16243 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
16244 if the address is in progmem.
16245 (avr_assemble_integer): Same.
16246 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
16247 for symbol_ref in progmem.
16248 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
16249 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
16250 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
16251
16252 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
16253
16254 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
16255 * configure: Regenerate.
16256 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
16257 (USE_THIN_ARCHIVES): New variable.
16258 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
16259 this archive as a thin archive.
16260
16261 2016-07-20 David Malcolm <dmalcolm@redhat.com>
16262
16263 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
16264 same location as last time, don't skip if we have fix-it hints.
16265 Clarify the skipping logic by converting it from one "if" clause
16266 to repeated "if" clauses.
16267 * spellcheck-tree.c: Include "cpplib.h".
16268 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
16269 (best_macro_match::best_macro_match): New constructor.
16270 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
16271 Move here from c/c-decl.c.
16272 (class best_macro_match): Move here from c/c-decl.c, converting
16273 from a typedef to a subclass, gaining a ctor.
16274
16275 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
16276
16277 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
16278 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
16279 define...
16280 (avr_addr_space_diagnose_usage): ...and implementation.
16281 (avr_addr_space_supported_p): New function.
16282 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
16283 report bad address space usage if that space is supported.
16284 (avr_insert_attributes): Same. No more complain about unsupported
16285 address spaces.
16286 * config/avr/avr-c.c (tm_p.h): Include it.
16287 (avr_cpu_cpp_builtins): Only define addr-space related built-in
16288 macro if avr_addr_space_supported_p.
16289
16290 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
16291
16292 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
16293 flag_toplevel_reorder.
16294
16295 2016-07-20 David Malcolm <dmalcolm@redhat.com>
16296
16297 * gcc-rich-location.c
16298 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
16299 a const char *.
16300 * gcc-rich-location.h
16301 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
16302
16303 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
16304
16305 * target.def (addr_space): Add new diagnose_usage to hook vector.
16306 * targhooks.c (default_addr_space_diagnose_usage): Add default
16307 implementation and...
16308 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
16309 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
16310 is some address space, call targetm.addr_space.diagnose_usage.
16311 * doc/tm.texi.in (Named Address Spaces): Add anchor for
16312 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
16313 * doc/tm.texi: Regenerate.
16314
16315 2016-07-20 Martin Liska <mliska@suse.cz>
16316
16317 PR middle-end/71898
16318 * graphite-isl-ast-to-gimple.c (later_of_the_two):
16319 Properly handly PHI stmts.
16320
16321 2016-07-20 Bin Cheng <bin.cheng@arm.com>
16322
16323 PR tree-optimization/71503
16324 PR tree-optimization/71683
16325 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
16326 and break.
16327
16328 2016-07-20 Martin Liska <mliska@suse.cz>
16329
16330 * doc/invoke.texi (-fipa-ra): Document when the option is
16331 disabled. Fix a typo.
16332
16333 2016-07-20 Martin Liska <mliska@suse.cz>
16334
16335 * Makefile.in: Include fibonacci_heap.c
16336 * fibonacci_heap.c: New file.
16337 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
16338 (fibonacci_heap::union_with): Fix deletion of the second heap.
16339 * selftest-run-tests.c (selftest::run_tests): Incorporate
16340 fibonacci heap tests.
16341 * selftest.h: Declare fibonacci_heap_c_tests.
16342
16343 2016-07-20 Martin Liska <mliska@suse.cz>
16344
16345 * selftest-run-tests.c (selftest::run_tests): New function.
16346 * selftest.h (sreal_c_tests): Declare.
16347 * sreal.c (sreal_verify_basics): New function.
16348 (verify_aritmetics): Likewise.
16349 (sreal_verify_arithmetics): Likewise.
16350 (verify_shifting): Likewise.
16351 (sreal_verify_shifting): Likewise.
16352 (void sreal_c_tests): Likewise.
16353
16354 2016-07-19 Jakub Jelinek <jakub@redhat.com>
16355
16356 PR rtl-optimization/71916
16357 * cfgrtl.c (contains_no_active_insn_p): Return false also for
16358 bb which have a single succ fake edge.
16359
16360 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
16361
16362 PR debug/71855
16363 * dwarf2out.c (gen_subprogram_die): Only call
16364 gen_unspecified_parameters_die while dumping early dwarf.
16365
16366 2016-07-19 Jakub Jelinek <jakub@redhat.com>
16367
16368 PR middle-end/71874
16369 * gimple-fold.c (fold_builtin_memory_op): Use
16370 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
16371
16372 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
16373
16374 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
16375 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
16376 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
16377 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
16378 * combine.c: Ditto.
16379 * cse.c: Ditto.
16380 * dojump.c: Ditto.
16381 * double-int.c: Ditto.
16382 * dse.c: Ditto.
16383 * dwarf2out.c: Ditto.
16384 * expmed.c: Ditto.
16385 * expr.c: Ditto.
16386 * fold-const.c: Ditto.
16387 * function.c: Ditto.
16388 * fwprop.c: Ditto.
16389 * genmodes.c: Ditto.
16390 * hwint.c: Ditto.
16391 * hwint.h: Ditto.
16392 * ifcvt.c: Ditto.
16393 * loop-doloop.c: Ditto.
16394 * loop-invariant.c: Ditto.
16395 * loop-iv.c: Ditto.
16396 * match.pd: Ditto.
16397 * optabs.c: Ditto.
16398 * real.c: Ditto.
16399 * reload.c: Ditto.
16400 * rtlanal.c: Ditto.
16401 * simplify-rtx.c: Ditto.
16402 * stor-layout.c: Ditto.
16403 * toplev.c: Ditto.
16404 * tree-ssa-loop-ivopts.c: Ditto.
16405 * tree-vect-generic.c: Ditto.
16406 * tree-vect-patterns.c: Ditto.
16407 * tree.c: Ditto.
16408 * tree.h: Ditto.
16409 * ubsan.c: Ditto.
16410 * varasm.c: Ditto.
16411 * wide-int-print.cc: Ditto.
16412 * wide-int.cc: Ditto.
16413 * wide-int.h: Ditto.
16414
16415 2016-07-19 David Malcolm <dmalcolm@redhat.com>
16416
16417 * selftest.c (selftest::assert_streq): Handle NULL values of
16418 val_actual and val_expected.
16419
16420 2016-07-19 Martin Jambor <mjambor@suse.cz>
16421
16422 PR fortran/71688
16423 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
16424 rather than cgraph_create_node to get a call graph node.
16425
16426 2016-07-19 Richard Biener <rguenther@suse.de>
16427
16428 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
16429 handle all tcc_constant bases and valueize SSA names.
16430 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
16431 tcc_constant bases.
16432
16433 2016-07-19 David Malcolm <dmalcolm@redhat.com>
16434
16435 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
16436 the flags of the exit block and bb2, not just the entry block.
16437
16438 2016-07-19 Richard Biener <rguenther@suse.de>
16439
16440 PR tree-optimization/71901
16441 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
16442 align member, group stuff with the bitfield.
16443 (vn_ref_op_align_unit): New inline.
16444 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
16445 record element alignment and operand 3 unchanged.
16446 (ao_ref_init_from_vn_reference): Adjust.
16447 (valueize_refs_1): Likewise.
16448 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
16449
16450 2016-07-19 Richard Biener <rguenther@suse.de>
16451
16452 PR tree-optimization/71908
16453 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
16454 symbolic constants in a more reliable way.
16455
16456 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
16457
16458 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
16459 comment.
16460 (vect_update_inits_of_drs): Likewise.
16461 (vect_create_cond_for_alias_checks): Likewise.
16462 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
16463
16464 2016-07-19 Richard Biener <rguenther@suse.de>
16465
16466 PR lto/71907
16467 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
16468 with an abstract origin that is not an inlined function outer
16469 scope add a self-reference as abstract origin.
16470 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
16471
16472 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
16473
16474 PR target/71493
16475 * config/rs6000/rs6000.c (rs6000_function_value): Fix
16476 unintentional System V.4 structure return breakage for structures
16477 with a single floating point element.
16478
16479 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
16480
16481 PR tree-optimization/71734
16482 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
16483 contains REF, use it to check safelen, assume that safelen value
16484 must be greater 1, fix style.
16485 (ref_indep_loop_p_2): Add REF_LOOP argument.
16486 (ref_indep_loop_p): Pass LOOP as additional argument to
16487 ref_indep_loop_p_2.
16488
16489 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
16490
16491 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
16492 allocation in the prologue.
16493 * explow.c (get_dynamic_stack_base): New function to return an address
16494 expression for the dynamic stack base.
16495 (get_dynamic_stack_size): New function to do the required dynamic stack
16496 space size calculations.
16497 (allocate_dynamic_stack_space): Use new functions.
16498 (align_dynamic_address): Move some code from
16499 allocate_dynamic_stack_space to new function.
16500 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
16501
16502 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16503
16504 * config/s390/s390.c (s390_encode_section_info): Always set
16505 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
16506 found.
16507
16508 2016-07-18 Richard Biener <rguenther@suse.de>
16509
16510 PR tree-optimization/71893
16511 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
16512 for sizetype cast added by array_ref_element_size.
16513 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
16514
16515 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
16516
16517 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
16518 register parameters. Remove code to initialize argument pointer
16519 on TARGET_64BIT. Optimize call to _mcount when it can be reached
16520 using a pc-relative branch. Cleanup conditional code.
16521 * config/pa/pa.md (call_mcount): New expander.
16522 (call_mcount_nonpic): New insn.
16523 (call_mcount_pic): New insn and split.
16524 (call_mcount_pic_post_reload): New insn.
16525 (call_mcount_64bit): New insn and split.
16526 (call_mcount_64bit_post_reload): New insn.
16527
16528 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
16529
16530 * config/avr/predicates.md (const_m255_to_m1_operand): New.
16531 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
16532 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
16533 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
16534 (*usum_widenqihi3, *udiff_widenqihi3)
16535 (*addhi3_zero_extend.const): New combiner insns.
16536 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
16537 just 1 bit is affected.
16538 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
16539 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
16540
16541 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
16542
16543 * omp-low.c (lower_omp_target): Mark data clauses with
16544 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
16545 zero-length subarrays.
16546
16547 2016-07-15 Richard Biener <rguenther@suse.de>
16548
16549 PR tree-optimization/71881
16550 * tree-loop-distribution.c (destroy_loop): Remove blocks in
16551 reverse DOM order to make debug temp generation happy.
16552
16553 2016-07-15 Richard Biener <rguenther@suse.de>
16554
16555 PR tree-optimization/71887
16556 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
16557 verify it is not zero for division / modulo handling.
16558 (value_replacement): Adjust.
16559
16560 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
16561 Julian Brown <julian@codesourcery.com>
16562
16563 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
16564 * config/aarch64/aarch64-cost-tables.h
16565 (vulcan_extra_costs): New variable.
16566 * config/aarch64/aarch64.c
16567 (vulcan_addrcost_table): Likewise.
16568 (vulcan_regmove_cost): Likewise.
16569 (vulcan_vector_cost): Likewise.
16570 (vulcan_branch_cost): Likewise.
16571 (vulcan_tunings): Likewise.
16572
16573 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
16574
16575 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
16576 (output_in_order): Loop over undefined variables too. Output them
16577 via assemble_undefined_decl. Skip variables that correspond to hard
16578 registers or have value-exprs.
16579 * varpool.c (symbol_table::output_variables): Handle undefined
16580 variables together with defined ones.
16581
16582 2016-07-15 Richard Biener <rguenther@suse.de>
16583
16584 * tree-ssa-pre.c (get_representative_for): Make sure to return
16585 the value number of SSA names.
16586 (phi_translate_1): get_representative_for cannot return NULL.
16587 (do_pre_regular_insertion): Remove redundant call to
16588 fully_constant_expression.
16589 (do_pre_partial_partial_insertion): Likewise.
16590
16591 2016-07-15 Bin Cheng <bin.cheng@arm.com>
16592
16593 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
16594 (derive_simple_iv_with_niters): New function.
16595 (simple_iv): Rewrite using simple_iv_with_niters.
16596 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
16597 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
16598 function.
16599 (number_of_iterations_exit): Rewrite using above function.
16600 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
16601 Decl.
16602
16603 2016-07-15 Richard Biener <rguenther@suse.de>
16604
16605 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
16606 vec_construct cost.
16607
16608 2016-07-14 Jakub Jelinek <jakub@redhat.com>
16609
16610 PR tree-optimization/71872
16611 * tree-data-ref.c (get_references_in_stmt): Ignore references
16612 with is_gimple_constant get_base_address.
16613
16614 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
16615
16616 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
16617 (TARGET_HAVE_LDACQD): New macro.
16618 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
16619 than TARGET_HAVE_LDACQ.
16620 (arm_load_acquire_exclusivedi): Likewise.
16621 (arm_store_release_exclusivedi): Likewise.
16622
16623 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
16624
16625 PR rtl-optimization/71878
16626 * lra-constraints.c (match_reload): Pass information about other
16627 output operands. Create new unique register value if matching input
16628 operand shares same register value as output operand being considered.
16629 (curr_insn_transform): Record output operands already processed.
16630
16631 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16632
16633 PR target/65951
16634 PR tree-optimization/70923
16635 * tree-vect-patterns.c: Include mult-synthesis.h.
16636 (target_supports_mult_synth_alg): New function.
16637 (synth_lshift_by_additions): Likewise.
16638 (apply_binop_and_append_stmt): Likewise.
16639 (vect_synth_mult_by_constant): Likewise.
16640 (target_has_vecop_for_code): Likewise.
16641 (vect_recog_mult_pattern): Use above functions to synthesize vector
16642 multiplication by integer constants.
16643
16644 2016-07-14 Alan Modra <amodra@gmail.com>
16645
16646 * config/rs6000/altivec.md (altivec_mov<mode>): Disparage
16647 gpr alternatives. Correct '*' placement on Y,r alternative.
16648 Add '*' on operand 1 of r,r alternative.
16649
16650 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16651
16652 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
16653 * expmed.h: ... Here.
16654
16655 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
16656
16657 * gimple.h (stmt_can_terminate_bb_p): New function.
16658 * tree-cfg.c (need_fake_edge_p): Rename to ...
16659 (stmt_can_terminate_bb_p): ... this; return true if stmt can
16660 throw external; handle const and pure calls.
16661 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
16662
16663 2016-07-14 Richard Biener <rguenther@suse.de>
16664
16665 PR tree-optimization/71866
16666 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
16667 (do_hoist_insertion): Avoid endless recursion when we
16668 didn't insert anything because we managed to simplify
16669 things down to a constant or SSA name.
16670 (fully_constant_expression): Re-write in terms of ...
16671 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
16672 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
16673 vn_nary_build_or_lookup_1.
16674 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
16675 (vn_nary_build_or_lookup): ... this which now wraps it.
16676
16677 2016-07-14 Alan Modra <amodra@gmail.com>
16678
16679 PR target/71733
16680 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
16681 with p9_vector override before power9-dform override.
16682
16683 2016-07-13 Andi Kleen <ak@linux.intel.com>
16684
16685 * value-prof.c (gimple_value_profile_transformations): Don't run
16686 when auto_profile is on.
16687
16688 2016-07-13 Andi Kleen <ak@linux.intel.com>
16689
16690 * auto-profile.c (update_inlined_ind_target,
16691 afdo_indirect_call): Print information to dump file.
16692
16693 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
16694
16695 * genrecog.c (special_predicate_operand_p): New function.
16696 (predicate_name): Move function.
16697 (validate_pattern): Don't warn about missing mode for all
16698 define_special_predicate predicates.
16699
16700 2016-07-13 Bin Cheng <bin.cheng@arm.com>
16701
16702 * tree-vect-data-refs.c (vect_no_alias_p): New function.
16703 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
16704 resolve alias checks which are known at compilation time.
16705 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
16706 alias checks are resolved. Move dump info for too many runtime
16707 alias checks to here...
16708 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
16709
16710 2016-07-13 Richard Biener <rguenther@suse.de>
16711
16712 PR tree-optimization/24574
16713 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
16714 position and add shift, rotate, divison and modulo support
16715 for left zero.
16716 (value_replacement): Pass in argument position to absorbing_element_p.
16717
16718 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
16719
16720 PR ipa/71633
16721 * ipa-inline-transform.c (inline_call): Support
16722 instrumented thunks.
16723
16724 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
16725
16726 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
16727 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
16728 divide feature.
16729 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
16730 Baseline. Make initial alternative TARGET_32BIT only.
16731 (udivsi3): Likewise.
16732 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
16733 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
16734 target.
16735
16736 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
16737
16738 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
16739 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
16740 availability with TARGET_HAVE_MOVT.
16741 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
16742 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
16743 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
16744 UINTVAL.
16745 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
16746 extra instruction if MOVW is available. Use a cost variable
16747 incremented by COSTS_N_INSNS (1) when the condition match rather than
16748 returning an arithmetic expression based on COSTS_N_INSNS. Make
16749 constant with bottom half word zero cost 2 instruction if MOVW is
16750 available.
16751 * config/arm/arm.md (define_attr "arch"): Add v8mb.
16752 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
16753 target is ARMv8-M Baseline.
16754 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
16755 (arm_movtas_ze): Likewise.
16756 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
16757 alternative for constants satisfying j constraint.
16758 (thumb1_movsi_insn): Likewise.
16759 (movsi splitter for K alternative): Tighten condition to not trigger
16760 if movt is available and j constraint is satisfied.
16761 (Pe immediate splitter): Likewise.
16762 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
16763 constant fitting in an halfword to use MOVW.
16764 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
16765 effective target.
16766
16767 2016-07-13 Richard Biener <rguenther@suse.de>
16768
16769 PR middle-end/71104
16770 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
16771 gimplifying the LHS. Make sure to gimplify a returning twice
16772 call LHS without using SSA names.
16773
16774 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16775
16776 * tree-data-ref.c (find_data_references_in_stmt): Remove
16777 unnecessary call to vec::release.
16778 (graphite_find_data_references_in_stmt): Likewise.
16779 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
16780 * tree-vect-stmts.c (vectorizable_condition): Likewise.
16781
16782 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16783
16784 * cfgexpand.c (expand_used_vars): Make the type of a local
16785 variable auto_vec.
16786 * genmatch.c (lower_for): Likewise.
16787 * haifa-sched.c (haifa_sched_init): Likewise.
16788 (add_to_speculative_block): Likewise.
16789 (create_check_block_twin): Likewise.
16790 * predict.c (handle_missing_profiles): Likewise.
16791 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
16792 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
16793 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
16794 Likewise.
16795 (maybe_lower_iteration_bound): Likewise.
16796 * tree-ssa-sccvn.c (DFS): Likewise.
16797 * tree-stdarg.c (reachable_at_most_once): Likewise.
16798 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
16799 (vectorizable_store): Likewise.
16800
16801 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16802
16803 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
16804 (sccvn_dom_walker): make cond_stack an auto_vec.
16805
16806 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16807
16808 * ree.c (struct ext_state): Make type of members auto_vec.
16809 (find_and_remove_re): Adjust.
16810
16811 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16812
16813 * cfgexpand.c (struct stack_vars_data): Make type of fields
16814 auto_vec.
16815 (expand_used_vars): Adjust.
16816
16817 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16818
16819 * ipa.c (record_cdtor_fn): Adjust.
16820 (build_cdtor_fns): Likewise.
16821 (ipa_cdtor_merge): Make static_ctors and static_dtors local
16822 variables.
16823
16824 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16825
16826 * genextract.c (struct accum_extract): Add constructor and make
16827 members auto_vec.
16828 (gen_insn): Adjust.
16829
16830 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16831
16832 * tree.c (struct free_lang_data_d): Add constructor and change
16833 types of members to ones that automatically manage resources.
16834 (fld_worklist_push): Adjust.
16835 (find_decls_types): Likewise.
16836 (find_decls_types_in_eh_region): Likewise.
16837 (free_lang_data_in_cgraph): Stop manually creating and
16838 destroying members of free_lang_data_d.
16839
16840 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
16841
16842 PR rtl-optimization/68961
16843 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
16844 peephole variant. Use sse_reg_operand predicates.
16845
16846 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
16847
16848 * config/i386/predicates.md (x86_64_immediate_operand)
16849 <case CONST_INT>: Remove unneeded truncation to DImode.
16850 <case CONST>: Ditto.
16851 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
16852
16853 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
16854
16855 PR target/71805
16856 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
16857 The xxperm and xxpermr instructions require that the 2nd input
16858 operand overlap with the output operand, and not the 1st.
16859 (altivec_vperm_v8hiv16qi): Likewise.
16860 (altivec_vperm_<mode>_uns_internal): Likewise.
16861 (altivec_vpermr_<mode>_internal): Likewise.
16862 (vperm_v8hiv4si): Likewise.
16863 (vperm_v16qiv8hi): Likewise.
16864
16865 2016-07-12 Nathan Sidwell <nathan@acm.org>
16866
16867 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
16868 when -mno-pic-data-is-text-relative is in effect, by default.
16869 * doc/invoke.texi (mpic-data-is-text-relative): Document new
16870 behavior and clarify.
16871
16872 2016-07-12 Martin Liska <mliska@suse.cz>
16873
16874 * params.def: Add avg-loop niter.
16875 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
16876 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
16877 * doc/invoke.texi: Document the new parameter.
16878
16879 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16880
16881 PR middle-end/71700
16882 * expr.c (store_constructor): Mask sign-extended bits when widening
16883 sub-word constructor element at the start of a word.
16884
16885 2016-07-12 Martin Liska <mliska@suse.cz>
16886
16887 * Makefile.in: Append rule for params-options.h.
16888 * params-options.h: New file.
16889
16890 2016-07-12 Martin Liska <mliska@suse.cz>
16891
16892 * ira-build.c (mark_loops_for_removal): Properly iterate
16893 loops.
16894
16895 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
16896 Richard Biener <rguenther@suse.de>
16897
16898 PR tree-optimization/23286
16899 PR tree-optimization/70159
16900 * doc/invoke.texi: Document -fcode-hoisting.
16901 * common.opt (fcode-hoisting): New flag.
16902 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
16903 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
16904 (do_regular_insertion): Rename to ...
16905 (do_pre_regular_insertion): ... this and amend general comments
16906 on insertion strathegy.
16907 (do_partial_partial_insertion): Rename to ...
16908 (do_pre_partial_partial_insertion): ... this.
16909 (do_hoist_insertion): New function.
16910 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
16911 and call do_hoist_insertion properly.
16912 (insert): Adjust.
16913 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
16914 (pass_pre::execute): Register hoist_insert stats.
16915
16916 2016-07-12 Jakub Jelinek <jakub@redhat.com>
16917
16918 PR middle-end/71716
16919 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
16920 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
16921 is different from mode's bitsize. Small cleanup.
16922
16923 2016-07-12 Richard Biener <rguenther@suse.de>
16924
16925 PR rtl-optimization/68961
16926 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
16927 to simplify to a non-constant.
16928
16929 2016-07-11 Jakub Jelinek <jakub@redhat.com>
16930
16931 PR middle-end/71758
16932 * omp-low.c (expand_omp_target): Gimplify device.
16933
16934 PR tree-optimization/71823
16935 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
16936 to get vec_oprnds2 from op2.
16937
16938 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
16939
16940 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
16941 Hoist common subexpressions.
16942 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
16943
16944 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
16945
16946 PR target/71800
16947 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
16948 prevent generation of 'stxsiwx' on pre Power8 hardware.
16949
16950 2016-07-11 David Malcolm <dmalcolm@redhat.com>
16951
16952 * input.c: Include cpplib.h.
16953 (selftest::temp_source_file): New class.
16954 (selftest::temp_source_file::temp_source_file): New ctor.
16955 (selftest::temp_source_file::~temp_source_file): New dtor.
16956 (selftest::should_have_column_data_p): New function.
16957 (selftest::test_should_have_column_data_p): New function.
16958 (selftest::temp_line_table): New class.
16959 (selftest::temp_line_table::temp_line_table): New ctor.
16960 (selftest::temp_line_table::~temp_line_table): New dtor.
16961 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
16962 it to create a temp_line_table.
16963 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
16964 locations that are known to have column data.
16965 (selftest::line_table_case): New struct.
16966 (selftest::test_reading_source_line): Move tempfile handling
16967 to class temp_source_file.
16968 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
16969 (selftest::assert_token_loc_eq): New function.
16970 (ASSERT_TOKEN_LOC_EQ): New macro.
16971 (selftest::test_lexer): New function.
16972 (selftest::boundary_locations): New array.
16973 (selftest::input_c_tests): Call test_should_have_column_data_p.
16974 Loop over a test matrix of interesting values of location and
16975 default_range_bits, calling test_lexer on each case in the matrix.
16976 Move call to test_accessing_ordinary_linemaps into the matrix.
16977 * selftest.h (ASSERT_EQ): Reimplement in terms of...
16978 (ASSERT_EQ_AT): New macro.
16979
16980 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
16981
16982 PR target/71801
16983 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
16984 Don't convert TImode in debug insn.
16985
16986 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
16987
16988 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
16989 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
16990 (tree_type_common::lang_flag_7): New.
16991 (tree_type_common::spare): Reduce size.
16992 * tree.h (TYPE_ALIGN_OK): Remove.
16993 (TYPE_LANG_FLAG_7): New.
16994 (get_inner_reference): Adjust header.
16995 * print-tree.c (print_node): Adjust.
16996 * expr.c (get_inner_reference): Remove parameter keep_aligning.
16997 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
16998 calls to get_inner_reference.
16999 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
17000 handling of TYPE_ALIGN_OK.
17001 * builtins.c (get_object_alignment_2): Adjust call to
17002 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
17003 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
17004 TYPE_ALIGN_OK.
17005 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
17006 * cfgexpand.c (expand_debug_expr): Likewise.
17007 * dbxout.c (dbxout_expand_expr): Likewise.
17008 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
17009 loc_list_from_tree, fortran_common): Likewise.
17010 * fold-const.c (optimize_bit_field_compare,
17011 decode_field_reference, fold_unary_loc, fold_comparison,
17012 split_address_to_core_and_offset): Likewise.
17013 * gimple-laddress.c (execute): Likewise.
17014 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
17015 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
17016 * hsa-gen.c (gen_hsa_addr): Likewise.
17017 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
17018 * tsan.c (instrument_expr): Likewise.
17019 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
17020 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
17021 * tree-affine.c (tree_to_aff_combination,
17022 get_inner_reference_aff): Adjust calls to get_inner_reference.
17023 * tree-data-ref.c (split_constant_offset_1,
17024 dr_analyze_innermost): Likewise.
17025 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
17026 * tree-sra.c (ipa_sra_check_caller): Likewise.
17027 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
17028 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
17029 bswap_replace): Likewise.
17030 * tree-vect-data-refs.c (vect_check_gather,
17031 vect_analyze_data_refs): Likewise.
17032 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
17033 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
17034 TYPE_ALIGN_OK.
17035
17036 2016-07-11 David Malcolm <dmalcolm@redhat.com>
17037
17038 * Makefile.in (selftest-valgrind): New phony target.
17039 * function-tests.c (selftest::build_cfg): Delete pass instances
17040 created by the test.
17041 (selftest::convert_to_ssa): Likewise.
17042 (selftest::test_expansion_to_rtl): Likewise.
17043 * tree-cfg.c (selftest::test_linear_chain): Release dominator
17044 vectors.
17045 (selftest::test_diamond): Likewise.
17046
17047 2016-07-11 Richard Biener <rguenther@suse.de>
17048
17049 PR tree-optimization/71816
17050 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
17051 than replacing all of its operands.
17052
17053 2016-07-11 Alan Modra <amodra@gmail.com>
17054
17055 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
17056 (ctr<mode>): Add unspec.
17057 (ctr<mode>_internal*): Likewise.
17058
17059 2016-07-08 James Bowman <james.bowman@ftdichip.com>
17060
17061 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
17062 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
17063
17064 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
17065
17066 PR rtl-optimization/71621
17067 * lra-constraints.c (process_alt_operands): Check combination of
17068 reg class and mode.
17069
17070 2016-07-08 Jason Merrill <jason@redhat.com>
17071 Richard Biener <rguenther@suse.de>
17072
17073 P0145: Refining Expression Order for C++.
17074 * gimplify.c (initial_rhs_predicate_for): New.
17075 (gimplfy_modify_expr): Gimplify RHS before LHS.
17076
17077 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17078
17079 PR target/71297
17080 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17081 Allow standard error handling to take over when a wrong number
17082 of arguments is presented to __builtin_vec_ld () or
17083 __builtin_vec_st ().
17084
17085 2016-07-08 Jiong Wang <jiong.wang@arm.com>
17086
17087 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
17088 variants.
17089 (smin): Likewise.
17090 (fmax): New entry.
17091 (fmin): Likewise.
17092 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
17093 __builtin_aarch64_fmaxv2sf.
17094 (vmaxnmq_f32): Likewise.
17095 (vmaxnmq_f64): Likewise.
17096 (vminnm_f32): Likewise.
17097 (vminnmq_f32): Likewise.
17098 (vminnmq_f64): Likewise.
17099
17100 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
17101
17102 PR target/71806
17103 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
17104 enable -mfloat128-hardware by default.
17105 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
17106 that IEEE 128-bit hardware support needs.
17107 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
17108 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
17109 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
17110 floating point requires.
17111 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
17112 -mfloat128 and -mfloat128-hardware changes.
17113
17114 2016-07-08 Alan Hayward <alan.hayward@arm.com>
17115
17116 PR tree-optimization/71667
17117 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
17118
17119 2016-07-08 Martin Liska <mliska@suse.cz>
17120
17121 PR middle-end/71606
17122 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
17123 folding produces SAVE_EXPRs, thus return false for the type.
17124
17125 2016-07-07 Martin Liska <mliska@suse.cz>
17126
17127 * file-find.c (remove_prefix): New function.
17128 * file-find.h (remove_prefix): Declare the function.
17129 * gcc-ar.c (main): Skip a folder of the wrapper if
17130 a wrapped binary would point to the same file.
17131
17132 2016-07-07 Jan Hubicka <jh@suse.cz>
17133
17134 * tree-scalar-evolution.c (iv_can_overflow_p): export.
17135 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
17136 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
17137
17138 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
17139
17140 PR ipa/71624
17141 * ipa-inline-analysis.c (compute_inline_parameters): Set
17142 local.can_change_signature to false for intrumentation
17143 thunk callees.
17144
17145 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
17146
17147 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
17148 with TARGET_HAVE_MOVT.
17149 (TARGET_HAVE_MOVT): Define.
17150 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
17151 availability with TARGET_HAVE_MOVT.
17152 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
17153 availability.
17154 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
17155 TARGET_THUMB2.
17156 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
17157 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
17158 * config/arm/constraints.md (define_constraint "j"): Use
17159 TARGET_HAVE_MOVT to check MOVT availability.
17160
17161 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
17162
17163 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
17164
17165 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
17166
17167 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
17168 (armv8-m.main): Likewise.
17169 (armv8-m.main+dsp): Likewise.
17170 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
17171 (FL_FOR_ARCH8M_MAIN): Likewise.
17172 * config/arm/arm-tables.opt: Regenerate.
17173 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
17174 armv8-m.main+dsp to BE8_LINK_SPEC.
17175 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
17176 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
17177 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
17178 Baseline and Mainline.
17179 (arm_option_override_internal): Also disable arm_restrict_it when
17180 !arm_arch_notm. Update comment for -munaligned-access to also cover
17181 ARMv8-M Baseline.
17182 (arm_file_start): Increase buffer size for printing architecture name.
17183 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
17184 and armv8-m.main+dsp.
17185 (mno-unaligned-access): Clarify that this is disabled by default for
17186 ARMv8-M Baseline architectures as well.
17187
17188 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
17189
17190 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
17191 decide whether to prevent some libgcc routines being included for some
17192 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
17193 link between this condition and the one in
17194 libgcc/config/arm/lib1func.S.
17195
17196 2016-07-07 Richard Biener <rguenther@suse.de>
17197
17198 * tree-ssa-pre.c: Include alias.h.
17199 (compute_avail): If we have multiple VN_REFERENCEs with the
17200 same hashtable entry adjust that to make it a valid replacement
17201 for all of them with respect to alignment and aliasing
17202 when doing insertion.
17203 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
17204 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
17205
17206 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
17207
17208 PR target/70098
17209 PR target/71763
17210 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
17211 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
17212 constraint.
17213
17214 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17215
17216 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
17217 (adjust_mems): Adjust.
17218 (adjust_insn): Likewise.
17219 (prepare_call_arguments): Likewise.
17220
17221 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17222
17223 * gcse.c (struct ls_expr): Make stores field a vector.
17224 (ldst_entry): Adjust.
17225 (free_ldst_entry): Likewise.
17226 (print_ldst_list): Likewise.
17227 (compute_ld_motion_mems): Likewise.
17228 (update_ld_motion_stores): Likewise.
17229
17230 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17231
17232 * gcse.c (struct ls_expr): Remove loads field.
17233 (ldst_entry): Adjust.
17234 (free_ldst_entry): Likewise.
17235 (print_ldst_list): Likewise.
17236 (compute_ld_motion_mems): Likewise.
17237
17238 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17239
17240 * store-motion.c (struct st_expr): Make antic_stores a vector.
17241 (st_expr_entry): Adjust.
17242 (free_st_expr_entry): Likewise.
17243 (print_store_motion_mems): Likewise.
17244 (find_moveable_store): Likewise.
17245 (compute_store_table): Likewise.
17246 (remove_reachable_equiv_notes): Likewise.
17247 (replace_store_insn): Likewise.
17248 (build_store_vectors): Likewise.
17249
17250 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17251
17252 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
17253 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
17254
17255 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
17256
17257 PR tree-optimization/71518
17258 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
17259 misalign also for outer loops with negative step.
17260
17261 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
17262
17263 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
17264 (cortex_a53_shift): Add mov_shift.
17265 (cortex_a53_shift_reg): Add new reservation for register shifts.
17266 (cortex_a53_alu): Remove bfm.
17267 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
17268 (cortex_a53_alu_extr): Add new reservation for EXTR.
17269 (bypasses): Improve bypass modelling.
17270
17271 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
17272
17273 PR target/50739
17274 * config/avr/avr.c (avr_asm_select_section): Strip off
17275 SECTION_DECLARED from flags when calling get_section.
17276
17277 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
17278
17279 * tree-vectorizer.h (vect_memory_access_type): Add
17280 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
17281 * tree-vect-stmts.c (compare_step_with_zero): New function.
17282 (perm_mask_for_reverse): Move further up file.
17283 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
17284 step is negative.
17285 (get_negative_load_store_type): New function.
17286 (get_load_store_type): Call it. Add an ncopies argument.
17287 (vectorizable_mask_load_store): Update call accordingly and
17288 remove tests for negative steps.
17289 (vectorizable_store, vectorizable_load): Likewise. Handle new
17290 memory_access_types.
17291
17292 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
17293
17294 * tree-vectorizer.h (vect_memory_access_type): New enum.
17295 (_stmt_vec_info): Add a memory_access_type field.
17296 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
17297 (vect_model_store_cost): Take an access type instead of a boolean.
17298 (vect_model_load_cost): Likewise.
17299 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
17300 vect_model_store_cost and vect_model_load_cost.
17301 * tree-vect-stmts.c (vec_load_store_type): New enum.
17302 (vect_model_store_cost): Take an access type instead of a
17303 store_lanes_p boolean. Simplify tests.
17304 (vect_model_load_cost): Likewise, but for load_lanes_p.
17305 (get_group_load_store_type, get_load_store_type): New functions.
17306 (vectorizable_store): Use get_load_store_type. Record the access
17307 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
17308 (vectorizable_load): Likewise.
17309 (vectorizable_mask_load_store): Likewise. Replace is_store
17310 variable with vls_type.
17311
17312 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
17313
17314 * tree-vectorizer.h (vect_grouped_load_supported): Add a
17315 single_element_p parameter.
17316 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
17317 Check the PR65518 case here rather than in vectorizable_load.
17318 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
17319 * tree-vect-stmts.c (vectorizable_load): Likewise.
17320
17321 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
17322
17323 * tree-vectorizer.h (gather_scatter_info): New structure.
17324 (vect_check_gather_scatter): Return a bool rather than a decl.
17325 Replace return-by-pointer arguments with a single
17326 gather_scatter_info *.
17327 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
17328 (vect_analyze_data_refs): Update call accordingly.
17329 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
17330 (vectorizable_mask_load_store): Likewise. Also record the
17331 offset dt and vectype in the gather_scatter_info.
17332 (vectorizable_store): Likewise.
17333 (vectorizable_load): Likewise.
17334
17335 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
17336
17337 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
17338 strided groups, use the cost of N scalar accesses instead
17339 of ncopies vector accesses.
17340 (vect_model_load_cost): Likewise.
17341
17342 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
17343
17344 * tree-vect-stmts.c (vect_cost_group_size): Delete.
17345 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
17346 variable to indicate when once-per-group costs are being used.
17347 (vect_model_load_cost): Likewise. Fix comment and misindented code.
17348
17349 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
17350
17351 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
17352 peeling-for-gaps condition.
17353
17354 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17355
17356 * config/s390/s390.c (s390_expand_vec_init): Force initializer
17357 element to register if it doesn't match general_operand.
17358
17359 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
17360 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17361
17362 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
17363 prototype.
17364 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
17365 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
17366 (SIGNBIT): New mode iterator.
17367 (Fsignbit): New mode attribute.
17368 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
17369 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
17370 when direct moves are available.
17371 (signbit<mode>2_dm): New define_insn_and_split).
17372 (signbit<mode>2_dm2): New define_insn.
17373
17374 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17375
17376 PR rtl-optimization/71594
17377 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
17378 into subregs of appropriate mode before trying to emit a conditional
17379 move.
17380
17381 2016-07-05 Jan Hubicka <jh@suse.cz>
17382
17383 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
17384 (simple_iv): Use it.
17385
17386 2016-07-05 Jan Hubicka <jh@suse.cz>
17387
17388 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
17389
17390 2016-07-05 Jiong Wang <jiong.wang@arm.com>
17391
17392 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
17393 "offmemok".
17394
17395 2016-07-05 Jan Hubicka <jh@suse.cz>
17396
17397 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
17398 IV can overflow.
17399
17400 2016-07-05 Richard Biener <rguenther@suse.de>
17401
17402 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
17403 Handle empty else block.
17404 (is_feasible_trace): Likewise.
17405 (split_paths): Likewise.
17406
17407 2016-07-05 Richard Biener <rguenther@suse.de>
17408
17409 * tree-loop-distribution.c (distribute_loop): Fix issue with
17410 the cost model loop.
17411
17412 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
17413
17414 * config/arm/neon-testgen.ml: Delete.
17415 * config/arm/neon.ml: Delete.
17416
17417 2016-07-04 Jakub Jelinek <jakub@redhat.com>
17418
17419 PR c++/71739
17420 * tree.c (attribute_value_equal): Use get_attribute_name instead of
17421 directly using TREE_PURPOSE.
17422
17423 2016-07-04 Jiong Wang <jiong.wang@arm.com>
17424
17425 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
17426 * config/aarch64/aarch64_neon.h: Likewise.
17427 * config/aarch64/arm_neon.h: Likewise.
17428 * config/aarch64/atomics.md: Likewise.
17429 * config/aarch64/aarch64-simd-builtins.def: Likewise.
17430 * doc/invoke.texi: Likewise.
17431
17432 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
17433
17434 * config/s390/s390.md: Add "z13" cpu_facility.
17435 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
17436 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
17437 condition" type instructions.
17438
17439 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
17440 Jeff Law <law@redhat.com>
17441
17442 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
17443 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
17444
17445 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
17446
17447 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
17448 permutation for TARGET_AVX512F.
17449 (ix86_expand_vec_one_operand_perm_avx512): New function.
17450 (expand_vec_perm_1): Invoke introduced function.
17451 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
17452 it may be not valid after vectorization.
17453
17454 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17455
17456 PR target/63874
17457 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
17458 typo in comment. Only force to memory if it is a weak
17459 external reference.
17460
17461 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
17462 Jiong Wang <jiong.wang@arm.com>
17463
17464 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
17465 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
17466 (AARCH64_FL_F16): New.
17467 (AARCH64_FL_FOR_ARCH8_2): New.
17468 (AARCH64_ISA_8_2): New.
17469 (AARCH64_ISA_F16): New.
17470 (TARGET_FP_F16INST): New.
17471 (TARGET_SIMD_F16INST): New.
17472 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
17473 ("fp"): Disabling "fp" also disables "fp16".
17474 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
17475 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
17476 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
17477 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
17478
17479 2016-07-04 Jan Beulich <jbeulich@suse.com>
17480
17481 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
17482
17483 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
17484
17485 PR target/71720
17486 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
17487 the insns, use an insn form that does not adjust the offset on
17488 little endian systems.
17489
17490 2016-07-01 Jan Beulich <jbeulich@suse.com>
17491
17492 * varasm.c (get_variable_section): Validate initializer in
17493 named .bss-like sections.
17494
17495 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
17496
17497 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
17498 Exchange the order of the second and third operands in the vpermr
17499 instruction tmeplate.
17500
17501 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
17502
17503 PR target/71698
17504 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
17505 Disallow TDmode values.
17506
17507 2016-07-01 Alan Modra <amodra@gmail.com>
17508
17509 PR rtl-optimization/71709
17510 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
17511 being set, not referenced.
17512
17513 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
17514
17515 PR tree-optimization/70729
17516 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
17517 of loop since it can be not valid after transformation.
17518
17519 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17520
17521 * config/arm/arm.c (thumb_reload_in_hi): Delete.
17522 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
17523
17524 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
17525
17526 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
17527 for NULL decl.
17528
17529 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
17530
17531 PR target/71677
17532 * config/rs6000/constraints.md (wY constraint): New constraint to
17533 match the requirements for the LXSD and STXSD instructions.
17534 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
17535 predicate to match the requirements for the LXSD and STXSD
17536 instructions.
17537 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
17538 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
17539 to make sure that the bottom 2 bits of offset are 0, the address
17540 form is offsettable, and no updating is done in the address mode.
17541 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
17542 (movdi_internal32): Likewise
17543 (movdi_internal64): Likewise.
17544
17545 2016-06-30 Jakub Jelinek <jakub@redhat.com>
17546
17547 PR tree-optimization/71707
17548 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
17549 strinfo even for ADDR_EXPR ptr.
17550
17551 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
17552
17553 * config/rs6000/altivec.md (darn_32): Change the condition to
17554 TARGET_P9_MISC instead of TARGET_MODULO.
17555 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
17556 condition expression.
17557 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
17558 condition expression.
17559 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
17560 (DFP_TEST): New code iterator.
17561 (dfptstsfi_<code>_mode>): New define_expand.
17562 (*dfp_sgnfcnc_<mode>): New define_insn.
17563 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
17564 definition next to BU_P9_MISC_1 definition and change the MASK
17565 value to RS6000_BTM_P9_MISC.
17566 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
17567 (BU_P9_64BIT_MISC_0): Likewise.
17568 (BU_P9_DFP_MISC_0): New macro definition.
17569 (BU_P9_DFP_MISC_1): New macro definition.
17570 (BU_P9_DFP_MISC_2): New macro definition.
17571 (BU_P9_DFP_OVERLOAD_1): New macro definition.
17572 (BU_P9_DFP_OVERLOAD_2): New macro definition.
17573 (BU_P9_DFP_OVERLOAD_3): New macro definition.
17574 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
17575 (TSTSFI_LT_TD): Likewise.
17576 (TSTSFI_EQ_DD): Likewise.
17577 (TSTSFI_EQ_TD): Likewise.
17578 (TSTSFI_GT_DD): Likewise.
17579 (TSTSFI_GT_TD): Likewise.
17580 (TSTSFI_OV_DD): Likewise.
17581 (TSTSFI_OV_TD): Likewise.
17582 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
17583 (TSTSFI_LT_DD): Likewise.
17584 (TSTSFI_LT_TD): Likewise.
17585 (TSTSFI_EQ): Likewise.
17586 (TSTSFI_EQ_DD): Likewise.
17587 (TSTSFI_EQ_TD): Likewise.
17588 (TSTSFI_GT): Likewise.
17589 (TSTSFI_GT_DD): Likewise.
17590 (TSTSFI_GT_TD): Likewise.
17591 (TSTSFI_OV): Likewise.
17592 (TSTSFI_OV_DD): Likewise.
17593 (TSTSFI_OV_TD): Likewise.
17594 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17595 overloaded test significance functions.
17596 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
17597 OPTION_MASK_P9_MISC into the representation of this mask.
17598 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
17599 of this mask.
17600 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
17601 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
17602 non-zero.
17603 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
17604 argument is a 6-bit unsigned literal value if the icode argument
17605 represents a DFP test significance built-in call.
17606 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
17607 flag used independently and in combination with the
17608 RS6000_BTM_64BIT flag.
17609 (rs6000_opt_masks): Add entry for power9-misc command-line option.
17610 (rs6000_builtin_mask_names): Add entry for power9-misc
17611 command-line option.
17612 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
17613 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
17614 RS6000_BTM_P9_MISC macros.
17615 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
17616 option and change the description of the -mpower9-vector option to
17617 enable only vector instructions, removing its erroneously claimed
17618 support for scalar instructions.
17619 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
17620 the ISA 3.0 digital floating point test significance built-in
17621 functions.
17622
17623 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
17624
17625 * config/aarch64/aarch64.c (cortexa35_tunings):
17626 Enable AES fusion. Use cortexa57_branch_cost.
17627 (cortexa53_tunings): Use cortexa57_branch_cost.
17628 (cortexa72_tunings): Use cortexa57_branch_cost.
17629 Use AUTOPREFETCHER_WEAK.
17630 (cortexa73_tunings): Use cortexa57_branch_cost.
17631
17632 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17633 James Greenhalgh <james.greenhalgh@arm.com>
17634
17635 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
17636 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
17637 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
17638 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
17639 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
17640 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
17641 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
17642 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
17643 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
17644 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
17645 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
17646 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
17647 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
17648 New intrinsics.
17649
17650 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
17651 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17652
17653 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
17654 New define_insn.
17655 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
17656
17657 2016-06-30 David Malcolm <dmalcolm@redhat.com>
17658
17659 PR driver/71651
17660 * gcc.c (driver::build_option_suggestions): Pass "option" to
17661 add_misspelling_candidates.
17662 * opts-common.c (add_misspelling_candidates): Add "option" param;
17663 use it to avoid adding negated forms for options marked with
17664 RejectNegative.
17665 * opts.h (add_misspelling_candidates): Add "option" param.
17666
17667 2016-06-30 Jakub Jelinek <jakub@redhat.com>
17668
17669 PR middle-end/71693
17670 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
17671 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
17672 first when permuting bitwise operation with rotate. Cast
17673 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
17674
17675 2016-06-29 David Malcolm <dmalcolm@redhat.com>
17676
17677 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
17678 for misspelled param names.
17679 * params.c: Include spellcheck.h.
17680 (find_param_fuzzy): New function.
17681 * params.h (find_param_fuzzy): New prototype.
17682 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
17683 * spellcheck.h (struct edit_distance_traits<const char *>):
17684 ...here.
17685
17686 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
17687
17688 * config/rs6000/predicates.md (const_0_to_7_operand): New
17689 predicate, recognize 0..7.
17690 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
17691 support for doing extracts from V16QImode, V8HImode, V4SImode
17692 under ISA 3.0.
17693 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
17694 vector extract support.
17695 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
17696 for ISA 3.0 vector extract.
17697 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
17698 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
17699 extracts of a constant element number from small integer vectors
17700 on 64-bit ISA 3.0 systems.
17701 (vsx_extract_<mode>_di): Likewise.
17702 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
17703 say when we can do ISA 3.0 vector extracts.
17704 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
17705 registers, using the stxsiwx instruction.
17706
17707 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
17708
17709 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
17710 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
17711 qdf24xx_regmove_cost, qdf24xx_tunings): New.
17712 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
17713 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
17714 * config/arm/arm.c (arm_qdf24xx_tune): New.
17715
17716 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
17717
17718 * config/aarch64/aarch64.c (cortexa53_tunings):
17719 Increase loop alignment to 8. Set function alignment to 16.
17720 (cortexa35_tunings): Likewise.
17721 (cortexa57_tunings): Increase loop alignment to 8.
17722 (cortexa72_tunings): Likewise.
17723 (cortexa73_tunings): Likewise.
17724
17725 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
17726
17727 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
17728 for arm_fp16_ok and arm_fp16_hw.
17729 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
17730 arm_fp16_alternative.
17731
17732 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
17733
17734 PR tree-optimization/71655
17735 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
17736 types when swapping operands.
17737
17738 2016-06-29 Martin Liska <mliska@suse.cz>
17739
17740 PR middle-end/71585
17741 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
17742 * ipa-inline-transform.c (inline_call): Remove unnecessary call
17743 of build_optimization_node.
17744
17745 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
17746
17747 PR tree-optimization/70729
17748 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
17749 independent in loops having positive safelen value.
17750 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
17751 it may be not valid after vectorization.
17752
17753 2016-06-29 Jakub Jelinek <jakub@redhat.com>
17754
17755 PR tree-optimization/71625
17756 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
17757 is sorted by ascending list->offset. If PTR is non-NULL and there is
17758 previous strinfo, call get_stridx_plus_constant.
17759 (get_stridx): Pass exp as second argument to get_addr_stridx.
17760 (addr_stridxptr): Add missing list = list->next, so that there can be
17761 more than one entries in the list. Bump limit from 16 to 32. Ensure
17762 the list is sorted by ascending list->offset.
17763 (get_stridx_plus_constant): Adjust so that it can be also called with
17764 ADDR_EXPR instead of SSA_NAME as PTR.
17765 (handle_char_store): Pass NULL_TREE as second argument to
17766 get_addr_stridx.
17767
17768 2016-06-29 Richard Biener <rguenther@suse.de>
17769
17770 PR rtl-optimization/68961
17771 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
17772
17773 2016-06-29 Richard Biener <rguenther@suse.de>
17774
17775 PR middle-end/71002
17776 * alias.c (component_uses_parent_alias_set_from): Handle
17777 type punning through union accesses by using the union alias set.
17778 * gimple.c (gimple_get_alias_set): Remove union type punning case.
17779
17780 2016-07-29 Richard Biener <rguenther@suse.de>
17781
17782 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
17783 precision not matching mode precision.
17784
17785 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
17786
17787 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
17788 pa_output_arg_descriptor.
17789 (call_val_symref_64bit_post_reload): Likewise.
17790 (call_val_powf_64bit_post_reload): Likewise.
17791 (sibcall_internal_symref_64bit): Likewise.
17792 (sibcall_value_internal_symref_64bit): Likewise.
17793
17794 2016-06-28 Jakub Jelinek <jakub@redhat.com>
17795
17796 PR middle-end/71626
17797 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
17798 a constant, force its SUBREG_REG into memory or register instead
17799 of whole op1.
17800
17801 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
17802
17803 PR target/58655
17804 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
17805 * doc/invoke.texi (AVR Options): Document it.
17806
17807 2016-06-28 Walter Lee <walt@tilera.com>
17808
17809 * config/tilegx/linux.h: Do not include arch/icache.h
17810 (CLEAR_INSN_CACHE): Provide inlined definition directly.
17811 * config/tilepro/linux.h: Do not include arch/icache.h
17812 (CLEAR_INSN_CACHE): Provide inlined definition directly.
17813
17814 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
17815
17816 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
17817 for big-endian BIT_FIELD_REF.
17818
17819 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
17820
17821 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
17822 ('size' attribute): Add '128'.
17823 Include power9.md.
17824 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
17825 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
17826 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
17827 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
17828 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
17829 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
17830 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
17831 *trunc<mode>df2_odd): Set size attribute to '128'.
17832 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
17833 * config/rs6000/power6.md (power6-fp): Include dfp type.
17834 * config/rs6000/power7.md (power7-fp): Likewise.
17835 * config/rs6000/power8.md (power8-fp): Likewise.
17836 * config/rs6000/power9.md: New file.
17837 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
17838 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
17839 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
17840 htmsimple.
17841 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
17842 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
17843 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
17844 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
17845 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
17846 dfp_dscri_<mode>): Change type attribute to dfp.
17847 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
17848 attribute to vecsimple.
17849 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
17850 and prefetch streams.
17851 (rs6000_option_override_internal): Remove temporary code setting
17852 tuning to power8. Don't set rs6000_sched_groups for power9.
17853 (last_scheduled_insn): Change to rtx_insn *.
17854 (divide_cnt, vec_load_pendulum): New variables.
17855 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
17856 (rs6000_issue_rate): Set issue rate for Power9.
17857 (is_power9_pairable_vec_type): New.
17858 (power9_sched_reorder2): New.
17859 (rs6000_sched_reorder2): Call new function for Power9 specific
17860 reordering.
17861 (insn_must_be_first_in_group): Remove Power9.
17862 (insn_must_be_last_in_group): Likewise.
17863 (force_new_group): Likewise.
17864 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
17865 Initialize divide_cnt/vec_load_pendulum.
17866 (_rs6000_sched_context, rs6000_init_sched_context,
17867 rs6000_set_sched_context): Handle context save/restore of new
17868 variables.
17869
17870 2016-06-28 Richard Biener <rguenther@suse.de>
17871
17872 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
17873 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
17874 COMPONENT_REF operand.
17875 (nonoverlapping_component_refs_p): Likewise.
17876 * stor-layout.c (start_bitfield_representative): Mark
17877 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
17878
17879 2016-06-28 Jakub Jelinek <jakub@redhat.com>
17880
17881 * Makefile.in: Don't cat ../stage_current if it does not exist.
17882
17883 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
17884 last argument is a bit-field.
17885
17886 PR rtl-optimization/71673
17887 * internal-fn.c (expand_arith_overflow_result_store): Use
17888 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
17889 expand_simple_binop.
17890
17891 PR middle-end/66867
17892 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
17893 expand_ifn_atomic_compare_exchange): New functions.
17894 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
17895 * tree.h (build_call_expr_internal_loc): Rename to ...
17896 (build_call_expr_internal_loc_array): ... this. Fix up type of
17897 last argument.
17898 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
17899 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
17900 ATOMIC_COMPARE_EXCHANGE result.
17901 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
17902 * gimple-fold.h (optimize_atomic_compare_exchange_p,
17903 fold_builtin_atomic_compare_exchange): New prototypes.
17904 * gimple-fold.c (optimize_atomic_compare_exchange_p,
17905 fold_builtin_atomic_compare_exchange): New functions..
17906 * tree-ssa.c (execute_update_addresses_taken): If
17907 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
17908 of call when finding addressable vars, and if such var becomes
17909 non-addressable, call fold_builtin_atomic_compare_exchange.
17910
17911 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
17912
17913 PR target/71670
17914 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
17915 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
17916
17917 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
17918
17919 * config/rs6000/rs6000.md ('type' attribute): Add
17920 veclogical,veccmpfx,vecexts,vecmove insn types.
17921 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
17922 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
17923 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
17924 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
17925 *nabs<mode>2_hw): Change type to vecmove.
17926 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
17927 *boolcc<mode>3_internal, *eqv<mode>3_internal,
17928 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
17929 *ieee_128bit_vsx_abs<mode>2_internal,
17930 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
17931 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
17932 *ieee128_mtvsrd_32bit): Change type to veclogical.
17933 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
17934 *movdi_internal32, *movdi_internal64): Update insn types.
17935 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
17936 vsx_extract_<mode>): Change type to veclogical.
17937 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
17938 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
17939 *vsx_sign_extend_si_v2di): Change type to vecexts.
17940 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
17941 type to veclogical.
17942 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
17943 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
17944 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
17945 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
17946 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
17947 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
17948 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
17949 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
17950 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
17951 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
17952 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
17953 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
17954 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
17955 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
17956 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
17957 (ppc7450-vecsimple): Add veclogical, vecmove.
17958 (ppc7450-veccmp): Add veccmpfx.
17959 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
17960 vecmove.
17961 (ppc8540_vector_compare): Add veccmpfx.
17962 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
17963 * config/rs6000/cell.md (cell-fp): Add fpsimple.
17964 (cell-vecsimple): Add veclogical, vecmove.
17965 (cell-veccmp): Add veccmpfx.
17966 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
17967 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
17968 veccmpfx.
17969 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
17970 * config/rs6000/power4.md (power4-fp): Add fpsimple.
17971 (power4-vecsimple): Add veclogical, vecmove.
17972 (power4-veccmp): Add veccmpfx.
17973 * config/rs6000/power5.md (power5-fp): Add fpsimple.
17974 * config/rs6000/power6.md (power6-fp): Add fpsimple.
17975 (power6-vecsimple): Add veclogical, vecmove.
17976 (power6-veccmp): Add veccmpfx.
17977 * config/rs6000/power7.md (power7-fp): Add fpsimple.
17978 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
17979 * config/rs6000/power8.md (power8-fp): Add fpsimple.
17980 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
17981 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
17982 * config/rs6000/titan.md (titan_fp): Add fpsimple.
17983 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
17984 fpsimple.
17985 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
17986
17987 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
17988
17989 PR target/71656
17990 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
17991 OPTION_MASK_P9_DFORM_VECTOR.
17992 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
17993 disable -mpower9-dform-vector when using reload.
17994 (quad_address_p): Remove 'gpr_p' argument and all associated code.
17995 New 'strict' argument. Update all callers. Add strict addressing
17996 support.
17997 (rs6000_legitimate_offset_address_p): Remove call to
17998 virtual_stack_registers_memory_p.
17999 (rs6000_legitimize_reload_address): Add quad address support.
18000 (rs6000_legitimate_address_p): Move call to quad_address_p above
18001 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
18002 to account for new strict usage.
18003 (rs6000_output_move_128bit): Adjust quad_address_p args to account
18004 for new strict usage.
18005 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
18006
18007 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
18008
18009 PR target/70902
18010 PR target/71453
18011 PR target/71555
18012 PR target/71596
18013 PR target/71657
18014 * config/i386/i386.c (ix86_spill_class): Disable condition to
18015 always return NO_REGS.
18016
18017 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
18018
18019 * predict.c: Include gimple-pretty-print.h
18020 (predicted_by_loop_heuristics_p): Check also
18021 PRED_LOOP_EXIT_WITH_RECURSION
18022 (predict_loops): Find self recursive calls and use special purpose
18023 predictors for them; dump log about decisions.
18024 (pass_profile::execute): Dump info about #of iterations.
18025 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
18026 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
18027
18028 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
18029
18030 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
18031 output_asm_insn calls and shorten long lines. Output .CALL
18032 argument descriptor using pa_output_arg_descriptor. Add various
18033 inline $$dyncall and other optimizations.
18034 (pa_attr_length_indirect_call): Adjust ordering and lengths.
18035
18036 2016-06-25 Jakub Jelinek <jakub@redhat.com>
18037
18038 PR tree-optimization/71643
18039 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
18040 EH preds.
18041
18042 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
18043 leak a bitmap if dep_bb is NULL.
18044
18045 PR tree-optimization/71631
18046 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
18047 to rewrite_expr_tree even if negate_result, move new_lhs var
18048 declaration and initialization earlier, for powi_result set afterwards
18049 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
18050 if new_lhs != lhs, and don't shadow gsi var.
18051
18052 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
18053
18054 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
18055 Add in_loop parameter.
18056 (predict_loops): Add loop guard heuristics.
18057 * predict.def (PRED_LOOP_GUARD): New heuristics.
18058
18059 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
18060
18061 * predict.c: Include ipa-utils.h
18062 (tree_bb_level_prediction): Predict recursive calls.
18063 (tree_estimate_probability_bb): Skip inexpensive calls for call
18064 predictor.
18065 * predict.def (PRED_RECURSIVE_CALL): New.
18066
18067 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18068
18069 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
18070 (BU_FLOAT128_1): Likewise.
18071 (FABSQ): Likewise.
18072 (COPYSIGNQ): Likewise.
18073 (RS6000_BUILTIN_NANQ): Likewise.
18074 (RS6000_BUILTIN_NANSQ): Likewise.
18075 (RS6000_BUILTIN_INFQ): Likewise.
18076 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
18077 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
18078 (TARGET_FOLD_BUILTIN): New #define.
18079 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
18080 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
18081 (rs6000_fold_builtin): New target hook implementation, handling
18082 folding of 128-bit NaNs and infinities.
18083 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
18084 entries are filled in to avoid problems during bootstrap
18085 self-test; define builtins for 128-bit NaNs and infinities.
18086 (rs6000_opt_mask): Add entry for float128.
18087 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
18088 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
18089 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
18090 (const_str_type_node): New #define.
18091 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
18092 to a define_expand that dispatches to either copysign<mode>3_soft
18093 or copysign<mode>3_hard.
18094 (copysign<mode>3_hard): Rename from copysign<mode>3.
18095 (copysign<mode>3_soft): New define_insn.
18096 * doc/extend.texi: Document new builtins.
18097
18098 2016-06-24 Jakub Jelinek <jakub@redhat.com>
18099
18100 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
18101 PRIu64 instead of lu.
18102
18103 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
18104
18105 PR debug/71642
18106 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
18107 copy the type name.
18108
18109 2016-06-24 Jakub Jelinek <jakub@redhat.com>
18110
18111 PR tree-optimization/71647
18112 * omp-low.c (lower_rec_input_clauses): Convert
18113 omp_clause_aligned_alignment (c) to size_type_node for the
18114 last argument of __builtin_assume_aligned.
18115
18116 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
18117
18118 * configure.ac (calling ___tls_get_addr via GOT): New
18119 assembler/linker check.
18120 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
18121 assembler and linker supports calling ___tls_get_addr via GOT.
18122 Otherise, defined to 0.
18123 * config.in: Regenerated.
18124 * configure: Likewise.
18125 * config/i386/constraints.md (Yb): New constraint.
18126 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
18127 (REG_CLASS_NAMES): Likewise.
18128 (REG_CLASS_CONTENTS): Likewise.
18129 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
18130 the b constraint with the Yb constraint. Call ___tls_get_addr
18131 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
18132 is 1.
18133 (*tls_local_dynamic_base_32_gnu): Likewise.
18134 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
18135 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
18136 (*tls_local_dynamic_base_64_<mode>): Likewise.
18137
18138 2016-06-24 Martin Liska <mliska@suse.cz>
18139
18140 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
18141 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
18142 few functions.
18143 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
18144 argument to true if the expected number of iterations is
18145 loop-based.
18146
18147 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
18148
18149 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
18150 assemble for 32bit target.
18151 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
18152 and $ld_ix86_gld_32_opt to link for 32bit target.
18153 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
18154 * configure: Regenerate.
18155
18156 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18157
18158 * config/arm/arm.c (int_log2): Delete definition and prototype.
18159 (shift_op): Use exact_log2 instead of int_log2.
18160 (vfp3_const_double_for_fract_bits): Likewise.
18161
18162 2016-06-24 Jakub Jelinek <jakub@redhat.com>
18163
18164 * internal-fn.c (expand_arith_set_overflow): New function.
18165 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
18166 Use it.
18167 (expand_arith_overflow_result_store): Likewise. Handle precision
18168 smaller than mode precision.
18169 * tree-vrp.c (extract_range_basic): For imag part, handle
18170 properly signed 1-bit precision result.
18171 * doc/extend.texi (__builtin_add_overflow): Document that last
18172 argument can't be pointer to enumerated or boolean type.
18173 (__builtin_add_overflow_p): Document that last argument can't
18174 have enumerated or boolean type.
18175
18176 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
18177 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18178
18179 * config/rs6000/predicates.md (splat_input_operand): Rework.
18180 Don't allow constants, since the insns that use this predicate
18181 don't support constants. Constants are handled by other insns
18182 that are created via combine. During and after register
18183 allocation, only allow indexed or indirect addresses, and not
18184 general addresses. Only allow modes supported by the hardware.
18185 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
18186 comment. Move check for using VSPLTIS<x> to a common location,
18187 instead of doing it in two different places.
18188
18189 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
18190
18191 * config/i386/driver-i386.c (host_detect_local_cpu): Set
18192 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
18193 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
18194 signature_CENTAUR_ebx.
18195
18196 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
18197
18198 PR target/66232
18199 PR target/67400
18200 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
18201 (as_ix86_gas_32_opt): This.
18202 (ld_ix86_tls_ldm_opt): Renamed to ...
18203 (ld_ix86_gld_32_opt): This.
18204 (R_386_TLS_LDM reloc): Updated.
18205 (R_386_GOT32X reloc): New assembler/linker check.
18206 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
18207 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
18208 defined to 0.
18209 * config.in: Regenerated.
18210 * configure: Likewise.
18211 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
18212 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
18213 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
18214 if ix86_force_load_from_GOT_p returns true.
18215 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
18216 ix86_force_load_from_GOT_p returns true.
18217 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
18218 the external function address via the GOT slot.
18219 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
18220 HAVE_AS_IX86_GOT32X before returning false.
18221 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
18222 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
18223
18224 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
18225
18226 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
18227
18228 2016-06-23 Andi Kleen <ak@linux.intel.com>
18229
18230 * Makefile.in: Regenerate.
18231 * doc/install.texi: Document autoprofiledbootstrap.
18232
18233 2016-06-23 Andi Kleen <ak@linux.intel.com>
18234
18235 * config/i386/gcc-auto-profile: New file.
18236
18237 2016-06-23 Martin Liska <mliska@suse.cz>
18238
18239 PR middle-end/71619
18240 * predict.c (predict_loops): Revert the hunk that was removed
18241 in r237103.
18242
18243 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
18244
18245 * config.gcc: Add support for arm*-*-phoenix* targets.
18246 * config/arm/t-phoenix: New.
18247 * config/phoenix.h: New.
18248
18249 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
18250 H.J. Lu <hongjiu.lu@intel.com>
18251
18252 PR target/67400
18253 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
18254 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
18255 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
18256 ix86_force_load_from_GOT_p returns true.
18257 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
18258 ix86_force_load_from_GOT_p returns true.
18259 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
18260 ix86_force_load_from_GOT_p returns true.
18261 (ix86_expand_move): Load the external function address via the
18262 GOT slot if ix86_force_load_from_GOT_p returns true.
18263 * config/i386/predicates.md (x86_64_immediate_operand): Return
18264 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
18265 (x86_64_zext_immediate_operand): Ditto.
18266
18267 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
18268
18269 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
18270
18271 2016-06-22 David Malcolm <dmalcolm@redhat.com>
18272
18273 PR c/70339
18274 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
18275 * diagnostic.c (pedwarn_at_rich_loc): New function.
18276 * spellcheck.h (best_match::best_match): Add a
18277 "best_distance_so_far" optional parameter.
18278 (best_match::set_best_so_far): New method.
18279 (best_match::get_best_distance): New accessor.
18280 (best_match::get_best_candidate_length): New accessor.
18281
18282 2016-06-22 Nick Clifton <nickc@redhat.com>
18283
18284 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
18285 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
18286 modes are accepted as well.
18287 (ucompare_loc_descriptor): Likewise.
18288 (minmax_loc_descriptor): Likewise.
18289 (clz_loc_descriptor): Likewise.
18290 (popcount_loc_descriptor): Likewise.
18291 (bswap_loc_descriptor): Likewise.
18292 (rotate_loc_descriptor): Likewise.
18293 (mem_loc_descriptor): Likewise.
18294 (loc_descriptor): Likewise.
18295
18296 2016-06-22 David Malcolm <dmalcolm@redhat.com>
18297
18298 * common.opt (fdiagnostics-parseable-fixits): New option.
18299 * diagnostic.c: Include "selftest.h".
18300 (print_escaped_string): New function.
18301 (print_parseable_fixits): New function.
18302 (diagnostic_report_diagnostic): Call print_parseable_fixits.
18303 (selftest::assert_print_escaped_string): New function.
18304 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
18305 (selftest::test_print_escaped_string): New function.
18306 (selftest::test_print_parseable_fixits_none): New function.
18307 (selftest::test_print_parseable_fixits_insert): New function.
18308 (selftest::test_print_parseable_fixits_remove): New function.
18309 (selftest::test_print_parseable_fixits_replace): New function.
18310 (selftest::diagnostic_c_tests): New function.
18311 * diagnostic.h (struct diagnostic_context): Add field
18312 "parseable_fixits_p".
18313 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
18314 -fdiagnostics-parseable-fixits.
18315 (-fdiagnostics-parseable-fixits): New option.
18316 * opts.c (common_handle_option): Handle
18317 -fdiagnostics-parseable-fixits.
18318 * selftest-run-tests.c (selftest::run_tests): Call
18319 selftest::diagnostic_c_tests.
18320 * selftest.h (selftest::diagnostic_c_tests): New prototype.
18321
18322 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
18323
18324 PR tree-optimization/71488
18325 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
18326 comparison of boolean vectors.
18327 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
18328 of boolean vectors using bitwise operations.
18329
18330 2016-06-22 Andreas Schwab <schwab@suse.de>
18331
18332 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
18333 Remove declaration.
18334
18335 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
18336
18337 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
18338
18339 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
18340
18341 * config/i386/i386.c (print_reg): Emit an error message on attempt to
18342 print FLAGS_REG.
18343
18344 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18345
18346 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
18347 * config/arm/arm-cores.def (cortex-a73): New entry.
18348 (cortex-a73.cortex-a35): Likewise.
18349 (cortex-a73.cortex-a53): Likewise.
18350 * config/arm/arm-tables.opt: Regenerate.
18351 * config/arm/arm-tune.md: Likewise.
18352 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
18353 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
18354 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
18355 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
18356 * doc/invoke.texi (ARM Options): Document cortex-a73,
18357 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
18358
18359 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18360
18361 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
18362 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
18363 (cortex-a73.cortex-a35): Likewise.
18364 (cortex-a73.cortex-a53): Likewise.
18365 * config/aarch64/aarch64-tune.md: Regenerate.
18366 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
18367 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
18368 -mcpu and -mtune.
18369
18370 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18371
18372 * configure.ac (gcc_cv_as_compress_debug): Remove
18373 --compress-debug-sections as extra as switch.
18374 Handle gas --compress-debug-sections=type.
18375 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
18376 Handle gld --compress-debug-sections=type.
18377 * configure: Regenerate.
18378
18379 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
18380
18381 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
18382
18383 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
18384
18385 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
18386 (do_rewrite): likewise.
18387
18388 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18389
18390 * common/config/mep/mep-common.c: Remove.
18391 * config.gcc: Remove mep-* support.
18392 * config/mep/constraints.md: Remove.
18393 * config/mep/default.h: Remove.
18394 * config/mep/intrinsics.h: Remove.
18395 * config/mep/intrinsics.md: Remove.
18396 * config/mep/ivc2-template.h: Remove.
18397 * config/mep/mep-c5.cpu: Remove.
18398 * config/mep/mep-core.cpu: Remove.
18399 * config/mep/mep-default.cpu: Remove.
18400 * config/mep/mep-ext-cop.cpu: Remove.
18401 * config/mep/mep-intrin.h: Remove.
18402 * config/mep/mep-ivc2.cpu: Remove.
18403 * config/mep/mep-pragma.c: Remove.
18404 * config/mep/mep-protos.h: Remove.
18405 * config/mep/mep.c: Remove.
18406 * config/mep/mep.cpu: Remove.
18407 * config/mep/mep.h: Remove.
18408 * config/mep/mep.md: Remove.
18409 * config/mep/mep.opt: Remove.
18410 * config/mep/predicates.md: Remove.
18411 * config/mep/t-mep: Remove.
18412 * doc/install.texi: Remove mep-* documentation.
18413 * doc/md.texi: Likewise.
18414
18415 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18416
18417 * config.gcc: Remove support for avr-rtems.
18418 * config/avr/gen-avr-mmcu-specs.c: Likewise.
18419 * config/avr/rtems.h: Remove.
18420 * config/avr/t-rtems: Remove.
18421
18422 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18423
18424 * config.gcc: Remove m32r-rtems support.
18425 * config/m32r/rtems.h: Remove.
18426
18427 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18428
18429 * config.gcc: Remove h8300-rtems support.
18430 * config/h8300/rtems.h: Remove.
18431 * config/h8300/t-rtems: Remove.
18432
18433 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18434
18435 * config.gcc: Remove support for knetbsd.
18436 * configure.ac: Likewise.
18437 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
18438 * config/knetbsd-gnu.h: Remove.
18439 * configure: Regenerate.
18440
18441 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18442
18443 * config.gcc: Remove support for openbsd 2 and 3.
18444 * config/openbsd-oldgas.h: Remove.
18445
18446 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18447
18448 * config.gcc: Remove interix support.
18449 * config/i386/i386-interix.h: Remove.
18450 * config/i386/interix.opt: Remove.
18451 * config/i386/t-interix: Remove.
18452 * configure: Regenerate.
18453 * configure.ac: Remove interix support.
18454 * doc/install.texi: Remove interix documentation.
18455
18456 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
18457
18458 * config/rs6000/rs6000.h: Add conditional preprocessing directives
18459 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
18460 not defined.
18461
18462 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
18463
18464 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
18465 they are both PLACEHOLDER_EXPRs.
18466
18467 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18468
18469 * stor-layout.c (layout_type): Move setting complex MODE to
18470 layout_type, instead of setting it ahead of time by the caller.
18471 * tree.c (build_complex_type): Likewise.
18472
18473 2016-06-21 Martin Liska <mliska@suse.cz>
18474
18475 * predict.c (force_edge_cold): Replace imposisble with
18476 impossible.
18477
18478 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
18479
18480 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
18481 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
18482
18483 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
18484
18485 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
18486
18487 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
18488 Ilya Enkovich <ilya.enkovich@intel.com>
18489
18490 PR target/71549
18491 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
18492 New member function to convert V1TImode register to SUBREG
18493 TImode in debug insn.
18494 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
18495 after changing register mode to V1TImode.
18496
18497 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
18498
18499 * config/aarch64/aarch64-cores.def (vulcan): New core.
18500 * config/aarch64/aarch64-tune.md: Regenerate.
18501 * doc/invoke.texi: Document vulcan as an available option.
18502
18503 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
18504
18505 * cse.c (canon_asm_operands): New function extracted from...
18506 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
18507 either standalone or member of a PARALLEL.
18508
18509 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
18510
18511 PR target/30417
18512 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
18513 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
18514 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
18515
18516 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
18517
18518 PR target/71103
18519 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
18520 constant addresses if can_create_pseudo_p.
18521
18522 2016-06-21 Jakub Jelinek <jakub@redhat.com>
18523
18524 PR tree-optimization/71588
18525 * tree-ssa-strlen.c (valid_builtin_call): New function.
18526 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
18527 it.
18528
18529 2016-06-20 Jakub Jelinek <jakub@redhat.com>
18530
18531 PR middle-end/71581
18532 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
18533 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
18534 for conversion of scalar user var to complex type and use the
18535 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
18536 punt.
18537
18538 PR rtl-optimization/71591
18539 * toplev.c (toplev::run_self_tests): If no_backend, complain and
18540 don't run any tests.
18541
18542 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
18543
18544 PR target/71571
18545 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
18546 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
18547 space for PIC with non-v32 and the common non-PIC "jump".
18548
18549 2016-06-20 Jakub Jelinek <jakub@redhat.com>
18550
18551 PR target/71559
18552 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
18553 returned values and add UN*/LTGT/*ORDERED cases with values matching
18554 D operand modifier on vcmp for AVX.
18555
18556 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
18557
18558 * config/aarch64/aarch64.opt
18559 (mpc-relative-literal-loads): Rename internal option name.
18560 * config/aarch64/aarch64.c
18561 (aarch64_nopcrelative_literal_loads): Rename to
18562 aarch64_pcrelative_literal_loads.
18563 (aarch64_expand_mov_immediate): Likewise.
18564 (aarch64_secondary_reload): Likewise.
18565 (aarch64_can_use_per_function_literal_pools_p): Likewise.
18566 (aarch64_override_options_after_change_1): Rename and simplify logic.
18567 (aarch64_classify_symbol): Merge large model checks into switch,
18568 remove pc-relative load check.
18569
18570 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
18571
18572 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
18573 costs relative to the cost of a register move.
18574
18575 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
18576
18577 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
18578 (vcvt_n_f64_u64): Likewise.
18579 (vcvt_n_s64_f64): Likewise.
18580 (vcvt_n_u64_f64): Likewise.
18581 (vcvt_f64_s64): Likewise.
18582 (vrecpe_f64): Likewise.
18583 (vcvt_f64_u64): Likewise.
18584 (vrecps_f64): Likewise.
18585
18586 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
18587
18588 * config/aarch64/aarch64.md
18589 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
18590 iterators.
18591 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
18592 attributes.
18593 * config/aarch64/aarch64-builtins.c
18594 (aarch64_types_binop_uss_qualifiers): Delete.
18595 (TYPES_BINOP_USS): Likewise.
18596 (aarch64_types_binop_sus_qualifiers): Likewise.
18597 (TYPES_BINOP_SUS): Likewise.
18598 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
18599 (TYPES_FCVTIMM_SUS): Likewise.
18600 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
18601 rather than BINOP.
18602 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
18603 (fcvtzs): Use SHIFTIMM rather than BINOP.
18604 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
18605
18606 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
18607
18608 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
18609 costs relative to the cost of a register move.
18610
18611 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
18612
18613 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
18614 Allow scalar/single vector modes to be tieable.
18615
18616 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
18617
18618 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
18619
18620 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18621
18622 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
18623 "alignement".
18624 * tree.h (TYPE_ALIGN): Likewise.
18625
18626 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
18627
18628 PR target/71103
18629 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
18630
18631 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
18632
18633 * config/avr/avr.c (avr_print_operand): Fix "format not a string
18634 literal" build warnings.
18635 (avr_print_operand_address): Dito.
18636
18637 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
18638
18639 PR target/71375
18640 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
18641 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
18642
18643 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
18644
18645 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
18646
18647 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
18648
18649 PR bootstrap/71435
18650 * reload1.c (reload): Pass 0 to finish_spills when called because
18651 update_eliminables_and_spill returns true and remove did_spill.
18652 (finish_spills): Adjust comment and document GLOBAL parameter.
18653
18654 2016-06-17 DJ Delorie <dj@redhat.com>
18655
18656 PR target/71338
18657 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
18658 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
18659 (umulqihi3_virt): Likewise.
18660 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
18661 (umulqihi3_real): Likewise.
18662
18663 2016-06-17 Martin Liska <mliska@suse.cz>
18664
18665 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
18666
18667 2016-06-17 Martin Liska <mliska@suse.cz>
18668
18669 * predict.def: PRED_LOOP_EXIT from 92 to 85.
18670
18671 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
18672
18673 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
18674 __FAST_MATH__.
18675 (vaddq_f32): Likewise.
18676 (vmul_f32): Likewise.
18677 (vmulq_f32): Likewise.
18678 (vsub_f32): Likewise.
18679 (vsubq_f32): Likewise.
18680
18681 2016-06-17 Bin Cheng <bin.cheng@arm.com>
18682
18683 PR tree-optimization/71347
18684 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
18685 cost for all uses in group.
18686
18687 2016-06-17 Bin Cheng <bin.cheng@arm.com>
18688
18689 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
18690 insert gimple seq if it's not empty.
18691
18692 2016-06-17 Bin Cheng <bin.cheng@arm.com>
18693
18694 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
18695 member OFFSET.
18696 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
18697 rather than OFFSET.
18698 (comp_dr_with_seg_len_pair): Ditto.
18699 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
18700 struct dr_with_seg_len_pair against DR_OFFSET.
18701 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
18702 DR_OFFSET directly.
18703
18704 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
18705
18706 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
18707
18708 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
18709
18710 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
18711 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
18712 (pa_output_millicode_call): Likewise.
18713 (pa_output_call): Likewise.
18714 (pa_output_indirect_call): Likewise.
18715 (pa_asm_output_mi_thunk): Likewise.
18716
18717 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18718
18719 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
18720
18721 2016-06-16 Martin Liska <mliska@suse.cz>
18722
18723 * predict.c (combine_predictions_for_insn): When we find a first
18724 match predictor, we should consider just predictors with
18725 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
18726 DS theory predictor.
18727 (combine_predictions_for_bb): Likewise.
18728
18729 2016-06-16 Jakub Jelinek <jakub@redhat.com>
18730
18731 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
18732 with base of reference to struct.
18733
18734 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
18735
18736 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
18737
18738 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18739
18740 PR target/71151
18741 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
18742 progmem_swtable_section.
18743 (progmem_swtable_section): Remove.
18744 (avr_asm_function_rodata_section): Remove.
18745 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
18746 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
18747
18748 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
18749
18750 * config/i386/driver-i386.c (host_detect_local_cpu): Set
18751 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
18752 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
18753 signature_CENTAUR_ebx.
18754 * config/i386/i386.c (ix86_option_override_internal): Add
18755 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
18756 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
18757 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
18758
18759 2016-06-16 Martin Liska <mliska@suse.cz>
18760
18761 * predict.def: Add fortran loop preheader predictor.
18762 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
18763 fold IFN_BUILTIN_EXPECT with a known constant argument.
18764
18765 2016-06-16 Martin Liska <mliska@suse.cz>
18766
18767 * predict.def: Add 'Fortran' to display text of all
18768 PRED_FORTRAN_* predictors.
18769
18770 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
18771
18772 PR target/71242
18773 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
18774 [IA64_BUILTIN_NANSQ]: Ditto.
18775 (ia64_fold_builtin): New function.
18776 (TARGET_FOLD_BUILTIN): New define.
18777 (ia64_init_builtins) Declare const_string_type node.
18778 Add __builtin_nanq and __builtin_nansq builtin functions.
18779 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
18780
18781 2016-06-16 Nick Clifton <nickc@redhat.com>
18782
18783 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
18784 MSP430_HWMULT_ prefix to enum values.
18785 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
18786 * config/msp430/msp430.c: Update use of enum values.
18787 * config/msp430/msp430.md: Likewise.
18788 * config/msp430/msp430.opt: Likewise.
18789
18790 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
18791
18792 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
18793 of comparsions in the last iteration.
18794
18795 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
18796 Joern Rennecke <joern.rennecke@embecosm.com>
18797
18798 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
18799 addresses.
18800 (arc_needs_pcl_p): Add GOTOFFPC.
18801 (arc_legitimate_pic_addr_p): Likewise.
18802 (arc_output_pic_addr_const): Likewise.
18803 (arc_legitimize_pic_address): Generate a pc-relative address using
18804 GOTOFFPC.
18805 (arc_output_libcall): Use @pcl syntax.
18806 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
18807 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
18808 (*movsi_insn): Use @pcl syntax.
18809 (doloop_begin_i): Likewise.
18810
18811 2016-06-16 Martin Liska <mliska@suse.cz>
18812
18813 * predict.def: Define a new predictor.
18814
18815 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
18816
18817 * config/arc/arc.opt (mtp-regno): Update text.
18818
18819 2016-06-16 Renlin Li <renlin.li@arm.com>
18820
18821 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
18822
18823 2016-06-16 Jakub Jelinek <jakub@redhat.com>
18824
18825 PR target/71554
18826 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
18827 (setcc + and peephole2): Likewise.
18828
18829 PR rtl-optimization/71532
18830 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
18831 memory slots.
18832
18833 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
18834
18835 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
18836 DImode constants with XXSPLTIB in vector registers.
18837 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
18838 vsx_extract_<mode>_internal{1,2} into a single insn that handles
18839 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
18840 extraction of the element at the top of the register as a scalar
18841 value.
18842 (vsx_extract_<mode>_internal1): Likewise.
18843 (vsx_extract_<mode>_internal2): Likewise.
18844 * config/rs6000/constraints.md (wi constraint): Remove a comment
18845 about DImode not being allowed in Altivec registers.
18846 (wB constraint): New constraint for constants that can be
18847 generated in Altivec registers with VSPLTISW/VUPKHSW.
18848 * config/rs6000/predicates.md (xxspltib_constant_split): Update
18849 comments.
18850 (xxspltib_constant_nosplit): Likewise.
18851 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
18852 support for -mupper-regs-di to enable DImode to go into Altivec
18853 registers.
18854 (POWERPC_MASKS): Likewise.
18855 (power7 cpu): Likewise.
18856 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
18857 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
18858 for DImode being allowed in Altivec registers. Update wi/wj
18859 constraints. Set scalar_in_vmx_p flag.
18860 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
18861 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
18862 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
18863 (rs6000_opt_masks): Add -mupper-regs-di.
18864 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
18865 direct move to use wi and not wj.
18866 (lfiwzx): Likewise.
18867 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
18868 alternative.
18869 (floatunssi<mode>2_lfiwzx_mem): Likewise.
18870 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
18871 any VSX register, instead of just Altivec registers, to allow
18872 either operand to be an Altivec register or both.
18873 (fixuns_trunc<mode>di2_fctiduz): Likewise.
18874 (movdi_internal32): Add support for -mupper-regs-di. Add support
18875 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
18876 the alternatives and attributes to be lined up to be easier to
18877 read.
18878 (movdi_internal64): Likewise.
18879 (64-bit DImode splitters): Change predicates to only split loading
18880 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
18881 load constants in ISA 3.0 or ISA 2.07 respectively.
18882 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
18883 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
18884 mention -mcpu=power9 sets these options.
18885 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
18886 wB constraint.
18887
18888 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
18889
18890 PR target/67353
18891 * config/avr/avr.c (avr_set_current_function): Warn misspelled
18892 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
18893 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
18894 by default to warn misspelled interrupt/ signal handler.
18895 * doc/invoke.texi (AVR Options): Document it. Update description
18896 for -nodevicelib option.
18897
18898 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18899
18900 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
18901 up parentheses. Use GET_MODE_UNIT_BITSIZE.
18902 (aarch64_<sur>shll2_n<mode>): Likewise.
18903
18904 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
18905
18906 PR middle-end/71529
18907 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
18908 DECL_CONTEXT for copied arguments.
18909
18910 2016-06-15 Alan Hayward <alan.hayward@arm.com>
18911
18912 PR tree-optimization/71483
18913 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
18914 for slp
18915
18916 2016-06-15 Martin Liska <mliska@suse.cz>
18917
18918 * predict.c (tree_predict_by_opcode): Call predict_edge_def
18919 instead of predict_edge w/o a probability.
18920
18921 2016-06-15 Alan Hayward <alan.hayward@arm.com>
18922
18923 PR tree-optimization/71439
18924 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
18925 live PHIs.
18926
18927 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18928
18929 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
18930 register subregs in SET_SRC.
18931
18932 2016-06-15 Richard Biener <rguenther@suse.de>
18933
18934 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
18935 store restrictions.
18936
18937 2016-06-15 Richard Biener <rguenther@suse.de>
18938
18939 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
18940 not consider dependences between accesses that belong to the
18941 same group.
18942 (vect_analyze_data_ref_dependences): Do not analyze read-read
18943 or self-dependences.
18944
18945 2016-06-14 David Malcolm <dmalcolm@redhat.com>
18946
18947 * spellcheck-tree.c: Include spellcheck-tree.h rather than
18948 spellcheck.h.
18949 (find_closest_identifier): Reimplement in terms of
18950 best_match<tree,tree>.
18951 * spellcheck-tree.h: New file.
18952 * spellcheck.c (struct edit_distance_traits<const char *>): New
18953 struct.
18954 (find_closest_string): Reimplement in terms of
18955 best_match<const char *, const char *>.
18956 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
18957 overload to spellcheck-tree.h.
18958 (find_closest_identifier): Likewise.
18959 (struct edit_distance_traits<T>): New template.
18960 (class best_match): New class.
18961
18962 2016-06-14 David Malcolm <dmalcolm@redhat.com>
18963
18964 * selftest-run-tests.c (selftest::run_tests): Call
18965 selftest::spellcheck_tree_c_tests.
18966 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
18967 * spellcheck-tree.c: Include selftest.h and stringpool.h.
18968 (selftest::test_find_closest_identifier): New function.
18969 (selftest::spellcheck_tree_c_tests): New function.
18970 * spellcheck.c (selftest::test_find_closest_string): Verify that
18971 the order of the vec does not affect the results for this case.
18972 (selftest::test_data): New array.
18973 (selftest::test_metric_conditions): New function.
18974 (selftest::spellcheck_c_tests): Add a test of case-comparison.
18975 Call selftest::test_metric_conditions.
18976
18977 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18978
18979 * config/rs6000/rs6000-builtin.def (commentary): Typo.
18980 (BU_P9_MISC_1): Likewise.
18981 (BU_P9_64BIT_MISC_0): Likewise.
18982 (BU_P9_MISC_0): Likewise.
18983
18984 2016-06-14 David Malcolm <dmalcolm@redhat.com>
18985
18986 * gcc-rich-location.c
18987 (gcc_rich_location::add_fixit_misspelled_id): New method.
18988 * gcc-rich-location.h
18989 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
18990
18991 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
18992
18993 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
18994 FreeBSD 11 and above.
18995
18996 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
18997
18998 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
18999
19000 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19001
19002 * expmed.h: Close parenthesis in "at your option" in copyright
19003 boilerplate.
19004 * lower-subreg.h: Likewise.
19005
19006 2016-06-14 Richard Biener <rguenther@suse.de>
19007
19008 PR middle-end/71526
19009 * genmatch.c (expr::gen_transform): Use in_type for comparisons
19010 if available.
19011
19012 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19013
19014 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
19015 New function.
19016 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
19017 mask+shift version.
19018 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
19019 New prototype.
19020 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
19021 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
19022
19023 2016-06-14 Richard Biener <rguenther@suse.de>
19024
19025 PR tree-optimization/71522
19026 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
19027 copying into float copying.
19028
19029 2016-06-14 Jakub Jelinek <jakub@redhat.com>
19030
19031 PR tree-optimization/71520
19032 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
19033 (replace_block_by): Move user labels from bb1 to bb2.
19034
19035 2016-06-14 Richard Biener <rguenther@suse.de>
19036
19037 PR middle-end/71310
19038 PR bootstrap/71510
19039 * expr.h (get_bit_range): Declare.
19040 * expr.c (get_bit_range): Export.
19041 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
19042 word_mode again to constrain the bitfield access.
19043
19044 2016-06-14 Richard Biener <rguenther@suse.de>
19045
19046 PR tree-optimization/71521
19047 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
19048 division int_const_binop against zero divisor.
19049
19050 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
19051
19052 * config/i386/i386.md (signbittf2): New expander.
19053 * config/i386/sse.md (ptesttf2): New insn pattern.
19054
19055 2016-06-13 David Malcolm <dmalcolm@redhat.com>
19056
19057 PR bootstrap/71481
19058 * input.c (selftest::test_reading_source_line): Avoid reading from
19059 __FILE__ by creating a tempfile with known content and reading
19060 from that instead.
19061
19062 2016-06-13 David Malcolm <dmalcolm@redhat.com>
19063
19064 * pretty-print.c (assert_pp_format_colored): Skip the test if
19065 GCC_COLORS is set.
19066 (test_pp_format): Remove comment about GCC_COLORS.
19067
19068 2016-06-13 David Malcolm <dmalcolm@redhat.com>
19069
19070 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
19071 * pretty-print.c (assert_pp_format_va): Add location param and use
19072 it with ASSERT_STREQ_AT.
19073 (assert_pp_format): Add location param and pass it to
19074 assert_pp_format_va.
19075 (assert_pp_format_colored): Likewise.
19076 (ASSERT_PP_FORMAT_1): New.
19077 (ASSERT_PP_FORMAT_2): New.
19078 (ASSERT_PP_FORMAT_3): New.
19079 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
19080 explicitly, or implicitly via the above macros.
19081 * selftest.c (selftest::pass): Use a selftest::location rather
19082 than file and line.
19083 (selftest::fail): Likewise. Print the function name.
19084 (selftest::fail_formatted): Likewise.
19085 (selftest::assert_streq): Use a selftest::location rather than
19086 file and line.
19087 * selftest.h (selftest::location): New struct.
19088 (SELFTEST_LOCATION): New macro.
19089 (selftest::pass): Accept a const location & rather than file
19090 and line.
19091 (selftest::fail): Likewise.
19092 (selftest::fail_formatted): Likewise.
19093 (selftest::assert_streq): Likewise.
19094 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
19095 (ASSERT_FALSE): Likewise.
19096 (ASSERT_EQ): Likewise.
19097 (ASSERT_NE): Likewise.
19098 (ASSERT_STREQ): Likewise.
19099 (ASSERT_PRED1): Likewise.
19100 (ASSERT_STREQ_AT): New macro.
19101
19102 2016-06-13 David Malcolm <dmalcolm@redhat.com>
19103
19104 * selftest.c (selftest::fail_formatted): New function.
19105 (selftest::assert_streq): New function.
19106 * selftest.h (selftests::fail_formatted): New decl.
19107 (selftest::assert_streq): New decl.
19108 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
19109
19110 2016-06-13 Jeff Law <law@redhat.com>
19111
19112 PR tree-optimization/71403
19113 * tree-ssa-threadbackward.c
19114 (convert_and_register_jump_thread_path): No longer accept reference
19115 to path. Do not pop items off the path anymore.
19116 (fsm_find_control_statement_thread_paths): Do not allow threading
19117 to a deeper loop nest. Pop the last item off the path here rather
19118 than in convert_and_register_jump_thread_path.
19119
19120 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
19121 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
19122
19123 [AArch64] Emit division using the Newton series
19124
19125 * config/aarch64/aarch64-protos.h
19126 (cpu_approx_modes): Add new member "division".
19127 (aarch64_emit_approx_div): Declare new function.
19128 * config/aarch64/aarch64.c
19129 (generic_approx_modes): New member "division".
19130 (exynosm1_approx_modes): Likewise.
19131 (xgene1_approx_modes): Likewise.
19132 (aarch64_emit_approx_div): Define new function.
19133 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
19134 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
19135 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
19136 * doc/invoke.texi (-mlow-precision-div): Describe new option.
19137
19138 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
19139 Wilco Dijkstra <wilco.dijkstra@arm.com>
19140
19141 [AArch64] Emit square root using the Newton series
19142
19143 * config/aarch64/aarch64-protos.h
19144 (aarch64_emit_approx_rsqrt): Replace with new function
19145 "aarch64_emit_approx_sqrt".
19146 (cpu_approx_modes): New member "sqrt".
19147 * config/aarch64/aarch64.c
19148 (generic_approx_modes): New member "sqrt".
19149 (exynosm1_approx_modes): Likewise.
19150 (xgene1_approx_modes): Likewise.
19151 (aarch64_emit_approx_rsqrt): Replace with new function
19152 "aarch64_emit_approx_sqrt".
19153 (aarch64_override_options_after_change_1): Handle new option.
19154 * config/aarch64/aarch64-simd.md
19155 (rsqrt<mode>2): Use new function instead.
19156 (sqrt<mode>2): New expansion and insn definitions.
19157 * config/aarch64/aarch64.md: Likewise.
19158 * config/aarch64/aarch64.opt
19159 (mlow-precision-sqrt): Add new option description.
19160 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
19161
19162 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
19163
19164 [AArch64] Add more choices for the reciprocal square root approximation
19165
19166 Allow a target to prefer such operation depending on the operation mode.
19167
19168 * config/aarch64/aarch64-protos.h
19169 (AARCH64_APPROX_MODE): New macro.
19170 (AARCH64_APPROX_{NONE,ALL}): Likewise.
19171 (cpu_approx_modes): New structure.
19172 (tune_params): New member "approx_modes".
19173 * config/aarch64/aarch64-tuning-flags.def
19174 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
19175 * config/aarch64/aarch64.c
19176 (generic_approx_modes): New core "cpu_approx_modes" structure.
19177 (exynosm1_approx_modes): Likewise.
19178 (xgene1_approx_modes): Likewise.
19179 (generic_tunings): New member "approx_modes".
19180 (cortexa35_tunings): Likewise.
19181 (cortexa53_tunings): Likewise.
19182 (cortexa57_tunings): Likewise.
19183 (cortexa72_tunings): Likewise.
19184 (exynosm1_tunings): Likewise.
19185 (thunderx_tunings): Likewise.
19186 (xgene1_tunings): Likewise.
19187 (use_rsqrt_p): New argument for the mode and use new member from
19188 "tune_params".
19189 (aarch64_builtin_reciprocal): Devise mode from builtin.
19190 (aarch64_optab_supported_p): New argument for the mode.
19191 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
19192
19193 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
19194
19195 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
19196 RS6000_BTM_MODULO flag into the set of flags that are considered
19197 to be part of the common configuration.
19198
19199 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
19200
19201 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
19202 difference unsigned.
19203 (vec_absdb): New macro for vector absolute difference unsigned
19204 byte.
19205 (vec_absdh): New macro for vector absolute difference unsigned
19206 half-word.
19207 (vec_absdw): New macro for vector absolute difference unsigned word.
19208 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
19209 (vadu<mode>3): New insn.
19210 (*p9_vadu<mode>3): New insn.
19211 * config/rs6000/rs6000-builtin.def (vadub): New built-in
19212 definition.
19213 (vaduh): New built-in definition.
19214 (vaduw): New built-in definition.
19215 (vadu): New overloaded built-in definition.
19216 (vadub): New overloaded built-in definition.
19217 (vaduh): New overloaded built-in definition.
19218 (vaduw): New overloaded built-in definition.
19219 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19220 overloaded vector absolute difference unsigned functions.
19221 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
19222 the ISA 3.0 vector absolute difference unsigned built-in functions.
19223
19224 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
19225
19226 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
19227 update shared_lookup_references only once after changing operands.
19228
19229 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
19230
19231 PR middle-end/71373
19232 * tree-nested.c (convert_nonlocal_omp_clauses)
19233 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
19234
19235 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
19236 * tree.def (CASE_LABEL_EXPR): Likewise.
19237
19238 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
19239
19240 PR bootstrap/71481
19241 * input.c (test_builtins): Fix an assertion.
19242
19243 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
19244
19245 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
19246 (paritysi2): Ditto.
19247 (isinfxf2): Ditto.
19248 (isinf<mode>2): Ditto.
19249
19250 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
19251
19252 * ggc-tests.c (test_finalization): Only test need_finalization_p
19253 for GCC_VERSION >= 4003.
19254
19255 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19256
19257 * config/s390/vecintrin.h: Fix file description in comment.
19258
19259 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19260
19261 * config/s390/s390-builtin-types.def: Change builtin type naming
19262 scheme to match builtin-types.def.
19263
19264 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
19265
19266 * fold-const.c (optimize_minmax_comparison): Remove.
19267 (fold_comparison): Remove call to the above.
19268 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
19269 New transformations.
19270
19271 2016-06-13 Alan Hayward <alan.hayward@arm.com>
19272
19273 PR tree-optimization/71416
19274 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
19275 multiple entries
19276
19277 2016-06-13 Martin Liska <mliska@suse.cz>
19278
19279 * predict.c (enum predictor_reason): Prefix enum with REASON_.
19280 (combine_predictions_for_insn): Likewise.
19281 (prune_predictions_for_bb): Likewise.
19282 (combine_predictions_for_bb): Likewise.
19283
19284 2016-06-13 Richard Biener <rguenther@suse.de>
19285
19286 PR tree-optimization/71505
19287 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
19288 assert match comment.
19289
19290 2016-06-13 Marek Polacek <polacek@redhat.com>
19291
19292 PR middle-end/71476
19293 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
19294 gimplify_switch_expr.
19295 (warn_switch_unreachable_r): New function.
19296
19297 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19298
19299 PR target/71379
19300 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
19301 one.
19302
19303 2016-06-13 Richard Biener <rguenther@suse.de>
19304
19305 PR middle-end/64516
19306 * fold-const.c (fold_unary_loc): Preserve alignment when
19307 folding a VIEW_CONVERT_EXPR into a MEM_REF.
19308
19309 2016-06-13 Martin Liska <mliska@suse.cz>
19310
19311 PR sanitizer/71458
19312 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
19313 w/ -fsanitize=bounds.
19314
19315 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
19316
19317 * config/i386/i386.c (ix86_init_builtins): Calculate
19318 FLOAT128_FTYPE_CONST_STRING function type only once.
19319 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
19320 built-in functions are available for x86-32 and x86-64 targets.
19321
19322 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
19323
19324 PR target/71241
19325 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
19326 New primitive type.
19327 (FLOAT128_FTYPE_CONST_STRING): New function type.
19328 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
19329 [IX86_BUILTIN_NANSQ]: Ditto.
19330 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
19331 (ix86_init_builtin_types): Declare const_string_type_node.
19332 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
19333 builtin functions.
19334 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
19335 * doc/extend.texi (x86 Built-in Functions): Document
19336 __builtin_nanq and __builtin_nansq.
19337
19338 2016-06-11 Jiong Wang <jiong.wang@arm.com>
19339
19340 PR target/71061
19341 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
19342 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
19343 length for pop patterns.
19344 (arm_attr_length_push_multi): Update comments.
19345 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
19346 attribute.
19347 (*pop_multiple_with_writeback_and_return): Likewise.
19348 (*pop_multiple_with_return): Likewise.
19349
19350 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
19351
19352 PR middle-end/71310
19353 * fold-const.c (optimize_bit_field_compare): Don't try to use
19354 word_mode unconditionally for reading the bit field, look at
19355 DECL_BIT_FIELD_REPRESENTATIVE instead.
19356
19357 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
19358
19359 PR middle-end/71478
19360 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
19361 vector integer type.
19362
19363 2016-06-10 Jakub Jelinek <jakub@redhat.com>
19364
19365 PR middle-end/71494
19366 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
19367 without LABEL_DECL, set *handled_ops_p to false instead of true.
19368
19369 2016-06-10 Martin Sebor <msebor@redhat.com>
19370
19371 PR c/71392
19372 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
19373 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
19374 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
19375 them.
19376 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
19377 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
19378 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
19379 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
19380 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
19381 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
19382 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
19383 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
19384
19385 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
19386
19387 * config/arm/arm.h (pool_vector_label,
19388 return_used_this_function): Remove.
19389
19390 2016-06-10 Jeff Law <law@redhat.com>
19391
19392 PR tree-optimization/71335
19393 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
19394 zero length paths here.
19395 (convert_and_register_jump_thread_path): Remove hacks related to
19396 duplicated blocks in the jump thread path.
19397 (fsm_find_control_statement_thread_paths): Avoid putting the same
19398 block on the thread path twice, but ensure the thread path is
19399 unchanged from the caller's point of view.
19400
19401 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
19402
19403 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
19404 * predict.def (PRED_LOOP_BRANCH): Remove.
19405
19406 2016-06-10 David Malcolm <dmalcolm@redhat.com>
19407
19408 * Makefile.in (OBJS): Add ggc-tests.o.
19409 (GTFILES): Add ggc-tests.c.
19410 * ggc-tests.c: New file.
19411 * selftest-run-tests.c (selftest::run_tests): Call
19412 selftest::ggc_tests_c_tests.
19413 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
19414
19415 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
19416
19417 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
19418
19419 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
19420
19421 PR sanitizer/71480
19422 * varasm.c (place_block_symbol): Adjust alignment for asan protected
19423 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
19424
19425 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
19426
19427 * profile.c: Include cfgloop.h.
19428 (branch_prob): Compute estimated number of iterations.
19429 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
19430 recompute estimate number of iterations from profile.
19431
19432 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
19433
19434 PR inline-asm/68843
19435 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
19436 must be grouped on top of stack. Don't force early clobber
19437 on ordinary reg outputs.
19438
19439 2016-06-10 Richard Biener <rguenther@suse.de>
19440
19441 * targhooks.c (default_builtin_vectorization_cost): Adjust
19442 vec_construct cost.
19443
19444 2016-06-10 Richard Biener <rguenther@suse.de>
19445
19446 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
19447 to fold the RHS to a constant if possible.
19448
19449 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
19450
19451 PR middle-end/71373
19452 * tree-nested.c (convert_nonlocal_omp_clauses)
19453 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
19454 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
19455 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
19456
19457 * gimplify.c (gimplify_adjust_omp_clauses): Discard
19458 OMP_CLAUSE_TILE.
19459 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
19460
19461 * omp-low.c (scan_sharing_clauses): Don't expect
19462 OMP_CLAUSE__CACHE_.
19463
19464 2016-06-10 Alan Hayward <alan.hayward@arm.com>
19465
19466 PR tree-optimization/71407
19467 PR tree-optimization/71416
19468 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
19469 BIT_FIELD_REF type.
19470
19471 2016-06-10 Richard Biener <rguenther@suse.de>
19472
19473 PR middle-end/71477
19474 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
19475
19476 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
19477
19478 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
19479
19480 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
19481 Jiong Wang <jiong.wang@arm.com>
19482
19483 PR rtl-optimization/70751
19484 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
19485 spilled into memory.
19486
19487 2016-06-09 Jonathan Yong <10walls@gmail.com>
19488
19489 Revert:
19490 2015-09-21 Jonathan Yong <10walls@gmail.com>
19491
19492 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
19493 sysroot/usr/lib/32api for additional win32 libraries,
19494 fixes failing Cygwin bootstrapping.
19495
19496 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
19497
19498 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
19499 Delete.
19500
19501 2016-06-09 David Malcolm <dmalcolm@redhat.com>
19502
19503 PR bootstrap/71471
19504 * pretty-print.c (pp_indent): Specify that %p is printed in a
19505 host-dependent manner.
19506 (test_pp_format): Remove the test for %p.
19507
19508 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
19509
19510 * config/mips/mips.c (mips_output_jump): Fix formatting.
19511
19512 2016-06-09 Richard Biener <rguenther@suse.de>
19513
19514 PR tree-optimization/71462
19515 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
19516 removed blocks.
19517
19518 2016-06-09 Martin Liska <mliska@suse.cz>
19519
19520 * predict.c (dump_prediction): Add new argument.
19521 (enum predictor_reason): New enum.
19522 (struct predictor_hash): New struct.
19523 (predictor_hash::hash): New function.
19524 (predictor_hash::equal): Likewise.
19525 (not_removed_prediction_p): New function.
19526 (prune_predictions_for_bb): Likewise.
19527 (combine_predictions_for_bb): Prune predictions.
19528
19529 2016-06-09 Martin Liska <mliska@suse.cz>
19530
19531 * predict.c (filter_predictions): New function.
19532 (remove_predictions_associated_with_edge): Use the filter
19533 function.
19534 (equal_edge_p): New function.
19535
19536 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
19537
19538 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
19539 Correct usage of @samp vs @option, add @samp where appropriate.
19540 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
19541 Add armv6s-m and document it, as it is no official ARM name.
19542
19543 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19544
19545 * ifcvt.c (struct noce_if_info): Add transform_name field.
19546 (noce_try_move): Set if_info->transform_name to the function name.
19547 (noce_try_ifelse_collapse): Likewise.
19548 (noce_try_store_flag): Likewise.
19549 (noce_try_inverse_constants): Likewise.
19550 (noce_try_store_flag_constants): Likewise.
19551 (noce_try_addcc): Likewise.
19552 (noce_try_store_flag_mask): Likewise.
19553 (noce_try_cmove): Likewise.
19554 (noce_try_cmove_arith): Likewise.
19555 (noce_try_minmax): Likewise.
19556 (noce_try_abs): Likewise.
19557 (noce_try_sign_mask): Likewise.
19558 (noce_try_bitop): Likewise.
19559 (noce_convert_multiple_sets): Likewise.
19560 (noce_process_if_block): Print if_info->transform_name to
19561 dump_file if transformation succeeded.
19562
19563 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19564
19565 * config/arm/cortex-a57.md (cortex_a57_alu):
19566 Handle csel type.
19567
19568 2016-06-08 Martin Sebor <msebor@redhat.com>
19569 Jakub Jelinek <jakub@redhat.com>
19570
19571 PR c++/70507
19572 PR c/68120
19573 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
19574 BUILT_IN_MUL_OVERFLOW_P): New builtins.
19575 * builtins.c: Include gimple-fold.h.
19576 (fold_builtin_arith_overflow): Handle
19577 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
19578 (fold_builtin_3): Likewise.
19579 * doc/extend.texi (Integer Overflow Builtins): Document
19580 __builtin_{add,sub,mul}_overflow_p.
19581
19582 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
19583
19584 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
19585 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
19586
19587 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
19588
19589 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
19590 Rewrite, looking one level down for records and arrays.
19591
19592 2016-06-08 David Malcolm <dmalcolm@redhat.com>
19593
19594 * pretty-print.c: Include "selftest.h".
19595 (pp_format): Fix comment.
19596 (identifier_to_locale): Likewise.
19597 (selftest::test_basic_printing): New function.
19598 (selftest::assert_pp_format): New function.
19599 (selftest::test_pp_format): New function.
19600 (selftest::pretty_print_c_tests): New function.
19601 * selftest-run-tests.c (selftest::run_tests): Call
19602 selftest::pretty_print_c_tests.
19603 * selftest.h (pretty_print_c_tests): New declaration.
19604
19605 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
19606
19607 * invoke.texi (max-loop-headers-insns): Document.
19608 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
19609 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
19610 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
19611
19612 2016-06-08 Richard Biener <rguenther@suse.de>
19613
19614 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
19615 on strided SLP loads and fall back to scalar loads in case
19616 we can't chunk them.
19617
19618 2016-06-08 Richard Biener <rguenther@suse.de>
19619
19620 PR tree-optimization/71452
19621 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
19622 type used for the SSA rewrite has enough precision to cover
19623 the dynamic type of the location.
19624
19625 2016-06-08 Jakub Jelinek <jakub@redhat.com>
19626 Richard Biener <rguenther@suse.de>
19627
19628 PR c++/71448
19629 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
19630 the same as DECL_P (base0) for indirect_base0. Use equality_code
19631 in one further place.
19632
19633 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
19634
19635 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
19636 to one word if the field is known to overlap other words.
19637 (extract_bit_field_1): Likewise.
19638 (store_split_bit_field): Remove compensating code.
19639 (extract_split_bit_field): Likewise.
19640
19641 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
19642
19643 PR debug/71432
19644 PR ada/71413
19645 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
19646
19647 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19648
19649 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
19650 VDQF.
19651 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
19652 (arch64_addpv4sf): Delete.
19653 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
19654 "gen_aarch64_addpv4sf".
19655 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
19656 builtin.
19657 (vpadds_f32): Likewise.
19658 (vpaddq_f32): Likewise.
19659 (vpaddq_f64): Likewise.
19660
19661 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19662
19663 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
19664 VALLF.
19665 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
19666 to VALLF. Rename to "fabd<mode>3".
19667 "*fabd_scalar<mode>3): Delete.
19668 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
19669 Use builtin.
19670 (vabdd_f64): Likewise.
19671 (vabd_f32): Likewise.
19672 (vabd_f64): Likewise.
19673 (vabdq_f32): Likewise.
19674 (vabdq_f64): Likewise.
19675
19676 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19677
19678 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
19679 VALLF.
19680 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
19681 "aarch64_rsqrts<mode>".
19682 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
19683 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
19684 builtin.
19685 (vrsqrtsd_f64): Likewise.
19686 (vrsqrts_f32): Likewise.
19687 (vrsqrts_f64): Likewise.
19688 (vrsqrtsq_f32): Likewise.
19689 (vrsqrtsq_f64): Likewise.
19690
19691 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19692
19693 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
19694 VALLF.
19695 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
19696 "aarch64_rsqrte<mode>".
19697 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
19698 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
19699 builtin.
19700 (vrsqrted_f64): Likewise.
19701 (vrsqrte_f32): Likewise.
19702 (vrsqrte_f64): Likewise.
19703 (vrsqrteq_f32): Likewise.
19704 (vrsqrteq_f64): Likewise.
19705
19706 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19707
19708 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
19709 (ucvtf): Likewise.
19710 (fcvtzs): Likewise.
19711 (fcvtzu): Likewise.
19712 * config/aarch64/aarch64-simd.md
19713 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
19714 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
19715 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
19716 Use builtin.
19717 (vcvt_n_f32_u32): Likewise.
19718 (vcvt_n_s32_f32): Likewise.
19719 (vcvt_n_u32_f32): Likewise.
19720 (vcvtq_n_f32_s32): Likewise.
19721 (vcvtq_n_f32_u32): Likewise.
19722 (vcvtq_n_f64_s64): Likewise.
19723 (vcvtq_n_f64_u64): Likewise.
19724 (vcvtq_n_s32_f32): Likewise.
19725 (vcvtq_n_s64_f64): Likewise.
19726 (vcvtq_n_u32_f32): Likewise.
19727 (vcvtq_n_u64_f64): Likewise.
19728 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
19729 (VSDQ_SDI): Likewise.
19730 (fcvt_target): Support V4DI, V4SI and V2SI.
19731 (FCVT_TARGET): Likewise.
19732
19733 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19734
19735 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
19736 (TYPES_BINOP_SUS): Likewise.
19737 (aarch64_simd_builtin_data): Update include file name.
19738 (aarch64_builtins): Likewise.
19739 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
19740 for conversion between scalar float-point and fixed-point.
19741 (ucvtf): Likewise.
19742 (fcvtzs): Likewise.
19743 (fcvtzu): Likewise.
19744 * config/aarch64/aarch64.md
19745 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
19746 pattern for conversion between scalar float to fixed-pointer.
19747 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
19748 (UNSPEC_FCVTZS): New UNSPEC enumeration.
19749 (UNSPEC_FCVTZU): Likewise.
19750 (UNSPEC_SCVTF): Likewise.
19751 (UNSPEC_UCVTF): Likewise.
19752 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
19753 Use builtin.
19754 (vcvtd_n_f64_u64): Likewise.
19755 (vcvtd_n_s64_f64): Likewise.
19756 (vcvtd_n_u64_f64): Likewise.
19757 (vcvtd_n_f32_s32): Likewise.
19758 (vcvts_n_f32_u32): Likewise.
19759 (vcvtd_n_s32_f32): Likewise.
19760 (vcvts_n_u32_f32): Likewise.
19761 * config/aarch64/iterators.md (fcvt_target): Support integer to float
19762 mapping.
19763 (FCVT_TARGET): Likewise.
19764 (FCVT_FIXED2F): New iterator.
19765 (FCVT_F2FIXED): Likewise.
19766 (fcvt_fixed_insn): New define_int_attr.
19767
19768 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
19769
19770 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
19771 some statements was removed.
19772
19773 2016-06-08 Alan Hayward <alan.hayward@arm.com>
19774
19775 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
19776 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
19777 (vect_can_advance_ivs_p): likewise.
19778 (vect_update_ivs_after_vectorizer): likewise.
19779 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
19780 (vect_analyze_scalar_cycles_1): likewise.
19781 (vect_analyze_loop_operations): likewise.
19782 (report_vect_op): likewise.
19783 (vect_is_slp_reduction): likewise.
19784 (vect_is_simple_reduction): likewise.
19785 (get_initial_def_for_induction): likewise.
19786 (vect_transform_loop): likewise.
19787 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
19788 (vect_recog_sad_pattern): likewise.
19789 (vect_recog_widen_sum_pattern): likewise.
19790 (vect_recog_widening_pattern): likewise.
19791 (vect_recog_divmod_pattern): likewise.
19792 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
19793 (vect_analyze_slp_instance): likewise.
19794 (vect_transform_slp_perm_load): likewise.
19795 (vect_schedule_slp_instance): likewise.
19796
19797 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
19798
19799 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
19800 (return_prediction): PRED_CONST_RETURN predict return as not taken.
19801 * predict.def (PRED_CONTINUE): Change hitrate 50->67
19802 (PRED_LOOP_BRANCH): Document predictor as broken.
19803 (PRED_LOOP_EXIT): Change hitrate 91->92.
19804 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
19805 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
19806 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
19807 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
19808 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
19809 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
19810 (PRED_CALL): Chane hitrate 71->67.
19811 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
19812 (PRED_GOTO): Document as unused right now.
19813 (PRED_CONST_RETURN): Change hitrate 67->69
19814 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
19815 (PRED_NULL_RETURN): Change hitrate 91->90.
19816 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
19817 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
19818 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
19819
19820 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
19821
19822 * config/rs6000/altivec.h: Add __builtin_vec_mul.
19823 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
19824 special case Altivec builtin.
19825 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
19826 VSX_BUILTIN_VEC_MUL (replaced with special case code).
19827 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
19828 code for ALTIVEC_BUILTIN_VEC_MUL.
19829 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
19830 for __builtin_vec_mul.
19831
19832 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
19833
19834 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
19835 -mno-htm.
19836
19837 2016-06-07 David Malcolm <dmalcolm@redhat.com>
19838
19839 * spellcheck.c (selftest::test_find_closest_string): New function.
19840 (spellcheck_c_tests): Call the above.
19841
19842 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19843
19844 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
19845
19846 2016-06-07 Jakub Jelinek <jakub@redhat.com>
19847
19848 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
19849 Yv=Yv,C alternatives.
19850
19851 2016-06-07 Richard Biener <rguenther@suse.de>
19852
19853 PR c/61564
19854 * common.opt (ffast-math): Make Optimization.
19855
19856 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
19857 Prachi Godbole <prachi.godbole@imgtec.com>
19858
19859 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
19860 `fabs' and `fneg' type attributes.
19861 (p5600_fpu_fabs): Add `fmove' to the comment.
19862
19863 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
19864
19865 * gimple.c: Include builtins.h
19866 (gimple_inexpensive_call_p): New function.
19867 * gimple.h (gimple_inexpensive_call_p): Declare.
19868 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
19869 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
19870 fix formatting.
19871
19872 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
19873
19874 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
19875 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
19876 warning_at_rich_loc, warning_n, pedwarn, permerror,
19877 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
19878 sorry, fatal_error, internal_error, internal_error_no_backtrace):
19879 Use the above.
19880
19881 2016-06-07 Richard Biener <rguenther@suse.de>
19882
19883 PR tree-optimization/71428
19884 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
19885 BIT_FIELD_REF op vs. load.
19886
19887 2016-06-07 Richard Biener <rguenther@suse.de>
19888
19889 PR middle-end/71423
19890 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
19891 for signed ops.
19892
19893 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
19894
19895 * config/pa/pa.md (call): Generate indirect long calls to non-local
19896 functions on TARGET_64BIT.
19897 (call_value): Likewise.
19898
19899 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
19900
19901 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
19902 pattern and subsequent splitters.
19903 (call_val_reg_64bit_post_reload): Likewise.
19904
19905 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
19906
19907 PR middle-end/71408
19908 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
19909 propagate_op_to_single_use.
19910
19911 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
19912
19913 PR middle-end/71281
19914 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
19915
19916 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
19917
19918 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
19919 (enum x86_dirflag_state): New enum.
19920 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
19921 (machine_function): Remove needs_cld.
19922 (ix86_current_function_needs_cld): Remove.
19923 * config/i386/i386.c (ix86_set_func_type): Set
19924 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
19925 (ix86_expand_prologue): Do not emit CLD here.
19926 (ix86_dirflag_mode_needed): New function.
19927 (ix86_dirflag_mode_entry): Ditto.
19928 (ix86_mode_needed): Handle X86_DIRFLAG entity.
19929 (ix86_mode_after): Ditto.
19930 (ix86_mode_entry): Ditto.
19931 (ix86_mode_exit): Ditto.
19932 (ix86_emit_mode_set): Ditto.
19933 * config/i386/i386.md (strmov_singleop): Set
19934 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
19935 Do not set ix86_current_function_needs_cld.
19936 (rep_mov): Ditto.
19937 (strset_singleop): Ditto.
19938 (rep_stos): Ditto.
19939 (cmpstrnqi_nz_1): Ditto.
19940 (cmpstrnqi_1): Ditto.
19941 (strlenqi_1): Ditto.
19942
19943 2016-06-06 Jakub Jelinek <jakub@redhat.com>
19944
19945 PR tree-optimization/71259
19946 * tree-vect-slp.c (vect_get_constant_vectors): For
19947 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
19948 one for constant op, and use COND_EXPR for non-constant.
19949
19950 2016-06-06 David Malcolm <dmalcolm@redhat.com>
19951
19952 * Makefile.in (OBJS): Add function-tests.o,
19953 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
19954 selftest-run-tests.o.
19955 (OBJS-libcommon): Add selftest.o.
19956 (OBJS-libcommon-target): Add selftest.o.
19957 (all.internal): Add "selftest".
19958 (all.cross): Likewise.
19959 (selftest): New phony target.
19960 (s-selftest): New target.
19961 (selftest-gdb): New phony target.
19962 (COLLECT2_OBJS): Add selftest.o.
19963 * bitmap.c: Include "selftest.h".
19964 (selftest::test_gc_alloc): New function.
19965 (selftest::test_set_range): New function.
19966 (selftest::test_clear_bit_in_middle): New function.
19967 (selftest::test_copying): New function.
19968 (selftest::test_bitmap_single_bit_set_p): New function.
19969 (selftest::bitmap_c_tests): New function.
19970 * common.opt (fself-test): New.
19971 * diagnostic-show-locus.c: Include "selftest.h".
19972 (make_range): New function.
19973 (test_range_contains_point_for_single_point): New function.
19974 (test_range_contains_point_for_single_line): New function.
19975 (test_range_contains_point_for_multiple_lines): New function.
19976 (assert_eq): New function.
19977 (test_get_line_width_without_trailing_whitespace): New function.
19978 (selftest::diagnostic_show_locus_c_tests): New function.
19979 * et-forest.c: Include "selftest.h".
19980 (selftest::test_single_node): New function.
19981 (selftest::test_simple_tree): New function.
19982 (selftest::test_disconnected_nodes): New function.
19983 (selftest::et_forest_c_tests): New function.
19984 * fold-const.c: Include "selftest.h".
19985 (selftest::assert_binop_folds_to_const): New function.
19986 (selftest::assert_binop_folds_to_nonlvalue): New function.
19987 (selftest::test_arithmetic_folding): New function.
19988 (selftest::fold_const_c_tests): New function.
19989 * function-tests.c: New file.
19990 * gimple.c: Include "selftest.h".
19991 Include "gimple-pretty-print.h".
19992 (selftest::verify_gimple_pp): New function.
19993 (selftest::test_assign_single): New function.
19994 (selftest::test_assign_binop): New function.
19995 (selftest::test_nop_stmt): New function.
19996 (selftest::test_return_stmt): New function.
19997 (selftest::test_return_without_value): New function.
19998 (selftest::gimple_c_tests): New function.
19999 * hash-map-tests.c: New file.
20000 * hash-set-tests.c: New file.
20001 * input.c: Include "selftest.h".
20002 (selftest::assert_loceq): New function.
20003 (selftest::test_accessing_ordinary_linemaps): New function.
20004 (selftest::test_unknown_location): New function.
20005 (selftest::test_builtins): New function.
20006 (selftest::test_reading_source_line): New function.
20007 (selftest::input_c_tests): New function.
20008 * rtl-tests.c: New file.
20009 * selftest-run-tests.c: New file.
20010 * selftest.c: New file.
20011 * selftest.h: New file.
20012 * spellcheck.c: Include "selftest.h".
20013 (selftest::levenshtein_distance_unit_test_oneway): New function,
20014 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
20015 (selftest::levenshtein_distance_unit_test): Likewise.
20016 (selftest::spellcheck_c_tests): Likewise.
20017 * toplev.c: Include selftest.h.
20018 (toplev::run_self_tests): New.
20019 (toplev::main): Handle -fself-test.
20020 * toplev.h (toplev::run_self_tests): New.
20021 * tree.c: Include "selftest.h".
20022 (selftest::test_integer_constants): New function.
20023 (selftest::test_identifiers): New function.
20024 (selftest::test_labels): New function.
20025 (selftest::tree_c_tests): New function.
20026 * tree-cfg.c: Include "selftest.h".
20027 (selftest::push_fndecl): New function.
20028 (selftest::test_linear_chain): New function.
20029 (selftest::test_diamond): New function.
20030 (selftest::test_fully_connected): New function.
20031 (selftest::tree_cfg_c_tests): New function.
20032 * vec.c: Include "selftest.h".
20033 (selftest::safe_push_range): New function.
20034 (selftest::test_quick_push): New function.
20035 (selftest::test_safe_push): New function.
20036 (selftest::test_truncate): New function.
20037 (selftest::test_safe_grow_cleared): New function.
20038 (selftest::test_pop): New function.
20039 (selftest::test_safe_insert): New function.
20040 (selftest::test_ordered_remove): New function.
20041 (selftest::test_unordered_remove): New function.
20042 (selftest::test_block_remove): New function.
20043 (selftest::reverse_cmp): New function.
20044 (selftest::test_qsort): New function.
20045 (selftest::vec_c_tests): New function.c.
20046 * wide-int.cc: Include selftest.h and wide-int-print.h.
20047 (selftest::from_int <wide_int>): New function.
20048 (selftest::from_int <offset_int>): New function.
20049 (selftest::from_int <widest_int>): New function.
20050 (selftest::assert_deceq): New function.
20051 (selftest::assert_hexeq): New function.
20052 (selftest::test_printing <VALUE_TYPE>): New function template.
20053 (selftest::test_ops <VALUE_TYPE>): New function template.
20054 (selftest::test_comparisons <VALUE_TYPE>): New function template.
20055 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
20056 template.
20057 (selftest::wide_int_cc_tests): New function.
20058
20059 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20060
20061 PR middle-end/37780
20062 * ifcvt.c (noce_try_ifelse_collapse): New function.
20063 Declare prototype.
20064 (noce_process_if_block): Call noce_try_ifelse_collapse.
20065 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
20066 (simplify_ternary_operation): Use the above to simplify
20067 conditional CLZ/CTZ expressions.
20068
20069 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20070
20071 PR middle-end/37780
20072 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
20073 define_insn_and_split.
20074
20075 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20076
20077 PR middle-end/37780
20078 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
20079
20080 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
20081
20082 PR c/24414
20083 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
20084 Implicitly clobber memory for basic asm with non-empty assembler
20085 string. Use targetm.md_asm_adjust also here.
20086 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
20087 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
20088 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
20089 non-empty assembler string.
20090 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
20091 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
20092 (decode_asm_operands): Handle basic asm in PARALLEL block.
20093 (extract_insn): Handle basic asm in PARALLEL block.
20094 * doc/extend.texi: Mention new behavior of basic asm.
20095 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
20096 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
20097 branch_needs_nop_p): Use asm_noperands.
20098
20099 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
20100
20101 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
20102 Include the M7 SPARC DFA scheduler.
20103 New attribute v3pipe.
20104 Annotate insns with v3pipe where appropriate.
20105 Define cpu_feature vis4.
20106 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
20107 Add (V8QI "8") to vbits.
20108 Add insns {add,sub}v8qi3
20109 Add insns ss{add,sub}v8qi3
20110 Add insns us{add,sub}{v8qi,v4hi}3
20111 Add insns {min,max}{v8qi,v4hi,v2si}3
20112 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
20113 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
20114 * config/sparc/niagara4.md: Add a comment explaining the
20115 discrepancy between the documented latenty numbers and the
20116 implemented ones.
20117 * config/sparc/niagara7.md: New file.
20118 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
20119 supports SPARC5 and VIS 4.0 instructions.
20120 * configure: Regenerate.
20121 * config.in: Likewise.
20122 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
20123 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
20124 TARGET_CPU_niagara7.
20125 (ASM_CPU64_DEFAULT_SPEC): Likewise.
20126 (CPP_CPU_SPEC): Handle niagara7.
20127 (ASM_CPU_SPEC): Likewise.
20128 * config/sparc/sparc-opts.h (processor_type): Add
20129 PROCESSOR_NIAGARA7.
20130 (mvis4): New option.
20131 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
20132 (AS_NIAGARA7_FLAG): Define.
20133 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
20134 (CPP_CPU64_DEFAULT_SPEC): Likewise.
20135 (CPP_CPU_SPEC): Handle niagara7.
20136 (ASM_CPU_SPEC): Likewise.
20137 * config/sparc/sparc.c (niagara7_costs): Define.
20138 (sparc_option_override): Handle niagara7 and adjust cache-related
20139 parameters with better values for niagara cpus. Also support VIS4.
20140 (sparc32_initialize_trampoline): Likewise.
20141 (sparc_use_sched_lookahead): Likewise.
20142 (sparc_issue_rate): Likewise.
20143 (sparc_register_move_cost): Likewise.
20144 (dump_target_flag_bits): Support VIS4.
20145 (sparc_vis_init_builtins): Likewise.
20146 (sparc_builtins): Likewise.
20147 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
20148 VIS4 4.0.
20149 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
20150 UltraSparc M7.
20151 * config/sparc/sparc.opt (sparc_processor_type): New value
20152 niagara7.
20153 * config/sparc/visintrin.h (__attribute__): Prototypes for the
20154 VIS4 builtins.
20155 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
20156 -mvis4.
20157 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
20158 VIS4 builtins.
20159
20160 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
20161
20162 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
20163
20164 2016-06-06 Richard Biener <rguenther@suse.de>
20165
20166 PR tree-optimization/71398
20167 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
20168 remove edges.
20169
20170 2016-06-05 James Bowman <james.bowman@ftdichip.com>
20171
20172 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
20173 ft32_expand_prolog, ft32_expand_epilogue):
20174 Handle pretend_args.
20175 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
20176 * config/ft32/ft32.md: Add pretend_returner.
20177
20178 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
20179
20180 PR target/71389
20181 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
20182 Copy op1 RTX to avoid invalid sharing.
20183 (ix86_expand_vector_move_misalign): Ditto.
20184
20185 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
20186
20187 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
20188 ATTRIBUTE_UNUSED.
20189
20190 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
20191
20192 * predict.c (predicted_by_loop_heuristics_p): New function.
20193 (predict_iv_comparison): Use it.
20194 (predict_loops): Walk from innermost loops; do not predict edges
20195 leaving multiple loops multiple times; implement
20196 PRED_LOOP_ITERATIONS_MAX heuristics.
20197 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
20198
20199 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
20200
20201 * cfg.c (check_bb_profile): Do not report mismatched profiles when
20202 only edges out of BB are EH edges.
20203
20204 2016-06-04 Martin Sebor <msebor@redhat.com>
20205 Marcin Baczyński <marbacz@gmail.com>
20206
20207 PR c/48116
20208 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
20209 a void expression in a void function.
20210
20211 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
20212
20213 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
20214 aux; dump reasons of decisions.
20215 (should_duplicate_loop_header_p): Likewise.
20216 (do_while_loop_p): Likewise.
20217 (ch_base::copy_headers): Dump asi num insns duplicated.
20218
20219 2016-06-04 Jakub Jelinek <jakub@redhat.com>
20220
20221 PR tree-optimization/71405
20222 * tree-ssa.c (execute_update_addresses_taken): For clobber with
20223 incompatible type, build a new clobber with the right type instead
20224 of building a VIEW_CONVERT_EXPR around it.
20225
20226 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
20227
20228 PR tree-optimization/52171
20229 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
20230 by_pieces_ninsns instead of move_by_pieces_ninsns.
20231
20232 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
20233
20234 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
20235 for reg+reg addressing mode.
20236
20237 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20238
20239 * rs6000-c.c (c/c-tree.h): Add #include.
20240 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
20241 in C++ when found in the base position of vec_ld or vec_st.
20242
20243 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
20244
20245 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
20246 use of profile unless profile status is PROFILE_READ.
20247 * profile.c (compute_branch_probabilities): Set profile status
20248 only after reporting predictor hitrates.
20249
20250 2016-06-03 Joseph Myers <joseph@codesourcery.com>
20251
20252 PR target/71276
20253 PR target/71277
20254 * common.opt (ffp-int-builtin-inexact): New option.
20255 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
20256 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
20257 (ceil@var{m}2): Document dependence on this option.
20258 * ipa-inline-transform.c (inline_call): Handle
20259 flag_fp_int_builtin_inexact.
20260 * ipa-inline.c (can_inline_edge_p): Likewise.
20261 * config/i386/i386.md (rintxf2): Do not test
20262 flag_unsafe_math_optimizations.
20263 (rint<mode>2_frndint): New define_insn.
20264 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
20265 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
20266 for 387 instead of extending and truncating.
20267 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
20268 !flag_trapping_math instead of flag_unsafe_math_optimizations.
20269 Change to frndint<mode>2_<rounding>.
20270 (frndintxf2_<rounding>_i387): Likewise. Change to
20271 frndint<mode>2_<rounding>_i387.
20272 (<rounding_insn>xf2): Likewise.
20273 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
20274 !flag_trapping_math instead of flag_unsafe_math_optimizations for
20275 x87. Test TARGET_ROUND || !flag_trapping_math ||
20276 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
20277 SSE. Use ROUND_NO_EXC in constant operand of
20278 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
20279 for 387 instead of extending and truncating.
20280
20281 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
20282 Julia Koval <julia.koval@intel.com>
20283
20284 PR target/66960
20285 PR target/67630
20286 PR target/67634
20287 PR target/67841
20288 PR target/68037
20289 PR target/68618
20290 PR target/68661
20291 PR target/69575
20292 PR target/69596
20293 PR target/69734
20294 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
20295 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
20296 all registers, except for function return registers if there are
20297 no caller-saved registers.
20298 (ix86_set_func_type): New function.
20299 (ix86_set_current_function): Call ix86_set_func_type to set
20300 no_caller_saved_registers and func_type. Call reinit_regs if
20301 caller-saved registers are changed. Don't allow MPX, SSE, MMX
20302 nor x87 instructions in interrupt handler nor function with
20303 no_caller_saved_registers attribute.
20304 (ix86_function_ok_for_sibcall): Return false if there are no
20305 caller-saved registers.
20306 (type_natural_mode): Don't warn ABI change for MMX in interrupt
20307 handler.
20308 (ix86_function_arg_advance): Skip for callee in interrupt handler.
20309 (ix86_function_arg): Return special arguments in interrupt handler.
20310 (ix86_promote_function_mode): Promote pointer to word_mode only
20311 for normal functions.
20312 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
20313 interrupt handler.
20314 (ix86_epilogue_uses): New function.
20315 (ix86_hard_regno_scratch_ok): Likewise.
20316 (ix86_save_reg): Preserve all registers in interrupt handler
20317 after reload. Preserve all registers, except for function return
20318 registers, if there are no caller-saved registers after reload.
20319 (find_drap_reg): Always use callee-saved register if there are
20320 no caller-saved registers.
20321 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
20322 for interrupt handler.
20323 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
20324 Emit cld instruction if stringops are used in interrupt handler
20325 or interrupt handler isn't a leaf function.
20326 (ix86_expand_epilogue): Generate interrupt return for interrupt
20327 handler and pop the 'ERROR_CODE' off the stack before interrupt
20328 return in exception handler.
20329 (ix86_expand_call): Disallow calling interrupt handler directly.
20330 If there are no caller-saved registers, mark all registers that
20331 are clobbered by the call which returns as clobbered.
20332 (ix86_handle_no_caller_saved_registers_attribute): New function.
20333 (ix86_handle_interrupt_attribute): Likewise.
20334 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
20335 attributes.
20336 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
20337 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
20338 accumulation in interrupt function if stack may be realigned to
20339 avoid DRAP.
20340 (EPILOGUE_USES): New.
20341 (function_type): New enum.
20342 (machine_function): Add func_type and no_caller_saved_registers.
20343 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
20344 (interrupt_return): New pattern.
20345 * doc/extend.texi: Document x86 interrupt and
20346 no_caller_saved_registers attributes.
20347
20348 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
20349
20350 PR tree-optimization/52171
20351 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
20352 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
20353 Look for constant strings. Move some code to emit_block_cmp_hints
20354 and use it.
20355 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
20356 * defaults.h (COMPARE_MAX_PIECES): New macro.
20357 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
20358 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
20359 (clear_by_pieces_1): Don't declare. Move definition before use.
20360 (can_do_by_pieces): New static function.
20361 (can_move_by_pieces): Use it. Return bool.
20362 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
20363 OP. All callers changed. Handle COMPARE_BY_PIECES.
20364 (class pieces_addr); New.
20365 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
20366 pieces_addr::adjust, pieces_addr::increment_address,
20367 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
20368 functions for it.
20369 (class op_by_pieces_d): New.
20370 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
20371 functions for it.
20372 (class move_by_pieces_d, class compare_by_pieces_d,
20373 class store_by_pieces_d): New subclasses of op_by_pieces_d.
20374 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
20375 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
20376 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
20377 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
20378 compare_by_pieces_d::finish_mode): New member functions.
20379 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
20380 functions.
20381 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
20382 (emit_block_cmp_hints): New function.
20383 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
20384 use the newly defined classes.
20385 * expr.h (by_pieces_constfn): New typedef.
20386 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
20387 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
20388 (move_by_pieces_ninsns): Don't declare.
20389 (can_move_by_pieces): Change return value to bool.
20390 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
20391 (compare_by_pieces_branch_ratio): New hook.
20392 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
20393 (by_pieces_ninsns): Declare.
20394 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
20395 COMPARE_BY_PIECES.
20396 (default_compare_by_pieces_branch_ratio): New function.
20397 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
20398 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
20399 * doc/tm.texi: Regenerate.
20400 * tree-ssa-strlen.c: Include "builtins.h".
20401 (handle_builtin_memcmp): New static function.
20402 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
20403 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
20404
20405 2016-06-03 Alan Hayward <alan.hayward@arm.com>
20406
20407 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
20408 relevant stmts which are simple and invariant.
20409 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
20410 instead of simple and invariant
20411
20412 2016-06-03 Alan Hayward <alan.hayward@arm.com>
20413
20414 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
20415 (vectorizable_reduction): Check for new relevant state.
20416 (vectorizable_live_operation): vectorize live stmts using
20417 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
20418 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
20419 (vect_stmt_relevant_p): Check for stmts which are only used live.
20420 (process_use): Use of a stmt does not inherit it's live value.
20421 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
20422 (vect_analyze_stmt): Check for new relevant state.
20423 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
20424 outside the loop, but not inside it.
20425
20426 2016-06-03 Alan Hayward <alan.hayward@arm.com>
20427
20428 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
20429 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
20430 (vect_get_vec_def_for_operand): Split out code.
20431
20432 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
20433
20434 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
20435
20436 2016-06-03 Alan Hayward <alan.hayward@arm.com>
20437
20438 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
20439
20440 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20441
20442 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
20443
20444 2016-06-03 Jakub Jelinek <jakub@redhat.com>
20445
20446 PR middle-end/71387
20447 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
20448 to noreturn e->callee->decl that has void return type and void
20449 arguments, adjust gimple_call_fntype and remove lhs even if it had
20450 previously addressable type.
20451
20452 2016-06-02 Jeff Law <law@redhat.com>
20453
20454 PR tree-optimization/71328
20455 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
20456 error when checking for a jump back onto the copied path.
20457
20458 2016-06-02 David Malcolm <dmalcolm@redhat.com>
20459
20460 * config/microblaze/microblaze.c (get_branch_target): Add return
20461 NULL_RTX for the non-CALL_P case.
20462 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
20463 (insert_wic): Remove unused local "j".
20464
20465 2016-06-02 Martin Liska <mliska@suse.cz>
20466
20467 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
20468
20469 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
20470 Julia Koval <julia.koval@intel.com>
20471
20472 * function.c (assign_parm_setup_stack): Force source into a
20473 register if needed.
20474 * target.def (function_incoming_arg): Update documentation to
20475 allow arbitrary address computation based on hard register.
20476 * doc/tm.texi: Regenerated.
20477
20478 2016-06-02 Martin Liska <mliska@suse.cz>
20479
20480 * predict.c (combine_predictions_for_bb): Fix first match in
20481 cases where a first predictor contains more than one occurence
20482 in list of predictors. Take the best value in such case.
20483
20484 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20485
20486 PR rtl-optimization/71295
20487 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
20488 offset would go over the size of the inner mode reject it.
20489
20490 2016-06-02 Jakub Jelinek <jakub@redhat.com>
20491
20492 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
20493 x=x,x and v=v,m instead of x=x,m.
20494
20495 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
20496 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
20497 alternative to v=rm,C.
20498
20499 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
20500 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
20501 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
20502 instead of vex for the last two above mentioned alternatives.
20503
20504 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20505
20506 PR target/70830
20507 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
20508
20509 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
20510
20511 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
20512
20513 2016-06-01 David Malcolm <dmalcolm@redhat.com>
20514
20515 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
20516 from int to unsigned.
20517
20518 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
20519
20520 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
20521 alternatives, eliminating preferred register class. Add support
20522 for the MTVSRDD instruction in ISA 3.0.
20523 (vsx_splat_v4si_internal): Use splat_input_operand instead of
20524 reg_or_indexed_operand.
20525 (vsx_splat_v4sf_internal): Likewise.
20526
20527 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
20528
20529 PR target/71186
20530 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
20531 for loading up all 0's or all 1's.
20532
20533 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
20534
20535 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
20536
20537 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
20538
20539 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
20540 extension.
20541 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
20542 * gcc.c (set_source_date_epoch_envvar): New function, sets
20543 the SOURCE_DATE_EPOCH environment variable to the current time.
20544
20545 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
20546
20547 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
20548 the factor for live Phi nodes.
20549
20550 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
20551
20552 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
20553 * tree-parloops.c (parallelize_loops): likewise.
20554 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
20555 tree_unswitch_outer_loop): likewise.
20556
20557 2016-06-01 Jakub Jelinek <jakub@redhat.com>
20558
20559 PR middle-end/71371
20560 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
20561 around creation of the temporary.
20562
20563 2016-06-01 Richard Biener <rguenther@suse.de>
20564
20565 PR tree-optimization/71366
20566 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
20567 (unloop_loops): Move removing edges here ...
20568 (try_unroll_loop_completely): ... from here.
20569 (try_peel_loop): ... and here.
20570 (tree_unroll_loops_completely_1): Track parent loops via
20571 bitmap of header BBs.
20572 (tree_unroll_loops_completely): Adjust for that.
20573
20574 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
20575
20576 * config/rs6000/altivec.h (vec_slv): New macro.
20577 (vec_srv): New macro.
20578 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
20579 (UNSPEC_VSRV): New value.
20580 (vslv): New insn.
20581 (vsrv): New insn.
20582 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
20583 (vsrv): New builtin definition.
20584 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
20585 define argument types for new builtin.
20586 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
20587 new builtin.
20588 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
20589 functions.
20590
20591 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
20592 Jocelyn Mayer <l_indien@magic.fr>
20593
20594 PR target/67310
20595 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
20596 detect processor family for signature_CENTAUR_ebx.
20597 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
20598 signature_CENTAUR_ebx.
20599 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
20600 <default>: Pass x86-64 for has_longmode.
20601
20602 2016-06-01 Nathan Sidwell <nathan@acm.org>
20603
20604 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
20605 undefined weak.
20606
20607 2016-06-01 Richard Biener <rguenther@suse.de>
20608
20609 PR tree-optimization/71261
20610 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
20611 of stmts successfully put in the bool pattern. Remove
20612 single-use restriction.
20613 (adjust_bool_pattern_cast): Add cast at the use site via the
20614 pattern def sequence.
20615 (adjust_bool_pattern): Remove recursion, maintain a hash-map
20616 of patterned defs. Use the pattern def seqence instead of
20617 multiple independent patterns.
20618 (sort_after_uid): New qsort compare function.
20619 (adjust_bool_stmts): New function to process stmts in the bool
20620 pattern in IL order.
20621 (vect_recog_bool_pattern): Adjust.
20622 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
20623 (ifcvt_walk_pattern_tree): Likewise.
20624 (stmt_is_root_of_bool_pattern): Likewise.
20625 (ifcvt_repair_bool_pattern): Likewise.
20626 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
20627
20628 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
20629
20630 * loop-unroll.c (decide_unroll_constant_iterations,
20631 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
20632 likely upper bounds.
20633 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
20634
20635 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
20636
20637 * tree-core.h (enum omp_clause_code): Remove
20638 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
20639
20640 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20641
20642 * config/arm/sync.md (arm_store_exclusive<mode>):
20643 Use 'H' output modifier on operands[2] rather than creating a new
20644 entry in out-of-bounds memory of the operands array.
20645 (arm_store_release_exclusivedi): Likewise.
20646
20647 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20648
20649 * config/arm/arm.c (arm_fusion_enabled_p): New function.
20650 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
20651 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
20652 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
20653
20654 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
20655
20656 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
20657 into account live statements for mask producers.
20658
20659 2016-06-01 Richard Biener <rguenther@suse.de>
20660
20661 PR tree-optimization/71311
20662 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
20663 restrict to non-INTEGER_CST @0.
20664
20665 2016-06-01 Richard Biener <rguenther@suse.de>
20666
20667 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
20668 (relational patterns): Use :c to avoid pattern duplications.
20669
20670 2016-06-01 Richard Biener <rguenther@suse.de>
20671
20672 * genmatch.c (comparison_code_p): New predicate.
20673 (swap_tree_comparison): New function.
20674 (commutate): Add for_vec parameter to append new for entries.
20675 Support commutating relational operators by swapping it alongside
20676 operands.
20677 (lower_commutative): Adjust.
20678 (dt_simplify::gen): Do not pass artificial operators to gen
20679 functions.
20680 (decision_tree::gen): Do not add artificial operators as parameters.
20681 (parser::parse_expr): Verify operator commutativity when :c is
20682 applied. Allow :C to override this.
20683 * match.pd: Adjust patterns to use :C instead of :c where required.
20684
20685 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
20686
20687 PR tree-optimization/71077
20688 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
20689 the combining step, use boolean_false_node and boolean_true_node
20690 as the designated false/true return values.
20691
20692 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
20693
20694 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
20695 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
20696 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
20697 PRED_LOOP_EXIT.
20698
20699 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
20700
20701 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
20702 of flags impliying the register renaming.
20703 * toplev.c (process_options): Do not imply flag_rename_registers with
20704 loop peeling.
20705
20706 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
20707
20708 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
20709 default implementation.
20710
20711 2016-05-31 Nathan Sidwell <nathan@acm.org>
20712
20713 * dwarf2out.c (cur_line_info_table): Add GTY marker.
20714
20715 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
20716
20717 * config/sh/constraints.md (b): Remove constraint.
20718 * config/sh/predicates.md (arith_reg_operand): Remove
20719 TARGET_REGISTER_P.
20720 * config/sh/sh-modes.def (PDI): Remove.
20721 * config/sh/sh.c (sh_target_reg_class,
20722 sh_optimize_target_register_callee_saved): Remove functions.
20723 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
20724 (sh_expand_epilogue): Update comment.
20725 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
20726 sh_secondary_reload): Remove TARGET_REGS related code.
20727 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
20728 TARGET_REGISTER_P): Remove macros.
20729 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
20730 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
20731 TR1_REG, TR2_REG): Remove constants.
20732 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
20733
20734 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
20735
20736 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
20737 define_expand patterns.
20738 (adddi3_compact): Rename to adddi3.
20739 (subdi3_compact): Rename to subdi3.
20740 (*negdi2): Rename to negdi2.
20741 (*abs<mode>2): Rename to abs<mode>2.
20742
20743 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
20744
20745 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
20746 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
20747 (atomic_sub_fetchsi): ... this new pattern.
20748 (mvtc): Add CC_REG clobber.
20749
20750 2016-05-31 Marek Polacek <polacek@redhat.com>
20751
20752 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
20753
20754 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20755
20756 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
20757 aarch64_fusion_enabled_p to check for fusion capabilities.
20758
20759 2016-05-31 Richard Biener <rguenther@suse.de>
20760
20761 PR tree-optimization/71352
20762 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
20763 minus one and a negate.
20764
20765 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20766
20767 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
20768 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
20769 Delete prototype.
20770 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
20771 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
20772 Remove use of aarch64_simd_attr_length_move, set length attribute
20773 directly.
20774 (*aarch64_be_movoi): Likewise.
20775 (*aarch64_be_movci): Likewise.
20776 (*aarch64_be_movxi): Likewise.
20777
20778 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
20779
20780 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
20781 It no longer does that.
20782 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
20783
20784 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
20785
20786 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
20787 attribute __unused__.
20788
20789 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
20790
20791 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
20792 * config/arm/arm.c (arm_arch_thumb1): Define.
20793 (arm_option_override): Initialize arm_arch_thumb1.
20794 * config/arm/arm.h (arm_arch_thumb1): Declare.
20795 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
20796 support Thumb-1 ISA.
20797
20798 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
20799
20800 PR target/71346
20801 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
20802 `Yv' for scalar operand.
20803
20804 2016-05-31 Tom de Vries <tom@codesourcery.com>
20805
20806 PR tree-optimization/69068
20807 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
20808 phis with more than two args.
20809
20810 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
20811
20812 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
20813 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
20814 target.
20815
20816 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
20817
20818 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
20819 tune_64.
20820 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
20821 support on SPARC.
20822 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
20823 cpu_32, cpu_64, tune_32 and tune_64.
20824 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
20825
20826 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
20827
20828 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
20829
20830 2016-05-30 Andi Kleen <ak@linux.intel.com>
20831
20832 * auto-profile.c (read_profile): Replace asserts with errors
20833 when file does not exist.
20834 * gcov-io.c (gcov_read_words): Dito.
20835
20836 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20837
20838 * tree-cfg.c (print_loop): Print likely upper bounds.
20839
20840 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20841
20842 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
20843 * opts.c (default_options): Enable peel loops at -O3.
20844 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
20845 (try_peel_loop): Do not re-peel already peeled loops;
20846 use likely upper bounds; fix profile updating.
20847 (pass_complete_unroll::execute): Initialize peeled_loops.
20848
20849 2016-05-30 Martin Liska <mliska@suse.cz>
20850
20851 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
20852 computed costs by frequency of BB they belong to.
20853 (get_scaled_computation_cost_at): New function.
20854
20855 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
20856 Marc Glisse <marc.glisse@inria.fr>
20857
20858 PR tree-optimization/71289
20859 * match.pd (-1 / B < A, A > -1 / B): New transformations.
20860
20861 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20862
20863 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
20864
20865 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20866
20867 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
20868 for peeled copies; avoid underflow when updating estimates; correctly
20869 scale loop profile.
20870
20871 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
20872
20873 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
20874 r236875. Corrected oe3 to oe2 as obvious.
20875
20876 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
20877
20878 PR middle-end/71269
20879 PR middle-end/71252
20880 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
20881 that inserted stmt will not dominate stmts that defines its operand.
20882 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
20883 (rewrite_expr_tree_parallel): Likewise.
20884
20885 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
20886
20887 PR middle-end/71252
20888 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
20889 all fields including stmt_to_insert are swapped.
20890
20891 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20892
20893 * predict.h (force_edge_cold): Declare.
20894 * predict.c (force_edge_cold): New function.
20895 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
20896 updating.
20897 (canonicalize_loop_induction_variables): Fix formating.
20898
20899 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
20900
20901 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
20902 (visium_expand_copysign): Use gen_int_mode directly.
20903 (visium_compute_frame_size): Minor tweaks.
20904
20905 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20906
20907 * tree-vect-loop.c (vect_analyze_loop_2): Use
20908 likely_max_stmt_executions_int.
20909
20910 2016-05-30 Tom de Vries <tom@codesourcery.com>
20911
20912 PR tree-optimization/69067
20913 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
20914
20915 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
20916
20917 PR target/71245
20918 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
20919 New peepholes to remove unneeded fild/fistp pairs.
20920 (define_peephole2 atomic_loaddi_fpu): Ditto.
20921
20922 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20923
20924 * predict.c (maybe_hot_frequency_p): Avoid division.
20925
20926 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
20927
20928 * doc/install.texi: Use https for shop.fsf.org.
20929
20930 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20931
20932 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
20933 likely_max_stmt_executions_int.
20934
20935 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20936
20937 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
20938 likely_max_stmt_executions_int.
20939
20940 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20941
20942 * profile.c (compute_branch_probabilities): Do not report hitrates
20943 here.
20944 (branch_prob): Report hitrates here.
20945 * predict.c (gimple_predict_edge): Do not assert profile status;
20946 fix formatting issues.
20947
20948 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20949
20950 * predict.c (edge_predicted_by_p): New function.
20951 (predict_paths_for_bb): Do not put multiple predictions of the same type
20952 on one edge.
20953
20954 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20955
20956 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
20957 commit.
20958
20959 2016-05-28 Alan Modra <amodra@gmail.com>
20960
20961 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
20962
20963 2016-05-28 Alan Modra <amodra@gmail.com>
20964
20965 PR rtl-optimization/71275
20966 * ira.c (ira): Free dominance info.
20967
20968 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
20969
20970 * doc/sourcebuild.texi: New address for upstream Go repository.
20971
20972 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
20973
20974 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
20975 (TARGET_ARM_V7M): Likewise.
20976
20977 2016-05-26 Jeff Law <law@redhat.com>
20978
20979 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
20980 (thread_across_edge): Remove calls to find_jump_threads_backwards.
20981 * passes.def: Add jump threading passes before DOM/VRP.
20982 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
20983 argument to a basic block from an edge. Remove tests which are
20984 handled elsewhere.
20985 (pass_data_thread_jumps, class pass_thread_jumps): New.
20986 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
20987 (make_pass_thread_jumps): Likewise.
20988 * tree-pass.h (make_pass_thread_jumps): Declare.
20989
20990 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
20991
20992 * config/visium/visium-protos.h (split_double_move): Rename into...
20993 (visium_split_double_move): ...this.
20994 (visium_split_double_add): Declare.
20995 * config/visium/visium.c (split_double_move): Rename into...
20996 (visium_split_double_move): ...this.
20997 (visium_split_double_add): New function.
20998 (visium_expand_copysign): Renumber operands for consistency.
20999 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
21000 (DFmode move splitter): Likewise.
21001 (*addi3_insn): Split by means of visium_split_double_add.
21002 (*adddi3_insn_flags): Delete.
21003 (*plus_plus_sltu<subst_arith>): New insn.
21004 (*subdi3_insn): Split by means of visium_split_double_add.
21005 (subdi3_insn_flags): Delete.
21006 (*minus_minus_sltu<subst_arith>): New insn.
21007 (*negdi2_insn): Split by means of visium_split_double_add.
21008 (*negdi2_insn_flags): Delete.
21009
21010 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
21011
21012 * configure.ac: Treat a --with-headers option without argument
21013 the same as the default (i.e. consult sys-include directory).
21014 * configure: Regenerate.
21015
21016 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21017
21018 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
21019 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
21020 prototype.
21021 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
21022 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
21023
21024 2016-05-27 Jiong Wang <jiong.wang@arm.com>
21025
21026 PR target/63596
21027 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
21028 tree-stdarg analysis results.
21029 (aarch64_setup_incoming_varargs): Likewise.
21030
21031 2016-05-27 Jiong Wang <jiong.wang@arm.com>
21032
21033 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
21034 va_list_gpr_counter_field and va_list_fpr_counter_field.
21035
21036 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
21037
21038 PR67609
21039 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
21040 * config/aarch64/aarch64.c
21041 (aarch64_cannot_change_mode_class): Remove function.
21042 * config/aarch64/aarch64-protos.h
21043 (aarch64_cannot_change_mode_class): Remove.
21044
21045 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
21046
21047 * cfgloop.c (record_niter_bound): Record likely upper bounds.
21048 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
21049 get_likely_max_loop_iterations_int): New.
21050 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
21051 any_likely_upper_bound.
21052 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
21053 Declare.
21054 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
21055 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
21056 upper bound.
21057 (unroll_loop_constant_iterations): Likewise.
21058 (unroll_loop_runtime_iterations): Likewise.
21059 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
21060 * lto-streamer-out.c (output_cfg): Likewise.
21061 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
21062 bounds.
21063 (canonicalize_loop_induction_variables): Dump likely upper bounds.
21064 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
21065 (likely_max_loop_iterations): New.
21066 (likely_max_loop_iterations_int): New.
21067 (likely_max_stmt_executions): New.
21068 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
21069 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
21070 likely_max_stmt_executions): Declare.
21071
21072 2016-05-27 Marek Polacek <polacek@redhat.com>
21073
21074 PR middle-end/71308
21075 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
21076
21077 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21078
21079 * config/s390/s390.md (2x risbg splitters): Use
21080 reg_overlap_mentioned_p instead of rtx_equal_p.
21081
21082 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
21083
21084 * combine.c (make_compound_operation): Take known zero bits into
21085 account when checking for possible zero_extend.
21086
21087 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21088
21089 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
21090 Use const_int_operand for operand 2 predicate. Simplify expand code
21091 as a result.
21092
21093 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
21094
21095 PR middle-end/71279
21096 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
21097 into comparison.
21098
21099 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21100
21101 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
21102 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
21103 that returns CC_SESWPmode and CC_ZESWPmode.
21104 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
21105 and CC_SESWPmode.
21106 (aarch64_rtx_costs): Likewise.
21107
21108 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
21109
21110 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
21111 for ISA 3.0 min/max support.
21112 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
21113 conditional move support.
21114 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
21115 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
21116 available.
21117 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
21118 conditional moves where the comparison type is different from move
21119 type.
21120 (fp_minmax): New code iterator for smin/smax.
21121 (minmax): New code attributes for min/max.
21122 (SMINMAX): Likewise.
21123 (smax<mode>3): Combine min, max insns into one insn using the
21124 fp_minmax code iterator. Add support for ISA 3.0 min/max
21125 instructions that don't need -ffast-math.
21126 (s<minmax><mode>3): Likewise.
21127 (smax<mode>3_vsx): Likewise.
21128 (smin<mode>3): Likewise.
21129 (s<minmax><mode>3_vsx): Likewise.
21130 (smin<mode>3_vsx): Likewise.
21131 (pre-VSX min/max splitters): Likewise.
21132 (s<minmax><mode>3_fpr): Likewise.
21133 (movsfcc): Rewrite floating point conditional moves to combine
21134 SFmode/DFmode into a single insn.
21135 (mov<mode>cc): Likewise.
21136 (movdfcc): Likewise.
21137 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
21138 SFDF2 iterators to handle all combinations.
21139 (fseldfsf4): Likewise.
21140 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
21141 (fseldfdf4): Likewise.
21142 (fselsfdf4): Likewise.
21143 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
21144 comparison instructions that set a 0/-1 mask, and use it for
21145 floating point conditional move via XXSEL.
21146 (fpmask<mode>): Likewise.
21147 (xxsel<mode>): Likewise.
21148 * config/rs6000/predicates.md (min_max_operator): Delete, no
21149 longer used.
21150 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
21151 instructions that generate a 0/-1 mask for use with XXSEL.
21152 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
21153 say whether floating point min/max is available, either through
21154 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
21155 (TARGET_MINMAX_DF): Likewise.
21156
21157 2016-05-27 Alan Modra <amodra@gmail.com>
21158
21159 PR rtl-optimization/71275
21160 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
21161 for update_equiv_regs and combine_and_move_insns.
21162
21163 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
21164
21165 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
21166 if_then_else or cond RTXes to calculate attribute value.
21167 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
21168 <attr "length_immediate>: Ditto.
21169 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
21170 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
21171 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
21172 <attr "type">: Ditto.
21173 <attr "prefix_data16">: Ditto.
21174 <attr "prefix_extra">: Ditto.
21175 <attr "length_immediate">: Ditto.
21176 <attr "prefix">: Ditto.
21177 (vec_set<mode>_0) <attr "isa">: Ditto.
21178 <attr "prefix_extra">: Ditto.
21179 <attr "length_immediate">: Ditto.
21180 <attr "prefix">: Ditto.
21181 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
21182 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
21183 (sse2_storelpd) <attr "prefix_data16">: Ditto.
21184 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
21185 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
21186 <attr "length_immediate">: Ditto.
21187 <attr "prefix">: Ditto.
21188 (sse2_movsd) <attr "length_immediate">: Ditto.
21189 <attr "prefix">: Ditto.
21190 (vec_concatv2df) <attr "isa">: Ditto.
21191 <attr "prefix">: Ditto.
21192 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
21193 (*vec_extractv2di_1) <attr "isa">: Ditto.
21194 <attr "type">: Ditto.
21195 <attr "length_immediate">: Ditto.
21196 <attr "prefix_rex">: Ditto.
21197 <attr "prefix_extra">: Ditto.
21198 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
21199 <attr "prefix_extra">: Ditto.
21200 <attr "length_immediate">: Ditto.
21201 (vec_concatv2di) <attr "isa">: Ditto.
21202 <attr "prefix_extra">: Ditto.
21203 <attr "length_immediate">: Ditto.
21204 <attr "prefix">: Ditto.
21205
21206 2016-05-26 Martin Liska <mliska@suse.cz>
21207
21208 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
21209 function.
21210 (operator+): Likewise.
21211 (operator-): Likewise.
21212 (comp_cost::operator+=): Likewise.
21213 (comp_cost::operator-=): Likewise.
21214 (comp_cost::operator/=): Likewise.
21215 (comp_cost::operator*=): Likewise.
21216 (operator<): Likewise.
21217 (operator==): Likewise.
21218 (operator<=): Likewise.
21219 (new_cost): Remove.
21220 (infinite_cost_p): Likewise.
21221 (add_costs): Likewise.
21222 (sub_costs): Likewise.
21223 (compare_costs): Likewise.
21224 (set_group_iv_cost): Use the newly introduced functions.
21225 (get_address_cost): Likewise.
21226 (get_shiftadd_cost): Likewise.
21227 (force_expr_to_var_cost): Likewise.
21228 (split_address_cost): Likewise.
21229 (ptr_difference_cost): Likewise.
21230 (difference_cost): Likewise.
21231 (get_computation_cost_at): Likewise.
21232 (determine_group_iv_cost_generic): Likewise.
21233 (determine_group_iv_cost_address): Likewise.
21234 (determine_group_iv_cost_cond): Likewise.
21235 (autoinc_possible_for_pair): Likewise.
21236 (determine_group_iv_costs): Likewise.
21237 (cheaper_cost_pair): Likewise.
21238 (iv_ca_recount_cost): Likewise.
21239 (iv_ca_set_no_cp): Likewise.
21240 (iv_ca_set_cp): Likewise.
21241 (iv_ca_cost): Likewise.
21242 (iv_ca_new): Likewise.
21243 (iv_ca_dump): Likewise.
21244 (iv_ca_narrow): Likewise.
21245 (iv_ca_prune): Likewise.
21246 (iv_ca_replace): Likewise.
21247 (try_add_cand_for): Likewise.
21248 (try_improve_iv_set): Likewise.
21249 (find_optimal_iv_set): Likewise.
21250
21251 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
21252
21253 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
21254 that internal functions will clobber all caller-saved registers.
21255
21256 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
21257
21258 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
21259 Return a better case_values_threshold when optimizing.
21260
21261 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
21262
21263 * config/aarch64/aarch64-simd.md (aarch64_combinez):
21264 Add ? to integer variant.
21265 (aarch64_combinez_be): Likewise.
21266
21267 2016-05-26 Jakub Jelinek <jakub@redhat.com>
21268
21269 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
21270 instead of x constraint.
21271 (vcvtps2ph256<mask_name>): Likewise.
21272
21273 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
21274 alternative. Formatting fix.
21275
21276 * config/i386/sse.md
21277 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
21278 to ...
21279 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
21280 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
21281 maybe_evex prefix instead of vex.
21282 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
21283 EXT_REX_SSE_REG_P (op0) case in the splitter.
21284
21285 2016-05-25 Jeff Law <law@redhat.com>
21286
21287 PR tree-optimization/71272
21288 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
21289 Update comments. Add test for empty path.
21290
21291 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
21292
21293 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
21294 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
21295 special case builtin.
21296 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
21297 code for ALTIVEC_BUILTIN_VEC_CMPNE.
21298 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
21299 for __builtin_vec_cmpne.
21300
21301 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
21302
21303 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
21304 redundant test and bail out if the type of the new operand is not
21305 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
21306
21307 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
21308
21309 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
21310 (x_ix86_target_flags_explicit): Remove.
21311 * config/i386/i386.c (ix86_function_specific_save): Do not copy
21312 x_ix86_target_flags_explicit.
21313 (ix86_function_specific_restore): Ditto.
21314
21315 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
21316 H.J. Lu <hongjiu.lu@intel.com>
21317
21318 PR target/70738
21319 * common/config/i386/i386-common.c
21320 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
21321 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
21322 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
21323 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
21324 (-mgeneral-regs-only): Add new option.
21325 * config/i386/i386.c (ix86_option_override_internal): Don't enable
21326 x87 instructions if only general registers are allowed.
21327 (ix86_target_string): Add ix86_flags argument. Handle additional
21328 flags options through ix86_flags argument. Update all callers.
21329 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
21330
21331 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21332
21333 PR rtl-optimization/66940
21334 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
21335 decrementing desired_val will not overflow before performing these
21336 operations.
21337
21338 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
21339
21340 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
21341 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
21342 * config/i386/i386.c (enum ix86_builtins): Add
21343 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
21344 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
21345 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
21346 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
21347 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
21348 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
21349 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
21350 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
21351 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
21352 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
21353 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
21354 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
21355 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
21356 __builtin_ia32_cvtps2dq512_mask.
21357 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
21358 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
21359 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
21360 * config/i386/sse.md
21361 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
21362 Rename to ...
21363 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
21364 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
21365 to ...
21366 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
21367 (avx512f_vec_pack_sfix_v8df): New define_expand.
21368 (avx512f_roundpd512): Rename to ...
21369 (avx512f_round<castmode>512): ... this. Change iterator.
21370 (avx512f_roundps512_sfix): New define_expand.
21371 (round<mode>2_sfix): Change iterator.
21372
21373 2016-05-25 Nick Clifton <nickc@redhat.com>
21374
21375 * config/msp430/msp430.c (msp430_attr): Produce an error if a
21376 static interrupt handler is detected.
21377 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
21378 default linker script.
21379 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
21380 the low part of a symbolic pointer.
21381
21382 2016-05-25 Richard Biener <rguenther@suse.de>
21383
21384 PR tree-optimization/71261
21385 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
21386 interesting stmt instead of immediate uses when looking
21387 for the use operand to replace.
21388
21389 2016-05-25 Martin Liska <mliska@suse.cz>
21390
21391 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
21392
21393 2016-05-25 Richard Biener <rguenther@suse.de>
21394
21395 PR tree-optimization/71264
21396 * tree-vect-stmts.c (vect_init_vector): Properly deal with
21397 vector type val.
21398
21399 2016-05-25 Martin Liska <mliska@suse.cz>
21400
21401 PR tree-optimization/71239
21402 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
21403 if DECL_SIZE is NULL.
21404
21405 2016-05-25 Richard Biener <rguenther@suse.de>
21406
21407 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
21408 * tree-if-conv.c (pass_data_if_conversion): Use it.
21409
21410 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
21411
21412 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
21413 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
21414 * varpool.c (varpool_node::get_availability): Likewise.
21415
21416 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
21417
21418 * config/rs6000/altivec.md (VNEG iterator): New iterator for
21419 VNEGW/VNEGD instructions.
21420 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
21421 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
21422 support for ISA 3.0 VNEGW/VNEGD instructions.
21423
21424 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
21425
21426 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
21427 pointers inside OACC_DATA regions.
21428 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
21429 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
21430 (gimplify_adjust_omp_clauses): Fix typo in comment.
21431
21432 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
21433
21434 * config/rs6000/altivec.md (VParity): New mode iterator for vector
21435 parity built-in functions.
21436 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
21437 zeros.
21438 (p9v_parity<mode>2): Likewise.
21439 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
21440 parity.
21441 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
21442 (parity<mode>2): ISA 3.0 expander for vector parity.
21443 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
21444 power9 built-ins.
21445 (BU_P9_64BIT_MISC_0): Likewise.
21446 (BU_P9_MISC_0): Likewise.
21447 (BU_P9V_AV_1): Likewise.
21448 (BU_P9V_AV_2): Likewise.
21449 (BU_P9V_AV_3): Likewise.
21450 (BU_P9V_AV_P): Likewise.
21451 (BU_P9V_VSX_1): Likewise.
21452 (BU_P9V_OVERLOAD_1): Likewise.
21453 (BU_P9V_OVERLOAD_2): Likewise.
21454 (BU_P9V_OVERLOAD_3): Likewise.
21455 (VCTZB): Add vector count trailing zeros support.
21456 (VCTZH): Likewise.
21457 (VCTZW): Likewise.
21458 (VCTZD): Likewise.
21459 (VPRTYBD): Add vector parity support.
21460 (VPRTYBQ): Likewise.
21461 (VPRTYBW): Likewise.
21462 (VCTZ): Add overloaded vector count trailing zeros support.
21463 (VPRTYB): Add overloaded vector parity support.
21464 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21465 overloaded vector count trailing zeros and parity instructions.
21466 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
21467 vector parity support.
21468 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
21469 trailing zeros support.
21470 (vec_cntlz): Likewise.
21471 (vec_vctzb): Likewise.
21472 (vec_vctzd): Likewise.
21473 (vec_vctzh): Likewise.
21474 (vec_vctzw): Likewise.
21475 (vec_vprtyb): Add ISA 3.0 vector parity support.
21476 (vec_vprtybd): Likewise.
21477 (vec_vprtybw): Likewise.
21478 (vec_vprtybq): Likewise.
21479 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
21480 the ISA 3.0 vector count trailing zeros and vector parity built-in
21481 functions.
21482
21483 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
21484
21485 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
21486 when there is stmt_to_insert.
21487
21488 2016-05-24 Martin Sebor <msebor@redhat.com>
21489
21490 PR c++/71147
21491 * tree.h (complete_or_array_type_p): New inline function.
21492
21493 2016-05-24 Jakub Jelinek <jakub@redhat.com>
21494
21495 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
21496 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
21497 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
21498
21499 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
21500 Limit 1st alternative to noavx isa, split 2nd alternative into one
21501 noavx and one avx alternative, use *x and Bm in the former and
21502 x and m in the latter.
21503
21504 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
21505 of sse4 for the first alternative, drop %v from the template
21506 and d operand modifier. Split second alternative into one sse4_noavx
21507 and one avx alternative, use *x instead of *v in the former and v
21508 instead of *v in the latter.
21509 (*sse4_1_extractps): Use noavx isa instead of * for the first
21510 alternative, drop %v from the template. Split second alternative into
21511 one noavx and one avx alternative, use *x instead of *v in the
21512 former and v instead of *v in the latter.
21513 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
21514 with noavx and the last one with avx.
21515 (sse4_1_phminposuw): Guard first alternative with noavx isa,
21516 split the second one into one noavx and one avx alternative,
21517 use *x and Bm in the former and x and m in the latter one.
21518 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
21519 alternatives.
21520
21521 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
21522 first two alternatives to noavx, use *x instead of *v in the second
21523 one, add avx alternative without *.
21524 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
21525 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
21526 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
21527
21528 2016-05-24 Jeff Law <law@redhat.com>
21529
21530 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
21531 New function, extracted from...
21532 (fsm_find_control_statement_thread_paths): Here. Use the new function.
21533 Allow simple copies and constant initializations in the SSA chain.
21534
21535 2016-05-24 Marek Polacek <polacek@redhat.com>
21536
21537 PR c/71249
21538 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
21539 scope.
21540
21541 2016-05-24 Jakub Jelinek <jakub@redhat.com>
21542
21543 PR c++/71257
21544 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
21545 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
21546 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
21547 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
21548 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
21549
21550 2016-05-24 Richard Biener <rguenther@suse.de>
21551
21552 PR tree-optimization/71240
21553 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
21554 has integral type.
21555
21556 2016-05-24 Richard Biener <rguenther@suse.de>
21557
21558 PR tree-optimization/71230
21559 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
21560
21561 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
21562
21563 * tree-vectorizer.h (vectorizable_comparison): Delete.
21564 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
21565 PURE_SLP_STMT check.
21566 * tree-vect-stmts.c (vectorizable_call): Likewise.
21567 (vectorizable_simd_clone_call): Likewise.
21568 (vectorizable_conversion): Likewise.
21569 (vectorizable_assignment): Likewise.
21570 (vectorizable_shift): Likewise.
21571 (vectorizable_operation): Likewise.
21572 (vectorizable_load): Likewise.
21573 (vectorizable_condition): Likewise.
21574 (vectorizable_store): Likewise. Assert that we don't have
21575 hybrid SLP.
21576 (vectorizable_comparison): Make static. Remove redundant
21577 PURE_SLP_STMT check.
21578 (vect_transform_stmt): Assert that we always have an slp_node
21579 if PURE_SLP_STMT.
21580
21581 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21582
21583 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
21584 operands[2] against 1 with comparison against CONST1_RTX.
21585 (<shift>di3_neon): Likewise.
21586 * config/arm/predicates.md (const0_operand): Replace with comparison
21587 against CONST0_RTX.
21588
21589 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21590
21591 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
21592 operands[2] against 1 with comparison against CONST1_RTX.
21593 (ashrdi3): Likewise.
21594 (lshrdi3): Likewise.
21595 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
21596 UINTVAL.
21597 (ashrsi3): Likewise.
21598 (lshrsi3): Likewise.
21599 (rotrsi3): Likewise.
21600 (define_split above *compareqi_eq0): Likewise.
21601 (define_split above "prologue"): Likewise.
21602 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
21603 * config/arm/predicates.md (shift_operator): Likewise.
21604 (shift_nomul_operator): Likewise.
21605 (sat_shift_operator): Likewise.
21606 (thumb1_cmp_operand): Likewise.
21607 (const_neon_scalar_shift_amount_operand): Replace manual range
21608 check with IN_RANGE.
21609 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
21610 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
21611
21612 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21613
21614 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
21615 with HOST_WIDE_INT_1.
21616 (insv): Likewise.
21617 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
21618 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
21619 (arm_canonicalize_comparison): Likewise.
21620 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
21621 HOST_WIDE_INT_1.
21622 (thumb1_size_rtx_costs): Likewise.
21623 (vfp_const_double_index): Replace cast of 1 to unsigned
21624 HOST_WIDE_INT with HOST_WIDE_INT_1U.
21625 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
21626 HOST_WIDE_INT_1.
21627 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
21628 HOST_WIDE_INT with HOST_WIDE_INT_1U.
21629 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
21630 HOST_WIDE_INT with HOST_WIDE_INT_1.
21631
21632 2016-05-24 Marek Polacek <polacek@redhat.com>
21633
21634 * tree-cfg.h (should_remove_lhs_p): New predicate.
21635 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
21636 * gimplify.c (gimplify_modify_expr): Likewise.
21637 * tree-cfg.c (verify_gimple_call): Likewise.
21638 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
21639 * gimple-fold.c: Include "tree-cfg.h".
21640 (gimple_fold_call): Use should_remove_lhs_p.
21641
21642 2016-05-24 Richard Biener <rguenther@suse.de>
21643
21644 PR tree-optimization/71253
21645 * cfganal.h (control_dependences): Make robust against edge
21646 and BB removal.
21647 (control_dependences::control_dependences): Remove edge_list argument.
21648 (control_dependences::get_edge): Remove.
21649 (control_dependences::get_edge_src): Add.
21650 (control_dependences::get_edge_dest): Likewise.
21651 (control_dependences::m_el): Make a vector of edge src/dest index.
21652 * cfganal.c (control_dependences::find_control_dependence): Adjust.
21653 (control_dependences::control_dependences): Likewise.
21654 (control_dependences::~control_dependence): Likewise.
21655 (control_dependences::get_edge): Remove.
21656 (control_dependences::get_edge_src): Add.
21657 (control_dependences::get_edge_dest): Likewise.
21658 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
21659 get_edge_src.
21660 (perform_tree_ssa_dce): Adjust.
21661 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
21662 get_edge_src.
21663 (pass_loop_distribution::execute): Adjust. Do loop destroying
21664 conditional on changed.
21665
21666 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21667
21668 PR target/69857
21669 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
21670 return. Reindent transformation comment and mention the ARM state
21671 behavior.
21672
21673 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
21674
21675 PR middle-end/71252
21676 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
21677 after build_and_add_sum creates new use stmt.
21678
21679 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
21680
21681 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
21682 load_lanes/grouped_load classification comes first. Don't check
21683 whether the vectorization factor is a multiple of the group size
21684 for load_lanes.
21685
21686 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
21687
21688 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
21689 GROUP_GAP for single-element interleaving.
21690 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
21691 variable.
21692
21693 2016-05-24 Richard Biener <rguenther@suse.de>
21694
21695 PR middle-end/70434
21696 PR c/69504
21697 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
21698 bases which are accessed with non-invariant indices.
21699 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
21700 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
21701
21702 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
21703
21704 PR middle-end/71170
21705 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
21706 (add_to_ops_vec): Add stmt_to_insert.
21707 (add_repeat_to_ops_vec): Init stmt_to_insert.
21708 (insert_stmt_before_use): New.
21709 (transform_add_to_multiply): Remove mult_stmt insertion and add it
21710 to ops vector.
21711 (get_ops): Init stmt_to_insert.
21712 (maybe_optimize_range_tests): Likewise.
21713 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
21714 (rewrite_expr_tree_parallel): Likewise.
21715 (reassociate_bb): Likewise.
21716
21717 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
21718
21719 PR target/71201
21720 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
21721 ISA 3.0 xxperm fusion alternative.
21722 (altivec_vperm_v8hiv16qi): Likewise.
21723 (altivec_vperm_<mode>_uns_internal): Likewise.
21724 (vperm_v8hiv4si): Likewise.
21725 (vperm_v16qiv8hi): Likewise.
21726
21727 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
21728 Kelvin Nilsen <kelvin@gcc.gnu.org>
21729
21730 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
21731 vpermr/xxpermr on ISA 3.0.
21732 (altivec_expand_vec_perm_le): Likewise.
21733 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
21734 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
21735 ISA 3.0.
21736
21737 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
21738
21739 * config/i386/i386.h (IS_STACK_MODE): Enable for
21740 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
21741 SSE_FLOAT_MODE_P macros.
21742 * config/i386/i386.c (ix86_preferred_reload_class): Use
21743 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
21744 Cleanup regclass processing for CONST_DOUBLE_P.
21745 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
21746 (ix86_rtx_costs): Remove redundant TARGET_80387 check
21747 with IS_STACK_MODE macro.
21748 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
21749 with TARGET_SSE2.
21750 (*movdf_internal): Use IS_STACK_MODE macro.
21751 (*movsf_internal): Ditto.
21752
21753 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
21754
21755 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
21756 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
21757
21758 2016-05-23 Jeff Law <law@redhat.com>
21759
21760 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
21761 extracted from ...
21762 (fsm_find_control_statement_thread_paths): Call it.
21763
21764 2016-05-23 Martin Jambor <mjambor@suse.cz>
21765
21766 PR ipa/71234
21767 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
21768 from_global_constant if t is not NULL.
21769
21770 2016-05-23 Marek Polacek <polacek@redhat.com>
21771
21772 PR c/49859
21773 * common.opt (Wswitch-unreachable): New option.
21774 * doc/invoke.texi: Document -Wswitch-unreachable.
21775 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
21776 warning.
21777
21778 2016-05-23 Bin Cheng <bin.cheng@arm.com>
21779
21780 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
21781 TMR_INDEX is non-NULL.
21782
21783 2016-05-23 Richard Biener <rguenther@suse.de>
21784
21785 PR tree-optimization/71230
21786 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
21787 (try_special_add_to_ops): ... here. Always test for single-use.
21788
21789 2016-05-23 Martin Jambor <mjambor@suse.cz>
21790
21791 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
21792 default block if a PHI node in the original one would be resized.
21793
21794 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21795
21796 PR tree-optimization/58135
21797 * tree-vect-slp.c: When group size is not multiple
21798 of vector size, allow splitting of store group at
21799 vector boundary.
21800
21801 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
21802
21803 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
21804
21805 2016-05-22 Jakub Jelinek <jakub@redhat.com>
21806
21807 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
21808 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
21809 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
21810 of 64x2.
21811
21812 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
21813 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
21814 v constraint instead of x and vinserti32x4 insn.
21815
21816 * config/i386/sse.md (i128vldq): New mode iterator.
21817 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
21818 avx512dq and avx512vl alternatives.
21819
21820 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
21821 constraint, use maybe_evex prefix instead of vex.
21822 (vec_dupv4sf): Use v constraint instead of x for output
21823 operand except for noavx alternative, use Yv constraint
21824 instead of x for input. Use maybe_evex prefix instead of vex.
21825 (*vec_dupv4si): Likewise.
21826 (*vec_dupv2di): Likewise.
21827
21828 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
21829
21830 PR middle-end/40921
21831 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
21832 (linearize_expr_tree): Call try_special_add_to_ops.
21833 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
21834
21835 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
21836
21837 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
21838 to computed stack_usage.
21839
21840 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
21841
21842 PR target/71103
21843 * config/avr/avr.md (define_expand "mov<mode>"): If the source
21844 operand is subreg (symbol_ref) then move the symbol ref to register.
21845
21846 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
21847
21848 * tree.c (array_at_struct_end_p): Look through MEM_REF.
21849
21850 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
21851
21852 PR middle-end/71179
21853 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
21854 VECTOR type.
21855
21856 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
21857
21858 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
21859 ranges by calling get_single_symbol and tidy up. Look more closely
21860 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
21861
21862 2016-05-20 Jeff Law <law@redhat.com>
21863
21864 * bitmap.c (bitmap_find_bit): Remove useless test.
21865
21866 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
21867
21868 * function.c (thread_prologue_and_epilogue_insns): Commit the
21869 insertion of the epilogue.
21870
21871 2016-05-20 Martin Jambor <mjambor@suse.cz>
21872
21873 PR tree-optimization/70884
21874 * tree-sra.c (initialize_constant_pool_replacements): Do not check
21875 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
21876 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
21877 of constant pool data as a reason for scalarization.
21878
21879 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
21880
21881 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
21882 for naked functions.
21883 (thumb1_expand_prologue): Likewise.
21884
21885 2016-05-20 Nathan Sidwell <nathan@acm.org>
21886
21887 * config/nvptx/nptx.c (nvptx_option_override): Only set
21888 flag_toplevel_reorder, if not explicitly specified. Set
21889 flag_no_common, unless explicitly specified.
21890
21891 2016-05-20 David Malcolm <dmalcolm@redhat.com>
21892
21893 * calls.c (can_implement_as_sibling_call_p): Mark param
21894 reg_parm_stack_space with ATTRIBUTE_UNUSED.
21895
21896 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
21897
21898 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
21899 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
21900 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
21901 constants.
21902 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
21903 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
21904 and CASE_CONST_ANY.
21905
21906 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
21907
21908 * config/nvptx/nvptx.md (sincossf3): New pattern.
21909
21910 2016-05-20 David Malcolm <dmalcolm@redhat.com>
21911
21912 * calls.c (maybe_complain_about_tail_call): New function.
21913 (initialize_argument_information): Call
21914 maybe_complain_about_tail_call when clearing *may_tailcall.
21915 (can_implement_as_sibling_call_p): Call
21916 maybe_complain_about_tail_call when returning false.
21917 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
21918 ensure try_tail_call is set. Call maybe_complain_about_tail_call
21919 if tail-call optimization fails.
21920 * cfgexpand.c (expand_call_stmt): Initialize
21921 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
21922 * gimple-pretty-print.c (dump_gimple_call): Dump
21923 gimple_call_must_tail_p.
21924 * gimple.c (gimple_build_call_from_tree): Call
21925 gimple_call_set_must_tail with the value of
21926 CALL_EXPR_MUST_TAIL_CALL.
21927 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
21928 (gimple_call_set_must_tail): New function.
21929 (gimple_call_must_tail_p): New function.
21930 * print-tree.c (print_node): Update printing of TREE_STATIC
21931 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
21932 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
21933 trailing comment listing applicable flags.
21934 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
21935
21936 2016-05-20 David Malcolm <dmalcolm@redhat.com>
21937
21938 * calls.c (expand_call): Move "Rest of purposes for tail call
21939 optimizations to fail" to...
21940 (can_implement_as_sibling_call_p): ...this new function, and
21941 split into multiple "if" statements.
21942
21943 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
21944
21945 * cfgloop.h (expected_loop_iterations_unbounded,
21946 expected_loop_iterations): Unconstify.
21947 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
21948 profile with known upper bound; return 3 when profile is absent.
21949 (expected_loop_iterations): Update.
21950
21951 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
21952
21953 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
21954 and get_max_loop_iterations_int.
21955
21956 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
21957
21958 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
21959 realistic upper bounds here.
21960
21961 2016-05-20 Jakub Jelinek <jakub@redhat.com>
21962
21963 PR c++/71210
21964 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
21965 calls if the LHS is variable length or has addressable type.
21966 If targets[0]->decl is a noreturn call with void return type and
21967 zero arguments, adjust fntype and remove lhs in that case.
21968
21969 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
21970
21971 PR tree-optimization/71079
21972 PR tree-optimization/71206
21973 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
21974
21975 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21976
21977 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
21978 (get_vec_alignment_for_array_decl): Likewise.
21979 (get_vec_alignment_for_record_decl): Likewise.
21980 (increase_alignment::execute): Move code to find alignment to
21981 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
21982 (type_align_map): New hash_map.
21983
21984 2016-05-20 Richard Guenther <rguenther@suse.de>
21985
21986 PR tree-optimization/29756
21987 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
21988 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
21989 * fold-const.c (operand_equal_p): Likewise.
21990 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
21991 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
21992 * tree-inline.c (estimate_operator_cost): Likewise.
21993 * tree-pretty-print.c (dump_generic_node): Likewise.
21994 * tree-ssa-operands.c (get_expr_operands): Likewise.
21995 * cfgexpand.c (expand_debug_expr): Likewise.
21996 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
21997 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
21998 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
21999 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
22000 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
22001 (execute_update_addresses_taken): Do it.
22002
22003 2016-05-20 Richard Biener <rguenther@suse.de>
22004
22005 PR tree-optimization/71185
22006 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
22007 register operations.
22008
22009 2016-05-20 Richard Biener <rguenther@suse.de>
22010
22011 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
22012 gimple_seq_add_seq_without_update.
22013 (release_bb_predicate): Assert we have no operands to free.
22014 (if_convertible_loop_p_1): Calculate post dominators later.
22015 Do not free BB predicates here.
22016 (combine_blocks): Do not recompute BB predicates.
22017 (version_loop_for_if_conversion): Save BB predicates around
22018 loop versioning.
22019
22020 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
22021
22022 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
22023 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
22024 code. Ignore sibcalls on EDGE_IGNORE edges.
22025 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
22026 on edges for sibcalls that run without prologue. The rest of the
22027 function is combined from...
22028 (fix_fake_fallthrough_edge): ... this, and ...
22029 (try_shrink_wrapping): ... a part of this. Remove the bb_with
22030 function argument, make it a local variable.
22031
22032 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
22033
22034 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
22035 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
22036 for 32-bit mode and SEH for 64-bit.
22037 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
22038 TARGET_64BIT_DEFAULT.
22039
22040 2016-05-19 Ryan Burn <contact@rnburn.com>
22041
22042 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
22043 * gengtype.c (open_base_files): Add cilk.h to ifiles.
22044
22045 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
22046
22047 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
22048 force pending loads from memory.
22049
22050 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
22051
22052 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
22053 (UNSPEC_DARN_32): New unspec constant.
22054 (UNSPEC_DARN_RAW): New unspec constant.
22055 (darn_32): New instruction.
22056 (darn_raw): New instruction.
22057 (darn): New instruction.
22058 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
22059 support and documentation for this macro.
22060 (BU_P9_MISC_1): New macro definition.
22061 (BU_P9_64BIT_MISC_0): New macro definition.
22062 (BU_P9_MISC_0): New macro definition.
22063 (darn_32): New builtin definition.
22064 (darn_raw): New builtin definition.
22065 (darn): New builtin definition.
22066 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
22067 RS6000_BUILTIN_0 directives to surround each occurrence of
22068 #include "rs6000-builtin.def".
22069 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
22070 RS6000_BTM_64BIT flags to the returned mask, depending on
22071 configuration.
22072 (def_builtin): Correct an error in the assignments made to the
22073 debugging variable attr_string.
22074 (rs6000_expand_builtin): Add support for no-operand built-in
22075 functions.
22076 (builtin_function_type): Remove fatal_error assertion that is no
22077 longer valid.
22078 (rs6000_common_init_builtins): Add support for no-operand built-in
22079 functions.
22080 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
22081 definition.
22082 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
22083 definition.
22084 (RS6000_BTM_64BIT): New macro definition.
22085 * doc/extend.texi: Document __builtin_darn (void),
22086 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
22087 functions.
22088
22089 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
22090
22091 * tree-vect-loop.c (vect_analyze_loop_2): Use also
22092 max_loop_iterations_int.
22093
22094 2016-05-19 Marek Polacek <polacek@redhat.com>
22095
22096 PR tree-optimization/71031
22097 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
22098 condition and adjust the code a bit.
22099
22100 2016-05-19 Martin Liska <mliska@suse.cz>
22101
22102 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
22103 auto_vec instead of vec.
22104
22105 2016-05-19 Martin Liska <mliska@suse.cz>
22106
22107 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
22108
22109 2016-05-19 Martin Liska <mliska@suse.cz>
22110
22111 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
22112
22113 2016-05-19 Martin Liska <mliska@suse.cz>
22114
22115 * ipa-pure-const.c (set_function_state): Remove an existing
22116 funct_state.
22117 (remove_node_data): Do not free it as it's released
22118 in set_function_state.
22119
22120 2016-05-19 Martin Liska <mliska@suse.cz>
22121
22122 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
22123 bitmap.
22124
22125 2016-05-19 Martin Liska <mliska@suse.cz>
22126
22127 * omp-simd-clone.c (simd_clone_adjust): Release vector.
22128
22129 2016-05-19 Martin Liska <mliska@suse.cz>
22130
22131 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
22132 an auto_vec instead of re-creating it.
22133
22134 2016-05-19 Martin Liska <mliska@suse.cz>
22135
22136 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
22137 auto_vec instead of vec.
22138
22139 2016-05-19 Martin Liska <mliska@suse.cz>
22140
22141 * lto-section-in.c (lto_get_section_data): Call
22142 lto_check_version with additional argument.
22143 * lto-streamer.c (lto_check_version): Add new argument.
22144 * lto-streamer.h (lto_check_version): Likewise.
22145
22146 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22147
22148 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
22149 Don't add cost of inner memory when handling sign-extended loads.
22150
22151 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
22152
22153 PR rtl-optimization/71148
22154 * cse.c (cse_main): Free dominance info.
22155 (rest_of_handle_cse): Don't free dominance info.
22156 (rest_of_handle_cse2): Likewise.
22157 (rest_of_handle_cse_after_global_opts): Likewise.
22158
22159 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22160
22161 PR target/71056
22162 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
22163 NULL_TREE early if NEON is not available. Remove now redundant check
22164 in ARM_CHECK_BUILTIN_MODE.
22165
22166 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
22167
22168 PR sanitizer/64354
22169 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
22170 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
22171 * doc/cpp.texi: Document new macros.
22172
22173 2016-05-19 Bin Cheng <bin.cheng@arm.com>
22174
22175 PR tree-optimization/69848
22176 * tree-vect-loop.c (vectorizable_reduction): Don't factor
22177 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
22178
22179 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
22180
22181 * function.c (thread_prologue_and_epilogue_insn): Move the
22182 "goto epilogue_done" one block later.
22183
22184 2016-05-19 Richard Biener <rguenther@suse.de>
22185
22186 PR tree-optimization/70729
22187 * passes.def: Move LIM pass before PRE. Remove no longer
22188 required copyprop and move first DCE out of the loop pipeline.
22189
22190 2016-05-18 David Malcolm <dmalcolm@redhat.com>
22191
22192 PR driver/69265
22193 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
22194 (OBJS-libcommon-target): ...here.
22195 * opts-common.c: Include spellcheck.h.
22196 (cmdline_handle_error): Build a vec of valid options and use it
22197 to suggest provide hints for misspelled arguments.
22198
22199 2016-05-18 Jakub Jelinek <jakub@redhat.com>
22200
22201 PR c++/71100
22202 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
22203 lhs if it has TREE_ADDRESSABLE type.
22204
22205 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
22206
22207 PR target/71145
22208 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
22209 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
22210
22211 2016-05-18 Martin Jambor <mjambor@suse.cz>
22212
22213 PR ipa/69708
22214 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
22215 input for NOP_EXPR pass-through functions.
22216 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
22217 aggregate global constant VAR_DECLs in constant jump functions.
22218
22219 2016-05-18 Martin Jambor <mjambor@suse.cz>
22220
22221 PR ipa/69708
22222 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
22223 from TREE_READONLY parameters.
22224
22225 2016-05-18 Martin Jambor <mjambor@suse.cz>
22226
22227 PR ipa/69708
22228 * cgraph.h (cgraph_indirect_call_info): New field
22229 guaranteed_unmodified.
22230 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
22231 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
22232 appropriate.
22233 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
22234 pass the parameter value to ipa_find_agg_cst_for_param.
22235 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
22236 guaranteed_unmodified, store AA results there instead of bailing out
22237 if present.
22238 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
22239 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
22240 (find_constructor_constant_at_offset): New function.
22241 (ipa_find_agg_cst_from_init): Likewise.
22242 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
22243 static initializers of contants, report back through a new paameter
22244 from_global_constant if that was the case.
22245 (try_make_edge_direct_simple_call): Also pass parameter value to
22246 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
22247 appropriate.
22248 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
22249 (ipa_read_indirect_edge_info): Likewise.
22250 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
22251 (ipa_load_from_parm_agg): Likewise.
22252
22253 2016-05-18 Jiong Wang <jiong.wang@arm.com>
22254
22255 PR rtl-optimization/71150
22256 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
22257 check.
22258
22259 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
22260
22261 PR target/70915
22262 * config/rs6000/constraints.md (wE constraint): New constraint
22263 for a vector constant that can be loaded with XXSPLTIB.
22264 (wM constraint): New constraint for a vector constant of a 1's.
22265 (wS constraint): New constraint for a vector constant that can be
22266 loaded with XXSPLTIB and a vector sign extend instruction.
22267 * config/rs6000/predicates.md (xxspltib_constant_split): New
22268 predicates for wE/wS constraints.
22269 (xxspltib_constant_nosplit): Likewise.
22270 (easy_vector_constant): Add support for constants that can be
22271 loaded via XXSPLTIB.
22272 (all_ones_constant): New predicate for vector constant with all
22273 1's set.
22274 (splat_input_operand): Add support for ISA 3.0 word splat operations.
22275 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
22276 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
22277 instruction and possibly with a sign extension.
22278 (output_vec_const_move): Add support for XXSPLTIB. If we are
22279 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
22280 instead of XXLXOR/XXLORC.
22281 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
22282 operations.
22283 (rs6000_legitimize_reload_address): Likewise.
22284 (rs6000_output_move_128bit): Use output_vec_const_move to emit
22285 constants.
22286 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
22287 combine VSX_M and VSX_M2 into one iterator.
22288 (VSX_M2): Likewise.
22289 (VSINT_84): New iterators for loading constants with XXSPLTIB.
22290 (VSINT_842): Likewise.
22291 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
22292 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
22293 XXSPLTIB instruction.
22294 (xxspltib_<mode>_nosplit): Likewise.
22295 (xxspltib_<mode>_split): New insn to load up constants with
22296 XXSPLTIB and a sign extend instruction.
22297 (vsx_mov<mode>): Replace single move that handled all vector types
22298 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
22299 moves (when -mvsx-timode is in effect) into the main vector
22300 moves. Eliminate separate moves for <VSr> <VSa>, where the
22301 preferred register class (<VSr>) is listed first, and the
22302 secondary register class (<VSa>) is listed second with a '?' to
22303 discourage use. Prefer loading 0/-1 in any VSX register for ISA
22304 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
22305 that if the register was involved in a slow operation, the
22306 clear/set operation does not wait for the slow operation to
22307 finish. Adjust the length attributes for 32-bit mode. Use
22308 rs6000_output_move_128bit and drop the use of the string
22309 instructions for 32-bit movti when -mvsx-timode is in effect. Use
22310 spacing so that the alternatives and attributes don't generate
22311 long lines, and put things in columns, so that it is easier to
22312 match up the operands and attributes with the insn alternatives.
22313 (vsx_mov<mode>_64bit): Likewise.
22314 (vsx_mov<mode>_32bit): Likewise.
22315 (vsx_movti_64bit): Fold movti into normal vector moves.
22316 (vsx_movti_32bit): Likewise.
22317 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
22318 splat instructions.
22319 (vsx_splat_v4si_internal): Likewise.
22320 (vsx_splat_v4sf_internal): Likewise.
22321 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
22322 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
22323 extend vector elements.
22324 (vsx_sign_extend_hi_<mode>): Likewise.
22325 (vsx_sign_extend_si_v2di): Likewise.
22326 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
22327 declaration.
22328 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
22329 constraints. Add trailing period to wL documentation.
22330
22331 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
22332
22333 PR middle-end/71020
22334 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
22335 * tree-dfa.c (replace_abnormal_ssa_names): New function.
22336 * tree-call-cdce.c: Include tree-dfa.h.
22337 (can_guard_call_p): New function, extracted from...
22338 (can_use_internal_fn): ...here.
22339 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
22340 and return void.
22341 (shrink_wrap_one_built_in_call): Likewise.
22342 (use_internal_fn): Likewise.
22343 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
22344 and return void. Call replace_abnormal_ssa_names.
22345 (pass_call_cdce::execute): Check can_guard_call_p during the
22346 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
22347 will always change something.
22348
22349 2016-05-18 Martin Jambor <mjambor@suse.cz>
22350
22351 PR ipa/70646
22352 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
22353 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
22354
22355 2016-05-18 Martin Jambor <mjambor@suse.cz>
22356
22357 PR ipa/70646
22358 * ipa-inline.h (condition): New field size.
22359 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
22360 for comaprison and store it into the new condition.
22361 (evaluate_conditions_for_known_args): Use condition size to check
22362 access sizes for all but CHANGED conditions.
22363 (unmodified_parm_1): New parameter size_p, store access size into it.
22364 (unmodified_parm): Likewise.
22365 (unmodified_parm_or_parm_agg_item): Likewise.
22366 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
22367 (set_cond_stmt_execution_predicate): Extract access sizes and store
22368 them to conditions.
22369 (set_switch_stmt_execution_predicate): Likewise.
22370 (will_be_nonconstant_expr_predicate): Likewise.
22371 (will_be_nonconstant_predicate): Likewise.
22372 (inline_read_section): Stream condition size.
22373 (inline_write_summary): Likewise.
22374
22375 2016-05-18 Richard Biener <rguenther@suse.de>
22376
22377 * tree-ssa-loop-im.c (determine_max_movement): Properly add
22378 condition cost to PHI cost instead of total_cost.
22379
22380 2016-05-18 Martin Liska <mliska@suse.cz>
22381
22382 PR fortran/70856
22383 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
22384 merged variables.
22385
22386 2016-05-18 Richard Biener <rguenther@suse.de>
22387
22388 * lto-streamer.h (LTO_major_version): Bump to 6.
22389
22390 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
22391
22392 * function.c (make_split_prologue_seq, make_prologue_seq,
22393 make_epilogue_seq): New functions, factored out from...
22394 (thread_prologue_and_epilogue_insns): Here.
22395
22396 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
22397
22398 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
22399 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
22400 of before. Add a comment.
22401
22402 2016-05-18 Bin Cheng <bin.cheng@arm.com>
22403
22404 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
22405 expression pointer, not pointer to the pointer.
22406
22407 2016-05-18 Jakub Jelinek <jakub@redhat.com>
22408
22409 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
22410 (avx2_pbroadcast<mode>): Add another alternative with v instead
22411 of x constraints in it, using <pbroadcast_evex_isa> isa.
22412 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
22413
22414 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
22415 constraint x instead of v in second alternative, add avx512bw
22416 alternative.
22417
22418 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
22419 constraint x instead of v in second alternative, add avx512bw
22420 alternative.
22421
22422 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
22423 constraint x instead of v in second alternative, add avx512bw
22424 alternative.
22425
22426 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
22427 avx512bw alternative.
22428
22429 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
22430
22431 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
22432 array to 128 chars.
22433 (define_insn "*andnottf3"): Ditto.
22434 (define_insn "*<code><mode>3"/any_logic): Ditto.
22435 (define_insn "*<code>tf3"/any_logic): Ditto.
22436 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
22437 operand to block AVX-512VL insn variant emit when it is not enabled.
22438
22439 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
22440
22441 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
22442 constraint fot SF mode.
22443
22444 2016-05-18 Petr Murzin <petr.murzin@intel.com>
22445 Kirill Yukhin <kirill.yukhin@intel.com>
22446
22447 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
22448 modifiers.
22449 (define_insn "rsqrt14<mode>"): Ditto.
22450 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
22451 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
22452 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
22453 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
22454 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
22455 Ditto.
22456 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
22457 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
22458 * config/i386/i386.c (ix86_print_operand): Expand check for size
22459 override codes for Intel syntax.
22460
22461 2016-05-18 Richard Biener <rguenther@suse.de>
22462
22463 PR tree-optimization/71168
22464 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
22465 initialization earlier.
22466
22467 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
22468
22469 * config/aarch64/aarch64-simd.md
22470 (aarch64_reduc_plus_internal<mode>): Rename to...
22471 (reduc_plus_scal): ...This, and remove previous implementation.
22472
22473 2016-05-18 Richard Biener <rguenther@suse.de>
22474
22475 * passes.def: Put late dse and cd_dce in canonical order.
22476
22477 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
22478
22479 * ipa-inline-transform.c (preserve_function_body_p): Look for
22480 first non-thunk clone.
22481 (save_function_body): Save into first non-thunk.
22482 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
22483 up call stmt id.
22484 (lto_output_node): Inline thunks don't need body in every
22485 partition.
22486 * lto-streamer-in.c: Do not fixup thunk clones.
22487 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
22488 thunks.
22489 * tree-inline.c (copy_bb): Be prepared for target node to be new after
22490 folding suceeds.
22491
22492 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
22493
22494 PR middle-end/63586
22495 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
22496 (reassociate_bb): Call transform_add_to_multiply.
22497
22498 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
22499
22500 * config/aarch64/aarch64.c (all_extensions): Removed unused
22501 static variable.
22502
22503 2016-05-17 Nathan Sidwell <nathan@acm.org>
22504
22505 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
22506 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
22507
22508 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
22509
22510 PR tree-optimization/54579
22511 PR middle-end/55299
22512 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
22513
22514 2016-05-17 Marek Polacek <polacek@redhat.com>
22515
22516 PR ipa/71146
22517 * tree-inline.c (expand_call_inline): Call
22518 maybe_remove_unused_call_args.
22519
22520 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
22521
22522 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
22523 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
22524 * doc/md.texi (fmin@var{m}3): Likewise.
22525
22526 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
22527
22528 * match.pd (X & C): New transformation.
22529
22530 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
22531
22532 * match.pd (~X & Y): New transformation.
22533
22534 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
22535
22536 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
22537 information for new SSA_NAME.
22538 (simplify_conversion_using_ranges): Get range through get_range_info
22539 instead of get_value_range.
22540
22541 2016-05-17 Jiong Wang <jiong.wang@arm.com>
22542
22543 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
22544 Remove inline assembly.
22545 (vmvn_s16): Likewise.
22546 (vmvn_s32): Likewise.
22547 (vmvn_u8): Likewise.
22548 (vmvn_u16): Likewise.
22549 (vmvn_u32): Likewise.
22550 (vmvnq_s8): Likewise.
22551 (vmvnq_s16): Likewise.
22552 (vmvnq_s32): Likewise.
22553 (vmvnq_u8): Likewise.
22554 (vmvnq_u16): Likewise.
22555 (vmvnq_u32): Likewise.
22556 (vmvn_p8): Likewise.
22557 (vmvnq_p16): Likewise.
22558
22559 2016-05-17 Jiong Wang <jiong.wang@arm.com>
22560
22561 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
22562 Use builtin.
22563 (vmul_n_s16): Likewise.
22564 (vmul_n_s32): Likewise.
22565 (vmul_n_u16): Likewise.
22566 (vmul_n_u32): Likewise.
22567 (vmulq_n_f32): Likewise.
22568 (vmulq_n_f64): Likewise.
22569 (vmulq_n_s16): Likewise.
22570 (vmulq_n_s32): Likewise.
22571 (vmulq_n_u16): Likewise.
22572 (vmulq_n_u32): Likewise.
22573
22574 2016-05-17 Jiong Wang <jiong.wang@arm.com>
22575
22576 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
22577 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
22578
22579 2016-05-17 Jiong Wang <jiong.wang@arm.com>
22580
22581 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
22582 to *aarch64_fma4_elt_from_dup<mode>.
22583 (*aarch64_fnma4_elt_to_128df): Rename to
22584 *aarch64_fnma4_elt_from_dup<mode>.
22585 * config/aarch64/arm_neon.h (vfma_n_f64): New.
22586 (vfms_n_f32): Likewise.
22587 (vfms_n_f64): Likewise.
22588 (vfmsq_n_f32): Likewise.
22589 (vfmsq_n_f64): Likewise.
22590
22591 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
22592
22593 * wide-int.h: Change fixed_wide_int_storage from class to struct.
22594
22595 2016-05-17 Richard Biener <rguenther@suse.de>
22596
22597 PR tree-optimization/71132
22598 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
22599 Only add control dependences for blocks in the loop.
22600 (build_rdg): Adjust.
22601 (generate_code_for_partition): Return whether loop should
22602 be destroyed and delay that.
22603 (distribute_loop): Likewise.
22604 (pass_loop_distribution::execute): Record loops to be destroyed
22605 and perform delayed destroying of loops.
22606
22607 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22608
22609 PR target/70809
22610 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
22611
22612 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
22613
22614 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
22615
22616 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
22617
22618 PR target/71114
22619 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
22620 insertion point for instructions generated by validize_mem.
22621
22622 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
22623
22624 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
22625 in brackets.
22626
22627 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
22628
22629 * config/aarch64/aarch64.c
22630 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
22631 rather than a macro.
22632
22633 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
22634
22635 * doc/invoke.texi (AArch64 Options): Various updates.
22636
22637 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22638
22639 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
22640 into instrumentation thunks.
22641 * cif-code.def (CIF_CHKP): New.
22642
22643 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
22644
22645 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
22646
22647 2016-05-16 Martin Jambor <mjambor@suse.cz>
22648
22649 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
22650 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
22651
22652 2016-05-16 Marek Polacek <polacek@redhat.com>
22653
22654 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
22655 commentary.
22656
22657 2016-05-16 Martin Jambor <mjambor@suse.cz>
22658
22659 PR hsa/70857
22660 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
22661 the outlined kernel function.
22662
22663 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
22664
22665 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
22666 (ISA_HAS_DLSA): Ditto.
22667
22668 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
22669
22670 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
22671
22672 2016-05-16 Nathan Sidwell <nathan@acm.org>
22673
22674 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
22675 (nvptx_name_replacement): Restore. Add comment.
22676 (write_fn_proto, write_fn_proto_from_insn,
22677 nvptx_output_call_insn): Restore
22678 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
22679
22680 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
22681
22682 * config/aarch64/aarch64.md
22683 (add<mode>3_compareC_cconly_imm): Remove use of %w.
22684 (add<mode>3_compareC_imm): Likewise.
22685 (<optab>si3_uxtw): Split into register and immediate variants.
22686 (andsi3_compare0_uxtw): Likewise.
22687 (and<mode>3_compare0): Likewise.
22688 (and<mode>3nr_compare0): Likewise.
22689 (stack_protect_test_<mode>): Don't use %x for memory operands.
22690
22691 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
22692
22693 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
22694
22695 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
22696
22697 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
22698 Split integer shifts into shift_reg and bfm.
22699 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
22700 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
22701 (ror<mode>3_insn): Likewise.
22702 (<optab>si3_insn_uxtw): Likewise.
22703 (<optab><mode>3_insn): Change to rotate_imm.
22704 (extr<mode>5_insn_alt): Likewise.
22705 (extrsi5_insn_uxtw): Likewise.
22706 (extrsi5_insn_uxtw_alt): Likewise.
22707
22708 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
22709
22710 * doc/tm.texi: Regenerate.
22711 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
22712 (TARGET_INVALID_RETURN_TYPE): Remove.
22713 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
22714 TARGET_INVALID_RETURN_TYPE.
22715 * target.def (invalid_parameter_type): Remove.
22716 (invalid_return_type): Remove.
22717
22718 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22719
22720 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
22721 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
22722 calls from thunk.
22723 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
22724 gimple body.
22725 (preserve_function_body_p): No need to preserve function body
22726 * cif-codes.def (CIF_THUNK): Remove.
22727 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
22728
22729 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22730
22731 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
22732
22733 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22734
22735 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
22736 for thunks.
22737
22738 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22739
22740 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
22741 (inline_small_functions): Do not look for function symbol when
22742 resetting caches.
22743
22744 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22745
22746 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
22747 of inline thunks
22748
22749 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
22750 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22751 Jiong Wang <jiong.wang@arm.com>
22752
22753 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
22754 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
22755 Define __ARM_FP16_ARGS when appropriate.
22756 * config/arm/arm.c (arm_invalid_parameter_type): Remove
22757 declaration.
22758 (arm_invalid_return_type): Likewise.
22759 (TARGET_INVALID_PARAMETER_TYPE): Remove.
22760 (TARGET_INVALID_RETURN_TYPE): Remove.
22761 (aapcs_vfp_sub_candidate): Allow HFmode.
22762 (aapcs_vfp_allocate): Add comment. Support HFmode.
22763 (aapcs_vfp_allocate_return_reg): Likewise.
22764 (struct aapcs_cp_arg_layout): Slightly reword comments for
22765 is_return_candidate and allocate_return_reg.
22766 (output_mov_vfp): Update assert.
22767 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
22768 condition.
22769 (arm_invalid_parameter_type): Remove.
22770 (amr_invalid_return_type): Remove.
22771 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
22772 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
22773 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
22774
22775 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
22776
22777 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
22778 * config/aarch64/arch64-protos.h
22779 (aarch64_legitimize_reload_address): Remove.
22780 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
22781 Remove.
22782
22783 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
22784
22785 * configure.ac: Add ACX_NONCANONICAL_HOST.
22786 * configure: Regenerate.
22787 * Makefile.in: Set host_noncanonical.
22788
22789 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
22790
22791 PR target/71097
22792 * config/i386/i386.md (*movtf_internal): Before register allocation,
22793 do not allow FP constants for CM_MEDIUM memory model, allow only
22794 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
22795 (*movxf_internal): Ditto.
22796 (*movdf_internal): Ditto.
22797 (*movsf_internal): Ditto.
22798
22799 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
22800
22801 PR rtl-optimization/67483
22802 * combine.c (make_compound_operation): Don't call extract_left_shift
22803 with negative shift amounts.
22804
22805 2016-05-13 Jakub Jelinek <jakub@redhat.com>
22806
22807 PR bootstrap/71071
22808 * fold-const.c (fold_checksum_tree): Allow modification
22809 of TYPE_ALIAS_SET during folding.
22810
22811 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
22812 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
22813 (ix86_split_to_parts): Likewise. Fix up formatting.
22814
22815 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
22816
22817 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
22818 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
22819 printf format.
22820
22821 2016-05-13 Nathan Sidwell <nathan@acm.org>
22822
22823 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
22824 (nvptx_name_replacement): Delete.
22825 (write_fn_proto, write_fn_proto_from_insn,
22826 nvptx_output_call_insn): Remove nvptx_name_replacement call.
22827 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
22828 * langhooks.c (add_builtin_funcction_common): Call
22829 targetm.mangle_decl_assembler_name.
22830
22831 * config/nvptx/nvptx.c (write_fn_proto): Handle
22832 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
22833
22834 2016-05-13 Martin Liska <mliska@suse.cz>
22835
22836 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
22837 and PRIu64 in printf format.
22838
22839 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22840
22841 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
22842 comment.
22843
22844 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22845
22846 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
22847 Change --param max-completely-peeled-times to
22848 --param max-completely-peel-times in dump file printing.
22849
22850 2016-05-13 Richard Biener <rguenther@suse.de>
22851
22852 PR tree-optimization/42587
22853 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
22854 (find_bswap_or_nop_1): Likewise.
22855 (bswap_replace): Likewise.
22856
22857 2016-05-13 Martin Liska <mliska@suse.cz>
22858
22859 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
22860 Initialize a variable with default value.
22861
22862 2016-05-13 Martin Liska <mliska@suse.cz>
22863
22864 * doc/invoke.texi: Enhance explanation of error recovery
22865 of sanitizers.
22866
22867 2016-05-13 Martin Liska <mliska@suse.cz>
22868
22869 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
22870 (struct cost_pair): Change inv_expr_id (int) to inv_expr
22871 (iv_inv_expr_ent *).
22872 (struct iv_inv_expr_ent): Comment struct fields.
22873 (sort_iv_inv_expr_ent): New function.
22874 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
22875 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
22876 a hash_map between iv_inv_expr_ent and number of usages.
22877 (niter_for_exit): Fix coding style.
22878 (tree_ssa_iv_optimize_init): Use renamed variable.
22879 (determine_base_object): Fix coding style.
22880 (alloc_iv): Likewise.
22881 (find_interesting_uses_outside): Likewise.
22882 (add_candidate_1): Likewise.
22883 (add_standard_iv_candidates): Likewise.
22884 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
22885 (prepare_decl_rtl): Fix coding style.
22886 (get_address_cost): Likewise.
22887 (get_shiftadd_cost): Likewise.
22888 (force_expr_to_var_cost): Likewise.
22889 (compare_aff_trees): Likewise.
22890 (get_expr_id): Restructure the function.
22891 (get_loop_invariant_expr_id): Renamed to
22892 get_loop_invariant_expr.
22893 (get_computation_cost_at): Replace usage of inv_expr_id with
22894 inv_expr.
22895 (get_computation_cost): Likewise.
22896 (determine_group_iv_cost_generic): Likewise.
22897 (determine_group_iv_cost_address): Likewise.
22898 (iv_period): Fix coding style.
22899 (iv_elimination_compare_lt): Likewise.
22900 (may_eliminate_iv): Likewise.
22901 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
22902 inv_expr.
22903 (determine_group_iv_costs): Dump invariant expressions.
22904 (iv_ca_recount_cost): Use the newly added hash_map.
22905 (iv_ca_set_remove_invariants): Fix coding style.
22906 (iv_ca_set_add_invariants): Fix coding style.
22907 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
22908 invariants.
22909 (iv_ca_set_cp): Likewise.
22910 (iv_ca_new): Initialize the newly added hash_map and remove
22911 initialization of fields.
22912 (iv_ca_free): Delete the hash_map.
22913 (iv_ca_dump): Dump invariant expressions.
22914 (iv_ca_extend): Fix coding style.
22915 (try_add_cand_for): Likewise.
22916 (create_new_ivs): Dump information about # of avg iterations and
22917 # of used invariant expressions.
22918 (rewrite_use_compare): Fix coding style.
22919 (free_loop_data): Set default value for max_inv_expr_id.
22920
22921 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
22922
22923 * cse.c (rest_of_handle_cse): Use cleanup_cfg
22924 returned value cse_cfg_altered computation.
22925 (rest_of_handle_cse2): Likewise.
22926 (rest_of_handle_cse_after_global_opts): Likewise.
22927
22928 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22929
22930 PR target/53440
22931 * config/arm/arm.c (arm32_output_mi_thunk): New.
22932 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
22933 to split Thumb1 vs TARGET_32BIT functionality.
22934 (arm_thumb1_mi_thunk): New.
22935
22936 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22937
22938 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
22939 to true.
22940
22941 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22942
22943 PR target/71080
22944 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
22945
22946 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
22947
22948 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
22949 (expand_builtin_trap): Emit a regular call.
22950 (set_builtin_user_assembler_name): Remove obsolete cases.
22951 * dse.c (scan_insn): Adjust.
22952 * except.c: Include calls.h.
22953 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
22954 emit a regular call to setjmp.
22955 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
22956 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
22957 (emit_block_move_via_libcall): Delete.
22958 (block_move_fn): Delete.
22959 (init_block_move_fn): Likewise.
22960 (emit_block_move_libcall_fn): Likewise.
22961 (emit_block_op_via_libcall): New function.
22962 (set_storage_via_libcall): Tidy up and use memset builtin.
22963 (block_clear_fn): Delete.
22964 (init_block_clear_fn): Likewise.
22965 (clear_storage_libcall_fn): Likewise.
22966 (expand_assignment): Call emit_block_move_via_libcall.
22967 Do not include gt-expr.h.
22968 * expr.h (emit_block_op_via_libcall): Declare.
22969 (emit_block_copy_via_libcall): New inline function.
22970 (emit_block_move_via_libcall): Likewise.
22971 (emit_block_comp_via_libcall): Likewise.
22972 (block_clear_fn): Delete.
22973 (init_block_move_fn): Likewise.
22974 (init_block_clear_fn): Likewise.
22975 (emit_block_move_via_libcall): Likewise.
22976 (set_storage_via_libcall): Add default parameter value.
22977 * libfuncs.h (enum libfunc_index): Remove obsolete values.
22978 (abort_libfunc): Delete.
22979 (memcpy_libfunc): Likewise.
22980 (memmove_libfunc): Likewise.
22981 (memcmp_libfunc): Likewise.
22982 (memset_libfunc): Likewise.
22983 (setbits_libfunc): Likewise.
22984 (setjmp_libfunc): Likewise.
22985 (longjmp_libfunc): Likewise.
22986 (profile_function_entry_libfunc): Likewise.
22987 (profile_function_exit_libfunc): Likewise.
22988 (gcov_flush_libfunc): Likewise.
22989 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
22990 and DECL_VISIBILITY on the declaration.
22991 (init_optabs): Do not initialize obsolete libfuncs.
22992 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
22993 * tree-core.h (ECF_RET1): Define.
22994 (ECF_TM_PURE): Adjust.
22995 (ECF_TM_BUILTIN): Likewise.
22996 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
22997 (build_common_builtin_nodes): Initialize abort builtin.
22998 Add ECF_RET1 on memcpy, memmove and memset builtins.
22999 Pass final flags for alloca and alloca_with_align builtins.
23000 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
23001 obsolete builtins.
23002 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
23003 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
23004 set_storage_via_libcall and call emit_block_copy_via_libcall.
23005
23006 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
23007
23008 * config/i386/i386.md (*call_got_x32): Change operand 0 to
23009 DImode before it is passed to ix86_output_call_operand.
23010 (*call_value_got_x32): Ditto for operand 1.
23011
23012 2016-05-12 Jiong Wang <jiong.wang@arm.com>
23013
23014 PR rtl-optimization/70904
23015 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
23016 reload for wide mode.
23017
23018 2016-05-12 Marek Polacek <polacek@redhat.com>
23019
23020 PR c/70756
23021 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
23022 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
23023 * langhooks.h (incomplete_type_error): Likewise.
23024 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
23025 parameter, pass it down to incomplete_type_error.
23026 * tree.h (size_in_bytes): New inline overload.
23027 (size_in_bytes_loc): Renamed from size_in_bytes.
23028
23029 2016-05-12 Richard Biener <rguenther@suse.de>
23030
23031 PR tree-optimization/71059
23032 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
23033 nary before looking up or entering the expression into the VN
23034 hashes.
23035 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
23036 Make sure to re-use NARYs without result as inserted by
23037 phi-translation.
23038
23039 2016-05-12 Richard Biener <rguenther@suse.de>
23040
23041 PR tree-optimization/71062
23042 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
23043 field.
23044 * tree-ssa-structalias.c (set_uids_in_ptset): Set
23045 vars_contains_restrict if the var is a restrict tag.
23046 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
23047 do not disambiguate pointers against it.
23048 (dump_points_to_solution): Re-structure and adjust for new
23049 vars_contains_restrict flag.
23050 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
23051
23052 2016-05-12 Martin Liska <mliska@suse.cz>
23053
23054 * doc/invoke.texi: Explain connection between
23055 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
23056
23057 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
23058
23059 PR tree-optimization/71006
23060 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
23061 consider COND_EXPR as a mask producer.
23062
23063 2016-05-12 Marek Polacek <polacek@redhat.com>
23064
23065 PR driver/71063
23066 * opts.c (common_handle_option): Detect missing argument for --help^.
23067
23068 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23069
23070 PR target/70830
23071 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
23072 when popping the PC and within an interrupt handler routine.
23073 Add missing tab to output of "ldmfd".
23074 (output_return_instruction): Output LDMFD with SP update rather
23075 than POP when returning from interrupt handler.
23076
23077 2016-05-12 Jakub Jelinek <jakub@redhat.com>
23078
23079 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
23080 TARGET_64BIT && TARGET_AVX512DQ.
23081 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
23082 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
23083 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
23084 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
23085 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
23086 (*vec_extractv4si_zext): Add avx512dq alternative.
23087 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
23088 use v instead of x constraint in other alternatives where possible.
23089
23090 * config/i386/sse.md (sse2_loadld): Use v instead of x
23091 constraint in alternatives 0,1,4.
23092
23093 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
23094 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
23095 v constraints instead of x and <pinsr_evex_isa> isa attribute.
23096
23097 PR target/71019
23098 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
23099 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
23100 is not emitted unless TARGET_AVX512BW.
23101 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
23102 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
23103 for the result operand.
23104
23105 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
23106 constraint instead of x in avx alternatives. Use maybe_evex instead
23107 of vex prefix.
23108
23109 * config/i386/constraints.md (Yv): New constraint.
23110 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
23111 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
23112 * config/i386/i386.md (avx512fvecmode): New mode attr.
23113 (*pushtf): Use v constraint instead of x.
23114 (*movtf_internal): Likewise. For TARGET_AVX512VL and
23115 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
23116 (*absneg<mode>2): Use Yv constraint instead of x constraint.
23117 (*absnegtf2_sse): Likewise.
23118 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
23119 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
23120 avx512f alternatives.
23121 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
23122
23123 2016-05-12 Richard Biener <rguenther@suse.de>
23124
23125 PR tree-optimization/71060
23126 * tree-data-ref.c (initialize_data_dependence_relation): Do not
23127 require exact match of DR_BASE_OBJECT but only matching address and
23128 type.
23129
23130 2016-05-12 Richard Biener <rguenther@suse.de>
23131
23132 PR tree-optimization/70986
23133 * cfganal.c: Include cfgloop.h.
23134 (dfs_find_deadend): Prefer to take edges exiting loops.
23135
23136 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23137
23138 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
23139 compile and run time.
23140
23141 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
23142
23143 PR c/43651
23144 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
23145
23146 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
23147
23148 * config/i386/i386.c (legitimize_pic_address): Use
23149 copy_to_suggested_reg instead of gen_movsi.
23150
23151 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
23152
23153 * config/rs6000/predicates.md (quad_memory_operand): Move most of
23154 the code into quad_address_p and call it to share code with
23155 vsx_quad_dform_memory_operand.
23156 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
23157 d-form support.
23158 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
23159 bit instead of being a separate word. Split -mpower9-dform into
23160 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
23161 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
23162 for the register class supporting 128-bit quad word memory offsets.
23163 (mode_supports_vsx_dform_quad): Helper function to return if the
23164 register class uses quad word memory offsets.
23165 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
23166 (rs6000_debug_reg_global): Always print if we are using LRA or not.
23167 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
23168 instructions are enabled, set up the appropriate addr_masks for
23169 128-bit types.
23170 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
23171 -mpower9-dform-scalar, instead of -mpower9-dform.
23172 (rs6000_option_override_internal): Split -mpower9-dform into two
23173 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
23174 -mpower9-dform switch sets or clears both. If we are not using
23175 the LRA register allocator, do not enable -mpower9-dform-vector by
23176 default. If we are using LRA, enable -mpower9-dform-vector and
23177 -mvsx-timode if it is appropriate. Issue a warning if either
23178 -mpower9-dform-vector or -mvsx-timode are explicitly used without
23179 enabling LRA.
23180 (quad_address_offset_p): New helper function to return if the
23181 offset is legal for quad word memory instructions.
23182 (quad_address_p): New function to determin if GPR or vector
23183 register quad word memory addresses are legal.
23184 (mem_operand_gpr): Validate quad word address offsets.
23185 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
23186 d-form (register + offset) instructions.
23187 (offsettable_ok_by_alignment): Likewise.
23188 (rs6000_legitimate_offset_address_p): Likewise.
23189 (legitimate_lo_sum_address_p): Likewise.
23190 (rs6000_legitimize_address): Likewise.
23191 (rs6000_legitimize_reload_address): Add more debug statements for
23192 -mdebug=addr.
23193 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
23194 d-form instructions.
23195 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
23196 d-form instructions. Distinguish different cases in debug
23197 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
23198 d-form instructions.
23199 (rs6000_preferred_reload_class): Likewise.
23200 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
23201 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
23202 of the ISA 2.06 indexed memory instructions.
23203 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
23204 use them to save/restore the saved vector registers instead of
23205 using Altivec instructions.
23206 (rs6000_emit_epilogue): Likewise.
23207 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
23208 (rs6000_opt_masks): Split -mpower9-dform into
23209 -mpower9-dform-scalar and -mpower9-dform-vector.
23210 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
23211 was not selected.
23212 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
23213 ISA 3.0 vector indexed memory instructions, and fold the code into
23214 the normal mov<mode> patterns.
23215 (p9_vecstore_<mode>): Likewise.
23216 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
23217 instructions.
23218 (vsx_movti_64bit): Likewise.
23219 (vsx_movti_32bit): Likewise.
23220 * config/rs6000/constraints.md (wO constraint): New constraint for
23221 ISA 3.0 vector d-form support.
23222 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
23223 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
23224 include -mpower9-dform-vector until we switch over to LRA.
23225 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
23226 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
23227 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
23228 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
23229 for -mpower9-dform and -mlra.
23230 * doc/md.texi (wO constraint): Document wO constraint.
23231
23232 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
23233
23234 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
23235 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
23236 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
23237 Move handling of non-insn arguments inline into the sole user:
23238 (output_trans_func): ...here.
23239 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
23240 in emitted function prototype.
23241 (output_internal_insn_latency_func): Ditto. Simplify.
23242 (output_internal_maximal_insn_latency_func): Ditto. Delete
23243 always-unused argument.
23244 (output_insn_latency_func): Ditto.
23245 (output_maximal_insn_latency_func): Ditto.
23246
23247 2016-05-11 Richard Biener <rguenther@suse.de>
23248
23249 PR tree-optimization/71055
23250 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
23251 sth with precision not equal to access size verify we don't chop
23252 off bits.
23253
23254 2016-05-11 Richard Biener <rguenther@suse.de>
23255
23256 PR debug/71057
23257 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
23258 (dwarf2out_finish): Move retry_incomplete_types call ...
23259 (dwarf2out_early_finish): ... here.
23260
23261 2016-05-11 Richard Biener <rguenther@suse.de>
23262
23263 PR middle-end/71002
23264 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
23265 if the langhook insists on it.
23266 * fold-const.c (make_bit_field_ref): Add arg for the original
23267 reference and preserve its alias-set.
23268 (decode_field_reference): Take exp by reference and adjust it
23269 to the original memory reference.
23270 (optimize_bit_field_compare): Adjust callers.
23271 (fold_truth_andor_1): Likewise.
23272 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
23273
23274 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
23275
23276 PR middle-end/70807
23277 * cfgrtl.h (delete_insn_and_edges): Now return bool.
23278 * cfgrtl.c (delete_insn_and_edges): Likewise.
23279 * config/i386/i386.c (convert_scalars_to_vector): Remove
23280 redundant code.
23281 * cse.c (cse_insn): Compute cse_cfg_altered.
23282 (delete_trivially_dead_insns): Likewise.
23283 (cse_cc_succs): Likewise.
23284 (rest_of_handle_cse): Free dominance info if required.
23285 (rest_of_handle_cse2): Likewise.
23286 (rest_of_handle_cse_after_global_opts): Likewise.
23287
23288 2016-05-11 Alan Modra <amodra@gmail.com>
23289
23290 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
23291 abi_v4_pass_in_fpr): New functions.
23292 (rs6000_function_arg_boundary): Exclude complex IBM long double
23293 from 64-bit alignment when ABI_V4.
23294 (rs6000_function_arg, rs6000_function_arg_advance_1,
23295 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
23296
23297 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
23298
23299 PR rtl-optimization/71028
23300 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
23301 jump with just a return in the fallthrough block if the branch
23302 block contains just a return as well.
23303
23304 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
23305
23306 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
23307 * match.pd ((X & Y) ^ Y): ... this.
23308 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
23309 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
23310
23311 2016-05-10 David Malcolm <dmalcolm@redhat.com>
23312
23313 * read-md.c (require_char_ws): New function.
23314 (read_string): Simplify using require_char_ws.
23315 (handle_constants): Likewise.
23316 (handle_enum): Likewise.
23317 (handle_file): Likewise.
23318 * read-md.h (require_char_ws): New declaration.
23319 * read-rtl.c (read_conditions): Simplify using require_char_ws.
23320 (read_mapping): Likewise.
23321 (read_rtx_code): Likewise.
23322 (read_nested_rtx): Likewise.
23323
23324 2016-05-10 James Norris <jnorris@codesourcery.com>
23325
23326 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
23327 if offloading is enabled and -fopenacc or -fopenmp is specified.
23328 (CRTOFFLOADEND): Likewise.
23329 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
23330 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
23331
23332 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
23333
23334 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
23335 gotoff_operand code paths. Use copy_to_suggested_regs and
23336 expand_simple_binop where appropriate. Cleanup.
23337
23338 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
23339
23340 PR target/70799
23341 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
23342 integer constants.
23343 (dimode_scalar_chain::vector_const_cost): New.
23344 (dimode_scalar_chain::compute_convert_gain): Handle constants.
23345 (dimode_scalar_chain::convert_op): Likewise.
23346 (dimode_scalar_chain::convert_insn): Likewise.
23347
23348 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
23349
23350 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
23351 unary operation, not a binary one.
23352
23353 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
23354
23355 PR middle-end/70877
23356 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
23357 calls with type casted fndecl.
23358
23359 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
23360
23361 PR tree-optimization/70786
23362 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
23363 * calls.c (initialize_argument_information): Bind bounds
23364 with corresponding args passed by reference.
23365
23366 2016-05-10 Jakub Jelinek <jakub@redhat.com>
23367
23368 PR target/70927
23369 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
23370 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
23371 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
23372 accordingly.
23373
23374 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23375
23376 PR target/70963
23377 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
23378 code for a zero scale factor.
23379 (vsx_xvcvdpuxds_scale): Likewise.
23380
23381 2016-05-10 David Malcolm <dmalcolm@redhat.com>
23382
23383 * diagnostic-show-locus.c (layout::layout): Call show_ruler
23384 if show_ruler_p was set on the context.
23385 (layout::show_ruler): New method.
23386 * diagnostic.h (struct diagnostic_context): Add field
23387 "show_ruler_p".
23388
23389 2016-05-10 Richard Biener <rguenther@suse.de>
23390
23391 PR tree-optimization/71039
23392 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
23393 (chk_uses): New function.
23394 (propagate_with_phi): Verify we can safely replicate the lhs of an
23395 aggregate assignment on all incoming edges.
23396
23397 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
23398
23399 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
23400 Forward declare.
23401 (rx_atomic_sequence): New class.
23402 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
23403 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
23404 non-inline.
23405 (rx_atomic_sequence::rx_atomic_sequence,
23406 rx_atomic_sequence::~rx_atomic_sequence): New functions.
23407 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
23408 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
23409 CTRLREG_INTB): New constants.
23410 (FETCHOP): New code iterator.
23411 (fethcop_name, fetchop_name2): New iterator code attributes.
23412 (QIHI): New mode iterator.
23413 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
23414 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
23415 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
23416
23417 2016-05-10 Martin Liska <mliska@suse.cz>
23418
23419 * tree-inline.c (remap_dependence_clique): Do not remap
23420 debugging statements.
23421
23422 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23423
23424 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
23425 ("*fixuns_truncdfdi2_z13")
23426 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
23427 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
23428 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
23429
23430 2016-05-10 Richard Biener <rguenther@suse.de>
23431
23432 PR tree-optimization/70497
23433 PR tree-optimization/28367
23434 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
23435 split out from ...
23436 (visit_reference_op_load): ... here.
23437 (vn_reference_lookup_3): Use it to handle subreg-like accesses
23438 with simplified BIT_FIELD_REFs.
23439 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
23440 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
23441 correctly.
23442
23443 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
23444
23445 * dwarf2out.c (add_abstract_origin_attribute): Adjust
23446 documentation comment. For BLOCK nodes, add a
23447 DW_AT_abstract_origin attribute that points to the DIE generated
23448 for the origin BLOCK.
23449 (gen_lexical_block_die): Call add_abstract_origin_attribute for
23450 blocks from inlined functions.
23451
23452 2016-05-10 Alan Modra <amodra@gmail.com>
23453
23454 PR target/70947
23455 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
23456 regrename modifying insns saving lr before __morestack call.
23457 * config/rs6000/rs6000.md (split_stack_return): Similarly for
23458 insns restoring lr after __morestack call.
23459
23460 2016-05-09 Jakub Jelinek <jakub@redhat.com>
23461
23462 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
23463 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
23464 expanders.
23465 * config/i386/sse.md (vec_interleave_high<mode>,
23466 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
23467 <avx512>_vpermt2var<mode>3_maskz): Likewise.
23468
23469 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
23470
23471 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
23472 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
23473 parallel reassociation for power8 and forward.
23474
23475 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
23476
23477 * config/i386/i386.md (absneg splitters with general regs): Use
23478 general_reg_operand predicate.
23479 (btsq peephole2): Use x86_64_immediate_operand to check if new
23480 value is suitable for immediate operand. Generate emitted insn
23481 using RTL expressions.
23482 (btcq peephole2): Ditto.
23483 (btrq peephole2): Ditto. Generate correct immediate operand
23484 for AND masking.
23485
23486 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
23487
23488 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
23489 bitpos.
23490
23491 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
23492
23493 * tree-affine.c (wide_int_constant_multiple_p): Add missing
23494 pointer dereference.
23495
23496 2016-05-09 Richard Biener <rguenther@suse.de>
23497
23498 PR tree-optimization/70985
23499 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
23500 op0 isn't a gimple register.
23501
23502 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
23503
23504 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
23505 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
23506 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
23507 (i6400_fpu_mult): New cpu units.
23508 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
23509 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
23510 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
23511 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
23512 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
23513 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
23514 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
23515 (i6400_msa_long_float4, i6400_msa_long_float5)
23516 (i6400_msa_long_float8, i6400_msa_fdiv_df)
23517 (i6400_msa_fdiv_sf): New reservations.
23518 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
23519 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
23520 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
23521 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
23522 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
23523 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
23524 (msa_short_cmp, msa_short_float2, msa_short_logic3)
23525 (msa_short_store4, msa_long_load, msa_short_store)
23526 (msa_long_logic, msa_long_float2, msa_long_float4)
23527 (msa_long_float5, msa_long_float8, msa_long_mult)
23528 (msa_long_fdiv, msa_long_div): New reservations.
23529
23530 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
23531 Sameera Deshpande <sameera.deshpande@imgtec.com>
23532 Matthew Fortune <matthew.fortune@imgtec.com>
23533 Graham Stott <graham.stott@imgtec.com>
23534 Chao-ying Fu <chao-ying.fu@imgtec.com>
23535
23536 * config.gcc: Add MSA header file for mips*-*-* target.
23537 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
23538 (Ubv8i, Urv8): New constraints.
23539 * config/mips/mips-ftypes.def: Add function types for MSA
23540 builtins.
23541 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
23542 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
23543 * config/mips/mips-msa.md: New file.
23544 * config/mips/mips-protos.h
23545 (mips_split_128bit_const_insns): New prototype.
23546 (mips_msa_idiv_insns): Likewise.
23547 (mips_split_128bit_move): Likewise.
23548 (mips_split_128bit_move_p): Likewise.
23549 (mips_split_msa_copy_d): Likewise.
23550 (mips_split_msa_insert_d): Likewise.
23551 (mips_split_msa_fill_d): Likewise.
23552 (mips_expand_msa_branch): Likewise.
23553 (mips_const_vector_same_val_p): Likewise.
23554 (mips_const_vector_same_bytes_p): Likewise.
23555 (mips_const_vector_same_int_p): Likewise.
23556 (mips_const_vector_shuffle_set_p): Likewise.
23557 (mips_const_vector_bitimm_set_p): Likewise.
23558 (mips_const_vector_bitimm_clr_p): Likewise.
23559 (mips_msa_vec_parallel_const_half): Likewise.
23560 (mips_msa_output_division): Likewise.
23561 (mips_ldst_scaled_shift): Likewise.
23562 (mips_expand_vec_cond_expr): Likewise.
23563 * config/mips/mips.c (enum mips_builtin_type): Add
23564 MIPS_BUILTIN_MSA_TEST_BRANCH.
23565 (mips_gen_const_int_vector_shuffle): New prototype.
23566 (mips_const_vector_bitimm_set_p): New function.
23567 (mips_const_vector_bitimm_clr_p): Likewise.
23568 (mips_const_vector_same_val_p): Likewise.
23569 (mips_const_vector_same_bytes_p): Likewise.
23570 (mips_const_vector_same_int_p): Likewise.
23571 (mips_const_vector_shuffle_set_p): Likewise.
23572 (mips_symbol_insns): Forbid loading symbols via immediate for
23573 MSA.
23574 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
23575 stores.
23576 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
23577 MSA.
23578 (mips_lx_address_p): Add support load indexed address for MSA.
23579 (mips_address_insns): Add calculation of instructions needed for
23580 stores and loads for MSA.
23581 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
23582 CONST_VECTOR for MSA and let it fall through.
23583 (mips_ldst_scaled_shift): New function.
23584 (mips_subword_at_byte): Likewise.
23585 (mips_msa_idiv_insns): Likewise.
23586 (mips_legitimize_move): Validate MSA moves.
23587 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
23588 calculation of costs for MSA division.
23589 (mips_split_move_p): Check if MSA moves need splitting.
23590 (mips_split_move): Split MSA moves if necessary.
23591 (mips_split_128bit_move_p): New function.
23592 (mips_split_128bit_move): Likewise.
23593 (mips_split_msa_copy_d): Likewise.
23594 (mips_split_msa_insert_d): Likewise.
23595 (mips_split_msa_fill_d): Likewise.
23596 (mips_output_move): Handle MSA moves.
23597 (mips_expand_msa_branch): New function.
23598 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
23599 Reinstate 'y' modifier.
23600 (mips_file_start): Add MSA .gnu_attribute.
23601 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
23602 FPRs.
23603 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
23604 (mips_class_max_nregs): Add register size for MSA supported mode.
23605 (mips_cannot_change_mode_class): Allow conversion between MSA
23606 vector modes and TImode.
23607 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
23608 instruction.
23609 (mips_secondary_reload_class): Force MSA loads/stores via memory.
23610 (mips_preferred_simd_mode): Add preffered modes for MSA.
23611 (mips_vector_mode_supported_p): Add MSA supported modes.
23612 (mips_autovectorize_vector_sizes): New function.
23613 (mips_msa_output_division): Likewise.
23614 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
23615 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
23616 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
23617 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
23618 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
23619 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
23620 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
23621 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
23622 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
23623 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
23624 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
23625 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
23626 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
23627 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
23628 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
23629 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
23630 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
23631 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
23632 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
23633 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
23634 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
23635 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
23636 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
23637 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
23638 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
23639 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
23640 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
23641 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
23642 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
23643 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
23644 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
23645 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
23646 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
23647 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
23648 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
23649 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
23650 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
23651 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
23652 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
23653 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
23654 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
23655 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
23656 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
23657 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
23658 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
23659 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
23660 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
23661 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
23662 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
23663 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
23664 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
23665 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
23666 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
23667 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
23668 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
23669 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
23670 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
23671 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
23672 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
23673 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
23674 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
23675 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
23676 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
23677 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
23678 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
23679 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
23680 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
23681 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
23682 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
23683 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
23684 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
23685 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
23686 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
23687 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
23688 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
23689 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
23690 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
23691 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
23692 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
23693 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
23694 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
23695 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
23696 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
23697 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
23698 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
23699 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
23700 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
23701 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
23702 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
23703 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
23704 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
23705 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
23706 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
23707 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
23708 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
23709 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
23710 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
23711 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
23712 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
23713 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
23714 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
23715 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
23716 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
23717 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
23718 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
23719 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
23720 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
23721 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
23722 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
23723 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
23724 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
23725 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
23726 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
23727 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
23728 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
23729 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
23730 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
23731 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
23732 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
23733 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
23734 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
23735 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
23736 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
23737 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
23738 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
23739 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
23740 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
23741 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
23742 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
23743 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
23744 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
23745 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
23746 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
23747 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
23748 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
23749 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
23750 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
23751 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
23752 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
23753 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
23754 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
23755 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
23756 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
23757 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
23758 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
23759 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
23760 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
23761 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
23762 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
23763 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
23764 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
23765 move_v builtins.
23766 (mips_get_builtin_decl_index): New array.
23767 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
23768 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
23769 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
23770 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
23771 (mips_init_builtins): Initialize mips_get_builtin_decl_index
23772 array.
23773 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
23774 hook.
23775 (mips_expand_builtin_insn): Prepare operands for
23776 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
23777 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
23778 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
23779 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
23780 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
23781 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
23782 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
23783 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
23784 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
23785 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
23786 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
23787 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
23788 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
23789 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
23790 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
23791 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
23792 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
23793 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
23794 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
23795 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
23796 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
23797 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
23798 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
23799 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
23800 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
23801 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
23802 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
23803 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
23804 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
23805 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
23806 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
23807 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
23808 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
23809 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
23810 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
23811 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
23812 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
23813 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
23814 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
23815 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
23816 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
23817 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
23818 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
23819 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
23820 These are set implicitly and an error is reported if overridden.
23821 (mips_expand_builtin_msa_test_branch): New function.
23822 (mips_expand_msa_shuffle): Likewise.
23823 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
23824 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
23825 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
23826 (mips_expand_vec_unpack): Add support for MSA.
23827 (mips_expand_vector_init): Likewise.
23828 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
23829 instead of const0_rtx.
23830 (mips_msa_vec_parallel_const_half): New function.
23831 (mips_gen_const_int_vector): Likewise.
23832 (mips_gen_const_int_vector_shuffle): Likewise.
23833 (mips_expand_msa_cmp): Likewise.
23834 (mips_expand_vec_cond_expr): Likewise.
23835 * config/mips/mips.h
23836 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
23837 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
23838 specified.
23839 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
23840 (ISA_HAS_MSA): New macro.
23841 (UNITS_PER_MSA_REG): Likewise.
23842 (BITS_PER_MSA_REG): Likewise.
23843 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
23844 (MSA_REG_FIRST): New macro.
23845 (MSA_REG_LAST): Likewise.
23846 (MSA_REG_NUM): Likewise.
23847 (MSA_REG_P): Likewise.
23848 (MSA_REG_RTX_P): Likewise.
23849 (MSA_SUPPORTED_MODE_P): Likewise.
23850 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
23851 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
23852 * config/mips/mips.md: Include mips-msa.md.
23853 (alu_type): Add simd_add.
23854 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
23855 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
23856 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
23857 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
23858 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
23859 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
23860 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
23861 simd_move, simd_load, simd_store. Choose "multi" for moves
23862 for "qword_mode".
23863 (qword_mode): New attribute.
23864 (insn_count): Add instruction count for quad moves.
23865 Increase the count for MIPS SIMD division.
23866 (UNITMODE): Add UNITMODEs for vector types.
23867 (addsub): New code iterator.
23868 * config/mips/mips.opt (mmsa): New option.
23869 * config/mips/msa.h: New file.
23870 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
23871 specified.
23872 * config/mips/mti-linux.h: Likewise.
23873 * config/mips/predicates.md
23874 (const_msa_branch_operand): New constraint.
23875 (const_uimm3_operand): Likewise.
23876 (const_uimm4_operand): Likewise.
23877 (const_uimm5_operand): Likewise.
23878 (const_uimm8_operand): Likewise.
23879 (const_imm5_operand): Likewise.
23880 (aq10b_operand): Likewise.
23881 (aq10h_operand): Likewise.
23882 (aq10w_operand): Likewise.
23883 (aq10d_operand): Likewise.
23884 (const_m1_operand): Likewise.
23885 (reg_or_m1_operand): Likewise.
23886 (const_exp_2_operand): Likewise.
23887 (const_exp_4_operand): Likewise.
23888 (const_exp_8_operand): Likewise.
23889 (const_exp_16_operand): Likewise.
23890 (const_vector_same_val_operand): Likewise.
23891 (const_vector_same_simm5_operand): Likewise.
23892 (const_vector_same_uimm5_operand): Likewise.
23893 (const_vector_same_uimm6_operand): Likewise.
23894 (const_vector_same_uimm8_operand): Likewise.
23895 (par_const_vector_shf_set_operand): Likewise.
23896 (reg_or_vector_same_val_operand): Likewise.
23897 (reg_or_vector_same_simm5_operand): Likewise.
23898 (reg_or_vector_same_uimm6_operand): Likewise.
23899 * doc/extend.texi (MIPS SIMD Architecture Functions): New
23900 section.
23901 * doc/invoke.texi (-mmsa): Document new option.
23902
23903 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23904
23905 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
23906 * configure: Regenerate.
23907 * config.in: Regenerate.
23908 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
23909 on -fvtable-verify.
23910 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
23911 (ENDFILE_VTV_SPEC): Define.
23912
23913 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
23914
23915 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
23916 registers in all interrupt handlers if necessary.
23917 (rl78_option_override): Add warning.
23918 (MUST_SAVE_MDUC_REGISTERS): New macro.
23919 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
23920 * config/rl78/rl78.c (check_mduc_usage): New function.
23921 (mduc_regs): New structure to hold MDUC register data.
23922 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
23923 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
23924 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
23925 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
23926 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
23927 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
23928
23929 2016-05-09 Bin Cheng <bin.cheng@arm.com>
23930
23931 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
23932 (tree-ssa-loop-niter.h): Ditto.
23933 (idx_within_array_bound, ref_within_array_bound): New functions.
23934 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
23935 Factor out check on writable base object to ...
23936 (base_object_writable): ... here.
23937
23938 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23939
23940 * config/arm/arm.md (probe_stack): Add modes to set source
23941 and destination.
23942
23943 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
23944
23945 * regrename.c (base_reg_class_for_rename): New static function.
23946 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
23947
23948 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
23949
23950 * cgraph.c (thunk_adjust): Export.
23951 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
23952 * cgraphunit.c (thunk_adjust): Export.
23953 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
23954 thunks.
23955 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
23956 inlinable.
23957 * tree-inline.c (expand_call_inline): Expand thunks inline.
23958
23959 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
23960
23961 PR target/70998
23962 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
23963 (*sse2_vd_cvtss2sd): Ditto.
23964 * config/i386/i386.md
23965 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
23966 Generate *sse2_vd_cvtsd2ss pattern.
23967 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
23968 Generate *sse2_vd_cvtss2sd pattern.
23969
23970 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
23971
23972 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
23973 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
23974 users.
23975
23976 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
23977
23978 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
23979 * config/sh/sh.c: Define and declare variables on first use throughout
23980 the file.
23981 (current_function_interrupt): Change to bool type.
23982 (frame_insn): Rename to emit_frame_insn and update users.
23983 (push_regs): Use bool for 'interrupt_handler' argument.
23984 (save_schedule_s): Remove.
23985 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
23986 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
23987 targetm.asm_out.unaligned_op.di.
23988 (gen_far_branch): Remove redundant forward declaration.
23989 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
23990 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
23991 (sh_set_return_address, sh_function_ok_for_sibcall,
23992 scavenge_reg): Update comments.
23993 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
23994 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
23995 (sh_attr_renesas_p): Remove unnecessary parentheses.
23996 (branch_dest): Simplify.
23997 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
23998 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
23999 (CUMULATIVE_ARGS): Change macro to typedef.
24000 (current_function_interrupt): Change to bool type.
24001 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
24002 Surround with __cplusplus ifdef.
24003 (sh_compare_op0, sh_compare_op1): Remove.
24004 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
24005
24006 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
24007
24008 * config/arm/arm.md (arch): Add neon.
24009 (arch_enabled): Return yes for arch neon when TARGET_NEON.
24010 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
24011 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
24012 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
24013 attributes for alt renumbering. Mark alt 3 as non-predicable.
24014 (thumb2_movdf_vfp): Likewise.
24015
24016 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
24017
24018 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
24019 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
24020 (*andqi_1): Add preferred_for_speed attribute to disparage
24021 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
24022 (*<code>qi_1): Ditto.
24023 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
24024 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
24025 (*ashlqi3_1): Ditto.
24026 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
24027 Add preferred_for_size attribute to disparage alternative 0 and
24028 preferred_for_speed attribute to disparage alternative 1 for
24029 TARGET_PARTIAL_REG_STALL targets.
24030
24031 2016-05-07 Tom de Vries <tom@codesourcery.com>
24032
24033 PR tree-optimization/70956
24034 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
24035 def.
24036
24037 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
24038
24039 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
24040 * config/sh/sh.c (sh_cbranch_distance): Implement it.
24041 * config/sh/sh.md (branch_zero): Remove define_attr.
24042 (define_delay): Disable delay slot if branch distance is one insn.
24043
24044 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
24045
24046 * config/i386/i386.md (LEAMODE): New mode attribute.
24047 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
24048 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
24049 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
24050 operand 2 predicate.
24051 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
24052 (*lea<mode>_general_3): Ditto.
24053 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
24054
24055 2016-05-06 Jakub Jelinek <jakub@redhat.com>
24056
24057 * genmddump.c (main): Convert argv from char ** to const char **.
24058
24059 2016-05-06 David Malcolm <dmalcolm@redhat.com>
24060
24061 * coretypes.h (OVERRIDE): New macro.
24062 (FINAL): New macro.
24063
24064 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
24065
24066 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
24067 allow coalescing if the types are compatible.
24068
24069 2016-05-06 David Malcolm <dmalcolm@redhat.com>
24070
24071 * pass_manager.h (pass_manager::register_pass_name): New method.
24072 (pass_manager::get_pass_by_name): New method.
24073 (pass_manager::create_pass_tab): New method.
24074 (pass_manager::m_name_to_pass_map): New field.
24075 * passes.c (name_to_pass_map): Delete global in favor of field
24076 "m_name_to_pass_map" of pass_manager.
24077 (register_pass_name): Rename from a function to...
24078 (pass_manager::register_pass_name): ...this method, updating
24079 for renaming of global "name_to_pass_map" to field
24080 "m_name_to_pass_map".
24081 (create_pass_tab): Rename from a function to...
24082 (pass_manager::create_pass_tab): ...this method, updating
24083 for renaming of global "name_to_pass_map" to field.
24084 (get_pass_by_name): Rename from a function to...
24085 (pass_manager::get_pass_by_name): ...this method.
24086 (enable_disable_pass): Convert use of get_pass_by_name to
24087 a method call, locating the pass_manager singleton.
24088
24089 2016-05-06 David Malcolm <dmalcolm@redhat.com>
24090
24091 * genattr-common.c (main): Convert argv from char ** to const char **.
24092 * genattr.c (main): Likewise.
24093 * genattrtab.c (main): Likewise.
24094 * genautomata.c (initiate_automaton_gen): Likewise.
24095 (main): Likewise.
24096 * gencodes.c (main): Likewise.
24097 * genconditions.c (main): Likewise.
24098 * genconfig.c (main): Likewise.
24099 * genconstants.c (main): Likewise.
24100 * genemit.c (main): Likewise.
24101 * genenums.c (main): Likewise.
24102 * genextract.c (main): Likewise.
24103 * genflags.c (main): Likewise.
24104 * genmddeps.c (main): Likewise.
24105 * genopinit.c (main): Likewise.
24106 * genoutput.c (main): Likewise.
24107 * genpeep.c (main): Likewise.
24108 * genpreds.c (main): Likewise.
24109 * genrecog.c (main): Likewise.
24110 * gensupport.c (init_rtx_reader_args_cb): Likewise.
24111 (init_rtx_reader_args): Likewise.
24112 * gensupport.h (init_rtx_reader_args_cb): Likewise.
24113 (init_rtx_reader_args): Likewise.
24114 * gentarget-def.c (main): Likewise.
24115 * read-md.c (read_md_files): Likewise.
24116 * read-md.h (read_md_files): Likewise.
24117
24118 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
24119
24120 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
24121 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
24122 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
24123 Remove unused predicate.
24124 (register_and_not_fp_reg_operand): Ditto.
24125
24126 2016-05-06 Martin Liska <mliska@suse.cz>
24127
24128 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
24129 instead of vec as the vector is local to the function.
24130
24131 2016-05-06 Jakub Jelinek <jakub@redhat.com>
24132
24133 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
24134 avx512bw alternative.
24135
24136 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
24137 before the ashr<mode>3 pattern.
24138
24139 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
24140 v instead of x in vex or maybe_vex alternatives, use
24141 maybe_evex instead of vex in prefix.
24142
24143 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
24144 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
24145 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
24146 in vex or maybe_vex alternatives, use maybe_evex instead of vex
24147 in prefix.
24148
24149 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
24150 v instead of x in vex or maybe_vex alternatives, use
24151 maybe_evex instead of vex in prefix.
24152
24153 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
24154 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
24155 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
24156 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
24157 alternatives, use maybe_evex instead of vex in prefix.
24158
24159 * config/i386/sse.md (vec_interleave_lowv4sf,
24160 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
24161 v instead of x in vex or maybe_vex alternatives, use
24162 maybe_evex instead of vex in prefix.
24163
24164 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
24165 v instead of x in vex or maybe_vex alternatives, use
24166 maybe_evex instead of vex in prefix.
24167
24168 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
24169 v constraint instead of x.
24170
24171 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
24172
24173 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
24174 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
24175 equality first.
24176
24177 2016-05-06 Richard Biener <rguenther@suse.de>
24178
24179 PR tree-optimization/70948
24180 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24181 Properly clobber all fields of va_list for __builtin_va_start.
24182
24183 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
24184
24185 PR debug/70935
24186 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
24187 loop latch destination.
24188
24189 2016-05-06 Martin Liska <mliska@suse.cz>
24190
24191 * tree-ssa-uninit.c: Apply manual changes
24192 to the GNU coding style.
24193 (prune_uninit_phi_opnds): Rename from
24194 prune_uninit_phi_opnds_in_unrealizable_paths.
24195
24196 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
24197
24198 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
24199 mspace): Remove deprecated options.
24200 * doc/invoke.texi (SH options): Remove -mspace.
24201
24202 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
24203
24204 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
24205
24206 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
24207
24208 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
24209 corresponding combine split pattern.
24210
24211 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
24212
24213 PR target/58219
24214 * config/sh/predicates.md (long_displacement_mem_operand): New.
24215 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
24216 Add movi20, movi20s alternatives. Adjust length attribute for
24217 alternatives.
24218 (movsi_ie): Allow for any FPU. Adjust length attribute for
24219 alternatives.
24220 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
24221 attribute for alternatives.
24222 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
24223 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
24224 length attribute for alternatives.
24225
24226 2016-05-06 Richard Biener <rguenther@suse.de>
24227
24228 PR tree-optimization/70960
24229 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
24230
24231 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
24232
24233 PR target/52933
24234 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
24235 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
24236
24237 2016-05-06 Marek Polacek <polacek@redhat.com>
24238
24239 PR sanitizer/70875
24240 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
24241
24242 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
24243
24244 PR target/54089
24245 * config/sh/sh.md (*rotcr): Add another variant.
24246
24247 2016-05-06 Richard Biener <rguenther@suse.de>
24248
24249 PR middle-end/70931
24250 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
24251
24252 2016-05-06 Richard Biener <rguenther@suse.de>
24253
24254 PR middle-end/70941
24255 * fold-const.c (split_tree): Always convert to the original type
24256 before negating.
24257
24258 2016-05-06 Richard Biener <rguenther@suse.de>
24259
24260 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
24261 (fwprop_addr): Likewise.
24262
24263 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
24264
24265 PR target/70873
24266 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
24267 New prototype.
24268 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
24269 * config/i386/i386.md (push mem splitter): Use find_constant_src in
24270 the splitter condition.
24271 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
24272 the splitter condition.
24273 (FP float_extend load splitter): Ditto.
24274
24275 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
24276
24277 * config/i386/i386.md (peehole2 patterns): Change true_regnum
24278 to REGNO in all peephole2 patterns.
24279 (post-reload splitters): Change true_regnum to REGNO in
24280 post-reload splitters.
24281 (zero_extend splitters): Use general_reg_operand and
24282 nonimmediate_gr_operand predicates.
24283
24284 2016-05-05 Jakub Jelinek <jakub@redhat.com>
24285
24286 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
24287 v constraint instead of x.
24288
24289 2016-05-05 Alan Modra <amodra@gmail.com>
24290
24291 PR target/68662
24292 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
24293 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
24294 TARGET_NO_FP_IN_TOC for -mrelocatable.
24295 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
24296 TARGET_RELOCATABLE test.
24297 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
24298 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
24299 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
24300 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
24301 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
24302 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
24303 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
24304 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
24305 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
24306 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
24307 Likewise.
24308 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
24309 (rs6000_stack_info): Likewise.
24310 (rs6000_elf_asm_out_constructor): Likewise.
24311 (rs6000_elf_asm_out_destructor): Likewise.
24312 (rs6000_elf_declare_function_name): Likewise.
24313 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
24314 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
24315 Don't define.
24316
24317 2016-05-05 Alan Modra <amodra@gmail.com>
24318
24319 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
24320
24321 2016-05-05 Alan Modra <amodra@gmail.com>
24322
24323 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
24324 out-of-line gpr restore for one or two regs if that would add
24325 a save of lr.
24326
24327 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
24328
24329 PR target/70873
24330 * config/i386/i386.md
24331 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
24332 Change to post-epilogue_completed late splitter. Use sse_reg_operand
24333 as operand 0 predicate.
24334 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
24335 Ditto.
24336 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
24337 Ditto. Emit the pattern using RTX.
24338
24339 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
24340 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
24341 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
24342 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
24343 Ditto.
24344 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
24345 sse_reg_operand as operand 0 predicate.
24346
24347 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
24348 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
24349 instead of gen_rtx_REG.
24350 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
24351 Ditto.
24352
24353 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
24354
24355 * function.c (emit_use_return_register_into_block): Delete.
24356 (gen_return_pattern): Delete.
24357 (emit_return_into_block): Delete.
24358 (active_insn_between): Delete.
24359 (convert_jumps_to_returns): Delete.
24360 (emit_return_for_exit): Delete.
24361 (thread_prologue_and_epilogue_insns): Delete all code dealing with
24362 simple_return for shrink-wrapped blocks.
24363 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
24364 end of blocks that need one.
24365 (get_unconverted_simple_return): Delete.
24366 (convert_to_simple_return): Delete.
24367 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
24368 (convert_to_simple_return): Ditto.
24369
24370 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
24371
24372 * cfgcleanup.c (bb_is_just_return): New function.
24373 (try_optimize_cfg): Simplify jumps to return, branches to return,
24374 and branches around return.
24375
24376 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
24377
24378 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
24379 branch to a return.
24380
24381 2016-05-04 Jakub Jelinek <jakub@redhat.com>
24382
24383 PR c++/70906
24384 PR c++/70933
24385 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
24386 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
24387 assert flags & OEP_HASH_CHECK, instead of asserting it
24388 never happens. Handle TARGET_EXPR.
24389 * fold-const.c (operand_equal_p): For hash verification,
24390 or in OEP_HASH_CHECK into flags.
24391
24392 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
24393
24394 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
24395 comment.
24396 (compute_samebase_partition_bases): Fix typo.
24397
24398 2016-05-04 Jakub Jelinek <jakub@redhat.com>
24399
24400 * config/i386/sse.md (vec_interleave_highv8sf,
24401 vec_interleave_lowv8sf, vec_interleave_highv4df,
24402 vec_interleave_lowv4df): Remove constraints from expanders.
24403
24404 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
24405
24406 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
24407
24408 * tree-inline.c (expand_call_inline): Fix path dealing with
24409 making lhs of call statement undefined.
24410
24411 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
24412
24413 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
24414 Check availability on NODE, too.
24415 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
24416 (cgraph_node::call_for_symbol_and_aliases): Likewise.
24417 (varpool_node::call_for_symbol_and_aliase): Likewise.
24418 * ipa-pure-const.c (add_new_function): Analyze all bodies.
24419 (propagate_pure_const): Propagate across interposable functions, too.
24420 (skip_function_for_local_pure_const): Do not skip interposable bodies
24421 with aliases.
24422 (pass_local_pure_const::execute): Update.
24423
24424 2016-05-04 Marek Polacek <polacek@redhat.com>
24425
24426 * doc/invoke.texi: Document -Wdangling-else.
24427
24428 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
24429
24430 * config.gcc: Error out when conflicting multilib is detected. Do not
24431 loop over multilibs since no combination is legal.
24432
24433 2016-05-04 Alan Modra <amodra@gmail.com>
24434
24435 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
24436 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
24437 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
24438 Align .toc.
24439
24440 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
24441
24442 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
24443 Clean up p5600 comments.
24444
24445 2016-05-04 Richard Biener <rguenther@suse.de>
24446
24447 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
24448 constructor simplifications.
24449 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
24450
24451 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
24452
24453 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
24454 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
24455 result.set_rtx is null instead of aborting.
24456 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
24457 Always enable.
24458 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
24459 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
24460 *mov<mode>_store_postinc): New patterns.
24461
24462 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
24463
24464 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
24465 as commutative. Check both conversions are NOP.
24466 ((A & B) OP (C & B)): Remove.
24467
24468 2016-05-04 Alan Modra <amodra@gmail.com>
24469
24470 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
24471
24472 2016-05-04 Alan Modra <amodra@gmail.com>
24473
24474 PR target/70866
24475 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
24476 when cr2,3,4 are all fixed regs.
24477
24478 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
24479
24480 PR rtl-optimization/57193
24481 * opts.c (default_options_table): Revert OPT_frename_registers change.
24482 * doc/invoke.texi (-frename-registers, -O2): Likewise.
24483
24484 2016-05-03 Martin Sebor <msebor@redhat.com>
24485
24486 PR c++/66561
24487 * builtins.c (fold_builtin_FILE): New function.
24488 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
24489 (fold_builtin_0): Call them.
24490 * gimplify.c (gimplify_call_expr): Remove the handling of
24491 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
24492
24493 PR c++/66561
24494 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
24495 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
24496 constants.
24497
24498 PR c++/66639
24499 * doc/extend.texi (Function Names as Strings): Update __func__,
24500 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
24501 constants.
24502
24503 2016-05-03 Jakub Jelinek <jakub@redhat.com>
24504 Richard Biener <rguenther@suse.de>
24505
24506 PR tree-optimization/70916
24507 * tree-if-conv.c: Include cfganal.h.
24508 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
24509 and remove_fake_exit_edges around the optimization pass.
24510
24511 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
24512
24513 * cgraph.c (symbol_table::create_edge): Set inline_failed.
24514 (cgraph_edge::make_direct): Likewise.
24515 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
24516 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
24517 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
24518 (CIF_THUNK): New code.
24519 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
24520 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
24521 (compute_inline_parameters): Set inline_failed for thunks.
24522 (inline_analyze_function): Cleanup.
24523 * ipa-inline.c (can_inline_edge_p): Do not deal with
24524 call_stmt_cannot_inline_p.
24525 (can_early_inline_edge_p): Likewise.
24526 (early_inliner): Initialize inline_failed.
24527 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
24528
24529 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
24530
24531 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
24532 from nonimm_ssenomem_operand.
24533 (nonimm_ssenomem_operand): New predicate.
24534 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
24535 as operand 0 predicate.
24536 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
24537 Disable unsupported alternatives using "enabled" attribute.
24538 Use register_ssemem_operand as operand 0 predicate.
24539 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
24540
24541 2016-05-03 Marek Polacek <polacek@redhat.com>
24542
24543 PR c/70859
24544 * input.c (expansion_point_location): New function.
24545 * input.h (expansion_point_location): Declare.
24546
24547 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
24548
24549 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
24550 occurence with frame_offset_ ones.
24551
24552 2016-05-03 Alan Modra <amodra@gmail.com>
24553
24554 PR rtl-optimization/70890
24555 * ira.c (combine_and_move_insns): When moving def_insn, remove
24556 equivs on use_insn.
24557
24558 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
24559
24560 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
24561 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
24562 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
24563 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
24564
24565 2016-05-03 Alan Modra <amodra@gmail.com>
24566
24567 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
24568 for SAVE_MULTIPLE/STORE_MULTIPLE.
24569
24570 2016-05-03 Jakub Jelinek <jakub@redhat.com>
24571
24572 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
24573 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
24574
24575 2016-05-03 Richard Biener <rguenther@suse.de>
24576
24577 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
24578 default true.
24579 (gimplify_arg): Likewise.
24580 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
24581 re-writing the result to a decl if required.
24582 (internal_get_tmp_var): Add allow_ssa parameter
24583 and override into_ssa with it.
24584 (get_formal_tmp_var): Adjust.
24585 (get_initialized_tmp_var): Add allow_ssa parameter.
24586 (gimplify_arg): Add allow_ssa parameter and avoid generating
24587 SSA names for the result false.
24588 (gimplify_call_expr): If the call may return twice do not
24589 gimplify parameters into SSA.
24590 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
24591 (gimplify_modify_expr): Adjust assert. For noreturn calls
24592 with a SSA name LHS adjust its def.
24593 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
24594 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
24595 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
24596 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
24597 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
24598 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
24599 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
24600 (optimize_target_teams): Do not allow SSA names for clause operands.
24601 (gimplify_expr): Likewise for where we mark the result addressable.
24602 * passes.def (pass_init_datastructures): Remove.
24603 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
24604 (rewrite_stmt): Likewise.
24605 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
24606 (replace_locals_op): Replace SSA names.
24607 (copy_gimple_seq_and_replace_locals): Init src_cfun.
24608 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
24609 * cgraph.c (release_function_body): Free CFG annotations only
24610 when we have a CFG. Simplify.
24611 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
24612 force_gimple_operand instead of get_initialized_tmp_var.
24613 * tree-pass.h (make_pass_init_datastructures): Remove.
24614 * tree-ssa.c (execute_init_datastructures): Remove.
24615 (pass_data_init_datastructures): Likewise.
24616 (class pass_init_datastructures): Likewise.
24617 (make_pass_init_datastructures): Likewise.
24618 * omp-low.c (create_omp_child_function): Init SSA data structures.
24619 (grid_expand_target_grid_body): Likewise.
24620 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
24621 name before adding it to names_to_release.
24622 (remove_bb): Always release SSA defs.
24623 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
24624 before dereferencing it.
24625 * cgraphunit.c (init_lowered_empty_function): Always
24626 int SSA data structures.
24627 * tree-ssanames.c (release_defs): Remove assert that we are in
24628 SSA form.
24629 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
24630
24631 2016-05-03 Jakub Jelinek <jakub@redhat.com>
24632 Uros Bizjak <ubizjak@gmail.com>
24633
24634 PR rtl-optimization/70467
24635 * config/i386/predicates.md (x86_64_hilo_int_operand,
24636 x86_64_hilo_general_operand): New predicates.
24637 * config/i386/constraints.md (Wd): New constraint.
24638 * config/i386/i386.md (mode attr di): Use Wd instead of e.
24639 (general_hilo_operand): New mode attr.
24640 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
24641 instead of <general_operand>.
24642 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
24643 x86_64_hilo_general_operand instead of <general_operand>.
24644
24645 2016-05-03 Jakub Jelinek <jakub@redhat.com>
24646
24647 PR tree-optimization/70916
24648 * tree-if-conv.c (constant_or_ssa_name): Removed.
24649 (fold_build_cond_expr): Use is_gimple_val instead of
24650 constant_or_ssa_name.
24651
24652 PR tree-optimization/70916
24653 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
24654 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
24655
24656 PR target/49244
24657 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
24658 (optimize_atomic_bit_test_and): New function.
24659 (pass_fold_builtins::execute): Use it.
24660 * optabs.def (atomic_bit_test_and_set_optab,
24661 atomic_bit_test_and_complement_optab,
24662 atomic_bit_test_and_reset_optab): New optabs.
24663 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
24664 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
24665 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
24666 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
24667 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
24668 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
24669 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
24670 * doc/md.texi (atomic_bit_test_and_set@var{mode},
24671 atomic_bit_test_and_complement@var{mode},
24672 atomic_bit_test_and_reset@var{mode}): Document.
24673 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
24674 atomic_bit_test_and_complement<mode>,
24675 atomic_bit_test_and_reset<mode>): New expanders.
24676 (atomic_bit_test_and_set<mode>_1,
24677 atomic_bit_test_and_complement<mode>_1,
24678 atomic_bit_test_and_reset<mode>_1): New insns.
24679
24680 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
24681
24682 PR rtl-optimization/70687
24683 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
24684 instead of unsigned HOST_WIDE_INT.
24685
24686 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
24687
24688 PR rtl-optimization/44281
24689 * hard-reg-set.h (struct target_hard_regs): New field
24690 x_fixed_nonglobal_reg_set.
24691 (fixed_nonglobal_reg_set): New macro.
24692 * reginfo.c (init_reg_sets_1): Initialize it.
24693 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
24694 of fixed_reg_set.
24695 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
24696
24697 2016-05-03 Bin Cheng <bin.cheng@arm.com>
24698
24699 PR tree-optimization/56541
24700 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
24701 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
24702 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
24703 (any_complicated_phi): new static variable.
24704 (aggressive_if_conv): delete.
24705 (if_convertible_phi_p): support phis with more than two arguments.
24706 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
24707 critical pred edges.
24708 (ifcvt_split_critical_edges): support phis with more than two
24709 arguments by checking new parameter. only split critical edges
24710 if needed.
24711 (tree_if_conversion): handle simd pragma marked loop using new
24712 local variable aggressive_if_conv. check any_complicated_phi.
24713
24714 2016-05-03 Bin Cheng <bin.cheng@arm.com>
24715
24716 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
24717 before using it.
24718
24719 2016-05-03 Bin Cheng <bin.cheng@arm.com>
24720
24721 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
24722 cbase.
24723
24724 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
24725
24726 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
24727 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
24728 define_insn_and_split.
24729 (mulsi3_i): New define_insn_and_split.
24730 (mulsi3_call): Convert to define_insn.
24731 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
24732 Remove constraints.
24733
24734 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
24735
24736 * machmode.h (mode_complex): Add support to give the complex mode
24737 for a given mode.
24738 (GET_MODE_COMPLEX_MODE): Likewise.
24739 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
24740 stored by build_complex_type and gfc_build_complex_type instead of
24741 trying to figure out the appropriate mode based on the size. Raise
24742 an assertion error, if the type was not set.
24743 * genmodes.c (struct mode_data): Add field for the complex type of
24744 the given type.
24745 (blank_mode): Likewise.
24746 (make_complex_modes): Remember the complex mode created in the
24747 base type.
24748 (emit_mode_complex): Write out the mode_complex array to map a
24749 type mode to the complex version.
24750 (emit_insn_modes_c): Likewise.
24751 * tree.c (build_complex_type): Set the complex type to use before
24752 calling layout_type.
24753 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
24754 support for __float128 complex datatypes.
24755 (rs6000_hard_regno_mode_ok): Likewise.
24756 (rs6000_setup_reg_addr_masks): Likewise.
24757 (rs6000_complex_function_value): Likewise.
24758 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
24759 __float128 and __ibm128 complex.
24760 (FLOAT128_IBM_P): Likewise.
24761 (ALTIVEC_ARG_MAX_RETURN): Likewise.
24762 * doc/extend.texi (Additional Floating Types): Document that
24763 -mfloat128 must be used to enable __float128. Document complex
24764 __float128 and __ibm128 support.
24765
24766 2016-05-02 Jakub Jelinek <jakub@redhat.com>
24767
24768 PR target/49244
24769 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
24770 char/short arguments promoted to int because of promote_prototypes.
24771
24772 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
24773
24774 * config/i386/predicates.md (register_ssemem_operand): New predicate.
24775 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
24776 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
24777 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
24778 alternatives using "enabled" attribute. Use register_ssemem_operand
24779 as operand 1 predicate.
24780 (*cmpi<unord>xf_i387): Split XFmode pattern from
24781 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
24782 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
24783 *absneg<mode>2_i387. Disable unsupported alternatives using
24784 "enabled" attribute.
24785 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
24786
24787 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
24788
24789 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
24790 marker.
24791 (oacc_loop_process): Check mask for loop termination.
24792
24793 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
24794
24795 * cif-code.def (CIF_THUNK): Add.
24796 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
24797 accidental change.
24798
24799 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
24800
24801 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
24802 (dump_inline_summary): Dump it.
24803 (fp_expression_p): New predicate.
24804 (estimate_function_body_sizes): Use it.
24805 (inline_merge_summary): Merge fp_expressions.
24806 (inline_read_section): Read fp_expressions.
24807 (inline_write_summary): Write fp_expressions.
24808 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
24809 codegen boundary if either caller or callee is !fp_expressions.
24810 * ipa-inline.h (inline_summary): Add fp_expressions.
24811 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
24812 to fp_expressions be sure the fp generation flags are updated.
24813
24814 2016-05-02 Jakub Jelinek <jakub@redhat.com>
24815
24816 PR rtl-optimization/70467
24817 * cse.c (cse_insn): Handle no-op MEM moves after folding.
24818
24819 PR rtl-optimization/70467
24820 * ipa-pure-const.c (check_call): Handle internal calls even in
24821 ipa mode like in local mode.
24822
24823 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
24824
24825 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
24826
24827 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
24828
24829 * match.pd (X u< X, X u> X): New transformations.
24830
24831 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
24832
24833 * flag-types.h (enum warn_strict_overflow_code): Move ...
24834 * coretypes.h: ... here.
24835 * fold-const.h (fold_overflow_warning): Declare.
24836 * fold-const.c (fold_overflow_warning): Make non-static.
24837 (fold_comparison): Move the transformation of X +- C1 CMP C2
24838 into X CMP C2 -+ C1 ...
24839 * match.pd: ... here.
24840 * gimple-fold.c (fold_stmt_1): Protect with
24841 fold_defer_overflow_warnings.
24842
24843 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
24844
24845 * omp-low.c (struct oacc_loop): Add 'inner' field.
24846 (new_oacc_loop_raw): Initialize it to zero.
24847 (oacc_loop_fixed_partitions): Initialize it.
24848 (oacc_loop_auto_partitions): Partition outermost loop to outermost
24849 available partitioning.
24850
24851 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
24852
24853 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
24854 register_operand.
24855 (umulsidi3): Likewise.
24856 (indirect_jump): Fix jump instruction assembly patterns.
24857
24858 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
24859
24860 PR target/70860
24861 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
24862 (nvptx_function_value): Assert non-NULL cfun.
24863
24864 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
24865
24866 PR rtl-optimization/70886
24867 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
24868
24869 * cselib.h (rtx_equal_for_cselib_1): Declare.
24870 (rtx_equal_for_cselib_p: New inline function.
24871 * cselib.c (rtx_equal_for_cselib_p): Delete.
24872 (rtx_equal_for_cselib_1): Make public.
24873
24874 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
24875
24876 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
24877 (register_mixssei387nonimm_operand): Remove predicate.
24878 * config/i386/i386.md (*fop_<mode>_comm): Merge from
24879 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
24880 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
24881 for TARGET_MIX_SSE_I387 alternatives.
24882 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
24883 Disable unsupported alternatives using "enabled" attribute. Use
24884 nonimm_ssenomem_operand as operand 1 predicate. Also check
24885 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
24886
24887 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
24888
24889 * tree.c (cst_and_fits_in_hwi): Simplify.
24890
24891 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
24892
24893 * tree.h (wi::to_wide): New function.
24894 * expr.c (expand_expr_real_1): Use wi::to_wide.
24895 * fold-const.c (int_const_binop_1): Likewise.
24896 (extract_muldiv_1): Likewise.
24897
24898 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
24899
24900 * wide-int.h: Update offset_int and widest_int documentation.
24901 (WI_SIGNED_SHIFT_RESULT): New macro.
24902 (wi::binary_shift): Define signed_shift_result_type for
24903 shifts on offset_int- and widest_int-like types.
24904 (generic_wide_int): Support <<= and >>= if << and >> are supported.
24905 * tree.h (int_bit_position): Use shift operators instead of wi::
24906 shifts.
24907 * alias.c (adjust_offset_for_component_ref): Likewise.
24908 * expr.c (get_inner_reference): Likewise.
24909 * fold-const.c (fold_comparison): Likewise.
24910 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
24911 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
24912 * tree-dfa.c (get_ref_base_and_extent): Likewise.
24913 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
24914 (stmt_kills_ref_p): Likewise.
24915 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
24916 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
24917 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
24918 (ao_ref_init_from_vn_reference): Likewise.
24919
24920 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
24921
24922 * wide-int.h: Update offset_int and widest_int documentation.
24923 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
24924 (wi::binary_traits): Allow ordered comparisons between offset_int and
24925 offset_int, between widest_int and widest_int, and between either
24926 of these types and basic C types.
24927 (operator <, <=, >, >=): Define for the same combinations.
24928 * tree.h (tree_int_cst_lt): Use comparison operators instead
24929 of wi:: comparisons.
24930 (tree_int_cst_le): Likewise.
24931 * gimple-fold.c (fold_array_ctor_reference): Likewise.
24932 (fold_nonarray_ctor_reference): Likewise.
24933 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
24934 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
24935 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
24936 * tree-sra.c (completely_scalarize): Likewise.
24937 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
24938 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
24939 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
24940 (check_for_binary_op_overflow): Likewise.
24941 (search_for_addr_array): Likewise.
24942 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
24943
24944 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
24945
24946 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
24947 (arc_save_restore): Likewise.
24948 (arc_dwarf_register_span): Likewise.
24949 (arc_output_pic_addr_const): Initialize suffix variable.
24950
24951 2016-05-02 Martin Liska <mliska@suse.cz>
24952
24953 * symbol-summary.h (function_summary::function_summary):
24954 Remove checking assert for all cgraph nodes.
24955 (function_summary::get): Check summary_uid.
24956 (symtab_insertion): Check summary_uid.
24957
24958 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
24959
24960 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
24961 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
24962 bmaskn instruction.
24963 (arc_dwarf_register_span): Remove enum keyword.
24964 (compact_memory_operand_p): New function.
24965 * config/arc/arc.h (reg_class): Add code density register classes.
24966 (REG_CLASS_NAMES): Likewise.
24967 (REG_CLASS_CONTENTS): Likewise.
24968 * config/arc/arc.md (*movqi_insn): Add code density instructions.
24969 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
24970 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
24971 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
24972 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
24973 constraints.
24974 (h, Rcd, Rsd, Rzd): New register constraints.
24975 (T): Use compact_memory_operand_p function.
24976 * config/arc/predicates.md (compact_load_memory_operand): Remove.
24977
24978 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
24979
24980 * config/sh/sh.md (*negnegt, *movtt): Remove.
24981
24982 2016-05-02 Marek Polacek <polacek@redhat.com>
24983 Tom de Vries <tom@codesourcery.com>
24984
24985 PR tree-optimization/70700
24986 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
24987 bigger than FIRST_REF_NODE.
24988
24989 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
24990
24991 PR target/52898
24992 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
24993 TARGET_CMPEQDI_T.
24994 (prepare_cbranch_operands): Don't use scratch register. Assume that
24995 function is used when pseudos can be created.
24996 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
24997 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
24998 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
24999 define_expand. Allow it only when pseudos can be created.
25000 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
25001
25002 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
25003
25004 * config/i386/constraints.md (BC): Only allow -1 operands.
25005 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
25006 Add "enabled" attribute. Update XI mode attribute calculation.
25007 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
25008 (*movoi_internal_avx): Update XI mode attribute calculation.
25009 (*movti_internal): Ditto.
25010
25011 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
25012
25013 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
25014 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
25015
25016 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
25017
25018 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
25019 statement on instruction code. Remove trailing spaces.
25020 (altivec_expand_stv_builtin): Likewise.
25021
25022 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
25023
25024 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
25025 (TARGET_FPU_DOUBLE): Simplify.
25026 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
25027 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
25028 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
25029 with 'TARGET_FPU_DOUBLE'.
25030 * config/sh/sh.md: Likewise.
25031
25032 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
25033
25034 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
25035 SH_DIV_STR_FOR_SIZE): Remove.
25036 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
25037 SH_DIV_STR_FOR_SIZE): Remove.
25038
25039 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
25040
25041 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
25042 logical_reg_operand): Delete.
25043 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
25044 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
25045 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
25046 match_operand and match_test.
25047 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
25048 variables on their first use. Return bool values.
25049 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
25050 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
25051 arith_reg_operand for input operand. Remove empty constraints.
25052 (xorsi3): Delete.
25053 (*xorsi3_compact): Rename to xorsi3.
25054 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
25055 (*zero_extend<mode>si2_disp_mem): Update comment.
25056 (mov_nop): Delete.
25057
25058 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
25059
25060 * config/sh/t-sh: Remove SH5 support.
25061 * config.gcc: Likewise.
25062 * configure: Likewise.
25063
25064 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25065
25066 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
25067
25068 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
25069
25070 * config/sh/sh.c (register_sh_passes, sh_option_override,
25071 sh_print_operand, prepare_move_operands,
25072 sh_can_follow_jump): Remove TARGET_SH1 checks.
25073 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
25074 PROMOTE_MODE): Likewise.
25075 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
25076 movdi): Likewise.
25077
25078 2016-04-30 Alan Modra <amodra@gmail.com>
25079
25080 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
25081 restoring when fixed_reg_p, but allow out-of-line or stmw save.
25082 Check for user regs later to avoid unnecessary looping over regs.
25083 Merge user reg check with non-saved reg check. Don't force
25084 inline VR restore when static chain used.
25085 (rs6000_frame_related): Omit eh_frame info for user regs when
25086 saving.
25087 (fixed_regs_p): Delete.
25088
25089 2016-04-30 Alan Modra <amodra@gmail.com>
25090
25091 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
25092 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
25093 Update all uses.
25094
25095 2016-04-30 Alan Modra <amodra@gmail.com>
25096
25097 PR target/69645
25098 * config/rs6000/rs6000.c (fixed_reg_p): New function.
25099 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
25100 Update all uses.
25101
25102 2016-04-30 Alan Modra <amodra@gmail.com>
25103
25104 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
25105 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
25106 flag_pic test for Darwin.
25107
25108 2016-04-30 Alan Modra <amodra@gmail.com>
25109
25110 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
25111 throw_calls_crossed.
25112 (REG_FREQ_CALLS_CROSSED): Delete.
25113 (REG_N_THROWING_CALLS_CROSSED): Delete.
25114 * regstat.c (regstat_bb_compute_ri): Don't calculate
25115 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
25116 (dump_reg_info): Don't print call cross frequency.
25117 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
25118 and REG_N_THROWING_CALLS_CROSSED.
25119
25120 2016-04-30 Alan Modra <amodra@gmail.com>
25121
25122 * regs.h (struct reg_info_t): Delete live_length.
25123 (REG_LIVE_LENGTH): Delete macro.
25124 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
25125 local_live, local_processed and local_live_last_luid params.
25126 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
25127 Formatting fixes.
25128 (regstat_compute_ri): Adjust for above. Don't set
25129 REG_LIVE_LENGTH.
25130 (dump_reg_info): Don't print live length.
25131 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
25132 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
25133 Localize loop_depth var.
25134
25135 2016-04-30 Alan Modra <amodra@gmail.com>
25136
25137 * ira.c (enum valid_equiv): New.
25138 (validate_equiv_mem): Return enum.
25139 (update_equiv_mem): Create replacement in more cases.
25140 (add_store_equivs): Update validate_equiv_mem call.
25141
25142 2016-04-30 Alan Modra <amodra@gmail.com>
25143
25144 * ira.c (combine_and_move_insns): Rather than scanning insns,
25145 use DF infrastucture to find use and def insns.
25146
25147 2016-04-30 Alan Modra <amodra@gmail.com>
25148
25149 ira.c (combine_and_move_insns): Move invariant conditions..
25150 (ira.c): ..to here. Call combine_and_move_insns before
25151 add_store_equivs. Call grow_reg_equivs later. Allocate
25152 req_equiv later using max_reg_num() rather than global max_regno.
25153 (contains_replace_regs): Delete.
25154 (add_store_equivs): Remove contains_replace_regs test.
25155
25156 2016-04-30 Alan Modra <amodra@gmail.com>
25157
25158 * ira.c (struct equiv_mem_data): New.
25159 (equiv_mem, equiv_mem_modified): Delete static vars.
25160 (validate_equiv_mem_from_store): Use "data" param to communicate..
25161 (validate_equiv_mem): ..from here.
25162
25163 2016-04-30 Alan Modra <amodra@gmail.com>
25164
25165 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
25166 split out from..
25167 (update_reg_equivs): ..here. Move allocation and freeing of
25168 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
25169 end_alias_analysis to..
25170 (ira): ..here.
25171
25172 2016-04-30 Alan Modra <amodra@gmail.com>
25173
25174 * ira.c (pdx_subregs): Delete.
25175 (struct equivalence): Add pdx_subregs field.
25176 (set_paradoxical_subreg): Remove pdx_subregs param. Update
25177 pdx_subregs access.
25178 (update_equiv_regs): Don't create or free pdx_subregs. Update
25179 pdx_subregs access.
25180
25181 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25182
25183 * config/rs6000/altivec.h: Change definitions of vec_xl and
25184 vec_xst.
25185 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
25186 (LD_ELEMREV_V2DI): New.
25187 (LD_ELEMREV_V4SF): New.
25188 (LD_ELEMREV_V4SI): New.
25189 (LD_ELEMREV_V8HI): New.
25190 (LD_ELEMREV_V16QI): New.
25191 (ST_ELEMREV_V2DF): New.
25192 (ST_ELEMREV_V2DI): New.
25193 (ST_ELEMREV_V4SF): New.
25194 (ST_ELEMREV_V4SI): New.
25195 (ST_ELEMREV_V8HI): New.
25196 (ST_ELEMREV_V16QI): New.
25197 (XL): New.
25198 (XST): New.
25199 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25200 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
25201 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
25202 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
25203 (altivec_expand_builtin): Add handling for
25204 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
25205 (rs6000_invalid_builtin): Add error-checking for
25206 RS6000_BTM_P9_VECTOR.
25207 (altivec_init_builtins): Define builtins used to implement vec_xl
25208 and vec_xst.
25209 (rs6000_builtin_mask_names): Define power9-vector.
25210 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
25211 (RS6000_BTM_P9_VECTOR): Define.
25212 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
25213 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
25214 (vsx_ld_elemrev_v2df): Likewise.
25215 (vsx_ld_elemrev_v4sf): Likewise.
25216 (vsx_ld_elemrev_v4si): Likewise.
25217 (vsx_ld_elemrev_v8hi): Likewise.
25218 (vsx_ld_elemrev_v16qi): Likewise.
25219 (vsx_st_elemrev_v2df): Likewise.
25220 (vsx_st_elemrev_v2di): Likewise.
25221 (vsx_st_elemrev_v4sf): Likewise.
25222 (vsx_st_elemrev_v4si): Likewise.
25223 (vsx_st_elemrev_v8hi): Likewise.
25224 (vsx_st_elemrev_v16qi): Likewise.
25225 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
25226 grammar.
25227
25228 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
25229
25230 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
25231 out into ...
25232 (simplify_control_stmt_condition_1): ... here. Recurse into
25233 BIT_AND_EXPRs and BIT_IOR_EXPRs.
25234
25235 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
25236
25237 PR target/69810
25238 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
25239 (zero_extendqi<mode>2_dot): Revert earlier conversion from
25240 define_insn_and_split to define_insn.
25241 (zero_extendqi<mode>2_dot2): Same.
25242 (extendqi<mode>2_dot): Same.
25243 (extendqi<mode>2_dot2): Same.
25244
25245 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
25246
25247 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
25248 (probe_stack): New expander.
25249 (probe_stack_<mode>): New insn pattern.
25250
25251 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
25252
25253 * config/i386/i386.md
25254 (operations with memory inputs setting flags peephole2):
25255 Remove uneeded REG_P checks. Cleanup pattern generation.
25256
25257 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
25258
25259 * tree-vect-loop.c (vect_transform_loop): Fix
25260 nb_iterations_upper_bound computation for vectorized loop.
25261
25262 2016-04-29 Marek Polacek <polacek@redhat.com>
25263 Jakub Jelinek <jakub@redhat.com>
25264
25265 PR sanitizer/70342
25266 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
25267 TARGET_EXPR_SLOT as a base.
25268
25269 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
25270
25271 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
25272 with 'rCm2' constraints to limit possible immediate size.
25273 (*load_zeroextendqisi_update): Likewise.
25274 (*load_signextendqisi_update): Likewise.
25275 (*loadhi_update): Likewise.
25276 (*load_zeroextendhisi_update): Likewise.
25277 (*load_signextendhisi_update): Likewise.
25278 (*loadsi_update): Likewise.
25279 (*loadsf_update): Likewise.
25280
25281 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
25282
25283 * config/i386/predicates.md (constm1_operand): Fix comparison.
25284
25285 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
25286
25287 * testsuite/gcc.target/arc/ieee_eq.c: New test.
25288
25289 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
25290
25291 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
25292 remaining SH5 related settings.
25293 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
25294 shmedia_prepare_call_address): Delete.
25295 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
25296 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
25297 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
25298 UNSUPPORTED_SH2A): Remove m5 checks.
25299 (sh_divide_strategy_e): Remove SH5 division strategies.
25300 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
25301 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
25302
25303 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
25304
25305 * config/s390/s390.c (s390_rtx_costs): Update documentation.
25306
25307 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25308
25309 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
25310 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
25311 Change lder to ldr.
25312 * config/s390/vector.md ("mov<mode>"): Likewise.
25313
25314 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
25315
25316 * config/s390/constraints.md ("U", "W"): Invoke
25317 s390_mem_constraint with "ZR" and "ZT".
25318 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
25319 addresses when using LRA. Accept also short displacements for S
25320 and T constraints. Do not check for long displacement target for
25321 S and T constraints.
25322 (s390_mem_constraint): Remove handling of U and W constraints.
25323 * config/s390/s390.md (various patterns): Remove the short
25324 displacement constraints (Q and R) if a long displacement
25325 constraint is present. Add longdisp as required CPU capability.
25326 * config/s390/vector.md: Likewise.
25327 * config/s390/vx-builtins.md: Likewise.
25328
25329 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
25330
25331 PR target/60040
25332 * reload1.c (reload): Call finish_spills before
25333 restarting reload loop. Skip select_reload_regs
25334 if update_eliminables_and_spill returns true.
25335
25336 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
25337
25338 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
25339 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
25340 (umulhisi3_imm): Update predicates and constraint letters.
25341 (umulhisi3_reg): Declare instruction as commutative.
25342 * config/arc/constraints.md (J12, J16): New constraints.
25343 * config/arc/predicates.md (short_unsigned_const_operand): New
25344 predicate.
25345 (arc_short_operand): Likewise.
25346 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
25347
25348 2016-04-29 Richard Biener <rguenther@suse.de>
25349
25350 PR tree-optimization/13962
25351 PR tree-optimization/65686
25352 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
25353 * tree-ssa-alias.c (ptrs_compare_unequal): New function
25354 using PTA to compare pointers.
25355 * match.pd: Add pattern for pointer equality compare simplification
25356 using ptrs_compare_unequal.
25357
25358 2016-04-29 Richard Biener <rguenther@suse.de>
25359
25360 * stor-layout.c (layout_type): Do not build a pointer-to-element
25361 type for arrays.
25362
25363 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
25364
25365 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
25366 Use SWI mode iterator. Use general_reg_operand predicate.
25367 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
25368 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
25369 predicates.
25370
25371 2016-04-29 Jakub Jelinek <jakub@redhat.com>
25372
25373 PR middle-end/70843
25374 * fold-const.c (operand_equal_p): Don't verify hash value equality
25375 if arg0 == arg1.
25376 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
25377 and OMP_CLAUSE.
25378
25379 2016-04-28 Jakub Jelinek <jakub@redhat.com>
25380
25381 PR target/70858
25382 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
25383 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
25384 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
25385 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
25386 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
25387
25388 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
25389
25390 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
25391 to info. Don't initialize separate fields to 0. Clean up
25392 formatting a bit.
25393
25394 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
25395
25396 * config/i386/i386.md (peephole2s for operations with memory inputs):
25397 Use SWI mode iterator.
25398 (peephole2s for operations with memory outputs): Ditto.
25399 Do not check for stack checking probe.
25400
25401 (probe_stack): Remove expander.
25402
25403 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
25404 Andrew Burgess <andrew.burgess@embecosm.com>
25405
25406 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
25407 operands as 32-bits.
25408
25409 2016-04-28 Jason Merrill <jason@redhat.com>
25410
25411 * gdbinit.in: Skip line-map.h.
25412
25413 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
25414 Andrew Burgess <andrew.burgess@embecosm.com>
25415
25416 * config/arc/arc.c (arc_conditional_register_usage): Take
25417 TARGET_RRQ_CLASS into account.
25418 (arc_print_operand): Support printing 'p' and 's' operands.
25419 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
25420 as 0.
25421 (TARGET_RRQ_CLASS): Define.
25422 (IS_POWEROF2_OR_0_P): Define.
25423 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
25424 alternatives.
25425 (*tst_movb): New define_insn.
25426 (*tst): Avoid recognition if it could prevent '*tst_movb'
25427 combination; replace c/CnL with c/Chs alternative.
25428 (*tst_bitfield_tst): New define_insn.
25429 (*tst_bitfield_asr): New define_insn.
25430 (*tst_bitfield): New define_insn.
25431 (andsi3_i): Add Rrq variant.
25432 (extzv): New define_expand.
25433 (insv): New define_expand.
25434 (*insv_i): New define_insn.
25435 (*movb): New define_insn.
25436 (*movb_signed): New define_insn.
25437 (*movb_high): New define_insn.
25438 (*movb_high_signed): New define_insn.
25439 (*movb_high_signed + 1): New define_split pattern.
25440 (*mrgb): New define_insn.
25441 (*mrgb + 1): New define_peephole2 pattern.
25442 (*mrgb + 2): New define_peephole2 pattern.
25443 * config/arc/arc.opt (mbitops): New option for nps400, uses
25444 TARGET_NPS_BITOPS_DEFAULT.
25445 * config/arc/constraints.md (q): Make register class conditional.
25446 (Rrq): New register constraint.
25447 (Chs): New constraint.
25448 (Clo): New constraint.
25449 (Chi): New constraint.
25450 (Cbf): New constraint.
25451 (Cbn): New constraint.
25452 (C18): New constraint.
25453 (Cbi): New constraint.
25454
25455 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
25456
25457 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
25458 dst->popcount.
25459 (bitmap_intersection_of_preds): Ditto.
25460 (bitmap_union_of_succs): Ditto.
25461 (bitmap_union_of_preds): Ditto.
25462 * sbitmap.c (do_popcount): Delete.
25463 (BITMAP_DEBUGGING): Delete.
25464 (sbitmap_verify_popcount): Delete.
25465 (sbitmap_alloc): Don't initialize the popcount field.
25466 (sbitmap_alloc_with_popcount): Delete.
25467 (sbitmap_resize): Don't resize the popcount array.
25468 (sbitmap_vector_alloc): Don't initialize the popcount field.
25469 (bitmap_copy): Don't copy the popcount array.
25470 (bitmap_clear): Don't clear the popcount array.
25471 (bitmap_clear): Delete the popcount array handling.
25472 (bitmap_ior_and_compl): Delete the popcount assert.
25473 (bitmap_not): Ditto.
25474 (bitmap_and_compl): Ditto.
25475 (bitmap_and): Delete the popcount array handling.
25476 (bitmap_xor): Ditto.
25477 (bitmap_ior): Ditto.
25478 (bitmap_or_and): Delete the popcount assert.
25479 (bitmap_and_or): Ditto.
25480 (popcount_table): Delete.
25481 (sbitmap_elt_popcount): Delete.
25482 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
25483 (bitmap_set_bit): Delete the popcount assert.
25484 (bitmap_clear_bit): Ditto.
25485 (sbitmap_free): Don't free the popcount array.
25486 (sbitmap_alloc_with_popcount): Delete declaration.
25487 (sbitmap_popcount): Ditto.
25488
25489 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
25490 Andrew Burgess <andrew.burgess@embecosm.com>
25491
25492 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
25493 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
25494 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
25495 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
25496 * config/arc/arc.opt (mcmem): New option.
25497 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
25498 supply length for r/m alternative.
25499 (*extendqisi2_ac): Likewise.
25500 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
25501 r/Uex alternative.
25502 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
25503 (movhi_insn): Likewise.
25504 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
25505 (*zero_extendqihi2_i): Add r/Ucm alternative.
25506 (*zero_extendqisi2_ac): Likewise.
25507 (*zero_extendhisi2_i): Likewise.
25508 * config/arc/constraints.md (Uex): New memory constraint.
25509 (Ucm): New define_constraint.
25510 * config/arc/predicates.md (long_immediate_loadstore_operand):
25511 Return 0 for MEM with cmem_address address.
25512 (cmem_address_0): New predicates.
25513 (cmem_address_1): Likewise.
25514 (cmem_address_2): Likewise.
25515 (cmem_address): Likewise.
25516
25517 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
25518
25519 * config/rs6000/rs6000.c (machine_function): Rename
25520 insn_chain_scanned_p to spe_insn_chain_scanned_p.
25521 (rs6000_stack_info): Adjust.
25522
25523 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
25524 Andrew Burgess <andrew.burgess@embecosm.com>
25525
25526 * config/arc/constraints.md (Usd): Convert to define_constraint.
25527 (Us<): Likewise.
25528 (Us>): Likewise.
25529
25530 2016-04-28 Jakub Jelinek <jakub@redhat.com>
25531
25532 PR target/70821
25533 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
25534 Add new peephole2 where the first insn is *mov<mode>_or instead of
25535 *mov<mode>_internal.
25536
25537 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
25538
25539 * tracer.c (bb_seen): Make static.
25540
25541 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
25542
25543 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
25544 support, setup defaults.
25545 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
25546 * config/arc/arc.c (arc_init): Add NPS400 support.
25547 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
25548 (TARGET_ARC700): NPS400 is also an ARC700.
25549 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
25550
25551 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
25552
25553 PR target/70668
25554 * config/nds32/nds32.md (casesi): Don't access the operands array
25555 out of bounds.
25556
25557 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
25558
25559 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
25560 (or $-1,reg peephole2): Ditto.
25561 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
25562
25563 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
25564
25565 * doc/extend.texi (Common Function Attributes) [optimize]:
25566 Discourage use of the optimize attribute.
25567
25568 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
25569
25570 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
25571 special case builtin.
25572 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
25573 ALTIVEC_BUILTIN_VEC_ADDE.
25574 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
25575 support for ALTIVEC_BUILTIN_VEC_ADDE.
25576 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
25577 for __builtin_vec_adde.
25578
25579 2016-04-28 Jakub Jelinek <jakub@redhat.com>
25580
25581 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
25582 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
25583
25584 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25585
25586 PR testsuite/70595
25587 * doc/sourcebuild.texi (Effective-Target Keywords, Other
25588 attributes): Document cilkplus_runtime.
25589
25590 2016-04-28 Martin Jambor <mjambor@suse.cz>
25591
25592 * tree-cfg.c (verify_expr): Verify that local declarations belong to
25593 this function. Call verify_expr on MEM_REFs and bases of other
25594 handled_components.
25595
25596 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25597
25598 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
25599 for WORD_REGISTER_OPERATIONS to runtime check.
25600
25601 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
25602
25603 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
25604
25605 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
25606
25607 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
25608 big-endian compilation.
25609 * config/arc/arc.md (addf3): Likewise.
25610 (subdf3): Likewise.
25611 (muldf3): Likewise.
25612
25613 2016-04-28 Richard Biener <rguenther@suse.de>
25614
25615 PR tree-optimization/70840
25616 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
25617 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
25618 Mark x * pow(x,c) -> pow(x,c+1) commutative.
25619 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
25620
25621 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25622
25623 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
25624 and explain why in a comment.
25625
25626 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
25627
25628 * config/arc/arc.md (cpu_facility): Add fpx variant.
25629 (subdf3): Prohibit use reverse sub when assist operations option
25630 is enabled.
25631 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
25632 instructions only when FPX is enabled.
25633 * testsuite/gcc.target/arc/trsub.c: New test.
25634
25635 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
25636
25637 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
25638 mult_operator when calculating "type" attribute.
25639 (*fop_<mode>_1_i387): Ditto.
25640 (*fop_xf_1_i387): Ditto.
25641 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
25642 Use std::swap to swap operands. Use RTL expressions to generate
25643 converted pattern.
25644
25645 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
25646 Joern Rennecke <joern.rennecke@embecosm.com>
25647
25648 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
25649 declaration.
25650 (emit_pic_move): Remove.
25651 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
25652 * config/arc/arc.c (emit_pic_move): Removed.
25653 (TARGET_HAVE_TLS): Define.
25654 (arc_conditional_register_usage): Test for arc_tp_regno.
25655 (arc_print_operand, arc_print_operand_address): Handle TLS
25656 unspecs.
25657 (arc_needs_pcl_p): New function.
25658 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
25659 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
25660 (arc_raw_symbolic_reference_mentioned_p): Likewise.
25661 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
25662 (arc_legitimize_tls_address): Likewise.
25663 (DTPOFF_ZERO_SYM): Define.
25664 (arc_legitimize_pic_address): Make it static, handle TLS cases.
25665 (arc_output_pic_addr_const): Print TLS unspecs.
25666 (prepare_pic_move): New function, replaces emit_pic_move.
25667 (arc_legitimate_constant_p): Handle TLS unspecs.
25668 (arc_legitimate_address_p): Likewise.
25669 (arc_rewrite_small_data_p): Use assert for TLS constants.
25670 (prepare_move_operands): Use prepare_pic_move.
25671 (arc_legitimize_address): Legitimize tls addresses.
25672 (arc_epilogue_uses): Check for arc_tp_regno.
25673 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
25674 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
25675 Define.
25676 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
25677 Likewise.
25678 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
25679 %(arc_tls_extra_start_spec).
25680 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
25681 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
25682 (EH_USES): Define.
25683 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
25684 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
25685 (UNSPEC_TLS_OFF): Add.
25686 (R10_REG): Define.
25687 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
25688 (get_thread_pointersi): New patterns.
25689 * config/arc/arc.opt (mtp-regno): New option.
25690 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
25691 (move_dest_operand): Likewise.
25692 * configure: Regenerate.
25693 * configure.ac: Add arc*-*-* case to test for tls.
25694 * doc/invoke.texi (ARC options): Document mtp-regno.
25695
25696 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
25697
25698 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
25699 the new ARC HS SIMD instructions.
25700 (arc_preferred_simd_mode): New function.
25701 (arc_autovectorize_vector_sizes): Likewise.
25702 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
25703 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
25704 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
25705 (arc_init_builtins): Add new SIMD builtin types.
25706 (arc_split_move): Handle 64 bit vector moves.
25707 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
25708 (TARGET_PLUS_QMACW): Define.
25709 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
25710 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
25711 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
25712 (VSUBADD4H): New builtins.
25713 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
25714 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
25715
25716 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
25717 Matthias Klose <doko@debian.org>
25718
25719 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
25720
25721 2016-04-28 Richard Biener <rguenther@suse.de>
25722
25723 PR middle-end/70777
25724 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
25725 canonicalization.
25726
25727 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
25728
25729 * common/config/sh/sh-common.c: Remove SH5 support.
25730 * config/sh/constraints.md: Likewise.
25731 * config/sh/config/sh/elf.h: Likewise.
25732 * config/sh/linux.h: Likewise.
25733 * config/sh/netbsd-elf.h: Likewise.
25734 * config/sh/predicates.md: Likewise.
25735 * config/sh/sh-c.c: Likewise.
25736 * config/sh/sh-protos.h: Likewise.
25737 * config/sh/sh.c: Likewise.
25738 * config/sh/sh.h: Likewise.
25739 * config/sh/sh.md: Likewise.
25740 * config/sh/sh.opt: Likewise.
25741 * config/sh/sync.md: Likewise.
25742 * config/sh/sh64.h: Delete.
25743 * config/sh/shmedia.h: Likewise.
25744 * config/sh/shmedia.md: Likewise.
25745 * config/sh/sshmedia.h: Likewise.
25746 * config/sh/t-netbsd-sh5-64: Likewise.
25747 * config/sh/t-sh64: Likewise.
25748 * config/sh/ushmedia.h: Likewise.
25749
25750 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
25751
25752 * config/i386/i386.md (sign_extend to memory peephole2s): Use
25753 general_reg_operand instead of register_operand predicate.
25754
25755 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
25756
25757 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
25758
25759 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
25760
25761 * match.pd (A - B > A, A + B < A): New transformations.
25762
25763 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
25764
25765 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
25766 which defaults to true. Emit an outer pair of parentheses only if
25767 EMIT_PARENS. When continuing a chain of && or || (or & or |),
25768 don't emit parentheses for the right-hand operand.
25769
25770 2016-04-27 Jeff Law <law@redhat.com>
25771
25772 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
25773
25774 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25775
25776 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
25777 (altivec_lvx_<mode>_internal): Document.
25778 (altivec_lvx_<mode>_2op): New define_insn.
25779 (altivec_lvx_<mode>_1op): Likewise.
25780 (altivec_lvx_<mode>_2op_si): Likewise.
25781 (altivec_lvx_<mode>_1op_si): Likewise.
25782 (altivec_stvx_<mode>): Remove.
25783 (altivec_stvx_<mode>_internal): Document.
25784 (altivec_stvx_<mode>_2op): New define_insn.
25785 (altivec_stvx_<mode>_1op): Likewise.
25786 (altivec_stvx_<mode>_2op_si): Likewise.
25787 (altivec_stvx_<mode>_1op_si): Likewise.
25788 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
25789 Expand vec_ld and vec_st during parsing.
25790 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
25791 changes.
25792 (altivec_expand_stvx_be): Likewise.
25793 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
25794 address-masking behavior in RTL.
25795 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
25796 address-masking behavior in RTL.
25797 (altivec_expand_builtin): Change builtin code arguments for calls
25798 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
25799 (insn_is_swappable_p): Avoid incorrect swap optimization in the
25800 presence of lvx/stvx patterns.
25801 (alignment_with_canonical_addr): New function.
25802 (alignment_mask): Likewise.
25803 (find_alignment_op): Likewise.
25804 (recombine_lvx_pattern): Likewise.
25805 (recombine_stvx_pattern): Likewise.
25806 (recombine_lvx_stvx_patterns): Likewise.
25807 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
25808 stvx patterns from expand.
25809 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
25810 expansions.
25811 (vector_altivec_store_<mode>): Likewise.
25812
25813 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
25814
25815 * config/aarch64/aarch64.md
25816 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
25817 remove the "fp" attributes.
25818 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
25819 add the "simd" attributes.
25820 (*movdf_aarch64): Likewise.
25821 (*movtf_aarch64): Remove the "fp" attributes.
25822 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
25823 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
25824
25825 2016-04-27 David Malcolm <dmalcolm@redhat.com>
25826
25827 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
25828 rtx to rtx_code_label *.
25829 * rtl.h (maybe_set_first_label_num): Likewise.
25830
25831 2016-04-27 David Malcolm <dmalcolm@redhat.com>
25832
25833 * df-core.c (df_add_problem): Make the problem param be const.
25834 (df_remove_problem): Make local "problem" be const.
25835 * df-problems.c (problem_RD): Make const.
25836 (problem_LR): Likewise.
25837 (problem_LIVE): Likewise.
25838 (problem_MIR): Likewise.
25839 (problem_CHAIN): Likewise.
25840 (problem_WORD_LR): Likewise.
25841 (problem_NOTE): Likewise.
25842 (problem_MD): Likewise.
25843 * df-scan.c (problem_SCAN): Likewise.
25844 * df.h (struct df_problem): Make field "dependent_problem" be
25845 const.
25846 (struct dataflow): Likewise for field "problem".
25847 (df_add_problem): Make param const.
25848
25849 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
25850
25851 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
25852 inter-unit moves to/from vector registers are enabled. Do not disable
25853 for TARGET_MMX.
25854
25855 2016-04-27 David Malcolm <dmalcolm@redhat.com>
25856
25857 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
25858 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
25859 #define to...
25860 (enum df_problem_id): ...this new enum.
25861 (struct df_problem): Convert field "id" from "int" to
25862 enum df_problem_id.
25863
25864 2016-04-27 David Malcolm <dmalcolm@redhat.com>
25865
25866 * rtl.def: Update comment for "things in the instruction chain" to
25867 reflect the removal of the leading "i" field for INSN_UID in
25868 r210360. Fix bogus apostrophe.
25869
25870 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
25871
25872 * config/i386/i386.md
25873 (lea arith with mem operand + setcc peephole2): Set operator mode.
25874
25875 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
25876
25877 PR target/70155
25878 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
25879 (dimode_scalar_to_vector_candidate_p): This.
25880 (timode_scalar_to_vector_candidate_p): New function.
25881 (scalar_to_vector_candidate_p): Likewise.
25882 (timode_check_non_convertible_regs): Likewise.
25883 (timode_remove_non_convertible_regs): Likewise.
25884 (remove_non_convertible_regs): Likewise.
25885 (remove_non_convertible_regs): Renamed to ...
25886 (dimode_remove_non_convertible_regs): This.
25887 (scalar_chain::~scalar_chain): Make it virtual.
25888 (scalar_chain::compute_convert_gain): Make it pure virtual.
25889 (scalar_chain::mark_dual_mode_def): Likewise.
25890 (scalar_chain::convert_insn): Likewise.
25891 (scalar_chain::convert_registers): Likewise.
25892 (scalar_chain::add_to_queue): Make it protected.
25893 (scalar_chain::emit_conversion_insns): Likewise.
25894 (scalar_chain::replace_with_subreg): Likewise.
25895 (scalar_chain::replace_with_subreg_in_insn): Likewise.
25896 (scalar_chain::convert_op): Likewise.
25897 (scalar_chain::convert_reg): Likewise.
25898 (scalar_chain::make_vector_copies): Likewise.
25899 (scalar_chain::convert_registers): New pure virtual function.
25900 (class dimode_scalar_chain): New class.
25901 (class timode_scalar_chain): Likewise.
25902 (scalar_chain::mark_dual_mode_def): Renamed to ...
25903 (dimode_scalar_chain::mark_dual_mode_def): This.
25904 (timode_scalar_chain::mark_dual_mode_def): New function.
25905 (timode_scalar_chain::convert_insn): Likewise.
25906 (dimode_scalar_chain::convert_registers): Likewise.
25907 (scalar_chain::compute_convert_gain): Renamed to ...
25908 (dimode_scalar_chain::compute_convert_gain): This.
25909 (scalar_chain::replace_with_subreg): Renamed to ...
25910 (dimode_scalar_chain::replace_with_subreg): This.
25911 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
25912 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
25913 (scalar_chain::make_vector_copies): Renamed to ...
25914 (dimode_scalar_chain::make_vector_copies): This.
25915 (scalar_chain::convert_reg): Renamed to ...
25916 (dimode_scalar_chain::convert_reg ): This.
25917 (scalar_chain::convert_op): Renamed to ...
25918 (dimode_scalar_chain::convert_op): This.
25919 (scalar_chain::convert_insn): Renamed to ...
25920 (dimode_scalar_chain::convert_insn): This.
25921 (scalar_chain::convert): Call convert_registers.
25922 (convert_scalars_to_vector): Change to scalar_chain pointer to
25923 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
25924 in 32-bit mode. Delete scalar_chain pointer. Call
25925 free_dominance_info in 64-bit mode.
25926 (pass_stv::gate): Remove TARGET_64BIT check.
25927 (ix86_option_override): Put the 64-bit STV pass before the CSE
25928 pass.
25929
25930 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
25931
25932 * dwarf2out.h (struct dw_loc_descr_node): Remove the
25933 dw_loc_frame_offset field.
25934 * dwarf2out.c (new_loc_descr): Likewise.
25935 (resolve_args_picking_1): Turn the VISITED hash set into a
25936 FRAME_OFFSET hash map. Use it to associate a frame offset to
25937 visited nodes. Remove uses of the CHECKING_P macro.
25938 (resolve_args_picking): Update call to resolve_args_picking_1.
25939
25940 2016-04-27 Martin Liska <mliska@suse.cz>
25941
25942 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
25943 (free_loop_data): Release vuses of groups.
25944
25945 2016-04-27 Bin Cheng <bin.cheng@arm.com>
25946
25947 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
25948 instead of redundant use_id and boolean have_use_for.
25949 (struct iv_use): Change sub_id into group_id. Remove field next.
25950 Move fields: related_cands, n_map_members, cost_map and selected
25951 to ...
25952 (struct iv_group): ... here. New structure.
25953 (struct iv_common_cand): Use structure declaration directly.
25954 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
25955 (MAX_CONSIDERED_USES): Rename macro to ...
25956 (MAX_CONSIDERED_GROUPS): ... here.
25957 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
25958 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
25959 (dump_uses): Rename to ...
25960 (dump_groups): ... here. Update all uses.
25961 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
25962 (find_induction_variables): Refactor format of dump information.
25963 (record_sub_use): Delete.
25964 (record_use): Update all uses.
25965 (record_group): New function.
25966 (record_group_use, find_interesting_uses_op): Call above functions.
25967 Update all uses.
25968 (find_interesting_uses_cond): Ditto.
25969 (group_compare_offset): New function.
25970 (split_all_small_groups): Rename to ...
25971 (split_small_address_groups_p): ... here. Update all uses.
25972 (split_address_groups): Update all uses.
25973 (find_interesting_uses): Refactor format of dump information.
25974 (add_candidate_1): Update all uses. Remove redundant check on iv,
25975 base and step.
25976 (add_candidate, record_common_cand): Remove redundant assert.
25977 (add_iv_candidate_for_biv): Update use.
25978 (add_iv_candidate_derived_from_uses): Update all uses.
25979 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
25980 (alloc_use_cost_map): Ditto.
25981 (set_use_iv_cost, get_use_iv_cost): Rename to ...
25982 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
25983 (determine_use_iv_cost_generic): Ditto.
25984 (determine_group_iv_cost_generic): Ditto.
25985 (determine_use_iv_cost_address): Ditto.
25986 (determine_group_iv_cost_address): Ditto.
25987 (determine_use_iv_cost_condition): Ditto.
25988 (determine_group_iv_cost_cond): Ditto.
25989 (determine_use_iv_cost): Ditto.
25990 (determine_group_iv_cost): Ditto.
25991 (set_autoinc_for_original_candidates): Update all uses.
25992 (find_iv_candidates): Update all uses. Refactor dump information.
25993 (determine_use_iv_costs): Ditto.
25994 (determine_iv_costs): Ditto.
25995 (iv_ca_cand_for_use): Rename to ...
25996 (iv_ca_cand_for_group): ... here. Update all uses.
25997 (iv_ca_add_use, iv_ca_add_group): Ditto.
25998 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
25999 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
26000 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
26001 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
26002 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
26003 (create_new_iv, adjust_iv_update_pos): Ditto.
26004 (rewrite_use_address): Delete.
26005 (rewrite_use_address_1): Rename to ...
26006 (rewrite_use_address): ... here.
26007 (rewrite_use_compare): Update all uses.
26008 (rewrite_use): Delete.
26009 (rewrite_uses): Rename to ...
26010 (rewrite_groups): ... here. Update all uses.
26011 (remove_unused_ivs, free_loop_data): Update all uses.
26012 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
26013
26014 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26015
26016 * rtlanal.c (nonzero_bits1): Convert preprocessor check
26017 for WORD_REGISTER_OPERATIONS to runtime check.
26018
26019 2016-04-27 Richard Biener <rguenther@suse.de>
26020
26021 PR ipa/70760
26022 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
26023 aggregate_value_p to determine if a function result is
26024 returned by reference.
26025 (ipa_pta_execute): Functions having their address taken are
26026 not automatically nonlocal.
26027
26028 2016-04-27 Jakub Jelinek <jakub@redhat.com>
26029
26030 PR sanitizer/70683
26031 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
26032 * fold-const.c (operand_equal_p): If flag_checking and
26033 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
26034 and if it returns non-zero, assert iterative_hash_expr on both
26035 args is the same.
26036
26037 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
26038
26039 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
26040
26041 2016-04-27 Nick Clifton <nickc@redhat.com>
26042
26043 PR middle-end/49889
26044 * varasm.c (merge_weak): Generate an error if an attempt is made
26045 to convert a non-weak static function into a weak, public function.
26046
26047 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
26048
26049 * params.def (MAX_PARTITION_SIZE): New param.
26050 * doc/invoke.texi: Document lto-max-partition.
26051
26052 2016-04-27 Richard Biener <rguenther@suse.de>
26053
26054 PR ipa/70785
26055 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
26056 function cummulating used_from_other_partition, externally_visible
26057 and force_output from aliases.
26058 (refered_from_nonlocal_var): Likewise.
26059 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
26060 node flags properly.
26061
26062 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
26063
26064 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
26065 (-Wmemset-elt-size): New item.
26066
26067 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
26068
26069 PR ada/70759
26070 * stor-layout.h (internal_reference_types): Delete.
26071 * stor-layout.c (reference_types_internal): Likewise.
26072 (internal_reference_types): Likewise.
26073 (layout_type) <REFERENCE_TYPE>: Adjust.
26074
26075 2016-04-27 Jakub Jelinek <jakub@redhat.com>
26076
26077 PR sanitizer/70683
26078 * tree.h (inchash::add_expr): Add FLAGS argument.
26079 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
26080 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
26081 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
26082 Formatting fix. Adjust recursive calls. For tcc_comparison,
26083 if swap_tree_comparison (code) is smaller than code, hash that
26084 and arguments in the other order. Hash CONVERT_EXPR the same
26085 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
26086 of ADDR_EXPR of decl as the decl itself. Add or remove
26087 OEP_ADDRESS_OF from recursive flags as needed. For
26088 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
26089 operands commutatively and only the third one normally.
26090 For internal CALL_EXPR hash in CALL_EXPR_IFN.
26091
26092 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
26093
26094 * config/rtems.h (LIB_SPEC): Add -latomic.
26095
26096 2016-04-27 Joel Sherrill <joel@rtems.org>
26097
26098 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
26099 xilink.ld and flags not relevant to RTEMS.
26100
26101 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
26102
26103 * toplev.c (backend_init_target): Avoid calling init_reload when using
26104 LRA.
26105
26106 2016-04-26 Jakub Jelinek <jakub@redhat.com>
26107
26108 * reorg.c (try_merge_delay_insns): Declare i and j inside the
26109 for loops rather than one for the whole function.
26110
26111 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
26112
26113 * match.pd (X + CST CMP X): New transformation.
26114
26115 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
26116
26117 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
26118 * fold-const.c (fold_binary_loc): Remove 2 transformations
26119 superseded by match.pd.
26120 * match.pd (x+x -> x*2): Generalize to integers.
26121
26122 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
26123
26124 * config/i386/i386.md (operation on memory peephole): Duplicate an
26125 existing peephole and adapt it to match lea rather than an operation
26126 that clobbers CC.
26127
26128 PR rtl-optimization/57193
26129 * opts.c (default_options_table): Add OPT_frename_registers at -O2
26130 and above.
26131 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
26132
26133 2016-04-26 Bin Cheng <bin.cheng@arm.com>
26134
26135 * tree-if-conv.c (any_pred_load_store): New static variable.
26136 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
26137 any_pred_load_store instead of and_mask_load_store.
26138 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
26139 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
26140 (combine_blocks, tree_if_conversion): Ditto.
26141
26142 2016-04-26 Bin Cheng <bin.cheng@arm.com>
26143
26144 PR tree-optimization/70771
26145 PR tree-optimization/70775
26146 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
26147 virtual PHI nodes. Delete parameter.
26148 (if_convertible_loop_p_1): Delete argument to above function.
26149 (predicate_all_scalar_phis): Delete code handling single-argument
26150 PHIs.
26151 (tree_if_conversion): Mark and update virtual SSA.
26152
26153 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26154
26155 PR target/61821
26156 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
26157 (x86_elf_aligned_common): Rename to ...
26158 (x86_elf_aligned_decl_common): ... this.
26159 Add decl arg. Switch to .lbss for largecomm object. Use
26160 LARGECOMM_SECTION_ASM_OP.
26161 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
26162 renaming.
26163 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
26164 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
26165 Pass new decl arg.
26166 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
26167 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
26168
26169 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26170
26171 PR target/59407
26172 * config/i386/i386.c (SECTION_LARGE): Define.
26173 (x86_64_elf_select_section): Set it for large data/bss sections.
26174 Only clear SECTION_WRITE for .lrodata.
26175 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
26176 data/bss sections.
26177 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
26178 * varasm.c (default_elf_asm_named_section): Grow flagchars.
26179 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
26180 SECTION_MACH_DEP.
26181 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
26182 * doc/tm.texi: Regenerate.
26183
26184 2016-04-26 Jakub Jelinek <jakub@redhat.com>
26185
26186 PR bootstrap/70704
26187 * configure.ac (--enable-checking): Document extra flag, for
26188 non-release builds default to --enable-checking=yes,extra.
26189 If misc checking and extra checking, define CHECKING_P to 2 instead
26190 of 1.
26191 * common.opt (fchecking=): Add.
26192 * doc/invoke.texi (-fchecking=): Document.
26193 * doc/install.texi: Document --enable-checking changes.
26194 * configure: Regenerated.
26195 * config.in: Regenerated.
26196
26197 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
26198
26199 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
26200 attribute instead of which_alternative.
26201 * config/i386/sse.md (*mov<mode>_internal): Ditto.
26202 Use EXT_REX_SSE_REG_P where appropriate.
26203
26204 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
26205
26206 * config/i386/predicates.md (const0_operand): Do not match
26207 const_wide_int code.
26208 (const1_operand): Ditto.
26209
26210 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
26211
26212 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
26213 for SSE constm1 operands and TARGET_AVX512VL.
26214 (*movti_internal): Ditto.
26215 (*mov<mode>_or): Use constm1_operand predicate.
26216 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
26217 for SSE vector_all_ones operands and TARGET_AVX512VL.
26218 * config/i386/predicates.md (constm1_operand): New predicate.
26219 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
26220 emission of constant -1 load.
26221
26222 2016-04-25 Jason Merrill <jason@redhat.com>
26223
26224 * gdbinit.in: Skip is-a.h.
26225
26226 * attribs.c (register_scoped_attributes): Fix logic.
26227 * attribs.h: Declare register_scoped_attributes.
26228
26229 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26230
26231 * config/rs6000/rs6000-builtin.def: Correct pasto error for
26232 stxvd2x and stxvw4x built-in functions.
26233
26234 2016-04-25 DJ Delorie <dj@redhat.com>
26235
26236 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
26237 (ashrhi3): Likewise.
26238 (lshrhi3): Likewise.
26239
26240 2016-04-25 Richard Biener <rguenther@suse.de>
26241
26242 PR tree-optimization/70780
26243 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
26244 wasn't visited yet.
26245 (compute_antic): Mark blocks with abnormal preds as visited as
26246 they have a final empty antic-in solution already.
26247
26248 2016-04-25 Michael Collison <michael.collison@linaro.org>
26249
26250 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
26251
26252 2016-04-25 Michael Collison <michael.collison@linaro.org>
26253
26254 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
26255 mode is VQI to improve mixed mode vectorization.
26256 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
26257 define_insn to match low half of signed vaddw.
26258 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
26259 define_insn to match high half of signed vaddw.
26260 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
26261 define_insn to match low half of unsigned vaddw.
26262 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
26263 define_insn to match high half of unsigned vaddw.
26264 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
26265 (arm_simd_check_vect_par_cnst_half_p): Likewise.
26266 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
26267 for new function.
26268 (arm_simd_check_vect_par_cnst_half_p): Likewise.
26269 * config/arm/predicates.md (vect_par_constant_high): Support
26270 big endian and simplify by calling
26271 arm_simd_check_vect_par_cnst_half
26272 (vect_par_constant_low): Likewise.
26273
26274 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
26275
26276 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
26277 predicate for operand 2.
26278
26279 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
26280 H.J. Lu <hongjiu.lu@intel.com>
26281
26282 * config/i386/i386-protos.h (standard_sse_constant_p): Add
26283 machine_mode argument.
26284 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
26285 constm1_rtx operands. For VOIDmode constants, get mode from
26286 pred_mode. Check mode size if the mode is supported by ABI.
26287 (standard_sse_constant_opcode): Do not use standard_constant_p.
26288 Strictly check ABI support for all-ones operands.
26289 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
26290 immediates. Update calls to standard_sse_constant_p.
26291 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
26292 (ix86_rtx_costs): Ditto.
26293 * config/i386/i386.md (*movxi_internal_avx512f): Use
26294 nonimmediate_or_sse_const_operand instead of vector_move_operand.
26295 Use (v,BC) alternative instead of (v,C). Use register_operand
26296 checks instead of MEM_P.
26297 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
26298 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
26299 isa attribute. Use register_operand checks instead of MEM_P.
26300 (*movti_internal): Use nonimmediate_or_sse_const_operand for
26301 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
26302 alternative and corresponding sse2 isa attribute.
26303 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
26304 to standard_sse_constant_p.
26305 (FP constant splitters): Ditto.
26306 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
26307 (C): Ditto.
26308 * config/i386/predicates.md (constm1_operand): Remove.
26309 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
26310 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
26311 vector_all_ones_operand instead of constm1_operand.
26312
26313 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26314
26315 * print-rtl.c (print_rtx_insn_vec): New function.
26316 * print-rtl.h: New prototype.
26317 * store-motion.c (struct st_expr): Make avail_stores a vector.
26318 (st_expr_entry): Adjust.
26319 (free_st_expr_entry): Likewise.
26320 (print_store_motion_mems): Likewise.
26321 (find_moveable_store): Likewise.
26322 (compute_store_table): Likewise.
26323 (delete_store): Likewise.
26324 (build_store_vectors): Likewise.
26325
26326 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26327
26328 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
26329
26330 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26331
26332 * vec.h (vec_safe_contains): New function.
26333 (vec::contains): Likewise.
26334 (vec::begin): Likewise.
26335 (vec::end): Likewise.
26336
26337 2016-04-23 Jakub Jelinek <jakub@redhat.com>
26338
26339 PR sanitizer/70712
26340 * cfgexpand.c (expand_stack_vars): Fix typo.
26341
26342 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
26343
26344 * system.h (list, map, set, vector): Include conditionally.
26345 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
26346 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
26347 * ipa-icf.c (INCLUDE_LIST): Define.
26348 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
26349 * config/sh/sh.c (INCLUDE_VECTOR): Define.
26350 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
26351 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
26352 * cp/logic.cc (INCLUDE_LIST): Define.
26353 * fortran/trans-common.c (INCLUDE_MAP): Define.
26354
26355 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
26356
26357 * auto-profile.c: Remove <string.h> include.
26358 * ipa-icf-gimple.c: Remove <list> include.
26359 * diagnostic.c: Remove <new> include.
26360 * genmatch.c: Likewise.
26361 * pretty-print.c: Likewise.
26362 * toplev.c: Likewise
26363 * c/c-objc-common.c: Likewise.
26364 * cp/error.c: Likewise.
26365 * fortran/error.c: Likewise.
26366
26367 2016-04-22 Richard Biener <rguenther@suse.de>
26368
26369 * lto-streamer-in.c (input_ssa_names): Do not allocate
26370 GIMPLE_NOP for all SSA names.
26371 * lto-streamer-out.c (output_ssa_names): Do not output
26372 SSA names that should have been released.
26373
26374 2016-04-22 Richard Biener <rguenther@suse.de>
26375
26376 PR tree-optimization/70740
26377 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
26378 VDEF.
26379
26380 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
26381
26382 PR target/70750
26383 * config/i386/predicates.md (call_insn_operand): Replace
26384 sibcall_memory_operand with memory_operand.
26385
26386 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
26387
26388 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
26389 has_single_use() tests.
26390 (register_edge_assert_for_1): Likewise.
26391 (find_assert_locations_1): Check the liveness bitmap instead of
26392 checking has_single_use().
26393
26394 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
26395
26396 PR target/70728
26397 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
26398 Extract AVX-512BW constraint from AVX.
26399
26400 2016-04-21 Richard Biener <rguenther@suse.de>
26401
26402 PR tree-optimization/70725
26403 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
26404 for phi_convertible_by_degenerating_args.
26405 (predicate_all_scalar_phis): Handle single-argument PHIs.
26406
26407 2016-04-21 Richard Biener <rguenther@suse.de>
26408
26409 PR middle-end/70747
26410 * fold-const.c (fold_comparison): Return properly typed
26411 constant boolean.
26412
26413 2016-04-21 Bin Cheng <bin.cheng@arm.com>
26414
26415 PR tree-optimization/70715
26416 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
26417 after expanding BASE using expand_simple_operations.
26418
26419 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
26420
26421 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
26422 New transformations.
26423
26424 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
26425
26426 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
26427
26428 2016-04-20 Jan Hubicka <jh@suse.cz>
26429
26430 * ipa-inline.c (can_inline_edge_p): Pass caller info to
26431 ultiimate_alias_target.
26432 (update_callee_keys): Likewise.
26433 (lookup_recursive_calls): Likewise.
26434 (speculation_useful_p): Likewise.
26435
26436 2016-04-20 Jan Hubicka <jh@suse.cz>
26437
26438 PR ipa/70018
26439 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
26440 (set_nothrow_flag_1): ... this; handle interposition correctly;
26441 recurse on aliases and thunks.
26442 (cgraph_node::set_nothrow_flag): New.
26443 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
26444 functions compiled with non-call exceptions that binds to current
26445 def.
26446 (propagate_nothrow): Be safe WRT interposition.
26447 * cgraph.h (set_nothrow_flag): Update prototype.
26448
26449 2016-04-18 Jan Hubicka <jh@suse.cz>
26450
26451 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
26452 max_loop_iterations_int.
26453 (tree_unswitch_outer_loop): Likewise.
26454
26455 2016-04-20 Bin Cheng <bin.cheng@arm.com>
26456
26457 PR tree-optimization/69489
26458 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
26459 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
26460 Revise dump message.
26461 (if_convertible_bb_p): Remove check on edge count of basic block's
26462 predecessors.
26463
26464 2016-04-20 Bin Cheng <bin.cheng@arm.com>
26465
26466 PR tree-optimization/56625
26467 PR tree-optimization/69489
26468 * tree-data-ref.h (DR_INNERMOST): New macro.
26469 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
26470 hashing struct innermost_loop_behavior.
26471 (ref_DR_map): Remove.
26472 (innermost_DR_map): New map.
26473 (baseref_DR_map): Revise comment.
26474 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
26475 to innermost_DR_map accroding to its innermost loop behavior.
26476 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
26477 to its innermost loop behavior.
26478 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
26479 Add initialization for innermost_DR_map. Record memory reference
26480 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
26481 have innermost loop behavior.
26482 (if_convertible_loop_p): Remove release for ref_DR_map. Release
26483 innermost_DR_map.
26484
26485 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
26486
26487 * config/i386/i386.md (*lea<mode>_general_1): Rename from
26488 *lea_general_1. Use explicit SWI12 mode interator.
26489 (*lea<mode>_general_2): Rename from *lea_general_2.
26490 Use explicit SWI12 mode interator.
26491 (*lea<mode>_general_3): Rename from *lea_general_3.
26492 Use explicit SWI12 mode interator.
26493 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
26494 Use explicit SWI12 mode interator.
26495 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
26496 Use explicit SWI48 mode interator.
26497
26498 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
26499
26500 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
26501 Short-cut unaligned load and store cases. Handle all integer
26502 vector modes.
26503 (ix86_expand_vector_move_misalign): Short-cut unaligned load
26504 and store cases. Call ix86_avx256_split_vector_move_misalign
26505 directly without checking mode class.
26506
26507 2016-04-20 Andrew Pinski <apinski@cavium.com>
26508 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26509
26510 PR target/64971
26511 * config/aarch64/aarch64.md (sibcall): Force call
26512 address to be DImode for ILP32.
26513 (sibcall_value): Likewise.
26514
26515 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
26516
26517 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
26518
26519 2016-04-20 Richard Biener <rguenther@suse.de>
26520
26521 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
26522 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
26523 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
26524 (maybe_push_res_to_seq): Adjust.
26525 * gimple-fold.c (maybe_build_generic_op): Likewise.
26526
26527 2016-04-20 Marek Polacek <polacek@redhat.com>
26528
26529 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
26530 rather than true.
26531
26532 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
26533
26534 * config/i386/sse.md (vec_unpacks_lo_hi): Always
26535 use kmovw to support AVX512F target.
26536
26537 2016-04-20 Bin Cheng <bin.cheng@arm.com>
26538
26539 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
26540
26541 2016-04-20 Marek Polacek <polacek@redhat.com>
26542
26543 PR tree-optimization/70725
26544 * tree-if-conv.c (is_false_predicate): New function.
26545 (predicate_mem_writes): Use it.
26546
26547 2016-04-20 Richard Biener <rguenther@suse.de>
26548
26549 PR tree-optimization/70726
26550 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
26551 shift amounts from a pattern stmt operand.
26552
26553 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26554
26555 PR target/70674
26556 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
26557 stack_restore_from_fpr pattern when restoring r15.
26558 (s390_optimize_prologue): Strip away the memory barrier in the
26559 parallel when trying to get rid of restore insns.
26560 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
26561 definition for loading the stack pointer from an FPR. Compared to
26562 the normal move insn this pattern includes a full memory barrier.
26563
26564 2016-04-19 Jakub Jelinek <jakub@redhat.com>
26565
26566 PR middle-end/70680
26567 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
26568 implicitly linear or lastprivate iterator on the outer context.
26569
26570 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
26571
26572 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
26573 alignment check.
26574 * config/i386/i386.md (ssememalign): Removed.
26575 * config/i386/sse.md: Remove ssememalign attribute from patterns.
26576
26577 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
26578
26579 PR target/69201
26580 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
26581 const short * to __builtin_ia32_loaddquhi512_mask.
26582 (_mm512_maskz_loadu_epi16): Likewise.
26583 (_mm512_mask_storeu_epi16): Pass short * to
26584 __builtin_ia32_storedquhi512_mask.
26585 (_mm512_mask_loadu_epi8): Pass const char * to
26586 __builtin_ia32_loaddquqi512_mask.
26587 (_mm512_maskz_loadu_epi8): Likewise.
26588 (_mm512_mask_storeu_epi8): Pass char * to
26589 __builtin_ia32_storedquqi512_mask.
26590 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
26591 const double * to __builtin_ia32_loadupd512_mask.
26592 (_mm512_mask_loadu_pd): Likewise.
26593 (_mm512_maskz_loadu_pd): Likewise.
26594 (_mm512_storeu_pd): Pass double * to
26595 __builtin_ia32_storeupd512_mask.
26596 (_mm512_mask_storeu_pd): Likewise.
26597 (_mm512_loadu_ps): Pass const float * to
26598 __builtin_ia32_loadups512_mask.
26599 (_mm512_mask_loadu_ps): Likewise.
26600 (_mm512_maskz_loadu_ps): Likewise.
26601 (_mm512_storeu_ps): Pass float * to
26602 __builtin_ia32_storeups512_mask.
26603 (_mm512_mask_storeu_ps): Likewise.
26604 (_mm512_mask_loadu_epi64): Pass const long long * to
26605 __builtin_ia32_loaddqudi512_mask.
26606 (_mm512_maskz_loadu_epi64): Likewise.
26607 (_mm512_mask_storeu_epi64): Pass long long *
26608 to __builtin_ia32_storedqudi512_mask.
26609 (_mm512_loadu_si512): Pass const int * to
26610 __builtin_ia32_loaddqusi512_mask.
26611 (_mm512_mask_loadu_epi32): Likewise.
26612 (_mm512_maskz_loadu_epi32): Likewise.
26613 (_mm512_storeu_si512): Pass int * to
26614 __builtin_ia32_storedqusi512_mask.
26615 (_mm512_mask_storeu_epi32): Likewise.
26616 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
26617 char * to __builtin_ia32_storedquqi256_mask.
26618 (_mm_mask_storeu_epi8): Likewise.
26619 (_mm256_mask_loadu_epi16): Pass const short * to
26620 __builtin_ia32_loaddquhi256_mask.
26621 (_mm256_maskz_loadu_epi16): Likewise.
26622 (_mm_mask_loadu_epi16): Pass const short * to
26623 __builtin_ia32_loaddquhi128_mask.
26624 (_mm_maskz_loadu_epi16): Likewise.
26625 (_mm256_mask_loadu_epi8): Pass const char * to
26626 __builtin_ia32_loaddquqi256_mask.
26627 (_mm256_maskz_loadu_epi8): Likewise.
26628 (_mm_mask_loadu_epi8): Pass const char * to
26629 __builtin_ia32_loaddquqi128_mask.
26630 (_mm_maskz_loadu_epi8): Likewise.
26631 (_mm256_mask_storeu_epi16): Pass short * to.
26632 __builtin_ia32_storedquhi256_mask.
26633 (_mm_mask_storeu_epi16): Pass short * to.
26634 __builtin_ia32_storedquhi128_mask.
26635 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
26636 const double * to __builtin_ia32_loadupd256_mask.
26637 (_mm256_maskz_loadu_pd): Likewise.
26638 (_mm_mask_loadu_pd): Pass onst double * to
26639 __builtin_ia32_loadupd128_mask.
26640 (_mm_maskz_loadu_pd): Likewise.
26641 (_mm256_mask_storeu_pd): Pass double * to
26642 __builtin_ia32_storeupd256_mask.
26643 (_mm_mask_storeu_pd): Pass double * to
26644 __builtin_ia32_storeupd128_mask.
26645 (_mm256_mask_loadu_ps): Pass const float * to
26646 __builtin_ia32_loadups256_mask.
26647 (_mm256_maskz_loadu_ps): Likewise.
26648 (_mm_mask_loadu_ps): Pass const float * to
26649 __builtin_ia32_loadups128_mask.
26650 (_mm_maskz_loadu_ps): Likewise.
26651 (_mm256_mask_storeu_ps): Pass float * to
26652 __builtin_ia32_storeups256_mask.
26653 (_mm_mask_storeu_ps): ass float * to
26654 __builtin_ia32_storeups128_mask.
26655 (_mm256_mask_loadu_epi64): Pass const long long * to
26656 __builtin_ia32_loaddqudi256_mask.
26657 (_mm256_maskz_loadu_epi64): Likewise.
26658 (_mm_mask_loadu_epi64): Pass const long long * to
26659 __builtin_ia32_loaddqudi128_mask.
26660 (_mm_maskz_loadu_epi64): Likewise.
26661 (_mm256_mask_storeu_epi64): Pass long long * to
26662 __builtin_ia32_storedqudi256_mask.
26663 (_mm_mask_storeu_epi64): Pass long long * to
26664 __builtin_ia32_storedqudi128_mask.
26665 (_mm256_mask_loadu_epi32): Pass const int * to
26666 __builtin_ia32_loaddqusi256_mask.
26667 (_mm256_maskz_loadu_epi32): Likewise.
26668 (_mm_mask_loadu_epi32): Pass const int * to
26669 __builtin_ia32_loaddqusi128_mask.
26670 (_mm_maskz_loadu_epi32): Likewise.
26671 (_mm256_mask_storeu_epi32): Pass int * to
26672 __builtin_ia32_storedqusi256_mask.
26673 (_mm_mask_storeu_epi32): Pass int * to
26674 __builtin_ia32_storedqusi128_mask.
26675 * config/i386/i386-builtin-types.def (PCSHORT): New.
26676 (PINT64): Likewise.
26677 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
26678 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
26679 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
26680 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
26681 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
26682 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
26683 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
26684 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
26685 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
26686 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
26687 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
26688 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
26689 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
26690 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
26691 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
26692 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
26693 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
26694 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
26695 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
26696 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
26697 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
26698 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
26699 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
26700 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
26701 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
26702 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
26703 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
26704 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
26705 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
26706 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
26707 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
26708 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
26709 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
26710 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
26711 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
26712 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
26713 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
26714 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
26715 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
26716 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
26717 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
26718 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
26719 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
26720 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
26721 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
26722 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
26723 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
26724 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
26725 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
26726 use UNSPEC_STOREU.
26727 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
26728 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
26729 load nor store.
26730 (ix86_expand_vector_move_misalign): Likewise.
26731 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
26732 to scalar function prototype for unaligned load/store builtins.
26733 (ix86_expand_special_args_builtin): Updated.
26734 * config/i386/sse.md (UNSPEC_LOADU): Removed.
26735 (UNSPEC_STOREU): Likewise.
26736 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
26737 (VI_ULOADSTORE_F_AVX512VL): Likewise.
26738 (ssescalarsize): Handle V4TI, V2TI and V1TI.
26739 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
26740 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
26741 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
26742 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
26743 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
26744 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
26745 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
26746 (<avx512>_storedqu<mode>_mask): Likewise.
26747 (*sse4_2_pcmpestr_unaligned): Likewise.
26748 (*sse4_2_pcmpistr_unaligned): Likewise.
26749 (*mov<mode>_internal): Renamed to ...
26750 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
26751 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
26752 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
26753 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
26754
26755 2016-04-19 Richard Biener <rguenther@suse.de>
26756
26757 PR tree-optimization/70171
26758 * tree-ssa-phiprop.c: Include stor-layout.h.
26759 (phiprop_insert_phi): Handle the aggregate copy case.
26760 (propagate_with_phi): Likewise.
26761
26762 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
26763
26764 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
26765 instead of simplify_gen_subreg (... , 0).
26766 (ix86_delegitimize_address): Ditto.
26767 (ix86_split_divmod): Ditto.
26768 (ix86_split_copysign_const): Ditto.
26769 (ix86_split_copysign_var): Ditto.
26770 (ix86_expand_args_builtin): Ditto.
26771 (ix86_expand_round_builtin): Ditto.
26772 (ix86_expand_special_args_builtin): Ditto.
26773 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
26774 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
26775 (udivmodqi4): Ditto.
26776 (absneg splitters): Ditto.
26777 (*jcc_bt<mode>_1): Ditto.
26778
26779 2016-04-19 Richard Biener <rguenther@suse.de>
26780
26781 PR tree-optimization/70724
26782 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
26783 restoring out from ...
26784 (free_scc_vn): ... here.
26785 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
26786 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
26787 tail merging.
26788 (pass_fre::execute): Restore SSA info.
26789
26790 2016-04-19 Richard Biener <rguenther@suse.de>
26791
26792 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
26793 * gimple-walk.c (walk_gimple_op): Initialize it.
26794 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
26795 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
26796 remapping SSA names of defs.
26797 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
26798 adjustment.
26799
26800 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
26801
26802 PR middle-end/70689
26803 * lra-constraints.c (equiv_substition_p): New.
26804 (process_alt_operands): Use it.
26805 (swap_operands): Swap it.
26806 (curr_insn_transform): Update it.
26807
26808 2016-04-18 Michael Matz <matz@suse.de>
26809
26810 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
26811 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
26812 * tree-core.h (tree_type_common.align): Use bit-field.
26813 (tree_type_common.spare): New.
26814 (tree_decl_common.off_align): Make smaller.
26815 (tree_decl_common.align): Use bit-field.
26816
26817 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
26818 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
26819 (scan_sharing_clauses): Ditto.
26820 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
26821 (omp_finish_file): Ditto.
26822 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
26823 (layout_decl): Ditto.
26824 (relayout_decl): Ditto.
26825 (finalize_record_size): Use SET_TYPE_ALIGN.
26826 (finalize_type_size): Ditto.
26827 (finish_builtin_struct): Ditto.
26828 (layout_type): Ditto.
26829 (initialize_sizetypes): Ditto.
26830 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
26831 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
26832 (lookup_field_for_decl): Use SET_DECL_ALIGN.
26833 (get_chain_field): Ditto.
26834 (get_trampoline_type): Ditto.
26835 (get_nl_goto_field): Ditto.
26836 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
26837 SET_DECL_ALIGN.
26838 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
26839 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
26840 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
26841 (build_qualified_type): Use SET_TYPE_ALIGN.
26842 (build_aligned_type, build_range_type_1): Ditto.
26843 (build_atomic_base): Ditto.
26844 (build_common_tree_nodes): Ditto.
26845 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
26846 (expand_one_stack_var_at): Ditto.
26847 * coverage.c (build_var): Use SET_DECL_ALIGN.
26848 * except.c (init_eh): Ditto.
26849 * function.c (assign_parm_setup_block): Ditto.
26850 * symtab.c (increase_alignment_1): Ditto.
26851 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
26852 * tree-vect-stmts.c (ensure_base_align): Ditto.
26853 * varasm.c (align_variable): Ditto.
26854 (assemble_variable): Ditto.
26855 (build_constant_desc): Ditto.
26856 (output_constant_def_contents): Ditto.
26857
26858 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
26859 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
26860 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
26861 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
26862 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
26863
26864 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
26865
26866 PR target/70708
26867 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
26868 replace %vmovsd with "%vmovq".
26869 (vec_concatv2df): Likewise.
26870
26871 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
26872
26873 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
26874 (*vec_extractv2si_0): Ditto.
26875 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
26876 (zero_extended_scalar_load_operand splitters): Ditto.
26877 (vec_extract splitters): Ditto.
26878 (*vec_extractv4si_0_zext): Ditto.
26879 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
26880 and lowpart_subreg.
26881 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
26882 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
26883 (*sse4_1_extractps): Use lowpart_subreg.
26884 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
26885
26886 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26887
26888 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
26889 gld requirements.
26890 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
26891 Mention Solaris 11 packaging changes.
26892 Update gas and gld requirements.
26893 Remove reference to pre-Solaris 10 bug.
26894 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
26895 systems and bugs.
26896 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
26897 with cc.
26898
26899 2016-04-17 Jan Hubicka <jh@suse.cz>
26900
26901 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
26902 max_loop_iterations_int.
26903
26904 2016-04-18 Richard Biener <rguenther@suse.de>
26905
26906 PR tree-optimization/43434
26907 * tree-ssa-structalias.c (struct vls_data): New.
26908 (visit_loadstore): Handle all pointer-based accesses.
26909 (compute_dependence_clique): Compute a bitmap of restrict tags
26910 assigned bases and pass it to visit_loadstore.
26911
26912 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
26913
26914 PR target/70711
26915 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
26916 armv8.1-a and armv8.1-a+crc.
26917
26918 2016-04-18 Richard Biener <rguenther@suse.de>
26919
26920 PR tree-optimization/70701
26921 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
26922 references after translating through a memcpy.
26923
26924 2016-04-18 Richard Biener <rguenther@suse.de>
26925
26926 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
26927 (compute_antic): ... here. For partial antic use regular
26928 postorder and scrap iteration.
26929 (compute_partial_antic_aux): Remove unused return value.
26930 (init_pre): Do not allocate postorder.
26931 (fini_pre): Do not free postorder.
26932
26933 2016-04-18 Richard Biener <rguenther@suse.de>
26934
26935 PR middle-end/37870
26936 * expmed.c (extract_bit_field_1): Remove broken case
26937 using a wider MODE_INT mode.
26938
26939 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
26940
26941 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
26942 unless compiling with at least GCC-4.8.
26943
26944 2016-04-17 Jan Hubicka <jh@suse.cz>
26945
26946 PR bootstrap/70706
26947 * graphite.c (graphite_finalize): Update call to
26948 tree_estimate_probability.
26949 * predict.h (tree_estimate_probability): Update prototype.
26950
26951 2016-04-17 Jan Hubicka <jh@suse.cz>
26952
26953 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
26954 (tree_estimate_probability): Likewise.
26955 (pass_profile::execute): Update.
26956 (report_predictor_hitrates): New function.
26957 * profile.c (compute_branch_probabilities): Use it.
26958 * predict.h (report_predictor_hitrates): Declare.
26959
26960 2016-04-17 Jan Hubicka <jh@suse.cz>
26961
26962 PR ipa/70018
26963 * cgraph.h (cgraph_node::set_const_flag,
26964 cgraph_node::set_pure_flag): Update prototype to return bool;
26965 update comment.
26966 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
26967 of interposable symbol are interposable, too.
26968 (cgraph_set_const_flag_1): Rename to ...
26969 (set_const_flag_1): ... this one; change to self recursive function
26970 instead of call_for_symbol_thunks_and_aliases. Handle correctly
26971 clearnig the flag in all variants and also virtual thunks of const
26972 functions are pure; track if any change was done.
26973 (cgraph_node::set_const_flag): Update.
26974 (struct set_pure_flag_info): New struct.
26975 (cgraph_set_pure_flag_1): Rename to ...
26976 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
26977 rather than pointer encoded flags; track if any changes was done;
26978 handle correctly clearning flag and setting flag of aliases already
26979 declared const.
26980 (cgraph_node::set_pure_flag): Update.
26981 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
26982
26983 2016-04-17 Tom de Vries <tom@codesourcery.com>
26984
26985 PR other/70433
26986 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
26987 backslash in label.
26988
26989 2016-04-17 Tom de Vries <tom@codesourcery.com>
26990
26991 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
26992 '{}<> ' as escape-for-record.
26993
26994 2016-04-17 Tom de Vries <tom@codesourcery.com>
26995
26996 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
26997 structure.
26998
26999 2016-04-17 Tom de Vries <tom@codesourcery.com>
27000
27001 PR other/70185
27002 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
27003 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
27004 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
27005 * passes.c (finish_optimization_passes): Only call
27006 finish_graph_dump_file if dfi->graph_dump_initialized.
27007 (execute_function_dump, pass_init_dump_file): Use
27008 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
27009
27010 2016-04-17 Tom de Vries <tom@codesourcery.com>
27011
27012 PR tree-optimization/70256
27013 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
27014 (debug_varmap): New function.
27015
27016 2016-04-17 Tom de Vries <tom@codesourcery.com>
27017
27018 PR other/70183
27019 * passes.c (pass_manager::register_pass): Propagate pflags.
27020
27021 2016-04-17 Tom de Vries <tom@codesourcery.com>
27022
27023 PR other/68875
27024 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
27025 * passes.c (pass_manager::pass_manager): Declare and init p_start in
27026 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
27027 check if it's equal to p_start.
27028 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
27029
27030 2016-04-15 Jan Hubicka <jh@suse.cz>
27031
27032 PR ipa/70018
27033 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
27034 function does not bind to current def.
27035 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
27036 handle conservatively calls to functions that does not need to bind
27037 to current def.
27038 (check_call): Update call of worse_state.
27039 (ignore_edge_for_nothrow): Update.
27040 (ignore_edge_for_pure_const): Likewise.
27041 (propagate_pure_const): Update calls to worse_state.
27042 (skip_function_for_local_pure_const): Reformat comments.
27043
27044 2016-04-15 Jan Hubicka <jh@suse.cz>
27045
27046 PR ipa/70018
27047 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
27048 (cgraph_node::function_symbol): Likewise.
27049 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
27050 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
27051 (symtab_node::ultimate_alias_target): Add REF parameter.
27052 (symtab_node::binds_to_current_def_p): Declare.
27053 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
27054 (cgraph_node::function_symbol): Likewise.
27055 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
27056 (cgraph_node::get_availability): Likewise.
27057 (cgraph_edge::binds_to_current_def_p): New inline function.
27058 (varpool_node::get_availability): Add REF parameter.
27059 (varpool_node::ultimate_alias_target): Likewise.
27060 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
27061 (symtab_node::binds_to_current_def_p): Likewise.
27062 * varpool.c (varpool_node::get_availability): Likewise.
27063
27064 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
27065
27066 PR target/70662
27067 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
27068 Fix mode size check.
27069
27070 2016-04-15 Jakub Jelinek <jakub@redhat.com>
27071
27072 * BASE-VER: Set to 7.0.0.
27073
27074 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
27075
27076 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
27077
27078 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27079
27080 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
27081 architecture revisions.
27082
27083 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
27084
27085 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
27086 * config/i386/i386.c (ix86_using_red_zone): No longer static.
27087 * config/i386/i386.md (stack decrement to push peepholes): Guard
27088 with !x86_using_red_zone ().
27089
27090 2016-04-15 Jakub Jelinek <jakub@redhat.com>
27091
27092 PR c++/70675
27093 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
27094 to dump_generic_node.
27095 (NIY): Pass also flags to do_niy.
27096
27097 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
27098
27099 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
27100 (simd_clone_vector_of_formal_parm_types)
27101 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
27102 (simd_clone_mangle, simd_clone_create)
27103 (simd_clone_adjust_return_type, create_tmp_simd_array)
27104 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
27105 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
27106 (ipa_simd_modify_function_body, simd_clone_linear_addend)
27107 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
27108 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
27109 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
27110 * omp-simd-clone.c: ... this new file.
27111 (simd_clone_vector_of_formal_parm_types): Make it static.
27112 * Makefile.in (OBJS): Add omp-simd-clone.o.
27113
27114 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
27115
27116 PR target/70662
27117 * config/i386/sse.md: Use proper memory operand modifiers.
27118
27119
27120 2016-04-15 Richard Biener <rguenther@suse.de>
27121 Alan Modra <amodra@gmail.com>
27122
27123 PR tree-optimization/70130
27124 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
27125 when alignment stays not the same and no not use the realign
27126 scheme then.
27127
27128 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
27129
27130 PR target/70669
27131 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
27132 direct move handlers for KFmode. Change TFmode handlers test from
27133 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
27134
27135 2016-04-14 Jakub Jelinek <jakub@redhat.com>
27136
27137 PR c++/70594
27138 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
27139 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
27140 (inlined_polymorphic_ctor_dtor_block_p): Use it.
27141 * tree-ssa-live.c (remove_unused_scope_block_p): When
27142 in_ctor_dtor_block, avoid discarding not just BLOCKs with
27143 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
27144 block_ultimate_origin is FUNCTION_DECL.
27145 (remove_unused_locals): If current_function_decl is
27146 polymorphic_ctor_dtor_p, pass initial true to
27147 remove_unused_scope_block_p' is_ctor_dtor_block.
27148
27149 2016-04-14 Martin Sebor <msebor@redhat.com>
27150
27151 PR c++/69517
27152 PR c++/70019
27153 PR c++/70588
27154 * doc/extend.texi (Variable Length): Revert.
27155
27156 2016-04-14 Marek Polacek <polacek@redhat.com>
27157 Jan Hubicka <hubicka@ucw.cz>
27158
27159 PR c++/70029
27160 * tree.c (verify_type): Disable the canonical type of main variant
27161 check.
27162
27163 2016-04-14 Jason Merrill <jason@redhat.com>
27164
27165 * cfgexpand.c, expr.c: Revert previous change.
27166
27167 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
27168
27169 PR middle-end/70643
27170 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
27171 when building a mem ref for the incoming reduction variable.
27172
27173 2016-04-14 Richard Biener <rguenther@suse.de>
27174
27175 PR tree-optimization/70614
27176 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
27177 loop if the evolution dropped to chrec_dont_know.
27178 (interpret_condition_phi): Likewise.
27179
27180 2016-04-14 Richard Biener <rguenther@suse.de>
27181
27182 PR tree-optimization/70623
27183 * tree-ssa-pre.c (changed_blocks): Make global ...
27184 (compute_antic): ... local here. Move and fix worklist
27185 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
27186 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
27187 worklist handling, dump when ANTIC_IN changed.
27188 (compute_partial_antic_aux): Remove worklist handling.
27189 (init_pre): Do not compute post dominators. Add a comment about
27190 the CFG order chosen.
27191 (fini_pre): Do not free post dominators.
27192
27193 2016-04-13 Martin Sebor <msebor@redhat.com>
27194
27195 PR c++/69517
27196 PR c++/70019
27197 PR c++/70588
27198 * doc/extend.texi (Variable Length): Document C++ specifics.
27199
27200 2016-04-13 Jakub Jelinek <jakub@redhat.com>
27201
27202 PR c++/70641
27203 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
27204 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
27205 eh edges have been purged.
27206
27207 PR c++/70594
27208 * tree-sra.c (create_access_replacement,
27209 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
27210 gets fancy name.
27211 * tree-pretty-print.c (dump_fancy_name): New function.
27212 (dump_decl_name, dump_generic_node): Use it.
27213
27214 2016-04-13 Jason Merrill <jason@redhat.com>
27215
27216 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
27217 * expr.c (expand_expr_real_1): Likewise.
27218
27219 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
27220
27221 * config/i386/i386.md (kunpckhi): Swap operands.
27222 (kunpcksi): Likewise.
27223 (kunpckdi): Likewise.
27224 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
27225 (vec_pack_trunc_<mode>): Likewise.
27226
27227 2016-04-13 Jakub Jelinek <jakub@redhat.com>
27228
27229 PR debug/70628
27230 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
27231
27232 PR middle-end/70633
27233 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
27234 gimplification turns some element into non-constant.
27235
27236 PR debug/70628
27237 * rtl.h (convert_memory_address_addr_space_1): New prototype.
27238 * explow.c (convert_memory_address_addr_space_1): No longer static,
27239 add NO_EMIT argument and don't call convert_modes if true, pass
27240 it down recursively, remove break after return.
27241 (convert_memory_address_addr_space): Adjust caller.
27242 * simplify-rtx.c (simplify_unary_operation_1): Call
27243 convert_memory_address_addr_space_1 instead of convert_memory_address,
27244 if it returns NULL, don't simplify.
27245
27246 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
27247
27248 PR target/70630
27249 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
27250
27251 2016-04-12 Jakub Jelinek <jakub@redhat.com>
27252
27253 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
27254 Bump the upper SIMDLEN limits, so that if the return type or
27255 characteristic type if the return type is void can be passed in
27256 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
27257 allowed.
27258
27259 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
27260
27261 PR target/70640
27262 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
27263 Do not use "=" constraint on an input constraint.
27264 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
27265 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
27266 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
27267 generates (neg (abs ...)) instead of (abs ...).
27268
27269 2016-04-12 Jakub Jelinek <jakub@redhat.com>
27270
27271 PR rtl-optimization/70596
27272 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
27273 just invalidate LRA data and reset them. Adjust dump wording.
27274
27275 2016-04-12 Martin Liska <mliska@suse.cz>
27276
27277 Revert
27278 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
27279
27280 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
27281 estimates here.
27282 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
27283 max_loop_iterations_int.
27284 (tree_unswitch_outer_loop): Likewise.
27285 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
27286 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
27287
27288 2016-04-12 Tom de Vries <tom@codesourcery.com>
27289
27290 PR tree-optimization/68756
27291 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
27292 instead of new_name.
27293
27294 2016-04-12 Jakub Jelinek <jakub@redhat.com>
27295
27296 PR tree-optimization/70602
27297 * tree-sra.c (generate_subtree_copies): Don't write anything into
27298 constant pool decls.
27299
27300 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
27301 regardless whether there are depend clauses or not.
27302
27303 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
27304
27305 PR target/70381
27306 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
27307 target attribute and pragma from changing the -mfloat128
27308 and -mfloat128-hardware options.
27309
27310 * doc/extend.texi (Additional Floating Types): Document PowerPC
27311 __float128 restrictions.
27312
27313 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
27314
27315 PR target/70133
27316 * config/aarch64/driver-aarch64.c
27317 (aarch64_get_extension_string_for_isa_flags): New.
27318 (arch_extension): Rename to...
27319 (aarch64_arch_extension): ...This.
27320 (ext_to_feat_string): Rename to...
27321 (aarch64_extensions): ...This.
27322 (aarch64_core_data): Keep track of architecture extension flags.
27323 (cpu_data): Rename to...
27324 (aarch64_cpu_data): ...This.
27325 (aarch64_arch_driver_info): Keep track of architecture extension
27326 flags.
27327 (get_arch_name_from_id): Rename to...
27328 (get_arch_from_id): ...This, change return type.
27329 (host_detect_local_cpu): Update and reformat for renames, handle
27330 extensions through common infrastructure.
27331
27332 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
27333
27334 PR target/70133
27335 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
27336 track of a canonical flag name.
27337 (all_extensions): Likewise.
27338 (arch_to_arch_name): Also track extension flags enabled by the arch.
27339 (all_architectures): Likewise.
27340 (aarch64_parse_extension): Move to here.
27341 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
27342 rework.
27343 (aarch64_rewrite_selected_cpu): Update for above change.
27344 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
27345 are handled, such that the single explicit value enabled by an
27346 extension is kept seperate from the implicit values it also enables.
27347 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
27348 to here.
27349 (aarch64_parse_extension): New.
27350 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
27351 here to config/aarch64/aarch64-protos.h.
27352 (aarch64_parse_extension): Move from here to
27353 common/config/aarch64/aarch64-common.c.
27354 (aarch64_option_print): Update.
27355 (aarch64_declare_function_name): Likewise.
27356 (aarch64_start_file): Likewise.
27357 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
27358 the canonical flag for extensions.
27359 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
27360 flags.
27361
27362 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
27363
27364 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
27365 AARCH64_FL_CRC.
27366
27367 2016-04-09 Tom de Vries <tom@codesourcery.com>
27368
27369 PR tree-optimization/68953
27370 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
27371 first to last subscript.
27372
27373 2016-04-09 Jakub Jelinek <jakub@redhat.com>
27374
27375 PR tree-optimization/70586
27376 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
27377 for any calls.
27378
27379 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
27380
27381 PR lto/70289
27382 PR ipa/70348
27383 PR tree-optimization/70373
27384 PR middle-end/70533
27385 PR middle-end/70534
27386 PR middle-end/70535
27387 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
27388 clauses for acc parallel reductions as necessary. Error on those
27389 that are private.
27390 * omp-low.c (scan_sharing_clauses): Don't install variables which
27391 are used in acc parallel reductions.
27392 (lower_rec_input_clauses): Remove dead code.
27393 (lower_oacc_reductions): Add support for reference reductions.
27394 (lower_reduction_clauses): Remove dead code.
27395 (lower_omp_target): Don't remap variables appearing in acc parallel
27396 reductions.
27397 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
27398
27399 2016-04-08 Jakub Jelinek <jakub@redhat.com>
27400
27401 PR middle-end/70593
27402 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
27403 with multiple SSA_NAME defs, force the outputs other than first
27404 to be live before calling live_track_process_def on each output.
27405
27406 PR rtl-optimization/70574
27407 * fwprop.c (forward_propagate_and_simplify): Don't add
27408 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
27409 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
27410 paradoxical subregs within *loc.
27411
27412 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
27413
27414 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
27415 -ftree-parallelize-loops={0,1}.
27416 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
27417 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
27418 * config/ia64/hpux.h (LIB_SPEC): Likewise.
27419 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
27420 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
27421
27422 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
27423
27424 PR sanitizer/70541
27425 * asan.c (instrument_derefs): If we get unknown location, extract it
27426 with EXPR_LOCATION.
27427 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
27428
27429 2016-04-08 Tom de Vries <tom@codesourcery.com>
27430
27431 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
27432 implicit firstprivate clause.
27433
27434 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27435
27436 PR target/70566
27437 * config/arm/thumb2.md (tst + branch-> lsls + branch
27438 peephole below *orsi_not_shiftsi_si): Require that condition
27439 register is dead after the peephole.
27440 (second peephole after the above): Likewise.
27441
27442 2016-04-08 Alan Modra <amodra@gmail.com>
27443
27444 PR target/70117
27445 * builtins.c (fold_builtin_classify): For IBM extended precision,
27446 look at just the high-order double to test for NaN.
27447 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
27448 test just the high double for Inf but both doubles for subnormal
27449 limit.
27450
27451 2016-04-07 Jakub Jelinek <jakub@redhat.com>
27452
27453 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
27454 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
27455 node->simdclone->mask_mode != VOIDmode masks.
27456 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
27457 earlier, use it instead of node->simdclone.
27458 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
27459 Set clonei->mask_mode.
27460
27461 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
27462
27463 PR c/70436
27464 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
27465 Pass it through to cp_parser_already_scoped_statement.
27466 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
27467 it through to cp_parser_statement.
27468 (cp_parser_statement): Pass IF_P through to
27469 cp_parser_iteration_statement.
27470 (cp_parser_pragma): Adjust call to
27471 cp_parser_iteration_statement.
27472
27473 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
27474
27475 PR c/70436
27476 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
27477 resolve a future -Wparentheses warning.
27478 * omp-low.c (scan_sharing_clauses): Likewise.
27479 * tree-parloops.c (eliminate_local_variables): Likewise.
27480
27481 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
27482
27483 PR rtl-optimization/70398
27484 * lra-constraints.c (process_address_1): Check zero scale and code
27485 for reloading with zero scale.
27486
27487 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
27488
27489 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
27490 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
27491
27492 2016-04-06 Jakub Jelinek <jakub@redhat.com>
27493
27494 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
27495 Add support for AVX512F clones, include them by default for
27496 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
27497 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
27498 up to 128.
27499
27500 PR middle-end/70550
27501 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
27502 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
27503 firstprivate clauses.
27504 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
27505 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
27506 (lower_omp_target): Set TREE_NO_WARNING for
27507 non-addressable possibly uninitialized vars which are copied into
27508 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
27509
27510 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
27511
27512 * config/pa/predicates.md (integer_store_memory_operand): Accept
27513 REG+D operands with a large offset when reload_in_progress is true.
27514 (floating_point_store_memory_operand): Likewise.
27515
27516 2016-04-05 Jakub Jelinek <jakub@redhat.com>
27517
27518 PR c++/70336
27519 * match.pd (nested int casts): Limit to GIMPLE.
27520
27521 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
27522
27523 PR ipa/66223
27524 * ipa-devirt.c (maybe_record_node): Fix comment; use
27525 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
27526
27527 2016-04-05 Jakub Jelinek <jakub@redhat.com>
27528
27529 PR rtl-optimization/70542
27530 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
27531 if there are any uses other than insn or debug insns.
27532
27533 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
27534 Jakub Jelinek <jakub@redhat.com>
27535
27536 PR tree-optimization/70509
27537 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
27538 Shift HOST_WIDE_INT_1U instead of 1.
27539
27540 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
27541
27542 PR tree-optimization/70509
27543 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
27544 of the vector base type for index.
27545
27546 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
27547
27548 PR target/70510
27549 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
27550
27551 2016-04-05 Richard Biener <rguenther@suse.de>
27552
27553 PR tree-optimization/70526
27554 * tree-sra.c (build_ref_for_offset): Use prev_base to
27555 extract the alias pointer type.
27556
27557 2016-04-05 Richard Biener <rguenther@suse.de>
27558
27559 * dse.c (struct store_info): Remove alias_set member.
27560 (struct read_info_type): Likewise.
27561 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
27562 spill_deleted, clear_alias_set_lookup): Remove.
27563 (get_group_info): Remove dead base == NULL_RTX case.
27564 (dse_step0): Remove initialization of removed variables.
27565 (delete_dead_store_insn): Reomve alias set dumping.
27566 (free_read_records): Remove alias_set handling.
27567 (canon_address): Remove alias_set_out parameter.
27568 (record_store): Remove spill_alias_set, it's always zero.
27569 (check_mem_read_rtx): Likewise.
27570 (dse_step2): Rename from ...
27571 (dse_step2_nospill): ... this. Adjust.
27572 (scan_stores): Rename from ...
27573 (scan_stores_nospill): ... this.
27574 (scan_reads): Rename from ...
27575 (scan_reads_nospill): ... this.
27576 (scan_stores_spill, scan_reads_spill): Remove.
27577 (dse_step3_scan): Remove for_spills argument which is always false.
27578 (dse_step3): Likewise.
27579 (dse_step5): Rename from ...
27580 (dse_step5_nospill): ... this. Remove alias_set handling.
27581 (rest_of_handle_dse): Adjust.
27582
27583 2016-04-05 Jakub Jelinek <jakub@redhat.com>
27584
27585 PR target/70525
27586 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
27587 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
27588 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
27589 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
27590
27591 2016-04-05 Richard Biener <rguenther@suse.de>
27592
27593 PR middle-end/70499
27594 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
27595 non-register type temporaries into SSA.
27596
27597 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
27598
27599 PR ipa/66223
27600 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
27601 calls when sanitizing.
27602 (possible_polymorphic_call_target_p): Fix formatting.
27603
27604 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27605 Jakub Jelinek <jakub@redhat.com>
27606
27607 PR middle-end/70457
27608 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
27609 to ensure a call statement is compatible with a built-in's
27610 prototype.
27611 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
27612 Likewise.
27613
27614 2016-04-04 Richard Biener <rguenther@suse.de>
27615
27616 PR rtl-optimization/70484
27617 * rtl.h (canon_output_dependence): Declare.
27618 * alias.c (canon_output_dependence): New function.
27619 * dse.c (record_store): Use canon_output_dependence rather
27620 than canon_true_dependence.
27621
27622 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
27623
27624 PR ipa/68881
27625 * cgraph.h (symtab_node::copy_visibility_from): New function.
27626 * symtab.c (symtab_node::copy_visibility_from): New function.
27627 * ipa-visibility.c (optimize_weakref): New function.
27628 (function_and_variable_visibility): Use it.
27629
27630 2016-04-04 Martin Liska <mliska@suse.cz>
27631
27632 PR hsa/70402
27633 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
27634 value that is really in range handled by SBR instruction.
27635 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
27636 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
27637 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
27638
27639 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
27640
27641 PR target/70416
27642 PR target/67391
27643 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
27644 set, but not for SP_REG operands.
27645
27646 2016-04-02 Martin Sebor <msebor@redhat.com>
27647
27648 PR c++/67376
27649 * fold-const.c (maybe_nonzero_address): New function.
27650 (fold_comparison): Call it. Fold equality and relational
27651 expressions involving null pointers.
27652 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
27653
27654 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
27655
27656 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
27657 the "Y" constraint (scalar FP 0.0 immediate).
27658
27659 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
27660 Add the "const_double" to the list of operand constraints.
27661
27662 2016-04-01 Jakub Jelinek <jakub@redhat.com>
27663
27664 PR rtl-optimization/70467
27665 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
27666 If low word of the last operand is 0, just emit addition/subtraction
27667 for the high word.
27668
27669 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27670
27671 PR target/70404
27672 * config/s390/s390.c (s390_expand_insv): Check for everything
27673 constant instead of just VOIDmode stuff.
27674
27675 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27676
27677 PR target/70496
27678 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
27679
27680 2016-04-01 Nathan Sidwell <nathan@acm.org>
27681
27682 * tree.def (TRY_CATCH_EXPR): Correct documentation.
27683
27684 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
27685
27686 PR rtl-optimization/70461
27687 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
27688 is necessary.
27689
27690 2016-03-31 Martin Liska <mliska@suse.cz>
27691
27692 PR hsa/70399
27693 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
27694 a tree value or an immediate integer value to a buffer
27695 that is eventually copied to a BRIG section.
27696 (emit_immediate_operand): Call the function here.
27697 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
27698 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
27699 of class' fields that are removed.
27700 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
27701 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
27702 m_brig_repr_size fields.
27703
27704 2016-03-31 Martin Liska <mliska@suse.cz>
27705
27706 PR hsa/70391
27707 * hsa-gen.c (hsa_function_representation::update_dominance): New
27708 function.
27709 (convert_addr_to_flat_segment): Likewise.
27710 (gen_hsa_memory_set): New alignment argument.
27711 (gen_hsa_ctor_assignment): Likewise.
27712 (gen_hsa_insns_for_single_assignment): Provide alignment
27713 to gen_hsa_ctor_assignment.
27714 (gen_hsa_insns_for_direct_call): Add new argument.
27715 (expand_lhs_of_string_op): New function.
27716 (expand_string_operation_builtin): Likewise.
27717 (expand_memory_copy): New function.
27718 (expand_memory_set): New function.
27719 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
27720 (convert_switch_statements): Change signature.
27721 (generate_hsa): Use a return value of the function.
27722 (pass_gen_hsail::execute): Do not call
27723 convert_switch_statements here.
27724 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
27725 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
27726 (hsa_function_representation::update_dominance): New function.
27727
27728 2016-03-31 Martin Liska <mliska@suse.cz>
27729
27730 PR hsa/70391
27731 * hsa-brig.c (emit_directive_variable): Emit alignment
27732 according to hsa_symbol::m_align.
27733 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
27734 (dump_hsa_symbol): Dump alignment of HSA symbols.
27735 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
27736 (gen_hsa_addr_with_align): New function.
27737 (hsa_bitmemref_alignment): Use newly added function.
27738 (gen_hsa_insns_for_load): Likewise.
27739 (gen_hsa_insns_for_store): Likewise.
27740 (gen_hsa_memory_copy): New argument added.
27741 (gen_hsa_insns_for_single_assignment): Respect
27742 alignment for assignments processed via gen_hsa_memory_copy.
27743 (gen_hsa_insns_for_direct_call): Likewise.
27744 (gen_hsa_insns_for_return): Likewise.
27745 (gen_function_def_parameters): Set default alignment.
27746 * hsa.c (hsa_object_alignment): New function.
27747 (hsa_byte_alignment): Pasted function.
27748 * hsa.h (hsa_symbol::m_align): New field.
27749
27750 2016-03-31 Bin Cheng <bin.cheng@arm.com>
27751
27752 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
27753 scratch field for goto case.
27754
27755 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
27756
27757 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
27758
27759 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
27760
27761 PR target/70442
27762 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
27763 (scalar_chain::convert_insn): Call convert_op for reg
27764 moves to handle undefined registers.
27765
27766 2016-03-31 Nathan Sidwell <nathan@acm.org>
27767
27768 PR c++/70393
27769 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
27770 Assert we don't want to move backwards.
27771
27772 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
27773
27774 PR target/70453
27775 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
27776
27777 2016-03-31 Jakub Jelinek <jakub@redhat.com>
27778
27779 PR rtl-optimization/70460
27780 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
27781 with operand from REG_LABEL_OPERAND, instead substitute
27782 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
27783 Don't do anything for REG_NON_LOCAL_GOTO jumps.
27784
27785 2016-03-31 Martin Liska <mliska@suse.cz>
27786
27787 * passes.c (execute_one_pass): Do not call
27788 todo_after for a discarded function.
27789
27790 2016-03-31 Bin Cheng <bin.cheng@arm.com>
27791
27792 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
27793 (no_cost, infinite_cost): Initialize the new field.
27794 (get_computation_cost_at): Record setup cost.
27795 (determine_use_iv_cost_address): Skip cost computation for sub
27796 uses if we can estimate it without losing accuracy.
27797
27798 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
27799
27800 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
27801 estimates here.
27802 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
27803 max_loop_iterations_int.
27804 (tree_unswitch_outer_loop): Likewise.
27805 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
27806 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
27807
27808 2016-03-30 Richard Biener <rguenther@suse.de>
27809
27810 PR middle-end/70450
27811 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
27812
27813 2016-03-30 Jakub Jelinek <jakub@redhat.com>
27814
27815 PR target/70421
27816 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
27817 in gen_blendm expander.
27818
27819 2016-03-30 Nick Clifton <nickc@redhat.com>
27820
27821 PR target/62254
27822 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
27823 case where we are already provided with an SImode SUBREG.
27824
27825 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
27826
27827 PR target/70439
27828 * config/i386/i386.c (ix86_expand_epilogue): Properly check
27829 conflict between DRAP register and __builtin_eh_return.
27830
27831 2016-03-30 Michael Matz <matz@suse.de>
27832 Richard Biener <rguenther@suse.de>
27833
27834 PR ipa/12392
27835 * ipa-polymorphic-call.c (struct type_change_info): Change
27836 speculative to an unsigned allowing to limit the work we do.
27837 (csftc_abort_walking_p): New inline function..
27838 (check_stmt_for_type_change): Limit the number of may-defs
27839 skipped for speculative devirtualization to
27840 max-speculative-devirt-maydefs.
27841 * params.def (max-speculative-devirt-maydefs): New param.
27842 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
27843
27844 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
27845
27846 PR target/63890
27847 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
27848 and TARGET_MACHO.
27849
27850 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
27851
27852 PR tree-optimization/59124
27853 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
27854 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
27855
27856 2016-03-29 Jeff Law <law@redhat.com>
27857
27858 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
27859
27860 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
27861
27862 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
27863 to HOST_WIDE_INT.
27864
27865 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
27866
27867 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
27868 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
27869 gcrt0.o if linking dynamically.
27870
27871 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
27872
27873 PR ipa/70283
27874 * ipa-devirt.c (methods_equal_p): New function.
27875 (compare_virtual_tables): Use it.
27876 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
27877 * cgraphclones.c (clone_function_name_1): Use
27878 symbol_table::symbol_suffix_separator.
27879 * coverage.c (build_var): Likewise.
27880 * symtab.c (symbol_table::symbol_suffix_separator): New.
27881
27882 2016-03-29 Jakub Jelinek <jakub@redhat.com>
27883
27884 PR rtl-optimization/70429
27885 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
27886 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
27887 mode != result_mode.
27888
27889 PR c++/70353
27890 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
27891
27892 PR tree-optimization/70405
27893 * ssa-iterators.h (num_imm_uses): Add missing braces.
27894
27895 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
27896
27897 PR rtl-optimization/68695
27898 * ira-color.c (allocno_copy_cost_saving): New.
27899 (improve_allocation): Use it.
27900
27901 2016-03-29 Richard Henderson <rth@redhat.com>
27902
27903 PR middle-end/70355
27904 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
27905
27906 2016-03-29 Richard Biener <rguenther@suse.de>
27907
27908 PR middle-end/70424
27909 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
27910 use alignment returned by get_pointer_alignment_1 if it is
27911 bigger than BITS_PER_UNIT.
27912 * builtins.c (get_pointer_alignment_1): Do not return true
27913 for alignment extracted from SSA info.
27914
27915 2016-03-28 James Bowman <james.bowman@ftdichip.com>
27916
27917 * config/ft32/ft32.opt (mnodiv): New.
27918 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
27919 * doc/invoke.texi (FT32 Options -mnodiv): New.
27920
27921 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
27922
27923 PR target/70406
27924 * config/i386/i386.md (define_split, andn): Fix modes.
27925
27926 2016-03-26 Richard Biener <rguenther@suse.de>
27927 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
27928
27929 PR ipa/70366
27930 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
27931 instead of
27932 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
27933 as 2nd argument to cl_optimization_restore().
27934
27935 2016-03-25 Richard Henderson <rth@redhat.com>
27936
27937 PR target/70120
27938 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
27939 * config/aarch64/aarch64-protos.h: Declare it.
27940 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
27941
27942 2016-03-25 Alan Modra <amodra@gmail.com>
27943
27944 PR target/70052
27945 * config/rs6000/constraints.md (j): Simplify.
27946 * config/rs6000/predicates.md (easy_fp_constant): Exclude
27947 decimal float 0.D.
27948 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
27949 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
27950 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
27951 in all constraint alternatives.
27952 (movtd_64bit_nodm): Delete "j" constraint alternative.
27953
27954 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
27955
27956 * tree-ssa-propagate.c: Enhance docs for
27957 SSA_PROP_NOT_INTERESTING.
27958
27959 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
27960
27961 * doc/extend.texi: Fix typo in documentation to pure attribute.
27962
27963 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
27964
27965 PR target/70319
27966 * config/pa/pa.md (bswapdi2): Use a scratch register.
27967
27968 2016-03-24 Richard Henderson <rth@redhat.com>
27969
27970 PR middle-end/69845
27971 * fold-const.c (extract_muldiv_1): Correct test for multiplication
27972 overflow.
27973
27974 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
27975
27976 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
27977 using ix86_expand_binary_operator instead of gen_andsi3.
27978
27979 2016-03-24 Richard Biener <rguenther@suse.de>
27980
27981 PR tree-optimization/70396
27982 * tree-vect-stmts.c (vectorizable_comparison): Use
27983 get_vectype_for_scalar_type.
27984
27985 2016-03-24 Richard Biener <rguenther@suse.de>
27986
27987 PR middle-end/70370
27988 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
27989 with register bases.
27990
27991 2016-03-24 Richard Biener <rguenther@suse.de>
27992
27993 PR tree-optimization/70372
27994 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
27995 build_all_ones_cst to also handle vector types correctly.
27996
27997 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
27998
27999 PR target/70381
28000 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
28001 -mfloat128 here.
28002
28003 2016-03-23 Marek Polacek <polacek@redhat.com>
28004
28005 PR c++/69884
28006 * doc/invoke.texi: Document -Wignored-attributes.
28007
28008 2016-03-23 Bin Cheng <bin.cheng@arm.com>
28009
28010 PR tree-optimization/69042
28011 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
28012 parameter from 30 to 40.
28013
28014 2016-03-23 Bin Cheng <bin.cheng@arm.com>
28015
28016 PR tree-optimization/69042
28017 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
28018 for use with constant offset stripped in base.
28019
28020 2016-03-23 Richard Biener <rguenther@suse.de>
28021
28022 PR middle-end/70251
28023 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
28024 mode compatibility check.
28025 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
28026
28027 2016-03-23 Jeff Law <law@redhat.com>
28028
28029 PR tree-optimization/64058
28030 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
28031 CONFLICT_COUNT.
28032 (struct ssa_conflicts): Move up earlier in the file.
28033 (conflicts_, var_map_): New static variables.
28034 (initialize_conflict_count): New function to initialize the
28035 CONFLICT_COUNT field for each conflict pair.
28036 (compare_pairs): Lazily initialize the conflict count and use it
28037 as the first tie-breaker.
28038 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
28039 and wipe conflicts_ and map_ around the call to qsort. Remove
28040 special case for 2 coalesce pairs.
28041 * bitmap.c (bitmap_count_unique_bits): New function.
28042 (bitmap_count_bits_in_word): New function, extracted from
28043 bitmap_count_bits.
28044 (bitmap_count_bits): Use bitmap_count_bits_in_word.
28045 * bitmap.h (bitmap_count_unique_bits): Declare it.
28046
28047 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
28048
28049 PR target/69917
28050 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
28051 transparent alias chain for decl assembler name.
28052 * config/sol2.c (solaris_assemble_visibility): Likewise.
28053
28054 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28055
28056 * config/arm/arm1020e.md (1020call_op): Reduce reservation
28057 duration.
28058 (v10_fdivs): Likewise.
28059 (v10_fdivd): Likewise.
28060
28061 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28062
28063 PR driver/70132
28064 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
28065 to not call fclose twice on file.
28066
28067 2016-03-23 Jakub Jelinek <jakub@redhat.com>
28068
28069 PR tree-optimization/70354
28070 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
28071 oprnd0 is wider than oprnd1 and there is a cast from the wider
28072 type to oprnd1, mask it with the mask of the narrower type.
28073
28074 PR target/70321
28075 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
28076 Optimize TARGET_STV splitters, if high or low word of last argument
28077 is 0 or -1.
28078
28079 2016-03-22 Jeff Law <law@redhat.com>
28080
28081 PR target/70232
28082 tree-ssa-threadbackward.c
28083 (fsm_find_control_statement_thread_paths): Correctly distinguish
28084 between old style jump threads vs FSM jump threads.
28085
28086 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
28087
28088 PR target/70302
28089 * config/i386/i386.c (scalar_chain::convert_op): Support
28090 uninitialized register usage case.
28091
28092 2016-03-22 Richard Biener <rguenther@suse.de>
28093
28094 PR middle-end/70251
28095 * genmatch.c (gen_transform): Adjust last parameter to a three-state
28096 int...
28097 (capture::gen_transform): ... to change behavior when substituting
28098 a condition into cond or not-cond expr context.
28099 (dt_simplify::gen_1): Adjust.
28100 * gimple-match-head.c: Include gimplify.h for unshare_expr.
28101 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
28102 last change and instead change to
28103 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
28104 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
28105
28106 2016-03-22 Anthony Green <green@moxielogic.com>
28107
28108 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
28109 issue for moxiebox targets.
28110 (CC1PLUS_SPEC): Ditto.
28111
28112 2016-03-22 Richard Biener <rguenther@suse.de>
28113
28114 PR middle-end/70333
28115 * fold-const.c (extract_muldiv_1): Properly perform multiplication
28116 in the wide type.
28117
28118 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
28119
28120 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
28121
28122 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
28123
28124 PR target/70325
28125 * config/i386/i386.c (def_builtin): Handle
28126 OPTION_MASK_ISA_AVX512VL to be and-ed with other
28127 bits.
28128 (const struct builtin_description bdesc_special_args[]):
28129 Remove duplicate ISA bits.
28130
28131 2016-03-22 Jakub Jelinek <jakub@redhat.com>
28132
28133 PR target/70329
28134 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
28135 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
28136 in a way that works also for AVX512BW.
28137
28138 PR target/70300
28139 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
28140 instead of source if operands[1] is xmm16 and above and
28141 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
28142 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
28143
28144 PR c++/70295
28145 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
28146 on assign if (*from_p) is a comparison, set it to
28147 TREE_NO_WARNING (*from_p).
28148
28149 2016-03-21 Jakub Jelinek <jakub@redhat.com>
28150
28151 PR middle-end/70326
28152 * lra.c (restore_scratches): Ignore deleted insns.
28153
28154 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
28155 Jakub Jelinek <jakub@redhat.com>
28156
28157 PR tree-optimization/70317
28158 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
28159 to HONOR_NANS.
28160
28161 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
28162
28163 PR target/70327
28164 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
28165 of ix86_expand_move.
28166 (movoi): Ditto.
28167 (movti): Use general_operand for operand 1 predicate.
28168
28169 2016-03-21 Martin Liska <mliska@suse.cz>
28170
28171 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
28172 insns.
28173 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
28174
28175 2016-03-21 Martin Liska <mliska@suse.cz>
28176
28177 PR ipa/70306
28178 * ipa-icf.c (sem_function::parse): Skip static
28179 constructors and destructors.
28180
28181 2016-03-21 Jakub Jelinek <jakub@redhat.com>
28182
28183 PR target/70296
28184 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
28185 function-like macro, peek following token(s) if it is followed
28186 by CPP_OPEN_PAREN token with optional padding in between, and
28187 if not, don't treat it like a macro.
28188
28189 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
28190 Alexander Monakov <amonakov@ispras.ru>
28191
28192 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
28193 for the stabs debug format.
28194
28195 2016-03-21 Richard Biener <rguenther@suse.de>
28196
28197 PR tree-optimization/70310
28198 * tree-vect-generic.c (expand_vector_condition): Fold the built
28199 condition.
28200
28201 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
28202
28203 PR target/70293
28204 * config/i386/sse.md (define_insn "*vec_dup<mode>"/AVX2):
28205 Block third alternative for AVX-512VL target,
28206
28207 2016-03-21 Martin Liska <mliska@suse.cz>
28208
28209 PR hsa/70234
28210 * hsa-brig.c (emit_function_directives): Mark unemitted
28211 global variables for emission.
28212 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
28213 (get_symbol_for_decl): Likewise.
28214 * hsa.h (struct hsa_symbol): New flag.
28215
28216 2016-03-21 Richard Biener <rguenther@suse.de>
28217
28218 PR tree-optimization/70288
28219 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
28220 we do not estimate unsimplified all-constant conditionals or
28221 switches as optimized away.
28222
28223 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
28224
28225 PR rtl-optimization/69102
28226 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
28227 when we have a readonly dependency context.
28228
28229 2016-03-18 Jeff Law <law@redhat.com>
28230
28231 PR rtl-optimization/70263
28232 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
28233 (update_equiv_regs): When trying to move a store to after the insn
28234 that sets the source of the store, make sure the store occurs after
28235 the insn that sets the source of the store. When successful note
28236 the REG_EQUIV note created in the dump file.
28237
28238 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
28239 Bernd Schmidt <bschmidt@redhat.com>
28240
28241 * doc/extend.texi: Document more potential problems with basic asms.
28242
28243 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
28244
28245 PR rtl-optimization/70278
28246 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
28247 VOIDmode.
28248
28249 2016-03-18 Jason Merrill <jason@redhat.com>
28250
28251 * calls.c (load_register_parameters): Fix zero size sibcall logic.
28252
28253 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
28254
28255 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
28256 values to 128b regs.
28257
28258 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
28259
28260 PR tree-optimization/70252
28261 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
28262 boolean vector has a proper number of elements.
28263 (supportable_narrowing_operation): Likewise.
28264
28265 2016-03-18 Tom de Vries <tom@codesourcery.com>
28266
28267 PR ipa/70269
28268 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
28269
28270 2016-03-18 Jakub Jelinek <jakub@redhat.com>
28271
28272 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
28273 instead of replace_rtx for DEBUG_INSNs.
28274
28275 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
28276
28277 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
28278 load type reservations.
28279
28280 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
28281
28282 PR target/70188
28283 * config/pa/constraints.md: Revert 2015-02-13 change. Use
28284 define_constraint for "Q" and "T" constraints.
28285
28286 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
28287
28288 Tweak the pipeline model for Exynos M1
28289
28290 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
28291 model.
28292
28293 2016-03-17 David Malcolm <dmalcolm@redhat.com>
28294
28295 PR c/70264
28296 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
28297 where one or both locations aren't within a line_map.
28298
28299 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
28300
28301 PR driver/70192
28302 * opts.c (finish_options): Don't set flag_pie to the default if
28303 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
28304 if it is -1.
28305
28306 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
28307
28308 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
28309 true as ALL_REGS argument to replace_rtx.
28310
28311 2016-03-17 Richard Biener <rguenther@suse.de>
28312
28313 PR debug/70271
28314 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
28315 last.
28316
28317 2016-03-17 Jakub Jelinek <jakub@redhat.com>
28318
28319 PR target/70245
28320 * rtl.h (replace_rtx): Add ALL_REGS argument.
28321 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
28322 equality and assert mode is the same, instead of just rtx pointer
28323 equality.
28324 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
28325 true as ALL_REGS argument to replace_rtx.
28326
28327 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
28328
28329 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
28330 for boolean vector with vector mode only.
28331 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
28332
28333 2016-03-17 Nick Clifton <nickc@redhat.com>
28334
28335 PR target/70162
28336 * config/rx/rx.c (rx_print_integer): Print negative constants in
28337 decimal.
28338
28339 2016-03-17 Jakub Jelinek <jakub@redhat.com>
28340
28341 PR target/70261
28342 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
28343
28344 2016-03-16 Richard Henderson <rth@redhat.com>
28345 Richard Biener <rguenth@suse.de>
28346
28347 PR middle-end/70240
28348 PR middle-end/68215
28349 PR tree-opt/68714
28350 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
28351 first operand as is_gimple_condexpr.
28352
28353 PR middle-end/70240
28354 PR middle-end/68215
28355 Revert r231575
28356 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
28357 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
28358 Do not gimplify the result.
28359 (do_unop): Adjust call to tree_vec_extract.
28360 (do_binop): Likewise.
28361 (do_compare): Likewise.
28362 (do_plus_minus): Likewise.
28363 (do_negate): Likewise.
28364 (expand_vector_condition): Likewise.
28365 (do_cond): Likewise.
28366
28367 2016-03-16 Richard Henderson <rth@redhat.com>
28368
28369 PR target/70048
28370 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
28371 (aarch64_classify_address): Use it.
28372 (aarch64_legitimize_address): Force all subexpressions of PLUS
28373 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
28374
28375 2016-03-16 Jakub Jelinek <jakub@redhat.com>
28376 Richard Biener <rguenth@suse.de>
28377
28378 PR target/70245
28379 * rtlanal.c (replace_rtx): For REG, if from is a REG,
28380 return to even if only REGNO is equal, and assert
28381 mode is the same.
28382
28383 2016-03-11 Jeff Law <law@redhat.com>
28384
28385 PR rtl-optimization/70224
28386 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
28387
28388 2016-03-16 Richard Henderson <rth@redhat.com>
28389
28390 PR middle-end/70199
28391 * function.h (struct function): Add has_forced_label_in_static.
28392 * gimplify.c (force_labels_r): Set it.
28393 * lto-streamer-in.c (input_struct_function_base): Read it.
28394 * lto-streamer-out.c (output_struct_function_base): Write it.
28395 * tree-inline.c (has_label_address_in_static_1): Remove.
28396 (copy_forbidden): Remove fndecl parameter; test
28397 has_forced_label_in_static.
28398 (inline_forbidden_p): Update call to copy_forbidden.
28399 (tree_versionable_function_p): Likewise.
28400 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
28401 (chkp_versioning): Likewise.
28402 * tree-inline.h (copy_forbidden): Update decl.
28403
28404 2016-03-16 Marek Polacek <polacek@redhat.com>
28405
28406 PR c/70093
28407 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
28408 function being thunked if the result type doesn't have fixed size.
28409 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
28410 doesn't have fixed size.
28411
28412 2016-03-16 Bin Cheng <bin.cheng@arm.com>
28413
28414 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
28415 reporting malformed loop nest.
28416
28417 2016-03-16 Tom de Vries <tom@codesourcery.com>
28418
28419 PR lto/70187
28420 * ipa-devirt.c (possible_polymorphic_call_targets): Move
28421 nodes.length () == 1 test to before first nodes[0] access.
28422
28423 2016-03-16 Tom de Vries <tom@codesourcery.com>
28424
28425 PR tree-optimization/68715
28426 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
28427 single_pred_p test.
28428
28429 2016-03-16 Tom de Vries <tom@codesourcery.com>
28430
28431 PR tree-optimization/68809
28432 * graphite-scop-detection.c (same_close_phi_node): Test if result types
28433 are the same.
28434
28435 2016-03-16 Carlos O'Donell <carlos@redhat.com>
28436 Sandra Loosemore <sandra@codesourcery.com>
28437
28438 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
28439 on leaf attribute. Mention ELF interposition problems.
28440
28441 2016-03-16 Alan Modra <amodra@gmail.com>
28442
28443 PR rtl-optimization/69195
28444 PR rtl-optimization/47992
28445 * ira.c (indirect_jump_optimize): Ignore artificial defs.
28446 Add comments.
28447
28448 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
28449
28450 PR bootstrap/69513
28451 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
28452
28453 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
28454
28455 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
28456
28457 2016-03-15 Jakub Jelinek <jakub@redhat.com>
28458
28459 PR rtl-optimization/70222
28460 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
28461 optimization if mode is different from result_mode, queue up masking
28462 of the result in outer_op. Formatting fix.
28463
28464 PR middle-end/70239
28465 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
28466 of safe_grow.
28467
28468 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
28469
28470 PR rtl-optimization/69032
28471 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
28472 looping backwards over basic block insns.
28473
28474 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
28475
28476 PR target/66660
28477 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
28478 to non-speculative when propagating trap bits.
28479
28480 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
28481
28482 PR rtl-optimization/63384
28483 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
28484 DEBUG_INSN_P insns.
28485
28486 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
28487
28488 PR target/64411
28489 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
28490 factored out from ...
28491 (sched_analyze_insn): ... here.
28492 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
28493 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
28494 get_implicit_reg_pending_clobbers in it.
28495 (setup_id_reg_sets): Use setup_id_implicit_regs.
28496 (deps_init_id): Ditto.
28497
28498 2016-03-15 Tom de Vries <tom@codesourcery.com>
28499
28500 PR ipa/70161
28501 * cgraph.c (cgraph_node::get_body): Save, reset and restore
28502 dump_file_name.
28503 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
28504 execute_function_dump.
28505 (execute_one_pass): Don't dump function if it will be dumped after ipa
28506 transform.
28507
28508 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
28509
28510 * genrecog.c (match_pattern_2): If pred is NULL don't call
28511 safe_predicate_mode on it.
28512
28513 2016-03-14 Jakub Jelinek <jakub@redhat.com>
28514
28515 PR middle-end/70219
28516 * lra-constraints.c (delete_move_and_clobber): Change assertion
28517 to also allow dregno == 0.
28518
28519 2016-03-14 Richard Henderson <rth@redhat.com>
28520
28521 PR tree-opt/68714
28522 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
28523 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
28524 (reassociate_bb): Use optimize_vec_cond_expr; avoid
28525 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
28526 on vectors.
28527
28528 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
28529
28530 PR target/70083
28531 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
28532 regs.
28533 (lra_create_live_ranges_1): initialize hard register biggest_mode to
28534 VOIDmode.
28535 * lra-constraints.c (split_reg): For hard regs, try to find the
28536 biggest single-register mode used in the function.
28537
28538 2016-03-14 Richard Biener <rguenther@suse.de>
28539
28540 PR tree-optimization/56365
28541 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
28542 constants to compare against.
28543
28544 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
28545
28546 PR target/70098
28547 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
28548 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
28549 (define_split for the GPR case): Use int_reg_operand instead of
28550 gpc_reg_operand for the output.
28551
28552 2016-03-14 Tom de Vries <tom@codesourcery.com>
28553
28554 PR tree-optimization/70045
28555 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
28556 create_empty_if_region_on_edge argument.
28557
28558 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
28559
28560 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
28561 (STACK_CHECK_PROTECT): Likewise.
28562 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
28563 (STACK_CHECK_PROTECT): Likewise.
28564 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
28565 (STACK_CHECK_PROTECT): Likewise.
28566 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
28567 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
28568 (STACK_CHECK_PROTECT): Likewise.
28569
28570 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
28571
28572 PR rtl-optimization/69307
28573 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
28574 registers in modes that span more than one register.
28575
28576 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
28577
28578 PR target/69614
28579 * lra-constraints.c (delete_move_and_clobber): New.
28580 (remove_inheritance_pseudos): Use it.
28581
28582 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
28583
28584 PR ada/70017
28585 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
28586 the libcall is LCT_THROW.
28587 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
28588 for the checking routine.
28589
28590 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
28591
28592 PR target/70131
28593 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
28594 optimization if we have direct move.
28595 (roundu32<mode>2_fprs): Likewise.
28596
28597 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
28598
28599 PR target/70123
28600 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
28601 be rematerialized.
28602 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
28603 Arguments swapped. All callers changed. Take reg_renumber into
28604 account, and Calculate and compare register ranges for hard regs.
28605
28606 2016-03-11 Jeff Law <law@redhat.com>
28607
28608 PR tree-optimization/70190
28609 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
28610 Handle cases where we can not extract the taken edge, even though we
28611 found a constant value.
28612
28613 PR tree-optimization/64058
28614 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
28615 (num_coalesce_pairs): Move up earlier in file.
28616 (find_coalesce_pair): Initialize the INDEX field for each pair
28617 discovered.
28618 (compare_pairs): No longer sort on the elements in each pair.
28619 Instead break ties with the index of the coalesce pair.
28620
28621 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28622
28623 PR target/70002
28624 * config/aarch64/aarch64-protos.h
28625 (aarch64_save_restore_target_globals): New prototype.
28626 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
28627 Call the above when popping pragma.
28628 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
28629 New function.
28630 (aarch64_set_current_function): Rewrite using the above.
28631
28632 2016-03-11 Jakub Jelinek <jakub@redhat.com>
28633
28634 PR tree-optimization/70177
28635 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
28636 (extract_ops_from_tree): ... this. In the 2 argument
28637 overload remove _1 suffix.
28638 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
28639 (extract_ops_from_tree): ... this.
28640 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
28641 Adjust callers.
28642 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
28643 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
28644 extract_ops_from_tree instead of 2 operand one.
28645
28646 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
28647
28648 PR tree-optimization/70013
28649 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
28650 for constant-pool entries.
28651
28652 2016-03-11 Jakub Jelinek <jakub@redhat.com>
28653
28654 PR rtl-optimization/70174
28655 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
28656 followed by gen_lowpart on force_reg instead of just gen_lowpart.
28657
28658 PR tree-optimization/70169
28659 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
28660 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
28661 for unknown codes.
28662
28663 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
28664 Jakub Jelinek <jakub@redhat.com>
28665
28666 PR target/70160
28667 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
28668 of uninitialized values.
28669
28670 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28671
28672 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
28673 define_expand.
28674 ("*trunctddd2"): New pattern definition.
28675 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
28676 TD->DD truncation.
28677
28678 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28679
28680 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
28681 definitions for BFP and DFP rounding modes.
28682 ("fixuns_truncdddi2", "fixuns_trunctddi2")
28683 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
28684 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
28685 ("fix_trunctf<mode>2"): Use the new constants instead of magic
28686 numbers.
28687
28688 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28689
28690 * config/s390/constraints.md: Adjust comment.
28691 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
28692 s390_decompose_addrstyle_without_index.
28693 * config/s390/predicates.md (shift_count_or_setmem_operand):
28694 Rename to setmem_operand.
28695 * config/s390/s390-protos.h
28696 (s390_decompose_shift_count): Rename to
28697 s390_decompose_addrstyle_without_index.
28698 * config/s390/s390.c (s390_decompose_shift_count)
28699 (s390_mem_constraint, print_shift_count_operand)
28700 (print_operand_address, print_operand): Rename
28701 s390_decompose_shift_count to
28702 s390_decompose_addrstyle_without_index and rename
28703 print_shift_count_operand to print_addrstyle_operand troughout the
28704 file.
28705 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
28706 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
28707 Rename shift_count_or_setmem_operand to setmem_operand.
28708 * config/s390/vx-builtins.md ("vec_insert<mode>")
28709 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
28710 nonmemory_operand.
28711
28712 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28713
28714 PR target/70168
28715 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
28716 Handle overlapping retval and newval.
28717
28718 2016-03-10 Nick Clifton <nickc@redhat.com>
28719
28720 PR target/7044
28721 * config/aarch64/aarch64.c
28722 (aarch64_override_options_after_change_1): When forcing
28723 flag_omit_frame_pointer to be true, use a special value that can
28724 be detected if this function is called again, thus preventing
28725 flag_omit_leaf_frame_pointer from being forced to be false.
28726
28727 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28728
28729 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
28730 Set x_flag_omit_leaf_frame_pointer when handling
28731 -momit-leaf-frame-pointer.
28732
28733 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
28734
28735 PR lto/69589
28736 * cgraph.c (cgraph_node::dump): Dump split_part and
28737 indirect_call_target.
28738 * cgraph.h (cgraph_node): Add indirect_call_target flag.
28739 * ipa.c (has_addr_references_p): Cleanup.
28740 (is_indirect_call_target_p): New.
28741 (walk_polymorphic_call_targets): Do not mark virtuals that may be
28742 called indirectly as local.
28743 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
28744
28745 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
28746
28747 PR ipa/69630
28748 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
28749 on cxa_pure_virtual.
28750
28751 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
28752
28753 PR lto/69589
28754 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
28755
28756 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
28757
28758 PR lto/69589
28759 * tree.c (need_assembler_name_p): Only record main variant type names.
28760
28761 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
28762
28763 PR target/70113.
28764 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
28765 Always define to 0 or 1.
28766 (TARGET_FIX_ERR_A53_843419): New macro.
28767 * config/aarch64/aarch64-elf-raw.h
28768 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
28769 * config/aarch64/aarch64-linux.h: Likewise.
28770 * config/aarch64/aarch64.c
28771 (aarch64_override_options_after_change_1): Do not default
28772 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
28773 843419 is on.
28774 (aarch64_attributes): Handle fix-cortex-a53-843419.
28775 (aarch64_can_inline_p): Likewise.
28776 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
28777
28778 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
28779 Jakub Jelinek <jakub@redhat.com>
28780
28781 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
28782 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
28783 DECL_COMMONS if flag_unconstrained_commons is set.
28784 * tree-dfa.c (get_ref_base_and_extent): Likewise.
28785 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
28786 (funconstrained-commons): Document.
28787
28788 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
28789
28790 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
28791 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
28792
28793 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
28794
28795 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
28796 has a proper number of elements.
28797
28798 2016-03-10 Alan Modra <amodra@gmail.com>
28799
28800 PR rtl-optimization/69195
28801 PR rtl-optimization/47992
28802 * ira.c (recorded_label_ref): Delete.
28803 (update_equiv_regs): Return void.
28804 (indirect_jump_optimize): New function.
28805 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
28806 before regstat_compute_ri. Don't rebuild_jump_labels here.
28807 Delete update_regstat.
28808
28809 2016-03-10 Richard Biener <rguenther@suse.de>
28810
28811 PR tree-optimization/70128
28812 * tree-ssa-structalias.c (set_uids_in_ptset): Set
28813 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
28814
28815 2016-03-09 Jakub Jelinek <jakub@redhat.com>
28816
28817 PR tree-optimization/70152
28818 * tree-sra.c (replace_removed_params_ssa_names): Copy over
28819 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
28820
28821 PR target/70086
28822 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
28823 instead of gen_sse2_loadlpd.
28824 * config/i386/sse.md (*vec_concatv2df): Rename to...
28825 (vec_concatv2df): ... this.
28826
28827 PR tree-optimization/70127
28828 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
28829
28830 2016-03-09 David Malcolm <dmalcolm@redhat.com>
28831
28832 PR c/68473
28833 PR c++/70105
28834 * diagnostic-show-locus.c (compatible_locations_p): New function.
28835 (layout::layout): Sanitize ranges using compatible_locations_p.
28836
28837 2016-03-09 David Malcolm <dmalcolm@redhat.com>
28838
28839 PR c/68473
28840 PR c++/70105
28841 * diagnostic-show-locus.c (layout_range::layout_range): Replace
28842 location_range param with three const expanded_locations * and a
28843 bool.
28844 (layout::layout): Replace call to
28845 rich_location::lazily_expand_location with get_expanded_location.
28846 Extract the range and perform location expansion here, passing
28847 the results to the layout_range ctor.
28848 * diagnostic.c (source_range::debug): Delete.
28849 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
28850 of rich_location::get_expanded_location.
28851 * gcc-rich-location.c (get_range_for_expr): Delete.
28852 (gcc_rich_location::add_expr): Reimplement to avoid the
28853 rich_location::add_range overload that took a location_range,
28854 passing a location_t instead.
28855
28856 2016-03-09 Richard Biener <rguenther@suse.de>
28857 Jakub Jelinek <jakub@redhat.com>
28858
28859 PR tree-optimization/70138
28860 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
28861 Also skip vect_double_reduction_def.
28862
28863 2016-03-09 Jakub Jelinek <jakub@redhat.com>
28864
28865 PR target/70049
28866 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
28867 if the operand is "m".
28868
28869 2016-03-09 Nathan Sidwell <nathan@acm.org>
28870
28871 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
28872
28873 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
28874
28875 * config/i386/i386.c (processor_target_table): Fix cost table
28876 intialization order for znver1.
28877
28878 2016-03-08 Jakub Jelinek <jakub@redhat.com>
28879
28880 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
28881 - becuase -> because.
28882 * ipa-reference.c (ignore_module_statics): Likewise.
28883 * cgraph.c (cgraph_node::get_body): Likewise.
28884 * ipa-inline.c (early_inliner): Likewise.
28885 * ipa-devirt.c (types_same_for_odr): Likewise.
28886 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
28887 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
28888
28889 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28890
28891 * tree-ssa-math-opts.c: Fix typo in comment.
28892
28893 2016-03-08 Jakub Jelinek <jakub@redhat.com>
28894
28895 PR target/70110
28896 * config/i386/i386.c (scalar_chain::make_vector_copies,
28897 scalar_chain::convert_reg): Call end_sequence in between
28898 get_insns and emit_conversion_insns rather than after both
28899 calls.
28900
28901 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
28902
28903 PR target/70064
28904 * config/i386/i386.h (machine_function): Add
28905 pc_thunk_call_expanded flag.
28906 (ix86_pc_thunk_call_expanded): New define.
28907 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
28908 (*set_got): Rename insn pattern from set_got.
28909 (*set_got_labelled): Rename inst pattern from set_got_labelled.
28910 * config/i386/i386.c (ix86_compute_frame_layout): Use
28911 ix86_pc_thunk_call_expanded to prevent red-zone.
28912
28913 2016-03-07 Martin Jambor <mjambor@suse.cz>
28914
28915 * hsa.h (hsa_get_ctor_statements): Declare.
28916 (hsa_get_dtor_statements): Likewise.
28917 (hsa_get_kernel_dispatch_type): Likewise.
28918 * hsa.c (hsa_get_ctor_statements): New function.
28919 (hsa_get_dtor_statements): Likewise.
28920 (hsa_get_kernel_dispatch_type): Likewise.
28921 * hsa-brig.c (hsa_cdtor_statements): Removed.
28922 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
28923 hsa_get_dtor_statements.
28924 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
28925 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
28926
28927 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
28928
28929 * config/arm/arm-cores.def (cortex-r8): New.
28930 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
28931 * config/arm/arm-tune.md: Likewise.
28932 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
28933
28934 2016-03-07 Martin Sebor <msebor@redhat.com>
28935
28936 PR rtl-optimization/19705
28937 * doc/invoke.texi (Options That Control Optimization): Clarify
28938 -fno-branch-count-reg.
28939
28940 2016-02-26 Richard Biener <rguenther@suse.de>
28941 Jeff Law <law@redhat.com>
28942
28943 PR tree-optimization/69740
28944 * cfghooks.c (remove_edge): Request loop fixups if we delete
28945 an edge that might turn an irreducible loop into a natural
28946 loop.
28947 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
28948 Move after definition of loops_state_clear.
28949
28950 2016-03-07 Bin Cheng <bin.cheng@arm.com>
28951
28952 PR rtl-optimization/69052
28953 * rtlanal.c (commutative_operand_precedence): Set higher precedence
28954 to CONST_WIDE_INT.
28955
28956 2016-03-07 Tom de Vries <tom@codesourcery.com>
28957
28958 PR tree-optimization/70116
28959 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
28960 is_tm_ending stmts and ubsan/asan internal functions.
28961 (find_duplicate): Use it. Don't test is_tm_ending here.
28962
28963 2016-03-07 Richard Biener <rguenther@suse.de>
28964
28965 PR tree-optimization/70115
28966 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
28967 (propagate_constants_for_unrolling): Use replace_uses_by.
28968
28969 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
28970
28971 PR middle-end/69916
28972 * omp-low.c (struct oacc_loop): Add ifns.
28973 (new_oacc_loop_raw): Initialize it.
28974 (finish_oacc_loop): Clear mask & flags if no ifns.
28975 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
28976 (oacc_loop_xform_loop): Add ifns arg & adjust.
28977 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
28978
28979 2016-03-07 Richard Henderson <rth@redhat.com>
28980
28981 PR rtl-opt/70061
28982 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
28983 (insert_value_copy_on_edge): Likewise.
28984
28985 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28986
28987 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
28988
28989 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28990
28991 PR target/62281
28992 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
28993
28994 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
28995
28996 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
28997
28998 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
28999
29000 Fix sseimul type attribute.
29001 * config/i386/znver1.md
29002 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
29003 znver1_sseimul_avx256_load) : Fix the type attribute.
29004 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
29005 pipe usage and latency.
29006
29007 2016-03-05 Jakub Jelinek <jakub@redhat.com>
29008
29009 PR c++/70084
29010 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
29011 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
29012 to the right type.
29013
29014 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
29015
29016 PR c/69973
29017 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
29018
29019 PR rtl-optimization/69941
29020 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
29021 the reg share its mode.
29022
29023 2016-03-04 Jeff Law <law@redhat.com>
29024
29025 PR tree-optimization/69196
29026 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
29027 If the both SSA_NAMEs are anonymous, then consider them unassociated
29028 and include the PHI in the statement count.
29029
29030 2016-03-05 Tom de Vries <tom@codesourcery.com>
29031
29032 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
29033 construct in oacc routine. Check for oacc region in oacc routine.
29034
29035 2016-03-04 Jakub Jelinek <jakub@redhat.com>
29036
29037 PR target/70062
29038 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
29039 2016-02-22 changes, instead don't recurse if RECUR is already true.
29040 Don't change *dynamic_check if RECUR. Adjust recursive caller
29041 to pass true to the new argument.
29042 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
29043
29044 PR target/70059
29045 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
29046 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
29047 fixes.
29048 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
29049
29050 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
29051
29052 PR rtl-optimization/57676
29053 * lra-assigns.c (lra_assign): Guard test for maximum iterations
29054 with flag_checking.
29055
29056 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
29057
29058 * tree-vect-patterns.c (search_type_for_mask): Handle
29059 comparison of booleans.
29060
29061 2016-03-04 Jakub Jelinek <jakub@redhat.com>
29062
29063 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
29064 Fix @xref usage.
29065
29066 PR debug/69947
29067 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
29068 all other ops that have dw_val_class_die_ref operands,
29069 and DW_OP_GNU_entry_value.
29070
29071 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29072
29073 PR rtl-optimization/69904
29074 * config/arm/arm.c (arm_cannot_copy_insn_p):
29075 Return true for load-exclusive instructions.
29076
29077 2016-03-03 Jakub Jelinek <jakub@redhat.com>
29078
29079 PR target/70021
29080 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
29081 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
29082 the pattern no matter if it is used just by non-pattern, pattern
29083 or mix thereof.
29084 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
29085 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
29086 oprnd1 def_stmt is in pattern, don't look through it.
29087
29088 2016-03-03 Marek Polacek <polacek@redhat.com>
29089
29090 PR middle-end/70050
29091 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
29092
29093 2016-03-03 Martin Liska <mliska@suse.cz>
29094
29095 PR tree-optimization/70043
29096 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
29097 previous statement if we see a debug statement.
29098
29099 2016-03-03 Richard Biener <rguenther@suse.de>
29100
29101 PR tree-optimization/55936
29102 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
29103 parameter and guard unsafe equivalence use.
29104 (vrp_evaluate_conditional_warnv_with_ops): Always use
29105 safe equivalences but not via the quadratic compare_names
29106 helper.
29107
29108 2016-03-03 Michael Collison <michael.collison@linaro.org>
29109
29110 PR target/70014
29111 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
29112 for operand 1 to s_register_operand. Change predicate for operand
29113 2 to arm_not_immediate_operand.
29114
29115 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
29116
29117 * doc/tm.texi: Regenerated.
29118
29119 2016-03-02 Richard Henderson <rth@redhat.com>
29120
29121 PR rtl-opt/67145
29122 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
29123 simplification when all args are positive non-fixed registers.
29124
29125 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
29126
29127 * target.def (lra_p): Specify that new ports should use LRA.
29128
29129 2016-03-02 Jakub Jelinek <jakub@redhat.com>
29130
29131 PR libgomp/69555
29132 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
29133 gimplify_type_sizes the type they refer to.
29134 (omp_notice_variable): Handle reference vars to VLAs.
29135 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
29136 reference to VLA decls in the second pass instead of first pass.
29137
29138 2016-03-02 Tom de Vries <tom@codesourcery.com>
29139
29140 PR tree-optimization/68659
29141 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
29142 new_expr == NULL_TREE.
29143 (get_new_name): Handle ADDR_EXPR.
29144
29145 2016-03-02 Bin Cheng <bin.cheng@arm.com>
29146
29147 PR rtl-optimization/69052
29148 * loop-invariant.c (canonicalize_address): New function.
29149 (inv_can_prop_to_addr_use): Check validity of address expression
29150 which is canonicalized by above function.
29151
29152 2016-03-02 Alan Modra <amodra@gmail.com>
29153
29154 PR ipa/69990
29155 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
29156 larger alignment.
29157
29158 2016-03-02 Jakub Jelinek <jakub@redhat.com>
29159
29160 PR target/70028
29161 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
29162 (*movhi_internal): Put mask moves from and to memory separately
29163 from moves from/to GPRs.
29164
29165 2016-03-02 Richard Biener <rguenther@suse.de>
29166
29167 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
29168 GENERIC expressions in GIMPLE.
29169
29170 2016-03-02 Richard Biener <rguenther@suse.de>
29171
29172 * config/i386/i386.c (type_natural_mode): Fix typo.
29173
29174 2016-03-02 Nick Clifton <nickc@redhat.com>
29175
29176 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
29177
29178 2016-03-02 Richard Biener <rguenther@suse.de>
29179 Uros Bizjak <ubizjak@gmail.com>
29180
29181 PR target/67278
29182 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
29183
29184 2016-03-02 Richard Biener <rguenther@suse.de>
29185
29186 PR middle-end/67278
29187 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
29188
29189 2016-03-02 Marek Polacek <polacek@redhat.com>
29190
29191 PR c/67854
29192 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
29193 "is promoted to" warning.
29194
29195 2016-03-01 DJ Delorie <dj@redhat.com>
29196
29197 * config.gcc: Deprecate mep-*.
29198
29199 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
29200
29201 PR middle-end/70025
29202 * lra-constraints.c (regno_val_use_in): New.
29203 (match_reload): Use it instead of regno_use_in.
29204
29205 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
29206
29207 PR rtl-optimization/70007
29208 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
29209 references present in REG_EQUAL notes attached to non-SET patterns.
29210
29211 2016-03-01 Jeff Law <law@redhat.com>
29212
29213 PR tree-optimization/69196
29214 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
29215 Appropriately clamp the number of statements to copy when the
29216 thread path does not traverse a loop backedge.
29217
29218 PR tree-optimization/69196
29219 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
29220 Do count some PHIs in the thread path against the insn count. Decrease
29221 final statement count by one as the control statement in the last
29222 block will get removed. Remove special cased code for handling PHIs
29223 in the last block.
29224
29225 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
29226
29227 PR target/70027
29228 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
29229 asm dialect alternatives to explicit GOTPCREL calls.
29230
29231 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
29232
29233 PR ada/70017
29234 * ira.c (do_reload): Issue warning for generic stack checking here...
29235 * reload1.c (reload): ...instead of here and streamline it.
29236
29237 2016-03-01 Nick Clifton <nickc@redhat.com>
29238
29239 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
29240
29241 2016-03-01 Richard Biener <rguenther@suse.de>
29242
29243 PR tree-optimization/69983
29244 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
29245 types and fall back to operand_equal_p.
29246
29247 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29248
29249 Revert
29250 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29251
29252 * config/s390/constraints.md ("jm8"): New constraint.
29253 * config/s390/predicates.md ("const_int_8bitset_operand"): New
29254 predicate.
29255 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
29256 into ...
29257 ("*setmem_long<setmem_and>"): New pattern.
29258 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
29259 into ...
29260 ("*setmem_long_31z<setmem_and>"): New pattern.
29261 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
29262 New substitution rules with the required attributes.
29263
29264
29265 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29266
29267 Revert
29268 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29269
29270 * gensupport.c (process_substs_on_one_elem): Split loop to
29271 complete mark_operands_used_in_match_dup on all expressions in the
29272 vector first.
29273 (adjust_operands_numbers): Inline into process_substs_on_one_elem
29274 and remove function.
29275
29276 2016-03-01 Richard Biener <rguenther@suse.de>
29277
29278 PR middle-end/70022
29279 * fold-const.c (fold_indirect_ref_1): Fix range checking for
29280 vector BIT_FIELD_REF extract.
29281
29282 2016-03-01 Richard Biener <rguenther@suse.de>
29283
29284 PR tree-optimization/69994
29285 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
29286
29287 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
29288
29289 PR tree-optimization/69956
29290 * tree-vect-stmts.c (supportable_widening_operation): Support
29291 multi-step conversion of boolean vectors.
29292 (supportable_narrowing_operation): Likewise.
29293
29294 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29295
29296 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
29297 anymore.
29298
29299 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29300
29301 * config/s390/subst.md (DSI_VI): New mode iterator.
29302 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
29303 * config/s390/vector.md ("vec_set<mode>"): Move expander before
29304 the insn definition.
29305 ("*vec_set<mode>"): Change predicate and add alternative to
29306 support only either register or const_int operands as element
29307 selector.
29308 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
29309 operands.
29310 ("vec_extract<mode>"): New expander.
29311 ("*vec_extract<mode>"): New insn definition supporting reg and
29312 const_int element selectors.
29313 ("*vec_extract<mode>_plus"): New insn definition supporting
29314 reg+const_int element selectors.
29315 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
29316 following expander+insn definition.
29317 ("<vec_shifts_name><mode>3"): New expander.
29318 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
29319
29320 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29321
29322 * config/s390/s390.md ("*tabort_1"): Change predicate to
29323 nonmemory_operand. Add a second alternative to cover
29324 register as well as const int operands.
29325 ("*tabort_1_plus"): New pattern definition.
29326
29327 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29328
29329 * config/s390/s390.md ("*ashrdi3_cc_31")
29330 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
29331 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
29332 Merge insn definitions into ...
29333 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
29334 New pattern definition.
29335 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
29336 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
29337 ("*ashr<mode>3_and"): Merge insn definitions into ...
29338 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
29339 New pattern definition.
29340 * config/s390/subst.md ("addr_style_op_cc_subst")
29341 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
29342 substitutions patterns plus attributes.
29343 Add ashiftrt to SUBST iterator.
29344
29345 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29346
29347 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
29348 op2 to nonmemory_operand.
29349 ("*<shift>di3_31", "*<shift>di3_31_and"):
29350 Merge into single pattern definition ...
29351 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
29352 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
29353 pattern definition ...
29354 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
29355 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
29356 iterator.
29357
29358 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29359
29360 * config/s390/predicates.md (const_int_6bitset_operand): New
29361 predicate.
29362 * config/s390/s390.md: Include subst.md.
29363 ("rotl<mode>3"): New expander.
29364 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
29365 ...
29366 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
29367 * config/s390/subst.md: New file.
29368
29369 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29370
29371 * config/s390/s390.md ("op_type", "atype", "length" attributes):
29372 Remove RRR type. It doesn't really exist.
29373 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
29374 attributes.
29375 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
29376 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
29377 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
29378 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
29379 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
29380 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
29381 `enabled' attribute.
29382
29383 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29384
29385 * gensupport.c (process_substs_on_one_elem): Split loop to
29386 complete mark_operands_used_in_match_dup on all expressions in the
29387 vector first.
29388 (adjust_operands_numbers): Inline into process_substs_on_one_elem
29389 and remove function.
29390
29391 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
29392
29393 PR target/69706
29394 * config/sparc/sparc.c (NWORDS_UP): Rename to...
29395 (CEIL_NWORDS): ...this. Use CEIL macro.
29396 (compute_fp_layout): Adjust to above renaming.
29397 (function_arg_union_value): Likewise.
29398 (sparc_arg_partial_bytes): Likewise.
29399 (sparc_function_arg_advance): Likewise.
29400
29401 2016-02-29 Jeff Law <law@redhat.com>
29402
29403 PR tree-optimization/70005
29404 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
29405 where an object with a boolean range is compared against a value
29406 outside [0..1].
29407
29408 PR tree-optimization/69999
29409 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
29410 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
29411 loop cleanups.
29412
29413 2016-02-29 Richard Biener <rguenther@suse.de>
29414
29415 PR tree-optimization/69994
29416 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
29417 (get_unary_op): Look through nop conversions.
29418 (ops_equal_values_p): New function, look for equality diregarding
29419 nop conversions.
29420 (eliminate_plus_minus_pair): Use ops_equal_values_p
29421 (repropagate_negates): Do not use get_unary_op here.
29422
29423 2016-02-29 Martin Liska <mliska@suse.cz>
29424
29425 * system.h: Poison ENABLE_CHECKING macro.
29426
29427 2016-02-29 Martin Liska <mliska@suse.cz>
29428
29429 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
29430 is presented in dump flags.
29431 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
29432 (hsa_regalloc): Likewise.
29433
29434 2016-02-19 Richard Biener <rguenther@suse.de>
29435
29436 PR tree-optimization/69980
29437 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
29438 permutation of those we need to keep.
29439
29440 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
29441
29442 PR target/69706
29443 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
29444 (NWORDS_UP): ...this
29445 (init_cumulative_args): Minor tweaks.
29446 (sparc_promote_function_mode): Likewise.
29447 (scan_record_type): Delete.
29448 (traverse_record_type): New function template.
29449 (classify_data_t): New structure type.
29450 (classify_registers): New inline function.
29451 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
29452 exhausted. Instantiate traverse_record_type on classify_registers and
29453 deal with the case of a structure passed in slot #15 with no FP field
29454 in the first word.
29455 (assign_data_t): New structure type.
29456 (compute_int_layout): New static function.
29457 (compute_fp_layout): Likewise.
29458 (count_registers): New inline function.
29459 (assign_int_registers): New static function.
29460 (assign_fp_registers): Likewise.
29461 (assign_registers): New inline function.
29462 (function_arg_record_value_1): Delete.
29463 (function_arg_record_value_2): Likewise.
29464 (function_arg_record_value_3): Likewise.
29465 (function_arg_record_value): Adjust to above changes. Instantiate
29466 traverse_record_type on count_registers to first count the number of
29467 registers to be used and then on assign_registers to assign them.
29468 (function_arg_union_value): Adjust to above renaming.
29469 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
29470 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
29471 case of a structure passed in slot #15
29472 (sparc_function_arg_advance): Likewise.
29473 (function_arg_padding): Minor tweak.
29474
29475 2016-02-29 Richard Biener <rguenther@suse.de>
29476
29477 PR tree-optimization/69720
29478 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
29479 the adjustment_def path for possibly vectorized defs.
29480 (vect_create_epilog_for_reduction): Handle vectorized initial
29481 defs properly.
29482
29483 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
29484
29485 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
29486
29487 2016-02-27 Jeff Law <law@redhat.com>
29488
29489 Revert
29490 2016-02-26 Richard Biener <rguenther@suse.de>
29491 Jeff Law <law@redhat.com>
29492
29493 PR tree-optimization/69740
29494 * cfghooks.c (remove_edge): Request loop fixups if we delete
29495 an edge that might turn an irreducible loop into a natural
29496 loop.
29497
29498 2016-02-27 Jakub Jelinek <jakub@redhat.com>
29499
29500 PR rtl-optimization/69896
29501 * tree-vect-generic.c (get_compute_type): Avoid single element
29502 vector types.
29503
29504 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
29505
29506 Rename the AArch64 tuning option and related functions to enable the
29507 Newton series for the reciprocal square root to reflect its
29508 approximative characteristic.
29509
29510 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
29511 function to "aarch64_emit_approx_rsqrt".
29512 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
29513 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
29514 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
29515 (xgene1_tunings): Likewise.
29516 (use_rsqrt_p): Likewise.
29517 (aarch64_emit_swrsqrt): Use new function name.
29518 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
29519 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
29520 text explaining this option.
29521 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
29522
29523 2016-02-26 Jakub Jelinek <jakub@redhat.com>
29524
29525 PR target/69969
29526 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
29527 complain about -mallow-movmisalign without -mvsx if
29528 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
29529
29530 2016-02-26 Joel Sherrill <joel@rtems.org>
29531
29532 * config.gcc: Add x86_64-*-rtems*.
29533 * config/i386/rtems-64.h: New file.
29534
29535 2016-02-26 Joel Sherrill <joel@rtems.org>
29536
29537 * config.gcc: Add aarch64-*-rtems*.
29538 * config/aarch64/rtems.h: New file.
29539
29540 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
29541
29542 PR target/69946
29543 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
29544 shift amount using %h. Add comment.
29545
29546 2016-02-26 Richard Biener <rguenther@suse.de>
29547 Jeff Law <law@redhat.com>
29548
29549 PR tree-optimization/69740
29550 * cfghooks.c (remove_edge): Request loop fixups if we delete
29551 an edge that might turn an irreducible loop into a natural
29552 loop.
29553
29554 2016-02-26 Martin Jambor <mjambor@suse.cz>
29555
29556 PR middle-end/69920
29557 * tree-sra.c (sra_modify_assign): Do not remove loads of
29558 uninitialized aggregates to SSA_NAMEs.
29559
29560 2016-02-26 Richard Henderson <rth@redhat.com>
29561
29562 PR target/69709
29563 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
29564 pseudo in case the target rtx matches the source of the left
29565 shift.
29566
29567 2016-02-26 Martin Jambor <mjambor@suse.cz>
29568
29569 PR hsa/69568
29570 * hsa.h (hsa_type_packed_p): Declare.
29571 * hsa.c (hsa_type_packed_p): New function.
29572 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
29573 loads.
29574 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
29575 * hsa-brig.c (emit_basic_insn): Likewise.
29576
29577 2016-02-26 Martin Jambor <mjambor@suse.cz>
29578
29579 pr hsa/69674
29580 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
29581 pointers.
29582 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
29583
29584 2016-02-26 Martin Jambor <mjambor@suse.cz>
29585
29586 * hsa.h (is_a_helper): New overload for hsa_op_immed for
29587 hsa_op_with_type operands.
29588 (hsa_unsigned_type_for_type): Declare.
29589 * hsa.c (hsa_unsigned_type_for_type): New function.
29590 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
29591 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
29592 the finalizer. Do not emit extra move.
29593
29594 2016-02-26 Martin Jambor <mjambor@suse.cz>
29595
29596 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
29597 atomic operations in private segment.
29598
29599 2016-02-26 Martin Jambor <mjambor@suse.cz>
29600
29601 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
29602 statements to wi->info. Also disallow omp simd constructs.
29603 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
29604 for not gridifying. Dump special string for omp_for.
29605
29606 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29607
29608 PR target/69245
29609 * config/aarch64/aarch64.c (aarch64_set_current_function):
29610 Save/restore target globals when switching to
29611 target_option_default_node.
29612
29613 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29614
29615 PR target/69613
29616 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
29617 Return 0 if !SHIFT_COUNT_TRUNCATED.
29618
29619 2016-02-26 Jakub Jelinek <jakub@redhat.com>
29620 Eric Botcazou <ebotcazou@adacore.com>
29621
29622 PR rtl-optimization/69891
29623 * dse.c (scan_insn): If we can't figure out memset arguments
29624 or they are non-constant, call clear_rhs_from_active_local_stores.
29625
29626 2016-02-26 Martin Liska <mliska@suse.cz>
29627
29628 * doc/extend.texi: Mention clog10, clog10f an clog10l
29629 in Builtins section.
29630
29631 2016-02-26 Martin Liska <mliska@suse.cz>
29632
29633 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
29634 CHECKING_P.
29635 (resolve_args_picking_1): Likewise.
29636 * dwarf2out.h (struct GTY): Likewise.
29637
29638 2016-02-26 Martin Liska <mliska@suse.cz>
29639
29640 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
29641 with flag_checking.
29642 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
29643
29644 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
29645 Martin Liska <mliska@suse.cz>
29646
29647 * doc/install.texi: Mention --enable-valgrind-annotations.
29648
29649 2016-02-26 Richard Biener <rguenther@suse.de>
29650
29651 PR tree-optimization/69551
29652 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
29653 looking through aliases adjust DECL_PT_UID to refer to the
29654 ultimate alias target.
29655
29656 2016-02-25 Martin Liska <mliska@suse.cz>
29657
29658 PR middle-end/69919
29659 * alloc-pool.c (after_memory_report): New variable.
29660 * alloc-pool.h (base_pool_allocator ::release): Do not use
29661 the infrastructure if after_memory_report.
29662 * toplev.c (toplev::main): Mark after memory report.
29663
29664 2016-02-25 Richard Biener <rguenther@suse.de>
29665
29666 PR tree-optimization/48795
29667 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
29668
29669 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
29670
29671 PR driver/68463
29672 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
29673 offloading is enabled and -fopenacc or -fopenmp is specified.
29674 (CRTOFFLOADEND): Likewise.
29675 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
29676 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
29677 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
29678 (offload_objects_file_name): New static var.
29679 (tool_cleanup): Remove offload_objects_file_name file.
29680 (find_offloadbeginend): Replace with ...
29681 (find_crtoffloadtable): ... this.
29682 (run_gcc): Remove offload_argc and offload_argv.
29683 Get offload_objects_file_name from -foffload-objects=... option.
29684 Read names of object files with offload from this file, pass them to
29685 compile_images_for_offload_targets. Don't call find_offloadbeginend and
29686 don't pass offloadbegin and offloadend to the linker. Don't pass
29687 offload non-LTO files to the linker, because now they're not claimed.
29688
29689 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
29690
29691 PR ipa/69630
29692 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
29693 on builtin_unreachable.
29694
29695 2016-02-25 Jakub Jelinek <jakub@redhat.com>
29696
29697 PR rtl-optimization/69896
29698 * regcprop.c: Include cfgrtl.h.
29699 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
29700 than remembered mode, either delete it (if noop_move_p), or
29701 treat like copy_p but not noop_p instruction.
29702
29703 2016-02-24 Jakub Jelinek <jakub@redhat.com>
29704
29705 PR debug/69705
29706 * dwarf2out.c (gen_variable_die): Work around buggy LTO
29707 - allow NULL decl for Fortran DW_TAG_common_block variables.
29708
29709 2016-02-24 Jason Merrill <jason@redhat.com>
29710
29711 * common.opt (flifetime-dse): Add -flifetime-dse=1.
29712
29713 2016-02-24 Richard Biener <rguenther@suse.de>
29714 Jakub Jelinek <jakub@redhat.com>
29715
29716 PR middle-end/69760
29717 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
29718 conditionally executed ops to well-defined overflow behavior.
29719
29720 2016-02-24 Jakub Jelinek <jakub@redhat.com>
29721
29722 PR middle-end/69915
29723 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
29724 elements.
29725
29726 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29727
29728 PR rtl-optimization/69886
29729 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
29730 argument. Use it when checking validity of set instructions.
29731 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
29732 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
29733 callsite.
29734 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
29735 * store-motion.c (find_moveable_store): Update
29736 can_assign_to_reg_without_clobbers_p callsite.
29737
29738 2016-02-24 Richard Biener <rguenther@suse.de>
29739
29740 PR middle-end/68963
29741 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
29742 bogus check.
29743 (record_nonwrapping_iv): Do not fall back to the low/high bound
29744 for non-constant IV bases if the stmt is not always executed.
29745
29746 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29747
29748 * config/arm/arm-cores.def (cortex-a32): New entry.
29749 * config/arm/arm-tables.opt: Regenerate.
29750 * config/arm/arm-tune.md: Regenerate.
29751 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
29752 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
29753 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
29754 for -mcpu and -mtune.
29755
29756 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29757
29758 PR target/69875
29759 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
29760 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
29761 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
29762 (atomic_loaddi_1): Delete.
29763 (atomic_loaddi): Rewrite expander using the above changes.
29764
29765 2016-02-24 Jakub Jelinek <jakub@redhat.com>
29766
29767 PR c/69918
29768 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
29769 2 to 3.
29770
29771 2016-02-24 Jakub Jelinek <jakub@redhat.com>
29772 Richard Biener <rguenth@suse.de>
29773
29774 PR middle-end/69909
29775 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
29776 set_mem_attributes if tem is SSA_NAME which got expanded
29777 as a MEM.
29778
29779 2016-02-24 Richard Biener <rguenther@suse.de>
29780
29781 PR tree-optimization/69907
29782 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
29783 end of permutations for BB vectorization.
29784
29785 2016-02-24 Christian Bruel <christian.bruel@st.com>
29786
29787 * config/arm/arm-c.c (arm_option_override): Initialize
29788 target_option_current_node.
29789 * config/arm/arm.c (arm_pragma_target_parse): Replace
29790 build_target_option_node call by target_option_current_node.
29791 Set target_option_current_node.
29792 Fix comments.
29793
29794 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
29795
29796 PR target/69810
29797 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
29798 define_insn_and_split to define_insn.
29799 (zero_extendqi<mode>2_dot2): Same.
29800 (extendqi<mode>2_dot): Same.
29801 (extendqi<mode>2_dot2): Same.
29802
29803 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
29804
29805 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
29806 and add bypass for AES{D,E} and AESMC pairs.
29807 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
29808 and AESMC pairs.
29809
29810 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
29811
29812 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
29813 series for reciprocal square root in Exynos M1.
29814
29815 2016-02-23 Martin Sebor <msebor@redhat.com>
29816
29817 PR c/69759
29818 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
29819 __builtin_alloca_with_align.
29820
29821 2016-02-23 Richard Henderson <rth@redhat.com>
29822
29823 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
29824 (ix86_register_pragmas): Remove __seg_tls.
29825 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
29826 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
29827 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
29828 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
29829 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
29830 * doc/extend.texi (__seg_tls): Remove item.
29831
29832 2016-02-23 Richard Biener <rguenther@suse.de>
29833
29834 * alloc-pool.h (struct allocation_object): Make id member
29835 conditional on CHECKING_P again.
29836 (get_instance): Adjust.
29837 (base_pool_allocator): Likewise.
29838
29839 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
29840
29841 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
29842 (parallelize_loops): In OpenACC kernels mode, set n_threads to
29843 zero.
29844 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
29845 flag_openacc.
29846 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
29847
29848 2016-02-23 Richard Biener <rguenther@suse.de>
29849
29850 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
29851 * bitmap.h (struct bitmap_usage): Likewise.
29852 (bitmap_move): Declare.
29853 * bitmap.c (register_overhead): Take size_t argument.
29854 (bitmap_move): New function.
29855 * df-problems.c (df_rd_transfer_function): Use bitmap_move
29856 to properly account overhead.
29857 * tree.c (free_node): Use tree_size.
29858
29859 2016-02-23 Jakub Jelinek <jakub@redhat.com>
29860
29861 PR c++/69902
29862 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
29863 when inverting comparison.
29864
29865 PR c/69900
29866 * common.opt (Wunreachable-code): Add Warning flag.
29867
29868 2016-02-23 Mark Wielaard <mjw@redhat.com>
29869 Jakub Jelinek <jakub@redhat.com>
29870
29871 PR c/69911
29872 * cgraphunit.c (check_global_declaration): Check main_input_filename
29873 and DECL_SOURCE_FILE are not NULL.
29874
29875 2016-02-23 Martin Jambor <mjambor@suse.cz>
29876
29877 PR tree-optimization/69666
29878 * tree-sra.c (sra_modify_assign): Do not attempt to create
29879 default_def replacements for unscalarizable regions.
29880
29881 2016-02-20 Mark Wielaard <mjw@redhat.com>
29882
29883 PR c/28901
29884 * cgraphunit.c (check_global_declaration): Check level of
29885 warn_unused_const_variable and main_input_filename.
29886 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
29887 (-Wunused-variable): For C implies -Wunused-const-variable=1.
29888 (-Wunused-const-variable): Explain levels 1 and 2.
29889
29890 2016-02-22 Jakub Jelinek <jakub@redhat.com>
29891
29892 PR target/69888
29893 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
29894 identical arguments. Formatting and spelling fixes.
29895
29896 PR target/69885
29897 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
29898 be specified.
29899
29900 PR target/69894
29901 PR target/69895
29902 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
29903 and m68k-devices.def.
29904 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
29905 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
29906
29907 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
29908
29909 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
29910 and HImode registers.
29911
29912 2016-02-22 Richard Biener <rguenther@suse.de>
29913
29914 PR tree-optimization/69882
29915 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
29916 preserve permutations present because of gaps.
29917 (vect_supported_load_permutation_p): Always continue checking
29918 permutations after vect_attempt_slp_rearrange_stmts.
29919
29920 2016-02-22 Bin Cheng <bin.cheng@arm.com>
29921
29922 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
29923 min_profitable_estimate, rather than min_profitable_iters.
29924
29925 2016-02-22 Jakub Jelinek <jakub@redhat.com>
29926
29927 PR target/69885
29928 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
29929 SImode for last match_operand.
29930
29931 2016-02-22 Martin Liska <mliska@suse.cz>
29932
29933 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
29934 return bitsize - 1 as the return value.
29935
29936 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
29937
29938 PR target/69806
29939 PR target/54089
29940 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
29941 Handle negative shift counts.
29942 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
29943 force_reg on the shift constant.
29944 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
29945 (lshrsi3_d): Handle negative shift counts.
29946
29947 2016-02-22 Richard Biener <rguenther@suse.de>
29948 Tom de Vries <tom@codesourcery.com>
29949
29950 * graph.c: Include dumpfile.h.
29951 (print_graph_cfg): Split into three overloads.
29952 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
29953
29954 2016-02-22 Tom de Vries <tom@codesourcery.com>
29955
29956 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
29957 dump-fn.
29958
29959 2016-02-22 Richard Biener <rguenther@suse.de>
29960
29961 PR ipa/37448
29962 * ipa-inline-transform.c (inline_call): When not updating
29963 overall summaries adjust self size by the growth estimate.
29964 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
29965 hash-set, do not update overall summaries here. Renamed from ...
29966 (inline_to_all_callers): ... this which is now wrapping the
29967 above and performing delayed overall summary update.
29968 (early_inline_small_functions): Delay updating of the overall
29969 summary.
29970
29971 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
29972
29973 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
29974 variable.
29975
29976 2016-02-19 Jakub Jelinek <jakub@redhat.com>
29977
29978 PR driver/69805
29979 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
29980 :%* in %:gt() argument.
29981 (greater_than_spec_func): Adjust for expecting only numbers,
29982 if there are more than two numbers, compare the last two.
29983
29984 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
29985
29986 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
29987 -Wnarrowing with -std.
29988
29989 2016-02-19 Jakub Jelinek <jakub@redhat.com>
29990
29991 PR c++/69851
29992 * expr.c (store_field): Don't use bit-field path if exp is
29993 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
29994 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
29995 and the assignment can be performed by bitwise copy. Formatting
29996 fix.
29997
29998 PR middle-end/69838
29999 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
30000 call copy_reg_eh_region_note_forward on before and/or after sequences
30001 and remove note from insn if it no longer can throw.
30002
30003 PR target/69820
30004 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
30005 if TARGET_AVX512BW.
30006
30007 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30008
30009 * config/s390/vector.md: Add missing commutative operand markers
30010 to the patterns which qualify for one.
30011 * config/s390/vx-builtins.md: Likewise.
30012
30013 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30014
30015 * config/s390/vector.md (VI, VI_QHS): Add single element vector
30016 types to mode iterators.
30017 (vec_double): ... and mode attribute.
30018 * config/s390/vx-builtins.md (non_vec_int): Likewise.
30019
30020 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30021
30022 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
30023 Change the predicate of op2 from nonimmediate to general and let
30024 reload fix it if necessary.
30025
30026 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30027
30028 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
30029
30030 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30031
30032 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
30033 mode.
30034
30035 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30036
30037 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
30038 * config/s390/s390.c (s390_expand_vec_movstr): New function.
30039 * config/s390/s390.md ("movstr<P:mode>"): Call
30040 s390_expand_vec_movstr.
30041
30042 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30043
30044 * config/s390/s390.md: Add missing output modifier for operand 1
30045 to print it as address properly.
30046
30047 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30048
30049 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
30050 * config/s390/2964.md: New file.
30051 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
30052 of insn grouping attributes depending on the CPU level.
30053 (s390_get_unit_mask): New function.
30054 (s390_sched_score): Remove the OOO from the scheduling macros.
30055 Add loop to calculate a score for the instruction mix.
30056 (s390_sched_reorder): Likewise plus improve debug output.
30057 (s390_sched_variable_issue): Rename macros as above. Calculate
30058 the unit distances after actually scheduling an insn. Improve
30059 debug output.
30060 (s390_sched_init): Clear last_scheduled_unit_distance array.
30061 * config/s390/s390.md: Include 2964.md.
30062
30063 2016-02-18 Jakub Jelinek <jakub@redhat.com>
30064
30065 PR target/69671
30066 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
30067 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
30068 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
30069 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
30070 *avx512f_<code>v8div16qi2_mask_1): New insns.
30071
30072 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
30073
30074 PR target/68404
30075 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
30076 2016-02-09 change.
30077
30078 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
30079 earlyclobber from target. Use wF constraint for fused memory
30080 address.
30081 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
30082
30083 2016-02-18 Jakub Jelinek <jakub@redhat.com>
30084 Martin Liska <mliska@suse.cz>
30085
30086 PR sanitizer/69863
30087 * cfgexpand.c (asan_sanitize_stack_p): New function.
30088 (partition_stack_vars): Use the function.
30089 (expand_stack_vars): Likewise.
30090 (defer_stack_allocation): Likewise.
30091 (expand_used_vars): Likewise.
30092
30093 2016-02-18 Richard Biener <rguenther@suse.de>
30094
30095 PR middle-end/69553
30096 * fold-const.c (operand_equal_p): Properly compare offsets for
30097 IMAGPART_EXPR and ARRAY_REF.
30098
30099 2016-02-18 Nick Clifton <nickc@redhat.com>
30100
30101 PR target/62254
30102 PR target/69610
30103 * config/arm/arm.c (arm_option_override_internal): Disable
30104 interworking if the target does not support thumb instructions.
30105 (arm_reload_in_hi): Handle the case where a register to register
30106 move needs reloading because there is no simple pattern to handle
30107 it.
30108 (arm_reload_out_hi): Likewise.
30109
30110 2016-02-18 Richard Biener <rguenther@suse.de>
30111
30112 PR middle-end/69854
30113 * match.pd: Don't use fold_binary or fold_unary for folding
30114 constants.
30115
30116 2016-02-17 Jakub Jelinek <jakub@redhat.com>
30117
30118 PR c++/69850
30119 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
30120 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
30121 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
30122 warn on gimple_no_warning_p statements.
30123
30124 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
30125
30126 * doc/extend.texi (C++ Attributes): Correct description of
30127 warn_unused type attribute.
30128
30129 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30130
30131 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
30132 correct instruction.
30133
30134 2016-02-17 Richard Biener <rguenther@suse.de>
30135
30136 PR rtl-optimization/69609
30137 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
30138 (find_traces_1_round): When ending a trace update cached priority
30139 of successors.
30140 (bb_to_key): Use cached priority when available.
30141 (copy_bb): Initialize cached priority.
30142 (reorder_basic_blocks_software_trace_cache): Likewise.
30143
30144 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30145
30146 PR target/69161
30147 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
30148 New predicate.
30149 (aarch64_comparison_operator): Break overly long line into two.
30150 (aarch64_comparison_operation): Likewise.
30151 * config/aarch64/aarch64.md (cstorecc4): Use
30152 aarch64_comparison_operator_mode instead of
30153 aarch64_comparison_operator.
30154 (cstore<mode>4): Likewise.
30155 (aarch64_cstore<mode>): Likewise.
30156 (*cstoresi_insn_uxtw): Likewise.
30157 (cstore<mode>_neg): Likewise.
30158 (*cstoresi_neg_uxtw): Likewise.
30159
30160 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30161
30162 PR target/69161
30163 * config/arm/predicates.md (arm_comparison_operator_mode):
30164 New predicate.
30165 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
30166 instead of arm_comparison_operator.
30167 (*mov_negscc): Likewise.
30168 (*mov_notscc): Likewise.
30169 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
30170 (*thumb2_mov_negscc): Likewise.
30171 (*thumb2_mov_negscc_strict_it): Likewise.
30172 (*thumb2_mov_notscc): Likewise.
30173 (*thumb2_mov_notscc_strict_it): Likewise.
30174
30175 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
30176
30177 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
30178 Add missing return.
30179
30180 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
30181
30182 * config/visium/visium.c (machine_libfunc_index): New enum.
30183 (machine_libfuncs): New structure.
30184 (visium_libfuncs): New static variable.
30185 (TARGET_INIT_LIBFUNCS): Define to...
30186 (visium_init_libfuncs): ...this. New function.
30187 (expand_block_move_4): Use the appropriate libfunc.
30188 (expand_block_move_2): Likewise.
30189 (expand_block_move_1): Likewise.
30190 (expand_block_set_4): Likewise.
30191 (expand_block_set_2): Likewise.
30192 (expand_block_set_1): Likewise.
30193 (visium_trampoline_init): Likewise.
30194
30195 2016-02-17 Nick Clifton <nickc@redhat.com>
30196
30197 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
30198 TI's devices.csv file as of March 2016.
30199
30200 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
30201
30202 PR Target/48344
30203 * opts-global.c (handle_common_deferred_options): Introduce and
30204 initialize two global variables to remember command-line options
30205 specifying a stack-limiting register.
30206 * opts.h: Add extern declarations of the two new global variables.
30207 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
30208 variable based on the values of the two new global variables.
30209
30210 2016-02-16 Jakub Jelinek <jakub@redhat.com>
30211
30212 PR c/69835
30213 * common.opt (Wnonnull-compare): New warning.
30214 * doc/invoke.texi (-Wnonnull): Remove text about comparison
30215 of arguments against NULL.
30216 (-Wnonnull-compare): Document.
30217 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
30218 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
30219 * passes.def (pass_warn_nonnull_compare): Add.
30220 * gimple-ssa-nonnull-compare.c: New file.
30221
30222 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
30223
30224 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
30225 AARCH64_EXTRA_TUNE_RECIP_SQRT.
30226
30227 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
30228
30229 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
30230 reciprocal sqrt for -mlow-precision-recip-sqrt.
30231
30232 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
30233 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30234
30235 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
30236 always use lane loads to construct non-constant vectors.
30237
30238 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
30239
30240 * config/aarch64/aarch64.md
30241 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
30242 constraints for operand 3.
30243 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
30244
30245 2016-02-16 Jakub Jelinek <jakub@redhat.com>
30246 Richard Biener <rguenther@suse.de>
30247
30248 PR tree-optimization/69820
30249 * tree-vect-patterns.c (type_conversion_p): Return false if
30250 *orig_type is unsigned single precision or boolean.
30251 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
30252 Formatting fix.
30253
30254 2016-02-16 Jakub Jelinek <jakub@redhat.com>
30255
30256 PR rtl-optimization/69764
30257 PR rtl-optimization/69771
30258 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
30259 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
30260
30261 2016-02-16 Richard Biener <rguenther@suse.de>
30262
30263 PR tree-optimization/69776
30264 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
30265 sets from caller.
30266 (indirect_refs_may_alias_p): Likewise.
30267 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
30268 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
30269 according to tbaa_p.
30270 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
30271 (optimize_stmt): For redundant store discovery do not allow tbaa.
30272
30273 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
30274
30275 PR tree-optimization/69714
30276 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
30277 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
30278
30279 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
30280
30281 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
30282 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
30283 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
30284 * config/arc/arc.c (arc_init): Check FPU options.
30285 (get_arc_condition_code): Handle new CC_FPU* modes.
30286 (arc_select_cc_mode): Likewise.
30287 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
30288 register pair only. Allow access for ARCv2 accumulator.
30289 (gen_compare_reg): Whenever we have FPU support use FPU compare
30290 instructions.
30291 (arc_reorg): Don't generate brcc insns when FPU compare
30292 instructions are involved.
30293 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
30294 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
30295 floating point emulation.
30296 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
30297 (REVERSE_CONDITION): Add new CC_FPU* modes.
30298 (TARGET_FP_SP_BASE): Define.
30299 (TARGET_FP_DP_BASE): Likewise.
30300 (TARGET_FP_SP_FUSED): Likewise.
30301 (TARGET_FP_DP_FUSED): Likewise.
30302 (TARGET_FP_SP_CONV): Likewise.
30303 (TARGET_FP_DP_CONV): Likewise.
30304 (TARGET_FP_SP_SQRT): Likewise.
30305 (TARGET_FP_DP_SQRT): Likewise.
30306 (TARGET_FP_DP_AX): Likewise.
30307 * config/arc/arc.md (ARCV2_ACC): New constant.
30308 (type): New fpu type attribute.
30309 (SDF): Conditional iterator.
30310 (cstore<mode>, cbranch<mode>): Change expand condition.
30311 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
30312 handles FPU/FPX cases as well.
30313 * config/arc/arc.opt (mfpu): New option.
30314 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
30315 Renamed.
30316 (adddf3, muldf3, subdf3): Removed.
30317 * config/arc/predicates.md (proper_comparison_operator): Recognize
30318 CC_FPU* modes.
30319 * config/arc/fpu.md: New file.
30320 * doc/invoke.texi (ARC Options): Document mfpu option.
30321
30322 2016-02-16 Richard Biener <rguenther@suse.de>
30323
30324 PR rtl-optimization/69291
30325 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
30326 noce_operand_ok check.
30327
30328 2016-02-16 Tom de Vries <tom@codesourcery.com>
30329
30330 PR lto/67709
30331 * omp-low.c (simd_clone_create): Remove call to
30332 symtab->call_cgraph_insertion_hooks.
30333
30334 2016-02-16 Jakub Jelinek <jakub@redhat.com>
30335
30336 PR tree-optimization/69802
30337 * tree-ssa-reassoc.c (update_range_test): If op is
30338 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
30339 op == 1 test of precision 1 integral op, otherwise handle
30340 that case as op itself. Fix up formatting.
30341 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
30342 up formatting.
30343
30344 2016-02-16 Richard Biener <rguenther@suse.de>
30345
30346 PR tree-optimization/69586
30347 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
30348 types for conversion sources.
30349
30350 2016-02-16 Richard Biener <rguenther@suse.de>
30351
30352 PR middle-end/69801
30353 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
30354 mask OEP_ADDRESS_OF.
30355
30356 2016-02-16 Alan Modra <amodra@gmail.com>
30357
30358 PR target/68973
30359 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
30360 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
30361 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
30362 (p8_mtvsrwz): New.
30363 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
30364 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
30365 (p8_fmrgow_<mode>): Likewise.
30366 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
30367 changes.
30368 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
30369 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
30370 to use movdi_internal64. Remove op0_di.
30371 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
30372
30373 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
30374
30375 Add support for the FCCMP insn types
30376
30377 * config/aarch64/aarch64.md (fccmp): Change insn type.
30378 (fccmpe): Likewise.
30379 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
30380 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
30381 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
30382 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
30383 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
30384 * config/arm/types.md (fccmps): Add new insn type.
30385 (fccmpd): Likewise.
30386
30387 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
30388
30389 * alias.c (get_alias_set): Fix a typo in comment.
30390
30391 2016-02-15 Richard Biener <rguenther@suse.de>
30392
30393 PR tree-optimization/69595
30394 * match.pd: Complete range test simplification to true.
30395
30396 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
30397
30398 PR rtl-optimization/69648
30399 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
30400 pic_offset_table_rtx.
30401
30402 PR rtl-optimization/69752
30403 * ira.c (update_equiv_regs): When looking for more than a single SET,
30404 also take other side effects into account.
30405
30406 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
30407
30408 * config/s390/s390.c (s390_function_profiler): Add a new sequence
30409 for z900+ CPUs in 31-bit mode.
30410
30411 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
30412
30413 * common/config/s390/s390-common.c (s390_supports_split_stack):
30414 New function.
30415 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
30416 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
30417 * config/s390/s390.c (struct machine_function): New field
30418 split_stack_varargs_pointer.
30419 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
30420 in s390_emit_prologue.
30421 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
30422 vararg pointer.
30423 (morestack_ref): New global.
30424 (SPLIT_STACK_AVAILABLE): New macro.
30425 (s390_expand_split_stack_prologue): New function.
30426 (s390_live_on_entry): New function.
30427 (s390_va_start): Use split-stack vararg pointer if appropriate.
30428 (s390_asm_file_end): Emit the split-stack note sections.
30429 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
30430 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
30431 (UNSPECV_SPLIT_STACK_CALL): New unspec.
30432 (UNSPECV_SPLIT_STACK_DATA): New unspec.
30433 (split_stack_prologue): New expand.
30434 (split_stack_space_check): New expand.
30435 (split_stack_data): New insn.
30436 (split_stack_call): New expand.
30437 (split_stack_call_*): New insn.
30438 (split_stack_cond_call): New expand.
30439 (split_stack_cond_call_*): New insn.
30440
30441 2016-02-15 Richard Biener <rguenther@suse.de>
30442
30443 PR tree-optimization/69783
30444 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
30445 Add trivially correct cases.
30446
30447 2016-02-15 Tom de Vries <tom@codesourcery.com>
30448
30449 PR lto/69655
30450 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
30451 do_force_output.
30452 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
30453
30454 2016-02-15 Richard Biener <rguenther@suse.de>
30455
30456 PR tree-optimization/69776
30457 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
30458 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
30459 indicate whether we can use TBAA to disambiguate against stores.
30460 Use alias-set zero if not.
30461 (visit_reference_op_store): Do not use TBAA when looking up
30462 redundant stores.
30463 * tree-ssa-pre.c (compute_avail): Use TBAA here.
30464 (eliminate_dom_walker::before_dom_children): But not when looking
30465 up redundant stores.
30466
30467 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
30468
30469 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
30470
30471 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
30472
30473 * config/i386/znver1.md
30474 (znver1_pop, znver1_pop_mem,
30475 znver1_load_imov_double_store,
30476 znver1_load_imov_direct_store,
30477 znver1_load_imov_direct_load,
30478 znver1_load_imov_double_load): Add new.
30479 (znver1_insn, znver1_insn_load): Add icmov type.
30480 (znver1_sseavx_fma,
30481 znver1_sseavx_fma_load,
30482 znver1_avx256_fma,
30483 znver1_avx256_fma_load): Fix pipe usage.
30484
30485 2016-02-14 Alan Modra <amodra@gmail.com>
30486
30487 PR target/68973
30488 * reload.c (find_reloads_address_1): For pre/post-inc/dec
30489 with an invalid hard reg, reload just the reg not the entire
30490 pre/post-inc/dec address expression.
30491
30492 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
30493
30494 PR target/67260
30495 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
30496 fixed R1_REG scratch reg.
30497 (sibcall_value_pcrel_fdpic): Likewise.
30498
30499 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
30500
30501 PR target/67636
30502 PR target/64345
30503 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
30504
30505 2016-02-12 Walter Lee <walt@tilera.com>
30506
30507 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
30508 * config/tilegx/t-tilegx: Likewise.
30509
30510 2016-02-12 David Malcolm <dmalcolm@redhat.com>
30511
30512 PR other/69554
30513 * diagnostic-show-locus.c (struct line_span): New struct.
30514 (layout::get_first_line): Delete.
30515 (layout::get_last_line): Delete.
30516 (layout::get_num_line_spans): New member function.
30517 (layout::get_line_span): Likewise.
30518 (layout::print_heading_for_line_span_index_p): Likewise.
30519 (layout::get_expanded_location): Likewise.
30520 (layout::calculate_line_spans): Likewise.
30521 (layout::m_first_line): Delete.
30522 (layout::m_last_line): Delete.
30523 (layout::m_line_spans): New field.
30524 (layout::layout): Update comment. Replace m_first_line and
30525 m_last_line with m_line_spans, replacing their initialization
30526 with a call to calculate_line_spans.
30527 (diagnostic_show_locus): When printing source lines and
30528 annotations, rather than looping over a single span
30529 of lines, instead loop over each line_span within
30530 the layout, with an inner loop over the lines within them.
30531 Call the context's start_span callback when changing line spans.
30532 * diagnostic.c (diagnostic_initialize): Initialize start_span.
30533 (diagnostic_build_prefix): Break out the building of the location
30534 part of the string into...
30535 (diagnostic_get_location_text): ...this new function, rewriting
30536 it from nested ternary expressions to a sequence of "if"
30537 statements.
30538 (default_diagnostic_start_span_fn): New function.
30539 * diagnostic.h (diagnostic_start_span_fn): New typedef.
30540 (diagnostic_context::start_span): New field.
30541 (default_diagnostic_start_span_fn): New prototype.
30542
30543 2016-02-12 David Malcolm <dmalcolm@redhat.com>
30544
30545 PR driver/69779
30546 * gcc.c (driver::finalize): Fix cleanup of "specs".
30547
30548 2016-02-12 David Malcolm <dmalcolm@redhat.com>
30549
30550 PR driver/69265
30551 PR driver/69453
30552 * gcc.c (driver::driver): Initialize m_option_suggestions.
30553 (driver::~driver): Clean up m_option_suggestions.
30554 (suggest_option): Convert to...
30555 (driver::suggest_option): ...this, and split out into
30556 driver::build_option_suggestions and find_closest_string.
30557 (driver::build_option_suggestions): New function, from
30558 first half of suggest_option. Special-case
30559 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
30560 the sanitizer_opts array. For options of enum types, add the
30561 various enum values to the candidate strings.
30562 (driver::handle_unrecognized_options): Remove "const".
30563 * gcc.h (driver::handle_unrecognized_options): Likewise.
30564 (driver::build_option_suggestions): New decl.
30565 (driver::suggest_option): New decl.
30566 (driver::m_option_suggestions): New field.
30567 * opts-common.c (add_misspelling_candidates): New function.
30568 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
30569 and make non-static.
30570 * opts.h (sanitizer_opts): New array decl.
30571 (add_misspelling_candidates): New function decl.
30572 * spellcheck.c (find_closest_string): New function.
30573 * spellcheck.h (find_closest_string): New function decl.
30574
30575 2016-02-12 Jakub Jelinek <jakub@redhat.com>
30576
30577 PR rtl-optimization/69764
30578 PR rtl-optimization/69771
30579 * optabs.c (expand_binop_directly): For shift_optab_p, force
30580 convert_modes with VOIDmode if xop1 has VOIDmode.
30581
30582 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
30583
30584 PR target/69729
30585 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
30586 to correctly determine instrumentation thunks.
30587
30588 2016-02-12 Jakub Jelinek <jakub@redhat.com>
30589
30590 PR ipa/69241
30591 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
30592 type by reference, force lhs on the call.
30593
30594 PR ipa/68672
30595 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
30596 Compute retval and retbnd early in all cases if split_part_return_p
30597 and return_bb is not EXIT. Remove all clobber stmts and reset
30598 all debug stmts that refer to SSA_NAMEs defined in split part,
30599 except if it is retval, in that case replace the old retval with the
30600 lhs of the call to the split part.
30601
30602 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
30603
30604 revert:
30605 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
30606
30607 PR middle-end/66726
30608 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
30609 whose result is used in PHI.
30610 (maybe_optimize_range_tests): Likewise.
30611 (final_range_test_p): Likweise.
30612
30613 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
30614
30615 PR middle-end/66726
30616 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
30617 whose result is used in PHI.
30618 (maybe_optimize_range_tests): Likewise.
30619 (final_range_test_p): Likweise.
30620
30621 2016-02-12 Jakub Jelinek <jakub@redhat.com>
30622
30623 * cgraph.c: Spelling fixes - behaviour -> behavior and
30624 neighbour -> neighbor.
30625 * target.def: Likewise.
30626 * sel-sched.c: Likewise.
30627 * config/mips/mips.c: Likewise.
30628 * config/arc/arc.md: Likewise.
30629 * config/arm/cortex-a57.md: Likewise.
30630 * config/arm/arm.c: Likewise.
30631 * config/arm/neon.md: Likewise.
30632 * config/arm/arm-c.c: Likewise.
30633 * config/vms/vms-c.c: Likewise.
30634 * config/s390/s390.c: Likewise.
30635 * config/i386/znver1.md: Likewise.
30636 * config/i386/i386.c: Likewise.
30637 * config/ia64/hpux-unix2003.h: Likewise.
30638 * config/msp430/msp430.md: Likewise.
30639 * config/rx/rx.c: Likewise.
30640 * config/rx/rx.md: Likewise.
30641 * config/aarch64/aarch64-simd.md: Likewise.
30642 * config/aarch64/aarch64.c: Likewise.
30643 * config/nvptx/nvptx.c: Likewise.
30644 * config/bfin/bfin.c: Likewise.
30645 * config/cris/cris.opt: Likewise.
30646 * config/rs6000/rs6000.c: Likewise.
30647 * target.h: Likewise.
30648 * spellcheck.c: Likewise.
30649 * ira-build.c: Likewise.
30650 * tree-inline.c: Likewise.
30651 * builtins.c: Likewise.
30652 * lra-constraints.c: Likewise.
30653 * explow.c: Likewise.
30654 * hwint.h: Likewise.
30655 * targhooks.c: Likewise.
30656 * tree-vect-data-refs.c: Likewise.
30657 * expr.c: Likewise.
30658 * doc/tm.texi: Likewise.
30659 * doc/extend.texi: Likewise.
30660 * doc/install.texi: Likewise.
30661 * doc/md.texi: Likewise.
30662 * tree-ssa-tail-merge.c: Likewise.
30663 * sched-int.h: Likewise.
30664 * match.pd: Likewise.
30665 * sched-ebb.c: Likewise.
30666 * target.def (omit_struct_return_reg): Likewise.
30667 * gimple-ssa-isolate-paths.c: Likewise.
30668 (find_implicit_erroneous_behaviour): Renamed to...
30669 (find_implicit_erroneous_behavior): ... this.
30670 (find_explicit_erroneous_behaviour): Renamed to...
30671 (find_explicit_erroneous_behavior): ... this.
30672 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
30673
30674 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
30675
30676 PR rtl-optimization/64682
30677 PR rtl-optimization/69567
30678 PR rtl-optimization/69737
30679 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
30680 in I2 as well, just lose it.
30681
30682 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30683
30684 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
30685 New variable.
30686 (aarch64_last_printed_tune_string): Likewise.
30687 (aarch64_declare_function_name): Only output .arch assembler
30688 directive if it will be different from the previously output
30689 directive. Same for .tune comment but only if -dA is set.
30690 (aarch64_start_file): New function.
30691 (TARGET_ASM_FILE_START): Define.
30692
30693 2016-02-11 David Malcolm <dmalcolm@redhat.com>
30694
30695 PR plugins/69758
30696 * Makefile.in (PLUGIN_HEADERS): Add params.list.
30697
30698 2016-02-11 Jakub Jelinek <jakub@redhat.com>
30699
30700 PR target/65313
30701 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
30702 -Wmaybe-uninitialized warning.
30703
30704 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
30705
30706 PR target/69713
30707 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
30708
30709 2016-02-11 Richard Biener <rguenther@suse.de>
30710
30711 PR rtl-optimization/69291
30712 * ifcvt.c (noce_try_store_flag_constants): Do not allow
30713 subexpressions affected by changing the result.
30714
30715 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
30716
30717 PR target/69148
30718 * lra-constraints.c (curr_insn_transform): Find in/out operands
30719 for secondary memory moves. Update dups.
30720
30721 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
30722
30723 PR tree-optimization/69652
30724 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
30725 to nested loop, did source re-formatting, skip debug statements,
30726 add check on statement with volatile operand, remove dead scalar
30727 statements.
30728
30729 2016-02-10 Jakub Jelinek <jakub@redhat.com>
30730 Patrick Palka <ppalka@gcc.gnu.org>
30731
30732 PR ipa/69241
30733 PR c++/69649
30734 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
30735 calls if the return type is TREE_ADDRESSABLE.
30736 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
30737 * ipa-split.c (split_function): Fix doubled "we" in comment.
30738 Use void return type for the split part even if
30739 !split_point->split_part_set_retval.
30740
30741 2016-02-10 Bin Cheng <bin.cheng@arm.com>
30742
30743 PR tree-optimization/68021
30744 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
30745 when computing the value of biv cand by itself.
30746
30747 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
30748
30749 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
30750 (cortexa57_tunings): Likewise.
30751 (cortexa72_tunings): Likewise.
30752 (arch_macro_fusion_pair_p): Add support for AES fusion.
30753 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
30754 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
30755 Allow virtual registers before reload so early scheduling works.
30756 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
30757 correct latency and pipeline.
30758 (cortex_a57_crypto_complex): Likewise.
30759 (cortex_a57_crypto_xor): Likewise.
30760 (define_bypass): Add AES bypass.
30761
30762 2016-02-10 Richard Biener <rguenther@suse.de>
30763
30764 PR tree-optimization/69726
30765 * passes.def: Add DCE pass before late uninit.
30766 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
30767 really fixup if-conversions job.
30768
30769 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
30770
30771 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
30772 (arm_cortex_a57_tune): Likewise.
30773 (aarch_macro_fusion_pair_p): Add support for AES fusion.
30774 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
30775
30776 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
30777
30778 * timevar.def (TV_PHASE_DBGINFO): Delete.
30779 (TV_PHASE_CHECK_DBGINFO): Likewise.
30780 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
30781
30782 2016-02-10 Richard Biener <rguenther@suse.de>
30783
30784 PR tree-optimization/69719
30785 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
30786 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
30787
30788 2016-02-09 Andrew Pinski <apinski@cavium.com>
30789
30790 PR tree-opt/69282
30791 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
30792 get_vcond_mask_icode returns false.
30793
30794 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
30795
30796 PR target/68404
30797 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
30798 an ADDIS that adds a pointer to a large constant that sets the
30799 upper16 bits with a load operation.
30800
30801 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
30802
30803 PR target/68532
30804 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
30805 order.
30806 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
30807 endian.
30808 (vzipq_s16): Likewise.
30809 (vzipq_s32): Likewise.
30810 (vzipq_f32): Likewise.
30811 (vzipq_u8): Likewise.
30812 (vzipq_u16): Likewise.
30813 (vzipq_u32): Likewise.
30814 (vzipq_p8): Likewise.
30815 (vzipq_p16): Likewise.
30816
30817 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
30818
30819 PR target/68532
30820 * config/arm/arm.c (neon_endian_lane_map): New function.
30821 (neon_vector_pair_endian_lane_map): New function.
30822 (arm_evpc_neon_vuzp): Allow for big endian lane order.
30823 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
30824 endian.
30825 (vuzpq_s16): Likewise.
30826 (vuzpq_s32): Likewise.
30827 (vuzpq_f32): Likewise.
30828 (vuzpq_u8): Likewise.
30829 (vuzpq_u16): Likewise.
30830 (vuzpq_u32): Likewise.
30831 (vuzpq_p8): Likewise.
30832 (vuzpq_p16): Likewise.
30833
30834 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
30835
30836 PR target/69634
30837 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
30838 debug insns.
30839
30840 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
30841
30842 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
30843 truncate const_int operand 1 to QImode.
30844
30845 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
30846
30847 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
30848 corresponding to an abnormal edge.
30849
30850 2016-02-09 Tom de Vries <tom@codesourcery.com>
30851
30852 PR tree-optimization/69599
30853 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
30854 function.
30855 (find_func_aliases_for_builtin_call, find_func_clobbers)
30856 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
30857 partition.
30858
30859 2016-02-09 Richard Biener <rguenther@suse.de>
30860
30861 PR tree-optimization/69715
30862 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
30863 LHS on calls as non-rewritable.
30864
30865 2016-02-09 Tom de Vries <tom@codesourcery.com>
30866
30867 PR lto/69707
30868 * lto-wrapper.c (append_diag_options): New function.
30869 (compile_offload_image): Call append_diag_options.
30870
30871 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
30872
30873 PR other/69722
30874 * doc/extend.texi (Flag Output Operands): Correct sectioning.
30875 Minor copy-edit to fix verb tenses.
30876
30877 2016-02-08 Jakub Jelinek <jakub@redhat.com>
30878
30879 PR tree-optimization/69209
30880 * ipa-split.c (split_function): If split part is not
30881 returning retval, retval has gimple type but is not
30882 gimple value, force it into a SSA_NAME first.
30883
30884 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
30885
30886 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
30887 outdated section.
30888
30889 2016-02-08 Jason Merrill <jason@redhat.com>
30890
30891 PR c++/69631
30892 * convert.c (convert_to_integer_1): Check dofold on truncation
30893 distribution.
30894 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
30895 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
30896 Rename from *_nofold.
30897 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
30898 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
30899
30900 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
30901
30902 PR target/60410
30903 * tree.c (build_common_tree_nodes): Remove short_double argument.
30904 All callers changed.
30905 * tree.h (build_common_tree_nodes): Adjust declaration.
30906 * doc/invoke.texi (-fshort-double): Remove documentation.
30907 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
30908 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
30909 * lto-wrapper.c (merge_and_complain, append_compiler_options)
30910 (append_linker_options): Don't handle OPT_fshort_double.
30911
30912 PR rtl-optimization/68730
30913 * lra-remat.c (insn_to_cand_activation): New static variable.
30914 (lra_remat): Allocate and free it.
30915 (create_cand): New arg activation. Initialize a field in
30916 insn_to_cand_activation if it is nonnull.
30917 (create_cands): Pass the activation insn to create_cand when making
30918 a candidate involving an output reload. Reorganize code a little.
30919 (do_remat): Keep track of active status of candidates in a separate
30920 bitmap.
30921
30922 2016-02-08 Richard Biener <rguenther@suse.de>
30923
30924 PR tree-optimization/69719
30925 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
30926 Properly use absolute of the difference of the two offsets to
30927 compare or adjust the segment length.
30928
30929 2016-02-08 Richard Biener <rguenther@suse.de>
30930 Jeff Law <law@redhat.com>
30931
30932 PR target/68273
30933 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
30934 types for anonymous SSA names.
30935
30936 2016-02-08 Richard Biener <rguenther@suse.de>
30937
30938 PR rtl-optimization/69274
30939 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
30940
30941 2016-02-08 Jeff Law <law@redhat.com>
30942
30943 PR tree-optimization/65917
30944 * tree-ssa-dom.c (record_temporary_equivalences): Record both
30945 equivalences from if (x == y) style conditionals.
30946 (loop_depth_of_name): Remove.
30947 (record_equality): Remove loop depth check.
30948 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
30949 (const_and_copies::record_const_or_copy_raw): New member function.
30950 * tree-ssa-scopedtables.c
30951 (const_and_copies::record_const_or_copy_raw): New, factored out of
30952 (const_and_copies::record_const_or_copy): Call new member function.
30953
30954 2016-02-05 Jeff Law <law@redhat.com>
30955
30956 PR tree-optimization/68541
30957 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
30958 (count_stmts_in_block): New function.
30959 (poor_ifcvt_candidate_code): Likewise.
30960 (is_feasible_trace): Add some heuristics to determine when path
30961 splitting is profitable.
30962 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
30963 is a diamond with a single exit.
30964
30965 2016-02-05 Martin Sebor <msebor@redhat.com>
30966
30967 PR c++/69662
30968 * doc/invoke.texi: Update -Wplacement-new to take an optional
30969 argument.
30970
30971 2016-02-06 Richard Henderson <rth@redhat.com>
30972
30973 PR c/69643
30974 * tree.c (tree_nop_conversion_p): Do not strip casts into or
30975 out of non-standard address spaces.
30976
30977 2016-02-05 Jakub Jelinek <jakub@redhat.com>
30978
30979 PR rtl-optimization/69691
30980 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
30981
30982 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
30983
30984 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
30985 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
30986 (*ieee128_mfvsrd_64bit): Likewise.
30987 (*ieee128_mfvsrd_32bit): Likewise.
30988
30989 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
30990
30991 PR target/69369
30992 Revert r232560:
30993 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
30994
30995 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
30996 instrumented_version.
30997
30998 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
30999
31000 * doc/invoke.texi (Optimize Options): In table of --param options
31001 rename second occurrence of tracer-min-branch-ratio to
31002 tracer-min-branch-probability, rename
31003 tracer-min-branch-ratio-feedback to
31004 tracer-min-branch-probability-feedback and clarify description,
31005 rename sched-spec-state-edge-prob-cutoff to
31006 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
31007 to selsched-insns-to-rename, rename lto-minpartition to
31008 lto-min-partition, delete reorder-blocks-duplicate and
31009 reorder-blocks-duplicate-feedback.
31010
31011 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31012
31013 * config/s390/s390.c (s390_register_info_set_ranges): Remove
31014 superfluous loops.
31015
31016 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
31017
31018 * doc/extend.texi: S/390: Correct some typos.
31019
31020 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31021
31022 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
31023
31024 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31025
31026 PR target/69625
31027 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
31028 (s390_register_info_gprtofpr): Use new macros above.
31029 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
31030 its name.
31031 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
31032 its name. Adjust restore and save gpr ranges.
31033 (s390_register_info_set_ranges): New function.
31034 (s390_register_info): Use new macros above. Call
31035 s390_register_info_set_ranges.
31036 (s390_optimize_register_info): Likewise.
31037 (s390_hard_regno_rename_ok): Use new macros.
31038 (s390_hard_regno_scratch_ok): Likewise.
31039 (s390_emit_epilogue): Likewise.
31040 (s390_can_use_return_insn): Likewise.
31041 (s390_optimize_prologue): Likewise.
31042 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
31043
31044 2016-02-05 Jakub Jelinek <jakub@redhat.com>
31045
31046 PR bootstrap/69677
31047 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
31048 alignment fixes.
31049 (ix86_option_override_internal): Disable TARGET_STV even for
31050 -m{incoming,preferred}-stack-boundary=3.
31051
31052 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31053
31054 * config.gcc: Mark deprecated rtems targets as obsolete.
31055
31056 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
31057
31058 PR rtl-optimization/64682
31059 PR rtl-optimization/69567
31060 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
31061 before I2 only if the register is both used and set in I2.
31062
31063 2016-02-04 DJ Delorie <dj@redhat.com>
31064
31065 * config/msp430/msp430.c (msp430_start_function): Add function type.
31066
31067 2016-02-04 Jakub Jelinek <jakub@redhat.com>
31068
31069 PR fortran/69368
31070 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
31071
31072 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
31073
31074 PR rtl-optimization/69577
31075 Revert:
31076 2015-10-29 Richard Henderson <rth@redhat.com>
31077
31078 PR target/68124
31079 PR rtl-opt/67609
31080 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
31081 sse check to the exact conditions of PR 67609.
31082
31083 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
31084
31085 PR target/69667
31086 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
31087 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
31088 not allowed into the traditional Altivec registers.
31089 (movtd_64bit_nodm): Likewise.
31090 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
31091
31092 2016-02-04 David Malcolm <dmalcolm@redhat.com>
31093
31094 * config/aarch64/cortex-a57-fma-steering.c
31095 (aarch64_register_fma_steering): Remove "static" from arguments
31096 to register_pass.
31097
31098 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
31099
31100 PR target/69619
31101 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
31102 twice when complex.
31103
31104 2016-02-04 Mike Frysinger <vapier@gentoo.org>
31105
31106 * doc/invoke.texi: Delete -mno-fma4.
31107
31108 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
31109
31110 PR rtl-optimization/69577
31111 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
31112 (find_subregs_of_mode): Update accordingly. Iterate over partial
31113 definitions.
31114
31115 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
31116
31117 * config/arm/arm-protos.h (neon_reinterpret): Remove.
31118 * config/arm/arm.c (neon_reinterpret): Remove.
31119 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
31120 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
31121 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
31122 vreinterpretti): Remove.
31123 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
31124 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
31125 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
31126 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
31127 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
31128 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
31129 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
31130 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
31131 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
31132 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
31133 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
31134 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
31135 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
31136 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
31137 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
31138 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
31139 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
31140 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
31141 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
31142 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
31143 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
31144 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
31145 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
31146 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
31147 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
31148 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
31149 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
31150 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
31151 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
31152 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
31153 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
31154 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
31155 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
31156 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
31157 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
31158 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
31159 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
31160 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
31161 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
31162 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
31163 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
31164 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
31165 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
31166 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
31167 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
31168 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
31169 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
31170 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
31171 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
31172 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
31173 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
31174 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
31175 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
31176 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
31177 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
31178 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
31179 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
31180 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
31181 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
31182 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
31183 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
31184 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
31185 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
31186 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
31187 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
31188 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
31189 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
31190 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
31191 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
31192 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
31193 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
31194 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
31195 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
31196 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
31197 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
31198 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
31199 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
31200 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
31201 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
31202 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
31203 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
31204 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
31205 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
31206 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
31207 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
31208 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
31209 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
31210 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
31211 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
31212 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
31213 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
31214 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
31215 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
31216 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
31217 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
31218 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
31219 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
31220 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
31221 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
31222 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
31223 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
31224 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
31225 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
31226
31227 2016-02-04 Martin Liska <mliska@suse.cz>
31228
31229 PR sanitizer/69276
31230 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
31231 that are gimple_store_p.
31232 (maybe_instrument_call): Likewise.
31233
31234 2016-02-04 Bin Cheng <bin.cheng@arm.com>
31235
31236 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
31237 register scaling out of memory reference and comment why.
31238
31239 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31240
31241 PR target/65932
31242 PR target/67714
31243 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
31244 folding the source of a SET.
31245
31246 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31247
31248 PR target/65932
31249 PR target/67714
31250 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
31251 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
31252
31253 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
31254
31255 PR target/65932
31256 PR target/67714
31257 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
31258 HImode.
31259
31260 2016-02-04 Christian Bruel <christian.bruel@st.com>
31261
31262 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
31263 * config/arm/arm.c (arm_set_current_function): Likewise.
31264
31265 2016-02-04 Jakub Jelinek <jakub@redhat.com>
31266 Ilya Enkovich <enkovich.gnu@gmail.com>
31267 H.J. Lu <hongjiu.lu@intel.com>
31268
31269 PR target/69454
31270 * config/i386/i386.c (convert_scalars_to_vector): Remove
31271 stack alignment fixes.
31272 (ix86_option_override_internal): Disable TARGET_STV if stack
31273 might not be aligned enough.
31274 (ix86_minimum_alignment): Assert that TARGET_STV is false.
31275
31276 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
31277
31278 * config/i386/x86-tune.def: Disable default prefetching
31279 for -march=znver1.
31280
31281 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
31282 Vladimir Makarov <vmakarov@redhat.com>
31283
31284 PR target/69461
31285 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
31286 in validating fused toc addresses.
31287
31288 2016-02-03 Jakub Jelinek <jakub@redhat.com>
31289
31290 PR c/69627
31291 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
31292 range->m_caret fields if range->m_show_caret_p is false.
31293
31294 PR target/69644
31295 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
31296 Force oldval into register if it does not satisfy reg_or_short_operand
31297 predicate. Fix up formatting.
31298
31299 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
31300 Alexandre Oliva <aoliva@redhat.com>
31301
31302 PR target/69461
31303 * lra-constraints.c (simplify_operand_subreg): Check additionally
31304 address validity after potential reloading.
31305 (process_address_1): Check insns validity. In case of failure do
31306 nothing.
31307
31308 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
31309
31310 PR target/69118
31311 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
31312 Fix target.
31313
31314 2016-02-02 Jakub Jelinek <jakub@redhat.com>
31315
31316 * wide-int.cc (canonize_uhwi): New function.
31317 (wi::divmod_internal): Use it.
31318
31319 2016-02-02 James Norris <jnorris@codesourcery.com>
31320
31321 * gimplify.c (omp_notice_variable): Add usage check.
31322
31323 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
31324
31325 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
31326 like LE, GE, LT, GT when emitting relational operator.
31327
31328 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
31329
31330 * ira-costs.c (find_costs_and_classes): Add extra argument.
31331 * target.def (ira_change_pseudo_allocno_class): Add parameter.
31332 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
31333 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
31334 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
31335 Add best_class parameter, and return it if not ALL_REGS.
31336 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
31337 Add parameter.
31338 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
31339 Update target hook.
31340
31341 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
31342
31343 * config/aarch64/aarch64.c
31344 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
31345 (aarch64_ira_change_pseudo_allocno_class): New function.
31346
31347 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
31348
31349 PR target/67032
31350 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
31351
31352 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
31353
31354 * config/avr/avr.c (avr_option_override): Set
31355 PARAM_ALLOW_STORE_DATA_RACES to 1.
31356
31357 2016-02-02 Richard Biener <rguenther@suse.de>
31358
31359 PR tree-optimization/69595
31360 * match.pd: Add range test simplifications to true/false.
31361
31362 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
31363
31364 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
31365 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
31366 instead.
31367
31368 2016-02-02 Richard Biener <rguenther@suse.de>
31369
31370 PR tree-optimization/69606
31371 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
31372 info on the result before moving a stmt.
31373
31374 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
31375
31376 PR middle-end/68542
31377 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
31378 branch with vector comparison.
31379 * config/i386/sse.md (VI48_AVX): New mode iterator.
31380 (define_expand "cbranch<mode>4): Add support for conditional branch
31381 with vector comparison.
31382 * tree-vect-loop.c (optimize_mask_stores): New function.
31383 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
31384 has_mask_store field of vect_info.
31385 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
31386 vectorized loops having masked stores after vec_info destroy.
31387 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
31388 correspondent macros.
31389 (optimize_mask_stores): Add prototype.
31390
31391 2016-02-02 Alan Modra <amodra@gmail.com>
31392
31393 PR target/69548
31394 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
31395 allow subregs.
31396
31397 2016-02-02 Alan Modra <amodra@gmail.com>
31398
31399 PR target/68662
31400 * config/rs6000/rs6000.c (need_toc_init): New var, set it
31401 whenever toc_label_name used.
31402 (rs6000_file_start): Don't set up toc section here,
31403 (rs6000_output_function_epilogue): do so here instead,
31404 (rs6000_xcoff_file_start): and here.
31405 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
31406 (load_toc_aix_di): Likewise.
31407
31408 2016-02-01 Jakub Jelinek <jakub@redhat.com>
31409
31410 PR rtl-optimization/69592
31411 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
31412 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
31413 (num_sign_bit_copies_binary_arith_p): New inline function.
31414 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
31415
31416 2016-02-01 Jeff Law <law@redhat.com>
31417
31418 PR tree-optimization/69580
31419 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
31420 * tree-ssa-threadbackward.c
31421 (fsm_find_control_statement_thread_paths): Do not try to walk
31422 through large PHI nodes.
31423
31424 2016-02-01 Jakub Jelinek <jakub@redhat.com>
31425
31426 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
31427 when count is incremented above limit, don't analyze further
31428 insns afterwards.
31429
31430 * omp-low.c (oacc_parse_default_dims): Avoid
31431 -Wsign-compare warning, make sure value fits into int
31432 rather than just unsigned int.
31433
31434 2016-02-01 Bin Cheng <bin.cheng@arm.com>
31435
31436 PR tree-optimization/67921
31437 * fold-const.c (split_tree): New parameters. Convert pointer
31438 type variable part to proper type before negating.
31439 (fold_binary_loc): Pass new arguments to split_tree.
31440
31441 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
31442
31443 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
31444 (nvptx_goacc_validate_dims): Extend to handle global defaults.
31445 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
31446 * doc/tm.texti: Rebuilt.
31447 * doc/invoke.texi (fopenacc-dim): Document.
31448 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
31449 (append_compiler_options): Likewise.
31450 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
31451 (oacc_parse_default_dims): New.
31452 (oacc_validate_dims): Add USED arg. Select non-unity default when
31453 possible.
31454 (oacc_loop_fixed_partitions): Return mask of used partitions.
31455 (oacc_loop_auto_partitions): Emit dump info.
31456 (oacc_loop_partition): Return mask of used partitions.
31457 (execute_oacc_device_lower): Parse default dimension arg. Adjust
31458 loop partitioning and validation calls.
31459
31460 2016-02-01 Richard Biener <rguenther@suse.de>
31461
31462 PR middle-end/69556
31463 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
31464
31465 2016-02-01 Richard Biener <rguenther@suse.de>
31466
31467 PR tree-optimization/69574
31468 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
31469 of asserting return chrec_dont_know.
31470
31471 2016-02-01 Martin Liska <mliska@suse.cz>
31472
31473 * mem-stats-traits.h: Add copyright header.
31474 * mem-stats.h: Likewise.
31475
31476 2016-02-01 Richard Biener <rguenther@suse.de>
31477
31478 PR tree-optimization/69579
31479 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
31480 Do not propagate through abnormal PHI results.
31481
31482 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
31483
31484 * postreload.c (reload_cse_simplify): Remove dead code.
31485
31486 2016-02-01 Jakub Jelinek <jakub@redhat.com>
31487
31488 PR rtl-optimization/69570
31489 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
31490 if there is more than one set, not if there is a single set.
31491
31492 2016-02-01 Richard Henderson <rth@redhat.com>
31493
31494 PR rtl-opt/69535
31495 * combine.c (make_compound_operation): When looking through a
31496 subreg, make sure to re-extend to the width of the outer mode.
31497
31498 2016-01-30 Jakub Jelinek <jakub@redhat.com>
31499
31500 PR tree-optimization/69546
31501 * wide-int.cc (wi::divmod_internal): For unsigned division
31502 where both operands fit into uhwi, if o1 is 1 and o0 has
31503 msb set, if divident_prec is larger than bits per hwi,
31504 clear another quotient word and return 2 instead of 1.
31505 Similarly for remainder with msb in HWI set, if dividend_prec
31506 is larger than bits per hwi.
31507
31508 2016-01-29 Martin Jambor <mjambor@suse.cz>
31509
31510 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
31511 Use short lowercase names.
31512 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
31513 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
31514 acq_rel one. Protect warning agains segfaults if
31515 get_memory_order_name returns NULL.
31516 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
31517 with release semantics. Do not warn if get_memory_order already did.
31518 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
31519 semantics. Fix check for relaxed or acquire semantics. Do not warn
31520 if get_memory_order already did.
31521
31522 2016-01-29 Sebastian Pop <s.pop@samsung.com>
31523
31524 * doc/install.texi: Document that isl-0.16 is supported.
31525
31526 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
31527
31528 PR target/69299
31529 * config/i386/constraints.md (Bm): Describe as special memory
31530 constraint.
31531 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
31532 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
31533 * genpreds.c (struct constraint_data): Add is_special_memory.
31534 (have_special_memory_constraints, special_memory_start): New
31535 static vars.
31536 (special_memory_end): Ditto.
31537 (add_constraint): Add new arg is_special_memory. Add code to
31538 process its true value. Update have_special_memory_constraints.
31539 (process_define_constraint): Pass the new arg.
31540 (process_define_register_constraint): Ditto.
31541 (choose_enum_order): Process special memory.
31542 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
31543 function insn_extra_special_memory_constraint.
31544 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
31545 * gensupport.c (process_rtx): Process
31546 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
31547 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
31548 * ira-lives.c (single_reg_class): Use
31549 insn_extra_special_memory_constraint.
31550 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
31551 * lra-constraints.c (process_alt_operands): Ditto.
31552 (curr_insn_transform): Use insn_extra_special_memory_constraint.
31553 * recog.c (asm_operand_ok, preprocess_constraints): Process
31554 CT_SPECIAL_MEMORY.
31555 * reload.c (find_reloads): Ditto.
31556 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
31557 * stmt.c (parse_input_constraint): Use
31558 insn_extra_special_memory_constraint.
31559
31560 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
31561
31562 PR target/69530
31563 * lra-splill.c (lra_final_code_change): Revert r229087 by
31564 removing all sub-registers.
31565
31566 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
31567
31568 PR target/65604
31569 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
31570
31571 2016-01-29 Jakub Jelinek <jakub@redhat.com>
31572
31573 PR target/69551
31574 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
31575 SSE1, copy target into the temporary reg first before recursing
31576 on it.
31577
31578 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
31579
31580 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
31581 with vm.
31582
31583 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
31584
31585 * ginclude/stdarg.h: Test __cplusplus instead of
31586 __GXX_EXPERIMENTAL_CXX0X__.
31587
31588 2016-01-29 Richard Biener <rguenther@suse.de>
31589
31590 PR tree-optimization/69547
31591 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
31592 Do not mark clobbers necessary.
31593 (mark_all_reaching_defs_necessary_1): Likewise.
31594
31595 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
31596
31597 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
31598 declaration name with %qs and print it in both error messages.
31599 Also fix indentation.
31600
31601 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
31602
31603 PR other/69006
31604 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
31605 trailing blank line from error message.
31606
31607 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
31608
31609 PR c++/69462
31610 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
31611 for C++-11.
31612
31613 2016-01-29 Richard Biener <rguenther@suse.de>
31614
31615 PR middle-end/69537
31616 * match.pd: Allow all integral types when simplifying a
31617 widening or sign-changing conversion.
31618
31619 2016-01-28 Sebastian Pop <s.pop@samsung.com>
31620
31621 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
31622 back to setting codegen_error to fail codegen.
31623
31624 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
31625
31626 PR target/69459
31627 * config/i386/constraints.md (C): Only accept constant zero operand.
31628 (BC): New constraint.
31629 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
31630 instead of C constraint.
31631 * doc/md.texi (Machine Constraints): Update description
31632 of C constraint.
31633
31634 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
31635
31636 PR target/68400
31637 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
31638
31639 2016-01-28 Jakub Jelinek <jakub@redhat.com>
31640
31641 PR middle-end/69542
31642 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
31643 non-debug insns.
31644
31645 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
31646
31647 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
31648 branches if using guessed profile.
31649
31650 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
31651
31652 * graphite-optimize-isl.c (optimize_isl): Fix dump.
31653
31654 2016-01-28 Richard Henderson <rth@redhat.com>
31655
31656 PR target/69305
31657 * config/aarch64/aarch64-modes.def (CC_Cmode): New
31658 * config/aarch64/aarch64-protos.h: Update.
31659 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
31660 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
31661 (aarch64_get_condition_code_1): Handle CC_Cmode.
31662 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
31663 (*add<mode>3_compareC_cconly_imm): New.
31664 (*add<mode>3_compareC_cconly): New.
31665 (*add<mode>3_compareC_imm): New.
31666 (add<mode>3_compareC): New.
31667 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
31668 to be first. Use aarch64_carry_operation.
31669 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
31670 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
31671 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
31672 (subti3): Use subdi3_compare1.
31673 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
31674 (sub<mode>3_compare1): New.
31675 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
31676 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
31677 (*subsi3_carryin_uxtw): Likewise.
31678 (*ngc<mode>, *ngcsi_uxtw): Likewise.
31679 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
31680 * config/aarch64/iterators.md (DWI): New.
31681 * config/aarch64/predicates.md (aarch64_carry_operation): New.
31682 (aarch64_borrow_operation): New.
31683
31684 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
31685
31686 * graphite-optimize-isl.c (optimize_isl): Print a different debug
31687 message when isl does not return a valid schedule.
31688
31689 2016-01-28 Sebastian Pop <s.pop@samsung.com>
31690
31691 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
31692 Remove comments from class declarations: they are already in the code
31693 close by the defs.
31694
31695 2016-01-28 Sebastian Pop <s.pop@samsung.com>
31696
31697 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
31698 codegen_error_p.
31699 (ternary_op_to_tree): Same.
31700 (unary_op_to_tree): Same.
31701 (nary_op_to_tree): Same.
31702 (gcc_expression_from_isl_expr_op): Same.
31703 (gcc_expression_from_isl_expression): Same.
31704 (graphite_create_new_loop): Same.
31705 (graphite_create_new_loop_guard): Same.
31706 (build_iv_mapping): Same.
31707 (graphite_create_new_guard): Same.
31708 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
31709 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
31710
31711 2016-01-28 Sebastian Pop <s.pop@samsung.com>
31712
31713 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
31714 instead of setting codegen_error to fail codegen.
31715
31716 2016-01-28 Jason Merrill <jason@redhat.com>
31717
31718 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
31719
31720 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
31721
31722 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
31723 Remove CONST_INT_P check in CCMP cost calculation.
31724
31725 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
31726
31727 * config/aarch64/aarch64.c (generic_vector_cost):
31728 Set vec_permute_cost.
31729 (cortexa57_vector_cost): Likewise.
31730 (exynosm1_vector_cost): Likewise.
31731 (xgene1_vector_cost): Likewise.
31732 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
31733 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
31734 Add vec_permute_cost entry.
31735
31736 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
31737
31738 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
31739 immediate as %1.
31740 (add<mode>3_compare0): Likewise.
31741 (addsi3_compare0_uxtw): Likewise.
31742 (add<mode>3nr_compare0): Likewise.
31743 (compare_neg<mode>): Likewise.
31744 (<optab><mode>3): Likewise.
31745
31746 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
31747
31748 * tree-vect-stmts.c (vectorizable_comparison): Add
31749 NULL check for vectype.
31750
31751 2016-01-28 Richard Biener <rguenther@suse.de>
31752
31753 PR tree-optimization/69466
31754 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
31755 Account for PHIs we couldn't duplicate.
31756
31757 2016-01-28 Martin Liska <mliska@suse.cz>
31758
31759 PR pch/68758
31760 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
31761 instead of ENABLE_VALGRIND_CHECKING.
31762
31763 2016-01-27 Richard Henderson <rth@redhat.com>
31764
31765 PR rtl-opt/69447
31766 * lra-remat.c (subreg_regs): New.
31767 (dump_candidates_and_remat_bb_data): Dump it.
31768 (operand_to_remat): Reject if operand in subreg_regs.
31769 (set_bb_regs): Collect subreg_regs.
31770 (lra_remat): Init and free subreg_regs. Compute
31771 calculate_local_reg_remat_bb_data before create_cands.
31772
31773 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
31774
31775 PR target/68986
31776 * config/i386/i386.c (ix86_update_stack_boundary): Don't
31777 change stack_alignment_needed for __tls_get_addr call.
31778
31779 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
31780
31781 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
31782
31783 2016-01-27 Jeff Law <law@redhat.com>
31784
31785 PR tree-optimization/68398
31786 PR tree-optimization/69196
31787 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
31788 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
31789 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
31790 Only count PHIs in the last block in the path. The others will
31791 const/copy propagate away. Add heuristic to allow more irreducible
31792 subloops to be created when it is likely profitable to do so.
31793
31794 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
31795 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
31796 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
31797
31798 2016-01-27 Jakub Jelinek <jakub@redhat.com>
31799
31800 PR lto/69254
31801 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
31802 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
31803 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
31804 * tree-streamer-in.c: Include asan.h.
31805 (streamer_get_builtin_tree): For builtins in sanitizer
31806 range call initialize_sanitizer_builtins and retry.
31807
31808 2016-01-27 Ian Lance Taylor <iant@google.com>
31809
31810 * common.opt (fkeep-gc-roots-live): New undocumented option.
31811 * tree-ssa-loop-ivopts.c (add_candidate_1): If
31812 -fkeep-gc-roots-live, skip pointers.
31813 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
31814 NULL.
31815
31816 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
31817
31818 PR target/69512
31819 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
31820 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
31821
31822 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
31823
31824 PR target/68380
31825 * configure.ac: NetBSD provides SSP in its C library.
31826 * configure: Updated.
31827
31828 2016-01-27 Richard Biener <rguenther@suse.de>
31829
31830 PR tree-optimization/69166
31831 * tree-vect-loop.c (vect_is_simple_reduction): Always check
31832 reduction code for commutativity / associativity.
31833
31834 2016-01-27 Martin Jambor <mjambor@suse.cz>
31835
31836 PR tree-optimization/69355
31837 * tree-sra.c (analyze_access_subtree): Correct hole detection when
31838 total_scalarization fails.
31839
31840 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
31841
31842 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
31843 power9.
31844
31845 2016-01-27 Christian Bruel <christian.bruel@st.com>
31846
31847 PR target/69245
31848 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
31849 Move arm_reset_previous_fndecl and set_target_option_current_node in
31850 the conditional part. Call save_restore_target_globals.
31851 * config/arm/arm.c (arm_set_current_function):
31852 Refactor to better support #pragma target and attribute mix.
31853 Call save_restore_target_globals.
31854 * config/arm/arm-protos.h (save_restore_target_globals): New function.
31855
31856 2016-01-27 Martin Liska <mliska@suse.cz>
31857
31858 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
31859 reference for an HSA kernel and its host function.
31860
31861 2016-01-27 Jakub Jelinek <jakub@redhat.com>
31862
31863 PR tree-optimization/69399
31864 * wide-int.h (wi::lrshift): For larger precisions, only
31865 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
31866
31867 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
31868
31869 * config/arc/predicates.md (proper_comparison_operator): Reject
31870 constant-constant comparison.
31871
31872 2016-01-26 Tom de Vries <tom@codesourcery.com>
31873
31874 PR tree-optimization/69110
31875 * tree-data-ref.c (initialize_data_dependence_relation): Handle
31876 DR_NUM_DIMENSIONS == 0.
31877
31878 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
31879 Sebastian Pop <s.pop@samsung.com>
31880
31881 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
31882 isl_ast_op_cond and isl_ast_op_select.
31883 (gcc_expression_from_isl_expr_op): Same.
31884
31885 2016-01-26 Jason Merrill <jason@redhat.com>
31886
31887 PR c++/68782
31888 * tree.c (recompute_constructor_flags): Split out from
31889 build_constructor.
31890 (verify_constructor_flags): New.
31891 * tree.h: Declare them.
31892
31893 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
31894
31895 PR rtl-optimization/69217
31896 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
31897 are no TYPE_FIELDS set for the record type.
31898
31899 2016-01-26 Jakub Jelinek <jakub@redhat.com>
31900
31901 PR target/68662
31902 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
31903 toc_label_name unconditionally.
31904 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
31905 SYMBOL_REF string. Use toc_label_name instead of constructing
31906 LCTOC1.
31907 (rs6000_elf_declare_function_name): Use toc_label_name instead of
31908 constructing LCTOC1.
31909
31910 2016-01-26 Martin Sebor <msebor@redhat.com>
31911
31912 PR other/69477
31913 * doc/extend.texi (Common Type Attributes): Move text that talks about
31914 attribute packed from attribute aligned to the section discussing
31915 the former attribute for clarity.
31916
31917 2016-01-26 Richard Henderson <rth@redhat.com>
31918
31919 PR middle-end/60908
31920 * trans-mem.c (tm_region_init): Mark entry block as visited.
31921
31922 2016-01-26 David Malcolm <dmalcolm@redhat.com>
31923
31924 PR other/69006
31925 * diagnostic-show-locus.c (layout::print_source_line): Replace
31926 call to pp_newline with call to layout::print_newline.
31927 (layout::print_annotation_line): Likewise.
31928 (layout::move_to_column): Likewise.
31929 (layout::print_any_fixits): After printing any fixits, print a
31930 trailing newline, if necessary.
31931 (layout::print_newline): New method, resetting any colorization
31932 before a newline.
31933 (diagnostic_show_locus): Move the pp_newline to before the
31934 early bailout. Remove dummy block enclosing the layout instance.
31935 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
31936 of pp_newline_and_flush with pp_flush.
31937 (diagnostic_append_note): Delete use of pp_newline.
31938 (diagnostic_append_note_at_rich_loc): Delete.
31939 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
31940 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
31941 when newline characters are added to the buffer.
31942
31943 2016-01-26 Michael Matz <matz@suse.de>
31944
31945 * configure.ac (ac_cv_std_swap_in_utility): New test.
31946 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
31947 * configure: Regenerate.
31948 * config.in: Regenerate.
31949
31950 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
31951
31952 * config/arc/arc.md (cstoresi4): Force operand into register.
31953 (arcset<code>): Fix predicate.
31954 (arcsetltu): Likewise.
31955 (arcsetgeu): Likewise.
31956 (arcsethi): Likewise.
31957 (arcsetls): Likewise.
31958
31959 2016-01-26 Jakub Jelinek <jakub@redhat.com>
31960
31961 PR tree-optimization/69483
31962 * gimple-fold.c (canonicalize_constructor_val): Return NULL
31963 if base has error_mark_node type.
31964
31965 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
31966
31967 PR target/68620
31968 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
31969 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
31970 New helper macros.
31971 (vget_lane_f16): Handle big-endian.
31972 (vgetq_lane_f16): Likewise.
31973 (vset_lane_f16): Likewise.
31974 (vsetq_lane_f16): Likewise.
31975 * config/arm/iterators.md (VQXMOV): Add V8HF.
31976 (VDQ): Add V4HF and V8HF.
31977 (V_reg): Handle V4HF and V8HF.
31978 (Is_float_mode): Likewise.
31979 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
31980 neon_vdup_nv8hf): New patterns.
31981 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
31982 Use VD_LANE iterator.
31983 (neon_vld1_dup<mode>): Use VQ2 iterator.
31984
31985 2016-01-26 Nathan Sidwell <nathan@acm.org>
31986
31987 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
31988 (set_oacc_fn_attrib): Add IS_KERNEL arg.
31989 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
31990 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
31991 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
31992 (oacc_validate_dims): Add LEVEL arg, don't return level.
31993 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
31994 oacc_validate_dims.
31995 (execute_oacc_device_lower): Adjust, add more dump output.
31996 * tree-ssa-loop.c (gate_oacc_kernels): Use
31997 oacc_fn_attrib_kernels_p.
31998 * tree-parloops.c (create_parallel_loop): Adjust
31999 set_oacc_fn_attrib call.
32000
32001 2016-01-26 Jakub Jelinek <jakub@redhat.com>
32002
32003 PR lto/69254
32004 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
32005 (append_compiler_options): Handle -fcilkplus.
32006 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
32007
32008 2016-01-26 Nick Clifton <nickc@redhat.com>
32009
32010 PR target/66655
32011 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
32012 been marked as DECL_ONE_ONLY but we do not the means to make it
32013 so, then do not allow it to bind locally.
32014
32015 2016-01-26 Jakub Jelinek <jakub@redhat.com>
32016
32017 PR lto/69254
32018 * opts.h (parse_sanitizer_options): New prototype.
32019 * opts.c (sanitizer_opts): New array.
32020 (parse_sanitizer_options): New function.
32021 (common_handle_option): Use parse_sanitizer_options.
32022
32023 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
32024
32025 PR target/68986
32026 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
32027 alignment adjustment to ...
32028 (ix86_update_stack_boundary): Here. Don't over-align stack for
32029 __tls_get_addr.
32030 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
32031 if __tls_get_addr is called.
32032
32033 2016-01-26 Christian Bruel <christian.bruel@st.com>
32034
32035 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
32036
32037 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
32038
32039 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
32040
32041 2016-01-26 Richard Biener <rguenther@suse.de>
32042
32043 PR middle-end/69467
32044 * match.pd: Guard X * CST CMP 0 pattern with single_use.
32045
32046 2016-01-26 Richard Biener <rguenther@suse.de>
32047
32048 PR tree-optimization/69452
32049 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
32050 (move_computations_dom_walker::before_dom_children): Rename
32051 to ...
32052 (move_computations_worker): This.
32053 (move_computations): Perform an RPO rather than a DOM walk.
32054
32055 2016-01-26 Jakub Jelinek <jakub@redhat.com>
32056
32057 PR target/69442
32058 * combine.c (combine_instructions): For REG_EQUAL note with
32059 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
32060 to the underlying register.
32061 * doc/rtl.texi (REG_EQUAL): Document the behavior of
32062 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
32063
32064 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
32065
32066 PR target/67896
32067 * config/aarch64/aarch64-builtins.c
32068 (aarch64_init_simd_builtin_types): Do not set structural
32069 equality to __Poly{8,16,64,128}_t types.
32070
32071 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
32072
32073 PR tree-optimization/69400
32074 * wide-int.cc (wi_pack): Take the precision as argument and
32075 perform canonicalization here rather than in the callers.
32076 Use the main loop to handle all full-width HWIs. Add a
32077 zero HWI if in_len isn't a full result.
32078 (wi::divmod_internal): Update accordingly.
32079 (wi::mul_internal): Likewise. Simplify.
32080
32081 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
32082 Sebastian Pop <s.pop@samsung.com>
32083
32084 * graphite-poly.c (apply_poly_transforms): Simplify.
32085 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
32086 (print_isl_map): Same.
32087 (print_isl_union_map): Same.
32088 (print_isl_schedule): New.
32089 (debug_isl_schedule): New.
32090 * graphite-dependences.c (scop_get_reads): Do not call
32091 isl_union_map_add_map that is undocumented isl functionality.
32092 (scop_get_must_writes): Same.
32093 (scop_get_may_writes): Same.
32094 (scop_get_original_schedule): Remove.
32095 (scop_get_dependences): Do not call isl_union_map_compute_flow that
32096 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
32097 (compute_deps): Remove.
32098 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
32099 (debug_schedule_ast): New.
32100 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
32101 set_separate_option.
32102 (graphite_regenerate_ast_isl): Add dump.
32103 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
32104 from scop->transformed_schedule.
32105 (graphite_regenerate_ast_isl): Add more dump.
32106 * graphite-optimize-isl.c (optimize_isl): Set
32107 scop->transformed_schedule. Check whether schedules are equal.
32108 (apply_poly_transforms): Move here.
32109 * graphite-poly.c (apply_poly_transforms): ... from here.
32110 (free_poly_bb): Static.
32111 (free_scop): Static.
32112 (pbb_number_of_iterations_at_time): Remove.
32113 (print_isl_ast): New.
32114 (debug_isl_ast): New.
32115 (debug_scop_pbb): New.
32116 * graphite-scop-detection.c (print_edge): Move.
32117 (print_sese): Move.
32118 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
32119 (build_scop_scattering): Remove.
32120 (create_pw_aff_from_tree): Assert instead of bailing out.
32121 (add_condition_to_pbb): Remove unused code, do not fail.
32122 (add_conditions_to_domain): Same.
32123 (add_conditions_to_constraints): Remove.
32124 (build_scop_context): New.
32125 (add_iter_domain_dimension): New.
32126 (build_iteration_domains): Initialize pbb->iterators.
32127 Call add_conditions_to_domain.
32128 (nested_in): New.
32129 (loop_at): New.
32130 (index_outermost_in_loop): New.
32131 (index_pbb_in_loop): New.
32132 (outermost_pbb_in): New.
32133 (add_in_sequence): New.
32134 (add_outer_projection): New.
32135 (outer_projection_mupa): New.
32136 (add_loop_schedule): New.
32137 (build_schedule_pbb): New.
32138 (build_schedule_loop): New.
32139 (embed_in_surrounding_loops): New.
32140 (build_schedule_loop_nest): New.
32141 (build_original_schedule): New.
32142 (build_poly_scop): Call build_original_schedule.
32143 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
32144 (free_poly_dr): Remove.
32145 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
32146 (free_poly_bb): Remove.
32147 (debug_loop_vec): Remove.
32148 (print_isl_ast): Declare.
32149 (debug_isl_ast): Declare.
32150 (scop_do_interchange): Remove.
32151 (scop_do_strip_mine): Remove.
32152 (scop_do_block): Remove.
32153 (flatten_all_loops): Remove.
32154 (optimize_isl): Remove.
32155 (pbb_number_of_iterations_at_time): Remove.
32156 (debug_scop_pbb): Declare.
32157 (print_schedule_ast): Declare.
32158 (debug_schedule_ast): Declare.
32159 (struct scop): Remove schedule. Add original_schedule,
32160 transformed_schedule.
32161 (free_gimple_poly_bb): Remove.
32162 (print_generated_program): Remove.
32163 (debug_generated_program): Remove.
32164 (unify_scattering_dimensions): Remove.
32165 * sese.c (print_edge): ... here.
32166 (print_sese): ... here.
32167 (debug_edge): ... here.
32168 (debug_sese): ... here.
32169 * sese.h (print_edge): Declare.
32170 (print_sese): Declare.
32171 (dump_edge): Declare.
32172 (dump_sese): Declare.
32173
32174 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
32175 Sebastian Pop <s.pop@samsung.com>
32176
32177 * Makefile.in: Set ISLVER in site.exp.
32178
32179 2016-01-25 Jakub Jelinek <jakub@redhat.com>
32180
32181 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
32182 DECL_VALUE_EXPR of new_var even for the non-array case. Look
32183 through DECL_VALUE_EXPR for expansion.
32184
32185 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
32186
32187 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
32188 the frame info after reload completed.
32189
32190 2016-01-25 Jeff Law <law@redhat.com>
32191
32192 PR tree-optimization/69196
32193 PR tree-optimization/68398
32194 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
32195 tree-ssa-threadupdate.c.
32196 (determine_bb_domination_status): Prototype
32197 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
32198 (determine_bb_domination_status): No longer static.
32199 (valid_jump_thread_path): Remove code to detect characteristics
32200 of the jump thread path not associated with correctness.
32201 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
32202 Correct test for thread path length. Count PHIs for real operands as
32203 statements that need to be copied. Do not count ASSERT_EXPRs.
32204 Look at all the blocks in the thread path. Compute and selectively
32205 filter thread paths based on threading through the latch, threading
32206 a multiway branch or crossing a multiway branch.
32207
32208 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32209
32210 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
32211 decl with __attribute__ ((unused)) annotation.
32212
32213 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
32214
32215 PR target/69421
32216 * tree-vect-stmts.c (vectorizable_condition): Check vectype
32217 of operands is compatible with a statement vectype.
32218
32219 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
32220
32221 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
32222 improve wording for mixed storage order support.
32223
32224 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
32225
32226 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
32227 (vcvt_u64_f64): Likewise.
32228 (vcvta_s64_f64): Likewise.
32229 (vcvta_u64_f64): Likewise.
32230 (vcvtm_s64_f64): Likewise.
32231 (vcvtm_u64_f64): Likewise.
32232 (vcvtn_s64_f64): Likewise.
32233 (vcvtn_u64_f64): Likewise.
32234 (vcvtp_s64_f64): Likewise.
32235 (vcvtp_u64_f64): Likewise.
32236
32237 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
32238
32239 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
32240 (arc_init): Check validity mll64 option.
32241 (arc_save_restore): Use double load/store instruction.
32242 (arc_expand_movmem): Likewise.
32243 (arc_split_move): Don't split if we have double load/store
32244 instructions. Returns a boolean.
32245 (arc_process_double_reg_moves): Change function to return boolean
32246 instead of a sequence of instructions.
32247 (arc_dwarf_register_span): New function.
32248 * config/arc/arc-protos.h (arc_split_move): Change prototype.
32249 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
32250 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
32251 (*movdf_insn): Likewise.
32252 * config/arc/arc.opt (mll64): New option.
32253 * config/arc/predicates.md (even_register_operand): New predicate.
32254 * doc/invoke.texi (ARC Options): Add mll64 documentation.
32255
32256 2016-01-25 Richard Biener <rguenther@suse.de>
32257
32258 PR lto/69393
32259 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
32260 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
32261 DECL_NAMELESS.
32262 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
32263
32264 2016-01-25 Richard Biener <rguenther@suse.de>
32265
32266 PR tree-optimization/69376
32267 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
32268 flag.
32269 (VN_INFO_ANTI_RANGE_P): New inline.
32270 (VN_INFO_RANGE_TYPE): Likewise.
32271 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
32272 SSA_NAME_ANTI_RANGE_P.
32273 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
32274 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
32275 Properly query VN_INFO_RANGE_TYPE.
32276
32277 2016-01-25 Nick Clifton <nickc@redhat.com>
32278
32279 PR target/66655
32280 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
32281
32282 2016-01-23 Tom de Vries <tom@codesourcery.com>
32283
32284 PR tree-optimization/69426
32285 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
32286 removed clobber.
32287
32288 2016-01-23 Jakub Jelinek <jakub@redhat.com>
32289
32290 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
32291 "the the" with "the" in the comments.
32292 * ipa-devirt.c (build_type_inheritance_graph,
32293 update_type_inheritance_graph): Likewise.
32294 * tree.c (build_function_type_list_1): Likewise.
32295 * cfgloopmanip.c (scale_loop_profile): Likewise.
32296 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
32297 * gimple-ssa-split-paths.c
32298 (find_block_to_duplicate_for_splitting_paths): Likewise.
32299 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
32300 * expr.c (convert_move): Likewise.
32301 * var-tracking.c (vt_stack_adjustments): Likewise.
32302 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
32303 * tree-vrp.c (test_for_singularity): Likewise.
32304
32305 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
32306 directly instead of building a temporary tree.
32307
32308 PR bootstrap/69434
32309 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
32310 remove <algorithm> include.
32311
32312 2016-01-22 Jakub Jelinek <jakub@redhat.com>
32313
32314 PR target/69432
32315 * config/i386/i386.c: Include dojump.h.
32316 (expand_small_movmem_or_setmem,
32317 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
32318 fixes.
32319 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
32320 if dynamic_check != -1.
32321
32322 2016-01-21 Jeff Law <law@redhat.com>
32323
32324 PR middle-end/69347
32325 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
32326 record_temporary_equivalences. Rewritten to avoid unnecessary calls
32327 into dominated_by_p.
32328 (cprop_into_successor_phis): Avoid unnecessary tests.
32329
32330 2016-01-22 Richard Henderson <rth@redhat.com>
32331
32332 PR target/69416
32333 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
32334 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
32335
32336 2016-01-22 Michael Matz <matz@suse.de>
32337
32338 * system.h (string, algorithm): Include only conditionally.
32339 (new): Include always under C++.
32340 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
32341 * final.c (toplevel): Ditto.
32342 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
32343 * genconditions.c (write_header): Make gencondmd.c define
32344 INCLUDE_STRING.
32345 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
32346
32347 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
32348 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
32349
32350 2016-01-22 Christian Bruel <christian.bruel@st.com>
32351
32352 PR target/68674
32353 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
32354
32355 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32356
32357 PR target/69403
32358 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
32359 define_insn_and_split. Ensure operands[1] and operands[0] do not
32360 get assigned the same register.
32361
32362 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
32363
32364 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
32365
32366 2016-01-22 Christian Bruel <christian.bruel@st.com>
32367
32368 * config/arm/arm-c.c (arm_pragma_target_parse):
32369 Remove warn_builtin_macro_redefined overwrite.
32370
32371 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
32372
32373 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
32374 flag_non_call_exceptions compatibility.
32375
32376 2016-01-22 Jakub Jelinek <jakub@redhat.com>
32377
32378 PR debug/66668
32379 * dwarf2out.c (add_child_die_after): New function.
32380 (dwarf_qual_info_t): New type.
32381 (dwarf_qual_info): New variable.
32382 (qualified_die_p): New function.
32383 (modified_type_die): For -fdebug-types-section, ensure
32384 canonical order of qualifiers. Put qualified DIEs adjacent
32385 to the corresponding non-qualified type DIE and search there
32386 for existing qualified DIEs.
32387
32388 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
32389
32390 * doc/extend.texi (scalar_storage_order type attribute): Document
32391 restriction on type punning and aliasing, and remove future tense.
32392
32393 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
32394
32395 PR target/69252
32396 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
32397 first stage.
32398
32399 2016-01-21 Jeff Law <law@redhat.com>
32400
32401 PR middle-end/69347
32402 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
32403 useless call to record_temporary_equivalences.
32404 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
32405 allocate 10 slots in the bb_path vector and let it grow as needed.
32406 (fsm_find_control_statement_thread_paths): Similarly for the next_path
32407 vector.
32408
32409 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
32410
32411 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
32412 Detangle.
32413 * configure: Regenerate.
32414
32415 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
32416
32417 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
32418 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
32419
32420 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
32421
32422 PR middle-end/66178
32423 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
32424 drop EXPAND_INITIALIZER.
32425 * rtl.h (contains_symbolic_reference_p): Declare.
32426 * rtlanal.c (contains_symbolic_reference_p): New function.
32427 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
32428 a subtraction into a NOT if symbolic constants are involved.
32429
32430 2016-01-21 Anton Blanchard <anton@samba.org>
32431 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32432
32433 PR target/63354
32434 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
32435 #define.
32436 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
32437 function.
32438
32439 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
32440
32441 * config/microblaze/microblaze.c
32442 (get_branch_target): New.
32443 (insert_wic_for_ilb_runout): New.
32444 (insert_wic): New.
32445 (microblaze_machine_dependent_reorg): New.
32446 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
32447 * config/microblaze/microblaze.md
32448 (UNSPEC_IPREFETCH): Define.
32449 (iprefetch): New pattern
32450 * config/microblaze/microblaze.opt
32451 (mxl-prefetch): New flag.
32452
32453 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
32454
32455 * config/microblaze/microblaze.h
32456 (FIXED_REGISTERS): Update in macro.
32457 (CALL_USED_REGISTERS): Update in macro.
32458
32459 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
32460
32461 PR rtl-optimization/68920
32462 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
32463 moves.
32464
32465 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
32466
32467 PR rtl-optimization/68990
32468 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
32469 pseudo instead of inheritance ones.
32470
32471 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
32472 Nick Clifton <nickc@redhat.com>
32473
32474 PR target/69129
32475 PR target/69012
32476 * config/mips/mips.c (mips_compute_frame_info): Initialise
32477 args_size and hard_frame_pointer_offset fields of the frame
32478 structure before calling mips_global_pointer.
32479
32480 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
32481
32482 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
32483 label reference.
32484 * configure: Regenerate.
32485
32486 2016-01-21 Richard Biener <rguenther@suse.de>
32487
32488 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
32489
32490 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
32491
32492 * config/s390/s390.c (s390_asm_declare_function_size): Add code
32493 to actually emit the .size directive.
32494
32495 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
32496 Jakub Jelinek <jakub@redhat.com>
32497
32498 PR target/69187
32499 PR target/65624
32500 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
32501 args array size by one to avoid buffer overflow.
32502
32503 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
32504
32505 * config/s390/s390.md (pool_section_start): Use switch_to_section
32506 to select proper read-only data section instead of hardcoding
32507 .rodata.
32508 (pool_section_end): Use switch_to_section to match the above.
32509
32510 2016-01-21 Richard Biener <rguenther@suse.de>
32511
32512 PR tree-optimization/69378
32513 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
32514 (set_ssa_val_to): Use it for dominance checks taking into
32515 account not executable edges.
32516
32517 2016-01-21 Jakub Jelinek <jakub@redhat.com>
32518
32519 PR c++/69355
32520 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
32521 for bitsize instead of GET_MODE_PRECISION (mode).
32522
32523 2016-01-20 Martin Sebor <msebor@redhat.com>
32524
32525 PR c/52291
32526 * extend.texi (__sync Builtins): Clarify the semantics of
32527 __sync_fetch_and_OP built-ins on pointers.
32528 (__atomic Builtins): Same.
32529
32530 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32531 Sebastian Pop <s.pop@samsung.com>
32532
32533 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
32534 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
32535 (is_valid_rename): Same.
32536 (translate_isl_ast_to_gimple::get_rename): Same.
32537 (translate_isl_ast_to_gimple::rename_all_uses): Same.
32538 (translate_isl_ast_to_gimple::rename_uses): Same.
32539 (get_new_name): Check for close_phi nodes.
32540 (copy_loop_phi_args): Use phi_node_kind.
32541 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
32542 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
32543
32544 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32545 Sebastian Pop <s.pop@samsung.com>
32546
32547 Revert commit r229783.
32548 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
32549 Remove use of parameter_rename_map.
32550 (copy_def): Remove.
32551 (copy_internal_parameters): Remove.
32552 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
32553 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
32554 (free_sese_info): Do not free parameter_rename_map.
32555 (set_rename): Do not use parameter_rename_map.
32556 (rename_uses): Update call to set_rename.
32557 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
32558 * sese.h (parameter_rename_map_t): Remove.
32559 (struct sese_info_t): Remove field parameter_rename_map.
32560
32561 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32562 Sebastian Pop <s.pop@samsung.com>
32563
32564 * graphite-isl-ast-to-gimple.c: Fix comment.
32565 * graphite-scop-detection.c (defined_in_loop_p): New.
32566 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
32567 names defined in loop.
32568
32569 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32570 Sebastian Pop <s.pop@samsung.com>
32571
32572 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
32573 Discard unstructured if-then-else regions.
32574
32575 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32576 Sebastian Pop <s.pop@samsung.com>
32577
32578 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
32579 (cleanup_loop_iter_dom): Remove.
32580 (build_loop_iteration_domains): Remove.
32581 (build_scop_context): Remove.
32582 (build_scop_iteration_domain): Remove.
32583 (add_loop_constraints): New.
32584 (build_iteration_domains): New.
32585 (build_poly_scop): Call build_iteration_domains.
32586
32587 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32588 Sebastian Pop <s.pop@samsung.com>
32589
32590 * graphite-scop-detection.c
32591 (scop_detection::harmful_loop_in_region): Free dom and loops.
32592 (scop_detection::loop_body_is_valid_scop): Free bbs.
32593
32594 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32595 Sebastian Pop <s.pop@samsung.com>
32596
32597 * graphite-scop-detection.c (record_loop_in_sese): New.
32598 (gather_bbs::before_dom_children): Call record_loop_in_sese.
32599 (build_scops): Remove call to build_sese_loop_nests.
32600 * sese.c (sese_record_loop): Remove.
32601 (build_sese_loop_nests): Remove.
32602 (new_sese_info): Remove region->loops.
32603 (free_sese_info): Same.
32604 * sese.h (sese_contains_loop): Same.
32605 (build_sese_loop_nests): Remove.
32606 (sese_contains_loop): Remove.
32607
32608 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32609 Sebastian Pop <s.pop@samsung.com>
32610
32611 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
32612 loop_is_valid_in_scop.
32613 (scop_detection::harmful_stmt_in_region): Renamed
32614 harmful_loop_in_region.
32615 Call loop_is_valid_in_scop.
32616
32617 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32618 Sebastian Pop <s.pop@samsung.com>
32619
32620 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
32621 isl_ast_node_mark.
32622
32623 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32624 Sebastian Pop <s.pop@samsung.com>
32625
32626 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
32627 * graphite.h (struct poly_bb): Remove field is_reduction.
32628 (PBB_IS_REDUCTION): Remove.
32629
32630 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32631 Sebastian Pop <s.pop@samsung.com>
32632
32633 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
32634 (add_pdr_constraints): Same.
32635 (scop_get_reads): Same.
32636 (scop_get_must_writes): Same.
32637 (scop_get_may_writes): Same.
32638 (scop_get_original_schedule): Same.
32639 (extend_schedule): Same.
32640 (apply_schedule_on_deps): Same.
32641 (carries_deps): Same.
32642 (compute_deps): Same.
32643 (scop_get_dependences): Same.
32644 * graphite-isl-ast-to-gimple.c
32645 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
32646 * graphite-optimize-isl.c (get_schedule_for_band): Same.
32647 (get_schedule_for_band_list): Same.
32648 (get_schedule_map): Same.
32649 (apply_schedule_map_to_scop): Same.
32650 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
32651 (build_loop_iteration_domains): Same.
32652 (add_condition_to_pbb): Same.
32653 (add_param_constraints): Same.
32654 (pdr_add_memory_accesses): Same.
32655 (pdr_add_data_dimensions): Same.
32656
32657 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
32658
32659 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
32660 requirements.
32661
32662 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
32663
32664 * common.opt (feliminate-dwarf2-dups): Replace references to
32665 "DWARF 2" with just "DWARF".
32666 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
32667 * doc/extend.texi: Likewise.
32668 * doc/cpp.texi: Likewise.
32669 * doc/invoke.texi: Likewise.
32670 (Option Summary): Add -gdwarf to list of Debugging Options.
32671 (Debugging Options): Document -gdwarf.
32672 * doc/contrib.texi: Spell "DWARF" like that.
32673
32674 2016-01-21 Jakub Jelinek <jakub@redhat.com>
32675
32676 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
32677 warning. Fix up formatting.
32678
32679 PR middle-end/67653
32680 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
32681 attempt to mark memory input operand addressable and
32682 call prepare_gimple_addressable in that case. Don't adjust
32683 input_location for diagnostics, use error_at instead.
32684
32685 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
32686
32687 * config/rs6000/ppc-auxv.h: New file.
32688 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
32689 (cpu_is): Likewise.
32690 (cpu_supports): Likewise.
32691 * config/rs6000/rs6000.c: include "ppc-auxv.h".
32692 (cpu_is_info): New variable.
32693 (cpu_supports_info): Likewise.
32694 (tcb_verification_symbol): Likewise.
32695 (cpu_builtin_p): Likewise.
32696 (cpu_expand_builtin): New function.
32697 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
32698 (rs6000_init_builtins): Likewise.
32699 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
32700 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
32701 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
32702 * configure: Regenerate.
32703 * config.in: Likewise.
32704 * doc/extend.texi (PowerPC Built-in Functions): Document
32705 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
32706
32707 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
32708
32709 PR target/68609
32710 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
32711 domain check.
32712 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
32713 for V4SFmode.
32714
32715 2016-01-20 Richard Henderson <rth@redhat.com>
32716
32717 PR bootstrap/69343
32718 PR bootstrap/69339
32719 PR tree-opt/68964
32720 Revert:
32721 * tree.c (tm_define_builtin): New.
32722 (find_tm_vector_type): New.
32723 (build_tm_vector_builtins): New.
32724 (build_common_builtin_nodes): Call it.
32725
32726 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
32727
32728 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
32729 (arm_fp_ok): Likewise.
32730 (arm_fp): Likewise.
32731 (arm_crypto): Likewise.
32732
32733 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
32734 Richard Biener <rguenther@suse.de>
32735
32736 PR tree-optimization/69328
32737 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
32738 vectors have same number of elements.
32739 (vectorizable_condition): Fix masked version recognition.
32740
32741 2016-01-20 Richard Biener <rguenther@suse.de>
32742
32743 PR tree-optimization/69345
32744 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
32745 (VN_INFO_PTR_INFO): Likewise.
32746 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
32747 info when it is equal between non-dominating SSA names.
32748 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
32749 Make sure to look at original SSA infos.
32750
32751 2016-01-20 Jeff Law <law@redhat.com>
32752
32753 PR target/25114
32754 * config/m68k/predicates.md (pow2_m1_operand): New predicate
32755 extracted from ...
32756 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
32757 (pc_or_label_operand): New predicate.
32758 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
32759 tests for small integers that are 2^n - 1.
32760
32761 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
32762
32763 * doc/invoke.texi (Options Summary): Add '.' after @xref.
32764
32765 2016-01-19 Jeff Law <law@redhat.com>
32766
32767 PR middle-end/69347
32768 * tree-ssa-threadbackwards.c
32769 (fsm_find_control_statement_thread_paths): Do not try to lookup
32770 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
32771
32772 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
32773
32774 * doc/lto.texi: Remove text that says only Gold has linker plugin
32775 support.
32776
32777 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
32778
32779 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
32780 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
32781 the DIE accordingly.
32782 (modified_type_die): Add REVERSE parameter and pass it recursively,
32783 as well as to base_type_die. Adjust presence check accordingly.
32784 (base_type_for_mode): Adjust call to modified_type_die.
32785 (add_type_attribute): Add REVERSE parameter and pass it to
32786 modified_type_die.
32787 (generic_parameter_die): Adjust call to add_type_attribute.
32788 (add_scalar_info): Likewise.
32789 (add_subscript_info): Likewise.
32790 (gen_array_type_die): Likewise.
32791 (gen_descr_array_type_die): Likewise.
32792 (gen_entry_point_die): Likewise.
32793 (gen_enumeration_type_die): Likewise.
32794 (gen_formal_parameter_die): Likewise.
32795 (gen_subprogram_die): Likewise.
32796 (gen_variable_die ): Likewise.
32797 (gen_const_die): Likewise.
32798 (gen_field_die): Likewise.
32799 (gen_pointer_type_die): Likewise.
32800 (gen_reference_type_die): Likewise.
32801 (gen_ptr_to_mbr_type_die): Likewise.
32802 (gen_inheritance_die): Likewise.
32803 (gen_subroutine_type_die): Likewise.
32804 (gen_typedef_die): Likewise.
32805 (force_type_die): Adjust call to modified_type_die.
32806
32807 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
32808
32809 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
32810 flow throughout the file. Fix broken link to Objective-C 2.0
32811 documentation.
32812 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
32813 errors.
32814
32815 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
32816
32817 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
32818
32819 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32820
32821 PR ipa/66223
32822 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
32823 (maybe_record_node): Record cxa_pure_virtual as the only possible
32824 target if there are not ohter candidates.
32825 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
32826
32827 2016-01-19 Richard Biener <rguenther@suse.de>
32828
32829 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
32830 (get_memory_order): Likewise.
32831
32832 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
32833
32834 * tree-vect-stmts.c (vectorizable_store): Check
32835 rhs vectype.
32836
32837 2016-01-19 David Malcolm <dmalcolm@redhat.com>
32838
32839 PR jit/68446
32840 * gcc.c (driver::decode_argv): Add call to
32841 init_opts_obstack before init_options_struct.
32842 * opts.c (init_opts_obstack): Remove idempotency.
32843 (init_options_struct): Replace call to init_opts_obstack
32844 with a gcc_assert to verify that it has already been called.
32845 * toplev.c (toplev::main): Add call to init_opts_obstack before
32846 calls to init_options_struct.
32847 (toplev::finalize): Move cleanup of opts_obstack next to
32848 cleanup of save_decoded_options, clearing the latter, and
32849 save_decoded_options_count.
32850
32851 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32852
32853 PR target/69135
32854 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
32855 attribute to unconditional. Remove %? from output template.
32856
32857 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
32858 Jiong Wang <jiong.wang@arm.com>
32859
32860 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
32861 generated from different expand order.
32862
32863 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
32864
32865 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
32866 Add support for CCMP costing.
32867
32868 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
32869
32870 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
32871 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
32872 (fccmpe<mode>): Likewise.
32873 (fcmp): Rename to fcmp and globalize pattern.
32874 (fcmpe): Likewise.
32875 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
32876 (aarch64_gen_ccmp_next): Add FP support.
32877
32878 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
32879
32880 * target.def (gen_ccmp_first): Update documentation.
32881 (gen_ccmp_next): Likewise.
32882 * doc/tm.texi (gen_ccmp_first): Update documentation.
32883 (gen_ccmp_next): Likewise.
32884 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
32885 expand_ccmp_expr_1. Improve comments.
32886 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
32887 (ccmp_ior<mode>): Remove pattern.
32888 (cmp<mode>): Remove expand.
32889 (cmp): Globalize pattern.
32890 (cstorecc4): Use cc_register.
32891 (mov<mode>cc): Remove ccmp_cc_register check.
32892 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
32893 Simplify after removal of CC_DNE/* modes.
32894 (aarch64_ccmp_mode_to_code): Remove.
32895 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
32896 In 'k' case use integer as condition.
32897 (aarch64_nzcv_codes): Remove inverted cases.
32898 (aarch64_code_to_ccmode): Remove.
32899 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
32900 comparison with CC register to be used in folowing CCMP/branch/CSEL.
32901 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
32902 pattern. Return the comparison with CC register. Invert conditions
32903 when bitcode is OR.
32904 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
32905 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
32906
32907 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32908
32909 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
32910 instrumented_version.
32911
32912 2016-01-19 Richard Biener <rguenther@suse.de>
32913
32914 PR tree-optimization/69336
32915 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
32916 handled components with get_ref_base_and_extent.
32917 (equal_mem_array_ref_p): Adjust.
32918
32919 2016-01-19 Jakub Jelinek <jakub@redhat.com>
32920
32921 PR debug/65779
32922 * shrink-wrap.c: Include valtrack.h.
32923 (move_insn_for_shrink_wrap): Add DEBUG argument. If
32924 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
32925 in between insn and where it will be moved to. Call
32926 dead_debug_insert_temp.
32927 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
32928 first and dead_debug_local_finish at the end.
32929 For uses and defs bitmap, handle all regs in between REGNO and
32930 END_REGNO, not just the first one.
32931
32932 2016-01-19 Richard Biener <rguenther@suse.de>
32933
32934 PR tree-optimization/69352
32935 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
32936 (equal_mem_array_ref_p): Constrain size and max size properly.
32937 Compare the reverse flag.
32938
32939 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
32940
32941 * ira.c (ira): Update regstat data if we deleted insns.
32942
32943 2016-01-19 Jakub Jelinek <jakub@redhat.com>
32944
32945 PR rtl-optimization/68955
32946 PR rtl-optimization/64557
32947 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
32948 here. Fix up formatting.
32949 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
32950
32951 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32952
32953 PR lto/69133
32954 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
32955 assume that the node has body.
32956 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
32957 check.
32958
32959 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32960
32961 * lto-streamer-out.c (lto_output): Do not stream instrumentation
32962 thunks.
32963
32964 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32965
32966 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
32967 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
32968
32969 2016-01-19 Martin Jambor <mjambor@suse.cz>
32970 Martin Liska <mliska@suse.cz>
32971 Michael Matz <matz@suse.de>
32972
32973 * Makefile.in (OBJS): Add new source files.
32974 (GTFILES): Add hsa.c.
32975 * common.opt (disable_hsa): New variable.
32976 (-Whsa): New warning.
32977 * config.in (ENABLE_HSA): New.
32978 * configure.ac: Treat hsa differently from other accelerators.
32979 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
32980 $enable_offloading.
32981 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
32982 * doc/install.texi (Configuration): Document --with-hsa-runtime,
32983 --with-hsa-runtime-include, --with-hsa-runtime-lib and
32984 --with-hsa-kmt-lib.
32985 * doc/invoke.texi (-Whsa): Document.
32986 (hsa-gen-debug-stores): Likewise.
32987 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
32988 to invoke offload compiler for hsa acclerator.
32989 * opts.c (common_handle_option): Determine whether HSA offloading
32990 should be performed.
32991 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
32992 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
32993 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
32994 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
32995 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
32996 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
32997 GF_OMP_FOR_KIND_GRID_LOOP.
32998 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
32999 (pp_gimple_stmt_1): Likewise.
33000 * gimple-walk.c (walk_gimple_stmt): Likewise.
33001 * gimple.c (gimple_build_omp_grid_body): New function.
33002 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
33003 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
33004 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
33005 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
33006 GF_OMP_TEAMS_GRID_PHONY.
33007 (gimple_statement_omp_single_layout): Updated comments.
33008 (gimple_build_omp_grid_body): New function.
33009 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
33010 (gimple_omp_for_grid_phony): New function.
33011 (gimple_omp_for_set_grid_phony): Likewise.
33012 (gimple_omp_parallel_grid_phony): Likewise.
33013 (gimple_omp_parallel_set_grid_phony): Likewise.
33014 (gimple_omp_teams_grid_phony): Likewise.
33015 (gimple_omp_teams_set_grid_phony): Likewise.
33016 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
33017 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
33018 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
33019 (BUILT_IN_GOMP_TARGET): Updated type.
33020 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
33021 (adjust_for_condition): New function.
33022 (get_omp_for_step_from_incr): Likewise.
33023 (extract_omp_for_data): Moved parts to adjust_for_condition and
33024 get_omp_for_step_from_incr.
33025 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
33026 (fixup_child_record_type): Bail out if receiver_decl is NULL.
33027 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
33028 (scan_omp_parallel): Do not create child functions for phony
33029 constructs.
33030 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
33031 (scan_omp_1_op): Checking assert we are not remapping to
33032 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
33033 (parallel_needs_hsa_kernel_p): New function.
33034 (expand_parallel_call): Register apprpriate parallel child
33035 functions as HSA kernels.
33036 (grid_launch_attributes_trees): New type.
33037 (grid_attr_trees): New variable.
33038 (grid_create_kernel_launch_attr_types): New function.
33039 (grid_insert_store_range_dim): Likewise.
33040 (grid_get_kernel_launch_attributes): Likewise.
33041 (get_target_argument_identifier_1): Likewise.
33042 (get_target_argument_identifier): Likewise.
33043 (get_target_argument_value): Likewise.
33044 (push_target_argument_according_to_value): Likewise.
33045 (get_target_arguments): Likewise.
33046 (expand_omp_target): Call get_target_arguments instead of looking
33047 up for teams and thread limit.
33048 (grid_expand_omp_for_loop): New function.
33049 (grid_arg_decl_map): New type.
33050 (grid_remap_kernel_arg_accesses): New function.
33051 (grid_expand_target_kernel_body): New function.
33052 (expand_omp): Call it.
33053 (lower_omp_for): Do not emit phony constructs.
33054 (lower_omp_taskreg): Do not emit phony constructs but create for them
33055 a temporary variable receiver_decl.
33056 (lower_omp_taskreg): Do not emit phony constructs.
33057 (lower_omp_teams): Likewise.
33058 (lower_omp_grid_body): New function.
33059 (lower_omp_1): Call it.
33060 (grid_reg_assignment_to_local_var_p): New function.
33061 (grid_seq_only_contains_local_assignments): Likewise.
33062 (grid_find_single_omp_among_assignments_1): Likewise.
33063 (grid_find_single_omp_among_assignments): Likewise.
33064 (grid_find_ungridifiable_statement): Likewise.
33065 (grid_target_follows_gridifiable_pattern): Likewise.
33066 (grid_remap_prebody_decls): Likewise.
33067 (grid_copy_leading_local_assignments): Likewise.
33068 (grid_process_kernel_body_copy): Likewise.
33069 (grid_attempt_target_gridification): Likewise.
33070 (grid_gridify_all_targets_stmt): Likewise.
33071 (grid_gridify_all_targets): Likewise.
33072 (execute_lower_omp): Call grid_gridify_all_targets.
33073 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
33074 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
33075 (tree_omp_clause): Added union field dimension.
33076 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
33077 * tree.c (omp_clause_num_ops): Added number of arguments of
33078 OMP_CLAUSE__GRIDDIM_.
33079 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
33080 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
33081 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
33082 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
33083 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
33084 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
33085 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
33086 * tree-pass.h (make_pass_gen_hsail): Declare.
33087 (make_pass_ipa_hsa): Likewise.
33088 * ipa-hsa.c: New file.
33089 * lto-section-in.c (lto_section_name): Add hsa section name.
33090 * lto-streamer.h (lto_section_type): Add hsa section.
33091 * timevar.def (TV_IPA_HSA): New.
33092 * hsa-brig-format.h: New file.
33093 * hsa-brig.c: New file.
33094 * hsa-dump.c: Likewise.
33095 * hsa-gen.c: Likewise.
33096 * hsa.c: Likewise.
33097 * hsa.h: Likewise.
33098 * toplev.c (compile_file): Call hsa_output_brig.
33099 * hsa-regalloc.c: New file.
33100
33101 2016-01-18 Jeff Law <law@redhat.com>
33102
33103 PR tree-optimization/69320
33104 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
33105 ranged object, do nothing if the RHS constant is not [0..1].
33106 (optimize_stmt): Comparing a boolean ranged object against a
33107 constant outside [0..1] results in a compile-time constant.
33108
33109 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
33110 test.
33111
33112 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
33113
33114 * doc/invoke.texi (Invoking GCC): Add new section to menu.
33115 (Option Summary): Update to reflect new section and moved options.
33116 (C++ Dialect Options): Move -fstats to new section.
33117 (Debugging Options): Move all dump, statistics, and other GCC
33118 developer options to new section. Rewrite section introduction
33119 and re-order remaining options to put the more basic ones first.
33120 (Optimization Options): Move -fira-verbose and -flto-report* to
33121 new section.
33122 (Developer Options): New section incorporating moved options.
33123 * doc/cppopts.texi (-dM): Update cross-reference.
33124
33125 2016-01-18 Richard Henderson <rth@redhat.com>
33126
33127 PR target/69176
33128 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
33129 operands to pseudo only if CSE is expected. Split long immediate
33130 operands only after reload, and for the stack pointer.
33131 (*add<GPI>3_pluslong): Remove.
33132 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
33133 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
33134 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
33135 (*add<GPI>3 peepholes): New.
33136 (*add<GPI>3 splitters): New.
33137 * config/aarch64/constraints.md (Upl): New.
33138 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
33139
33140 2016-01-18 Richard Biener <rguenther@suse.de>
33141
33142 PR tree-optimization/69297
33143 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
33144 stmt at most once.
33145 (vect_bb_vectorization_profitable_p): Clear visited flag again.
33146
33147 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
33148
33149 PR middle-end/68542
33150 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
33151 of mixind vector and scalar types.
33152 (fold_relational_const): Add handling of vector
33153 comparison with boolean result.
33154 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
33155 comparison of vector operands with boolean result for EQ/NE only.
33156 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
33157 (verify_gimple_cond): Likewise.
33158 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
33159 valid type of VAL.
33160
33161 2016-01-18 Joseph Myers <joseph@codesourcery.com>
33162
33163 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
33164 !TARGET_OCTEON.
33165
33166 2016-01-18 Richard Biener <rguenther@suse.de>
33167
33168 PR middle-end/69308
33169 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
33170
33171 2016-01-18 Tom de Vries <tom@codesourcery.com>
33172
33173 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
33174
33175 2016-01-18 Tom de Vries <tom@codesourcery.com>
33176
33177 * omp-low.c (set_oacc_fn_attrib): Make extern.
33178 * omp-low.h (set_oacc_fn_attrib): Declare.
33179 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
33180 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
33181 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
33182 Add and handle function parameter oacc_kernels_p.
33183 (find_reduc_addr, get_omp_data_i_param): New function.
33184 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
33185 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
33186 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
33187 Calculate dominance info. Skip loops that are not in a kernels region
33188 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
33189 (pass_parallelize_loops::execute): Call parallelize_loops with
33190 oacc_kernels_p argument.
33191 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
33192 New member function.
33193 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
33194 * passes.def: Add argument to pass_parallelize_loops instantation.
33195
33196 2016-01-18 Tom de Vries <tom@codesourcery.com>
33197
33198 * tree-parloops.c (pass_parallelize_loops::execute): Allow
33199 pass_parallelize_loops to be run outside the loop pipeline.
33200
33201 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
33202
33203 * tree-scalar-evolution.c (follow_copies_to_constant): New.
33204 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
33205
33206 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
33207
33208 PR target/63679
33209 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
33210 using get_ref_base_and_extent.
33211 (equal_mem_array_ref_p): New.
33212 (hashable_expr_equal_p): Add call to previous.
33213
33214 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
33215
33216 PR target/63679
33217 * tree-sra.c (disqualified_constants, constant_decl_p): New.
33218 (sra_initialize): Allocate disqualified_constants.
33219 (sra_deinitialize): Free disqualified_constants.
33220 (disqualify_candidate): Update disqualified_constants when appropriate.
33221 (create_access): Scan for constant-pool entries as we go along.
33222 (scalarizable_type_p): Add check against type_contains_placeholder_p.
33223 (maybe_add_sra_candidate): Allow constant-pool entries.
33224 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
33225 (initialize_constant_pool_replacements): New.
33226 (sra_modify_assign): Avoid mangling assignments created by previous,
33227 and don't generate writes into constant pool.
33228 (sra_modify_function_body): Call initialize_constant_pool_replacements.
33229
33230 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
33231
33232 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
33233 andnot instruction.
33234 (scalar_chain::convert_op): Likewise.
33235 * config/i386/i386.md (*andndi3_doubleword): New.
33236
33237 2016-01-18 Richard Biener <rguenther@suse.de>
33238
33239 PR tree-optimization/69170
33240 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
33241 building a vector from scalar results of a pattern stmt.
33242
33243 2016-01-18 Jakub Jelinek <jakub@redhat.com>
33244
33245 * haifa-sched.c (autopref_multipass_init): Work around
33246 -Wmaybe-uninitialized warning.
33247
33248 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
33249
33250 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
33251 against the constant 0.
33252
33253 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33254
33255 PR tree-optimization/68799
33256 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
33257 look up phi candidates in the statement-candidate map.
33258 (phi_add_costs): Likewise.
33259 (record_phi_increments): Likewise.
33260 (phi_incr_cost): Likewise.
33261 (ncd_with_phi): Likewise.
33262 (all_phi_incrs_profitable): Likewise.
33263
33264 2016-01-17 Jakub Jelinek <jakub@redhat.com>
33265
33266 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
33267 -Wmaybe-uninitialized warning.
33268
33269 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
33270
33271 * doc/invoke.texi (Invoking GCC): Add new section to menu.
33272 (Option Summary): Update to reflect new section and moved options.
33273 (C++ Dialect Options): Move -fvtable-verify and related options.
33274 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
33275 and profiling-related options.
33276 (Optimization Options): Move profile generation options and
33277 -fstack-protector and related options.
33278 (Instrumentation Options): New section incorporating moved options.
33279 (Code Generation Options): Move -finstrument-functions and
33280 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
33281
33282 2016-01-16 Tom de Vries <tom@codesourcery.com>
33283
33284 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
33285
33286 2016-01-16 Tom de Vries <tom@codesourcery.com>
33287
33288 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
33289
33290 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
33291
33292 * hash-table.h (hash_table::empty): Turn into an inline wrapper
33293 that checks whether the table is already empty. Rename the
33294 original implementation to...
33295 (hash_table::empty_slot): ...this new private function.
33296
33297 2016-01-15 David Malcolm <dmalcolm@redhat.com>
33298
33299 PR diagnostic/68899
33300 * diagnostic-show-locus.c (layout::print_source_line): Move x
33301 offset of line until after call to
33302 get_line_width_without_trailing_whitespace.
33303
33304 2016-01-15 Jeff Law <law@redhat.com>
33305
33306 PR tree-optimization/69270
33307 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
33308 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
33309 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
33310 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
33311 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
33312 ssa_name_has_boolean_range and constant_boolean_node.
33313
33314 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
33315
33316 PR rtl-optimization/69030
33317 * lra-spills.c (remove_pseudos): Check nrefs and make the function
33318 returning bool.
33319 (spill_pseudos): Delete debug insn for dead pseudo.
33320 (lra_spill): Initiate spill_hard_reg and slots memory separately.
33321
33322 2016-01-15 Jiong Wang <jiong.wang@arm.com>
33323
33324 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
33325 New.
33326 (TYPES_UNOPUS): Likewise.
33327 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
33328 builtin type, from UNOP to UNOPUS.
33329 (lbtruncuv4sf): Likewise.
33330 (lbtruncuv2df): Likewise.
33331 (lrounduv2sf): Likewise.
33332 (lrounduv4sf): Likewise.
33333 (lrounduv2df): Likewise.
33334 (lroundusf): Likewise.
33335 (lroundusf): Likewise.
33336 (lceiluv2sf): Likewise.
33337 (lceiluv4sf): Likewise.
33338 (lceiluv2df): Likewise.
33339 (lceilusf): Likewise.
33340 (lceiludf): Likewise.
33341 (lflooruv2sf): Likewise.
33342 (lflooruv4sf): Likewise.
33343 (lflooruv2df): Likewise.
33344 (lfloorusf): Likewise.
33345 (lfloorudf): Likewise.
33346 (lfrintnuv2sf): Likewise.
33347 (lfrintnuv4sf): Likewise.
33348 (lfrintnuv2df): Likewise.
33349 (lfrintnusf): Likewise.
33350 (lfrintnudf): Likewise.
33351 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
33352 conversion.
33353 (vcvtq_u32_f32): Likewise.
33354 (vcvtq_u64_f64): Likewise.
33355 (vcvta_u32_f32): Likewise.
33356 (vcvtaq_u32_f32): Likewise.
33357 (vcvtaq_u64_f64): Likewise.
33358 (vcvtm_u32_f32): Likewise.
33359 (vcvtmq_u32_f32): Likewise.
33360 (vcvtmq_u64_f64): Likewise.
33361 (vcvtn_u32_f32): Likwise.
33362 (vcvtnq_u32_f32): Likewise.
33363 (vcvtnq_u64_f64): Likewise.
33364 (vcvtp_u32_f32): Likewise.
33365 (vcvtpq_u32_f32): Likewise.
33366 (vcvtpq_u64_f64): Likewise.
33367 (vcvtmd_u64_f64): Likewise.
33368 (vcvtms_u32_f32): Likewise.
33369 (vcvtad_u64_f64): Likewise.
33370 (vcvtas_u32_f32): Likewise.
33371 (vcvtnd_u64_f64): Likewise.
33372 (vcvtns_u32_f32): Likewise.
33373 (vcvtpd_u64_f64): Likewise.
33374 (vcvtps_u32_f32): Likewise.
33375
33376 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33377
33378 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
33379 CSEL of zero_extended registers.
33380
33381 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33382
33383 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
33384 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
33385
33386 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33387
33388 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
33389 false when argument string is not found in the attributes table
33390 at all.
33391
33392 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
33393
33394 PR target/68609
33395 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
33396 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
33397 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
33398 precision estimate.
33399
33400 2016-01-15 Richard Biener <rguenther@suse.de>
33401
33402 PR tree-optimization/66856
33403 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
33404 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
33405 (vect_create_new_slp_node): Increment stmt reference count.
33406 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
33407 an SLP tree before swapping operands.
33408 (vect_build_slp_tree): Likewise.
33409 (destroy_bb_vec_info): Free stmt info after SLP instances.
33410 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
33411 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
33412 (STMT_VINFO_NUM_SLP_USES): New macro.
33413
33414 2016-01-15 Richard Biener <rguenther@suse.de>
33415
33416 PR debug/69137
33417 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
33418 (add_linkage_name): ... here.
33419 (gen_typedef_die): Use add_linkage_name_raw instead of
33420 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
33421 if necessary.
33422
33423 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
33424
33425 * gimplify.c (oacc_default_clause): Decode reference and pointer
33426 types for both kernels and parallel regions.
33427
33428 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
33429
33430 PR middle-end/69246
33431 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
33432
33433 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
33434
33435 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
33436 (convert_scalars_to_vector): Likewise.
33437
33438 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
33439
33440 * doc/extend.texi (Type Traits): Fix grammar.
33441
33442 2016-01-15 Martin Jambor <mjambor@suse.cz>
33443
33444 * tree-inline.c (remap_decl): Use existing dclarations if
33445 remapping a type and prevent_decl_creation_for_types.
33446 (replace_locals_stmt): Do an initial remapping of non-VLA typed
33447 decls first. Do real remapping with
33448 prevent_decl_creation_for_types set.
33449 * tree-inline.h (copy_body_data): New field
33450 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
33451 padding.
33452
33453 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
33454
33455 * config/s390/s390.opt (mmvcle): More verbose help text.
33456
33457 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
33458
33459 * config/s390/s390.opt: Add period to -mzvector option text.
33460
33461 2016-01-15 Richard Biener <rguenther@suse.de>
33462
33463 PR tree-optimization/68961
33464 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
33465 of invariants in stores again.
33466
33467 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
33468
33469 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
33470
33471 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
33472
33473 * config/i386/i386.c (ix86_expand_branch): Don't split
33474 DI mode xor instruction to SI mode.
33475
33476 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
33477
33478 PR ipa/68148
33479 * ipa-icf.c (sem_function::merge): Virtual functions may become
33480 reachable even if they address is not taken and there are no
33481 idrect calls.
33482
33483 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
33484
33485 * lto-streamer-out.c (subtract_estimated_size): New function.
33486 (get_symbol_initial_value): Use it.
33487
33488 2016-01-15 Christian Bruel <christian.bruel@st.com>
33489
33490 PR target/65837
33491 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
33492 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
33493 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
33494 use add_builtin_function_ext_scope instead of add_builtin_function.
33495 (neon_set_p, neon_crypto_set_p): Remove.
33496 (arm_init_builtins): Always call arm_init_neon_builtins and
33497 arm_init_crypto_builtins.
33498 (arm_expand_builtin): Check that builtins are allowed for the arch.
33499 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
33500 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
33501 arm_init_neon_builtins call.
33502
33503 2016-01-15 Richard Biener <rguenther@suse.de>
33504
33505 PR tree-optimization/69117
33506 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
33507 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
33508 of the leader conservatively.
33509 (free_scc_vn): Restore original SSA name infos.
33510
33511 2016-01-14 Jeff Law <law@redhat.com>
33512
33513 PR tree-optimization/69270
33514 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
33515 single bit of precision, verify it's also unsigned.
33516 (record_edge_info): Use constant_boolean_node rather than fold_convert
33517 to convert boolean_true/boolean_false to the right type.
33518
33519 2016-01-14 Richard Henderson <rth@redhat.com>
33520
33521 PR rtl-opt/69014
33522 * loop-doloop.c (record_reg_sets): New.
33523 (doloop_optimize): Reject the transform if the sequence
33524 clobbers registers live at the end of the loop block.
33525 (doloop_optimize_loops): Enable df_live if needed.
33526
33527 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
33528
33529 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
33530 * config/rs6000/rs6000.c: Likewise.
33531 * config/rs6000/rs6000.h: Likewise.
33532 * config/rs6000/rs6000.md: Likewise.
33533 * doc/extend.texi: Likewsie.
33534
33535 2016-01-14 Jeff Law <law@redhat.com>
33536
33537 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
33538 typo.
33539
33540 2016-01-14 Richard Henderson <rth@redhat.com>
33541
33542 PR c/69272
33543 PR tree-opt/68964
33544 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
33545 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
33546 instead of builtin_decl_declared_p to test for declaration.
33547
33548 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
33549
33550 * doc/loop.texi (Loop Analysis and Representation): Document
33551 loop_depth function.
33552
33553 2016-01-14 Tom de Vries <tom@codesourcery.com>
33554
33555 PR tree-optimization/68773
33556 * omp-low.c (expand_omp_target): Don't set force_output.
33557 * varpool.c (varpool_node::get_create): Same.
33558 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
33559 offload_funcs with force_output.
33560
33561 2016-01-14 Jakub Jelinek <jakub@redhat.com>
33562
33563 PR debug/69244
33564 * lra-eliminations.c (move_plus_up): Don't change anything if either
33565 the outer or inner subreg mode is not MODE_INT.
33566 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
33567 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
33568
33569 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
33570
33571 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
33572 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
33573 reduc_uplus_@var{m}): Remove.
33574 * expr.c (expand_expr_real_2): Remove expansion path for
33575 reduc_[us](min|max|plus) optabs.
33576 * optabs-tree.c (scalar_reduc_to_vector): Remove.
33577 * optabs-tree.h (scalar_reduc_to_vector): Remove.
33578 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
33579 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
33580 * tree-vect-loop.c (vectorizable_reduction): Remove test for
33581 reduc_[us](min|max|plus) optabs.
33582
33583 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
33584
33585 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
33586 (reduc_plus_scal_v2sf): New.
33587 (reduc_smax_v2sf): Rename to...
33588 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
33589 (reduc_smin_v2sf): Rename to...
33590 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
33591
33592 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
33593
33594 * alias.c (compare_base_symbol_refs): New function.
33595 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
33596 it.
33597
33598 2016-01-14 Jakub Jelinek <jakub@redhat.com>
33599
33600 PR middle-end/68146
33601 PR tree-optimization/69155
33602 * tree-complex.c: Include cfganal.h.
33603 (phis_to_revisit): New variable.
33604 (extract_component): Add phiarg_p argument. Assert that returned
33605 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
33606 (update_phi_components): Partly rewrite to use loop over real/imag
33607 components instead of code duplication. If extract_component returns
33608 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
33609 create_tmp_reg into the PHI node instead, and mention the phi triplet
33610 in phis_to_revisit.
33611 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
33612 in phis_to_revisit at the end.
33613
33614 2016-01-14 Richard Biener <rguenther@suse.de>
33615
33616 PR tree-optimization/68060
33617 * tree-vect-loop.c (vect_is_simple_reduction): Check the
33618 outer loop reduction is only used in the inner loop before
33619 detecting a double reduction.
33620
33621 2016-01-14 Jakub Jelinek <jakub@redhat.com>
33622
33623 PR target/68269
33624 * combine.c (expand_field_assignment): Punt if compute_mode is
33625 unsupported scalar mode.
33626
33627 2016-01-14 Richard Biener <rguenther@suse.de>
33628
33629 PR tree-optimization/66856
33630 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
33631 SLP node only if it built successfully.
33632 (vect_analyze_slp_instance): Adjust.
33633
33634 2016-01-14 Jeff Law <law@redhat.com>
33635
33636 PR tree-optimization/69270
33637 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
33638 (record_edge_info): Use it. Convert boolean_{true,false}_node
33639 to the type of op0.
33640
33641 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
33642
33643 PR ipa/66487
33644 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
33645 use block_ultimate_origin
33646 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
33647
33648 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
33649
33650 * doc/invoke.texi (Submodel Options): Rename section to
33651 "Machine-Dependent Options" to better reflect its content.
33652 Rewrite introductory text to remove archaic CPU names.
33653 Update references.
33654
33655 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
33656
33657 * doc/invoke.texi (Code Gen Options): Move section up in file,
33658 before target-specific options. Update menu and option summary
33659 to reflect the new section ordering.
33660
33661 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
33662
33663 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
33664 (C++ Dialect Options): Add cross-reference to -std option.
33665 * doc/standards.texi (C++ Language): Document C++14 support.
33666
33667 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
33668
33669 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
33670 for pack/unpack functions for __ibm128.
33671 (PACK_IF): Likewise.
33672 (UNPACK_IF): Likewise.
33673
33674 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
33675 support for __ibm128 pack/unpack functions.
33676 (rs6000_invalid_builtin): Likewise.
33677 (rs6000_init_builtins): Likewise.
33678 (rs6000_opt_masks): Likewise.
33679
33680 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
33681 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
33682 functions
33683 (RS6000_BTM_COMMON): Likewise.
33684
33685 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
33686 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
33687 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
33688 128-bit floating point. Add support for the double values to be
33689 in Altivec registers for TF/IF packing and unpacking, but restrict
33690 TD packing sub-fields to be FPR registers. Don't allow overlapped
33691 register support for packing. Allow pack inputs to be memory
33692 locations. Don't build generator functions for unpack<mode>_dm
33693 and unpack<mode>_nodm.
33694 (unpack<mode>_dm): Likewise.
33695 (unpack<mode>_nodm): Likewise.
33696 (pack<mode>): Likewise.
33697
33698 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
33699 built-in functions to pack/unpack explicit __ibm128 values.
33700 (__builtin_unpack_ibm128): Likewise.
33701
33702 * doc/extend.texi (PowerPC Built-in Functions): Document
33703 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
33704
33705 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
33706
33707 PR c/66208
33708 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
33709 Add new arg loc and pass it down as context.
33710 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
33711 to the location to use for the warning.
33712 (check_function_arguments): New arg loc. All callers changed. Pass
33713 it to check_function_nonnull.
33714 * c-common.h (check_function_arguments): Adjust declaration.
33715
33716 2016-01-13 Jakub Jelinek <jakub@redhat.com>
33717
33718 PR tree-optimization/69156
33719 * gimple.c (validate_type): Removed.
33720 (gimple_builtin_call_types_compatible_p): Use
33721 useless_type_conversion_p instead of validate_type.
33722 * value-prof.c (gimple_stringop_fixed_value): Fold
33723 icall_size to correct type.
33724
33725 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
33726
33727 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
33728 effects.
33729
33730 2016-01-13 Richard Henderson <rth@redhat.com>
33731
33732 PR tree-opt/68964
33733 * target.def (builtin_tm_load, builtin_tm_store): Remove.
33734 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
33735 (ix86_builtin_tm_store): Remove.
33736 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
33737 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
33738 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
33739 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
33740 * doc/tm.texi: Rebuild.
33741
33742 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
33743 (BUILT_IN_TM_MEMCPY_RTWN): New.
33744 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
33745 fallback from vector to integer helpers.
33746 (build_tm_load): Handle vector types directly, instead of
33747 via target hook.
33748 (build_tm_store): Likewise.
33749 (expand_assign_tm): Prepare for register types not handled by
33750 the above. Copy them to memory and use memcpy.
33751 * tree.c (tm_define_builtin): New.
33752 (find_tm_vector_type): New.
33753 (build_tm_vector_builtins): New.
33754 (build_common_builtin_nodes): Call it.
33755
33756 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
33757
33758 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
33759 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
33760
33761 2016-01-13 Tom de Vries <tom@codesourcery.com>
33762
33763 PR tree-optimization/69169
33764 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
33765 handled_struct_type param.
33766 (create_variable_info_for, intra_create_variable_infos): Call
33767 create_variable_info_for_1 with extra arg.
33768
33769 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
33770
33771 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
33772 and "armv8.1-a+crc" entries.
33773
33774 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
33775
33776 PR target/69228
33777 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
33778 Change first operand predicate from register_or_constm1_operand
33779 to register_operand.
33780 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
33781 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
33782 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
33783 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
33784 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
33785 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
33786 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
33787 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
33788 comparison with constm1_rtx from vec_prefetch_gen part.
33789
33790 2016-01-13 Richard Biener <rguenther@suse.de>
33791
33792 PR tree-optimization/69013
33793 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
33794 Exchange assert for a test.
33795
33796 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
33797
33798 PR target/69247
33799 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
33800
33801 2016-01-13 Richard Biener <rguenther@suse.de>
33802
33803 PR tree-optimization/69242
33804 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
33805 assert with a check.
33806
33807 2016-01-13 Richard Biener <rguenther@suse.de>
33808
33809 PR tree-optimization/69186
33810 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
33811 Properly guard vect_update_misalignment_for_peel call.
33812
33813 2016-01-12 Jeff Law <law@redhat.com>
33814
33815 PR tree-optimization/pr67755
33816 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
33817 "need_profile_correction".
33818 (thread_block_1): Initialize new field to false by default. If we
33819 have multiple thread paths through a common joiner to different
33820 final targets, then set new field to true.
33821 (compute_path_counts): Only do count adjustment when it's really
33822 needed.
33823
33824 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
33825
33826 * doc/invoke.texi (Spec Files): Move section down in file, past
33827 all command-line option descriptions.
33828
33829 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33830
33831 PR middle-end/54809
33832 * doc/gty.texi: Remove documentation of mark_hook.
33833 * gengtype.c (struct write_types_data): Remove code to support
33834 mark_hook attribute.
33835 (walk_type): Likewise.
33836 (write_func_for_structure): Likewise.
33837
33838 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
33839
33840 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
33841 Directory Options, and -specs= to Overall Options.
33842 (Overall Options): Adjust similarly. Reorder to group related
33843 options together. Make -specs= cross-reference the spec file details.
33844 (Directory Options): Adjust similarly.
33845
33846 2016-01-12 Jeff Law <law@redhat.com>
33847
33848 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
33849
33850 2016-01-12 Olivier Hainque <hainque@adacore.com>
33851
33852 * gcc.c (spec_undefvar_allowed): New global.
33853 (process_command): Set to true when running for --version or --help,
33854 alone or together.
33855 (getenv_spec_function): When the variable is not defined, use the
33856 variable name as the variable value if we're allowed not to issue
33857 a fatal error.
33858
33859 2016-01-12 Bin Cheng <bin.cheng@arm.com>
33860
33861 PR tree-optimization/68911
33862 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
33863 information computed for expression "init + nit * step".
33864
33865 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
33866
33867 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
33868 about name of GCC executable. Remove deleted node from menu.
33869 (Directory Options) <-B>: Remove cross-reference to deleted node.
33870 (Target Options): Delete section.
33871
33872 2016-01-12 Christian Bruel <christian.bruel@st.com>
33873
33874 PR target/69180
33875 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
33876 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
33877
33878 2016-01-12 Jakub Jelinek <jakub@redhat.com>
33879
33880 PR target/69198
33881 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
33882 aligned_mem is properly set for AVX512-VL floating point masked
33883 stores.
33884
33885 PR target/69175
33886 * ifcvt.c (cond_exec_process_if_block): When removing the last
33887 insn from then_bb, remove also any possible barriers that follow it.
33888
33889 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
33890
33891 PR target/68456
33892 PR target/69226
33893 * config/i386/iamcu.h (SIZE_TYPE): New macro.
33894 (PTRDIFF_TYPE): Likewise.
33895 (WCHAR_TYPE): Likewise.
33896 (WCHAR_TYPE_SIZE): Likewise.
33897 (STDINT_LONG32): Likewise.
33898
33899 2016-01-12 Richard Biener <rguenther@suse.de>
33900
33901 PR tree-optimization/69053
33902 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
33903 convert initial value for cond reductions.
33904
33905 2016-01-12 Richard Biener <rguenther@suse.de>
33906
33907 PR tree-optimization/69007
33908 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
33909 widen_sum after dot_prod and sad.
33910
33911 2016-01-12 Richard Biener <rguenther@suse.de>
33912
33913 PR tree-optimization/69168
33914 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
33915 pattern stmt SLP type.
33916 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
33917 end up unused so cope with that case.
33918
33919 2016-01-12 Richard Biener <rguenther@suse.de>
33920
33921 PR tree-optimization/69157
33922 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
33923 stmts def type only during analyze phase.
33924 (vectorizable_call): Likewise.
33925 (vectorizable_simd_clone_call): Likewise.
33926 (vectorizable_conversion): Likewise.
33927 (vectorizable_assignment): Likewise.
33928 (vectorizable_shift): Likewise.
33929 (vectorizable_operation): Likewise.
33930 (vectorizable_store): Likewise.
33931 (vectorizable_load): Likewise.
33932
33933 2016-01-12 Richard Biener <rguenther@suse.de>
33934
33935 PR tree-optimization/69174
33936 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
33937 space.
33938 (vectorizable_load): Properly compute the number of loads needed
33939 for permuted strided SLP loads and do not spuriously assign
33940 to SLP_TREE_VEC_STMTS.
33941
33942 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
33943
33944 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
33945 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
33946 (MD_EXEC_PREFIX): Remove.
33947 (MD_STARTFILE_PREFIX) Removee.
33948 (FILE_NAME_ABSOLUTE_P): Remove.
33949 (CPP_SPEC): Do not read macros from sys/version.h.
33950 (LINK_COMMAND_SPEC): Remove.
33951 (LOCAL_INCLUDE_DIR): Remove.
33952 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
33953 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
33954 (POST_LINK_SPEC): Define to invoke stubify after linker
33955 (LIBSTDCXX): Remove define
33956 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
33957 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
33958 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
33959 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
33960 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
33961 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
33962 (i386_djgpp_asm_named_section): Add propotype of new procedure
33963
33964 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
33965 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
33966 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
33967 in config/i386/djgpp.h).
33968 (STANDARD_STARTFILE_PREFIX_2): Define identical to
33969 STANDARD_STARTFILE_PREFIX_1.
33970 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
33971 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
33972 installation errors.
33973 (MAX_OFILE_ALIGNMENT): Define to 128.
33974 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
33975
33976 * config/i386/djgpp.c: New file. Add implementation of
33977 i386_djgpp_asm_named_section.
33978
33979 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
33980
33981 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
33982 Add rule for building djgpp.o.
33983
33984 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33985
33986 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
33987 (rtx_is_swappable_p): Reductions are swappable.
33988 (insn_is_swappable_p): V2DF reductions are swappable.
33989
33990 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
33991
33992 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
33993 reloads for other unsupported memory operands.
33994
33995 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
33996 Jim Wilson <jim.wilson@linaro.org>
33997
33998 PR target/69194
33999 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
34000 copy_to_mode_reg instead of force_reg.
34001
34002 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
34003
34004 PR target/69225
34005 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
34006 TARGET_80387 is true.
34007
34008 2016-01-11 Jakub Jelinek <jakub@redhat.com>
34009
34010 PR target/69071
34011 * lra-eliminations.c (move_plus_up): Only move plus up
34012 if subreg of the constant can be simplified into constant
34013 and use the simplified subreg of the constant instead of
34014 the original constant.
34015
34016 * fold-const.c (fold_convertible_p): Don't return true
34017 for conversion of VECTOR_TYPE to same sized integral type.
34018 (fold_convert_loc): Fix up formatting. Fold conversion of
34019 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
34020 instead of NOP_EXPR.
34021
34022 PR tree-optimization/69214
34023 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
34024 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
34025 Formatting fix.
34026
34027 PR tree-optimization/69207
34028 * tree-vect-slp.c (vect_get_constant_vectors): For
34029 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
34030 fold_convertible_p to vector_type's element type, and always
34031 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
34032
34033 2016-01-11 Richard Biener <rguenther@suse.de>
34034
34035 PR tree-optimization/69173
34036 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
34037 fixup the cycle if all stmts are in a pattern.
34038
34039 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
34040
34041 PR middle-end/68999
34042 * alias.c (base_alias_check): Move check for addresses with
34043 alignment ANDs before the call for compare_base_decls.
34044 (memrefs_conflict_p): Return -1 for different decls
34045 that went through alignment adjustments.
34046
34047 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34048
34049 PR rtl-optimization/68796
34050 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
34051 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
34052 and QImode comparisons against zero with CC_NZmode.
34053 * config/aarch64/iterators.md (short_mask): New mode_attr.
34054
34055 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
34056
34057 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
34058 (<avx512>_store<mode>_mask): Likewise.
34059
34060 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
34061 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34062
34063 PR rtl-optimization/68841
34064 * ifcvt.c (struct noce_if_info): Add orig_x field.
34065 (bbs_ok_for_cmove_arith): Add to_rename parameter.
34066 Don't record conflicts on to_rename if it's present.
34067 Allow memory destinations in sets.
34068 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
34069 blocks, passing orig_x to the checks.
34070 (noce_process_if_block): Set if_info->orig_x appropriately.
34071
34072 2016-01-11 Tom de Vries <tom@codesourcery.com>
34073
34074 PR tree-optimization/69069
34075 * tree-parloops.c (create_parallel_loop): Add missing phi args.
34076
34077 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
34078
34079 PR rtl-optimization/68920
34080 * config/i386/i386.c (ix86_option_override_internal): Restrict number
34081 of conditional moves for RTL if-conversion to 1 for
34082 TARGET_ONE_IF_CONV_INSN.
34083 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
34084 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
34085 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
34086 parameter to restirct number of conditional moves for
34087 RTL if-conversion.
34088 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
34089 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
34090 conditionl moves.
34091
34092 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
34093
34094 PR bootstrap/69123
34095 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
34096 onepart vars. Fix typo in comment. Fix reversed condition in
34097 unshare test.
34098 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
34099
34100 PR bootstrap/69123
34101 * var-tracking.c (dump_onepart_variable_differences): New.
34102 (dataflow_set_different): If a detailed dump is requested,
34103 delay early returns and dump differences between onepart
34104 variables present before and after, and added variables.
34105
34106 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
34107
34108 PR target/69010
34109 * expr.c (expand_expr_real_1): For boolean vector constants
34110 with a scalar mode use const_scalar_mask_from_tree.
34111 (const_scalar_mask_from_tree): New.
34112 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
34113 assigned to a mask type to handle constants.
34114
34115 2016-01-11 Martin Jambor <mjambor@suse.cz>
34116
34117 PR ipa/69044
34118 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
34119 useless parameters if we cannot change function signature.
34120
34121 2016-01-11 Martin Jambor <mjambor@suse.cz>
34122
34123 PR ipa/66616
34124 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
34125 flag.
34126
34127 2016-01-11 Tom de Vries <tom@codesourcery.com>
34128
34129 PR tree-optimization/69109
34130 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
34131 latch with phi.
34132
34133 2016-01-11 Tom de Vries <tom@codesourcery.com>
34134
34135 PR tree-optimization/69108
34136 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
34137 res is not used in a phi.
34138
34139 2016-01-11 Yury Gribov <y.gribov@samsung.com>
34140
34141 PR 67425
34142 * common.opt (frandom-seed): Fix parameter name.
34143 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
34144
34145 2016-01-11 Tom de Vries <tom@codesourcery.com>
34146
34147 PR tree-optimization/69058
34148 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
34149 not supported.
34150
34151 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
34152
34153 * config/arc/arc.opt (mdiv-rem): Add period to the end.
34154 (mcode-density): Likewise.
34155
34156 2016-01-10 Tom de Vries <tom@codesourcery.com>
34157
34158 PR tree-optimization/69062
34159 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
34160 (parallelize_loops): Don't paralelize loop that has phi with address
34161 arg.
34162
34163 2016-01-10 Tom de Vries <tom@codesourcery.com>
34164
34165 PR tree-optimization/69039
34166 * tree-parloops.c (try_create_reduction_list): Only allow single exit
34167 phi for reduction.
34168
34169 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
34170
34171 PR middle-end/68743
34172 * match.pd: Require target has function_c99_misc before doing
34173 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
34174
34175 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
34176
34177 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
34178 use GMPINC.
34179 * configure: Regenerate.
34180
34181 2016-01-09 Jakub Jelinek <jakub@redhat.com>
34182
34183 PR middle-end/50865
34184 PR tree-optimization/69097
34185 * fold-const.h (expr_not_equal_to): New prototype.
34186 * fold-const.c: Include stringpool.h and tree-ssanames.h.
34187 (expr_not_equal_to): New function.
34188 * match.pd (X % -Y is the same as X % Y): Don't optimize
34189 unless X is known not to be equal to minimum or Y is known
34190 not to be equal to -1.
34191 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
34192 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
34193 (simplify_stmt_using_ranges): Adjust caller.
34194 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
34195 substitute_and_fold.
34196
34197 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
34198
34199 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
34200 w/o DECL_NAME.
34201
34202 2016-01-08 Jakub Jelinek <jakub@redhat.com>
34203
34204 PR tree-optimization/69167
34205 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
34206 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
34207 ops[0] comparison.
34208 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
34209
34210 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
34211 Richard Biener <rguenther@suse.de>
34212
34213 PR tree-optimization/68707
34214 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
34215 instances that can be handled via vect_load_lanes.
34216
34217 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
34218
34219 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
34220 if we can't determine address equivalence.
34221 * alias.c (compare_base_decl): Update for changed return value of
34222 symtab_node::equal_address_to.
34223
34224 2016-01-08 Jason Merrill <jason@redhat.com>
34225
34226 PR c++/68983
34227 PR c++/67557
34228 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
34229 * expr.c (store_field): Not here.
34230 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
34231 call with TREE_ADDRESSABLE type.
34232 * tree-cfg.c (verify_gimple_call): Adjust.
34233
34234 2016-01-08 Olivier Hainque <hainque@adacore.com>
34235
34236 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
34237 libc_internal.
34238
34239 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
34240
34241 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
34242 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
34243 (reduc_smin_v2sf): Rename to...
34244 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
34245 (reduc_splus_v2sf): Rename to...
34246 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
34247
34248 2016-01-08 Jakub Jelinek <jakub@redhat.com>
34249
34250 PR tree-optimization/69162
34251 * gimplify.c (gimplify_va_arg_expr): Encode original type of
34252 valist argument in another argument.
34253 (gimplify_modify_expr): Adjust for the above change. Cleanup.
34254 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
34255 to determine the va_list type, build a MEM_REF instead of
34256 build_fold_indirect_ref.
34257
34258 PR tree-optimization/69172
34259 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
34260 gimple_build.
34261
34262 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
34263
34264 PR tree-optimization/67781
34265 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
34266 and cmpnop in two steps: first the ones not accessed in original
34267 gimple expression in a endian independent way and then the ones not
34268 accessed in the final result in an endian-specific way.
34269
34270 2016-01-08 Jakub Jelinek <jakub@redhat.com>
34271
34272 PR tree-optimization/69083
34273 * tree-vect-slp.c (vect_get_constant_vectors): For
34274 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
34275 element type. If op is fold_convertible_p to vector_type's element
34276 type, use NOP_EXPR instead of VCE.
34277
34278 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
34279
34280 PR rtl-optimization/67778
34281 PR rtl-optimization/68634
34282 PR rtl-optimization/68909
34283 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
34284 block from the stack until done with it. Remove a superfluous
34285 bitmap set. Remove a superfluous bitmap test.
34286
34287 2016-01-07 Martin Sebor <msebor@redhat.com>
34288
34289 PR c/68966
34290 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
34291 constraint on the type of arguments.
34292
34293 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
34294
34295 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
34296 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
34297 unaligned_access on the gcc_options set.
34298 * config/arm/arm.c (arm_option_override_internal): Use
34299 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
34300
34301 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
34302
34303 PR target/69140
34304 * config/i386/i386.c (ix86_frame_pointer_required): Enable
34305 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
34306
34307 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
34308
34309 Revert
34310 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
34311
34312 PR target/69140
34313 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
34314 depending on frame_pointer_needed before remaining integer and SSE
34315 registers are saved.
34316
34317 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
34318
34319 PR 1078
34320 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
34321
34322 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
34323
34324 PR target/69171
34325 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
34326 Use the "xBm" constraint.
34327 (float<sseintvecmodelower><mode>2<mask_name><round_name):
34328 Likewise.
34329 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
34330 (sse_cvtsi2ssq<round_name>): Likewise.
34331 (sse_cvtss2si<round_name>): Likewise.
34332 (sse_cvtss2siq<round_name>): Likewise.
34333 (sse2_cvtsi2sdq<round_name>): Likewise.
34334 (sse2_cvtsd2si<round_name>): Likewise.
34335 (sse2_cvtsd2siq<round_name>): Likewise.
34336 * config/i386/subst.md (round_nimm_scalar_predicate): New
34337 predicate.
34338
34339 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
34340
34341 PR middle-end/67639
34342 * varasm.c (make_decl_rtl): Mark invalid register vars as
34343 DECL_EXTERNAL.
34344
34345 PR rtl-optimization/66206
34346 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
34347 All callers changed.
34348
34349 2016-01-07 Jakub Jelinek <jakub@redhat.com>
34350
34351 PR tree-optimization/69141
34352 * tree-ssa-pre.c: Include langhooks.h.
34353 (eliminate_dom_walker::before_dom_children): Use
34354 lang_hooks.decl_printable_name instead of
34355 cgraph_node::get ()->name ().
34356
34357 PR middle-end/68960
34358 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
34359 it and DECL_ALIGN too.
34360
34361 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
34362
34363 * config/mips/mips-ftypes.def: Sort to lexicographical order.
34364
34365 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
34366
34367 PR target/69140
34368 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
34369 depending on frame_pointer_needed before remaining integer and SSE
34370 registers are saved.
34371
34372 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34373
34374 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
34375 mode iterator with VSX_M2.
34376 (*p9_vecstore_<mode>): Likewise.
34377 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
34378 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
34379 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
34380 (define_split for VSX_LE128 stores): Likewise.
34381 (define_peephole2 for TImode LE swaps): Likewise.
34382 (define_split for VSX_LE128 post-reload stores): Likewise.
34383
34384 2016-01-06 Marek Polacek <polacek@redhat.com>
34385
34386 PR sanitizer/69099
34387 * convert.c (convert_to_integer_1): Adjust call to
34388 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
34389 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
34390 EXPR instead of ARG.
34391 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
34392
34393 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
34394
34395 PR 1078
34396 * doc/extend.texi (RL78 Variable Attributes): New section.
34397
34398 2016-01-05 Marek Polacek <polacek@redhat.com>
34399
34400 PR c/69104
34401 * builtins.c (get_memmodel): Use expansion point location rather than
34402 the input location. Call warning_at rather than warning.
34403 (expand_builtin_atomic_compare_exchange): Likewise.
34404 (expand_builtin_atomic_load): Likewise.
34405 (expand_builtin_atomic_store): Likewise.
34406 (expand_builtin_atomic_clear): Likewise.
34407
34408 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
34409
34410 PR target/68991
34411 * config/i386/i386.c (ix86_expand_vector_logical_operator):
34412 Replace nonimmediate_operand with vector_operand.
34413 * config/i386/predicates.md (vector_operand): New predicate.
34414 (general_vector_operand): Replace nonimmediate_operand with
34415 vector_operand.
34416 * config/i386/sse.md: Replace nonimmediate_operand with
34417 vector_operand and m constraint with Bm constraint on SSE
34418 patterns with 16-byte memory operand.
34419 * config/i386/subst.md (round_nimm_predicate): Replace
34420 nonimmediate_operand with vector_operand.
34421 (round_saeonly_nimm_predicate): Likewise.
34422 (round_saeonly_nimm_scalar_predicate): New.
34423
34424 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
34425
34426 PR target/68991
34427 * config/i386/constraints.md (Bm): New constraint.
34428 * config/i386/predicates.md (vector_memory_operand): New
34429 predicate.
34430 * config/i386/sse.md: Replace xm with xBm in plusminus and
34431 any_logic patterns.
34432
34433 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
34434
34435 PR 1078
34436 * doc/extend.texi (V850 Function Attributes): New section.
34437 (V850 Variable Attributes): New section.
34438
34439 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
34440
34441 PR 1078
34442 * doc/extend.texi (MicroBlaze Function Attributes): Document
34443 interrupt_handler and fast_interrupt attributes.
34444
34445 2016-01-05 Sergei Trofimovich <siarheit@google.com>
34446
34447 PR other/60465
34448 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
34449 for local symbolic operands.
34450 * config/ia64/predicates.md (local_symbolic_operand64): New
34451 predicate.
34452
34453 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34454
34455 PR rtl-optimization/68651
34456 * combine.c (combine_simplify_rtx): Canonicalize x + x into
34457 x << 1.
34458
34459 2016-01-05 Nathan Sidwell <nathan@acm.org>
34460
34461 * alias.c (compare_base_decls): Use symtab_node::get.
34462
34463 2016-01-05 Nick Clifton <nickc@redhat.com>
34464
34465 PR target/68770
34466 * ira-costs.c (copy_cost): Initialise the t_icode field of the
34467 secondary_reload_info structure.
34468
34469 PR target/66655
34470 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
34471 decls if weak support is available.
34472
34473 2016-01-04 Martin Sebor <msebor@redhat.com>
34474
34475 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
34476
34477 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
34478
34479 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
34480 OPTION_MASK_P9_DFORM.
34481
34482 * config/rs6000/constraints.md (wo constraint): New constraint for
34483 ISA 3.0 (power9).
34484
34485 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
34486 for wo constraint.
34487 (rs6000_init_hard_regno_mode_ok): Likewise.
34488
34489 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
34490 wo constraint.
34491
34492 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
34493 expanders not to have constraints. Add support for ISA 3.0 xxperm
34494 instruction. Add support for fusing xxlor with xxperm.
34495 (altivec_vperm_<mode>_internal): Likewise.
34496 (altivec_vperm_v8hiv16qi): Likewise.
34497 (altivec_vperm_<mode>v16q): Likewise.
34498 (altivec_vperm_<mode>_uns): Likewise.
34499 (vperm_v8hiv4si): Likewise.
34500 (vperm_v16qiv8hi): Likewise.
34501
34502 * doc/md.texi (RS/6000 constraints): Document wo constraint.
34503
34504 2016-01-04 Jakub Jelinek <jakub@redhat.com>
34505
34506 Update copyright years.
34507
34508 * gcc.c (process_command): Update copyright notice dates.
34509 * gcov-dump.c (print_version): Ditto.
34510 * gcov.c (print_version): Ditto.
34511 * gcov-tool.c (print_version): Ditto.
34512 * gengtype.c (create_file): Ditto.
34513 * doc/cpp.texi: Bump @copying's copyright year.
34514 * doc/cppinternals.texi: Ditto.
34515 * doc/gcc.texi: Ditto.
34516 * doc/gccint.texi: Ditto.
34517 * doc/gcov.texi: Ditto.
34518 * doc/install.texi: Ditto.
34519 * doc/invoke.texi: Ditto.
34520
34521 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
34522
34523 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
34524 modes larger than TImode as TImode if NEON is not enabled.
34525
34526 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
34527
34528 PR target/69100
34529 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
34530 mode for %f0-%f31 only if TARGET_FPU.
34531
34532 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
34533
34534 PR target/69072
34535 * config/sparc/sparc.c (scan_record_type): Take into account subfields
34536 to compute the PACKED_P predicate.
34537 (function_arg_record_value): Minor tweaks.
34538
34539 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
34540
34541 * doc/install.texi (--with-multilib-list): Describe the meaning of the
34542 option for arm*-*-* targets.
34543
34544 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
34545
34546 * doc/extend.texi (Common Function Attributes): Move docs for
34547 MSP430-specific attributes to....
34548 (MSP430 Function Attributes): ...here. Delete the redundant
34549 entries and copy-edit the remaining text.
34550 (MSP430 Variable Attributes): Use uniform format for index
34551 entries and add a cross-reference to the corresponding function
34552 attribute docs.
34553
34554 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
34555
34556 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
34557 -finite-math typo.
34558 (x86 Options): Likewise.
34559
34560 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
34561
34562 PR 1078
34563
34564 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
34565 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
34566 to corresponding attribute.
34567
34568 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
34569
34570 * doc/extend.texi (Common Function Attributes) <noplt>: Move
34571 to correct alphabetization of table. Copy-edit and correct
34572 markup.
34573 <stack_protect>: Likewise.
34574 <target_clones>: Likewise.
34575 <simd>: Likewise.
34576 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
34577 Correct punctuation.
34578 (Code Gen Options) <-fno-plt>: Copy-edit.
34579
34580 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
34581
34582 PR target/68917
34583 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
34584 SI values. Explicitly convert SI to DI and vice-versa.
34585
34586 2016-01-01 Jakub Jelinek <jakub@redhat.com>
34587
34588 PR tree-optimization/69070
34589 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
34590 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
34591
34592 PR sanitizer/69055
34593 * ubsan.c (ubsan_instrument_float_cast): Call
34594 initialize_sanitizer_builtins.
34595
34596 PR target/69015
34597 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
34598 \f
34599 Copyright (C) 2016 Free Software Foundation, Inc.
34600
34601 Copying and distribution of this file, with or without modification,
34602 are permitted in any medium without royalty provided the copyright
34603 notice and this notice are preserved.