lto-wrapper.c (merge_and_complain): Do not merge fexceptions...
[gcc.git] / gcc / ChangeLog
1 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
2
3 * lto-wrapper.c (merge_and_complain): Do not merge
4 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
5 fsigned_zeros, ftrapping_math, fwrapv.
6 (append_compiler_options): Do not track these options.
7 (append_linker_options): Likewie
8
9 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
10
11 * cgraphunit.c (cgraph_node::finalize_function): When
12 !flag_toplevel_reorde set no_reorder flag.
13 (varpool_node::finalize_decl): Likewise.
14 (symbol_table::compile): Drop no toplevel reorder path.
15
16 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
17
18 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
19 edges; zero probability is not better than uninitialized.
20
21 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
22
23 * asan.h (asan_sanitize_allocas_p): Declare.
24 * asan.c (asan_sanitize_allocas_p): New function.
25 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
26 (handle_builtin_alloca): Likewise.
27 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
28 if !asan_sanitize_allocas_p.
29 * params.def (asan-instrument-allocas): Add new option.
30 * params.h (ASAN_PROTECT_ALLOCAS): Define.
31 * opts.c (common_handle_option): Disable allocas sanitization for
32 KASan by default.
33
34 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
35
36 * asan.c: Include gimple-fold.h.
37 (get_last_alloca_addr): New function.
38 (handle_builtin_stackrestore): Likewise.
39 (handle_builtin_alloca): Likewise.
40 (asan_emit_allocas_unpoison): Likewise.
41 (get_mem_refs_of_builtin_call): Add new parameter, remove const
42 quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
43 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
44 (instrument_builtin_call): Pass gimple iterator to
45 get_mem_refs_of_builtin_call.
46 (last_alloca_addr): New global.
47 * asan.h (asan_emit_allocas_unpoison): Declare.
48 * builtins.c (expand_asan_emit_allocas_unpoison): New function.
49 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
50 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
51 if function calls alloca.
52 * gimple-fold.c (replace_call_with_value): Remove static keyword.
53 * gimple-fold.h (replace_call_with_value): Declare.
54 * internal-fn.c: Include asan.h.
55 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
56 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
57
58 2017-07-06 David Malcolm <dmalcolm@redhat.com>
59
60 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
61 (C_SELFTEST_FLAGS): New.
62 (CPP_SELFTEST_FLAGS): New.
63 (SELFTEST_DEPS): New, from deps of s-selftest.
64 (C_SELFTEST_DEPS): New, from deps of s-selftest.
65 (CPP_SELFTEST_DEPS): New.
66 (selftest): Add dependency on s-selftest-c++.
67 (s-selftest): Rename to...
68 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
69 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
70 than SELFTEST_FLAGS.
71 (selftest-gdb): Rename to...
72 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
73 C_SELFTEST_FLAGS.
74 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
75 (selftest-valgrind): Rename to...
76 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
77 C_SELFTEST_FLAGS.
78 (selftest-valgrind): Reintroduce as an alias for
79 selftest-c-valgrind.
80 (s-selftest-c++): New.
81 (selftest-c++-gdb): New.
82 (selftest-c++-valgrind): New.
83
84 2017-07-06 Olivier Hainque <hainque@adacore.com>
85
86 * gcc.c (process_command): When deciding if undefined variables
87 should be ignored when processing specs, accept "gcc -v" as well.
88
89 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
90
91 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
92 afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
93
94 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
95
96 * config/arm/arm-cpus.in (armv8-r): Add new entry.
97 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
98 * config/arm/arm-tables.opt: Regenerate.
99 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
100 enumerator.
101 * doc/invoke.texi: Mention -march=armv8-r and its extensions.
102
103 2017-07-06 Carl Love <cel@us.ibm.com>
104
105 * ChangeLog: Clean up from mid air collision
106
107 2017-07-06 Carl Love <cel@us.ibm.com>
108
109 * config/rs6000/rs6000-c.c: Add support for built-in functions
110 vector signed int vec_subc (vector signed int, vector signed int);
111 vector signed __int128 vec_subc (vector signed __int128,
112 vector signed __int128);
113 vector unsigned __int128 vec_subc (vector unsigned __int128,
114 vector unsigned __int128);
115 vector signed int vec_sube (vector signed int, vector signed int,
116 vector signed int);
117 vector unsigned int vec_sube (vector unsigned int,
118 vector unsigned int,
119 vector unsigned int);
120 vector signed __int128 vec_sube (vector signed __int128,
121 vector signed __int128,
122 vector signed__int128);
123 vector unsigned __int128 vec_sube (vector unsigned __int128,
124 vector unsigned __int128,
125 vector unsigned __int128);
126 vector signed int vec_subec (vector signed int, vector signed int,
127 vector signed int);
128 vector unsigned int vec_subec (vector unsigned int,
129 vector unsigned int,
130 vector unsigned int);
131 vector signed __int128 vec_subec (vector signed __int128,
132 vector signed __int128,
133 vector signed__int128);
134 vector unsigned __int128 vec_subec (vector unsigned __int128,
135 vector unsigned __int128,
136 vector unsigned __int128);
137 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
138 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
139 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
140 BU_ALTIVEC_OVERLOAD_X definitions.
141 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
142 * doc/extend.texi: Update the built-in documentation file for the new
143 built-in functions.
144
145 2017-07-06 David Malcolm <dmalcolm@redhat.com>
146
147 PR c++/79300
148 * diagnostic-show-locus.c (layout::layout): Use start and finish
149 spelling location for the start and finish of each range.
150 * genmatch.c (linemap_client_expand_location_to_spelling_point):
151 Add unused aspect param.
152 * input.c (expand_location_1): Add "aspect" param, and use it
153 to access the correct part of the location.
154 (expand_location): Pass LOCATION_ASPECT_CARET to new param of
155 expand_location_1.
156 (expand_location_to_spelling_point): Likewise.
157 (linemap_client_expand_location_to_spelling_point): Add "aspect"
158 param, and pass it to expand_location_1.
159
160 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com>
161
162 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
163 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
164 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
165 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
166 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
167 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
168 _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
169 _mm_maskz_getmant_ss): New intrinsics.
170 (__builtin_ia32_getexpss128_mask): Changed to ...
171 __builtin_ia32_getexpss128_round ... this.
172 (__builtin_ia32_getexpsd128_mask): Changed to ...
173 __builtin_ia32_getexpsd128_round ... this.
174 * config/i386/i386-builtin-types.def
175 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
176 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
177 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
178 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round,
179 __builtin_ia32_getmantss_mask_round): New builtins.
180 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
181 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
182 (CODE_FOR_avx512f_vgetmantv2df_mask_round,
183 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
184 * config/i386/sse.md
185 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
186 avx512f_sgetexp<mode><mask_scalar_name>
187 <round_saeonly_scalar_name> ... this.
188 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
189 %0, %1, %2<round_saeonly_op3>}): Changed to ...
190 vgetexp<ssescalarmodesuffix>
191 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
192 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
193 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
194 avx512f_vgetmant<mode><mask_scalar_name>
195 <round_saeonly_scalar_name> ... this.
196 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
197 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
198 vgetmant<ssescalarmodesuffix>
199 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
200 %0<mask_scalar_operand4>, %1, %2
201 <round_saeonly_scalar_mask_op4>, %3} ... this.
202 * config/i386/subst.md (mask_scalar_operand4,
203 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4,
204 round_saeonly_scalar_nimm_predicate): New subst attributes.
205
206 2017-07-06 Julia Koval <julia.koval@intel.com>
207
208 * gcc/config/i386/i386.c (ix86_erase_embedded_rounding):
209 Remove code for old rounding pattern.
210
211 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
212
213 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
214 in quoted strings.
215
216 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
217
218 * config/arm/t-arm (GTM_H): Add arm-cpu.h.
219
220 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org>
221
222 * doc/sourcebuild.texi (Test Directives, Variants of
223 dg-require-support): Add documentation for dg-require-stack-check.
224
225 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com>
226
227 * config/i386/subst.md (mask_scalar, round_scalar,
228 round_saeonly_scalar): New meta-templates.
229 (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
230 round_scalar_mask_operand3, round_scalar_mask_op3,
231 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
232 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
233 round_saeonly_scalar_constraint,
234 round_saeonly_scalar_prefix): New subst attribute.
235 * config/i386/sse.md
236 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
237 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
238 <round_scalar_name> ... this.
239 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
240 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
241 <round_scalar_name> ... this.
242 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
243 <sse>_vm<code><mode>3<mask_scalar_name>
244 <round_saeonly_scalar_name> ... this.
245 (v<plusminus_mnemonic><ssescalarmodesuffix>
246 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
247 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
248 v<plusminus_mnemonic><ssescalarmodesuffix>
249 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
250 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
251 (v<multdiv_mnemonic><ssescalarmodesuffix>
252 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
253 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
254 v<multdiv_mnemonic><ssescalarmodesuffix>
255 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
256 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
257 (v<maxmin_float><ssescalarmodesuffix>
258 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
259 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
260 v<maxmin_float><ssescalarmodesuffix>
261 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
262 %0<mask_scalar_operand3>, %1, %<iptr>2
263 <round_saeonly_scalar_mask_op3>} ... this.
264
265 2017-07-05 Richard Earnshaw <rearnsha@arm.com>
266
267 * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
268 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
269
270 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
271 Alan Hayward <alan.hayward@arm.com>
272 David Sherwood <david.sherwood@arm.com>
273
274 * combine.c (simplify_if_then_else): Remove "enum" before
275 "machine_mode".
276 * compare-elim.c (can_eliminate_compare): Likewise.
277 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
278 Likewise.
279 (aarch64_lookup_simd_builtin_type): Likewise.
280 (aarch64_simd_builtin_type): Likewise.
281 (aarch64_init_simd_builtin_types): Likewise.
282 (aarch64_simd_expand_args): Likewise.
283 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
284 Likewise.
285 (aarch64_reverse_mask): Likewise.
286 (aarch64_simd_emit_reg_reg_move): Likewise.
287 (aarch64_gen_adjusted_ldpstp): Likewise.
288 (aarch64_ccmp_mode_to_code): Likewise.
289 (aarch64_operands_ok_for_ldpstp): Likewise.
290 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
291 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
292 Likewise.
293 (aarch64_min_divisions_for_recip_mul): Likewise.
294 (aarch64_reassociation_width): Likewise.
295 (aarch64_get_condition_code_1): Likewise.
296 (aarch64_simd_emit_reg_reg_move): Likewise.
297 (aarch64_simd_attr_length_rglist): Likewise.
298 (aarch64_reverse_mask): Likewise.
299 (aarch64_operands_ok_for_ldpstp): Likewise.
300 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
301 (aarch64_gen_adjusted_ldpstp): Likewise.
302 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
303 Likewise.
304 * config/arc/arc.c (legitimate_offset_address_p): Likewise.
305 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
306 (arm_lookup_simd_builtin_type): Likewise.
307 (arm_simd_builtin_type): Likewise.
308 (arm_init_simd_builtin_types): Likewise.
309 (arm_expand_builtin_args): Likewise.
310 * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
311 * config/ft32/ft32.c (ft32_libcall_value): Likewise.
312 (ft32_setup_incoming_varargs): Likewise.
313 (ft32_function_arg): Likewise.
314 (ft32_function_arg_advance): Likewise.
315 (ft32_pass_by_reference): Likewise.
316 (ft32_arg_partial_bytes): Likewise.
317 (ft32_valid_pointer_mode): Likewise.
318 (ft32_addr_space_pointer_mode): Likewise.
319 (ft32_addr_space_legitimate_address_p): Likewise.
320 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
321 Likewise.
322 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
323 (ix86_emit_outlined_ms2sysv_restore): Likewise.
324 (iamcu_alignment): Likewise.
325 (canonicalize_vector_int_perm): Likewise.
326 (ix86_noce_conversion_profitable_p): Likewise.
327 (ix86_mpx_bound_mode): Likewise.
328 (ix86_operands_ok_for_move_multiple): Likewise.
329 * config/microblaze/microblaze-protos.h
330 (microblaze_expand_conditional_branch_reg): Likewise.
331 * config/microblaze/microblaze.c
332 (microblaze_expand_conditional_branch_reg): Likewise.
333 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
334 Likewise.
335 (rs6000_reassociation_width): Likewise.
336 (rs6000_invalid_binary_op): Likewise.
337 (fusion_p9_p): Likewise.
338 (emit_fusion_p9_load): Likewise.
339 (emit_fusion_p9_store): Likewise.
340 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
341 Likewise.
342 (riscv_hard_regno_mode_ok_p): Likewise.
343 (riscv_address_insns): Likewise.
344 (riscv_split_symbol): Likewise.
345 (riscv_legitimize_move): Likewise.
346 (riscv_function_value): Likewise.
347 (riscv_hard_regno_nregs): Likewise.
348 (riscv_expand_builtin): Likewise.
349 * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
350 (riscv_build_integer): Likewise.
351 (riscv_split_integer): Likewise.
352 (riscv_legitimate_constant_p): Likewise.
353 (riscv_cannot_force_const_mem): Likewise.
354 (riscv_regno_mode_ok_for_base_p): Likewise.
355 (riscv_valid_base_register_p): Likewise.
356 (riscv_valid_offset_p): Likewise.
357 (riscv_valid_lo_sum_p): Likewise.
358 (riscv_classify_address): Likewise.
359 (riscv_legitimate_address_p): Likewise.
360 (riscv_address_insns): Likewise.
361 (riscv_load_store_insns): Likewise.
362 (riscv_force_binary): Likewise.
363 (riscv_split_symbol): Likewise.
364 (riscv_force_address): Likewise.
365 (riscv_legitimize_address): Likewise.
366 (riscv_move_integer): Likewise.
367 (riscv_legitimize_const_move): Likewise.
368 (riscv_legitimize_move): Likewise.
369 (riscv_address_cost): Likewise.
370 (riscv_subword): Likewise.
371 (riscv_output_move): Likewise.
372 (riscv_canonicalize_int_order_test): Likewise.
373 (riscv_emit_int_order_test): Likewise.
374 (riscv_function_arg_boundary): Likewise.
375 (riscv_pass_mode_in_fpr_p): Likewise.
376 (riscv_pass_fpr_single): Likewise.
377 (riscv_pass_fpr_pair): Likewise.
378 (riscv_get_arg_info): Likewise.
379 (riscv_function_arg): Likewise.
380 (riscv_function_arg_advance): Likewise.
381 (riscv_arg_partial_bytes): Likewise.
382 (riscv_function_value): Likewise.
383 (riscv_pass_by_reference): Likewise.
384 (riscv_setup_incoming_varargs): Likewise.
385 (riscv_print_operand): Likewise.
386 (riscv_elf_select_rtx_section): Likewise.
387 (riscv_save_restore_reg): Likewise.
388 (riscv_for_each_saved_reg): Likewise.
389 (riscv_register_move_cost): Likewise.
390 (riscv_hard_regno_mode_ok_p): Likewise.
391 (riscv_hard_regno_nregs): Likewise.
392 (riscv_class_max_nregs): Likewise.
393 (riscv_memory_move_cost): Likewise.
394 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
395 * config/rl78/rl78.c (rl78_split_movsi): Likewise.
396 (rl78_addr_space_address_mode): Likewise.
397 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
398 Likewise.
399 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
400 (rs6000_reassociation_width): Likewise.
401 (rs6000_invalid_binary_op): Likewise.
402 (fusion_p9_p): Likewise.
403 (emit_fusion_p9_load): Likewise.
404 (emit_fusion_p9_store): Likewise.
405 * config/visium/visium-protos.h (prepare_move_operands): Likewise.
406 (ok_for_simple_move_operands): Likewise.
407 (ok_for_simple_move_strict_operands): Likewise.
408 (ok_for_simple_arith_logic_operands): Likewise.
409 (visium_legitimize_reload_address): Likewise.
410 (visium_select_cc_mode): Likewise.
411 (output_cbranch): Likewise.
412 (visium_split_double_move): Likewise.
413 (visium_expand_copysign): Likewise.
414 (visium_expand_int_cstore): Likewise.
415 (visium_expand_fp_cstore): Likewise.
416 * config/visium/visium.c (visium_pass_by_reference): Likewise.
417 (visium_function_arg): Likewise.
418 (visium_function_arg_advance): Likewise.
419 (visium_libcall_value): Likewise.
420 (visium_setup_incoming_varargs): Likewise.
421 (visium_legitimate_constant_p): Likewise.
422 (visium_legitimate_address_p): Likewise.
423 (visium_legitimize_address): Likewise.
424 (visium_secondary_reload): Likewise.
425 (visium_register_move_cost): Likewise.
426 (visium_memory_move_cost): Likewise.
427 (prepare_move_operands): Likewise.
428 (ok_for_simple_move_operands): Likewise.
429 (ok_for_simple_move_strict_operands): Likewise.
430 (ok_for_simple_arith_logic_operands): Likewise.
431 (visium_function_value_1): Likewise.
432 (rtx_ok_for_offset_p): Likewise.
433 (visium_legitimize_reload_address): Likewise.
434 (visium_split_double_move): Likewise.
435 (visium_expand_copysign): Likewise.
436 (visium_expand_int_cstore): Likewise.
437 (visium_expand_fp_cstore): Likewise.
438 (visium_split_cstore): Likewise.
439 (visium_select_cc_mode): Likewise.
440 (visium_split_cbranch): Likewise.
441 (output_cbranch): Likewise.
442 (visium_print_operand_address): Likewise.
443 * expmed.c (flip_storage_order): Likewise.
444 * expmed.h (emit_cstore): Likewise.
445 (flip_storage_order): Likewise.
446 * genrecog.c (validate_pattern): Likewise.
447 * hsa-gen.c (gen_hsa_addr): Likewise.
448 * internal-fn.c (expand_arith_overflow): Likewise.
449 * ira-color.c (allocno_copy_cost_saving): Likewise.
450 * lra-assigns.c (find_hard_regno_for_1): Likewise.
451 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
452 (process_invariant_for_inheritance): Likewise.
453 * lra-eliminations.c (move_plus_up): Likewise.
454 * omp-low.c (lower_oacc_reductions): Likewise.
455 * simplify-rtx.c (simplify_subreg): Likewise.
456 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
457 (TARGET_CHKP_BOUND_MODE): Likewise..
458 * targhooks.c (default_chkp_bound_mode): Likewise.
459 (default_setup_incoming_vararg_bounds): Likewise.
460 * targhooks.h (default_chkp_bound_mode): Likewise.
461 (default_setup_incoming_vararg_bounds): Likewise.
462 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
463 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
464 (have_whole_vector_shift): Likewise.
465 * tree-vect-stmts.c (vectorizable_load): Likewise.
466 * doc/tm.texi: Regenerate.
467
468 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
469
470 Graceful degrade if Binutils PR21472 is not available.
471
472 PR target/81072
473 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
474 .rodata in flash test fails.
475 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
476 * confgure: Regenerate.
477 * config.in: Regenerate.
478 * config/avr/avr.c (avr_asm_named_section)
479 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
480 __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
481 (avr_asm_init_sections): Same.
482
483 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
484
485 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
486 (fma<VH:mode>4_intrinsic): Likewise.
487 (*fmsub<VCVTF:mode>4): Likewise.
488 (*fmsub<VH:mode>4_intrinsic): Likewise.
489
490 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
491
492 PR target/81305
493 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
494 Don't depend on "optimize > 0".
495 (out_movhi_r_mr, out_movqi_mr_r): Same.
496 (out_movhi_mr_r, out_movqi_r_mr): Same.
497 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
498 io_address_operand on "optimize > 0".
499
500 2017-07-05 Bin Cheng <bin.cheng@arm.com>
501
502 * tree-loop-distribution.c: Add general explanantion on the pass.
503 (generate_loops_for_partition): Mark distributed loop.
504 (pg_add_dependence_edges): New parameter. Handle alias data
505 dependence specially and record it in the parameter if asked.
506 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
507 (init_partition_graph_vertices, add_partition_graph_edge): New.
508 (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
509 (free_partition_graph_vdata, build_partition_graph): New.
510 (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
511 (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
512 (data_ref_segment_size, latch_dominated_by_data_ref): New.
513 (compute_alias_check_pairs, version_loop_by_alias_check): New.
514 (version_for_distribution_p, finalize_partitions): New.
515 (distribute_loop): Handle alias data dependence specially. Factor
516 out loop fusion code as functions and call these functions.
517
518 2017-07-05 Bin Cheng <bin.cheng@arm.com>
519
520 * tree-loop-distribution.c (classify_partition): New parameter and
521 better handle reduction statement.
522 (rdg_build_partitions): Revise comment.
523 (distribute_loop): Compute statements in all partitions and pass it
524 to classify_partition.
525
526 2017-07-05 Bin Cheng <bin.cheng@arm.com>
527
528 * tree-loop-distribution.c (enum partition_type): New.
529 (struct partition): New field type.
530 (partition_merge_into): Add parameter. Update partition type.
531 (data_dep_in_cycle_p, update_type_for_merge): New functions.
532 (build_rdg_partition_for_vertex): Compute partition type.
533 (rdg_build_partitions): Dump partition type.
534 (distribute_loop): Update calls to partition_merge_into.
535
536 2017-07-05 Bin Cheng <bin.cheng@arm.com>
537
538 * tree-loop-distribution.c (struct ddr_hasher): New.
539 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
540 (ddrs_table): New.
541 (classify_partition): Call get_data_dependence.
542 (pg_add_dependence_edges): Ditto.
543 (distribute_loop): Release data dependence hash table.
544
545 2017-07-05 Bin Cheng <bin.cheng@arm.com>
546
547 * tree-loop-distribution.c (ref_base_address): Delete.
548 (similar_memory_accesses): Rename ...
549 (share_memory_accesses): ... to this. Check if partitions access
550 the same memory reference.
551 (distribute_loop): Call share_memory_accesses.
552
553 2017-07-05 Bin Cheng <bin.cheng@arm.com>
554
555 * tree-loop-distribution.c (struct partition): New field recording
556 its data reference.
557 (partition_alloc, partition_free): Init and release data refs.
558 (partition_merge_into): Merge data refs.
559 (build_rdg_partition_for_vertex): Collect data refs for partition.
560 (pg_add_dependence_edges): Change parameters from vector to bitmap.
561 Update uses.
562 (distribute_loop): Remve data refs from vertice data of partition
563 graph.
564
565 2017-07-05 Bin Cheng <bin.cheng@arm.com>
566
567 * tree-loop-distribution.c (params.h): Include header file.
568 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
569 (datarefs_vec): New global var.
570 (create_rdg_vertices): Use datarefs_vec directly.
571 (free_rdg): Don't free data references.
572 (build_rdg): Update use. Don't free data references.
573 (distribute_loop): Compute global variable for data references.
574 Bail out if there are too many data references.
575
576 2017-07-05 Bin Cheng <bin.cheng@arm.com>
577
578 * tree-loop-distribution.c (loop_nest): New global var.
579 (build_rdg): Use loop directly, rather than loop nest.
580 (pg_add_dependence_edges): Remove loop nest parameter. Use global
581 variable directly.
582 (distribute_loop): Compute global variable loop nest. Update use.
583
584 2017-07-05 Bin Cheng <bin.cheng@arm.com>
585
586 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
587 (partition_merge_into): New parameter. Dump reason for fusion.
588 (distribute_loop): Update use of partition_merge_into.
589
590 2017-07-05 Bin Cheng <bin.cheng@arm.com>
591
592 * tree-loop-distribution.c (bb_top_order_index): New.
593 (bb_top_order_index_size, bb_top_order_cmp): New.
594 (stmts_from_loop): Use topological order.
595 (pass_loop_distribution::execute): Compute and release topological
596 order for basic blocks.
597
598 2017-07-05 Bin Cheng <bin.cheng@arm.com>
599
600 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
601 if no loops.
602
603 2017-07-05 Bin Cheng <bin.cheng@arm.com>
604
605 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
606 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
607 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
608 * internal-fn.def (LOOP_DIST_ALIAS): New.
609 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
610 (fold_loop_internal_call): ... this.
611 (vect_loop_dist_alias_call): New function.
612 (set_uid_loop_bbs): Call fold_loop_internal_call.
613 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
614 internal calls.
615
616 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
617
618 PR target/81300
619 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
620 Require dead FLAGS_REG at the beginning of a peephole.
621
622 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
623
624 PR target/81294
625 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
626 arguments in the call to __builtin_ia32_sbb_u32.
627 (_subborrow_u64): Swap _X and _Y arguments in the call to
628 __builtin_ia32_sbb_u64.
629
630 2017-07-04 Jakub Jelinek <jakub@redhat.com>
631
632 PR debug/81278
633 * tree-vrp.c (compare_assert_loc): Turn into a function template
634 with stable template parameter. Only test if a->e is NULL,
635 !a->e == !b->e has been verified already. Use e == NULL or
636 e != NULL instead of e or ! e tests. If stable is true, don't use
637 iterative_hash_expr, on the other side allow a or b or both NULL
638 and sort the NULLs last.
639 (process_assert_insertions): Sort using compare_assert_loc<false>
640 instead of compare_assert_loc, later sort using
641 compare_assert_loc<true> before calling process_assert_insertions_for
642 in a loop. Use break instead of continue once seen NULL pointer.
643
644 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
645
646 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
647 Cortex-R7 and Cortex-R8 processors.
648
649 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
650
651 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
652 uninitialized while src is not.
653
654 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
655
656 * common/config/arm/arm-common.c: Adjust include path for
657 arm-cpu-cdata.h
658 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
659 (arm-cpu.h): Create in build directory. Adjust dependency rules.
660 (arm-cpu-data.h): Likewise.
661 (arm-cpu-cdata.h): Likewise.
662 * config/arm/arm-cpu.h: Delete.
663 * config/arm/arm-cpu-cdata.h: Delete.
664 * config/arm/arm-cpu-data.h: Delete.
665
666 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
667
668 * config/arm/arm-cpus.in (cortex-a55): New.
669 (cortex-a75): Likewise.
670 (cortex-a75.cortex-a55): Likewise.
671 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
672 cortex-a75.
673 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
674 * config/arm/arm-cpu-cdata.h: Regenerate.
675 * config/arm/arm-cpu-data.h: Regenerate.
676 * config/arm/arm-cpu.h: Regenerate.
677 * config/arm/arm-tables.opt: Regenerate.
678 * config/arm/arm-tune.md: Regenerate.
679
680 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
681
682 * haifa-sched.c (sched_create_recovery_edges): Update profile.
683
684 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
685
686 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
687 probability.
688
689 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
690
691 PR tree-optimization/81292
692 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
693 full_string_p, also call adjust_related_strinfos if the adjustment
694 is simple, otherwise invalidate related strinfos.
695
696 2017-07-04 Martin Liska <mliska@suse.cz>
697
698 PR sanitizer/81040
699 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
700 newly created variable as DECL_IGNORED_P.
701
702 2017-07-04 Martin Liska <mliska@suse.cz>
703
704 PR ipa/81293
705 * ipa-inline.c (inline_small_functions):
706 Use xstrdup_for_dump.
707
708 2017-07-04 Tom de Vries <tom@codesourcery.com>
709
710 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
711
712 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
713
714 PR target/81033
715 * config/darwin.c (darwin_function_switched_text_sections):
716 Fix spaces.
717
718 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
719
720 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
721
722 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
723
724 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
725
726 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
727
728 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
729 min_profitable_iters, and th as inclusive lower bounds.
730 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
731 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
732 for min_profitable_iters and min_profitable_estimate.
733 (vect_transform_loop): Treat th as an inclusive lower bound.
734 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
735
736 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
737
738 PR target/81033
739 * config/darwin.c (darwin_function_switched_text_sections):
740 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
741 in two pieces, and suppress the use of buf.
742
743 2017-07-03 Nathan Sidwell <nathan@acm.org>
744
745 * hash-table.h (hash_table_mod1): Fix indentation.
746
747 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
748
749 PR middle-end/81290
750 * predict.c (force_edge_cold): Be more careful about propagation
751 backward.
752 * profile-count.h (profile_probability::guessed,
753 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
754 New.
755 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
756
757 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
758
759 * doc/invoke.texi (rcpc architecture extension): Document it.
760
761 2017-07-03 Richard Biener <rguenther@suse.de>
762
763 PR tree-optimization/60510
764 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
765 the scalar reduction PHI and use it.
766 (vectorizable_reduction): Properly guard the single_defuse_cycle
767 path for non-SLP reduction chains where we cannot use it.
768 Rework reduc_def/index and vector type deduction. Rework
769 vector operand gathering during reduction op code-gen.
770 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
771 chains dissolve the chain and leave it to non-SLP reduction
772 handling.
773
774 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
775
776 * tree-data-ref.h (dr_alignment): Declare.
777 * tree-data-ref.c (dr_alignment): New function.
778 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
779 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
780 set it.
781 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
782
783 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
784
785 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
786 and base_misalignment fields.
787 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
788 * tree-data-ref.c: Include builtins.h.
789 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
790 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
791 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
792 * tree-vect-data-refs.c: Include tree-cfg.h.
793 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
794 fields instead of calculating an alignment here.
795 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
796 innermost_loop_behavior fields.
797
798 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
799
800 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
801 field.
802 (DR_STEP_ALIGNMENT): New macro.
803 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
804 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
805 (create_data_ref): Print it.
806 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
807 to tell whether the step preserves vector (mis)alignment.
808 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
809 Move the check for an integer step and generalise to all INTEGER_CST.
810 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
811 Print the outer step alignment.
812
813 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
814
815 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
816 with offset_alignment.
817 (DR_ALIGNED_TO): Delete.
818 (DR_OFFSET_ALIGNMENT): New macro.
819 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
820 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
821 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
822 (create_data_ref): Likewise.
823 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
824 (vect_analyze_data_refs): Likewise.
825 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
826 creating dummy innermost behavior.
827
828 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
829
830 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
831 with a "innermost_loop_behavior *" and refeence tree.
832 * tree-data-ref.c (dr_analyze_innermost): Likewise.
833 (create_data_ref): Update call accordingly.
834 * tree-predcom.c (find_looparound_phi): Likewise.
835
836 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
837
838 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
839 fields with dr_wrt_vec_loop.
840 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
841 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
842 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
843 (vect_dr_behavior): New function.
844 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
845 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
846 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
847 track whether the step preserves the misalignment.
848 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
849 Use vect_dr_behavior.
850 (vect_setup_realignment): Update call accordingly.
851 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
852 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
853 call to vect_create_addr_base_for_vector_ref.
854 (vect_create_cond_for_align_checks): Likewise.
855 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
856 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
857 (vect_recog_mask_conversion_pattern): Likewise.
858 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
859 (new_stmt_vec_info): Remove redundant zeroing.
860
861 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
862
863 * common/config/arm/arm-common.c (arm_be8_option): New function.
864 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
865 (ISA_ARMv6): Add isa_bit_be8.
866 * config/arm/arm.h (arm_be8_option): Add prototype.
867 (BE8_SPEC_FUNCTION): New define.
868 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
869 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
870 (mlittle-endian): Similarly.
871 (mbe8, mbe32): New options.
872 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
873 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
874
875 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
876
877 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
878
879 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
880
881 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
882 (cleanup_tree_cfg_bb): Use it.
883 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
884 New functions.
885 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
886
887 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
888
889 PR bootstrap/81285
890 * loop-doloop.c (add_test): Update profile.
891
892 2017-07-03 Martin Liska <mliska@suse.cz>
893
894 PR sanitize/81040
895 * sanopt.c (rewrite_usage_of_param): New function.
896 (sanitize_rewrite_addressable_params): Likewise.
897 (pass_sanopt::execute): Call rewrite_usage_of_param.
898
899 2017-07-03 Richard Biener <rguenther@suse.de>
900
901 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
902 back to using VIEW_CONVERT_EXPR.
903
904 2017-07-03 Martin Liska <mliska@suse.cz>
905
906 PR other/78366
907 * doc/extend.texi: Document when a resolver function is
908 generated for target_clones.
909
910 2017-07-03 Martin Liska <mliska@suse.cz>
911
912 * asan.c (asan_emit_stack_protection): Unpoison just red zones
913 and shadow memory of auto variables which are subject of
914 use-after-scope sanitization.
915 (asan_expand_mark_ifn): Add do set only when is_poison.
916
917 2016-07-03 Richard Biener <rguenther@suse.de>
918
919 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
920 reduction PHIs.
921 (vect_force_simple_reduction): Record reduction def -> phi mapping.
922 (vectorizable_reduction): Perform reduction PHI creation when
923 visiting a reduction PHI and adjust and simplify code generation
924 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
925 (vect_transform_loop): Visit reduction PHIs.
926 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
927 defs into the SLP tree.
928 (vect_build_slp_tree): Reduction defs terminate the recursion.
929 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
930 of reduction defs.
931 (vect_get_vec_defs_for_stmt_copy): Export.
932 (vect_get_vec_defs): Likewise.
933 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
934 purpose.
935 (vect_get_vec_defs_for_stmt_copy): Declare.
936 (vect_get_vec_defs): Likewise.
937
938 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
939
940 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
941 parameter with a "loop" parameter and use it instead of the
942 loop containing DR_STMT. Don't check simple_iv when doing
943 BB analysis. Describe the two analysis modes in the comment.
944
945 2017-07-03 Tom de Vries <tom@codesourcery.com>
946
947 PR tree-optimization/69468
948 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
949 (find_same_succ_bb): Handle ignore_edge_flags.
950
951 2017-07-03 Tom de Vries <tom@codesourcery.com>
952
953 PR tree-optimization/81192
954 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
955 hash.
956 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
957 differs.
958 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
959
960 2017-07-03 Tom de Vries <tom@codesourcery.com>
961
962 PR tree-optimization/81192
963 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
964 BB_SAME_SUCC (bb) == NULL.
965
966 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
967
968 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
969 consistency.
970
971 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
972
973 * dumpfile.c: Include profile-count.h
974 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
975 update profile.
976 (insert_cond_bb): Update profile.
977 * tree-cfg.h (insert_cond_bb): Update prototype.
978 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
979 * tree-dump.c: Do not include tree-cfg.
980
981 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
982
983 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
984
985 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
986
987 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
988 bb.
989
990 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
991
992 * tree-complex.c (expand_complex_div_wide): update profile.
993
994 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
995 Alan Hayward <alan.hayward@arm.com>
996 David Sherwood <david.sherwood@arm.com>
997
998 * Makefile.in (MACHMODE_H): Remove insn-modes.h
999 (CORETYPES_H): New define.
1000 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
1001 (insn-modes-inline.h, s-modes-inline-h): New rules.
1002 (generated_files): Add insn-modes-inline.h.
1003 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
1004 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
1005 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
1006 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
1007 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
1008 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
1009 (build/gencodes.o, build/genconditions.o): Likewise.
1010 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
1011 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
1012 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
1013 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
1014 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
1015 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
1016 * coretypes.h: Include everything up to real.h for generators.
1017 Include insn-modes.h first. Include wide-int-print.h after
1018 wide-int.h. Include insn-modes-inline.h and then machmode.h.
1019 * machmode.h: Don't include insn-modes.h here.
1020 * function-tests.c: Remove includes of signop.h, machmode.h,
1021 double-int.h and wide-int.h.
1022 * rtl.h: Likewise.
1023 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
1024 and wide-int.h.
1025 * optc-save-gen.awk: Likewise.
1026 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
1027 * godump.c: Remove include of wide-int-print.h.
1028 * pretty-print.h: Likewise.
1029 * wide-int-print.cc: Likewise.
1030 * wide-int.cc: Likewise.
1031 * hash-map-tests.c: Remove include of signop.h.
1032 * hash-set-tests.c: Likewise.
1033 * rtl-tests.c: Likewise.
1034 * mkconfig.sh: Remove include of machmode.h.
1035 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
1036 into...
1037 (emit_insn_modes_inline_h): ...this new function. Emit the code
1038 into an insn-modes-inline.h header file, adding appropriate
1039 include guards and end comments.
1040 (emit_insn_modes_c_header): Remove include of machmode.h.
1041 (emit_min_insn_modes_c_header): Include coretypes.h rather than
1042 machmode.h.
1043 (main): Handle -i flag and call emit_insn_modes_inline_h when
1044 it is passed.
1045
1046 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
1047
1048 * tree-ssa-strlen.c (strinfo): Rename the length field to
1049 nonzero_chars. Add a full_string_p field.
1050 (compare_nonzero_chars, zero_length_string_p): New functions.
1051 (get_addr_stridx): Add an offset_out parameter.
1052 Use compare_nonzero_chars.
1053 (get_stridx): Update accordingly. Use compare_nonzero_chars.
1054 (new_strinfo): Update after above changes to strinfo.
1055 (set_endptr_and_length): Set full_string_p.
1056 (get_string_length): Update after above changes to strinfo.
1057 (unshare_strinfo): Update call to new_strinfo.
1058 (maybe_invalidate): Likewise.
1059 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
1060 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
1061 as a uhwi instead of an shwi. Update after above changes to
1062 strinfo and new_strinfo.
1063 (zero_length_string): Assert that chainsi contains full strings.
1064 Use zero_length_string_p. Update call to new_strinfo.
1065 (adjust_related_strinfos): Update after above changes to strinfo.
1066 Copy full_string_p from origsi.
1067 (adjust_last_stmt): Use zero_length_string_p.
1068 (handle_builtin_strlen): Update after above changes to strinfo and
1069 new_strinfo. Install the lhs as the string length if the previous
1070 entry didn't describe a full string.
1071 (handle_builtin_strchr): Update after above changes to strinfo
1072 and new_strinfo.
1073 (handle_builtin_strcpy): Likewise.
1074 (handle_builtin_strcat): Likewise.
1075 (handle_builtin_malloc): Likewise.
1076 (handle_pointer_plus): Likewise.
1077 (handle_builtin_memcpy): Likewise. Track nonzero characters
1078 that aren't necessarily followed by a nul terminator.
1079 (handle_char_store): Likewise.
1080
1081 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
1082
1083 PR tree-optimization/80769
1084 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
1085 for malloc and calloc. Document the new invariant that all related
1086 strinfos have delayed lengths or none do.
1087 (verify_related_strinfos): Move earlier in file.
1088 (set_endptr_and_length): New function, split out from...
1089 (get_string_length): ...here. Also set the lengths of related
1090 strinfos.
1091 (zero_length_string): Assert that chainsi has known (rather than
1092 delayed) lengths.
1093 (adjust_related_strinfos): Likewise.
1094
1095 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
1096
1097 PR tree-optimization/81136
1098 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
1099 assert that two references with the same misalignment have the same
1100 compile-time misalignment if those compile-time misalignments
1101 are known.
1102
1103 2017-07-01 Andi Kleen <ak@linux.intel.com>
1104
1105 * print-tree.c (print_node): Print all attributes.
1106
1107 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
1108
1109 * cfg.c (scale_bbs_frequencies): New function.
1110 * cfg.h (scale_bbs_frequencies): Declare it.
1111 * cfgloopanal.c (single_likely_exit): Cleanup.
1112 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
1113 as parameter.
1114 (scale_loop_profile): Likewise.
1115 (loop_version): Likewise.
1116 (create_empty_loop_on_edge): Update.
1117 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
1118 scale_loop_frequencies, scale_loop_profile, loopify,
1119 loop_version): Update prototypes.
1120 * modulo-sched.c (sms_schedule): Update.
1121 * predict.c (unlikely_executed_edge_p): Also check probability.
1122 (probably_never_executed_edge_p): Fix typo.
1123 * tree-if-conv.c (version_loop_for_if_conversion): Update.
1124 * tree-parloops.c (gen_parallel_loop): Update.
1125 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
1126 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
1127 * tree-ssa-loop-split.c (split_loop): Update.
1128 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
1129 * tree-vect-loop-manip.c (vect_do_peeling): Update.
1130 (vect_loop_versioning): Update.
1131 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
1132
1133 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
1134
1135 * trans-mem.c (split_bb_make_tm_edge): Update profile.
1136
1137 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
1138
1139 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
1140 to keep profile consistent.
1141
1142 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
1143
1144 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
1145 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
1146 * profile-count.h (max_safe_multiplier): Make unsigned.
1147 (profile_count::guessed_zero): New.
1148
1149 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
1150
1151 * bb-reorder.c (fix_up_crossing_landing_pad,
1152 fix_crossing_conditional_branches): Use make_single_succ_edge
1153 to keep profile consistent.
1154
1155 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
1156
1157 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
1158 to update profile.
1159
1160 2017-07-01 Jakub Jelinek <jakub@redhat.com>
1161
1162 PR sanitizer/81262
1163 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
1164 the right scopes, make sure cond_jump isn't preserved between multiple
1165 iterations. Search for fallthru edge whenever there are 3+ edges and
1166 use find_fallthru_edge for it.
1167
1168 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
1169
1170 Patch by Alexander Monakov <amonakov@ispras.ru>
1171 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
1172 probabilities consistently.
1173
1174 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
1175
1176 * pa.c (pa_expand_compare_and_swap_loop): Update call of
1177 emit_cmp_and_jump_insns.
1178
1179 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
1180
1181 PR ipa/81261
1182 * tree-inline.c (expand_call_inline): Combine profile statuses.
1183
1184 2017-06-30 Andrew Pinski <apinski@cavium.com>
1185
1186 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
1187 fold_stmt returned true.
1188
1189 2017-06-30 Nathan Sidwell <nathan@acm.org>
1190
1191 * ggc.h (empty_string): Delete.
1192 * cfgexpand.c (expand_asm_stmt): Use plain "".
1193 * optabs.c (expand_asm_memory_barrier): Likewise.
1194 * stringpool.c (empty_string): Delete.
1195 (digit_vector, digit_string): Delete.
1196 (ggc_alloc_string): Use plain "", don't optimize single digit
1197 strings. Use ggc_alloc_atomic.
1198
1199 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
1200
1201 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
1202 comparison set and one other set, use the cost of the non-comparison
1203 set.
1204
1205 2017-06-30 Nathan Sidwell <nathan@acm.org>
1206
1207 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
1208 some formatting.
1209
1210 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
1211
1212 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
1213 loops. Remove now unneeded calls to gimple_switch_set_label() that
1214 just set removed labels to NULL_TREE.
1215
1216 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
1217
1218 * tree-ssanames.c (set_range_info_raw): Abstract from ...
1219 (set_range_info): ...here. Only call set_range_info_raw if domain
1220 is useful.
1221 (set_nonzero_bits): Call set_range_info_raw.
1222 * tree-ssanames.h (set_range_info_raw): New.
1223
1224 2017-06-30 Jakub Jelinek <jakub@redhat.com>
1225
1226 PR target/81225
1227 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
1228 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
1229 of nonimmediate_operand and <store_mask_constraint> instead of m
1230 for the input operand. For V8FI iterator, always split if input
1231 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
1232 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
1233 <store_mask_predicate> instead of register_operand and
1234 <store_mask_constraint> instead of v for the input operand. Make
1235 sure both operands aren't MEMs for if not <mask_applied>.
1236
1237 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
1238
1239 * lto-wrapper.c (copy_file) Close both file descriptors before
1240 exiting normally.
1241
1242 2017-06-30 Martin Liska <mliska@suse.cz>
1243
1244 PR ipa/81214
1245 * multiple_target.c (create_dispatcher_calls): Make ifunc
1246 also for function that don't have calls or are not referenced.
1247
1248 2017-06-30 Richard Biener <rguenther@suse.de>
1249
1250 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
1251 analyze the first scalar stmt. Move vector type computation
1252 for the BB case here from ...
1253 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
1254 live operation processing in the SLP case properly.
1255
1256 2017-06-30 Richard Biener <rguenther@suse.de>
1257
1258 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
1259
1260 2017-06-30 Martin Liska <mliska@suse.cz>
1261
1262 PR sanitizer/81021
1263 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
1264 before BUILT_IN_UNWIND_RESUME when ASAN is used.
1265
1266 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
1267
1268 * doc/invoke.texi (AArch64): Add missing options and remove redundant
1269 ones.
1270
1271 2017-06-30 Richard Biener <rguenther@suse.de>
1272
1273 PR tree-optimization/81249
1274 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
1275 condition reduction result to original scalar type.
1276
1277 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1278
1279 * profile-count.h (enum profile_quality): Fix typos and whitespace
1280 issues.
1281
1282 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1283
1284 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
1285 type for branch probabilities.
1286
1287 2017-06-29 Julian Brown <julian@codesourcery.com>
1288 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
1289
1290 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
1291 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
1292 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
1293 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
1294
1295 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
1296
1297 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
1298 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
1299 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
1300 CC usage from generic code to here.
1301 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
1302 CC usage into the target macros.
1303
1304 2017-06-29 Maya Rashish <coypu@sdf.org>
1305
1306 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
1307 objects.
1308
1309 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
1310
1311 * arm/arm-builtins.c: Include profile-count.h
1312 * except.c (sjlj_emit_function_enter): Use
1313 profile_probability::unlikely.
1314
1315 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1316
1317 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
1318 and tocrel_offset be pointer args rather than implicitly using
1319 static versions.
1320 (legitimate_constant_pool_address_p, rs6000_emit_move,
1321 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
1322 tocrel_offset and use in toc_relative_expr_p call.
1323 (print_operand, print_operand_address): Use static tocrel_base_oac
1324 and tocrel_offset_oac.
1325 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
1326 tocrel_offset_oac.
1327
1328 2017-06-29 Maya Rashish <coypu@sdf.org>
1329
1330 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
1331
1332 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
1333
1334 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
1335 objects, take into account only the alignment of 'op0' and 'mode1' if
1336 'op0' is a MEM.
1337
1338 2017-06-29 Steve Ellcey <sellcey@cavium.com>
1339
1340 * ccmp.c (ccmp_tree_comparison_p): New function.
1341 (ccmp_candidate_p): Update to use above function.
1342 (get_compare_parts): New function.
1343 (expand_ccmp_next): Update to use new functions.
1344 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
1345 new functions.
1346 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
1347 take mode as argument.
1348 * ccmp.h (expand_ccmp_expr): Add mode as argument.
1349 * expr.c (expand_expr_real_1): Pass mode as argument.
1350
1351 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
1352
1353 * combine.c (combine_instructions): Print insns to dump_file, together
1354 with their costs.
1355
1356 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
1357
1358 * asan.c (asan_emit_stack_protection): Update.
1359 (create_cond_insert_point): Update.
1360 * auto-profile.c (afdo_propagate_circuit): Update.
1361 * basic-block.h (struct edge_def): Turn probability to
1362 profile_probability.
1363 (EDGE_FREQUENCY): Update.
1364 * bb-reorder.c (find_traces_1_round): Update.
1365 (better_edge_p): Update.
1366 (sanitize_hot_paths): Update.
1367 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
1368 (make_single_succ_edge): Update.
1369 (check_bb_profile): Update.
1370 (dump_edge_info): Update.
1371 (update_bb_profile_for_threading): Update.
1372 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
1373 probabilitycount to 0.
1374 * cfgbuild.c (compute_outgoing_frequencies): Update.
1375 * cfgcleanup.c (try_forward_edges): Update.
1376 (outgoing_edges_match): Update.
1377 (try_crossjump_to_edge): Update.
1378 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
1379 (expand_gimple_tailcall): Update.
1380 (construct_init_block): Use make_single_succ_edge.
1381 (construct_exit_block): Use make_single_succ_edge.
1382 * cfghooks.c (verify_flow_info): Update.
1383 (redirect_edge_succ_nodup): Update.
1384 (split_edge): Update.
1385 (account_profile_record): Update.
1386 * cfgloopanal.c (single_likely_exit): Update.
1387 * cfgloopmanip.c (scale_loop_profile): Update.
1388 (set_zero_probability): Remove.
1389 (duplicate_loop_to_header_edge): Update.
1390 * cfgloopmanip.h (loop_version): Update prototype.
1391 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
1392 (force_nonfallthru_and_redirect): Update.
1393 (update_br_prob_note): Update.
1394 (rtl_verify_edges): Update.
1395 (purge_dead_edges): Update.
1396 (rtl_lv_add_condition_to_bb): Update.
1397 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
1398 * cgraphunit.c (init_lowered_empty_function): Update.
1399 (cgraph_node::expand_thunk): Update.
1400 * cilk-common.c: Include profile-count.h
1401 * dojump.c (inv): Remove.
1402 (jumpifnot): Update.
1403 (jumpifnot_1): Update.
1404 (do_jump_1): Update.
1405 (do_jump): Update.
1406 (do_jump_by_parts_greater_rtx): Update.
1407 (do_compare_rtx_and_jump): Update.
1408 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
1409 do_jump_1. do_compare_rtx_and_jump): Update prototype.
1410 * dwarf2cfi.c: Include profile-count.h
1411 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
1412 (sjlj_emit_dispatch_table): Likewise.
1413 * explow.c: Include profile-count.h
1414 * expmed.c (emit_store_flag_force): Update.
1415 (do_cmp_and_jump): Update.
1416 * expr.c (compare_by_pieces_d::generate): Update.
1417 (compare_by_pieces_d::finish_mode): Update.
1418 (emit_block_move_via_loop): Update.
1419 (store_expr_with_bounds): Update.
1420 (store_constructor): Update.
1421 (expand_expr_real_2): Update.
1422 (expand_expr_real_1): Update.
1423 * expr.h (try_casesi, try_tablejump): Update prototypes.
1424 * gimple-pretty-print.c (dump_probability): Update.
1425 (dump_profile): New.
1426 (dump_gimple_label): Update.
1427 (dump_gimple_bb_header): Update.
1428 * graph.c (draw_cfg_node_succ_edges): Update.
1429 * hsa-gen.c (convert_switch_statements): Update.
1430 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
1431 (find_if_case_1): Update.
1432 (find_if_case_2): Update.
1433 * internal-fn.c (expand_arith_overflow_result_store): Update.
1434 (expand_addsub_overflow): Update.
1435 (expand_neg_overflow): Update.
1436 (expand_mul_overflow): Update.
1437 (expand_vector_ubsan_overflow): Update.
1438 * ipa-cp.c (good_cloning_opportunity_p): Update.
1439 * ipa-split.c (split_function): Use make_single_succ_edge.
1440 * ipa-utils.c (ipa_merge_profiles): Update.
1441 * loop-doloop.c (add_test): Update.
1442 (doloop_modify): Update.
1443 * loop-unroll.c (compare_and_jump_seq): Update.
1444 (unroll_loop_runtime_iterations): Update.
1445 * lra-constraints.c (lra_inheritance): Update.
1446 * lto-streamer-in.c (input_cfg): Update.
1447 * lto-streamer-out.c (output_cfg): Update.
1448 * mcf.c (adjust_cfg_counts): Update.
1449 * modulo-sched.c (sms_schedule): Update.
1450 * omp-expand.c (expand_omp_for_init_counts): Update.
1451 (extract_omp_for_update_vars): Update.
1452 (expand_omp_ordered_sink): Update.
1453 (expand_omp_for_ordered_loops): Update.
1454 (expand_omp_for_generic): Update.
1455 (expand_omp_for_static_nochunk): Update.
1456 (expand_omp_for_static_chunk): Update.
1457 (expand_cilk_for): Update.
1458 (expand_omp_simd): Update.
1459 (expand_omp_taskloop_for_outer): Update.
1460 (expand_omp_taskloop_for_inner): Update.
1461 * omp-simd-clone.c (simd_clone_adjust): Update.
1462 * optabs.c (expand_doubleword_shift): Update.
1463 (expand_abs): Update.
1464 (emit_cmp_and_jump_insn_1): Update.
1465 (expand_compare_and_swap_loop): Update.
1466 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
1467 * predict.c (predictable_edge_p): Update.
1468 (edge_probability_reliable_p): Update.
1469 (set_even_probabilities): Update.
1470 (combine_predictions_for_insn): Update.
1471 (combine_predictions_for_bb): Update.
1472 (propagate_freq): Update.
1473 (estimate_bb_frequencies): Update.
1474 (force_edge_cold): Update.
1475 * profile-count.c (profile_count::dump): Add missing space into dump.
1476 (profile_count::debug): Add newline.
1477 (profile_count::differs_from_p): Explicitly convert to unsigned.
1478 (profile_count::stream_in): Update.
1479 (profile_probability::dump): New member function.
1480 (profile_probability::debug): New member function.
1481 (profile_probability::differs_from_p): New member function.
1482 (profile_probability::differs_lot_from_p): New member function.
1483 (profile_probability::stream_in): New member function.
1484 (profile_probability::stream_out): New member function.
1485 * profile-count.h (profile_count_quality): Rename to ...
1486 (profile_quality): ... this one.
1487 (profile_probability): New.
1488 (profile_count): Update.
1489 * profile.c (compute_branch_probabilities): Update.
1490 * recog.c (peep2_attempt): Update.
1491 * sched-ebb.c (schedule_ebbs): Update.
1492 * sched-rgn.c (find_single_block_region): Update.
1493 (compute_dom_prob_ps): Update.
1494 (schedule_region): Update.
1495 * sel-sched-ir.c (compute_succs_info): Update.
1496 * stmt.c (struct case_node): Update.
1497 (do_jump_if_equal): Update.
1498 (get_outgoing_edge_probs): Update.
1499 (conditional_probability): Update.
1500 (emit_case_dispatch_table): Update.
1501 (expand_case): Update.
1502 (expand_sjlj_dispatch_table): Update.
1503 (emit_case_nodes): Update.
1504 * targhooks.c: Update.
1505 * tracer.c (better_p): Update.
1506 (find_best_successor): Update.
1507 * trans-mem.c (expand_transaction): Update.
1508 * tree-call-cdce.c: Update.
1509 * tree-cfg.c (gimple_split_edge): Upate.
1510 (move_sese_region_to_fn): Upate.
1511 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
1512 * tree-eh.c (lower_resx): Upate.
1513 (cleanup_empty_eh_move_lp): Upate.
1514 * tree-if-conv.c (version_loop_for_if_conversion): Update.
1515 * tree-inline.c (copy_edges_for_bb): Update.
1516 (copy_cfg_body): Update.
1517 * tree-parloops.c (gen_parallel_loop): Update.
1518 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
1519 (gimple_gen_time_profiler): Update.
1520 * tree-ssa-dce.c (remove_dead_stmt): Update.
1521 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
1522 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
1523 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
1524 (unloop_loops): Update.
1525 (try_peel_loop): Update.
1526 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
1527 * tree-ssa-loop-split.c (connect_loops): Update.
1528 (split_loop): Update.
1529 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
1530 (hoist_guard): Update.
1531 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
1532 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
1533 (value_replacement): Update.
1534 * tree-ssa-reassoc.c (branch_fixup): Update.
1535 * tree-ssa-tail-merge.c (replace_block_by): Update.
1536 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
1537 (create_edge_and_update_destination_phis): Update.
1538 (compute_path_counts): Update.
1539 (recompute_probabilities): Update.
1540 (update_joiner_offpath_counts): Update.
1541 (freqs_to_counts_path): Update.
1542 (duplicate_thread_path): Update.
1543 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
1544 (struct switch_conv_info): Update.
1545 (gen_inbound_check): Update.
1546 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
1547 (vect_do_peeling): Update.
1548 (vect_loop_versioning): Update.
1549 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
1550 (optimize_mask_stores): Update.
1551 * ubsan.c (ubsan_expand_null_ifn): Update.
1552 * value-prof.c (gimple_divmod_fixed_value): Update.
1553 (gimple_divmod_fixed_value_transform): Update.
1554 (gimple_mod_pow2): Update.
1555 (gimple_mod_pow2_value_transform): Update.
1556 (gimple_mod_subtract): Update.
1557 (gimple_mod_subtract_transform): Update.
1558 (gimple_ic): Update.
1559 (gimple_stringop_fixed_value): Update.
1560 (gimple_stringops_transform): Update.
1561 * value-prof.h: Update.
1562
1563 2017-06-29 Carl Love <cel@us.ibm.com>
1564
1565 * config/rs6000/rs6000-c.c: Add support for built-in functions
1566 vector signed int vec_signed (vector float);
1567 vector signed long long vec_signed (vector double);
1568 vector signed int vec_signed2 (vector double, vector double);
1569 vector signed int vec_signede (vector double);
1570 vector signed int vec_signedo (vector double);
1571 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
1572 instruction generator.
1573 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
1574 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
1575 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
1576 Add define_insn.
1577 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
1578 vunsignede_v2df): Add define_expands.
1579 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
1580 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
1581 VEC_UNSIGNEDO): Add definitions.
1582 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
1583 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
1584 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
1585 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
1586 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
1587 * config/rs6000/altivec.h (vec_signed, vec_signed2,
1588 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
1589 vec_unsignede, vec_unsignedo): Add builtin defines.
1590 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
1591 declaration.
1592 * doc/extend.texi: Update the built-in documentation file for the
1593 new built-in functions.
1594
1595 2017-06-29 Richard Biener <rguenther@suse.de>
1596
1597 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
1598 reduction chains to LOOP_VINFO_REDUCTIONS.
1599 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
1600 SLP reductions after processing reduction chains.
1601
1602 2017-06-29 Nathan Sidwell <nathan@acm.org>
1603
1604 * builtins.c (fold_builtin_FUNCTION): Use
1605 lang_hooks.decl_printable_name.
1606
1607 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
1608
1609 PR middle-end/81194
1610 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
1611 with only one label.
1612 * stmt.c (expand_case): Assert NCASES is greater than one.
1613
1614 2017-06-29 Richard Biener <rguenther@suse.de>
1615
1616 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
1617 anything.
1618 (group_case_labels): Likewise.
1619 (find_taken_edge): Push sanity checking on val to workers...
1620 (find_taken_edge_cond_expr): ... here
1621 (find_taken_edge_switch_expr): ... and here, handle cases
1622 with just a default label.
1623 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
1624 (group_case_labels): Likewise.
1625 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
1626 group_case_labels does anything cleanup the CFG again.
1627
1628 2017-06-29 Bin Cheng <bin.cheng@arm.com>
1629
1630 PR tree-optimization/81196
1631 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
1632 exit condition comparing two IVs.
1633
1634 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
1635
1636 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
1637 profile to the dummy entry at the end of the list of architectures.
1638 * config/arm/arm-cpu-cdata.h: Regenerated.
1639
1640 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1641 Michael Collison <michael.collison@arm.com>
1642
1643 PR target/70119
1644 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
1645 New pattern.
1646 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
1647 (*aarch64_reg_<mode>3_minus_mask): New pattern.
1648 (*aarch64_<optab>_reg_di3_mask2): New pattern.
1649 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
1650 of shift when the shift amount is masked with constant equal to
1651 the size of the mode.
1652 * config/aarch64/predicates.md (subreg_lowpart_operator): New
1653 predicate.
1654
1655 2017-06-29 Martin Liska <mliska@suse.cz>
1656
1657 * config/i386/i386.opt: Change range from [1,5] to [0,5].
1658
1659 2017-06-29 Yury Gribov <tetra2005@gmail.com>
1660
1661 PR bootstrap/80565
1662 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
1663 code.
1664 * ipa-inline.h
1665 (edge_growth_cache_entry::edge_growth_cache_entry): New
1666 function.
1667 (reset_edge_growth_cache): Update to use constructor.
1668
1669 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1670
1671 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
1672 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
1673 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
1674
1675 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
1676
1677 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
1678 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
1679
1680 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
1681
1682 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
1683 (*-linux-uclibc*): Add t-uclibc tmake_file.
1684 * config/t-musl: New.
1685 * config/t-uclibc: New.
1686
1687 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
1688
1689 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
1690 context.
1691 (gen_comm_data): Emit architectural setting of arch_prof.
1692 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
1693 profile.
1694 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
1695 (armv8-m.base, armv8-m.main): Likewise.
1696 * arm-protos.h (arm_build_target): Add profile field.
1697 (arch_option): Likewise.
1698 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
1699 the active target.
1700 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
1701 arm_active_target.profile.
1702
1703 2017-06-28 Richard Biener <rguenther@suse.de>
1704
1705 PR middle-end/81227
1706 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
1707 TYPE_OVERFLOW_WRAPS.
1708 * match.pd (negate_expr_p): Likewise.
1709 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
1710 fold_build2, not fold_binary.
1711
1712 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
1713
1714 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
1715 Convert memory address to Pmode.
1716 (aarch64_print_operand): Assert MEM operands are always Pmode.
1717
1718 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
1719
1720 PR target/79665
1721 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
1722 Remove redundant if.
1723 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
1724 * config/arm/aarch-common-protos.h
1725 (aarch_forward_to_shift_is_not_shifted_re): Remove.
1726 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
1727
1728 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
1729
1730 PR ipa/81238
1731 * multiple_target.c (create_dispatcher_calls): Set the default
1732 clone to be static, not public.
1733
1734 2017-06-28 Richard Biener <rguenther@suse.de>
1735
1736 * tree-vect-loop.c (vectorizable_reduction): Move special
1737 cond reduction IV var creation ...
1738 (vect_create_epilog_for_reduction): ... here. Remove induction_index
1739 parameter. Use STMT_VINFO_VECTYPE.
1740 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
1741 constant_p.
1742
1743 2017-06-28 Martin Liska <mliska@suse.cz>
1744
1745 PR ipa/81128
1746 * ipa-visibility.c (non_local_p): Handle visibility.
1747
1748 2017-06-28 Martin Liska <mliska@suse.cz>
1749
1750 PR driver/79659
1751 * common.opt: Add IntegerRange to various options.
1752 * opt-functions.awk (integer_range_info): New function.
1753 * optc-gen.awk: Add integer_range_info to cl_options struct.
1754 * opts-common.c (decode_cmdline_option): Handle
1755 CL_ERR_INT_RANGE_ARG.
1756 (cmdline_handle_error): Likewise.
1757 * opts.c (print_filtered_help): Show valid interval in
1758 when --help is provided.
1759 * opts.h (struct cl_option): Add range_min and range_max fields.
1760 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
1761
1762 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
1763
1764 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
1765 (x * C EQ/NE y * C): New transformation.
1766
1767 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
1768
1769 * genmultilib (combination_space): Accept '+' in option names.
1770
1771 2017-06-28 Martin Liska <mliska@suse.cz>
1772
1773 PR sanitizer/81224
1774 * asan.c (instrument_derefs): Bail out inner references
1775 that are hard register variables.
1776
1777 2017-06-28 Jakub Jelinek <jakub@redhat.com>
1778
1779 PR target/81175
1780 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
1781 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
1782
1783 2017-06-28 Richard Biener <rguenther@suse.de>
1784
1785 * tree-vectorizer.h (vect_get_vec_defs): Remove.
1786 (vect_get_slp_defs): Adjust.
1787 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
1788 out from ...
1789 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
1790 simplify.
1791 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
1792 get_initial_defs_for_reduction instead of vect_get_vec_defs.
1793 (vectorizable_reduction): Adjust.
1794 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
1795 handling.
1796 (vect_get_slp_defs): Likewise.
1797 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
1798 (vectorizable_bswap): Adjust.
1799 (vectorizable_call): Likewise.
1800 (vectorizable_conversion): Likewise.
1801 (vectorizable_assignment): Likewise.
1802 (vectorizable_shift): Likewise.
1803 (vectorizable_operation): Likewise.
1804 (vectorizable_store): Likewise.
1805 (vectorizable_condition): Likewise.
1806 (vectorizable_comparison): Likewise.
1807
1808 2017-06-28 Michael Collison <michael.collison@arm.com>
1809
1810 PR target/68535
1811 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
1812 set of base_reg
1813 (arm_gen_movmemqi): Removed unused variable 'i'.
1814 Convert 'for' loop into 'while' loop.
1815 (arm_expand_prologue): Remove last unnecessary set of insn.
1816 (thumb_pop): Remove unused variable 'pushed_words'.
1817 (thumb_exit): Remove last unnecessary set of regs_to_pop.
1818
1819 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1820
1821 * config/s390/predicates.md: Use s390_rel_address_ok_p.
1822 * config/s390/s390-protos.h: Add prototype of
1823 s390_rel_address_ok_p.
1824 * config/s390/s390.c (s390_got_symbol): New function.
1825 (s390_rel_address_ok_p): New function.
1826 (legitimize_pic_address): Use s390_rel_address_ok_p.
1827 (s390_load_got): Use s390_got_symbol.
1828 (s390_option_override): Issue error if
1829 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
1830 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
1831 New macro.
1832 * config/s390/s390.opt: New option mpic-data-is-text-relative.
1833
1834 2017-06-27 Andrew Pinski <apinski@cavium.com>
1835
1836 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
1837 (X * copysign (1.0, X)): New pattern.
1838 (X * copysign (1.0, -X)): New pattern.
1839 (copysign (-1.0, CST)): New pattern.
1840
1841 2017-06-27 Joseph Myers <joseph@codesourcery.com>
1842
1843 * genmultilib (combination_space): Remove variable.
1844 Validate reuse rules against regular expression for any sequence
1845 of multilib options in any order.
1846
1847 2017-06-27 Michael Collison <michael.collison@arm.com>
1848
1849 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
1850 call aarch64_split_simd_combine.
1851 * (aarch64_combine_internal<mode>): Delete pattern.
1852 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
1853 Allow register and subreg operands.
1854
1855 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1856
1857 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
1858 specific need, just fallback on defaults.
1859 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
1860
1861 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1862 Olivier Hainque <hainque@adacore.com>
1863
1864 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
1865 map for 64bits.
1866 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
1867 targets. Pick a default if no particular attempt applied.
1868 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
1869 larger contexts.
1870
1871 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1872
1873 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
1874 (x86_64-wrs-vxworks7): Likewise.
1875
1876 2017-06-27 Marek Polacek <polacek@redhat.com>
1877
1878 PR sanitizer/81223
1879 * ubsan.c (instrument_null): Check get_base_address's result for null.
1880
1881 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
1882
1883 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
1884
1885 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
1886
1887 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
1888 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
1889 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
1890 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
1891 New function types.
1892 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
1893 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
1894 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
1895 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
1896 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
1897 BUILT_IN_FEUPDATEENV): New builtins.
1898 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
1899 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
1900 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
1901 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
1902 macros.
1903 (builtin_structptr_types): Adjust size.
1904 * tree.c (builtin_structptr_types): Add four entries.
1905
1906 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1907 Olivier Hainque <hainque@adacore.com>
1908
1909 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
1910 (TLS_SYM): New local macro, forcing reference to __tls__ on
1911 link command lines for VxWorks 7 RTPs, triggering initialization
1912 of tlsLib.
1913 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
1914 OS features TLS support, true for RTPs on VxWorks 7.
1915 * config/vxworks.c (vxworks_override_options): Setup emutls
1916 accordingly.
1917
1918 2017-06-27 Jakub Jelinek <jakub@redhat.com>
1919
1920 * predict.c (test_prediction_value_range): Use -1U instead of -1
1921 to avoid narrowing conversion warning.
1922 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
1923 to avoid narrowing conversion warning.
1924 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
1925 -1.
1926 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
1927
1928 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1929
1930 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
1931 64bit configurations.
1932 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
1933 (SIZE_TYPE): Likewise.
1934 * config/vxworks.c (vxworks_emutls_var_fields): Use
1935 long_unsigned_type_node instead of unsigned_type_node as the offset
1936 field type, which is "pointer" mode in emutls.c.
1937
1938 2017-06-27 Jakub Jelinek <jakub@redhat.com>
1939
1940 PR sanitizer/81209
1941 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
1942
1943 PR middle-end/81207
1944 * gimple-fold.c (replace_call_with_call_and_fold): Handle
1945 gimple_vuse copying separately from gimple_vdef copying.
1946
1947 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1948
1949 * value-prof.c (free_hist): Remove call to memset and the enclosing if
1950 condition.
1951
1952 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
1953 Olivier Hainque <hainque@adacore.com>
1954
1955 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
1956 for all vxworks7 targets.
1957 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
1958 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
1959 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
1960 variations for VX6/VX7 and 32/64bits later on in ...
1961 (VXWORKS_LIB_SPEC): Leverage new macros.
1962 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
1963 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
1964
1965 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
1966
1967 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
1968 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
1969
1970 2017-06-26 Carl Love <cel@us.ibm.com>
1971
1972 * config/rs6000/rs6000-c.c: Add support for built-in functions
1973 vector bool char vec_reve (vector bool char);
1974 vector signed char vec_reve (vector signed char);
1975 vector unsigned char vec_reve (vector unsigned char);
1976 vector bool int vec_reve (vector bool int);
1977 vector signed int vec_reve (vector signed int);
1978 vector unsigned int vec_reve (vector unsigned int);
1979 vector bool long long vec_reve (vector bool long long);
1980 vector signed long long vec_reve (vector signed long long);
1981 vector unsigned long long vec_reve (vector unsigned long long);
1982 vector bool short vec_reve (vector bool short);
1983 vector signed short vec_reve (vector signed short);
1984 vector double vec_reve (vector double);
1985 vector float vec_reve (vector float);
1986 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
1987 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
1988 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
1989 (altivec_vreve): New pattern.
1990 * config/rs6000/altivec.h (vec_reve): New define.
1991 * doc/extend.texi (vec_rev): Update the built-in documentation file
1992 for the new built-in functions.
1993
1994 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1995
1996 PR tree-optimization/71815
1997 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
1998 function.
1999 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
2000 has_single_use.
2001 (slsr_process_phi): Likewise.
2002 (replace_uncond_cands_and_profitable_phis): Don't replace a
2003 multiply candidate with a stride of 1 (copy or cast).
2004 (phi_incr_cost): Call uses_consumed_by_stmt rather than
2005 has_single_use.
2006 (lowest_cost_path): Likewise.
2007 (total_savings): Likewise.
2008
2009 2017-06-26 Richard Biener <rguenther@suse.de>
2010
2011 PR target/81175
2012 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
2013 Use def_builtin_pure for all gather builtins.
2014
2015 2017-06-26 Richard Biener <rguenther@suse.de>
2016
2017 PR tree-optimization/81203
2018 * tree-tailcall.c (find_tail_calls): Do not move stmts into
2019 non-dominating BBs.
2020
2021 2017-06-26 Marek Polacek <polacek@redhat.com>
2022
2023 PR c/80116
2024 * doc/invoke.texi: Document -Wmultistatement-macros.
2025
2026 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
2027
2028 * doc/sourcebuild.texi (ARM-specific attributes): Document new
2029 arm_neon_ok_no_float_abi effective target.
2030
2031 2017-06-26 Richard Biener <rguenther@suse.de>
2032
2033 PR tree-optimization/80928
2034 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
2035 (copy_bbs): Set BB_DUPLICATED flag early.
2036 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
2037 marked blocks.
2038 (execute_on_shrinking_pred): Likewise.
2039 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
2040 BB_DUPLICATED blocks.
2041 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
2042 iterate over all PHIs considering removal of *gsi.
2043
2044 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
2045
2046 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
2047 qdf24xx.
2048
2049 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2050
2051 * config/rs6000/rs6000-string.c: (expand_block_clear,
2052 do_load_for_compare, select_block_compare_mode,
2053 compute_current_alignment, expand_block_compare,
2054 expand_strncmp_align_check, expand_strn_compare,
2055 expand_block_move, rs6000_output_load_multiple)
2056 Move functions related to string/block move/compare
2057 to a separate file.
2058 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
2059 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
2060 for this function which is now used in two files.
2061 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
2062 * config.gcc: Add rs6000-string.o to extra_objs for
2063 targets powerpc*-*-* and rs6000*-*-*.
2064
2065 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2066
2067 PR target/80510
2068 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
2069 32-bit, since indexed is not valid for DImode.
2070 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
2071 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
2072 (define_peephole2 for Altivec d-form load): Add 32-bit support.
2073 (define_peephole2 for Altivec d-form store): Likewise.
2074
2075 PR ipa/81185
2076 * multiple_target.c (create_dispatcher_calls): Only create the
2077 dispatcher call if the function is the default clone of a
2078 versioned function.
2079
2080 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
2081
2082 PR middle-end/80902
2083 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
2084 a call, force the call to not be a tail call.
2085
2086 2017-06-23 Jeff Law <law@redhat.com>
2087
2088 * doc/contrib.texi: Add entry for Steven Pemberton's work on
2089 enquire.
2090
2091 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
2092
2093 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
2094 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
2095 handling for early expansion of vector shifts (sl,sr,sra,rl).
2096 (builtin_function_type): Add vector shift right instructions
2097 to the unsigned argument list.
2098
2099 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
2100
2101 rtl-optimizatoin/79286
2102 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
2103 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
2104 trap. PIC register plus a const unspec without offset can never trap.
2105
2106 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
2107
2108 * tree.h (builtin_structptr_type): New type.
2109 (builtin_structptr_types): Declare new array.
2110 * tree.c (builtin_structptr_types): New array.
2111 (free_lang_data, build_common_tree_nodes): Use it.
2112
2113 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
2114
2115 PR c++/81187
2116 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
2117 -Wnoexcept.
2118
2119 2017-06-22 Matt Turner <mattst88@gmail.com>
2120
2121 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
2122 Lake models to skylake case. Assume skylake for unknown
2123 models with clflushopt.
2124
2125 2017-06-22 Jeff Law <law@redhat.com>
2126
2127 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
2128 frame sizes that do not satisfy aarch64_uimm12_shift.
2129
2130 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
2131
2132 * profile-count.h (apply_probability,
2133 apply_scale, probability_in): Fix checks for zero.
2134
2135 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2136
2137 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
2138 * doc/cppdiropts.texi (-I @var{dir}): Document it.
2139
2140 2016-06-22 Richard Biener <rguenther@suse.de>
2141
2142 * tree-vect-loop.c (vect_model_reduction_cost): Handle
2143 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
2144 REDUC_MAX_EXPR support.
2145 (vectorizable_reduction): Likewise.
2146 (vect_create_epilog_for_reduction): Likewise.
2147
2148 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
2149
2150 * match.pd (A / (1 << B) -> A >> B): New.
2151 * generic-match-head.c: Include optabs-tree.h.
2152 * gimple-match-head.c: Likewise.
2153 * optabs-tree.h (target_supports_op_p): New.
2154 * optabs-tree.c (target_supports_op_p): New.
2155
2156 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2157
2158 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
2159 $gcc_cv_ld --help output.
2160 (gcc_cv_ld_demangle): Likewise.
2161 (gcc_cv_ld_eh_frame_hdr): Likewise.
2162 (gcc_cv_ld_pie): Likewise.
2163 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
2164 (gcc_cv_ld_buildid): Likewise.
2165 (gcc_cv_ld_sysroot): Likewise.
2166 (ld_bndplt_support): Likewise.
2167 (ld_pushpopstate_support): Likewise.
2168 * configure: Regenerate.
2169 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
2170
2171 2017-06-21 Jakub Jelinek <jakub@redhat.com>
2172
2173 PR target/81151
2174 * config/i386/sse.md (round<mode>2): Renumber match_dup and
2175 operands indexes to avoid gap between operands and match_dups.
2176
2177 2017-06-21 Andrew Pinski <apinski@cavium.com>
2178
2179 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
2180 Increment Arith_shift and Arith_shift_reg by 1.
2181 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
2182 New tuning flag.
2183 * config/aarch64/aarch64.c (thunderx_tunings): Enable
2184 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
2185 (aarch64_strip_extend): Add new argument and test for it.
2186 (aarch64_cheap_mult_shift_p): New function.
2187 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
2188 add a cost if it is true.
2189 Update calls to aarch64_strip_extend.
2190 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
2191
2192 2017-06-21 Andrew Pinski <apinski@cavium.com>
2193
2194 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
2195 tunings.
2196 (thunderxt88): Likewise.
2197 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
2198 (thunderx_prefetch_tune): New variable.
2199 (thunderx2t99_prefetch_tune): Update for the correct values.
2200 (thunderxt88_tunings): New variable.
2201 (thunderx_tunings): Use thunderx_prefetch_tune instead of
2202 generic_prefetch_tune.
2203 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
2204
2205 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2206
2207 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
2208 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
2209 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
2210 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
2211 (aarch64_atomic_cas<mode>, GPI): Likewise.
2212
2213 2017-06-21 Martin Liska <mliska@suse.cz>
2214
2215 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
2216 statements on cold and hot labels.
2217 * predict.c (tree_estimate_probability_bb): Remove the
2218 prediction from this place.
2219
2220 2017-06-21 Martin Liska <mliska@suse.cz>
2221
2222 PR tree-optimization/79489
2223 * gimplify.c (maybe_add_early_return_predict_stmt): New
2224 function.
2225 (gimplify_return_expr): Call the function.
2226 * predict.c (tree_estimate_probability_bb): Remove handling
2227 of early return.
2228 * predict.def: Update comment about early return predictor.
2229 * gimple-predict.h (is_gimple_predict): New function.
2230 * predict.def: Change default value of early return to 66.
2231 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
2232 statements.
2233 * passes.def: Put pass_strip_predict_hints to the beginning of
2234 IPA passes.
2235
2236 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
2237
2238 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
2239 FUNCTION_DECL declarations.
2240 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
2241 declarations.
2242 (dwaf2out_decl): Likewise.
2243 * godump.c (go_early_global_decl): Skip call to the real debug hook
2244 for FUNCTION_DECL declarations.
2245 * passes.c (rest_of_decl_compilation): Skip call to the
2246 early_global_decl debug hook for FUNCTION_DECL declarations, unless
2247 -fdump-go-spec is passed.
2248
2249 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
2250
2251 * config/i386/i386.c (struct builtin_isa): New field pure_p.
2252 Reorder for compactness.
2253 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
2254 (def_builtin_pure, def_builtin_pure2): New functions.
2255 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
2256
2257 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
2258
2259 * match.pd (nop_convert): New predicate.
2260 ((A +- CST1) +- CST2): Allow some NOP conversions.
2261
2262 2017-06-21 Jakub Jelinek <jakub@redhat.com>
2263
2264 PR c++/81130
2265 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
2266 with ctors/dtors if GOVD_SHARED is set.
2267
2268 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
2269
2270 * config/aarch64/aarch64.md (movti_aarch64):
2271 Emit mov rather than orr.
2272 (movtf_aarch64): Likewise.
2273 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
2274 Emit mov rather than orr.
2275
2276 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
2277
2278 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
2279 Swap alternatives, make integer dup more expensive.
2280
2281 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
2282
2283 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
2284 Return true for non-tls symbols.
2285
2286 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
2287
2288 * config/aarch64/aarch64-cores.def (cortex-a55): New.
2289 (cortex-a75): Likewise.
2290 (cortex-a75.cortex-a55): Likewise.
2291 * config/aarch64/aarch64-tune.md: Regenerate.
2292 * doc/invoke.texi (-mtune): Document new values for -mtune.
2293
2294 2017-06-21 Tom de Vries <tom@codesourcery.com>
2295
2296 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
2297 stack_size feature.
2298 (Effective-Target Keywords, Other attributes): Suggest using
2299 dg-add-options stack_size feature to get stack limit in stack_size
2300 effective target documentation.
2301
2302 2017-06-21 Julian Brown <julian@codesourcery.com>
2303 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
2304
2305 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
2306 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
2307 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
2308 reservation.
2309 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
2310 attribute type list for neon_multiply.
2311 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
2312 attribute type list for neon_multiply.
2313 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
2314 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
2315 attribute type list for neon_multiply.
2316 * config/arm/types.md (crypto_pmull): Add.
2317 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
2318 attribute type list.
2319
2320 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
2321
2322 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
2323 arm1176jzf-s.
2324
2325 2017-06-20 Jakub Jelinek <jakub@redhat.com>
2326
2327 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
2328 to make sure not to dereference a NULL cost_classes_ptr pointer.
2329
2330 2017-06-20 Carl Love <cel@us.ibm.com>
2331
2332 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2333 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
2334 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
2335 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
2336 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
2337 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
2338 VMULOSW): New enum "unspec" values.
2339 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
2340 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
2341 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
2342 altivec_vmulosw): New patterns.
2343 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
2344 VMULOSW): Add definitions.
2345
2346 2017-06-20 Julia Koval <julia.koval@intel.com>
2347
2348 * config/i386/i386.c: Fix rounding expand for new pattern.
2349 * config/i386/subst.md: Fix pattern (parallel -> unspec).
2350
2351 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
2352
2353 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
2354 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
2355
2356 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
2357
2358 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
2359 feature string.
2360
2361 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
2362
2363 * config/aarch64/aarch64-cores.def: Rearrange to sort by
2364 architecture, then by implementer ID.
2365 * config/aarch64/aarch64-tune.md: Regenerate.
2366
2367 2017-06-20 Richard Biener <rguenther@suse.de>
2368
2369 PR middle-end/81097
2370 * fold-const.c (split_tree): Fold to type before negating.
2371
2372 2017-06-20 David Malcolm <dmalcolm@redhat.com>
2373
2374 * diagnostic-show-locus.c
2375 (selftest::test_fixit_deletion_affecting_newline): New function.
2376 (selftest::diagnostic_show_locus_c_tests): Call it.
2377
2378 2017-06-20 Andreas Schwab <schwab@suse.de>
2379
2380 PR target/80970
2381 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
2382 instead of "+d".
2383
2384 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
2385
2386 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
2387 __ARM_FEATURE_COPROC according to support.
2388
2389 2017-06-20 Jakub Jelinek <jakub@redhat.com>
2390
2391 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
2392 Rewritten to avoid overflow for > 32-bit pointers.
2393
2394 PR sanitizer/81125
2395 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
2396 by removing enum keyword.
2397 (ubsan_type_descriptor): Likewise. Formatting fix.
2398
2399 PR target/81121
2400 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
2401 splitter): Require TARGET_SSE2 in the condition.
2402
2403 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2404
2405 PR target/79799
2406 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
2407 for doing vector set of SFmode on ISA 3.0.
2408 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
2409 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
2410 element.
2411 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
2412 SFmode value into a V4SF variable that was extracted from another
2413 V4SF variable without converting the element to double precision
2414 and back to single precision vector format.
2415 (vsx_insert_extract_v4sf_p9_2): Likewise.
2416
2417 2017-06-19 Jakub Jelinek <jakub@redhat.com>
2418
2419 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
2420 in UWHI to avoid undefined overflow.
2421
2422 PR sanitizer/81125
2423 * ubsan.h (enum ubsan_encode_value_phase): New.
2424 (ubsan_encode_value): Change second argument to
2425 enum ubsan_encode_value_phase with default value of
2426 UBSAN_ENCODE_VALUE_GENERIC.
2427 * ubsan.c (ubsan_encode_value): Change second argument to
2428 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
2429 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
2430 create_tmp_var_raw instead of create_tmp_var and use a
2431 TARGET_EXPR.
2432 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
2433 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
2434 ubsan_encode_value callers.
2435
2436 PR sanitizer/81111
2437 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
2438 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
2439 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
2440
2441 2017-06-19 Richard Biener <rguenther@suse.de>
2442
2443 PR middle-end/81118
2444 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
2445 estimates if we changed anything.
2446
2447 2017-06-19 Richard Biener <rguenther@suse.de>
2448
2449 PR tree-optimization/80887
2450 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
2451 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
2452 simplified lookups, then reset mprts_hook.
2453 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
2454 simplifying.
2455 (try_to_simplify): Likewise.
2456
2457 2017-06-19 Martin Liska <mliska@suse.cz>
2458
2459 PR sanitizer/80879
2460 * gimplify.c (gimplify_switch_expr):
2461 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
2462
2463 2017-06-19 Martin Liska <mliska@suse.cz>
2464
2465 * doc/install.texi: Document that PGO runs in 4 stages.
2466
2467 2017-06-19 Martin Liska <mliska@suse.cz>
2468
2469 PR ipa/80732
2470 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
2471 to dispatcher function name.
2472 * multiple_target.c (replace_function_decl): New function.
2473 (create_dispatcher_calls): Redirect both edges and references.
2474
2475 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
2476
2477 * profile-count.c (profile_count::dump): Dump quality.
2478 (profile_count::differs_from_p): Update for unsigned val.
2479 * profile-count.h (profile_count_quality): New enum.
2480 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
2481
2482 2017-06-19 Richard Biener <rguenther@suse.de>
2483
2484 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
2485 struct function as arg.
2486 (estimate_numbers_of_iterations): Export overload with loop arg.
2487 (free_numbers_of_iterations_estimates_loop): Use an overload of
2488 free_numbers_of_iterations_estimates instead.
2489 * tree-cfg.c (remove_bb): Adjust.
2490 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
2491 * tree-parloops.c (gen_parallel_loop): Likewise.
2492 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
2493 Likewise.
2494 (tree_unroll_loops_completely): Likewise.
2495 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2496 Use an overload instead and export.
2497 (estimated_loop_iterations): Adjust.
2498 (max_loop_iterations): Likewise.
2499 (likely_max_loop_iterations): Likewise.
2500 (estimate_numbers_of_iterations): Take struct function as arg
2501 and adjust.
2502 (loop_exits_before_overflow): Adjust.
2503 (free_numbers_of_iterations_estimates_loop): Use an overload.
2504 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
2505 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
2506
2507 2017-06-19 Richard Biener <rguenther@suse.de>
2508
2509 PR ipa/81112
2510 * ipa-prop.c (find_constructor_constant_at_offset): Handle
2511 RANGE_EXPR conservatively.
2512
2513 2017-06-16 Carl Love <cel@us.ibm.com>
2514
2515 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2516 definitions for vec_float, vec_float2, vec_floato,
2517 vec_floate built-ins.
2518 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
2519 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
2520 floate.
2521 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
2522 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
2523 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
2524 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
2525 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
2526 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
2527 vec_floato): Add builtin defines.
2528 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
2529 Update the built-in documentation file for the new built-in
2530 functions.
2531
2532 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2533
2534 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
2535 (mthumb): Mark as the negative of -marm.
2536
2537 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2538
2539 * doc/invoke.texi (ARM Options, -mcpu): Document supported
2540 extension options.
2541 (ARM Options, -mtune): Document that this accepts the same
2542 extension options as -mcpu.
2543 (ARM Options, -mfpu): Document addition of -mfpu=auto.
2544
2545 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2546
2547 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
2548 permitted extensions.
2549
2550 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2551
2552 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
2553 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
2554 (armv8-m.main): Add option +nodsp.
2555 * config/arm/arm-cpu-cdata.h: Regenerated.
2556
2557 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2558
2559 * config/arm/t-fuchsia: New file.
2560 * config.gcc (arm*-*-fuchsia*): Use it.
2561
2562 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2563
2564 * config/arm/t-symbian: Rewrite for new option infrastructure.
2565
2566 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2567
2568 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
2569 (MULTILIB_REQUIRED): Likewise.
2570
2571 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2572
2573 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
2574 (MULTILIB_RESUE): Likewise.
2575 (MULTILIB_MATCHES): Likewise.
2576 (MULTLIB_REQUIRED): Likewise.
2577
2578 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2579
2580 * config/arm/t-rtems: Rewrite for new option framework.
2581
2582 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2583
2584 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
2585 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
2586 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
2587 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
2588 * config/arm/t-multilib: ... here.
2589 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
2590 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
2591 armv7-a and armv8*-a when A-profile libraries have not been built.
2592 * config/arm/t-rmprofile: Rewrite.
2593
2594 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2595
2596 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
2597 with a backslash. Remove the backslash after substituting unescaped
2598 periods.
2599 * doc/fragments.texi (MULTILIB_REUSE): Document it.
2600
2601 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2602
2603 * config.gcc: (arm*-*-*): When building a-profile libraries, force
2604 the driver to pass through the default setting of -mfloat-abi.
2605 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
2606 rather than NULL.
2607 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
2608 (all_feat_combs): New rule.
2609 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
2610 default libraries.
2611 * config/arm/t-aprofile: Rewrite.
2612
2613 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2614
2615 * config/arm/arm.h (FPUTYPE_AUTO): Define.
2616 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
2617 fpu is not specified by the user/command-line.
2618 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
2619 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
2620 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
2621 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
2622 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
2623 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
2624
2625 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2626
2627 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
2628 * config/arm/t-arm-elf: Rewritten.
2629
2630 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2631
2632 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
2633 have some floating-point instructions.
2634 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
2635 (TARGET_MAYBE_HARD_FLOAT): New macro.
2636 * config/arm/arm-builtins.c (arm_init_builtins): Use
2637 TARGET_MAYBE_HARD_FLOAT.
2638 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
2639
2640 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2641
2642 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
2643 (configargs.h): Include it.
2644 (arm_print_hint_for_fpu_option): New function.
2645 (arm_parse_fpu_option): New function.
2646 (candidate_extension): New class.
2647 (arm_canon_for_multilib): New function.
2648 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
2649 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
2650 (ARCH_CANONICAL_SPECS): New macro.
2651 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
2652
2653 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2654
2655 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
2656 are set after handling multilib fragments. Set target_cpu_default2
2657 from with_cpu.
2658
2659 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2660
2661 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
2662 cpu name.
2663 (arm*-*-*): Set target_cpu_default2 to a quoted string.
2664 * config/arm/parsecpu.awk (check_cpu): Validate any extension
2665 options.
2666 (check_arch): Likewise.
2667 * config/arm/arm.c (arm_configure_build_target): Handle
2668 TARGET_CPU_DEFAULT being a string constant. Scan any feature
2669 options in the default.
2670
2671 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2672
2673 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
2674 when an option is an alias of another.
2675 * config/arm/parsecpu.awk (optalias): New parser token.
2676 (gen_comm_data): Mark non-alias options as such. Emit entries
2677 for extension aliases.
2678 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
2679 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
2680 (armv6kz, armv6zk, armv6t2): Likewise.
2681 (armv7): Make vfpv3-d16 an alias.
2682 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
2683 canonical order.
2684 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
2685 Sort in canonical order.
2686 (armv8-a): Sort in canonical order.
2687 (armv8.1-a, armv8.2-a): Likewise.
2688 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
2689 canonical order.
2690 (cortex-a9): Sort in canonical order.
2691 * config/arm/arm.c (selftests.h): Include it.
2692 (arm_test_cpu_arch_data): New function.
2693 (arm_run_self_tests): New function.
2694 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
2695 (targetm): Move declaration to the end of the file.
2696 * arm-cpu-cdata.h: Regenerated.
2697
2698 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2699
2700 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
2701 call to target_mode_check describing the type of option passed.
2702 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
2703 (arm_target_thumb_only): Use arm_parse_arch_option_name or
2704 arm_parse_cpu_option_name to match parameters against list of
2705 available targets.
2706 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
2707 arm_arch_core_flags data structure.
2708 * config/arm/arm-cpu_cdata.h: Regenerated.
2709
2710 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2711
2712 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
2713 config/arm/arm.c.
2714 (arm_print_hint_for_cpu_option): Likewise.
2715 (arm_print_hint_for_arch_option): Likewise.
2716 (arm_parse_cpu_option_name): Likewise.
2717 (arm_parse_arch_option_name): Likewise.
2718 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
2719 of entries in the all_fpus list.
2720 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
2721 (arm_parse_cpu_option_name): Declare.
2722 (arm_parse_arch_option_name): Declare.
2723 (arm_parse_option_features): Declare.
2724 (arm_intialize_isa): Declare.
2725 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
2726 data tables to ...
2727 (gen_comm_data): ... here. Make definitions non-static.
2728 * config/arm/arm-cpu-data.h: Regenerated.
2729 * config/arm/arm-cpu-cdata.h: Regenerated.
2730
2731 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2732
2733 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
2734 (cpu_arch_extension): New structure.
2735 (cpu_arch_option, arch_option, cpu_option): New structures.
2736 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
2737 architecture types.
2738 (gen_data): Generate new format data tables.
2739 * config/arm/arm.c (cpu_tune): New structure.
2740 (cpu_option, processors): Delete.
2741 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
2742 (arm_print_hint_for_cpu_option): ... this and ...
2743 (arm_print_hint_for_arch_option): ... this.
2744 (arm_parse_arch_cpu_name): Delete. Replace with ...
2745 (arm_parse_cpu_option_name): ... this and ...
2746 (arm_parse_arch_option_name): ... this.
2747 (arm_unrecognized_feature): Change type of target parameter to
2748 cpu_arch_option.
2749 (arm_parse_arch_cpu_features): Delete. Replace with ...
2750 (arm_parse_option_features): ... this.
2751 (arm_configure_build_target): Rework to use new configuration data
2752 tables.
2753 (arm_print_tune_info): Rework for new configuration data tables.
2754 * config/arm/arm-cpu-data.h: Regenerated.
2755 * config/arm/arm-cpu.h: Regenerated.
2756
2757 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2758
2759 * Makefile.in (OBJS): Move sbitmap.o from here ...
2760 (OBJS-libcommon): ... to here.
2761
2762 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2763
2764 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
2765 (ISA_ALL_CRYPTO): New macro.
2766 (ISA_ALL_SIMD): New macro
2767 (ISA_ALL_FP): New macro.
2768 * config/arm/arm.c (fpu_bitlist): Update initializer.
2769 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
2770 simd or fp.
2771 (arm9e): Add fpu. Add option for nofp
2772 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
2773 (arm926ej-s, arm1026ej-s): Likewise.
2774 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
2775 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
2776 neon-fp16, neon-vfpv4, nofp and nosimd.
2777 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
2778 (cortex-a8): Add fpu. Add option for nofp.
2779 (cortex-a9): Add fpu. Add options for nosimd and nofp.
2780 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
2781 (cortex-r4f): Add fpu.
2782 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
2783 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
2784 for nofp.
2785 (cortex-r8): Likewise.
2786 (cortex-m4): Add fpu. Add option for nofp.
2787 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
2788 (cortex-a17.cortex-a7): Likewise.
2789 (cortex-a32): Add fpu. Add options for crypto and nofp.
2790 (cortex-a35, cortex-a53): Likewise.
2791 (cortex-a57): Add fpu. Add option for crypto.
2792 (cortex-a72, cortex-a73): Likewise.
2793 (exynos-m1): Likewise.
2794 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
2795 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
2796 (cortex-m33): Add fpu. Add option for nofp.
2797 * config/arm/arm-cpu-cdata.h: Regenerated
2798 * config/arm/arm-cpu-data.h: Regenerated.
2799
2800 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2801
2802 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
2803 (armv5te, armv5tej): Likewise.
2804 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
2805 (armv7): Add options fp and vfpv3-d16.
2806 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
2807 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
2808 nofp and nosimd.
2809 (armv7ve): Likewise.
2810 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
2811 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
2812 (armv8-a): Add nocrypto option.
2813 (armv8.1-a, armv8.2-a): Likewise.
2814 (armv8-m.main): add options fp, fp.dp and nofp.
2815
2816 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2817
2818 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
2819 nofp.
2820 (armv8-a+crc): Delete.
2821 (armv8.1-a): Add options simd, crypto and nofp.
2822 (armv8.2-a): Add options fp16, simd, crypto and nofp.
2823 (armv8.2-a+fp16): Delete.
2824 (armv8-m.main): Add option dsp.
2825 (armv8-m.main+dsp): Delete.
2826 (cortex-a8): Add fpu. Add nofp option.
2827 (cortex-a9): Add fpu. Add nofp and nosimd options.
2828 * config/arm/parsecpu.awk (gen_data): Generate option tables and
2829 link to main cpu and architecture data structures.
2830 (gen_comm_data): Only put isa attributes from the main architecture
2831 in common tables.
2832 (option): New statement for architecture and CPU entries.
2833 * arm.c (struct cpu_option): New structure.
2834 (struct processors): Add entry for options.
2835 (arm_unrecognized_feature): New function.
2836 (arm_parse_arch_cpu_name): Ignore any characters after the first
2837 '+' character.
2838 (arm_parse_arch_cpu_feature): New function.
2839 (arm_configure_build_target): Separate out any CPU and architecture
2840 features and parse separately. Don't error out if -mfpu=auto is
2841 used with only an architecture string.
2842 (arm_print_asm_arch_directives): New function.
2843 (arm_file_start): Call it.
2844 * config/arm/arm-cpu-cdata.h: Regenerated.
2845 * config/arm/arm-cpu-data.h: Likewise.
2846 * config/arm/arm-tables.opt: Likewise.
2847
2848 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2849
2850 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
2851 assembler when it is not -mfpu=auto.
2852
2853 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2854
2855 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
2856 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
2857 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
2858 (ASM_CPU_SPEC): Rewrite.
2859 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
2860 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
2861 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
2862 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
2863 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
2864 copied string is NUL-terminated. Also strip any characters prefixed
2865 by '+'.
2866 (arm_rewrite_selected_arch): New function.
2867 (arm_rewrite_march): New function.
2868
2869 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2870
2871 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
2872 (x_arm_cpu_string, x_arm_tune_string): Likewise.
2873 (march, mcpu, mtune): Convert to string-based options.
2874 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
2875 (arm_parse_arch_cpu_name): New function.
2876 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
2877 identify selected architecture or CPU.
2878 (arm_option_save): New function.
2879 (TARGET_OPTION_SAVE): Redefine.
2880 (arm_option_restore): Restore string options.
2881 (arm_option_print): Print string options.
2882
2883 2017-06-16 Martin Sebor <msebor@redhat.com>
2884
2885 PR tree-optimization/80933
2886 PR tree-optimization/80934
2887 * builtins.c (fold_builtin_3): Do not handle bcmp here.
2888 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
2889 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
2890 (gimple_fold_builtin): Call them.
2891
2892 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2893
2894 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
2895 as unlikely; update profile.
2896
2897 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2898
2899 * predict.c (force_edge_cold): Handle declaring edges impossible
2900 more aggresively.
2901
2902 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2903
2904 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
2905 profile.
2906 (try_unroll_loop_completely): Fix reporting.
2907
2908 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2909
2910 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
2911
2912 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
2913
2914 PR target/71778
2915 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
2916 if given a non-constant argument for an intrinsic which requires a
2917 constant.
2918
2919 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2920
2921 * profile.c (compare_freqs): New function.
2922 (branch_prob): Sort edge list.
2923 (find_spanning_tree): Assume that the list is priority sorted.
2924
2925 2017-06-16 Richard Biener <rguenther@suse.de>
2926
2927 PR tree-optimization/81090
2928 * passes.def (pass_record_bounds): Remove.
2929 * tree-pass.h (make_pass_record_bounds): Likewise.
2930 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
2931 make_pass_record_bounds): Likewise.
2932 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
2933 not free niter estimates at the beginning but at the end.
2934 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
2935
2936 2017-06-16 Richard Biener <rguenther@suse.de>
2937
2938 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
2939 initializer to workaround ICE in host GCC 4.8.
2940
2941 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2942
2943 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
2944 counts.
2945 (clone_inlined_nodes): Update.
2946
2947 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2948
2949 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
2950 prefetch settings, and enable prefetching by default at -O3.
2951
2952 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2953
2954 * config/aarch64/aarch64.c (aarch64_override_options_internal):
2955 Set flag_prefetch_loop_arrays according to tuning data.
2956
2957 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2958
2959 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
2960 New tune structure.
2961 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
2962 [Unrelated to main purpose of the patch] Place the pointer field last
2963 to enable type checking errors when tune structure are wrongly merged.
2964 * config/aarch64/aarch64.c (generic_prefetch_tune,)
2965 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
2966 (thunderx2t99_prefetch_tune): New tune constants.
2967 (tune_params *_tunings): Update all tunings (no functional change).
2968 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
2969 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
2970 from tunings structures.
2971
2972 2017-06-16 Jakub Jelinek <jakub@redhat.com>
2973
2974 PR sanitizer/81094
2975 * ubsan.c (instrument_null): Add T argument, use it instead
2976 of computing it based on IS_LHS.
2977 (instrument_object_size): Likewise.
2978 (pass_ubsan::execute): Adjust instrument_null and
2979 instrument_object_size callers to pass gimple_get_lhs or
2980 gimple_assign_rhs1 result to it. Use instrument_null instead of
2981 calling get_base_address and instrument_mem_ref. Handle
2982 aggregate call arguments for object-size sanitization.
2983
2984 2017-06-16 Yury Gribov <tetra2005@gmail.com>
2985
2986 PR tree-optimization/81089
2987 * tree-vrp.c (is_masked_range_test): Validate operands of
2988 subexpression.
2989
2990 2017-06-15 Martin Sebor <msebor@redhat.com>
2991
2992 PR c++/80560
2993 * dumpfile.c (dump_register): Avoid calling memset to initialize
2994 a class with a default ctor.
2995 * gcc.c (struct compiler): Remove const qualification.
2996 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
2997 * hash-table.h: Ditto.
2998 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
2999 assignment.
3000 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
3001 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
3002 default ctor.
3003 * params.h (struct param_info): Make struct members non-const.
3004 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
3005 with default initialization.
3006 * vec.h (vec_copy_construct, vec_default_construct): New helper
3007 functions.
3008 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
3009 with vec_copy_construct.
3010 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
3011 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
3012 * doc/invoke.texi (-Wclass-memaccess): Document.
3013
3014 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3015
3016 * emit-rtl.h (is_leaf): Update comment about local
3017 register allocator.
3018
3019 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
3020
3021 PR target/78818
3022 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
3023 for a variable to have a section before checking if the section has a
3024 name.
3025 Set section to.persistent if persistent attribute is set.
3026 Warn if .persistent attribute is used on an automatic variable.
3027
3028 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
3029
3030 PR rtl-optimization/80474
3031 * reorg.c (update_block): Do not ignore instructions in a delay slot.
3032
3033 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
3034
3035 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
3036 of REGNO.
3037
3038 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
3039
3040 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
3041 (casesi): Emit bounds checking as RTL.
3042 (casesi_internal_mips16_<mode>): Remove bounds checking.
3043
3044 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
3045
3046 * config/xtensa/xtensa.c (xtensa_option_override): Append
3047 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
3048 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
3049 xtensa_doloop_hooks): Define unconditionally.
3050 (xtensa_reorg_loops): Only call reorg_loops in the presence of
3051 TARGET_LOOPS.
3052 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
3053 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
3054 for it in xtensa_option_override.
3055 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
3056 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
3057
3058 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
3059
3060 * doc/cppopts.texi: Document '-' special value to -MF.
3061
3062 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
3063
3064 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
3065 (cortex_a53_fconst): Likewise.
3066 (cortex_a53_fpmul): Likewise.
3067 (cortex_a53_f_load_64): Likewise.
3068 (cortex_a53_f_load_many): Likewise.
3069 (cortex_a53_advsimd_alu): Likewise.
3070 (cortex_a53_advsimd_alu_q): Likewise.
3071 (cortex_a53_advsimd_mul): Likewise.
3072 (cortex_a53_advsimd_mul_q): Likewise.
3073 (fpmac bypass): Add new bypass for fpmac-fpmac case.
3074 Add missing fmul, r2f_cvt and fconst cases.
3075
3076 2017-06-14 Richard Biener <rguenther@suse.de>
3077
3078 PR middle-end/81088
3079 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
3080 literal constants.
3081 (fold_binary_loc): When associating do not treat pre-existing
3082 TREE_OVERFLOW on literal constants as a reason to allow
3083 TREE_OVERFLOW on associated literal constants.
3084
3085 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
3086
3087 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
3088 (MASK_FEATURES): New macro.
3089 * config/sparc/sparc.c (sparc_option_override): Remove the special
3090 handling of -mfpu and generalize it to all MASK_FEATURES switches.
3091
3092 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
3093
3094 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
3095 a division of 0 if non-call exceptions are enabled.
3096
3097 2017-06-14 Andrew Pinski <apinski@cavium.com>
3098 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
3099
3100 PR target/71663
3101 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
3102 Improve vector initialization code gen for only variable case.
3103
3104 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
3105
3106 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
3107
3108 2017-06-14 Richard Biener <rguenther@suse.de>
3109
3110 PR tree-optimization/81083
3111 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
3112 as values.
3113
3114 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
3115
3116 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
3117 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
3118 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
3119 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
3120 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
3121 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
3122
3123 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
3124
3125 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
3126 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
3127
3128 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
3129
3130 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
3131
3132 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
3133
3134 * config/rs6000/t-rtems: Don't handle SPE.
3135
3136 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
3137
3138 * config/rs6000/t-linux: Don't handle SPE.
3139
3140 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
3141
3142 * config/rs6000/eabispe.h: Delete file.
3143
3144 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
3145
3146 * config/rs6000/t-spe: Delete file.
3147
3148 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
3149
3150 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
3151 (rs6000_legitimate_offset_address_p): Return false for anything in
3152 V2SImode or V2SFmode.
3153
3154 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
3155
3156 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
3157 except V2SF and V2SI. Rearrange the vector modes, and add comments.
3158 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
3159 and V4HImode.
3160 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
3161 (rs6000_legitimate_offset_address_p): Ditto.
3162 (rs6000_emit_move): Ditto.
3163 (rs6000_init_builtins): Remove V4HI_type_node.
3164
3165 2017-06-13 Martin Liska <mliska@suse.cz>
3166
3167 PR sanitize/78204
3168 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
3169 (gate_asan): Likewise.
3170 * asan.h (asan_no_sanitize_address_p): Remove the function.
3171 (sanitize_flags_p): New function.
3172 * builtins.def: Fix coding style.
3173 * common.opt: Use renamed enum value.
3174 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
3175 * doc/extend.texi: Document no_sanitize attribute.
3176 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
3177 to SANITIZE_UNDEFINED_NONDEFAULT.
3178 * gcc.c (sanitize_spec_function): Use the renamed enum value.
3179 * gimple-fold.c (optimize_atomic_compare_exchange_p):
3180 Use sanitize_flags_p.
3181 * gimplify.c (gimplify_function_tree): Likewise.
3182 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
3183 * opts.c (parse_no_sanitize_attribute): New function.
3184 (common_handle_option): Use renamed enum value.
3185 * opts.h (parse_no_sanitize_attribute): Declare.
3186 * tree.c (sanitize_flags_p): New function.
3187 * tree.h: Declared here.
3188 * tsan.c: Use sanitize_flags_p.
3189 * ubsan.c (ubsan_expand_null_ifn): Likewise.
3190 (instrument_mem_ref): Likewise.
3191 (instrument_bool_enum_load): Likewise.
3192 (do_ubsan_in_current_function): Remove the function.
3193 (pass_ubsan::execute): Use sanitize_flags_p.
3194 * ubsan.h: Remove do_ubsan_in_current_function
3195 * tree-cfg.c (print_no_sanitize_attr_value): New function.
3196 (dump_function_to_file): Use it here.
3197
3198 2017-06-13 Martin Jambor <mjambor@suse.cz>
3199
3200 PR tree-optimization/80803
3201 PR tree-optimization/81063
3202 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
3203 (propagate_subaccesses_across_link): Enqueue subtree whenever
3204 necessary instead of relying on the caller.
3205
3206 2017-06-13 Martin Jambor <mjambor@suse.cz>
3207
3208 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
3209 that have a first_link.
3210 (sort_and_splice_var_accesses): Do not check first_link before
3211 enquing.
3212 (subtree_mark_written_and_enqueue): Likewise.
3213 (propagate_all_subaccesses): Likewise and do not stop at first
3214 parent with a first_link.
3215
3216 2017-06-13 Martin Jambor <mjambor@suse.cz>
3217
3218 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
3219 instead of f.
3220
3221 2017-06-13 Yury Gribov <tetra2005@gmail.com>
3222
3223 * match.pd: New pattern.
3224
3225 2017-06-13 Yury Gribov <tetra2005@gmail.com>
3226
3227 * tree-vrp.c (is_masked_range_test): New function.
3228 (register_edge_assert_for): Determine ranges for
3229 some bit tests.
3230
3231 2017-06-13 Yury Gribov <tetra2005@gmail.com>
3232
3233 PR tree-optimization/67328
3234 * fold-const.c (maskable_range_p): New function.
3235 (build_range_check): Generate bittests if possible.
3236
3237 2017-06-13 Martin Liska <mliska@suse.cz>
3238
3239 * gimple-pretty-print.c (dump_probability): Add new argument.
3240 (dump_edge_probability): Dump both probability and count.
3241 (dump_gimple_label): Likewise.
3242 (dump_gimple_bb_header): Likewise.
3243
3244 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
3245
3246 PR target/81072
3247 * config/avr/avr-devices.c: Fix indentation.
3248 * config/avr/gen-avr-mmcu-specs.c: Dito.
3249
3250 2017-06-13 Richard Biener <rguenther@suse.de>
3251
3252 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
3253 instead get vector type from stmt_info.
3254 (vectorizable_reduction): Adjust. Remove dead code.
3255
3256 2017-06-13 Richard Biener <rguenther@suse.de>
3257
3258 PR middle-end/81065
3259 * fold-const.c (extract_muldiv_1): Remove bogus distribution
3260 case of C * (x * C2 + C3).
3261 (fold_addr_of_array_ref_difference): Properly fold index difference.
3262
3263 2017-06-12 David S. Miller <davem@davemloft.net>
3264
3265 PR target/80968
3266 * config/sparc/sparc.md (return expander): Emit frame blockage if
3267 function uses alloca.
3268
3269 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
3270
3271 * combine.c (make_field_assignment): Check len rather than the mode
3272 precision when calling force_to_mode.
3273
3274 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
3275
3276 Support multilibs and devices that see flash in RAM address range.
3277
3278 PR target/81072
3279 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
3280 (avr_mcu_t) <flash_pm_offset>: New field.
3281 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
3282 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
3283 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
3284 (AVR_TINY_PM_OFFSET): Remove macro.
3285 * config/avr/avr.opt (-mshort-calls): New option.
3286 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
3287 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
3288 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
3289 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
3290 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
3291 instead of avr_arch->have_jmp_call.
3292 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
3293 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
3294 avr_arch->flash_pm_offset to define.
3295 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
3296 new field flash_pm_offset. Add entry for avrxmega3.
3297 (avr_texinfo): Add entry for avrxmega3.
3298 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
3299 attiny212, attiny214,
3300 attiny412, attiny414, attiny416, attiny417,
3301 attiny814, attiny816, attiny817,
3302 attiny1614, attiny1616, attiny1617,
3303 attiny3214, attiny3216, attiny3217.
3304 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
3305 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
3306 (avr_print_operand_address) [AVR_TINY]: Same.
3307 (avr_asm_init_sections) <readonly_data_section>: Only patch
3308 callback if avr_arch->flash_pm_offset = 0.
3309 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
3310 for rodata if avr_arch->flash_pm_offset != 0.
3311 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
3312 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
3313 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
3314 (m_options): Append opt_rcall.
3315 (m_dirnames): Append dir_rcall.
3316 * config/avr/t-multilib: Regenerate.
3317
3318 * configure.ac [target=avr]: Check whether avrxmega3 default
3319 linker description file works as needed.
3320 * configure: Regenerate.
3321 * doc/avr-mmcu.texi: Regenerate.
3322 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
3323 <__AVR_ARCH__>: Document avrxmega3 and 103.
3324 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
3325 <__AVR_SHORT_CALLS__>: Document it.
3326 <__AVR_PM_BASE_ADDRESS__>: Document it.
3327 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
3328 (AVR Variable Attributes) <progmem>: Document this is
3329 not needed for avrxmega3.
3330 (AVR Named Address Spaces) <__flash>: Dito.
3331
3332 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
3333
3334 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
3335
3336 2017-06-12 Doug Rupp <rupp@adacore.com>
3337
3338 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
3339 Append vxworks-stdint.h to the tm_file list.
3340 * config/vxworks-stdint.h: New file.
3341
3342 2017-06-12 Martin Liska <mliska@suse.cz>
3343
3344 PR tree-optimization/81041
3345 * tree-profile.c (gimple_gen_ic_func_profiler):
3346 Create an extra BB in profile-generate
3347 (gimple_gen_time_profiler): Likewise.
3348
3349 2017-06-12 Jakub Jelinek <jakub@redhat.com>
3350
3351 PR tree-optimization/81003
3352 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
3353 (update_range_test): Use it instead of force_gimple_operand_gsi.
3354
3355 2017-06-12 Richard Biener <rguenther@suse.de>
3356
3357 PR tree-optimization/81053
3358 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
3359 with backedge value not defined in loop. Simplify def stmt
3360 compute.
3361
3362 2017-06-11 Tom de Vries <tom@codesourcery.com>
3363
3364 PR target/79939
3365 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
3366 Return true.
3367 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
3368 nvptx_cannot_force_const_mem.
3369
3370 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
3371
3372 * opts.c (finish_options): Move test for flag_split_stack after
3373 it has been initialized.
3374
3375 2017-06-11 Jason Merrill <jason@redhat.com>
3376
3377 * tree.h (id_equal): New.
3378 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
3379 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
3380 instead of strcmp of IDENTIFIER_POINTER.
3381
3382 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
3383
3384 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
3385 (mark_all_inlined_calls_cdtor): Fix formating.
3386 (inline_transform): Rescale profile before inlining.
3387
3388 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
3389
3390 * cgraph.h (cgraph_edge::clone): Update prototype.
3391 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
3392 (cgraph_node::create_clone): Update.
3393 (cgraph_node::create_version_clone): Update.
3394 * tree-inline.c (copy_bb): Update.
3395 (expand_call_inline): Update.
3396
3397 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
3398
3399 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
3400 factored out from ...
3401 (rs6000_emit_prologue): ... here.
3402
3403 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
3404
3405 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
3406 factored out from ...
3407 (rs6000_emit_prologue): ... here.
3408
3409 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
3410
3411 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
3412 edge counts.
3413 (handle_missing_profiles): Fix computation of tp_first_run.
3414 (counts_to_freqs): Do not touch freqs when count is 0.
3415
3416 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
3417
3418 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
3419 profile.
3420
3421 2017-06-10 Tom de Vries <tom@codesourcery.com>
3422
3423 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
3424 attributes): Document signal effective target.
3425
3426 2017-06-10 Tom de Vries <tom@codesourcery.com>
3427
3428 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
3429 Document effective target stack_size.
3430
3431 2017-06-09 David Malcolm <dmalcolm@redhat.com>
3432
3433 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
3434 to the edit_context if they can be auto-applied.
3435
3436 2017-06-9 Ian Lance Taylor <iant@golang.org>
3437
3438 * opts.c (finish_options): If -fsplit-stack, disable implicit
3439 -forder-blocks-and-partition.
3440 * doc/invoke.texi (Optimize Options): Document that when using
3441 -fsplit-stack -forder-blocks-and-partition is not implicitly
3442 enabled.
3443
3444 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
3445
3446 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
3447 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
3448 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
3449 * builtins.def (abort, trap, unreachable): Declare cold.
3450 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
3451 * tree-core.h (ECF_COLD): New.
3452 * tree.c (set_call_expr_flags): Handle ECF_COLD.
3453 (build_common_builtin_nodes): Mark unreachable and abort as cold.
3454
3455 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
3456
3457 * predict.c (unlikely_executed_stmt_p): Cleanup.
3458
3459 2017-06-09 Richard Biener <rguenther@suse.de>
3460
3461 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
3462 model if the ref is always written to.
3463
3464 2017-06-09 Tamar Christina <tamar.christina@arm.com>
3465
3466 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
3467
3468 2017-06-09 Tamar Christina <tamar.christina@arm.com>
3469
3470 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
3471 than udiv.
3472
3473 2017-06-09 Tom de Vries <tom@codesourcery.com>
3474
3475 PR target/80855
3476 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
3477 "target cannot support label values" when encountering LABEL_REF.
3478
3479 2017-06-09 Martin Liska <mliska@suse.cz>
3480
3481 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
3482 (gimple_gen_ic_func_profiler): Emit direct comparison
3483 of __gcov_indirect_call_callee with NULL.
3484 (gimple_gen_time_profiler): Change probability from
3485 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
3486
3487 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
3488
3489 * profile.c (edge_gcov_counts): Turn to pointer.
3490 (compute_branch_probabilities, compute_branch_probabilities): Update.
3491 (branch_prob): Do not clear edge_gcov_count.
3492 * profile.h (edge_gcov_counts): Turn to pointer.
3493 (edge_gcov_count): Update.
3494
3495 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
3496
3497 * gimple.h (gimple_check_failed): Mark cold.
3498
3499 2017-06-09 Richard Biener <rguenther@suse.de>
3500
3501 PR tree-optimization/66623
3502 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
3503 refactor check_reduction into two parts, properly computing
3504 whether we have to check reduction validity for outer loop
3505 vectorization.
3506
3507 2017-06-09 Richard Biener <rguenther@suse.de>
3508
3509 PR tree-optimization/79483
3510 * graphite-scop-detection.c (order): New global.
3511 (get_order): Compute bb to order mapping that satisfies code
3512 generation constraints.
3513 (cmp_pbbs): New helper.
3514 (build_scops): Start domwalk at entry block, sort generated
3515 pbbs.
3516
3517 2017-06-09 Richard Biener <rguenther@suse.de>
3518
3519 PR middle-end/81007
3520 * ipa-polymorphic-call.c
3521 (ipa_polymorphic_call_context::restrict_to_inner_class):
3522 Skip FIELD_DECLs with error_mark_node type.
3523 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
3524 last again.
3525
3526 2017-06-09 Martin Liska <mliska@suse.cz>
3527
3528 * predict.c (struct branch_predictor): New struct.
3529 (test_prediction_value_range): New test.
3530 (predict_c_tests): New function.
3531 * selftest-run-tests.c (selftest::run_tests): Run the function.
3532 * selftest.h: Declare new tests.
3533
3534 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
3535
3536 PR target/80966
3537 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
3538 gen_add3_insn did not fail.
3539 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
3540 r0, construct that number in a temporary reg and add that reg to r0.
3541 If asked to put the result in r0 as well, fail.
3542
3543 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
3544
3545 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3546 for early expansion of vec_eqv.
3547
3548 2017-06-08 Jakub Jelinek <jakub@redhat.com>
3549
3550 PR middle-end/81005
3551 * ubsan.c (instrument_null): Avoid pointless code temporary.
3552 (pass_ubsan::execute): Instrument aggregate arguments of calls.
3553
3554 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
3555
3556 PR target/81015
3557 Revert:
3558 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
3559
3560 PR target/59874
3561 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
3562 (*clzhi2): Ditto.
3563
3564 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3565
3566 * predict.c (unlikely_executed_edge_p): Move ahead.
3567 (probably_never_executed_edge_p): Use it.
3568
3569 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
3570
3571 PR middle-end/79988
3572 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
3573 gimple_call_builtin_p call.
3574
3575 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3576
3577 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
3578 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
3579 rtl_check_failed_type2, rtl_check_failed_code1,
3580 rtl_check_failed_code2, rtl_check_failed_code_mode,
3581 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
3582 rtvec_check_failed_bounds, rtl_check_failed_flag,
3583 _fatal_insn_not_found, _fatal_insn): Likewise.
3584 * tree.h (tree_contains_struct_check_failed,
3585 tree_check_failed, tree_not_check_failed,
3586 tree_class_check_failed, tree_range_check_failed,
3587 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
3588 tree_vec_elt_check_failed, phi_node_elt_check_failed,
3589 tree_operand_check_failed, omp_clause_check_failed,
3590 omp_clause_operand_check_failed, omp_clause_range_check_failed):
3591 Likewise.
3592
3593 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3594
3595 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
3596 flag_branch_probabilities.
3597 * ipa-inline.c (edge_badness): Likewise.
3598 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
3599 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
3600 * predict.c (maybe_hot_frequency_p): Likewise.
3601 (probably_never_executed): Likewise.
3602 * sched-ebb.c (schedule_ebbs): Likewise.
3603 * sched-rgn.c (find_single_block_region): Likewise.
3604 * tracer.c (tail_duplicate): Likewise.
3605
3606 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3607
3608 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
3609 longer requires x_flag_profile_use.
3610
3611 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3612
3613 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
3614 instead of flag_reorder_blocks_and_partition.
3615 * dbxout.c (dbxout_function_end): Likewise.
3616 * dwarf2out.c (gen_subprogram_die): Likewise.
3617 * haifa-sched.c (sched_create_recovery_edges): Likewise.
3618 * hw-doloop.c (reorg_loops): Likewise.
3619 * varasm.c (assemble_start_function,
3620 assemble_end_function): Likewise.
3621 (decide_function_section): Do not check for
3622 flag_reorder_blocks_and_partition.
3623
3624 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
3625
3626 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
3627 New function.
3628 (chkp_get_hard_register_fake_addr_expr): Ditto.
3629 (chkp_build_addr_expr): Add check for hard reg case.
3630 (chkp_parse_array_and_component_ref): Ditto.
3631 (chkp_find_bounds_1): Ditto.
3632 (chkp_process_stmt): Don't generate bounds store for
3633 hard reg case.
3634
3635 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3636
3637 * predict.c (maybe_hot_bb_p): Do not check profile status.
3638 (maybe_hot_edge_p): Likewise.
3639 (probably_never_executed): Check for zero counts even if profile
3640 is not read.
3641 (unlikely_executed_edge_p): New function.
3642 (unlikely_executed_stmt_p): New function.
3643 (unlikely_executed_bb_p): New function.
3644 (set_even_probabilities): Use unlikely predicates.
3645 (combine_predictions_for_bb): Likewise.
3646 (predict_paths_for_bb): Likewise.
3647 (predict_paths_leading_to_edge): Likewise.
3648 (determine_unlikely_bbs): New function.
3649 (estimate_bb_frequencies): Use it.
3650 (compute_function_frequency): Use zero counts even if profile is
3651 not read.
3652 * profile-count.h: Fix typo.
3653
3654 2017-08-08 Julia Koval <julia.koval@intel.com>
3655
3656 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
3657 _mm512_mask_cvtsepi16_storeu_epi8,
3658 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
3659 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
3660 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
3661 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
3662 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
3663 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
3664 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
3665 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
3666 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
3667 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
3668 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
3669 __builtin_ia32_pmovuswb256mem_mask,
3670 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
3671 __builtin_ia32_pmovwb512mem_mask): New builtins.
3672
3673 2017-08-08 Julia Koval <julia.koval@intel.com>
3674
3675 PR target/73350,80862
3676 * config/i386/subst.md (round): Fix round pattern.
3677 * config/i386/i386.c (ix86_erase_embedded_rounding):
3678 Fix erasing rounding for the fixed pattern.
3679
3680 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3681
3682 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
3683
3684 2017-06-08 Martin Liska <mliska@suse.cz>
3685
3686 PR gcov-profile/80911
3687 * gcov.c (block_info::block_info): New constructor.
3688
3689 2017-06-07 Carl Love <cel@us.ibm.com>
3690
3691 * config/rs6000/rs6000-c: The return type of the following
3692 built-in functions was implemented as int not long long. Fix sign
3693 of return value for the unsigned version of vec_mulo and vec_mule.
3694 vector unsigned long long vec_bperm (vector unsigned long long,
3695 vector unsigned char)
3696 vector signed long long vec_mule (vector signed int,
3697 vector signed int)
3698 vector unsigned long long vec_mule (vector unsigned int,
3699 vector unsigned int)
3700 vector signed long long vec_mulo (vector signed int,
3701 vector signed int)
3702 vector unsigned long long vec_mulo (vector unsigned int,
3703 vector unsigned int)
3704 * doc/extend.texi: Fix the documentation for the built-in
3705 functions.
3706
3707 2017-06-07 Carl Love <cel@us.ibm.com>
3708
3709 PR target/80982
3710 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
3711 for BE.
3712
3713 2017-06-07 Carl Love <cel@us.ibm.com>
3714
3715 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
3716 support, Generate doublehv for signed int/float for BE case only.
3717
3718 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
3719
3720 * doc/invoke.texi (mcx16): Rewrite.
3721
3722 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3723
3724 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
3725 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
3726 *mov<mode>_softfloat, and an anonymous splitter): Use
3727 nonimmediate_operand instead of rs6000_nonimmediate_operand.
3728
3729 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3730
3731 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
3732 SPEFSCR registers.
3733 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
3734 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
3735 (rs6000_debug_reg_global): Adjust.
3736 (rs6000_init_hard_regno_mode_ok): Adjust.
3737 (rs6000_dbx_register_number): Adjust.
3738 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
3739 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
3740 Remove SPE_ACC and SPEFSCR.
3741 (REG_ALLOC_ORDER): Ditto.
3742 (FRAME_POINTER_REGNUM): Change to 111.
3743 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
3744 (REG_CLASS_NAMES): Ditto.
3745 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
3746 (REGISTER_NAMES): Ditto.
3747 (ADDITIONAL_REG_NAMES): Ditto.
3748 (rs6000_reg_names): Ditto.
3749 * config/rs6000/rs6000.md: Renumber some register number
3750 define_constants.
3751
3752 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3753
3754 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
3755 registers.
3756 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
3757 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
3758 to 117.
3759 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
3760 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
3761 Delete the SPE high registers.
3762 (REG_ALLOC_ORDER): Ditto.
3763 (enum reg_class): Remove SPE_HIGH_REGS.
3764 (REG_CLASS_NAMES): Ditto.
3765 (REG_CLASS_CONTENTS): Delete the SPE high registers.
3766 (REGISTER_NAMES): Ditto.
3767 (rs6000_reg_names): Ditto.
3768 * doc/tm.texi.in: Remove SPE as example.
3769 * doc/tm.texi: Regenerate.
3770
3771 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3772
3773 * config/rs6000/8540.md (ppc8540_brinc): Delete.
3774 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
3775 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
3776 * config/rs6000/rs6000.md (type): Remove "brinc".
3777
3778 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3779
3780 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
3781 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
3782 * config/rs6000/linuxspe.h: Delete file.
3783 * config/rs6000/rs6000.md: Don't include spe.md.
3784 * config/rs6000/spe.h: Delete file.
3785 * config/rs6000/spe.md: Delete file.
3786 * config/rs6000/t-rs6000: Remove spe.md.
3787
3788 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3789
3790 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
3791 (reg_or_none500mem_operand): Delete.
3792 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
3793 instead of reg_or_none500mem_operand.
3794
3795 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3796
3797 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
3798 handling of SPE flags.
3799 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
3800
3801 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3802
3803 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
3804 SPE ABI handling.
3805 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
3806 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
3807 paired_divv2sf3): Similar.
3808 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
3809 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
3810 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
3811 RS6000_BUILTIN_S.
3812 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
3813 Rename the paired_* instruction patterns.
3814 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
3815 define __SPE__.
3816 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
3817 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
3818 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
3819 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
3820 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
3821 PAIRED_VECTOR_MODE.
3822 (struct machine_function): Delete field spe_insn_chain_scanned_p.
3823 (spe_func_has_64bit_regs_p): Delete.
3824 (spe_expand_predicate_builtin): Delete.
3825 (spe_expand_evsel_builtin): Delete.
3826 (TARGET_DWARF_REGISTER_SPAN): Do not define.
3827 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
3828 (invalid_e500_subreg): Delete.
3829 (rs6000_legitimize_address): Always force_reg op2 as well, for
3830 paired single memory accesses.
3831 (rs6000_member_type_forces_blk): Delete.
3832 (rs6000_spe_function_arg): Delete.
3833 (rs6000_expand_unop_builtin): Delete SPE handling.
3834 (rs6000_expand_binop_builtin): Ditto.
3835 (spe_expand_stv_builtin): Delete.
3836 (bdesc_2arg_spe): Delete.
3837 (spe_expand_builtin): Delete.
3838 (spe_expand_predicate_builtin): Delete.
3839 (spe_expand_evsel_builtin): Delete.
3840 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
3841 (spe_init_builtins): Delete.
3842 (spe_func_has_64bit_regs_p): Delete.
3843 (savres_routine_name): Delete "info" parameter. Adjust callers.
3844 (rs6000_emit_stack_reset): Ditto.
3845 (rs6000_dwarf_register_span): Delete.
3846 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
3847 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
3848 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
3849 Delete.
3850 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
3851 Delete.
3852 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
3853 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
3854 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
3855 mulv2sf3, divv2sf3): Delete expanders.
3856
3857 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3858
3859 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
3860
3861 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3862
3863 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
3864 * config/rs6000/rs6000.c: Ditto.
3865
3866 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3867
3868 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
3869 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
3870 comparison_operator.
3871
3872 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3873
3874 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
3875 * config/rs6000/rs6000.opt: Ditto.
3876 * config/rs6000/t-rtems: Ditto.
3877
3878 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3879
3880 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
3881 TARGET_E500_SINGLE by 0, simplify.
3882 * config/rs6000/rs6000.c: Ditto.
3883 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
3884 (spe_build_register_parallel): Delete.
3885 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
3886 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
3887 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
3888 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
3889 (E500_CONVERT): Delete.
3890 * config/rs6000/spe.md: Remove many patterns and all define_constants.
3891
3892 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3893
3894 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
3895 * config/rs6000/dfp.md: Ditto.
3896 (negdd2, *negdd2_fpr): Merge.
3897 (absdd2, *absdd2_fpr): Merge.
3898 (negtd2, *negtd2_fpr): Merge.
3899 (abstd2, *abstd2_fpr): Merge.
3900 * config/rs6000/e500.h: Delete file.
3901 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
3902 TARGET_FPRS by 1 and simplify.
3903 * config/rs6000/rs6000-c.c: Ditto.
3904 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
3905 TARGET_DF_SPE by 0.
3906 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
3907 TARGET_DF_SPE.
3908 * config/rs6000/rs6000.md: Ditto.
3909 (floatdidf2, *floatdidf2_fpr): Merge.
3910 (move_from_CR_gt_bit): Delete.
3911 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
3912 (E500_CR_IOR_COMPARE): Delete.
3913 (All patterns that require !TARGET_FPRS): Delete.
3914 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
3915
3916 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3917
3918 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
3919
3920 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3921
3922 * graphds.c (add_edge): Intitialize edge's attached data.
3923 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
3924 pointer parameter. Call pointed function on each edge during
3925 graph traversing. Skip traversing the edge when the function
3926 returns true.
3927 (graphds_dfs, graphds_scc): Ditto.
3928 (for_each_edge): New parameter. Pass the new parameter to callback
3929 function.
3930 * graphds.h (skip_edge_callback): New function pointer type.
3931 (graphds_dfs, graphds_scc): New function pointer parameter.
3932 (graphds_edge_callback, for_each_edge): New parameter.
3933
3934 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3935
3936 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
3937 out code checking if runtime alias check is possible to below ...
3938 Call the new function.
3939 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
3940 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
3941
3942 2017-06-07 Marek Polacek <polacek@redhat.com>
3943
3944 PR sanitizer/80932
3945 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
3946 TYPE_OVERFLOW_WRAPS check.
3947
3948 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3949
3950 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
3951 if versioning is required.
3952 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
3953 peeling with the check for versioning.
3954
3955 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3956
3957 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
3958 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
3959 Set true to new parameter if new ssa variable is defined.
3960 (vect_gen_vector_loop_niters): Refactor. Set range information
3961 for the new vector loop bound variable.
3962 (vect_do_peeling): Ditto.
3963
3964 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3965
3966 * tree-affine.c (ssa.h): Include header file.
3967 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
3968 has wrapping overflow behavior.
3969
3970 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3971
3972 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
3973
3974 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3975
3976 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
3977 (tree_to_aff_combination): ... here.
3978
3979 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3980
3981 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
3982 reg_pressure model function.
3983 (ivopts_global_cost_for_size): Delete.
3984 (determine_set_costs, iv_ca_recount_cost): Call new model function
3985 ivopts_estimate_reg_pressure.
3986
3987 2017-06-07 Tamar Christina <tamar.christina@arm.com>
3988
3989 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
3990 expensive than udiv. Remove floating point cases from mod.
3991
3992 2017-06-07 Tamar Christina <tamar.christina@arm.com>
3993
3994 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
3995 Increase idiv cost.
3996
3997 2017-06-07 Tamar Christina <tamar.christina@arm.com>
3998
3999 * config/aarch64/aarch64.md
4000 (copysignsf3): Fix mask generation.
4001
4002 2017-06-07 Jakub Jelinek <jakub@redhat.com>
4003
4004 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
4005 TDI_gimple.
4006 (class dump_manager): Add register_dumps method.
4007 * dumpfile.c: Include langhooks.h.
4008 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
4009 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
4010 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
4011 (dump_manager::dump_register): Start with 512 entries instead of 32.
4012 (dump_manager::register_dumps): New method.
4013 * toplev.c (general_init): Instead of invoking register_dumps
4014 langhook, invoke register_dumps method on the dump manager.
4015 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
4016 TDI_generic.
4017
4018 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
4019
4020 * doc/md.texi: Clarify the restrictions on a define_insn condition.
4021 Say that # requires an associated define_split to exist, and that
4022 the define_split must be suitable for use after register allocation.
4023
4024 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
4025
4026 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
4027 (compute_outgoing_frequencies): Also initialize zero counts.
4028 (find_many_sub_basic_blocks): Do not produce uninitialized profile
4029 around loops; preserve more of profile when nothing changes.
4030
4031 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
4032
4033 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
4034 here.
4035 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
4036 * config/arm/arm-cpu-cdata.h: Regenerate.
4037 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
4038 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
4039 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
4040 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
4041 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
4042 support.
4043 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
4044 support.
4045 * config/arm/t-rmprofile: Likewise.
4046 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
4047
4048 2017-06-06 David S. Miller <davem@davemloft.net>
4049
4050 PR target/80968
4051 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
4052 blockage if function uses alloca.
4053
4054 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
4055
4056 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
4057 New "uid" fields to hold pretty-print IDs of group and ref.
4058 Memory references are now identified as <group_id>:<ref_id>
4059 instead of using [random] addresses.
4060 (dump_mem_details): Simplify, no functional change.
4061 (dump_mem_ref): Simplify and make output more concise.
4062 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
4063 (find_or_create_group): Initialize group uid.
4064 (record_ref): Initialize ref uid. Improve debug output.
4065 (prune_group_by_reuse, should_issue_prefetch_p,)
4066 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
4067 (mark_nontemporal_store, determine_loop_nest_reuse):
4068 Improve debug output.
4069
4070 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
4071
4072 * dbgcnt.def (prefetch): New debug counter.
4073 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
4074 (schedule_prefetches): Stop issueing prefetches if debug counter
4075 tripped.
4076
4077 2017-06-06 Tom de Vries <tom@codesourcery.com>
4078
4079 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
4080 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
4081
4082 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4083
4084 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
4085 Use aarch64_reg_or_zero predicate for operand 4.
4086 (aarch64_compare_and_swap<mode> define_insn_and_split):
4087 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
4088 (aarch64_store_exclusive<mode>): Likewise for operand 2.
4089
4090 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
4091
4092 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
4093 (arm_compute_save_core_reg_mask): This.
4094 (thumb1_compute_save_reg_mask): Rename into ...
4095 (thumb1_compute_save_core_reg_mask): This.
4096 (arm_compute_save_reg0_reg12_mask): Adapt comment.
4097 (arm_compute_frame_layout): Likewise.
4098
4099 2017-06-06 Richard Biener <rguenther@suse.de>
4100
4101 PR tree-optimization/80974
4102 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
4103 keep or clear leaders SSA info.
4104
4105 2017-06-06 Tom de Vries <tom@codesourcery.com>
4106
4107 * config/nvptx/nvptx.c (split_mode_p): New function.
4108 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
4109
4110 2017-06-06 Tom de Vries <tom@codesourcery.com>
4111
4112 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
4113
4114 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
4115
4116 PR bootstrap/80978
4117 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
4118 profile.
4119
4120 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
4121
4122 * shrink-wrap.c (handle_simple_exit): Update profile.
4123 (try_shrink_wrapping): Upate profile.
4124
4125 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
4126
4127 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
4128 (tree_guess_outgoing_edge_probabilities): New.
4129 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
4130 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
4131
4132 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
4133
4134 * ipa-split.c (split_function): Initialize return bb profile.
4135
4136 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
4137
4138 * profile.c (compute_branch_probabilities): Also initialize
4139 EXIT_BLOCK profile.
4140
4141 2017-06-06 Richard Biener <rguenther@suse.de>
4142
4143 PR tree-optimization/80928
4144 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
4145 (vect_analyze_loop_operations): Properly guard analysis for
4146 pure SLP case.
4147 (vect_transform_loop): Likewise.
4148 (vect_analyze_loop_2): Also reset SLP type on PHIs.
4149 (vect_model_induction_cost): Do not cost for pure SLP.
4150 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
4151 of induction in inner loop vectorization.
4152 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
4153 (vect_get_and_check_slp_defs): Handle vect_induction_def.
4154 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
4155 recursion.
4156 (vect_analyze_slp_cost_1): Cost induction.
4157 (vect_detect_hybrid_slp_stmts): Handle PHIs.
4158 (vect_get_slp_vect_defs): Likewise.
4159 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
4160 (vect_transform_stmt): Handle SLP reductions.
4161 * tree-vectorizer.h (vectorizable_induction): Adjust.
4162
4163 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
4164
4165 * config/rs6000/rs6000.c (make_resolver_func): Update
4166 init_lowered_empty_function call.
4167
4168 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
4169
4170 * doc/invoke.texi: Document the -fprofile-abs-path option.
4171 * common.opt (fprofile-abs-path): New option.
4172 * gcov-io.h (gcov_write_filename): Declare.
4173 * gcov-io.c (gcov_write_filename): New function.
4174 * coverage.c (coverage_begin_function): Use gcov_write_filename.
4175 * profile.c (output_location): Likewise.
4176
4177 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
4178
4179 * shring-wrap.c: Revert accidental commit.
4180
4181 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
4182
4183 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
4184
4185 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
4186
4187 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
4188 new edge.
4189 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
4190 profile in callgraph edge.
4191 * profile-count.h (apply_probability): If THIS is 0, then result is 0
4192 (apply_scale): Likewise.
4193 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
4194 Also scale profile when inlining function with zero profile.
4195 (initialize_cfun): Update exit block profile even when it is zero.
4196 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
4197 when profile is read.
4198
4199 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
4200
4201 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
4202 (CLONE_*): New constants to define the processors we can generate
4203 code for with the target_clone attribute.
4204 (rs6000_clone_map): New array to identify which clone processors
4205 the current program is running on.
4206 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
4207 target_clone attribute.
4208 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
4209 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
4210 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
4211 (cpu_expand_builtin): Add support for target_clone attribute.
4212 (rs6000_valid_attribute_p): Allow "default" attribute.
4213 (get_decl_name): New debug function to simplify printing the
4214 current function name in debugging statements.
4215 (rs6000_clone_priority): New functions to support the target_clone
4216 attribute, and be able to generate code to switch between ISA 2.05
4217 through ISA 3.0 (power6 through power9).
4218 (rs6000_compare_version_priority): Likewise.
4219 (rs6000_get_function_versions_dispatcher): Likewise.
4220 (make_resolver_func): Likewise.
4221 (add_condition_to_bb): Likewise.
4222 (dispatch_function_versions): Likewise.
4223 (rs6000_generate_version_dispatcher_body): Likewise.
4224 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
4225 (fusion_gpr_load_p): Fix a spacing issue.
4226 * doc/extend.texi (Common Function Attributes): Document that the
4227 PowerPC supports the target_clone attribute.
4228
4229 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
4230
4231 * config/arm/arm.h: explain F symbol found in description of ARM
4232 register allocation in its legend.
4233
4234 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
4235
4236 * config/mips/frame-header-opt.c: Include profile-count.h.
4237 * config/riscv/riscv.c: Include profile-count.h
4238
4239 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
4240
4241 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
4242 update profile.
4243 (sm_set_flag_if_changed): Add bbs field.
4244 (execute_sm_if_changed_flag_set): Pass BBS.
4245 (execute_sm): Update.
4246
4247 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4248
4249 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
4250 New pattern.
4251
4252 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4253
4254 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
4255 (peephole2): New peephole2 to emit the above.
4256 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
4257
4258 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4259
4260 * config/aarch64/aarch64.c (define_peephole2 above
4261 *sub_<shift>_<mode>): New peephole.
4262
4263 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
4264
4265 * config/i386/i386.c (make_resolver_func): Update.
4266 * Makefile.in: Add profile-count.h and profile-count.o
4267 * auto-profile.c (afdo_indirect_call): Update to new API.
4268 (afdo_set_bb_count): Update.
4269 (afdo_propagate_edge): Update.
4270 (afdo_propagate_circuit): Update.
4271 (afdo_calculate_branch_prob): Update.
4272 (afdo_annotate_cfg): Update.
4273 * basic-block.h: Include profile-count.h
4274 (struct edge_def): Turn count to profile_count.
4275 (struct basic_block_def): Likewie.
4276 (REG_BR_PROB_BASE): Move to profile-count.h
4277 (RDIV): Move to profile-count.h
4278 * bb-reorder.c (max_entry_count): Turn to profile_count.
4279 (find_traces): Update.
4280 (rotate_loop):Update.
4281 (connect_traces):Update.
4282 (sanitize_hot_paths):Update.
4283 * bt-load.c (migrate_btr_defs): Update.
4284 * cfg.c (RDIV): Remove.
4285 (init_flow): Use alloc_block.
4286 (alloc_block): Uninitialize count.
4287 (unchecked_make_edge): Uninitialize count.
4288 (check_bb_profile): Update.
4289 (dump_edge_info): Update.
4290 (dump_bb_info): Update.
4291 (update_bb_profile_for_threading): Update.
4292 (scale_bbs_frequencies_int): Update.
4293 (scale_bbs_frequencies_gcov_type): Update.
4294 (scale_bbs_frequencies_profile_count): New.
4295 * cfg.h (update_bb_profile_for_threading): Update.
4296 (scale_bbs_frequencies_profile_count): Declare.
4297 * cfgbuild.c (compute_outgoing_frequencies): Update.
4298 (find_many_sub_basic_blocks): Update.
4299 * cfgcleanup.c (try_forward_edges): Update.
4300 (try_crossjump_to_edge): Update.
4301 * cfgexpand.c (expand_gimple_tailcall): Update.
4302 (construct_exit_block): Update.
4303 * cfghooks.c (verify_flow_info): Update.
4304 (dump_bb_for_graph): Update.
4305 (split_edge): Update.
4306 (make_forwarder_block): Update.
4307 (duplicate_block): Update.
4308 (account_profile_record): Update.
4309 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
4310 (get_estimated_loop_iterations): Update.
4311 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
4312 (single_likely_exit): Update.
4313 * cfgloopmanip.c (scale_loop_profile): Update.
4314 (loopify): Update.
4315 (set_zero_probability): Update.
4316 (lv_adjust_loop_entry_edge): Update.
4317 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
4318 (purge_dead_edges): Update.
4319 (rtl_account_profile_record): Update.
4320 * cgraph.c (cgraph_node::create): Uninitialize count.
4321 (symbol_table::create_edge): Uninitialize count.
4322 (cgraph_update_edges_for_call_stmt_node): Update.
4323 (cgraph_edge::dump_edge_flags): Update.
4324 (cgraph_node::dump): Update.
4325 (cgraph_edge::maybe_hot_p): Update.
4326 * cgraph.h: Include profile-count.h
4327 (create_clone), create_edge, create_indirect_edge): Update.
4328 (cgraph_node): Turn count to profile_count.
4329 (cgraph_edge0: Likewise.
4330 (make_speculative, clone): Update.
4331 (create_edge): Update.
4332 (init_lowered_empty_function): Update.
4333 * cgraphclones.c (cgraph_edge::clone): Update.
4334 (duplicate_thunk_for_node): Update.
4335 (cgraph_node::create_clone): Update.
4336 * cgraphunit.c (cgraph_node::analyze): Update.
4337 (cgraph_node::expand_thunk): Update.
4338 * final.c (dump_basic_block_info): Update.
4339 * gimple-streamer-in.c (input_bb): Update.
4340 * gimple-streamer-out.c (output_bb): Update.
4341 * graphite.c (print_global_statistics): Update.
4342 (print_graphite_scop_statistics): Update.
4343 * hsa-brig.c: Include basic-block.h.
4344 * hsa-dump.c: Include basic-block.h.
4345 * hsa-gen.c (T sum_slice): Update.
4346 (convert_switch_statements):Update.
4347 * hsa-regalloc.c: Include basic-block.h.
4348 * ipa-chkp.c (chkp_produce_thunks): Update.
4349 * ipa-cp.c (struct caller_statistics): Update.
4350 (init_caller_stats): Update.
4351 (gather_caller_stats): Update.
4352 (ipcp_cloning_candidate_p): Update.
4353 (good_cloning_opportunity_p): Update.
4354 (get_info_about_necessary_edges): Update.
4355 (dump_profile_updates): Update.
4356 (update_profiling_info): Update.
4357 (update_specialized_profile): Update.
4358 (perhaps_add_new_callers): Update.
4359 (decide_about_value): Update.
4360 (ipa_cp_c_finalize): Update.
4361 * ipa-devirt.c (struct odr_type_warn_count): Update.
4362 (struct decl_warn_count): Update.
4363 (struct final_warning_record): Update.
4364 (possible_polymorphic_call_targets): Update.
4365 (ipa_devirt): Update.
4366 * ipa-fnsummary.c (redirect_to_unreachable): Update.
4367 * ipa-icf.c (sem_function::merge): Update.
4368 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
4369 * ipa-inline.c (compute_uninlined_call_time): Update.
4370 (compute_inlined_call_time): Update.
4371 (want_inline_small_function_p): Update.
4372 (want_inline_self_recursive_call_p): Update.
4373 (edge_badness): Update.
4374 (lookup_recursive_calls): Update.
4375 (recursive_inlining): Update.
4376 (inline_small_functions): Update.
4377 (dump_overall_stats): Update.
4378 (dump_inline_stats): Update.
4379 * ipa-profile.c (ipa_profile_generate_summary): Update.
4380 (ipa_propagate_frequency): Update.
4381 (ipa_profile): Update.
4382 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
4383 * ipa-utils.c (ipa_merge_profiles): Update.
4384 * loop-doloop.c (doloop_modify): Update.
4385 * loop-unroll.c (report_unroll): Update.
4386 (unroll_loop_runtime_iterations): Update.
4387 * lto-cgraph.c (lto_output_edge): Update.
4388 (lto_output_node): Update.
4389 (input_node): Update.
4390 (input_edge): Update.
4391 (merge_profile_summaries): Update.
4392 * lto-streamer-in.c (input_cfg): Update.
4393 * lto-streamer-out.c (output_cfg): Update.
4394 * mcf.c (create_fixup_graph): Update.
4395 (adjust_cfg_counts): Update.
4396 (sum_edge_counts): Update.
4397 * modulo-sched.c (sms_schedule): Update.
4398 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
4399 * predict.c (maybe_hot_count_p): Update.
4400 (probably_never_executed): Update.
4401 (dump_prediction): Update.
4402 (combine_predictions_for_bb): Update.
4403 (propagate_freq): Update.
4404 (handle_missing_profiles): Update.
4405 (counts_to_freqs): Update.
4406 (rebuild_frequencies): Update.
4407 (force_edge_cold): Update.
4408 * predict.h: Include profile-count.h
4409 (maybe_hot_count_p, counts_to_freqs): UPdate.
4410 * print-rtl-function.c: Do not include cfg.h
4411 * print-rtl.c: Include basic-block.h
4412 * profile-count.c: New file.
4413 * profile-count.h: New file.
4414 * profile.c (is_edge_inconsistent): Update.
4415 (correct_negative_edge_counts): Update.
4416 (is_inconsistent): Update.
4417 (set_bb_counts): Update.
4418 (read_profile_edge_counts): Update.
4419 (compute_frequency_overlap): Update.
4420 (compute_branch_probabilities): Update; Initialize and deinitialize
4421 gcov_count tables.
4422 (branch_prob): Update.
4423 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
4424 (edge_gcov_count): New.
4425 (bb_gcov_count): New.
4426 * shrink-wrap.c (try_shrink_wrapping): Update.
4427 * tracer.c (better_p): Update.
4428 * trans-mem.c (expand_transaction): Update.
4429 (ipa_tm_insert_irr_call): Update.
4430 (ipa_tm_insert_gettmclone_call): Update.
4431 * tree-call-cdce.c: Update.
4432 * tree-cfg.c (gimple_duplicate_sese_region): Update.
4433 (gimple_duplicate_sese_tail): Update.
4434 (gimple_account_profile_record): Update.
4435 (execute_fixup_cfg): Update.
4436 * tree-inline.c (copy_bb): Update.
4437 (copy_edges_for_bb): Update.
4438 (initialize_cfun): Update.
4439 (freqs_to_counts): Update.
4440 (copy_cfg_body): Update.
4441 (expand_call_inline): Update.
4442 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
4443 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
4444 (try_unroll_loop_completely): Update.
4445 (try_peel_loop): Update.
4446 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
4447 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
4448 * tree-ssa-loop-split.c (connect_loops): Update.
4449 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
4450 * tree-ssa-reassoc.c (branch_fixup): Update.
4451 * tree-ssa-tail-merge.c (replace_block_by): Update.
4452 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
4453 (compute_path_counts): Update.
4454 (update_profile): Update.
4455 (recompute_probabilities): Update.
4456 (update_joiner_offpath_counts): Update.
4457 (estimated_freqs_path): Update.
4458 (freqs_to_counts_path): Update.
4459 (clear_counts_path): Update.
4460 (ssa_fix_duplicate_block_edges): Update.
4461 (duplicate_thread_path): Update.
4462 * tree-switch-conversion.c (case_bit_test_cmp): Update.
4463 (struct switch_conv_info): Update.
4464 * tree-tailcall.c (decrease_profile): Update.
4465 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
4466 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
4467 * value-prof.c (check_counter): Update.
4468 (gimple_divmod_fixed_value): Update.
4469 (gimple_mod_pow2): Update.
4470 (gimple_mod_subtract): Update.
4471 (gimple_ic_transform): Update.
4472 (gimple_stringop_fixed_value): Update.
4473 * value-prof.h (gimple_ic): Update.
4474
4475 2017-06-02 Carl Love <cel@us.ibm.com>
4476
4477 * config/rs6000/rs6000-c: Add support for built-in functions
4478 vector double vec_doublee (vector signed int);
4479 vector double vec_doublee (vector unsigned int);
4480 vector double vec_doublee (vector float);
4481 vector double vec_doubleh (vector signed int);
4482 vector double vec_doubleh (vector unsigned int);
4483 vector double vec_doubleh (vector float);
4484 vector double vec_doublel (vector signed int);
4485 vector double vec_doublel (vector unsigned int);
4486 vector double vec_doublel (vector float);
4487 vector double vec_doubleo (vector signed int);
4488 vector double vec_doubleo (vector unsigned int);
4489 vector double vec_doubleo (vector float);.
4490 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
4491 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
4492 UNS_DOUBLEL.
4493 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
4494 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
4495 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
4496 VS_sxwsp.
4497 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
4498 vec_doublel, vec_doubleh.
4499 * doc/extend.texi: Update the built-in documentation file for the
4500 new built-in functions.
4501
4502 2017-06-02 David Malcolm <dmalcolm@redhat.com>
4503
4504 PR jit/80954
4505 * ipa-inline-analysis.c (free_growth_caches): Set
4506 edge_removal_hook_holder to NULL after removing it.
4507
4508 2017-06-02 Sudakshina Das <sudi.das@arm.com>
4509
4510 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
4511 comparision with zero.
4512
4513 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
4514 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
4515 for early expansion of vec_min and vec_max builtins.
4516 (builtin_function_type): Add min/max unsigned variants to those
4517 identified as having unsigned arguments.
4518
4519 2017-06-02 Olivier Hainque <hainque@adacore.com>
4520
4521 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
4522
4523 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4524
4525 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
4526 Use VALL_F16 iterator rather than VALL.
4527
4528 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4529
4530 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
4531 Emit CBNZ inside loop when doing a strong exchange and comparing
4532 against zero. Generate the CC flags after the loop.
4533
4534 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
4535
4536 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
4537 (dl_section_ref): New.
4538 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
4539 On AIX, append an expression to subtract the size of the
4540 section length to dl_section_ref.
4541
4542 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
4543
4544 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
4545 for early expansion of vector absolute builtins.
4546
4547 2017-06-02 Richard Biener <rguenther@suse.de>
4548
4549 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
4550 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
4551
4552 2017-06-02 Richard Biener <rguenther@suse.de>
4553
4554 PR tree-optimization/80948
4555 * tree-tailcall.c (find_tail_calls): Track stmts to move in
4556 stmt order as well.
4557
4558 2017-06-02 Richard Biener <rguenther@suse.de>
4559
4560 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
4561 PHIs are ok.
4562 * tree-vect-stmts.c (process_use): Do not mark backedge defs
4563 for inductions as relevant.
4564
4565 2017-06-02 Richard Biener <rguenther@suse.de>
4566
4567 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
4568 (vectorizable_induction): ... this. Remove dead code.
4569
4570 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
4571
4572 * builtins. (expand_builtin_alloca): Remove second parameter and
4573 infer its value from the first parameter instead.
4574 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
4575
4576 2017-06-02 Jakub Jelinek <jakub@redhat.com>
4577
4578 PR rtl-optimization/80903
4579 * loop-doloop.c (add_test): Unshare sequence.
4580
4581 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
4582
4583 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
4584
4585 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
4586
4587 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
4588 static.
4589 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
4590 xlogue_layout::get_instance, logue_layout::xlogue_layout,
4591 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
4592 (xlogue_layout::get_stub_rtx): Make static.
4593 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
4594 (xlogue_layout::compute_stub_managed_regs): Rename to...
4595 (xlogue_layout::count_stub_managed_regs): ...this.
4596 (xlogue_layout::is_stub_managed_reg): New function.
4597 (xlogue_layout::m_stub_names): Rename to...
4598 (xlogue_layout::s_stub_names): ...this, make static.
4599 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
4600 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
4601 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
4602 xlogue_layout::s_stub_names): Instantiate statics.
4603 (stub_managed_regs): Remove.
4604 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
4605 (disable_call_ms2sysv_xlogues): Rename to...
4606 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
4607 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
4608 warning logic.
4609 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
4610 change after reload_completed.
4611 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
4612 directly.
4613 (ix86_expand_prologue): Likewise.
4614 (ix86_expand_epilogue): Likewise.
4615 (ix86_expand_split_stack_prologue): Likewise.
4616 (ix86_compute_frame_layout): Remove frame parameter ...
4617 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
4618 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
4619 only if necessary.
4620 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
4621 (ix86_frame): Move from here ...
4622 * config/i386/i386.h (ix86_frame): ... to here.
4623 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
4624 complete ix86_frame data structure instead. Remove some_ld_name.
4625
4626 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
4627
4628 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
4629 symbols that hold a DECL_VALUE_EXPR.
4630
4631 2017-06-01 Martin Jambor <mjambor@suse.cz>
4632
4633 PR tree-optimization/80898
4634 * tree-sra.c (process_subtree_disqualification): Removed.
4635 (disqualify_candidate): Do not acll
4636 process_subtree_disqualification.
4637 (subtree_mark_written_and_enqueue): New function.
4638 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
4639 RHS has been disqualified and re-queue LHS if necessary. Apart
4640 from that, ignore disqualified RHS.
4641
4642 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4643
4644 * config/s390/s390.c (s390_emit_epilogue): Disable early return
4645 address fetch for z10 or later.
4646
4647 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4648
4649 * config/arc/arc.md (tst_movb): Add guard when splitting.
4650
4651 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4652
4653 * config/arc/arc.c (arc_can_eliminate): Test against
4654 arc_frame_pointer_needed.
4655
4656 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4657
4658 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
4659 to prevent store reordering.
4660 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
4661 (type): Add block type.
4662 (stack_tie): Define special instruction to be used in
4663 expand_prologue.
4664
4665 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4666
4667 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
4668 constraint. It is not valid for the pattern.
4669 (noncommutative_binary_comparison): Likewise.
4670
4671 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4672
4673 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
4674 scaled addresses.
4675
4676 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4677
4678 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
4679 be used by the reg-alloc.
4680
4681 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4682
4683 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
4684 reg-alloc when having mul64 or mul32x16 instructions.
4685 (mulsidi3): Likewise.
4686 (umulsidi3): Likewise.
4687 (mulsi32x16): New pattern.
4688 (mulsi64): Likewise.
4689 (mulsidi64): Likewise.
4690 (umulsidi64): Likewise.
4691 (MUL32x16_REG): Define.
4692 (mul64_600): Use MUL32x16_REG.
4693 (mac64_600): Likewise.
4694 (umul64_600): Likewise.
4695 (umac64_600): Likewise.
4696
4697 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4698
4699 * config/arc/arc.md (mulsi3_700): Make it commutative.
4700
4701 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
4702
4703 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
4704 type for movstouw.
4705 (*sign_extendsidi2_insn): Likewise for movstosw.
4706
4707 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
4708
4709 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
4710 the type of the input discriminant value. Convert the
4711 discriminant value of signedness vary.
4712
4713 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
4714
4715 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
4716 Add to -Wall section.
4717
4718 2017-06-01 Richard Biener <rguenther@suse.de>
4719
4720 PR middle-end/66313
4721 * fold-const.c (fold_plusminus_mult_expr): If the factored
4722 factor may be zero use a wrapping type for the inner operation.
4723 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
4724 and handle moved defs.
4725 (process_assignment): Properly guard the unary op case. Return a
4726 tri-state indicating that moving the stmt before the call may allow
4727 to continue. Pass through to_move.
4728 (find_tail_calls): Handle moving unrelated defs before
4729 the call.
4730
4731 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
4732
4733 PR target/80618
4734 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
4735 splitter result in the canonical way.
4736
4737 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
4738
4739 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
4740 also for 32bit target. Update insn attributes.
4741 (zero-extendsidi2 splitter): Allow all registers for operand 1.
4742
4743 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
4744
4745 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
4746 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
4747 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
4748 (_mm_maskz_min_ss): New intrinsics.
4749
4750 2017-05-31 Martin Liska <mliska@suse.cz>
4751
4752 * tree-vect-loop.c (vect_create_epilog_for_reduction):
4753 Change comment style to one we normally use.
4754 (vectorizable_reduction): Likewise.
4755 (vectorizable_induction): Likewise.
4756 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
4757 (vectorizable_call): Likewise.
4758 (vectorizable_simd_clone_call): Likewise.
4759 (vectorizable_conversion): Likewise.
4760 (vectorizable_assignment): Likewise.
4761 (vectorizable_shift): Likewise.
4762 (vectorizable_operation): Likewise.
4763 (vectorizable_store): Likewise.
4764 (vectorizable_load): Likewise.
4765 * tree-vectorizer.h: Likewise.
4766
4767 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
4768
4769 * passes.c (emergency_dump_function): New.
4770 * tree-pass.h (emergency_dump_function): Declare.
4771 * plugin.c (plugins_internal_error_function): Remove.
4772 * plugin.h (plugins_internal_error_function): Remove declaration.
4773 * toplev.c (internal_error_function): New static function. Use it...
4774 (general_init): ...here.
4775
4776 2017-05-31 Graham Markall <graham.markall@embecosm.com>
4777
4778 * config/arc/arc.c (arc_print_operand): Handle constant operands.
4779 (arc_rtx_costs): Add costs for new patterns.
4780 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
4781 * config/arc/predicates.md: Add _1_2_3_operand predicate.
4782
4783 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
4784
4785 * tree-ssa-strlen.c (get_next_strinfo): New function.
4786 (get_stridx_plus_constant): Use it.
4787 (zero_length_string): Likewise.
4788 (adjust_related_strinfos): Likewise.
4789 (adjust_last_stmt): Likewise.
4790
4791 2017-05-31 Richard Biener <rguenther@suse.de>
4792
4793 PR target/80880
4794 * config/i386/i386.c (ix86_expand_builtin): Remove assert
4795 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
4796
4797 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
4798
4799 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
4800 loop_vinfo argument and use of dependence distance vectors.
4801 Check instead whether the two references differ only in their
4802 initial value and assume that they have the same alignment if the
4803 difference is a multiple of the vector alignment.
4804 (vect_analyze_data_refs_alignment): Update call accordingly.
4805
4806 2017-05-31 Martin Liska <mliska@suse.cz>
4807
4808 PR target/79155
4809 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
4810
4811 2017-05-31 Bin Cheng <bin.cheng@arm.com>
4812
4813 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
4814 (create_intersect_range_checks): Move from ...
4815 * tree-data-ref.c (create_intersect_range_checks_index)
4816 (create_intersect_range_checks): ... to here.
4817 (create_runtime_alias_checks): New function factored from ...
4818 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
4819 here. Call above function.
4820 * tree-data-ref.h (create_runtime_alias_checks): New function.
4821
4822 2017-05-31 Bin Cheng <bin.cheng@arm.com>
4823
4824 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
4825 segment length for dr_b and compute it in wide_int.
4826
4827 2017-05-31 Richard Biener <rguenther@suse.de>
4828
4829 PR tree-optimization/80906
4830 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
4831 and pass through iv_map.
4832 (copy_bb_and_scalar_dependences): Adjust.
4833 (translate_pending_phi_nodes): Likewise.
4834 (copy_loop_close_phi_args): Handle code-generating IVs instead
4835 of ICEing.
4836
4837 2017-05-30 David Malcolm <dmalcolm@redhat.com>
4838
4839 * diagnostic-color.c (color_dict): Add "type-diff".
4840 (parse_gcc_colors): Update comment.
4841 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
4842 -fdiagnostics-show-template-tree and -fno-elide-type.
4843 (GCC_COLORS): Add type-diff to example.
4844 (type-diff=): New.
4845 (-fdiagnostics-show-template-tree): New.
4846 (-fno-elide-type): New.
4847 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
4848 the pp_format_decoder callback. Call any m_format_postprocessor's
4849 "handle" method.
4850 (pretty_printer::pretty_printer): Initialize
4851 m_format_postprocessor.
4852 (pretty_printer::~pretty_printer): Delete any
4853 m_format_postprocessor.
4854 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
4855 (class format_postprocessor): New class.
4856 (struct pretty_printer::format_decoder): Document the new parameters.
4857 (struct pretty_printer::m_format_postprocessor): New field.
4858 * tree-diagnostic.c (default_tree_printer): Update for new
4859 bool and const char ** params.
4860 * tree-diagnostic.h (default_tree_printer): Likewise.
4861
4862 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
4863
4864 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
4865 (lwa_operand): Delete rs6000_gen_cell_microcode test.
4866 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
4867 rs6000_gen_cell_microcode code.
4868 (rs6000_final_prescan_insn): Delete.
4869 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
4870 "warn-cell-microcode" entries.
4871 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
4872 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
4873 throughout. Change cc_reg_not_micro_cr0_operand to
4874 cc_reg_not_cr0_operand throughout.
4875 (*extendhi<mode>2_noload): Delete.
4876 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
4877 (mwarn-cell-microcode): Delete.
4878 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
4879 -mgen-cell-microcode and -mwarn-cell-microcode.
4880
4881 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
4882
4883 PR target/80833
4884 * config/i386/constraints.md (Yd): New constraint.
4885 (Ye): Ditto.
4886 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
4887 and (?Yd, r) alternatives. Update insn attributes.
4888 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
4889 and (?*Yd, r) alternatives. Update insn attributes.
4890 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
4891
4892 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
4893
4894 * gimplify.c (gimplify_modify_expr): Don't create a
4895 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
4896 function.
4897
4898 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
4899
4900 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
4901
4902 2017-05-30 Richard Biener <rguenther@suse.de>
4903
4904 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
4905 and reduc_def fields.
4906 (STMT_VINFO_REDUC_TYPE): New define.
4907 (STMT_VINFO_REDUC_DEF): Likewise.
4908 (vect_force_simple_reduction): Adjust prototype.
4909 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
4910 (vect_is_simple_reduction): Remove check_reduction argument.
4911 (vect_force_simple_reduction): Adjust and set
4912 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
4913 (vectorizable_reduction): Do not re-do reduction analysis
4914 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
4915 * tree-parloops.c (gather_scalar_reductions): Adjust.
4916
4917 2017-05-30 Richard Biener <rguenther@suse.de>
4918
4919 PR middle-end/80901
4920 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
4921 split_edge code.
4922
4923 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
4924
4925 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
4926 Introduce unknown_misalignment parameter and remove vf.
4927 (vect_peeling_hash_get_lowest_cost):
4928 Pass unknown_misalignment parameter.
4929 (vect_enhance_data_refs_alignment):
4930 Fix unsupportable data ref treatment.
4931
4932 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4933
4934 * tree-vect-data-refs.c (vect_get_data_access_cost):
4935 Workaround for SLP handling.
4936 (vect_enhance_data_refs_alignment):
4937 Compute costs for doing no peeling at all, compare to the best
4938 peeling costs so far and avoid peeling if cheaper.
4939
4940 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4941
4942 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
4943 Return peeling info and set costs to zero for unlimited cost
4944 model.
4945 (vect_enhance_data_refs_alignment): Also inspect all datarefs
4946 with unknown misalignment. Compute and costs for unknown
4947 misalignment, compare them to the costs for known misalignment
4948 and choose the cheapest for peeling.
4949
4950 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4951
4952 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
4953 (vect_get_peeling_costs_all_drs): Create function.
4954 (vect_peeling_hash_get_lowest_cost):
4955 Use vect_get_peeling_costs_all_drs.
4956 (vect_peeling_supportable): Create function.
4957 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
4958
4959 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4960
4961 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
4962 DR_HAS_NEGATIVE_STEP.
4963 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
4964 (vect_enhance_data_refs_alignment): Use.
4965 (vect_duplicate_ssa_name_ptr_info): Use.
4966 * tree-vectorizer.h (dr_misalignment): Use.
4967 (known_alignment_for_access_p): Use.
4968
4969 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
4970
4971 PR target/78838
4972 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
4973 .lowtext.
4974 (has_section_name): New function.
4975
4976 2017-05-30 Martin Liska <mliska@suse.cz>
4977
4978 PR other/80909
4979 * auto-profile.c (get_function_decl_from_block): Fix
4980 parenthesis.
4981
4982 2017-05-30 Richard Biener <rguenther@suse.de>
4983
4984 PR middle-end/80876
4985 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
4986
4987 2017-05-30 Martin Liska <mliska@suse.cz>
4988
4989 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
4990 * dumpfile.h (struct dump_file_info): Remove ctors.
4991
4992 2017-05-30 Martin Liska <mliska@suse.cz>
4993
4994 * predict.def: Fix GNU coding style.
4995
4996 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
4997
4998 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
4999 Mark 'to' argument with ATTRIBUTE_UNUSED.
5000
5001 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
5002
5003 * config/xtensa/xtensa.c (xtensa_emit_call): Use
5004 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
5005 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
5006 format string.
5007
5008 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
5009
5010 * doc/install.texi (Options specification): Restore entry of
5011 --enable-sjlj-exceptions.
5012
5013 2017-05-27 Michael Eager <eager@eagercon.com>
5014
5015 Revert:
5016 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
5017
5018 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
5019
5020 * config/microblaze/microblaze.h
5021 (FIXED_REGISTERS): Update in macro.
5022 (CALL_USED_REGISTERS): Update in macro.
5023
5024 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
5025
5026 * doc/install.texi: Add links to macOS binary distributions.
5027
5028 2017-05-27 Jakub Jelinek <jakub@redhat.com>
5029
5030 PR bootstrap/80887
5031 Revert:
5032 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
5033
5034 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
5035
5036 2017-05-26 Martin Liska <mliska@suse.cz>
5037
5038 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
5039
5040 2017-05-26 Martin Liska <mliska@suse.cz>
5041
5042 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
5043 always leading ';; '.
5044 (dump_bb_info): Likewise.
5045 (brief_dump_cfg): Likewise.
5046 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
5047 * dumpfile.c: Remove usage of TDF_VERBOSE.
5048 * dumpfile.h (enum dump_kind): Likewise.
5049 (dump_gimple_bb_header): Do not use TDF_COMMENT.
5050 * print-tree.c (debug_verbose): Remove.
5051 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
5052 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
5053 * tree-diagnostic.c (default_tree_printer): Replace
5054 TDF_DIAGNOSTIC with TDF_SLIM.
5055
5056 2017-05-26 Bin Cheng <bin.cheng@arm.com>
5057
5058 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
5059 in parameter loop, rather than loop_vinfo.
5060 (create_intersect_range_checks): Ditto.
5061 (vect_create_cond_for_alias_checks): Update call to above functions.
5062
5063 2017-05-26 Bin Cheng <bin.cheng@arm.com>
5064
5065 PR tree-optimization/80815
5066 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
5067 for merging runtime alias checks. Handle negative DR_STEPs.
5068
5069 2017-05-26 Bin Cheng <bin.cheng@arm.com>
5070
5071 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
5072 Move from ...
5073 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
5074 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
5075 out code pruning runtime alias checks.
5076 * tree-data-ref.c (prune_runtime_alias_test_list): New function
5077 factored out from above.
5078 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
5079 Move from ...
5080 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
5081 ... to here.
5082 (prune_runtime_alias_test_list): New decalaration.
5083
5084 2017-05-26 Bin Cheng <bin.cheng@arm.com>
5085
5086 * tree-vect-data-refs.c (compare_tree): Rename and move ...
5087 * tree-data-ref.c (data_ref_compare_tree): ... to here.
5088 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
5089 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
5090 (operator==, comp_dr_with_seg_len_pair): Ditto.
5091 (vect_prune_runtime_alias_test_list): Ditto.
5092
5093 2017-05-26 Martin Liska <mliska@suse.cz>
5094
5095 PR ipa/80663
5096 * params.def: Bound partial-inlining-entry-probability param.
5097
5098 2017-05-26 Marek Polacek <polacek@redhat.com>
5099
5100 PR sanitizer/80875
5101 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
5102 can be negated.
5103
5104 2017-05-26 Richard Biener <rguenther@suse.de>
5105
5106 PR tree-optimization/80842
5107 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
5108 value.
5109
5110 2017-05-26 Richard Biener <rguenther@suse.de>
5111
5112 PR tree-optimization/80844
5113 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
5114
5115 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
5116
5117 * doc/md.texi (Machine Constraints): Update x86 family
5118 machine constraints section to match 'config/i386/constraints.md'.
5119
5120 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
5121
5122 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
5123
5124 2017-05-25 Nathan Sidwell <nathan@acm.org>
5125
5126 * doc/invoke.texi (--enable-languages): Update documentation.
5127
5128 2017-05-25 Martin Liska <mliska@suse.cz>
5129
5130 * dumpfile.c: Add TDF_FOLDING.
5131 * dumpfile.h (enum dump_kind): Likewise.
5132 * genmatch.c (dt_simplify::gen_1): Use it.
5133
5134 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
5135
5136 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
5137
5138 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
5139
5140 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
5141 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
5142
5143 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
5144
5145 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
5146 * match.pd (X == C): Rewrite it here.
5147 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
5148 with_certain_nonzero_bits2): New predicates.
5149 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
5150
5151 2017-05-24 Nathan Sidwell <nathan@acm.org>
5152
5153 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
5154 avoid warning.
5155
5156 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
5157 warning.
5158
5159 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
5160
5161 * config/powerpcspe: New port. Files are copied from the rs6000
5162 port, with "rs6000" in filenames replaced by "powerpcspe".
5163
5164 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
5165
5166 PR rtl-optimization/80754
5167 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
5168
5169 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
5170
5171 * config/sparc/sparc.md (length): Return the correct value for -mflat
5172 sibcalls to match output_sibcall.
5173
5174 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
5175
5176 PR bootstrap/80860
5177 PR bootstrap/80843
5178 * config/rs6000/rs6000.c (struct machine_function): Add new field
5179 n_components.
5180 (rs6000_get_separate_components): Init that field, use it.
5181 (rs6000_components_for_bb): Use the field.
5182
5183 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
5184
5185 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
5186
5187 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
5188
5189 PR middle-end/80823
5190 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
5191
5192 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5193
5194 PR target/80725
5195 * config/s390/s390.c (s390_check_qrst_address): Check incoming
5196 address against address_operand predicate.
5197 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
5198
5199 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
5200
5201 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
5202 parameters passed indirectly.
5203
5204 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
5205
5206 * config/i386/i386.md (*movdi_internal): Remove SSE4
5207 alternative 18 (?r, *v). Update insn attributes.
5208 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
5209 Update insn attributes.
5210 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
5211 Update insn attributes.
5212 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
5213 alternative 1 (r, v). Remove isa attribute.
5214 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
5215 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
5216 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
5217
5218 2017-05-23 Tom de Vries <tom@codesourcery.com>
5219
5220 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
5221 dg-line directive.
5222
5223 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
5224
5225 * cgraphunit.c (symbol_table::process_new_functions): Update.
5226 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
5227 (inline_generate_summary): Rename to ...
5228 (ipa_fn_summary_generate): ... this one.
5229 (inline_read_summary): Rename to ...
5230 (ipa_fn_summary_read): ... this one.
5231 (inline_write_summary): Rename to ...
5232 (ipa_fn_summary_write): ... this one.
5233 (inline_free_summary): Rename to ...
5234 (ipa_free_fn_summary): ... this one.
5235 (pass_data_local_fn_summary, pass_local_fn_summary,
5236 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
5237 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
5238 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
5239 make_pass_ipa_fn_summary): New.
5240 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
5241 inline_write_summary, inline_free_summary): Remove.
5242 (ipa_free_fn_summary) : New.
5243 * ipa-inline.c (ipa_inline): Update.
5244 (pass_ipa_inline): Do not generate summaries.
5245 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
5246 Remove.
5247 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
5248 and add pass_ipa_fn_summary.
5249 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
5250 New.
5251 (make_pass_inline_parameters): Remove.
5252
5253 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
5254
5255 * omp-low.c (struct omp_context): Remove "default_kind" member.
5256 Adjust all users.
5257
5258 * omp-offload.c (execute_oacc_device_lower): Remove the
5259 parallelism dimensions function attributes for unparallelized
5260 OpenACC kernels constructs.
5261
5262 2017-05-23 Martin Liska <mliska@suse.cz>
5263
5264 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
5265 functions.
5266 (cgraph_edge::make_speculative): Likewise.
5267 (cgraph_edge::resolve_speculation): Likewise.
5268 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
5269 (cgraph_node::dump): Likewise.
5270 * cgraph.h: Likewise.
5271 * cgraphunit.c (analyze_functions): Likewise.
5272 (symbol_table::compile): Likewise.
5273 * ipa-cp.c (print_all_lattices): Likewise.
5274 (determine_versionability): Likewise.
5275 (initialize_node_lattices): Likewise.
5276 (ipcp_verify_propagated_values): Likewise.
5277 (estimate_local_effects): Likewise.
5278 (update_profiling_info): Likewise.
5279 (create_specialized_node): Likewise.
5280 (perhaps_add_new_callers): Likewise.
5281 (decide_about_value): Likewise.
5282 (decide_whether_version_node): Likewise.
5283 (identify_dead_nodes): Likewise.
5284 (ipcp_store_bits_results): Likewise.
5285 * ipa-devirt.c (dump_targets): Likewise.
5286 (ipa_devirt): Likewise.
5287 * ipa-icf.c (sem_item::dump): Likewise.
5288 (sem_function::equals): Likewise.
5289 (sem_variable::equals): Likewise.
5290 (sem_item_optimizer::read_section): Likewise.
5291 (sem_item_optimizer::execute): Likewise.
5292 (congruence_class::dump): Likewise.
5293 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
5294 (dump_inline_summary): Likewise.
5295 (estimate_node_size_and_time): Likewise.
5296 (inline_analyze_function): Likewise.
5297 * ipa-inline-transform.c (inline_call): Likewise.
5298 * ipa-inline.c (report_inline_failed_reason): Likewise.
5299 (want_early_inline_function_p): Likewise.
5300 (edge_badness): Likewise.
5301 (update_edge_key): Likewise.
5302 (inline_small_functions): Likewise.
5303 * ipa-profile.c (ipa_profile): Likewise.
5304 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
5305 (ipa_make_edge_direct_to_target): Likewise.
5306 (remove_described_reference): Likewise.
5307 (ipa_impossible_devirt_target): Likewise.
5308 (propagate_controlled_uses): Likewise.
5309 (ipa_print_node_params): Likewise.
5310 (ipcp_transform_function): Likewise.
5311 * ipa-pure-const.c (pure_const_read_summary): Likewise.
5312 (propagate_pure_const): Likewise.
5313 * ipa-reference.c (generate_summary): Likewise.
5314 (read_write_all_from_decl): Likewise.
5315 (propagate): Likewise.
5316 (ipa_reference_read_optimization_summary): Likewise.
5317 * ipa-utils.c (ipa_merge_profiles): Likewise.
5318 * ipa.c (walk_polymorphic_call_targets): Likewise.
5319 (symbol_table::remove_unreachable_nodes): Likewise.
5320 (ipa_single_use): Likewise.
5321 * passes.c (execute_todo): Likewise.
5322 * predict.c (drop_profile): Likewise.
5323 * symtab.c (symtab_node::get_dump_name): New function.
5324 (symtab_node::dump_name): Likewise.
5325 (symtab_node::dump_asm_name): Likewise.
5326 (symtab_node::dump_references): Likewise.
5327 (symtab_node::dump_referring): Likewise.
5328 (symtab_node::dump_base): Likewise.
5329 (symtab_node::debug_symtab): Likewise.
5330 * tree-sra.c (convert_callers_for_node): Likewise.
5331 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
5332 * value-prof.c (init_node_map): Likewise.
5333
5334 2017-05-23 Martin Liska <mliska@suse.cz>
5335
5336 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
5337 and symtab_node::debug_symtab to symbol_table::debug.
5338 * cgraphunit.c (analyze_functions): Use the renamed function.
5339 (symbol_table::compile): Likewise.
5340 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
5341 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
5342 * passes.c (execute_todo): Likewise.
5343 * symtab.c (symbol_table::dump): New function.
5344 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
5345
5346 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
5347
5348 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
5349 that nonconst implies exec.
5350
5351 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
5352
5353 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
5354 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
5355 (inline_edge_summary_vec): Turn into ...
5356 (ipa_call_summaries): ... this one.
5357 (redirect_to_unreachable, edge_set_predicate,
5358 evaluate_properties_for_edge, inline_summary_alloc,
5359 reset_ipa_call_summary, reset_inline_summary,
5360 inline_summary_t::duplicate): Update.
5361 (inline_edge_duplication_hook): Turn to ...
5362 (ipa_call_summary_t::duplicate): ... this one.
5363 (inline_edge_removal_hook): Turn to ...
5364 (ipa_call_summary_t::remove): ... this one.
5365 (dump_inline_edge_summary): Turn to ...
5366 (dump_ipa_call_summary): ... this one.
5367 (estimate_function_body_sizes): Update.
5368 (inline_update_callee_summaries): Update.
5369 (remap_edge_change_prob): Update.
5370 (remap_edge_summaries): Update.
5371 (inline_merge_summary): Update.
5372 (do_estimate_edge_time): Update.
5373 (inline_generate_summary): Update.
5374 (inline_read_section): Update.
5375 (inline_read_summary): Update.
5376 (inline_free_summary): Update.
5377 * ipa-inline.c (can_inline_edge_p): Update.
5378 (compute_inlined_call_time): Update.
5379 (want_inline_small_function_p): Update.
5380 (edge_badness): Update.
5381 (early_inliner): Update.
5382 * ipa-inline.h (inline_edge_summary): Turn to ...
5383 (ipa_call_summary): ... this one.
5384 (ipa_call_summary_t): New class.
5385 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
5386 (ipa_call_summaries): New.
5387 (inline_edge_summary): Remove.
5388 (estimate_edge_growth): Update.
5389 * ipa-profile.c (ipa_propagate_frequency_1): Update.
5390 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
5391 * ipa-split.c (execute_split_functions): Update.
5392 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
5393
5394 2017-05-23 Tom de Vries <tom@codesourcery.com>
5395
5396 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
5397 attributes): Document rdrand effective target.
5398
5399 2017-05-23 Tom de Vries <tom@codesourcery.com>
5400
5401 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
5402 attributes): Sort alphabetically.
5403
5404 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
5405
5406 * config/avr/genmultilib.awk: Use gsub instead of gensub.
5407
5408 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
5409
5410 PR target/80718
5411 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
5412 V2DF/V2DI splat into two separate patterns, one that handles
5413 registers, and the other that only handles memory. Drop support
5414 for splatting from a GPR on ISA 2.07 and then splitting the
5415 splat into direct move and splat.
5416 (vsx_splat_<mode>_reg): Likewise.
5417 (vsx_splat_<mode>_mem): Likewise.
5418
5419 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
5420
5421 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
5422
5423 2017-05-22 Jakub Jelinek <jakub@redhat.com>
5424
5425 PR middle-end/80809
5426 * omp-low.c (finish_taskreg_remap): New function.
5427 (finish_taskreg_scan): If unit size of ctx->record_type
5428 is non-constant, unshare the size expression and replace
5429 decls in it with possible outer var refs.
5430
5431 PR middle-end/80809
5432 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
5433 GOVD_SHARED rather than GOVD_PRIVATE with it.
5434 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
5435 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
5436
5437 PR middle-end/80853
5438 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
5439 as last argument to build_outer_var_ref for pointer bases of array
5440 section reductions.
5441
5442 2017-05-19 Martin Sebor <msebor@redhat.com>
5443
5444 * print-tree.c (print_node): Print DECL_READ_P flag.
5445
5446 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
5447
5448 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
5449 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
5450 * cgraph.c: Likewise.
5451 * cgraphunit.c: Likewise.
5452 * gengtype.c: Likewise.
5453 * ipa-cp.c: Likewise.
5454 * ipa-devirt.c: Likewise.
5455 * ipa-icf.c: Likewise.
5456 * ipa-predicate.c: Likewise.
5457 * ipa-profile.c: Likewise.
5458 * ipa-prop.c: Likewise.
5459 * ipa-split.c: Likewise.
5460 * ipa.c: Likewise.
5461 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
5462 edge_predicate_pool, dump_inline_hints,
5463 inline_summary::account_size_time, redirect_to_unreachable,
5464 edge_set_predicate, set_hint_predicate,
5465 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
5466 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
5467 inline_summary_t::remove, remap_hint_predicate_after_duplication,
5468 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
5469 ipa_call_summary_t::remove, initialize_growth_caches,
5470 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
5471 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
5472 mark_modified, unmodified_parm_1, unmodified_parm,
5473 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
5474 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
5475 compute_bb_predicates, will_be_nonconstant_expr_predicate,
5476 will_be_nonconstant_predicate, record_modified_bb_info,
5477 get_minimal_bb, record_modified, param_change_prob,
5478 phi_result_unknown_predicate, predicate_for_phi_result,
5479 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
5480 estimate_function_body_sizes, compute_inline_parameters,
5481 compute_inline_parameters_for_curren, pass_data_inline_parameters,
5482 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
5483 inline_update_callee_summaries, remap_edge_change_prob,
5484 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
5485 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
5486 inline_analyze_function, inline_summary_t::insert,
5487 inline_generate_summary, read_ipa_call_summary, inline_read_section,
5488 inline_read_summary, write_ipa_call_summary, inline_write_summary,
5489 inline_free_summary): Move to ipa-fnsummary.h
5490 (predicate_t): Remove.
5491 * ipa-fnsummary.c: New file.
5492 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
5493 (enum inline_hints_vals, inline_hints, agg_position_info,
5494 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
5495 inline_summaries, ipa_call_summary, ipa_call_summary_t,
5496 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
5497 dump_inline_summary, dump_inline_hints, inline_generate_summary,
5498 inline_read_summary, inline_write_summary, inline_free_summary,
5499 inline_analyze_function, initialize_inline_failed,
5500 inline_merge_summary, inline_update_overall_summary,
5501 compute_inline_parameters): Move to ipa-fnsummary.h
5502 * ipa-fnsummary.h: New file.
5503 * ipa-inline-transform.h: Include ipa-inline.h.
5504 * ipa-inline.c: LIkewise.
5505
5506 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
5507
5508 * ipa-inline.c (edge_badness): Use inlined_time instead of
5509 inline_summaries->get.
5510
5511 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
5512
5513 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
5514
5515 2017-05-22 Nathan Sidwell <nathan@acm.org>
5516
5517 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
5518 (fdump-lang): Document 'raw' option.
5519 * dumpfile.h (TDI_tu): Delete.
5520 * dumpfile.c (dump_files): Remove translation-unit.
5521 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
5522
5523 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
5524
5525 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
5526 command option from $(AWK) call.
5527 * config/avr/genmultilib.awk: Simplify and rewrite so that it
5528 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
5529 [FORMAT]: Remove handling of variable.
5530 * config/avr/t-multilib: Regenerate.
5531
5532 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
5533
5534 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
5535 self_time.
5536 (dump_inline_summary): Do not print self_time.
5537 (estimate_function_body_sizes): Do not set self_time.
5538 (compute_inline_parameters): Likewise.
5539 (inline_read_section, inline_write_summary): Do not stream self_time.
5540 * ipa-inline.h (inline_summary): Drop self_time.
5541
5542 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
5543
5544 * ipa-inline-analysis.c (account_size_time): Rename to ...
5545 (inline_summary::account_size_time): ... this one.
5546 (reset_ipa_call_summary): Turn to ...
5547 (ipa_call_summary::reset): ... this one.
5548 (reset_inline_summary): Turn to ...
5549 (inline_summary::reset): ... this one.
5550 (inline_summary_t::remove): Update.
5551 (inline_summary_t::duplicate): Update.
5552 (ipa_call_summary_t::remove): Update.
5553 (dump_inline_summary): Update.
5554 (estimate_function_body_sizes): Update.
5555 (compute_inline_parameters): Update.
5556 (estimate_node_size_and_time): Update.
5557 (inline_merge_summary): Update.
5558 (inline_update_overall_summary): Update.
5559 (inline_read_section): Update.
5560 (inline_write_summary): Update.
5561 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
5562 add account_size_time and reset member functions.
5563 (ipa_call_summary): Add reset function.
5564 * ipa-predicate.h (predicate::operator &): Constify.
5565
5566 2017-05-22 Richard Biener <rguenther@suse.de>
5567
5568 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
5569
5570 2017-05-19 Jason Merrill <jason@redhat.com>
5571
5572 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
5573
5574 2017-05-19 Marek Polacek <polacek@redhat.com>
5575
5576 PR sanitizer/80800
5577 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
5578 TYPE_OVERFLOW_WRAPS checks.
5579
5580 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
5581
5582 * tree-core.h (enum omp_clause_default_kind): Add
5583 "OMP_CLAUSE_DEFAULT_PRESENT".
5584 * tree-pretty-print.c (dump_omp_clause): Handle it.
5585 * gimplify.c (enum gimplify_omp_var_data): Add
5586 "GOVD_MAP_FORCE_PRESENT".
5587 (gimplify_adjust_omp_clauses_1): Map it to
5588 "GOMP_MAP_FORCE_PRESENT".
5589 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
5590
5591 * gimplify.c (oacc_default_clause): Clarify.
5592
5593 2017-05-19 Nathan Sidwell <nathan@acm.org>
5594
5595 LANG_HOOK_REGISTER_DUMPS
5596 * toplev.c (general_init): Call register dump lang hook.
5597 * doc/invoke.texi: Document -fdump-lang option family.
5598 * dumpfile.c (dump_files): Remove class dump here.
5599 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
5600 * dumpfile.h (tree_dump_index): Remove TDI_class.
5601 * langhooks-def.h (lhd_register_dumps): Declare.
5602 (LANG_HOOKS_REGISTER_DUMPS): Define.
5603 (LANG_HOOKS_INITIALIZER): Add it.
5604 * langhooks.c (lhd_register_dumps): Define.
5605 * langhooks.h (struct lang_hooks): Add register_dumps.
5606
5607 2017-05-19 Nathan Sidwell <nathan@acm.org>
5608
5609 * context.h (context::set_passes): New.
5610 * context.c (context::context): Do not create pass manager.
5611 * toplev.c (general_init): Create pass manager here.
5612
5613 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
5614
5615 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
5616 use this splitter if two add or or instructions would also work for
5617 the constant we want to generate.
5618
5619 2017-05-19 Richard Biener <rguenther@suse.de>
5620
5621 PR build/80821
5622 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
5623 predicate evaluation.
5624
5625 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
5626
5627 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
5628 add ctor.
5629 * ipa-inline.c (want_inline_small_function_p): Do not cast to
5630 unsigned.
5631
5632 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
5633
5634 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
5635 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
5636 (inline_edge_summary_vec): Turn into ...
5637 (ipa_call_summaries): ... this one.
5638 (redirect_to_unreachable, edge_set_predicate,
5639 evaluate_properties_for_edge, inline_summary_alloc,
5640 reset_ipa_call_summary, reset_inline_summary,
5641 inline_summary_t::duplicate): Update.
5642 (inline_edge_duplication_hook): Turn to ...
5643 (ipa_call_summary_t::duplicate): ... this one.
5644 (inline_edge_removal_hook): Turn to ...
5645 (ipa_call_summary_t::remove): ... this one.
5646 (dump_inline_edge_summary): Turn to ...
5647 (dump_ipa_call_summary): ... this one.
5648 (estimate_function_body_sizes): Update.
5649 (inline_update_callee_summaries): Update.
5650 (remap_edge_change_prob): Update.
5651 (remap_edge_summaries): Update.
5652 (inline_merge_summary): Update.
5653 (do_estimate_edge_time): Update.
5654 (inline_generate_summary): Update.
5655 (inline_read_section): Update.
5656 (inline_read_summary): Update.
5657 (inline_free_summary): Update.
5658 * ipa-inline.c (can_inline_edge_p): Update.
5659 (compute_inlined_call_time): Update.
5660 (want_inline_small_function_p): Update.
5661 (edge_badness): Update.
5662 (early_inliner): Update.
5663 * ipa-inline.h (inline_edge_summary): Turn to ...
5664 (ipa_call_summary): ... this one.
5665 (ipa_call_summary_t): New class.
5666 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
5667 (ipa_call_summaries): New.
5668 (inline_edge_summary): Remove.
5669 (estimate_edge_growth): Update.
5670 * ipa-profile.c (ipa_propagate_frequency_1): Update.
5671 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
5672 * ipa-split.c (execute_split_functions): Update.
5673 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
5674
5675 2017-05-19 Richard Biener <rguenther@suse.de>
5676
5677 PR middle-end/80764
5678 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
5679
5680 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
5681
5682 * config/rs6000/rs6000.c (struct machine_function): Add field
5683 fpr_is_wrapped_separately.
5684 (rs6000_get_separate_components): Use 64 components. Handle the
5685 new FPR components.
5686 (rs6000_components_for_bb): Handle the FPR components.
5687 (rs6000_emit_prologue_components): Handle the FPR components.
5688 (rs6000_emit_epilogue_components): Handle the FPR components.
5689 (rs6000_set_handled_components): Handle the FPR components.
5690 (rs6000_emit_prologue): Don't output prologue code for those FPRs
5691 that are already separately shrink-wrapped.
5692 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
5693 that are already separately shrink-wrapped.
5694
5695 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
5696
5697 PR target/80510
5698 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
5699 New predicate.
5700
5701 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
5702 (define_peephole2 for Altivec d-form load): Add peepholes to catch
5703 cases where the register allocator uses a move and an offsettable
5704 memory operation to/from a FPR register on ISA 2.06/2.07.
5705 (define_peephole2 for Altivec d-form store): Likewise.
5706
5707 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
5708
5709 PR target/80799
5710 * config/i386/mmx.md (*mov<mode>_internal): Enable
5711 alternatives 11, 12, 13 and 14 also for 32bit targets.
5712 Remove alternatives 15, 16, 17 and 18.
5713 * config/i386/sse.md (vec_concatv2di): Change
5714 alternative (!x, *y) to (x, ?!*Yn).
5715
5716 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
5717
5718 * dumpfile.h (enum dump_kind): Remove stray comma.
5719
5720 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
5721
5722 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
5723 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
5724 predicate::num_conditions
5725 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
5726 (CHANGED): turn into predicate::changed.
5727 (agg_position_info): Move to ipa-predicate.h
5728 (add_condition, predicate::add_clause, predicate::operator &=,
5729 predicate::or_with, predicate::evaluate, predicate::probability,
5730 dump_condition, dump_clause, predicate::dump,
5731 predicate::remap_after_duplication, predicate::remap_after_inlining,
5732 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
5733 (evaluate_conditions_for_known_args): Update.
5734 (set_cond_stmt_execution_predicate): Update.
5735 * ipa-inline.h: Include ipa-predicate.h
5736 (condition, inline_param_summary, conditions, agg_position_info,
5737 predicate): Move to ipa-predicate.h
5738 * ipa-predicate.c: New file.
5739 * ipa-predicate.h: New file.
5740
5741 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
5742
5743 * final.c (leaf_function_p): Check we are not in a sequence.
5744
5745 2017-05-18 Martin Liska <mliska@suse.cz>
5746
5747 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
5748 * dumpfile.c (dump_register): Use new enum dump_kind.
5749 (get_dump_file_name): Likewise.
5750 (dump_enable_all): Likewise.
5751 (dump_switch_p_1): Likewise.
5752 (enable_rtl_dump_file): Remove usage of TDF_RTL.
5753 * dumpfile.h (enum dump_kind): New enum type.
5754 (struct dump_file_info): Create constructor and
5755 format fields and comments.
5756 * passes.c (pass_manager::register_one_dump_file):
5757 Use num dump_kind.
5758 * statistics.c (statistics_early_init): Likewise.
5759 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
5760 TDF_TREE with TDF_SLIM.
5761 (gather_memory_references_ref): Likewise.
5762
5763 2017-05-18 Martin Liska <mliska@suse.cz>
5764
5765 * vec.h (struct vnull): Use it.
5766
5767 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
5768
5769 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
5770 (true_predicate, false_predicate, true_predicate_p,
5771 false_predicate_p): Remove.
5772 (single_cond_predicate, not_inlined_predicate): Turn to member function
5773 in ipa-inline.h
5774 (add_condition): Update.
5775 (add_clause): Turn to...
5776 (predicate::add_clause): ... this one; update; allow passing NULL
5777 as parameter.
5778 (and_predicates): Turn to ...
5779 (predicate::operator &=): ... this one.
5780 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
5781 (or_predicates): Turn to ...
5782 (predicate::or_with): ... this one.
5783 (evaluate_predicate): Turn to ...
5784 (predicate::evaluate): ... this one.
5785 (predicate_probability): Turn to ...
5786 (predicate::probability): ... this one.
5787 (dump_condition): Update.
5788 (dump_predicate): Turn to ...
5789 (predicate::dump): ... this one.
5790 (account_size_time): Update.
5791 (edge_set_predicate): Update.
5792 (set_hint_predicate): UPdate.
5793 (evaluate_conditions_for_known_args): Update.
5794 (evaluate_properties_for_edge): Update.
5795 (remap_predicate_after_duplication): Turn to...
5796 (predicate::remap_after_duplication): ... this one.
5797 (remap_hint_predicate_after_duplication): Update.
5798 (inline_summary_t::duplicate): UPdate.
5799 (dump_inline_edge_summary): Update.
5800 (dump_inline_summary): Update.
5801 (set_cond_stmt_execution_predicate): Update.
5802 (set_switch_stmt_execution_predicate): Update.
5803 (compute_bb_predicates): Update.
5804 (will_be_nonconstant_expr_predicate): Update.
5805 (will_be_nonconstant_predicate): Update.
5806 (phi_result_unknown_predicate): Update.
5807 (predicate_for_phi_result): Update.
5808 (array_index_predicate): Update.
5809 (estimate_function_body_sizes): Update.
5810 (estimate_node_size_and_time): Update.
5811 (estimate_ipcp_clone_size_and_time): Update.
5812 (remap_predicate): Rename to ...
5813 (predicate::remap_after_inlining): ... this one.
5814 (remap_hint_predicate): Update.
5815 (inline_merge_summary): Update.
5816 (inline_update_overall_summary): Update.
5817 (estimate_size_after_inlining): Update.
5818 (read_predicate): Rename to ...
5819 (predicate::stream_in): ... this one.
5820 (read_inline_edge_summary): Update.
5821 (write_predicate): Rename to ...
5822 (predicate::stream_out): ... this one.
5823 (write_inline_edge_summary): Update.
5824 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
5825 (clause_t): Turn to uint32_t
5826 (predicate): Turn to class; implement constructor and operators
5827 ==, !=, &
5828 (size_time_entry): Update.
5829 (inline_summary): Update.
5830 (inline_edge_summary): Update.
5831
5832 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
5833
5834 * fold-const.c (fold_binary_loc): Move transformation...
5835 * match.pd (C - X CMP X): ... here.
5836
5837 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
5838
5839 * config/sparc/sparc.c (sparc_option_override): Set function
5840 alignment for -mcpu=niagara7 to 64 to match the I$ line.
5841 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
5842 latency to 1.
5843 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
5844 latency to 2.
5845 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
5846
5847 2017-05-18 Marek Polacek <polacek@redhat.com>
5848
5849 PR sanitizer/80797
5850 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
5851 (pass_ubsan::execute): Call gimple_assign_single_p instead of
5852 gimple_assign_load_p.
5853
5854 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
5855
5856 PR middle-end/80692
5857 * real.c (do_compare): Give decimal_do_compare preference over
5858 comparing just the signs.
5859
5860 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
5861
5862 * doc/md.texi (Canonicalization of Instructions): Describe the
5863 canonical form of instructions that inherently set a condition
5864 code register.
5865
5866 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
5867
5868 PR middle-end/80775
5869 * tree-cfg.c: Move deletion of unreachable case statements to after
5870 the merging of consecutive case labels.
5871
5872 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
5873
5874 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
5875 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
5876 restoring of callee-saved registers.
5877
5878 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
5879
5880 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
5881 * config/visium/visium.c (single_set_and_flags): Likewise.
5882 * config/visium/visium.md (Substitutions): Likewise.
5883
5884 2017-05-17 Martin Liska <mliska@suse.cz>
5885
5886 * cfg.c: Introduce dump_flags_t type and
5887 use it instead of int type.
5888 * cfg.h: Likewise.
5889 * cfghooks.c: Likewise.
5890 * cfghooks.h (struct cfg_hooks): Likewise.
5891 * cfgrtl.c: Likewise.
5892 * cfgrtl.h: Likewise.
5893 * cgraph.c (cgraph_node::get_body): Likewise.
5894 * coretypes.h: Likewise.
5895 * domwalk.c: Likewise.
5896 * domwalk.h: Likewise.
5897 * dumpfile.c (struct dump_option_value_info): Likewise.
5898 (dump_enable_all): Likewise.
5899 (dump_switch_p_1): Likewise.
5900 (opt_info_switch_p): Likewise.
5901 * dumpfile.h (enum tree_dump_index): Likewise.
5902 (struct dump_file_info): Likewise.
5903 * genemit.c: Likewise.
5904 * generic-match-head.c: Likewise.
5905 * gengtype.c (open_base_files): Likewise.
5906 * gimple-pretty-print.c: Likewise.
5907 * gimple-pretty-print.h: Likewise.
5908 * graph.c (print_graph_cfg): Likewise.
5909 * graphite-scop-detection.c (dot_all_sese): Likewise.
5910 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
5911 * loop-unroll.c (report_unroll): Likewise.
5912 * passes.c (pass_manager::register_one_dump_file): Likewise.
5913 * print-tree.c: Likewise.
5914 * statistics.c: Likewise.
5915 * tree-cfg.c: Likewise.
5916 * tree-cfg.h: Likewise.
5917 * tree-dfa.c: Likewise.
5918 * tree-dfa.h: Likewise.
5919 * tree-dump.c (dump_function): Likewise.
5920 * tree-dump.h (struct dump_info): Likewise.
5921 * tree-pretty-print.c: Likewise.
5922 * tree-pretty-print.h: Likewise.
5923 * tree-ssa-live.c: Likewise.
5924 * tree-ssa-live.h: Likewise.
5925 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
5926 * tree-vect-loop.c: Likewise.
5927 * tree-vect-slp.c: Likewise.
5928
5929 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5930 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5931
5932 PR tree-optimization/80457
5933 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
5934 of all arguments to a statement as scalar_to_vec operations.
5935 (vectorizable_call): Adjust call to vect_model_simple_cost for
5936 new parameter.
5937 (vectorizable_conversion): Likewise.
5938 (vectorizable_assignment): Likewise.
5939 (vectorizable_shift): Likewise.
5940 (vectorizable_operation): Likewise.
5941 (vectorizable_comparison): Likewise.
5942 (vect_is_simple_cond): Record the def types for operands.
5943 (vectorizable_condition): Likewise, call vect_model_simple_cost.
5944 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
5945 for statement argument count.
5946
5947 2017-05-16 Carl Love <cel@us.ibm.com>
5948
5949 * config/rs6000/rs6000-c: Add support for built-in functions
5950 vector unsigned long long vec_bperm (vector unsigned long long,
5951 vector unsigned char)
5952 vector signed long long vec_mule (vector signed int,
5953 vector signed int)
5954 vector unsigned long long vec_mule (vector unsigned int,
5955 vector unsigned int)
5956 vector signed long long vec_mulo (vector signed int,
5957 vector signed int)
5958 vector unsigned long long vec_mulo (vector unsigned int,
5959 vector unsigned int)
5960 vector signed char vec_sldw (vector signed char,
5961 vector signed char,
5962 const int)
5963 vector unsigned char vec_sldw (vector unsigned char,
5964 vector unsigned char,
5965 const int)
5966 vector signed short vec_sldw (vector signed short,
5967 vector signed short,
5968 const int)
5969 vector unsigned short vec_sldw (vector unsigned short,
5970 vector unsigned short,
5971 const int)
5972 vector signed int vec_sldw (vector signed int,
5973 vector signed int,
5974 const int)
5975 vector unsigned int vec_sldw (vector unsigned int,
5976 vector unsigned int,
5977 const int)
5978 vector signed long long vec_sldw (vector signed long long,
5979 vector signed long long,
5980 const int)
5981 vector unsigned long long vec_sldw (vector unsigned long long,
5982 vector unsigned long long,
5983 const int)
5984 * config/rs6000/rs6000-c: Add support for built-in functions
5985 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
5986 * config/rs6000/altivec.h: Add defintion for vec_sldw.
5987 * doc/extend.texi: Update the built-in documentation for the
5988 new built-in functions.
5989
5990 2017-05-16 Marek Polacek <polacek@redhat.com>
5991
5992 PR sanitizer/80536
5993 PR sanitizer/80386
5994 * tree.c (save_expr): Don't fold the expression.
5995
5996 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
5997
5998 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
5999 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
6000 and (?*y,m). Update insn attributes.
6001
6002 2017-05-16 Martin Liska <mliska@suse.cz>
6003
6004 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
6005 flags argument of print_gimple_stmt, print_gimple_expr,
6006 print_generic_stmt and print_generic_expr.
6007 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
6008 * coretypes.h: Likewise.
6009 * except.c (dump_eh_tree): Likewise.
6010 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
6011 * gimple-pretty-print.h: Likewise.
6012 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
6013 (backprop::push_to_worklist): Likewise.
6014 (backprop::pop_from_worklist): Likewise.
6015 (backprop::process_use): Likewise.
6016 (backprop::intersect_uses): Likewise.
6017 (note_replacement): Likewise.
6018 * gimple-ssa-store-merging.c
6019 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
6020 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
6021 (pass_store_merging::execute): Likewise.
6022 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
6023 (ssa_base_cand_dump_callback): Likewise.
6024 (dump_incr_vec): Likewise.
6025 (replace_refs): Likewise.
6026 (replace_mult_candidate): Likewise.
6027 (create_add_on_incoming_edge): Likewise.
6028 (create_phi_basis): Likewise.
6029 (insert_initializers): Likewise.
6030 (all_phi_incrs_profitable): Likewise.
6031 (introduce_cast_before_cand): Likewise.
6032 (replace_one_candidate): Likewise.
6033 * gimplify.c (gimplify_expr): Likewise.
6034 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
6035 (set_rename): Likewise.
6036 (rename_uses): Likewise.
6037 (copy_loop_phi_nodes): Likewise.
6038 (add_close_phis_to_merge_points): Likewise.
6039 (copy_loop_close_phi_args): Likewise.
6040 (copy_cond_phi_args): Likewise.
6041 (graphite_copy_stmts_from_block): Likewise.
6042 (translate_pending_phi_nodes): Likewise.
6043 * graphite-poly.c (print_pdr): Likewise.
6044 (dump_gbb_cases): Likewise.
6045 (dump_gbb_conditions): Likewise.
6046 (print_scop_params): Likewise.
6047 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
6048 (build_cross_bb_scalars_use): Likewise.
6049 (gather_bbs::before_dom_children): Likewise.
6050 * hsa-dump.c (dump_hsa_immed): Likewise.
6051 * ipa-cp.c (print_ipcp_constant_value): Likewise.
6052 (get_replacement_map): Likewise.
6053 * ipa-inline-analysis.c (dump_condition): Likewise.
6054 (estimate_function_body_sizes): Likewise.
6055 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
6056 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
6057 * ipa-prop.c (ipa_dump_param): Likewise.
6058 (ipa_print_node_jump_functions_for_edge): Likewise.
6059 (ipa_modify_call_arguments): Likewise.
6060 (ipa_modify_expr): Likewise.
6061 (ipa_dump_param_adjustments): Likewise.
6062 (ipa_dump_agg_replacement_values): Likewise.
6063 (ipcp_modif_dom_walker::before_dom_children): Likewise.
6064 * ipa-pure-const.c (check_stmt): Likewise.
6065 (pass_nothrow::execute): Likewise.
6066 * ipa-split.c (execute_split_functions): Likewise.
6067 * omp-offload.c (dump_oacc_loop_part): Likewise.
6068 (dump_oacc_loop): Likewise.
6069 * trans-mem.c (tm_log_emit): Likewise.
6070 (tm_memopt_accumulate_memops): Likewise.
6071 (dump_tm_memopt_set): Likewise.
6072 (dump_tm_memopt_transform): Likewise.
6073 * tree-cfg.c (gimple_verify_flow_info): Likewise.
6074 (print_loop): Likewise.
6075 * tree-chkp-opt.c (chkp_print_addr): Likewise.
6076 (chkp_gather_checks_info): Likewise.
6077 (chkp_get_check_result): Likewise.
6078 (chkp_remove_check_if_pass): Likewise.
6079 (chkp_use_outer_bounds_if_possible): Likewise.
6080 (chkp_reduce_bounds_lifetime): Likewise.
6081 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
6082 (chkp_mark_completed_bounds): Likewise.
6083 (chkp_register_incomplete_bounds): Likewise.
6084 (chkp_mark_invalid_bounds): Likewise.
6085 (chkp_maybe_copy_and_register_bounds): Likewise.
6086 (chkp_build_returned_bound): Likewise.
6087 (chkp_get_bound_for_parm): Likewise.
6088 (chkp_build_bndldx): Likewise.
6089 (chkp_get_bounds_by_definition): Likewise.
6090 (chkp_generate_extern_var_bounds): Likewise.
6091 (chkp_get_bounds_for_decl_addr): Likewise.
6092 * tree-chrec.c (chrec_apply): Likewise.
6093 * tree-data-ref.c (dump_data_reference): Likewise.
6094 (dump_subscript): Likewise.
6095 (dump_data_dependence_relation): Likewise.
6096 (analyze_overlapping_iterations): Likewise.
6097 * tree-inline.c (expand_call_inline): Likewise.
6098 (tree_function_versioning): Likewise.
6099 * tree-into-ssa.c (dump_defs_stack): Likewise.
6100 (dump_currdefs): Likewise.
6101 (dump_names_replaced_by): Likewise.
6102 (dump_update_ssa): Likewise.
6103 (update_ssa): Likewise.
6104 * tree-object-size.c (pass_object_sizes::execute): Likewise.
6105 * tree-parloops.c (build_new_reduction): Likewise.
6106 (try_create_reduction_list): Likewise.
6107 (ref_conflicts_with_region): Likewise.
6108 (oacc_entry_exit_ok_1): Likewise.
6109 (oacc_entry_exit_single_gang): Likewise.
6110 * tree-pretty-print.h: Likewise.
6111 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
6112 (get_scalar_evolution): Likewise.
6113 (add_to_evolution): Likewise.
6114 (get_loop_exit_condition): Likewise.
6115 (analyze_evolution_in_loop): Likewise.
6116 (analyze_initial_condition): Likewise.
6117 (analyze_scalar_evolution): Likewise.
6118 (instantiate_scev): Likewise.
6119 (number_of_latch_executions): Likewise.
6120 (gather_chrec_stats): Likewise.
6121 (final_value_replacement_loop): Likewise.
6122 (scev_const_prop): Likewise.
6123 * tree-sra.c (dump_access): Likewise.
6124 (disqualify_candidate): Likewise.
6125 (create_access): Likewise.
6126 (reject): Likewise.
6127 (maybe_add_sra_candidate): Likewise.
6128 (create_access_replacement): Likewise.
6129 (analyze_access_subtree): Likewise.
6130 (analyze_all_variable_accesses): Likewise.
6131 (sra_modify_assign): Likewise.
6132 (initialize_constant_pool_replacements): Likewise.
6133 (find_param_candidates): Likewise.
6134 (decide_one_param_reduction): Likewise.
6135 (replace_removed_params_ssa_names): Likewise.
6136 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6137 * tree-ssa-copy.c (dump_copy_of): Likewise.
6138 (copy_prop_visit_cond_stmt): Likewise.
6139 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
6140 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
6141 (record_equivalences_from_stmt): Likewise.
6142 * tree-ssa-dse.c (compute_trims): Likewise.
6143 (delete_dead_call): Likewise.
6144 (delete_dead_assignment): Likewise.
6145 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
6146 (forward_propagate_into_cond): Likewise.
6147 (pass_forwprop::execute): Likewise.
6148 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
6149 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
6150 Likewise.
6151 (move_computations_worker): Likewise.
6152 (execute_sm): Likewise.
6153 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
6154 (remove_exits_and_undefined_stmts): Likewise.
6155 (remove_redundant_iv_tests): Likewise.
6156 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
6157 (adjust_iv_update_pos): Likewise.
6158 * tree-ssa-math-opts.c (bswap_replace): Likewise.
6159 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
6160 (value_replacement): Likewise.
6161 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
6162 * tree-ssa-pre.c (print_pre_expr): Likewise.
6163 (get_representative_for): Likewise.
6164 (create_expression_by_pieces): Likewise.
6165 (insert_into_preds_of_block): Likewise.
6166 (eliminate_insert): Likewise.
6167 (eliminate_dom_walker::before_dom_children): Likewise.
6168 (eliminate): Likewise.
6169 (remove_dead_inserted_code): Likewise.
6170 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
6171 * tree-ssa-reassoc.c (get_rank): Likewise.
6172 (eliminate_duplicate_pair): Likewise.
6173 (eliminate_plus_minus_pair): Likewise.
6174 (eliminate_not_pairs): Likewise.
6175 (undistribute_ops_list): Likewise.
6176 (eliminate_redundant_comparison): Likewise.
6177 (update_range_test): Likewise.
6178 (optimize_range_tests_var_bound): Likewise.
6179 (optimize_vec_cond_expr): Likewise.
6180 (rewrite_expr_tree): Likewise.
6181 (rewrite_expr_tree_parallel): Likewise.
6182 (linearize_expr): Likewise.
6183 (break_up_subtract): Likewise.
6184 (linearize_expr_tree): Likewise.
6185 (attempt_builtin_powi): Likewise.
6186 (attempt_builtin_copysign): Likewise.
6187 (transform_stmt_to_copy): Likewise.
6188 (transform_stmt_to_multiply): Likewise.
6189 (dump_ops_vector): Likewise.
6190 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
6191 (print_scc): Likewise.
6192 (set_ssa_val_to): Likewise.
6193 (visit_reference_op_store): Likewise.
6194 (visit_use): Likewise.
6195 (sccvn_dom_walker::before_dom_children): Likewise.
6196 (run_scc_vn): Likewise.
6197 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
6198 Likewise.
6199 (expr_hash_elt::print): Likewise.
6200 (const_and_copies::pop_to_marker): Likewise.
6201 (const_and_copies::record_const_or_copy_raw): Likewise.
6202 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
6203 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
6204 (dump_predicates): Likewise.
6205 (find_uninit_use): Likewise.
6206 (warn_uninitialized_phi): Likewise.
6207 (pass_late_warn_uninitialized::execute): Likewise.
6208 * tree-ssa.c (verify_vssa): Likewise.
6209 (verify_ssa): Likewise.
6210 (maybe_optimize_var): Likewise.
6211 * tree-vrp.c (dump_value_range): Likewise.
6212 (dump_all_value_ranges): Likewise.
6213 (dump_asserts_for): Likewise.
6214 (register_edge_assert_for_2): Likewise.
6215 (vrp_visit_cond_stmt): Likewise.
6216 (vrp_visit_switch_stmt): Likewise.
6217 (vrp_visit_stmt): Likewise.
6218 (vrp_visit_phi_node): Likewise.
6219 (simplify_cond_using_ranges_1): Likewise.
6220 (fold_predicate_in): Likewise.
6221 (evrp_dom_walker::before_dom_children): Likewise.
6222 (evrp_dom_walker::push_value_range): Likewise.
6223 (evrp_dom_walker::pop_value_range): Likewise.
6224 (execute_early_vrp): Likewise.
6225
6226 2017-05-16 Richard Biener <rguenther@suse.de>
6227
6228 * dwarf2out.c (loc_list_from_tree_1): Do not create
6229 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
6230
6231 2017-05-16 Richard Biener <rguenther@suse.de>
6232
6233 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
6234 just generated.
6235 (note_variable_value_in_expr): If we resolved the decl ref
6236 do not push to the stack.
6237
6238 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
6239
6240 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
6241 operations in fast-math mode.
6242 (vaddq_f16): Likewise.
6243 (vmul_f16): Likewise.
6244 (vmulq_f16): Likewise.
6245 (vsub_f16): Likewise.
6246 (vsubq_f16): Likewise.
6247 * config/arm/neon.md (add<mode>3): New.
6248 (sub<mode>3): New.
6249 (fma:<VH:mode>3): New. Also remove outdated comment.
6250 (mul<mode>3): New.
6251
6252 2017-05-16 Martin Liska <mliska@suse.cz>
6253
6254 PR ipa/79849.
6255 PR ipa/79850.
6256 * ipa-devirt.c (warn_types_mismatch): Fix typo.
6257 (odr_types_equivalent_p): Likewise.
6258
6259 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
6260
6261 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
6262
6263 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
6264
6265 PR target/80425
6266 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
6267 non-interunit SSE move alternatives with '?'.
6268 (zero-extendsidi peephole2): New peephole to skip intermediate
6269 general register in SSE zero-extend sequence.
6270
6271 2017-05-15 Jeff Law <law@redhat.com>
6272
6273 * reorg.c (relax_delay_slots): Create a new variable to hold
6274 the temporary target rather than clobbering TARGET_LABEL.
6275
6276 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
6277 missing argument to extract_bit_field call.
6278 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
6279
6280 2017-05-15 Martin Liska <mliska@suse.cz>
6281
6282 PR driver/31468
6283 * gcc.c (process_command): Do not allow empty argument of -o option.
6284
6285 2017-05-15 Renlin Li <renlin.li@arm.com>
6286
6287 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
6288 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
6289 * config/aarch64/constraints.md (Usf): Add long call check.
6290 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
6291 (call_value): Likewise.
6292 (sibcall): Likewise.
6293 (sibcall_value): Likewise.
6294 (call_insn): New.
6295 (call_value_insn): New.
6296 (sibcall_insn): Update rtx pattern.
6297 (sibcall_value_insn): Likewise.
6298 (call_internal): Remove.
6299 (call_value_internal): Likewise.
6300 (sibcall_internal): Likewise.
6301 (sibcall_value_internal): Likewise.
6302 (call_reg): Likewise.
6303 (call_symbol): Likewise.
6304 (call_value_reg): Likewise.
6305 (call_value_symbol): Likewise.
6306
6307 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
6308
6309 PR target/80600
6310 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
6311
6312 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
6313
6314 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
6315 compatible with CCGOCmode and with CCZmode.
6316
6317 2017-05-14 Martin Sebor <msebor@redhat.com>
6318
6319 PR middle-end/77671
6320 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
6321 (gimple_fold_builtin_snprintf): Same.
6322 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
6323 (gimple_fold_builtin_snprintf): Same.
6324 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
6325 of character types.
6326 (is_call_safe): New function.
6327 (try_substitute_return_value): Call it.
6328 (try_simplify_call): New function.
6329 (pass_sprintf_length::handle_gimple_call): Call it.
6330
6331 2017-05-14 Martin Sebor <msebor@redhat.com>
6332
6333 PR middle-end/80669
6334 * builtins.c (expand_builtin_stpncpy): Simplify.
6335
6336 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
6337
6338 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
6339 * config/i386/i386.h
6340 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
6341 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
6342 (struct machine_function): Add new members call_ms2sysv,
6343 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
6344 (struct machine_frame_state): New fields sp_realigned and
6345 sp_realigned_offset.
6346 * config/i386/i386.c
6347 (enum xlogue_stub): New enum.
6348 (enum xlogue_stub_sets): New enum.
6349 (class xlogue_layout): New class.
6350 (struct ix86_frame): New fields stack_realign_allocate_offset,
6351 stack_realign_offset and outlined_save_offset. Modify comments to
6352 detail stack layout when using out-of-line stubs.
6353 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
6354 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
6355 -mcall-ms2sysv-xlogues.
6356 (stub_managed_regs): New static variable.
6357 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
6358 registers managed by out-of-line stub.
6359 (disable_call_ms2sysv_xlogues): New function.
6360 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
6361 m->call_ms2sysv when appropriate and compute frame layout for
6362 out-of-line stubs.
6363 (sp_valid_at, fp_valid_at): New inline functions.
6364 (choose_basereg): New function.
6365 (choose_baseaddr): Add align parameter, use choose_basereg and modify
6366 all callers.
6367 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
6368 Use align parameter of choose_baseaddr to generated aligned SSE movs
6369 when possible.
6370 (pro_epilogue_adjust_stack): Modify to track
6371 machine_frame_state::sp_realigned.
6372 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
6373 (ix86_nsaved_sseregs): Likewise.
6374 (ix86_emit_save_regs): Likewise.
6375 (ix86_emit_save_regs_using_mov): Likewise.
6376 (ix86_emit_save_sse_regs_using_mov): Likewise.
6377 (get_scratch_register_on_entry): Likewise.
6378 (gen_frame_set): New function.
6379 (gen_frame_load): Likewise.
6380 (gen_frame_store): Likewise.
6381 (emit_outlined_ms2sysv_save): Likewise.
6382 (emit_outlined_ms2sysv_restore): Likewise.
6383 (ix86_expand_prologue): Modify stack re-alignment code and call
6384 emit_outlined_ms2sysv_save when appropriate.
6385 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
6386 parameter rtx_insn *insn, which allows the function to be used to only
6387 generate the notes.
6388 (ix86_expand_epilogue): Modify validity checks of frame and stack
6389 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
6390 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
6391 * config/i386/predicates.md
6392 (save_multiple): New predicate.
6393 (restore_multiple): Likewise.
6394 * config/i386/sse.md
6395 (save_multiple<mode>): New pattern.
6396 (save_multiple_realign<mode>): Likewise.
6397 (restore_multiple<mode>): Likewise.
6398 (restore_multiple_and_return<mode>): Likewise.
6399 (restore_multiple_leave_return<mode>): Likewise.
6400 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
6401
6402 2017-05-14 Julia Koval <julia.koval@intel.com>
6403
6404 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
6405 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
6406 (__builtin_ia32_xsetbv): New builtins.
6407 * config/i386/i386.c (ix86_expand_special_args_builtin):
6408 Process new types.
6409 (ix86_expand_builtin): Special expand for new intrinsics.
6410 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
6411 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
6412 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
6413
6414 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6415
6416 * cfganal.c (inverted_post_order_compute): Change argument type
6417 to vec *.
6418 * cfganal.h (inverted_post_order_compute): Adjust prototype.
6419 * df-core.c (rest_of_handle_df_initialize): Adjust.
6420 (rest_of_handle_df_finish): Likewise.
6421 (df_analyze_1): Likewise.
6422 (df_analyze): Likewise.
6423 (loop_inverted_post_order_compute): Change argument to be a vec *.
6424 (df_analyze_loop): Adjust.
6425 (df_get_n_blocks): Likewise.
6426 (df_get_postorder): Likewise.
6427 * df.h (struct df_d): Change field to be a vec.
6428 * lcm.c (compute_laterin): Adjust.
6429 (compute_available): Likewise.
6430 * lra-lives.c (lra_create_live_ranges_1): Likewise.
6431 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
6432 * tree-ssa-pre.c (compute_antic): Likewise.
6433
6434 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6435
6436 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
6437 (depth_first_search::depth_first_search): Change structure init
6438 function to this constructor.
6439 (depth_first_search::add_bb): Rename function to this member.
6440 (depth_first_search::execute): Likewise.
6441 (flow_dfs_compute_reverse_finish): Adjust.
6442
6443 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6444
6445 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
6446 (longest_simple_path): Likewise.
6447 * shrink-wrap.c (spread_components): Likewise.
6448 (disqualify_problematic_components): Likewise.
6449 (emit_common_heads_for_components): Likewise.
6450 (emit_common_tails_for_components): Likewise.
6451 (insert_prologue_epilogue_for_components): Likewise.
6452
6453 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6454
6455 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
6456 auto_sbitmap.
6457
6458 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6459
6460 * df-core.c (df_set_blocks): Start using auto_bitmap.
6461 (df_compact_blocks): Likewise.
6462 * df-problems.c (df_rd_confluence_n): Likewise.
6463 * df-scan.c (df_insn_rescan_all): Likewise.
6464 (df_process_deferred_rescans): Likewise.
6465 (df_update_entry_block_defs): Likewise.
6466 (df_update_exit_block_uses): Likewise.
6467 (df_entry_block_bitmap_verify): Likewise.
6468 (df_exit_block_bitmap_verify): Likewise.
6469 (df_scan_verify): Likewise.
6470 * lra-constraints.c (lra_constraints): Likewise.
6471 (undo_optional_reloads): Likewise.
6472 (lra_undo_inheritance): Likewise.
6473 * lra-remat.c (calculate_gen_cands): Likewise.
6474 (do_remat): Likewise.
6475 * lra-spills.c (assign_spill_hard_regs): Likewise.
6476 (spill_pseudos): Likewise.
6477 * tree-ssa-pre.c (bitmap_set_and): Likewise.
6478 (bitmap_set_subtract_values): Likewise.
6479
6480 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6481
6482 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
6483 management with auto_bitmap.
6484 (fix_inter_tick): Likewise.
6485 (fix_recovery_deps): Likewise.
6486 * ira.c (add_store_equivs): Likewise.
6487 (find_moveable_pseudos): Likewise.
6488 (split_live_ranges_for_shrink_wrap): Likewise.
6489 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
6490 (rtx_reuse_manager::seen_def_p): Likewise.
6491 (rtx_reuse_manager::set_seen_def): Likewise.
6492 * print-rtl.h (class rtx_reuse_manager): Likewise.
6493
6494 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6495
6496 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
6497 lifetime.
6498 (migrate_btr_def): Likewise.
6499 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
6500 * df-core.c (loop_post_order_compute): Likewise.
6501 (loop_inverted_post_order_compute): Likewise.
6502 * hsa-common.h: Likewise.
6503 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
6504 * init-regs.c (initialize_uninitialized_regs): Likewise.
6505 * ipa-inline.c (resolve_noninline_speculation): Likewise.
6506 (inline_small_functions): Likewise.
6507 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
6508 * ira.c (combine_and_move_insns): Likewise.
6509 (build_insn_chain): Likewise.
6510 * loop-invariant.c (find_invariants): Likewise.
6511 * lower-subreg.c (propagate_pseudo_copies): Likewise.
6512 * predict.c (tree_predict_by_opcode): Likewise.
6513 (predict_paths_leading_to): Likewise.
6514 (predict_paths_leading_to_edge): Likewise.
6515 (estimate_loops_at_level): Likewise.
6516 (estimate_loops): Likewise.
6517 * shrink-wrap.c (try_shrink_wrapping): Likewise.
6518 (spread_components): Likewise.
6519 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
6520 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
6521 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
6522 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
6523 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
6524 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
6525 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
6526 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
6527 (mark_threaded_blocks): Likewise.
6528 (thread_through_all_blocks): Likewise.
6529 * tree-ssa.c (verify_ssa): Likewise.
6530 (execute_update_addresses_taken): Likewise.
6531 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
6532
6533 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6534
6535 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
6536 auto_vec.
6537 (post_order_compute): Likewise.
6538 (inverted_post_order_compute): Likewise.
6539 (pre_and_rev_post_order_compute_fn): Likewise.
6540
6541 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6542
6543 * genrecog.c (int_set::int_set): Explicitly construct our
6544 auto_vec base class.
6545 * vec.h (auto_vec::auto_vec): New constructor.
6546
6547 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6548
6549 * bitmap.h (class auto_bitmap): New constructor taking
6550 bitmap_obstack * argument.
6551
6552 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6553
6554 * bitmap.h (class auto_bitmap): Change type of m_bits to
6555 bitmap_head, and adjust ctor / dtor and member operators.
6556
6557 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
6558
6559 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
6560 when returned register mode doesn't match original mode.
6561
6562 2017-05-12 Jeff Law <law@redhat.com>
6563 Jakub Jelinek <jakub@redhat.com>
6564
6565 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
6566 we look for cc setter after the compare-elim changes.
6567 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
6568 within the vector to match what compare-elim now expects.
6569 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
6570 (xorsi3_flags, one_cmplsi2_flags): Likewise.
6571
6572 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
6573 after the compare-elim changes.
6574 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
6575 the vector to match what compare-elim now expects.
6576 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
6577 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
6578 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
6579 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
6580 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
6581
6582 * config/visium/visium.c (single_set_and_flags): Fix where
6583 we look for cc setter after the compare-elim changes.
6584 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
6585 with the vector to match what compare-elim now expects.
6586 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
6587 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
6588 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
6589 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
6590 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
6591 (neg<mode>2_insn_set_overflow): Likewise.
6592
6593 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
6594
6595 PR middle-end/79794
6596 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
6597 maybe_expand_insn call, set ops[0].target. If still set after call,
6598 set alt_rtl. Add extra arg to recursive calls.
6599 (extract_bit_field): Add alt_rtl argument. Pass to
6600 extract_bit_field.
6601 * expmed.h (extract_bit_field): Fix prototype.
6602 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
6603 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
6604 to extract_bit_field_calls.
6605 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
6606 Pass alt_rtl to extract_bit_field calls.
6607 * calls.c (store_unaligned_arguments_into_psuedos)
6608 load_register_parameters): Pass extra NULL to extract_bit_field calls.
6609 * optabs.c (maybe_legitimize_operand): Clear op->target when call
6610 gen_reg_rtx.
6611 * optabs.h (struct expand_operand): Add target bitfield.
6612
6613 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
6614
6615 * compare-elim.c (try_eliminate_compare): Canonicalize
6616 operation with embedded compare to
6617 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
6618 (set (reg) (operation)].
6619
6620 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
6621
6622 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
6623
6624 PR target/80723
6625 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
6626 cost of adding a carry flag for ADC instruction.
6627 [case MINUS]: Ignore the cost of subtracting a carry flag
6628 for SBB instruction.
6629
6630 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
6631
6632 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
6633 and x86intrin.h
6634 * config/rs6000/bmiintrin.h: New file.
6635 * config/rs6000/bmi2intrin.h: New file.
6636 * config/rs6000/x86intrin.h: New file.
6637
6638 2017-05-12 Jeff Law <law@redhat.com>
6639
6640 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
6641 markers.
6642
6643 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
6644
6645 PR middle-end/80707
6646 * tree-cfg.c: Remove cfg edges of unreachable case statements.
6647
6648 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
6649
6650 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
6651 early expansion of vector divide builtins.
6652 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
6653 builtins identified as having unsigned arguments.
6654
6655 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
6656
6657 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
6658 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
6659 expansion of vector logical operations (and, andc, or, xor,
6660 nor, orc, nand).
6661
6662 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
6663
6664 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
6665 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
6666
6667 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
6668
6669 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
6670 early GIMPLE expansion of vector multiplies.
6671
6672 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
6673
6674 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
6675 TARGET_HAVE_MOVT conditional.
6676 (movt splitter): Likewise.
6677
6678 2017-05-12 Richard Biener <rguenther@suse.de>
6679
6680 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
6681 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6682 Fold all stmts not inplace.
6683
6684 2017-05-12 Richard Biener <rguenther@suse.de>
6685
6686 PR tree-optimization/80713
6687 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
6688 inserted_exprs bit for not removed stmts.
6689
6690 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
6691
6692 PR middle-end/69921
6693 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
6694 parallelized" attribute for parallelized OpenACC kernels.
6695 * omp-offload.c (execute_oacc_device_lower): Use it.
6696
6697 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
6698 Set "oacc kernels" attribute.
6699 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
6700 parameter. Adjust all users.
6701 (oacc_fn_attrib_kernels_p): Remove function.
6702 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
6703 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
6704 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
6705 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
6706 assert "oacc kernels" attribute is set.
6707
6708 2017-05-11 Carl Love <cel@us.ibm.com>
6709
6710 * config/rs6000/rs6000-c: Add support for built-in functions
6711 vector unsigned char vec_popcnt (vector signed char)
6712 vector unsigned char vec_popcnt (vector unsigned char)
6713 vector unsigned short vec_popcnt (vector signed short)
6714 vector unsigned short vec_popcnt (vector unsigned short)
6715 vector unsigned int vec_popcnt (vector signed int)
6716 vector unsigned int vec_popcnt (vector unsigned int)
6717 vector unsigned long long vec_popcnt (vector signed long long)
6718 vector unsigned long long vec_popcnt (vector unsigned long long)
6719 vector signed long long vec_slo (vector signed long long,
6720 vector signed char)
6721 vector signed long long vec_slo (vector signed long long,
6722 vector unsigned char)
6723 vector unsigned long long vec_slo (vector unsigned long long,
6724 vector signed char)
6725 vector unsigned long long vec_slo (vector unsigned long long,
6726 vector unsigned char)
6727 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
6728 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
6729 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
6730 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
6731 * doc/extend.texi: Update the built-in documentation file for the
6732 new built-in functions.
6733
6734 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
6735
6736 * attribs.h (sorted_attr_string): Move machine independent
6737 functions for target clone support from the i386 port to common
6738 code. Rename ix86_function_versions to common_function_versions.
6739 Rename make_name to make_unique_name.
6740 (common_function_versions): Likewise.
6741 (make_unique_name): Likewise.
6742 (make_dispatcher_decl): Likewise.
6743 (is_function_default_version): Likewise.
6744 * attribs.c (attr_strcmp): Likewise.
6745 (sorted_attr_string): Likewise.
6746 (common_function_versions): Likewise.
6747 (make_unique_name): Likewise.
6748 (make_dispatcher_decl): Likewise.
6749 (is_function_default_version): Likewise.
6750 * config/i386/i386.c (attr_strcmp): Likewise.
6751 (sorted_attr_string): Likewise.
6752 (ix86_function_versions): Likewise.
6753 (make_name): Likewise.
6754 (make_dispatcher_decl): Likewise.
6755 (is_function_default_version): Likewise.
6756 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
6757
6758 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6759
6760 PR target/80695
6761 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
6762 Account for direct move costs for vec_construct of integer
6763 vectors.
6764
6765 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
6766
6767 PR target/80706
6768 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
6769 (UNSPEC_STX_ATOMIC): Ditto.
6770 (loaddi_via_sse): New insn.
6771 (storedi_via_sse): Ditto.
6772 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
6773 Update corresponding peephole2 patterns.
6774 (atomic_storedi_fpu): Ditto.
6775
6776 2017-05-11 Julia Koval <julia.koval@intel.com>
6777
6778 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
6779 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
6780 New intrinsics.
6781 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
6782 (__builtin_ia32_rsqrt14ss_mask): New builtins.
6783 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
6784
6785 2017-05-11 Nathan Sidwell <nathan@acm.org>
6786
6787 * graphite-poly.c: Include dumpfile.h.
6788
6789 * dumpfle.h (dump_function): Declare here ...
6790 * tree-dump.h (dump_function): ... not here.
6791 * dumpfile.c: #include tree-cfg.h.
6792 (dump_function): Move here from ...
6793 * tree-dump.c (dump_function): ... here.
6794 * gimplify.c: #include splay-tree.h, not tree-dump.h.
6795 * graphite-poly.c: Don't include tree-dump.h.
6796 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
6797 * print-tree.c: Likewise.
6798 * stor-layout.c: Likewise.
6799 * tree-nested.c: Likewise.
6800
6801 * dumpfile.c (dump_start): Use TDF_FLAGS.
6802 (dump_enable_all): Fix TDF_KIND check thinko.
6803
6804 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
6805
6806 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6807 array entries to represent two legal parameterizations of the
6808 overloaded __builtin_cmpb function, as represented by the
6809 P6_OV_BUILTIN_CMPB constant.
6810 (altivec_resolve_overloaded_builtin): Add special case handling
6811 for the __builtin_cmpb function, as represented by the
6812 P6_OV_BUILTIN_CMPB constant.
6813 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
6814 (BU_P6_64BIT_2): New macro.
6815 (BU_P6_OVERLOAD_2): New macro
6816 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
6817 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
6818 (CMPB): Add overload support to represent both 32-bit and 64-bit
6819 compare-bytes function.
6820 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
6821 support for TARGET_CMPB.
6822 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
6823 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
6824 documentation of the __builtin_cmpb overloaded built-in function.
6825
6826 2017-05-11 Richard Biener <rguenther@suse.de>
6827
6828 PR tree-optimization/80705
6829 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
6830 bases are not vectorizable.
6831
6832 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6833
6834 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
6835 when counting register pressure.
6836
6837 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6838
6839 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
6840 (iv_ca_more_deps): Renamed to ...
6841 (iv_ca_compare_deps): ... this.
6842 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
6843
6844 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6845
6846 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
6847 to ...
6848 (determine_group_iv_costs): ... here.
6849 (find_inv_vars_cb): Record inv var if it's not recorded before.
6850
6851 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6852
6853 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
6854 (get_shiftadd_cost): Ditto.
6855
6856 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6857
6858 * tree-ssa-address.c: Include header file.
6859 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
6860 address.
6861 (add_to_parts): Refactor.
6862 (addr_to_parts): New parameter. Update use of move_hint_to_base.
6863 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
6864 in new order.
6865
6866 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6867
6868 PR tree-optimization/53090
6869 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
6870 COMP_IV_EXPR_2.
6871 (extract_cond_operands): Detect condition with IV on both sides
6872 and return COMP_IV_EXPR_2.
6873 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
6874 (rewrite_use_compare): Simplify by removing call to function
6875 extract_cond_operands.
6876
6877 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6878
6879 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
6880 (extract_cond_operands): Detect condition comparing against non-
6881 invariant bound and return appropriate enum value.
6882 (find_interesting_uses_cond): Update use of extract_cond_operands.
6883 Handle its return value accordingly.
6884 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
6885
6886 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6887
6888 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
6889 nonlinear iv_use computation in loop invariant sensitive way.
6890
6891 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6892
6893 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
6894 (find_iv_candidates): Call relate_compare_use_with_all_cands.
6895
6896 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6897
6898 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
6899 (dump_cand): Support iv_cand.inv_exprs.
6900 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
6901 for candidates.
6902 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
6903 iv_cand.inv_exprs.
6904
6905 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6906
6907 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
6908 from ...
6909 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
6910 as local function. Include necessary header files.
6911 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
6912
6913 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6914
6915 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
6916
6917 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6918
6919 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
6920 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
6921 RSHIFT_EXPR and BIT_NOT_EXPR.
6922
6923 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6924
6925 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
6926 (adjust_setup_cost): New parameter supporting round up adjustment.
6927 (struct address_cost_data): Delete.
6928 (force_expr_to_var_cost): Don't bound cost with spill_cost.
6929 (split_address_cost, ptr_difference_cost): Delete.
6930 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
6931 (struct ainc_cost_data): New struct.
6932 (get_address_cost_ainc): New function.
6933 (get_address_cost, get_computation_cost): Reimplement.
6934 (determine_group_iv_cost_address): Record inv_expr for all uses of
6935 a group.
6936 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
6937 (iv_ca_has_deps): Reimplemented to ...
6938 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
6939 than OLD_CP.
6940 (iv_ca_extend): Call iv_ca_more_deps.
6941
6942 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6943
6944 * tree-ssa-address.c (struct mem_address): Move to header file.
6945 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
6946 * tree-ssa-address.h (struct mem_address): Move from C file.
6947 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
6948
6949 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6950
6951 * tree-affine.h (aff_combination_type): New interface.
6952 (aff_combination_zero_p): Remove static.
6953 (aff_combination_const_p): New interface.
6954 (aff_combination_singleton_var_p): New interfaces.
6955
6956 2017-05-11 Richard Biener <rguenther@suse.de>
6957
6958 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6959 Skip unreachable blocks and destinations.
6960 (eliminate): Move stmt removal and fixup ...
6961 (fini_eliminate): ... here. Skip inserted exprs.
6962 (pass_pre::execute): Move fini_pre after fini_eliminate.
6963 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
6964 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
6965 PRE to get rid of dead code that has invalid SSA form and
6966 split critical edges again.
6967
6968 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6969
6970 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
6971
6972 2017-05-11 Richard Biener <rguenther@suse.de>
6973
6974 * passes.c (execute_function_todo): Verify loops if they are
6975 said to be up-to-date.
6976 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
6977 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
6978
6979 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
6980
6981 PR target/80090
6982 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
6983 handle calling assemble_external ourself.
6984
6985 PR target/79027
6986 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
6987 modes with zero size. Enhance comment.
6988
6989 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6990
6991 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
6992 built-ins for vec_xl and vec_xst with short and char pointer
6993 arguments.
6994
6995 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
6996
6997 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
6998 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
6999 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
7000 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
7001 (_mm_maskz_min_round_ss): New intrinsics.
7002 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
7003 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
7004 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
7005 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
7006 (__builtin_ia32_minss_mask_round): New builtins.
7007 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
7008 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
7009 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
7010 Rename to ...
7011 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
7012 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
7013 Change to ...
7014 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
7015 ... this.
7016
7017 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
7018
7019 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
7020 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
7021 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
7022 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
7023 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
7024 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
7025 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
7026 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
7027 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
7028 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
7029 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
7030 (__builtin_ia32_mulss_mask_round): New builtins.
7031 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
7032 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
7033 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
7034 Rename to ...
7035 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
7036 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
7037 Change to ...
7038 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
7039 ... this.
7040
7041 2017-05-10 Julia Koval <julia.koval@intel.com>
7042
7043 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
7044 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
7045 (_mm256_setr_m128i): New intrinsics.
7046
7047 2017-05-10 Julia Koval <julia.koval@intel.com>
7048
7049 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
7050 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
7051 (_mm_maskz_rcp14_ss): New intrinsics.
7052 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
7053 (__builtin_ia32_rcp14ss_mask): New builtins.
7054 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
7055
7056 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
7057
7058 PR tree-optimization/51513
7059 * tree-cfg.c (gimple_seq_unreachable_p): New function.
7060 (assert_unreachable_fallthru_edge_p): Use it.
7061 (group_case_labels_stmt): Likewise.
7062 * tree-cfg.h: Prototype it.
7063 * stmt.c: Include cfghooks.h and tree-cfg.h.
7064 (emit_case_dispatch_table) <gap_label>: New local variable.
7065 Use it to fill dispatch table gaps.
7066 Test for default_label before updating probabilities.
7067 (expand_case) <default_label>: Remove unneeded initialization.
7068 Test for unreachable default case statement and remove its edge.
7069 Set default_label accordingly.
7070 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
7071
7072 2017-05-10 Carl Love <cel@us.ibm.com>
7073
7074 * config/rs6000/rs6000-c: Add support for built-in functions
7075 vector signed char vec_neg (vector signed char)
7076 vector signed short int vec_neg (vector short int)
7077 vector signed int vec_neg (vector signed int)
7078 vector signed long long vec_neg (vector signed long long)
7079 vector float vec_neg (vector float)
7080 vector double vec_neg (vector double)
7081 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
7082 overload.
7083 * config/rs6000/altivec.h: Add define for vec_neg
7084 * doc/extend.texi: Update the built-in documentation for the
7085 new built-in functions.
7086
7087 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7088
7089 PR tree-optimization/77644
7090 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
7091
7092 2017-05-10 Nathan Sidwell <nathan@acm.org>
7093
7094 * dumpfile.h (TDI_lang_all): New.
7095 (TDF_KIND): New. Renumber others
7096 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
7097 than bits.
7098 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
7099 lang-all.
7100 (get_dump_file_name): Adjust suffix generation.
7101 (dump_enable_all): Use TDF_KIND.
7102 * doc/invoke.texi (-fdump-lang-all): Document.
7103
7104 * dumpfile.h: Tabify.
7105
7106 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
7107
7108 PR target/80671
7109 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
7110 Move member access before delete.
7111
7112 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
7113
7114 * tree-inline.c (expand_call_inline): Split block at stmt
7115 before the call.
7116
7117 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
7118
7119 PR target/68163
7120 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
7121 are now unused after splitting mov{sf,sd}_hardfloat.
7122 (f32_lr2): Likewise.
7123 (f32_lm): Likewise.
7124 (f32_lm2): Likewise.
7125 (f32_li): Likewise.
7126 (f32_li2): Likewise.
7127 (f32_lv): Likewise.
7128 (f32_sr): Likewise.
7129 (f32_sr2): Likewise.
7130 (f32_sm): Likewise.
7131 (f32_sm2): Likewise.
7132 (f32_si): Likewise.
7133 (f32_si2): Likewise.
7134 (f32_sv): Likewise.
7135 (f32_dm): Likewise.
7136 (f32_vsx): Likewise.
7137 (f32_av): Likewise.
7138 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
7139 For movsf, order stores so the VSX stores occur before the GPR
7140 store which encourages the register allocator to use a traditional
7141 FPR instead of a GPR. For movsd, order the stores so that the GPR
7142 store comes before the VSX stores to allow the power6 to work.
7143 This is due to the power6 not having a 32-bit integer store
7144 instruction from a FPR.
7145 (movsf_hardfloat): Likewise.
7146 (movsd_hardfloat): Likewise.
7147
7148 2017-05-09 Martin Sebor <msebor@redhat.com>
7149
7150 PR translation/80280
7151 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
7152 added in r247778.
7153
7154 PR translation/80280
7155 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
7156 data member added in r247778.
7157 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
7158
7159 2017-05-09 Nathan Sidwell <nathan@acm.org>
7160
7161 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
7162
7163 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
7164 typedefs.
7165
7166 2017-05-09 Marek Polacek <polacek@redhat.com>
7167
7168 * doc/invoke.texi: Fix typo.
7169
7170 2017-05-09 Richard Biener <rguenther@suse.de>
7171
7172 * tree-vrp.c (vrp_val_is_max): Adjust comment.
7173 (vrp_val_is_min): Likewise.
7174 (set_value_range_to_value): Likewise.
7175 (set_value_range_to_nonnegative): Likewise.
7176 (gimple_assign_nonzero_p): Likewise.
7177 (gimple_stmt_nonzero_p): Likewise.
7178 (vrp_int_const_binop): Likewise. Remove unreachable case.
7179 (adjust_range_with_scev): Adjust comments.
7180 (compare_range_with_value): Likewise.
7181 (extract_range_from_phi_node): Likewise.
7182 (test_for_singularity): Likewise.
7183
7184 2017-05-09 Richard Biener <rguenther@suse.de>
7185
7186 * tree-vrp.c (get_single_symbol): Add assert that we don't
7187 get overflowed constants as invariant part.
7188 (compare_values_warnv): Add comment before the TREE_NO_WARNING
7189 checks. Use wi::cmp instead of recursing for integer constants.
7190 (compare_values): Just ignore whether we assumed undefined
7191 overflow instead of failing the compare.
7192 (extract_range_for_var_from_comparison_expr): Add comment before the
7193 TREE_NO_WARNING sets.
7194 (test_for_singularity): Likewise.
7195 (extract_range_from_comparison): Do not disable optimization
7196 when we assumed undefined overflow.
7197 (extract_range_basic): Remove init of unused var.
7198
7199 2017-05-09 Richard Biener <rguenther@suse.de>
7200
7201 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
7202 (extract_range_from_multiplicative_op_1): Adjust.
7203 (extract_range_from_binary_expr_1): Use int_const_binop.
7204
7205 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
7206
7207 PR target/80101
7208 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
7209 rs6000_store_data_bypass_p in seven define_bypass directives and
7210 in several comments.
7211 * config/rs6000/rs6000-protos.h: Add prototype for
7212 rs6000_store_data_bypass_p function.
7213 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
7214 function implements slightly different (rs6000-specific) semantics
7215 than store_data_bypass_p, returning false rather than aborting
7216 with assertion error when arguments do not satisfy the
7217 requirements of store data bypass.
7218 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
7219 rs6000_store_data_bypass_p.
7220
7221 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
7222
7223 * config/xtensa/xtensa-protos.h
7224 (xtensa_initial_elimination_offset): New declaration.
7225 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
7226 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
7227 macro definition, add case for FRAME_POINTER_REGNUM when
7228 FRAME_GROWS_DOWNWARD.
7229 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
7230 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
7231 xtensa_initial_elimination_offset.
7232
7233 2017-05-08 Nathan Sidwell <nathan@acm.org>
7234
7235 * doc/invoke.texi: Alphabetize -fdump options.
7236
7237 2017-05-08 Martin Sebor <msebor@redhat.com>
7238
7239 PR translation/80280
7240 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
7241
7242 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
7243
7244 * target.def (compute_frame_layout): New optional target hook.
7245 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
7246 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
7247 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
7248 target hook.
7249 * reload1.c (verify_initial_elim_offsets): Likewise.
7250 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
7251 (use_simple_return_p): Call arm_compute_frame_layout if needed.
7252 (arm_get_frame_offsets): Split up into this ...
7253 (arm_compute_frame_layout): ... and this function.
7254
7255 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
7256
7257 * config/aarch64/constraints.md (Usa): New constraint.
7258 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
7259
7260 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
7261
7262 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
7263 with_multilib_list after it has been checked.
7264
7265 2017-05-08 Richard Biener <rguenther@suse.de>
7266
7267 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
7268 (bitmap_set_subtract_values): Likewise.
7269
7270 2017-05-08 Richard Biener <rguenther@suse.de>
7271
7272 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
7273 (gimple_assign_nonzero): ... this and remove strict_overflow_p
7274 argument.
7275 (gimple_stmt_nonzero_warnv_p): Rename to ...
7276 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
7277 argument.
7278 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
7279 (extract_range_basic): Adjust, do not disable propagation on
7280 strict overflow sensitive simplification.
7281 (vrp_visit_cond_stmt): Likewise.
7282
7283 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
7284
7285 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
7286 body size unconditionally.
7287
7288 2017-05-07 Jeff Law <law@redhat.com>
7289
7290 Revert:
7291 2017-05-06 Jeff Law <law@redhat.com>
7292 PR tree-optimization/78496
7293 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
7294 code.
7295
7296 PR tree-optimization/78496
7297 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
7298 (simplify_stmt_using_ranges): Call it.
7299 (vrp_dom_walker::before_dom_children): Extract equivalences
7300 from an ASSERT_EXPR with an equality comparison against a
7301 constant.
7302
7303 2017-05-06 Jeff Law <law@redhat.com>
7304
7305 PR tree-optimization/78496
7306 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
7307 code.
7308
7309 PR tree-optimization/78496
7310 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
7311 (simplify_stmt_using_ranges): Call it.
7312 (vrp_dom_walker::before_dom_children): Extract equivalences
7313 from an ASSERT_EXPR with an equality comparison against a
7314 constant.
7315
7316 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
7317
7318 * lra-constraints.c (lra_copy_reg_equiv): New function.
7319 (split_reg): Use it to copy equivalence information from the
7320 original register to the spill register.
7321
7322 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
7323
7324 PR rtl-optimization/75964
7325 * simplify-rtx.c (simplify_const_relational_operation): Remove
7326 invalid handling of comparisons of integer ABS.
7327
7328 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
7329
7330 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
7331 initialize to zero.
7332 (init_regs): Remove declaration.
7333 (function_arg_advance_32): Initialize error_p as boolean variable.
7334
7335 2017-05-05 Nathan Sidwell <nathan@acm.org>
7336
7337 * store-motion.c (remove_reachable_equiv_notes): Reformat long
7338 lines. Use for (;;).
7339
7340 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7341
7342 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
7343 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
7344 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
7345 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
7346 VF=2 that require versioning.
7347
7348 2017-05-05 David Malcolm <dmalcolm@redhat.com>
7349
7350 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
7351 int.
7352
7353 2017-05-05 David Malcolm <dmalcolm@redhat.com>
7354
7355 * diagnostic.h (diagnostic_override_option_index): Convert from
7356 macro to inline function.
7357
7358 2017-05-05 David Malcolm <dmalcolm@redhat.com>
7359
7360 * diagnostic.c (last_module_changed_p): New function.
7361 (set_last_module): New function.
7362 (diagnostic_report_current_module): Convert macro usage to
7363 the above functions.
7364 * diagnostic.h (diagnostic_context::last_module): Strengthen
7365 from const line_map * to const line_map_ordinary *.
7366 (diagnostic_last_module_changed): Delete macro.
7367 (diagnostic_set_last_module): Delete macro.
7368
7369 2017-05-05 David Malcolm <dmalcolm@redhat.com>
7370
7371 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
7372 with diagnostic_report_diagnostic.
7373 (diagnostic_n_impl_richloc): Likewise.
7374 * diagnostic.h (report_diagnostic): Delete macro.
7375 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
7376 with diagnostic_report_diagnostic.
7377 * substring-locations.c (format_warning_va): Likewise.
7378
7379 2017-05-05 David Malcolm <dmalcolm@redhat.com>
7380
7381 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
7382 save/restor of format_spec. Move option-printing code to...
7383 (print_option_information): ...this new function, and
7384 reimplement by simply printing to the pretty_printer,
7385 rather than appending to the format string.
7386
7387 2017-05-05 David Malcolm <dmalcolm@redhat.com>
7388
7389 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
7390 handling logic into...
7391 (update_effective_level_from_pragmas): ...this new function.
7392
7393 2017-05-04 Andrew Waterman <andrew@sifive.com>
7394
7395 * config/riscv/riscv.opt (mstrict-align): New option.
7396 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
7397 (SLOW_UNALIGNED_ACCESS): Define.
7398 (riscv_slow_unaligned_access): Declare.
7399 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
7400 field.
7401 (riscv_slow_unaligned_access): New variable.
7402 (rocket_tune_info): Set slow_unaligned_access to true.
7403 (optimize_size_tune_info): Set slow_unaligned_access to false.
7404 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
7405 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
7406 (riscv_option_override): Set riscv_slow_unaligned_access.
7407 * doc/invoke.texi: Add -mstrict-align to RISC-V.
7408
7409 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
7410
7411 * config/riscv/riscv.md: Unify indentation.
7412
7413 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
7414
7415 PR target/79038
7416 PR target/79202
7417 PR target/79203
7418 * config/rs6000/rs6000.md (u code attribute): Add FIX and
7419 UNSIGNED_FIX.
7420 (extendsi<mode>2): Add support for doing sign extension via
7421 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
7422 don't have ISA 3.0 instructions.
7423 (extendsi<mode>2 splitter): Likewise.
7424 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
7425 generate the normal insns since SImode can now go in vector
7426 registers. Disallow the special UNSPECs needed for previous
7427 machines to hide SImode being used. Add new insns
7428 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
7429 (fix_trunc<mode>si2_stfiwx): Likewise.
7430 (fix_trunc<mode>si2_internal): Likewise.
7431 (fixuns_trunc<mode>si2): Likewise.
7432 (fixuns_trunc<mode>si2_stfiwx): Likewise.
7433 (fctiw<u>z_<mode>_smallint): Likewise.
7434 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
7435 of floating point to 32-bit integer from doing a direct move to
7436 the GPR registers to do a store.
7437 (fctiwz_<mode>): Break long line.
7438
7439 2017-05-05 Bin Cheng <bin.cheng@arm.com>
7440
7441 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
7442 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
7443 (addr_list, addr_offset_valid_p): New.
7444 (split_address_groups): Check offset validity with above function.
7445 (gt-tree-ssa-loop-ivopts.h): Include header file.
7446
7447 2017-05-05 Nathan Sidwell <nathan@acm.org>
7448
7449 * config.gcc (arm*-*-*): Add missing 'fi'.
7450
7451 2017-05-05 Steve Ellcey <sellcey@cavium.com>
7452
7453 * doc/invoke.texi (-fopt-info): Explicitly say order of options
7454 included in -fopt-info does not matter.
7455 * doc/optinfo.texi (-fopt-info): Fix description of default
7456 behavour. Explicitly say order of options included in -fopt-info
7457 does not matter.
7458
7459 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
7460
7461 * config.gcc: Allow combinations of aprofile and rmprofile values for
7462 --with-multilib-list.
7463 * config/arm/t-multilib: New file.
7464 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
7465 variables. Remove setting of ISA and floating-point ABI in
7466 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
7467 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
7468 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
7469 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
7470 CPU options.
7471 * config/arm/t-rmprofile: Likewise except for the matches changes.
7472 * doc/install.texi (--with-multilib-list): Document the combination of
7473 aprofile and rmprofile values and warn about pitfalls in doing that.
7474
7475 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
7476
7477 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
7478 (movdi_aarch64): Likewise.
7479
7480 2017-05-05 Jakub Jelinek <jakub@redhat.com>
7481
7482 PR tree-optimization/80632
7483 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
7484 field.
7485 (build_arrays): Initialize it for virtual phis.
7486 (fix_phi_nodes): Use it for virtual phis.
7487
7488 PR tree-optimization/80558
7489 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
7490 [x, y] op z into [x op, y op z] for op & or | if conditions
7491 are met.
7492
7493 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
7494 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
7495
7496 PR target/71607
7497 * config/arm/arm.md (use_literal_pool): Remove.
7498 (64-bit immediate split): No longer takes cost into consideration
7499 if arm_disable_literal_pool is enabled.
7500 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
7501 used when arm_disable_literal_pool is enabled.
7502 (arm_max_const_double_inline_cost): Remove use of
7503 arm_disable_literal_pool.
7504 (push_minipool_fix): Add assert.
7505 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
7506 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
7507 (no_literal_pool_sf_immediate): New.
7508
7509 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7510
7511 PR tree-optimization/80613
7512 * tree-ssa-dce.c (propagate_necessity): Remove cases for
7513 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
7514
7515 2017-05-05 Richard Biener <rguenther@suse.de>
7516
7517 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
7518
7519 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
7520
7521 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
7522 of this flag from insn conditions due to removal from r247495.
7523
7524 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
7525
7526 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
7527 New function.
7528 (arm_early_store_addr_dep_ptr): Likewise.
7529 * config/arm/aarch-common-protos.h
7530 (arm_early_load_addr_dep_ptr): Add prototype.
7531 (arm_early_store_addr_dep_ptr): Likewise.
7532 * config/arm/cortex-a53.md: Add new bypasses.
7533
7534 2017-05-05 Jakub Jelinek <jakub@redhat.com>
7535
7536 * tree.c (next_type_uid): Change type to unsigned.
7537 (type_hash_canon): Decrement back next_type_uid if
7538 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
7539 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
7540 if possible.
7541
7542 2017-05-04 Martin Sebor <msebor@redhat.com>
7543
7544 * builtins.c: Fix a trivial typo in a comment.
7545
7546 PR middle-end/79234
7547 * builtins.c (check_sizes): Adjust to handle reading past the end.
7548 Avoid printing excessive upper bound of ranges. Use %E to print
7549 tree nodes instead of converting them to %wu.
7550 (expand_builtin_memchr): New function.
7551 (compute_dest_size): Rename...
7552 (compute_objsize): ...to this.
7553 (expand_builtin_memcpy): Adjust.
7554 (expand_builtin_mempcpy): Adjust.
7555 (expand_builtin_strcat): Adjust.
7556 (expand_builtin_strcpy): Adjust.
7557 (check_strncat_sizes): Adjust.
7558 (expand_builtin_strncat): Adjust.
7559 (expand_builtin_strncpy): Adjust and simplify.
7560 (expand_builtin_memset): Adjust.
7561 (expand_builtin_bzero): Adjust.
7562 (expand_builtin_memcmp): Adjust.
7563 (expand_builtin): Handle memcmp.
7564 (maybe_emit_chk_warning): Check strncat just once.
7565
7566 2017-05-04 Martin Sebor <msebor@redhat.com>
7567
7568 PR preprocessor/79214
7569 PR middle-end/79222
7570 PR middle-end/79223
7571 * builtins.c (check_sizes): Add inlining context and issue
7572 warnings even when -Wno-system-headers is set.
7573 (check_strncat_sizes): Same.
7574 (expand_builtin_strncat): Same.
7575 (expand_builtin_memmove): New function.
7576 (expand_builtin_stpncpy): Same.
7577 (expand_builtin): Handle memmove and stpncpy.
7578
7579 2017-05-04 Bin Cheng <bin.cheng@arm.com>
7580
7581 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
7582 which is not used any more.
7583
7584 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
7585
7586 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
7587
7588 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
7589
7590 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
7591 (cortexa53_tunings): Likewise.
7592 (cortexa57_tunings): Likewise.
7593 (cortexa72_tunings): Likewise.
7594 (cortexa73_tunings): Likewise.
7595
7596 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
7597
7598 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
7599 Set loop alignment to 8.
7600
7601 2017-05-04 Martin Sebor <msebor@redhat.com>
7602
7603 PR translation/80280
7604 * builtins.c (expand_builtin_object_size): Add missing quoting to
7605 %D and like directives.
7606 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
7607 (hsa_type_for_tree_type): Same.
7608 (verify_function_arguments): Same.
7609 * symtab.c (symbol_table::change_decl_assembler_name): Same.
7610 * varasm.c (get_section): Same.
7611 (mark_weak): Same.
7612
7613 2017-05-04 Martin Sebor <msebor@redhat.com>
7614
7615 PR translation/80280
7616 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
7617
7618 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
7619
7620 * config/aarch64/aarch64.c (generic_addrcost_table):
7621 Change HI/TI mode setting.
7622
7623 2017-05-04 Martin Jambor <mjambor@suse.cz>
7624
7625 PR tree-optimization/80622
7626 * tree-sra.c (comes_initialized_p): New function.
7627 (build_accesses_from_assign): Only set write lazily when
7628 comes_initialized_p is false.
7629 (analyze_access_subtree): Use comes_initialized_p.
7630 (propagate_subaccesses_across_link): Assert !comes_initialized_p
7631 instead of testing for PARM_DECL.
7632
7633 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7634
7635 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
7636 constraint on operand 0 to allow more general addressing modes.
7637 Adjust output template.
7638 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
7639 New function.
7640 * config/aarch64/aarch64-protos.h
7641 (aarch64_address_valid_for_prefetch_p): Declare prototype.
7642 * config/aarch64/constraints.md (Dp): New address constraint.
7643 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
7644 predicate.
7645
7646 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
7647
7648 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
7649 update use of estimate_ipcp_clone_size_and_time.
7650 (estimate_local_effects): Update use of
7651 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
7652 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
7653 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
7654 Return nonspecialized time.
7655
7656 2017-05-04 Richard Biener <rguenther@suse.de>
7657
7658 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
7659 for the last VUSE which def dominates the PHI. Directly call
7660 maybe_skip_until.
7661 (get_continuation_for_phi_1): Remove.
7662
7663 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
7664
7665 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
7666 to explain the use of truncating division. Cap the number of
7667 iterations to the maximum given by nb_iterations_upper_bound,
7668 if defined.
7669
7670 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
7671
7672 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
7673 * configure: Regenerate.
7674 * config.in: Regenerate.
7675 * config/i386/driver-mingw32.c: new file.
7676 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
7677 * config.host: Link driver-mingw32.o on MinGW host.
7678 * doc/install.texi: Document new --enable-mingw-wildcard configure
7679 option.
7680
7681 2017-05-04 Marek Polacek <polacek@redhat.com>
7682
7683 PR tree-optimization/80612
7684 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
7685
7686 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
7687 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
7688
7689 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
7690 (movt splitter): Likewise.
7691 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
7692 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
7693 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
7694 block for Thumb-1 with MOVT.
7695 (thumb2_legitimate_address_p): Move code block ...
7696 (can_avoid_literal_pool_for_label_p): ... into this new function.
7697 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
7698 literal pool.
7699 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
7700 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
7701 "M-profile targets with the MOVT instruction".
7702
7703 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
7704
7705 * config/arm/arm-builtins.c (arm_init_builtins): Rename
7706 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
7707 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
7708
7709 2017-05-04 Martin Liska <mliska@suse.cz>
7710
7711 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
7712 variable cond_code.
7713
7714 2017-05-04 Richard Biener <rguenther@suse.de>
7715
7716 * tree.c (array_at_struct_end_p): Handle arrays at struct
7717 end with flexarrays more conservatively. Refactor and treat
7718 arrays of arrays or aggregates more strict. Fix
7719 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
7720 * tree.c (array_at_struct_end_p): Adjust prototype.
7721 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
7722 * gimple-fold.c (get_range_strlen): Likewise.
7723 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
7724
7725 2017-05-04 Richard Biener <rguenther@suse.de>
7726
7727 PR tree-optimization/31130
7728 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
7729 false.
7730 (supports_overflow_infinity): Likewise.
7731 (is_negative_overflow_infinity): Likewise.
7732 (is_positive_overflow_infinity): Likewise.
7733 (is_overflow_infinity): Likewise.
7734 (stmt_overflow_infinity): Likewise.
7735 (overflow_infinity_range_p): Likewise.
7736 (usable_range_p): Remove as always returning true.
7737 (make_overflow_infinity): Remove.
7738 (negative_overflow_infinity): Likewise.
7739 (positive_overflow_infinity): Likewise.
7740 (avoid_overflow_infinity): Likewise.
7741 (set_value_range): Adjust accordingly.
7742 (set_value_range_to_nonnegative): Likewise, remove now unused
7743 overflow_infinity arg.
7744 (vrp_operand_equal_p): Adjust.
7745 (update_value_range): Likewise.
7746 (range_int_cst_singleton_p): Likewise.
7747 (operand_less_p): Likewise.
7748 (compare_values_warnv): Likewise.
7749 (extract_range_for_var_from_comparison_expr): Likewise.
7750 (vrp_int_const_binop): Likewise.
7751 (zero_nonzero_bits_from_vr): Likewise.
7752 (extract_range_from_multiplicative_op_1): Likewise.
7753 (extract_range_from_binary_expr_1): Likewise.
7754 (extract_range_from_unary_expr): Likewise.
7755 (extract_range_from_comparison): Likewise.
7756 (extract_range_basic): Likewise.
7757 (adjust_range_with_scev): Likewise.
7758 (compare_ranges): Likewise.
7759 (compare_range_with_value): Likewise.
7760 (dump_value_range): Likewise.
7761 (test_for_singularity): Likewise, remove strict_overflow_p parameter
7762 never used.
7763 (simplify_cond_using_ranges): Adjust.
7764
7765 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
7766
7767 * brig-builtins.def: Added a builtin for class_f64.
7768 * builtin-types.def: Added a builtin type needed by class_f64.
7769
7770 2017-05-03 Jason Merrill <jason@redhat.com>
7771
7772 * timevar.def: Add TV_CONSTEXPR.
7773
7774 2017-05-03 David Malcolm <dmalcolm@redhat.com>
7775
7776 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
7777
7778 2017-05-03 Martin Jambor <mjambor@suse.cz>
7779
7780 * ipa-prop.c (ipa_update_after_lto_read): Removed.
7781 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
7782 * ipa-cp.c (ipcp_propagate_stage): Do not call
7783 ipa_update_after_lto_read.
7784 * ipa-inline.c (ipa_inline): Likewise.
7785
7786 2017-05-03 Martin Jambor <mjambor@suse.cz>
7787
7788 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
7789 tag. Added a default constructor and a destructor.
7790 (ipa_edge_args_sum_t): New class;
7791 (ipa_edge_args_sum): Declare.
7792 (ipa_edge_args_vector): Remove declaration.
7793 (IPA_EDGE_REF): Use ipa_edge_args_sum.
7794 (ipa_free_edge_args_substructures): Remove declaration.
7795 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
7796 (ipa_edge_args_info_available_for_edge_p): Likewise.
7797 * ipa-prop.c (ipa_edge_args_vector): Removed.
7798 (edge_removal_hook_holder): Likewise.
7799 (edge_duplication_hook_holder): Likewise.
7800 (ipa_edge_args_sum): New variable.
7801 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
7802 ipa_edge_args_vector.
7803 (ipa_free_edge_args_substructures): Likewise.
7804 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
7805 ipa_edge_args_vector.
7806 (ipa_edge_removal_hook): Turned into method
7807 ipa_edge_args_sum_t::remove.
7808 (ipa_edge_duplication_hook): Turned into method
7809 ipa_edge_args_sum_t::duplicate.
7810 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
7811 registering edge hooks.
7812 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
7813 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
7814 ipa_edge_args_sum instead of ipa_edge_args_vector.
7815 * ipa-profile.c (ipa_profile): Likewise.
7816
7817 2017-05-03 Martin Jambor <mjambor@suse.cz>
7818
7819 * symbol-summary.h (function_summary): New method exists.
7820 (function_summary::symtab_removal): Deallocate through release.
7821 (call_summary): New class.
7822 (gt_ggc_mx): New overload.
7823 (gt_pch_nx): Likewise.
7824 (gt_pch_nx): Likewise.
7825
7826 2017-05-03 Jeff Law <law@redhat.com>
7827
7828 PR tree-optimization/78496
7829 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
7830 from simplify_cond_using_ranges. Split off code to walk
7831 backwards through casts into ...
7832 (simplify_cond_using_ranges_2): New function.
7833 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
7834 (execute_vrp): After identifying jump threads, call
7835 simplify_cond_using_ranges_2.
7836
7837 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
7838
7839 PR bootstrap/80609
7840 * ipa-inline.h (inline_summary): Add ctor.
7841 (create_ggc): Do not use ggc_cleared_alloc.
7842
7843 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
7844 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7845
7846 * gcc.c (handle_braces): Support escaping in switch matching
7847 text.
7848 * doc/invoke.texi (Spec Files): Document it.
7849 Remove superfluous @code markup in items.
7850
7851 2017-05-03 David Malcolm <dmalcolm@redhat.com>
7852
7853 * diagnostic-show-locus.c (struct column_range): New struct.
7854 (get_affected_columns): New function.
7855 (get_printed_columns): New function.
7856 (struct correction): New struct.
7857 (correction::ensure_capacity): New function.
7858 (correction::ensure_terminated): New function.
7859 (struct line_corrections): New struct.
7860 (line_corrections::~line_corrections): New dtor.
7861 (line_corrections::add_hint): New function.
7862 (layout::print_trailing_fixits): Reimplement in terms of the new
7863 classes.
7864 (selftest::test_overlapped_fixit_printing): New function.
7865 (selftest::diagnostic_show_locus_c_tests): Call it.
7866
7867 2017-05-03 Nathan Sidwell <nathan@acm.org>
7868
7869 Canonicalize canonical type hashing
7870 * tree.h (type_hash_canon_hash): Declare.
7871 * tree.c (type_hash_list, attribute_hash_list): Move into
7872 type_hash_canon_hash.
7873 (build_type_attribute_qual_variant): Break out hash code calc into
7874 type_hash_canon_hash.
7875 (type_hash_canon_hash): New. Generic type hash computation.
7876 (build_range_type_1, build_array_type_1, build_function_type,
7877 build_method_type_directly, build_offset_type, build_complex_type,
7878 make_vector_type): Call it.
7879
7880 2017-05-03 Richard Biener <rguenther@suse.de>
7881
7882 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7883 When all DRs have unknown misaligned do not always peel
7884 when there is a store but apply the same costing model as if
7885 there were only loads.
7886
7887 2017-05-03 Richard Biener <rguenther@suse.de>
7888
7889 Revert
7890 PR tree-optimization/80492
7891 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
7892 compare_base_decls returning dont-know properly.
7893
7894 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
7895
7896 * config/arm/iterators.md (CCSI): New mode iterator.
7897 (arch): New mode attribute.
7898 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
7899 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
7900 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
7901 code iterator for success result mode.
7902 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
7903 the corresponding new insn generators.
7904
7905 2017-05-03 Bin Cheng <bin.cheng@arm.com>
7906
7907 Revert r247509
7908 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7909 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
7910
7911 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
7912
7913 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
7914 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
7915 (DDR_A): Wrap DDR argument in brackets.
7916 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
7917 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
7918 (DDR_REVERSED_P): Likewise.
7919
7920 2017-05-03 Jakub Jelinek <jakub@redhat.com>
7921
7922 PR tree-optimization/79472
7923 * tree-switch-conversion.c (struct switch_conv_info): Add
7924 contiguous_range and default_case_nonstandard fields.
7925 (collect_switch_conv_info): Compute contiguous_range and
7926 default_case_nonstandard fields, don't clear final_bb if
7927 contiguous_range and only the default case doesn't have the required
7928 structure.
7929 (check_all_empty_except_final): Set default_case_nonstandard instead
7930 of failing if contiguous_range and the default case doesn't have empty
7931 block.
7932 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
7933 and only the default case doesn't have the required constants. Skip
7934 virtual phis.
7935 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
7936 if default_case_nonstandard.
7937 (build_constructors): Build constant 1 just once. Assert that default
7938 values aren't inserted in between cases if contiguous_range. Skip
7939 virtual phis.
7940 (build_arrays): Skip virtual phis.
7941 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
7942 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
7943 Handle virtual phis.
7944 (gen_inbound_check): Handle default_case_nonstandard case.
7945 (process_switch): Adjust check_final_bb caller. Call
7946 gather_default_values with the first non-default case instead of
7947 default case if default_case_nonstandard.
7948
7949 2017-05-02 Nathan Sidwell <nathan@acm.org>
7950
7951 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
7952 check. Fix formatting.
7953
7954 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
7955
7956 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
7957 errors when comparing specialized and unspecialized times.
7958
7959 2017-05-02 David Malcolm <dmalcolm@redhat.com>
7960
7961 * diagnostic-show-locus.c
7962 (layout::should_print_annotation_line_p): Make private.
7963 (layout::print_annotation_line): Make private.
7964 (layout::annotation_line_showed_range_p): Make private.
7965 (layout::show_ruler): Make private.
7966 (layout::print_source_line): Make private. Pass in line and
7967 line_width, rather than calling location_get_source_line. Drop
7968 returned value.
7969 (layout::print_leading_fixits): New method.
7970 (layout::print_any_fixits): Rename to...
7971 (layout::print_trailing_fixits): ...this, and make private.
7972 Don't print newline fixits.
7973 (diagnostic_show_locus): Move logic for printing one row into...
7974 (layout::print_line): ...this new function. Move the
7975 location_get_source_line call and error-handling from
7976 print_source_line to here. Call print_leading_fixits, and rename
7977 print_any_fixits to print_trailing_fixits.
7978 (selftest::test_fixit_insert_containing_newline): Update now that
7979 newlines are partially supported.
7980 (selftest::test_fixit_insert_containing_newline_2): New test.
7981 (selftest::test_fixit_replace_containing_newline): Update comments.
7982 (selftest::diagnostic_show_locus_c_tests): Call the new test.
7983 * edit-context.c (class added_line): New class.
7984 (class edited_line): Describe newline handling in comment.
7985 (edited_line::actually_edited_p): New method.
7986 (edited_line::print_content): Delete redundant decl.
7987 (edited_line::m_predecessors): New field.
7988 (edited_file::print_content): Call edited_line::print_content.
7989 (edited_file::print_diff): Update to support newlines.
7990 (edited_file::print_diff_hunk): Likewise.
7991 (edited_file::print_run_of_changed_lines): New function.
7992 (edited_file::print_diff_line): Convert to...
7993 (print_diff_line): ...this.
7994 (edited_file::get_effective_line_count): New function.
7995 (edited_line::edited_line): Initialize new field m_predecessors.
7996 (edited_line::~edited_line): Clean up m_predecessors.
7997 (edited_line::apply_fixit): Handle newlines.
7998 (edited_line::get_effective_line_count): New function.
7999 (edited_line::print_content): New function.
8000 (edited_line::print_diff_lines): New function.
8001 (selftest::test_applying_fixits_insert_containing_newline): New
8002 test.
8003 (selftest::test_applying_fixits_replace_containing_newline): New
8004 test.
8005 (selftest::insert_line): New function.
8006 (selftest::test_applying_fixits_multiple_lines): Add example of
8007 inserting a line.
8008 (selftest::edit_context_c_tests): Call the new tests.
8009
8010 2017-05-02 Bin Cheng <bin.cheng@arm.com>
8011
8012 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
8013 parameter cand. Update dump information.
8014 (get_computation_cost): Update uses.
8015
8016 2017-05-02 Bin Cheng <bin.cheng@arm.com>
8017
8018 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
8019 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
8020 (get_computation_at, rewrite_use_address): Update use of
8021 get_computation_aff.
8022
8023 2017-05-02 Bin Cheng <bin.cheng@arm.com>
8024
8025 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
8026 (get_computation): Delete.
8027 (get_computation_cost): Implement like get_computation_cost_at.
8028 Use get_computation_at.
8029 (get_computation_cost_at): Delete.
8030 (rewrite_use_nonlinear_expr): Use get_computation_at.
8031 (rewrite_use_compare, remove_unused_ivs): Ditto.
8032
8033 2017-05-02 Bin Cheng <bin.cheng@arm.com>
8034
8035 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
8036
8037 2017-05-02 Bin Cheng <bin.cheng@arm.com>
8038
8039 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
8040 (ivopts_global_cost_for_size): Rename parameter and update uses.
8041 (iv_ca_recount_cost): Update uses.
8042 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
8043 candidates seperately in n_invs and n_cands.
8044 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
8045
8046 2017-05-02 Bin Cheng <bin.cheng@arm.com>
8047
8048 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
8049 (find_inv_vars_cb): New.
8050 (find_depends): Renamed to ...
8051 (find_inv_vars): ... this.
8052 (add_candidate_1, force_var_cost): Call find_inv_vars.
8053 (split_address_cost, determine_group_iv_cost_cond): Ditto.
8054
8055 2017-05-02 Bin Cheng <bin.cheng@arm.com>
8056
8057 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
8058 inv_vars. Add inv_exprs.
8059 (struct iv_cand): Rename depends_on to inv_vars.
8060 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
8061 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
8062 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
8063 (dump_cand): Dump inv_vars.
8064 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
8065 (record_invariant, find_depends, add_candidate_1): Ditto.
8066 (set_group_iv_cost, force_var_cost): Ditto.
8067 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
8068 (get_computation_cost_at, get_computation_cost): Ditto.
8069 (determine_group_iv_cost_generic): Ditto.
8070 (determine_group_iv_cost_address): Ditto.
8071 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
8072 (determine_group_iv_costs): Ditto.
8073 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
8074 (iv_ca_set_remove_invariants): Renamed to ...
8075 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
8076 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
8077 (iv_ca_set_add_invariants): Renamed to ...
8078 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
8079 (iv_ca_set_cp): Use iv_ca_set_add_invs.
8080 (iv_ca_has_deps): Support inv_vars and inv_exprs.
8081 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
8082 (create_new_ivs): Remove useless dump.
8083
8084 2017-05-02 Bin Cheng <bin.cheng@arm.com>
8085
8086 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
8087 iv_cand code.
8088 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
8089 (iv_ca_set_no_cp, create_new_iv): Ditto.
8090
8091 2017-05-02 Bin Cheng <bin.cheng@arm.com>
8092
8093 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
8094
8095 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
8096
8097 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
8098 function tree_check2.
8099
8100 2017-05-02 Martin Liska <mliska@suse.cz>
8101
8102 * doc/gcov.texi: Add missing preposition.
8103 * gcov.c (function_info::function_info): Properly fill up
8104 all member variables.
8105
8106 2017-05-02 Tamar Christina <tamar.christina@arm.com>
8107
8108 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
8109
8110 2017-05-02 Tamar Christina <tamar.christina@arm.com>
8111
8112 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
8113
8114 2017-05-02 Martin Liska <mliska@suse.cz>
8115
8116 PR lto/77954.
8117 * lto-streamer-in.c (lto_read_tree_1): Remove
8118 LTO_STREAMER_DEBUG.
8119 * lto-streamer.c (struct tree_hash_entry): Likewise.
8120 (struct tree_entry_hasher): Likewise.
8121 (tree_entry_hasher::hash): Likewise.
8122 (tree_entry_hasher::equal): Likewise.
8123 (lto_streamer_init): Likewise.
8124 (lto_orig_address_map): Likewise.
8125 (lto_orig_address_get): Likewise.
8126 (lto_orig_address_remove): Likewise.
8127 * lto-streamer.h: Likewise.
8128 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
8129 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
8130
8131 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
8132
8133 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
8134 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
8135 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
8136 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
8137 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
8138 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
8139 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
8140 (mm_maskz_sub_ss): New intrinsics.
8141 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
8142 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
8143 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
8144 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
8145 (__builtin_ia32_subss_mask_round): New builtins.
8146 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
8147 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
8148 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
8149 Renamed to ...
8150 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
8151 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
8152 Changed to ...
8153 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
8154 ... this.
8155
8156 2017-05-02 Martin Jambor <mjambor@suse.cz>
8157
8158 PR tree-optimization/78687
8159 * tree-sra.c (access): New field parent.
8160 (process_subtree_disqualification): New function.
8161 (disqualify_candidate): Call it.
8162 (build_accesses_from_assign): Reset write flag if creating an
8163 assighnment link.
8164 (build_access_subtree): Fill in parent field and also prpagate
8165 down grp_write flag.
8166 (create_artificial_child_access): New parameter set_grp_write, set
8167 grp_write to its value.
8168 (propagate_subaccesses_across_link): Also propagate grp_write flag
8169 values.
8170 (propagate_all_subaccesses): Push the closest parent back to work
8171 queue if add_access_to_work_queue returned true.
8172
8173 2017-05-02 Richard Biener <rguenther@suse.de>
8174
8175 * common.opt (fstrict-overflow): Alias negative to fwrapv.
8176 * doc/invoke.texi (fstrict-overflow): Remove all traces of
8177 -fstrict-overflow documentation.
8178 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
8179 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
8180 flag_strict_overflow.
8181 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
8182 * lto-opts.c (lto_write_options): Do not stream it.
8183 * lto-wrapper.c (merge_and_complain): Do not handle it.
8184 * opts.c (default_options_table): Do not set -fstrict-overflow.
8185 (finish_options): Likewise do not clear it when sanitizing.
8186 * simplify-rtx.c (simplify_const_relational_operation): Do not
8187 test flag_strict_overflow.
8188
8189 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
8190
8191 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
8192 using enabled attribute.
8193 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
8194 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
8195 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
8196 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
8197 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
8198 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
8199 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
8200 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
8201 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
8202 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
8203
8204 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
8205
8206 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
8207
8208 2017-05-02 Richard Biener <rguenther@suse.de>
8209
8210 PR tree-optimization/80591
8211 Revert
8212 2017-04-10 Richard Biener <rguenther@suse.de>
8213
8214 * tree-ssa-structalias.c (find_func_aliases): Properly handle
8215 asm inputs.
8216
8217 2017-05-02 Richard Biener <rguenther@suse.de>
8218
8219 PR tree-optimization/80549
8220 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
8221 (cleanup_tree_cfg_noloop): Create forwarders to known loop
8222 headers if they do not have a preheader.
8223
8224 2017-05-02 Martin Liska <mliska@suse.cz>
8225
8226 PR other/80589
8227 * common.opt: Fix typo.
8228 * doc/invoke.texi: Likewise.
8229
8230 2017-05-01 Jan Beulich <jbeulich@suse.com>
8231
8232 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
8233 swapping, add (x,x,m,x,n) alternative.
8234
8235 2017-05-01 Nathan Sidwell <nathan@acm.org>
8236
8237 * calls.c (combine_pending_stack_adjustment_and_call): Remove
8238 unnecessary unadjusted_alignment check.
8239
8240 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
8241
8242 PR c++/80038
8243 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
8244 operations here.
8245 * gimplify.c (gimplify_cilk_detach): New function.
8246 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
8247 * tree-core.h: Document EXPR_CILK_SPAWN.
8248 * tree.h (EXPR_CILK_SPAWN): Define.
8249
8250 2017-05-01 David Malcolm <dmalcolm@redhat.com>
8251
8252 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
8253 to use new fixit_hint representation, using the "replace" logic.
8254 (get_line_span_for_fixit_hint): Likewise.
8255 (layout::print_any_fixits): Likewise.
8256 (selftest::test_one_liner_many_fixits): Rename to...
8257 (selftest::test_one_liner_many_fixits_1): ...this, and update
8258 comment and expected output to reflect that the multiple fix-it
8259 hints are now consolidated into one insertion.
8260 (selftest::test_one_liner_many_fixits_2): New test.
8261 (selftest::test_diagnostic_show_locus_one_liner): Update for
8262 above.
8263 (selftest::test_fixit_consolidation): Update for fix-it API
8264 change.
8265 * diagnostic.c (print_parseable_fixits): Likewise.
8266 * edit-context.c (edited_line::m_line_events): Convert from
8267 auto_vec <line_event *> to auto_vec <line_event>.
8268 (class line_event): Convert from abstract base class to a concrete
8269 class, taking over the role of replace_event.
8270 (class insert_event): Delete.
8271 (class replace_event): Rename to class line_event. Convert to
8272 half-open range.
8273 (edit_context::add_fixits): Reimplement.
8274 (edit_context::apply_insert): Delete.
8275 (edit_context::apply_replace): Rename to...
8276 (edit_context::apply_fixit): ...this. Convert to half-open range.
8277 (edited_file::apply_insert): Delete.
8278 (edited_file::apply_replace): Rename to...
8279 (edited_file::apply_fixit): ...this.
8280 (edited_line::~edited_line): Drop deletion of events.
8281 (edited_line::apply_insert): Delete.
8282 (edited_line::apply_replace): Rename to...
8283 (edited_line::apply_fixit): ...this. Convert to half-open range.
8284 Update for change to type of m_line_events.
8285 * edit-context.h (edit_context::apply_insert): Delete.
8286 (edit_context::apply_replace): Rename to...
8287 (edit_context::apply_fixit): ...this.
8288
8289 2017-05-01 Martin Sebor <msebor@redhat.com>
8290
8291 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
8292 known.
8293
8294 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
8295
8296 PR target/68491
8297 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
8298 __get_cpuid_max returns 0.
8299 (__get_cpuid_count): Ditto.
8300
8301 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
8302
8303 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
8304 replacement expression is another instance of one of its arguments.
8305
8306 2017-05-01 Jakub Jelinek <jakub@redhat.com>
8307
8308 PR target/79430
8309 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
8310 check for stack push/pop autoinc.
8311 * config/i386/i386.c (ix86_agi_dependent): Return false
8312 if the only reason why modified_in_p returned true is that
8313 addr is SP based and set_insn is a push or pop.
8314
8315 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
8316
8317 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
8318 overflow check.
8319
8320 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
8321
8322 PR ipa/79224
8323 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
8324 (account_size_time): Use two predicates - exec_pred and
8325 nonconst_pred_ptr.
8326 (evaluate_conditions_for_known_args): Compute both clause and
8327 nonspec_clause.
8328 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
8329 (inline_summary_t::duplicate): Update.
8330 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
8331 separately.
8332 (compute_inline_parameters): Likewise.
8333 (estimate_edge_size_and_time): Update caluclation of time.
8334 (estimate_node_size_and_time): Compute both time and nonspecialized
8335 time.
8336 (estimate_ipcp_clone_size_and_time): Update.
8337 (inline_merge_summary): Update.
8338 (do_estimate_edge_time): Update.
8339 (do_estimate_edge_size): Update.
8340 (do_estimate_edge_hints): Update.
8341 (inline_read_section, inline_write_summary): Stream both new predicates.
8342 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
8343 as argument.
8344 (compute_inlined_call_time): Cleanup.
8345 (big_speedup_p): Update.
8346 (edge_badness): Update.
8347 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
8348 (size_time_entry): Replace predicate by exec_predicate and
8349 nonconst_predicate.
8350 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
8351 (estimate_edge_time): Return also nonspec_time.
8352 (reset_edge_growth_cache): Update.
8353
8354 2017-04-29 Jakub Jelinek <jakub@redhat.com>
8355
8356 PR rtl-optimization/80491
8357 * ifcvt.c (noce_process_if_block): When looking for x setter
8358 with missing else_bb, don't check only the insn right before
8359 cond_earliest, but look for the last insn that x is modified in
8360 within the same bb.
8361
8362 PR rtl-optimization/80491
8363 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
8364
8365 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
8366
8367 PR tree-optimization/80487
8368 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
8369
8370 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8371
8372 PR tree-optimization/79697
8373 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
8374 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
8375 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
8376 BUILT_IN_STRNDUP.
8377 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
8378 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
8379
8380 2017-04-28 Martin Sebor <msebor@redhat.com>
8381
8382 PR tree-optimization/80523
8383 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
8384 (init_target_to_host_charmap, target_to_host, target_strtol10): New
8385 functions.
8386 (maybe_warn, format_directive, parse_directive): Use new functions.
8387 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
8388
8389 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
8390
8391 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
8392
8393 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
8394
8395 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
8396 target_header_dir): Set correctly.
8397 * configure: Regenerated.
8398 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
8399 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
8400 instead of SYSTEM_HEADER_DIR.
8401
8402 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
8403
8404 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
8405 (estimate_local_effects): Likewise.
8406 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
8407 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
8408 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
8409 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
8410 do_estimate_edge_time, estimate_edge_time): Likewise.
8411 * ipa-inline-analysis.c (estimate_node_size_and_time,
8412 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
8413 (estimate_time_after_inlining): Remove.
8414
8415 2017-04-28 Martin Liska <mliska@suse.cz>
8416
8417 * doc/gcov.texi: Enhance documentation of gcov.
8418
8419 2017-04-28 Martin Liska <mliska@suse.cz>
8420
8421 * doc/gcov.texi: Sort options in alphabetic order.
8422 * doc/gcov-dump.texi: Likewise.
8423 * doc/gcov-tool.texi: Likewise.
8424 * gcov.c (print_usage): Likewise.
8425 * gcov-dump.c (print_usage): Likewise.
8426 * gcov-tool.c (print_merge_usage_message): Likewise.
8427 (print_rewrite_usage_message): Likewise.
8428 (print_overlap_usage_message): Likewise.
8429
8430 2017-04-28 Martin Liska <mliska@suse.cz>
8431
8432 PR gcov-profile/53915
8433 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
8434
8435 2017-04-28 Martin Liska <mliska@suse.cz>
8436
8437 PR gcov-profile/79891
8438 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
8439 is marked by compiler as living on a line.
8440 (get_cycles_count): Remove usage of the union.
8441 (output_intermediate_file): Likewise.
8442 (find_source): Fix GNU coding style.
8443 (accumulate_line_counts): Remove old non-all block mode.
8444 (output_lines): Remove usage of the union.
8445 * profile.c (output_location): Include all BBs, even if
8446 belonging to a same line (and file) as a previous BB.
8447
8448 2017-04-28 Martin Liska <mliska@suse.cz>
8449
8450 * gcov.c (process_args): Handle new argument 'w'.
8451 (read_graph_file): Assign ID to BBs.
8452 (output_branch_count): Display BB # if verbose flag is set.
8453 (output_lines): Likewise for arcs.
8454 (print_usage): Add '--verbose' option help.
8455 * doc/gcov.texi: Document --verbose (-w) option.
8456
8457 2017-04-28 Martin Liska <mliska@suse.cz>
8458
8459 * gcov.c (struct block_location_info): New struct.
8460 (process_file): Fill up the new structure.
8461 (read_graph_file): Replace usage of encoding by the newly added
8462 struct.
8463 (add_line_counts): Likewise.
8464 (accumulate_line_counts): Remove usage of the union.
8465 (function_info::function_info): New function.
8466 (function_info::~function_info): Likewise.
8467 (process_file): Call delete instead of release_function.
8468 (release_function): Release the function.
8469 (release_structures): Call delete instead of release_function.
8470 (solve_flow_graph): Replace usage of num_blocks.
8471 (find_exception_blocks): Likewise.
8472 (output_lines): Fix GNU coding style.
8473
8474 2017-04-28 Martin Liska <mliska@suse.cz>
8475
8476 PR driver/56469
8477 * coverage.c (coverage_remove_note_file): New function.
8478 * coverage.h: Declare the function.
8479 * toplev.c (finalize): Clean if an error has been seen.
8480
8481 2017-04-28 Martin Liska <mliska@suse.cz>
8482
8483 PR gcov-profile/80031
8484 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
8485 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
8486 * gcov.c (read_graph_file): Read just number of blocks.
8487 * profile.c (branch_prob): Do not stream 0 flags per a basic
8488 block.
8489
8490 2017-04-28 Martin Liska <mliska@suse.cz>
8491
8492 * gcov-dump.c (tag_*): Add new argument to declarations.
8493 (dump_gcov_file): Likewise.
8494 (tag_blocks): Add and use new argument depth.
8495 (tag_arcs): Likewise.
8496 (tag_lines): Likewise.
8497 (tag_counters): Likewise.
8498 (tag_summary): Likewise.
8499 (dump_working_sets): Use depth to do a proper indentation.
8500
8501 2017-04-28 Jakub Jelinek <jakub@redhat.com>
8502
8503 PR bootstrap/80531
8504 * cgraph.h (symtab_node::debug_symtab): No longer inline.
8505 * symtab.c (symtab_node::debug_symtab): Move definition here.
8506
8507 2017-04-28 Richard Biener <rguenther@suse.de>
8508
8509 * lto-streamer.h (LTO_major_version): Bump to 7.
8510
8511 2017-04-28 Richard Biener <rguenther@suse.de>
8512
8513 * tree-vrp.c (assert_info): New struct.
8514 (add_assert_info): New helper.
8515 (register_edge_assert_for_2): Refactor to add asserts to a vector
8516 of assert_info.
8517 (register_edge_assert_for_1): Likewise.
8518 (register_edge_assert_for): Likewise.
8519 (finish_register_edge_assert_for): New helper actually registering
8520 asserts where live on edge.
8521 (find_conditional_asserts): Adjust.
8522 (find_switch_asserts): Likewise.
8523 (evrp_dom_walker::try_find_new_range): Generalize.
8524 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
8525
8526 2017-04-27 Marek Polacek <polacek@redhat.com>
8527
8528 PR sanitizer/80349
8529 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
8530 arg10 and arg11 to itype.
8531
8532 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
8533
8534 * doc/extend.texi (Object Size Checking): Improve grammar.
8535
8536 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
8537
8538 PR target/80530
8539 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
8540 that the logic for permitting reciprocal estimates matches that
8541 in use_rsqrt_p.
8542
8543 2017-04-27 Jakub Jelinek <jakub@redhat.com>
8544
8545 PR c++/80534
8546 * tree.c (type_cache_hasher::equal): Only compare
8547 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
8548 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
8549 non-aggregate element types.
8550 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
8551 about the flag on ARRAY_TYPEs in the comment, formatting fix.
8552
8553 2017-04-27 Richard Biener <rguenther@suse.de>
8554
8555 PR middle-end/80533
8556 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
8557 stripping ARRAY_REFs from MEM_EXPR make sure we're not
8558 keeping a reference to a trailing array.
8559
8560 2017-04-27 Richard Biener <rguenther@suse.de>
8561
8562 PR middle-end/80539
8563 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
8564 being in loop-closed SSA form conservatively.
8565 (chrec_fold_multiply_poly_poly): Likewise.
8566
8567 2017-04-27 Tamar Christina <tamar.christina@arm.com>
8568
8569 PR middle-end/79665
8570 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
8571 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
8572
8573 2017-04-27 Jakub Jelinek <jakub@redhat.com>
8574
8575 PR target/77728
8576 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
8577 (aarch64_function_arg_alignment): Return unsigned int again, but still
8578 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
8579 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
8580 Don't emit -Wpsabi note.
8581 (aarch64_function_arg_boundary): Likewise.
8582 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
8583 caller.
8584
8585 2017-04-26 Nathan Sidwell <nathan@acm.org>
8586
8587 * tree.h (crc32_unsigned_n): Declare.
8588 (crc32_unsigned, crc32_unsigned): Make inline.
8589 * tree.c (crc32_unsigned_bits): Replace with ...
8590 (crc32_unsigned_n): ... this.
8591 (crc32_unsigned, crc32_byte): Remove.
8592 (crc32_string): Remove unnecessary braces.
8593
8594 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
8595
8596 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
8597 * ipa-inline-analysis.c (MAX_TIME): Remove.
8598 (account_size_time): Use sreal for time.
8599 (dump_inline_summary): Update.
8600 (estimate_function_body_sizes): Update.
8601 (estimate_edge_size_and_time): Update.
8602 (estimate_calls_size_and_time): Update.
8603 (estimate_node_size_and_time): Update.
8604 (inline_merge_summary): Update.
8605 (inline_update_overall_summary): Update.
8606 (estimate_time_after_inlining): Update.
8607 (inline_read_section): Update.
8608 (inline_write_summary): Update.
8609 * ipa-inline.c (compute_uninlined_call_time): Update.
8610 (compute_inlined_call_time): Update.
8611 (recursive_inlining): Update.
8612 (inline_small_functions): Update.
8613 (dump_overall_stats): Update.
8614 * ipa-inline.h: Include sreal.h.
8615 (size_time_entry): Turn time to sreal.
8616 (inline_summary): Turn self_time nad time to sreal.
8617
8618 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
8619
8620 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
8621 data-streamer.h
8622 (sreal::stream_out, sreal::stream_in): New.
8623 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
8624
8625 2017-04-25 Jakub Jelinek <jakub@redhat.com>
8626
8627 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
8628 environment.
8629
8630 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
8631
8632 PR target/70799
8633 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
8634 Handle ASHIFTRT.
8635 (dimode_scalar_chain::compute_convert_gain): Ditto.
8636 (dimode_scalar_chain::make_vector_copies): Ditto.
8637 (dimode_scalar_chain::convert_reg): Ditto.
8638 (dimode_scalar_chain::convert_insn): Ditto.
8639 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
8640 (VI248_AVX512BW_1): New mode iterator.
8641 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
8642 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
8643 mode iterator.
8644
8645 2017-04-25 Martin Sebor <msebor@redhat.com>
8646
8647 PR tree-optimization/80497
8648 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
8649 constants are representable in HOST_WIDE_INT.
8650 (parse_directive): Ditto.
8651
8652 2017-04-25 Martin Sebor <msebor@redhat.com>
8653
8654 PR bootstrap/80486
8655 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
8656 (new_zero_array): Adjust signature.
8657 (dom_info::dom_init): Used unsigned rather that size_t.
8658 (dom_info::dom_info): Same.
8659
8660 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8661 Jakub Jelinek <jakub@redhat.com>
8662
8663 PR target/77728
8664 * config/arm/arm.c: Include gimple.h.
8665 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
8666 returns negative, increment ncrn only if it returned positive.
8667 (arm_needs_doubleword_align): Return int instead of bool,
8668 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
8669 members, but if there is any such non-FIELD_DECL
8670 > PARM_BOUNDARY aligned decl, return -1 instead of false.
8671 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
8672 returns negative, increment nregs only if it returned positive.
8673 (arm_setup_incoming_varargs): Likewise.
8674 (arm_function_arg_boundary): Emit -Wpsabi note if
8675 arm_needs_doubleword_align returns negative, return
8676 DOUBLEWORD_ALIGNMENT only if it returned positive.
8677
8678 2017-04-25 Marek Polacek <polacek@redhat.com>
8679
8680 PR sanitizer/80349
8681 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
8682 first argument to type.
8683
8684 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
8685
8686 PR target/80482
8687 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
8688 type checks to test for compatibility instead of equality.
8689
8690 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8691 Jakub Jelinek <jakub@redhat.com>
8692
8693 PR target/77728
8694 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
8695 type.
8696 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
8697 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
8698 the alignment computation, but return their maximum in warn_alignment.
8699 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
8700 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
8701 is smaller.
8702 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
8703 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
8704 caller.
8705
8706 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8707
8708 * config/arc/simdext.md (dmpyh): Fix typo.
8709
8710 2017-04-25 Richard Biener <rguenther@suse.de>
8711
8712 PR tree-optimization/80492
8713 * alias.c (compare_base_decls): Handle registers with asm
8714 specification conservatively.
8715 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
8716 compare_base_decls returning dont-know properly.
8717
8718 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8719
8720 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
8721 (legitimate_offset_address_p): New function.
8722 (arc_legitimate_address_p): Use above function.
8723
8724 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8725
8726 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
8727
8728 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8729
8730 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
8731 ACCH registers whenever they are available.
8732
8733 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8734
8735 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
8736 double regs fix when not used.
8737
8738 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8739
8740 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
8741 core registers.
8742 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
8743 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
8744
8745 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8746
8747 * config/arc/arc.c (arc_output_addsi): Check for h-register class
8748 when emitting short ADD instructions.
8749
8750 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8751
8752 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
8753 constraint.
8754 (cmpsi_cc_c_insn): Likewise.
8755 (cbranchsi4_scratch): Compute proper instruction length using
8756 compact_hreg_operand.
8757 * config/arc/predicates.md (compact_hreg_operand): New predicate.
8758
8759 2017-04-25 Richard Biener <rguenther@suse.de>
8760
8761 PR middle-end/80509
8762 * passes.c (pass_manager::pass_manager): Initialize
8763 m_name_to_pass_map.
8764
8765 2017-04-25 Richard Biener <rguenther@suse.de>
8766
8767 PR tree-optimization/79201
8768 * tree-ssa-sink.c (statement_sink_location): Handle calls.
8769
8770 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8771
8772 PR target/80464
8773 * config/s390/vector.md: Split MEM->GPR vector moves for
8774 non-s_operand addresses.
8775
8776 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8777
8778 PR target/79895
8779 * config/s390/predicates.md (reload_const_wide_int_operand): New
8780 predicate.
8781 * config/s390/s390.md ("movti"): Remove d/P alternative.
8782 ("movti_bigconst"): New pattern definition.
8783
8784 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8785
8786 PR target/80080
8787 * s390-protos.h (s390_expand_cs_hqi): Removed.
8788 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
8789 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
8790 modes as well as CCZ1mode and CCZmode.
8791 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
8792 signature of s390_emit_compare_and_swap.
8793 (s390_expand_cs_hqi): Likewise, make static.
8794 (s390_expand_cs_tdsi): Generate an explicit compare before trying
8795 compare-and-swap, in some cases.
8796 (s390_expand_cs): Wrapper function.
8797 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
8798 atomic_exchange.
8799 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
8800 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
8801 patterns for small and large integers. Forbid symref memory operands.
8802 Move expander to s390.c. Require cc register.
8803 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
8804 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
8805 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
8806 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
8807 symref memory operands. Remove CC mode and call s390_match_ccmode
8808 instead.
8809 ("atomic_exchange<mode>"): Allow and implement all integer modes.
8810
8811 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8812
8813 * config/s390/s390.md (define_peephole2): New peephole to help
8814 combining the load-and-test pattern with volatile memory.
8815
8816 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8817
8818 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
8819 with CCZmode for TARGET_Z196.
8820
8821 2017-04-25 Jakub Jelinek <jakub@redhat.com>
8822
8823 PR rtl-optimization/80501
8824 * combine.c (make_compound_operation_int): Set subreg_code to SET
8825 even for AND with mask of the sign bit of mode.
8826
8827 PR rtl-optimization/80500
8828 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
8829 sum's initial value.
8830
8831 2017-04-25 Julian Brown <julian@codesourcery.com>
8832 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8833
8834 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
8835
8836 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
8837
8838 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
8839
8840 2017-04-25 Julian Brown <julian@codesourcery.com>
8841 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8842
8843 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
8844 (thunderx2t99_sha): New Reservation.
8845
8846 2017-04-25 Julian Brown <julian@codesourcery.com>
8847 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8848
8849 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
8850 type for 1-element load.
8851
8852 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
8853
8854 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
8855
8856 2017-04-24 Martin Jambor <mjambor@suse.cz>
8857
8858 PR tree-optimization/80293
8859 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
8860 char arrays not totally scalarizable if it is false.
8861 (analyze_all_variable_accesses): Pass correct value in the new
8862 parameter. Add a statistics counter.
8863
8864 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
8865
8866 PR middle-end/79931
8867 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
8868
8869 2017-04-24 Richard Biener <rguenther@suse.de>
8870
8871 PR tree-optimization/80494
8872 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
8873 out for complex types.
8874
8875 2017-04-24 Richard Biener <rguenther@suse.de>
8876
8877 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
8878 * tree-ssa-sccvn.c (print_scc): Print SCC size.
8879 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
8880 (DFS): Adjust and never fail.
8881 (sccvn_dom_walker::fail): Remove.
8882 (sccvn_dom_walker::before_dom_children): Adjust.
8883 (run_scc_vn): Likewise and never fail.
8884 * tree-ssa-pre.c (pass_pre::execute): Adjust.
8885 (pass_fre::execute): Likewise.
8886
8887 2017-04-24 Richard Biener <rguenther@suse.de>
8888
8889 PR tree-optimization/79725
8890 * tree-ssa-sink.c (statement_sink_location): Return whether
8891 failure reason was zero uses. Move that check later.
8892 (sink_code_in_bb): Deal with zero uses by removing the stmt
8893 if possible.
8894
8895 2017-04-24 Richard Biener <rguenther@suse.de>
8896
8897 PR c++/2972
8898 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
8899 pointer-based references.
8900
8901 2017-04-24 Richard Biener <rguenther@suse.de>
8902
8903 PR bootstrap/79814
8904 * pass_manager.h (pass_manager::operator new): Remove.
8905 (pass_manager::operator delete): Likewise.
8906 * passes.c (pass_manager::operator new): Remove.
8907 (pass_manager::operator delete): Likewise.
8908 (pass_manager::pass_manager): Zero individual pass members.
8909
8910 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
8911
8912 PR target/70799
8913 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
8914 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
8915 Check "XEXP (src, 1)" operand here.
8916 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
8917 Check "XEXP (src, 1)" operand here.
8918 (dimode_scalar_chain::make_vector_copies): Detect count register
8919 of a shift instruction. Zero extend count register from QImode
8920 to DImode to satisfy vector shift pattern count operand predicate.
8921 Substitute vector shift count operand with a DImode copy.
8922 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
8923 vector register.
8924
8925 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
8926
8927 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
8928 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
8929 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
8930 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
8931 (UNSPEC_NOREX_MEM): Remove definition.
8932
8933 2017-04-21 Richard Biener <rguenther@suse.de>
8934
8935 PR tree-optimization/79547
8936 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8937 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
8938 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
8939 without any constraints.
8940
8941 2017-04-21 Richard Biener <rguenther@suse.de>
8942
8943 PR tree-optimization/78847
8944 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
8945
8946 2017-04-21 Richard Biener <rguenther@suse.de>
8947
8948 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
8949 (build_distinct_type_copy): Likewise.
8950 (build_variant_type_copy): Likewise.
8951 * tree.c (build_qualified_type): Pass down mem-stat info.
8952 (build_distinct_type_copy): Likewise.
8953 (build_variant_type_copy): Likewise.
8954
8955 2017-04-21 Richard Biener <rguenther@suse.de>
8956
8957 PR tree-optimization/80237
8958 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
8959 defaulted to NULL.
8960 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
8961 for a simplified result.
8962
8963 2016-04-21 Richard Biener <rguenther@suse.de>
8964
8965 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
8966 sth as strict as a simple_iv but a chrec without symbols and an
8967 operand defined in the loop we are peeling (and not some subloop).
8968 (propagate_constants_for_unrolling): Propagate all constants.
8969
8970 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
8971
8972 PR target/79804
8973 * config/i386/i386.c (print_reg): Remove assert for disalowed
8974 regno values, call output_operand_lossage instead.
8975
8976 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
8977
8978 PR target/78090
8979 * config/i386/constraints.md (Yc): New register constraint.
8980 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
8981 Use Yc constraint for alternative 2 of operand 0. Remove
8982 preferred_for_speed attribute.
8983
8984 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
8985
8986 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
8987 lastprivate clauses in SIMT case.
8988
8989 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
8990
8991 * doc/invoke.texi (-Wextra-semi): Document new warning option.
8992
8993 2017-04-20 Richard Biener <rguenther@suse.de>
8994
8995 PR tree-optimization/57796
8996 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
8997 as N scalar stores.
8998 (vect_model_load_cost): Cost gathers as N scalar loads.
8999
9000 2017-04-20 Richard Biener <rguenther@suse.de>
9001
9002 * ggc-page.c (ggc_allocated_p): Rename to ...
9003 (safe_lookup_page_table_entry): ... this and return the lookup
9004 result.
9005 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
9006
9007 2017-04-20 Richard Biener <rguenther@suse.de>
9008
9009 PR tree-optimization/80453
9010 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
9011 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
9012 from the conditions.
9013 (vn_phi_eq): Pass them down.
9014 (vn_phi_lookup): Record them.
9015 (vn_phi_insert): Likewise.
9016
9017 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
9018
9019 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
9020 uninitialized variable warning to avoid buffer overrun.
9021
9022 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
9023
9024 PR other/71250
9025 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
9026 is suppressed for '{ 0 }' in C.
9027
9028 2017-04-20 Jakub Jelinek <jakub@redhat.com>
9029
9030 * BASE-VER: Set to 8.0.0.
9031
9032 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
9033
9034 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
9035 priority .init_array and .fini_array section with SECTION_NOTYPE
9036 flag.
9037
9038 2017-04-20 Jakub Jelinek <jakub@redhat.com>
9039
9040 PR middle-end/80423
9041 * tree.h (build_array_type): Add typeless_storage default argument.
9042 * tree.c (type_cache_hasher::equal): Also compare
9043 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
9044 (build_array_type): Add typeless_storage argument, set
9045 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
9046 recursive call.
9047 (build_nonshared_array_type): Adjust build_array_type_1 caller.
9048 (build_array_type): Likewise. Add typeless_storage argument.
9049
9050 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
9051 Jakub Jelinek <jakub@redhat.com>
9052
9053 PR tree-optimization/80426
9054 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
9055 operation on symbolic operands, also compute the overflow for the
9056 invariant part when the operation degenerates into a negation.
9057
9058 2017-04-19 Jakub Jelinek <jakub@redhat.com>
9059
9060 PR debug/80461
9061 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
9062 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
9063
9064 PR debug/80436
9065 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
9066
9067 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
9068
9069 PR target/80462
9070 * config/avr/avr.c (tree.h): Include it.
9071 (cgraph.h): Include it.
9072 (avr_encode_section_info): Don't warn for uninitialized progmem
9073 variable if it's just an alias.
9074
9075 2017-04-19 Richard Biener <rguenther@suse.de>
9076
9077 PR ipa/65972
9078 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
9079 when needed by AutoPGO.
9080
9081 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
9082
9083 PR lto/50345
9084 * doc/lto.texi: Remove an extra 'that'.
9085
9086 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
9087
9088 PR rtl-optimization/80429
9089 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
9090 are only used in debug insns.
9091
9092 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
9093 Vladimir Makarov <vmakarov@redhat.com>
9094
9095 * config/sparc/predicates.md (input_operand): Add comment. Return
9096 true for any memory operand when LRA is in progress.
9097 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
9098
9099 2017-04-18 Jeff Law <law@redhat.com>
9100
9101 PR target/74563
9102 * mips.md ({return,simple_return}_internal): Do not overwrite
9103 operands[0].
9104
9105 2017-04-18 Jakub Jelinek <jakub@redhat.com>
9106
9107 PR tree-optimization/80443
9108 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
9109 instead of adding 1, subtract -1 and similarly instead of subtracting
9110 1 add -1.
9111
9112 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
9113
9114 PR rtl-optimization/80357
9115 * haifa-sched.c (tmp_bitmap): New variable.
9116 (model_recompute): Handle duplicate use records.
9117 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
9118 (free_global_sched_pressure_data): Free it.
9119
9120 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
9121
9122 Revert:
9123 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
9124 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
9125 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
9126 instead of SYSTEM_HEADER_DIR.
9127
9128 2017-04-18 Jeff Law <law@redhat.com>
9129
9130 PR middle-end/80422
9131 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
9132 predecessors after walking up the insn chain.
9133
9134 2017-04-18 Jakub Jelinek <jakub@redhat.com>
9135
9136 PR debug/80263
9137 * dwarf2out.c (modified_type_die): Try harder not to emit internal
9138 sizetype type into debug info.
9139
9140 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
9141
9142 PR target/80099
9143 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
9144 unneeded test for TARGET_UPPER_REGS_SF.
9145 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
9146
9147 2017-04-18 Jakub Jelinek <jakub@redhat.com>
9148
9149 PR sanitizer/80444
9150 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
9151 instead of gsi_after_labels.
9152
9153 2017-04-18 Jeff Law <law@redhat.com>
9154
9155 * regcprop.c (maybe_mode_change): Avoid creating copies of the
9156 stack pointer.
9157
9158 Revert:
9159 2017-04-13 Jeff Law <law@redhat.com>
9160 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
9161 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
9162
9163 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
9164
9165 PR target/79453
9166 * config/avr/avr.c (intl.h): Include it.
9167 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
9168
9169 2017-04-18 Martin Liska <mliska@suse.cz>
9170
9171 PR gcov-profile/78783
9172 * gcov-tool.c (gcov_output_files): Validate that destination
9173 file is either removed by the tool or by a user.
9174
9175 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
9176 Guy Benyei <guybe@mellanox.com>
9177
9178 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
9179 block, and do not negate it, the stored id is already negative.
9180
9181 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
9182
9183 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
9184
9185 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
9186
9187 PR target/80098
9188 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
9189 masks of options that should be turned off if the VSX vector
9190 options are turned off.
9191 (OTHER_P8_VECTOR_MASKS): Likewise.
9192 (OTHER_VSX_VECTOR_MASKS): Likewise.
9193 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
9194 rs6000_disable_incompatible_switches to validate no type switches
9195 like -mvsx.
9196 (rs6000_incompatible_switch): New function to disallow turning on
9197 other vector options if -mno-vsx, -mno-power8-vector, or
9198 -mno-power9-vector are specified.
9199
9200 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
9201
9202 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
9203
9204 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
9205
9206 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
9207 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
9208 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
9209 (ARG_POINTER_CFA_OFFSET): Likewise.
9210
9211 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
9212
9213 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
9214 conditions to take advantage of various optimizations.
9215
9216 2017-04-13 Jeff Law <law@redhat.com>
9217
9218 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
9219 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
9220 (zero_extendsidi2_dext): Likewise.
9221
9222 2017-04-13 Jakub Jelinek <jakub@redhat.com>
9223
9224 PR sanitizer/80403
9225 * fold-const.c (fold_ternary_loc): Revert
9226 use op0 instead of fold_convert_loc (loc, type, arg0) part of
9227 2017-04-12 change.
9228
9229 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
9230
9231 PR rtl-optimization/80343
9232 * lra-remat.c (update_scratch_ops): Assign original hard reg to
9233 new scratch pseudo.
9234
9235 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
9236
9237 PR sanitizer/80414
9238 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
9239 to ubsan_encode_value.
9240
9241 2017-04-13 Jeff Law <law@redhat.com>
9242
9243 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
9244 appearing in DEBUG_INSNs.
9245
9246 2017-04-13 Martin Liska <mliska@suse.cz>
9247
9248 PR gcov-profile/80413
9249 * gcov-io.c (gcov_write_string): Copy to buffer just when
9250 allocated size is greater than zero.
9251
9252 2017-04-13 Jakub Jelinek <jakub@redhat.com>
9253
9254 PR debug/80321
9255 * dwarf2out.c (decls_for_scope): Ignore declarations of
9256 current_function_decl in BLOCK_NONLOCALIZED_VARS.
9257
9258 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
9259
9260 PR lto/69953
9261 * ipa-visibility.c (non_local_p): Fix typos.
9262 (localize_node): When localizing symbol in same comdat group,
9263 dissolve the group only when we know external symbols are going
9264 to be privatized.
9265 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
9266
9267 2017-04-12 Jakub Jelinek <jakub@redhat.com>
9268
9269 PR tree-optimization/79390
9270 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
9271 order does not result in usable sequence, retry with reversed operand
9272 order.
9273
9274 PR sanitizer/80403
9275 PR sanitizer/80404
9276 PR sanitizer/80405
9277 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
9278 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
9279 op0 instead of fold_convert_loc (loc, type, arg0).
9280
9281 2017-04-12 Jeff Law <law@redhat.com>
9282
9283 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
9284 has a delay slot in the generated code.
9285
9286 * config/cris/cris.md (cris_preferred_reload_class): Return
9287 GENNONACR_REGS rather than GENERAL_REGS.
9288
9289 2017-04-12 Jakub Jelinek <jakub@redhat.com>
9290
9291 PR c/80163
9292 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
9293 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
9294 signedness of the result type.
9295
9296 2017-04-12 Richard Biener <rguenther@suse.de>
9297 Jeff Law <law@redhat.com>
9298
9299 PR tree-optimization/80359
9300 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
9301 trim stores to TARGET_MEM_REFs.
9302
9303 2017-04-12 Richard Biener <rguenther@suse.de>
9304
9305 PR tree-optimization/79390
9306 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
9307 threading case even more.
9308
9309 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
9310
9311 PR target/80382
9312 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
9313 for quad_address_p for TImode, instead of just not indexed_address.
9314
9315 2017-04-12 Richard Biener <rguenther@suse.de>
9316 Bernd Edlinger <bernd.edlinger@hotmail.de>
9317
9318 PR middle-end/79671
9319 * alias.c (component_uses_parent_alias_set_from): Handle
9320 TYPE_TYPELESS_STORAGE.
9321 (get_alias_set): Likewise.
9322 * tree-core.h (tree_type_common): Add typeless_storage flag.
9323 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
9324 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
9325 for types containing members with TYPE_TYPELESS_STORAGE.
9326 (place_field): Likewise.
9327 (layout_type): Likewise for ARRAY_TYPE.
9328 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
9329 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
9330 TYPE_TYPELESS_STORAGE.
9331 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
9332
9333 2017-04-12 Jakub Jelinek <jakub@redhat.com>
9334
9335 PR sanitizer/80349
9336 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
9337 first argument to type.
9338
9339 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9340
9341 PR target/80376
9342 PR target/80315
9343 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
9344 CONST0_RTX (mode) rather than const0_rtx where appropriate.
9345 (rs6000_expand_binop_builtin): Likewise.
9346 (rs6000_expand_ternop_builtin): Likewise; also add missing
9347 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
9348 vshasigma built-ins.
9349 * doc/extend.texi: Document that vec_xxpermdi's third argument
9350 must be a constant.
9351
9352 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
9353
9354 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
9355 Use shift_const cost parameter when calculating gain of STV shifts.
9356
9357 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
9358
9359 PR rtl-optimization/70478
9360 * lra-constraints.c (process_alt_operands): Check memory for
9361 disfavoring memory insn operand.
9362
9363 2017-04-11 Jakub Jelinek <jakub@redhat.com>
9364
9365 PR middle-end/80100
9366 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
9367 left shift in unsigned HOST_WIDE_INT type.
9368
9369 PR rtl-optimization/80385
9370 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
9371 (not (neg X)) into (plus X -1) for complex or non-integral modes.
9372
9373 PR libgomp/80394
9374 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
9375 if they have any depend clauses.
9376
9377 2017-04-11 Martin Liska <mliska@suse.cz>
9378
9379 PR ipa/80212
9380 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
9381 * ipa-split.c (split_function): Create a local comdat symbol
9382 if caller is in a comdat group.
9383
9384 2017-04-11 Martin Liska <mliska@suse.cz>
9385
9386 PR ipa/80212
9387 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
9388 flags.
9389
9390 2017-04-11 Martin Sebor <msebor@redhat.com>
9391
9392 PR middle-end/80364
9393 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
9394 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
9395 for INTEGER_TYPE.
9396 (directive::set_width, directive::set_precision, format_character):
9397 Adjust.
9398 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
9399 INTEGER_TYPE.
9400
9401 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
9402
9403 PR target/80389
9404 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
9405 conflict, set target->arch_name instead of target->cpu_name.
9406
9407 2017-04-11 Richard Biener <rguenther@suse.de>
9408
9409 PR tree-optimization/80374
9410 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
9411 build_zero_cst, remove fold_convertible_p check again.
9412
9413 2017-04-11 Martin Liska <mliska@suse.cz>
9414
9415 PR sanitizer/70878
9416 * ubsan.c (instrument_object_size): Do not instrument register
9417 variables.
9418
9419 2017-04-11 Jakub Jelinek <jakub@redhat.com>
9420
9421 PR target/80381
9422 * config/i386/i386-builtin-types.def
9423 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
9424 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
9425 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
9426 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
9427 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
9428 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
9429 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
9430 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
9431 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
9432 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
9433 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
9434 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
9435 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
9436 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
9437 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
9438 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
9439 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
9440 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
9441 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
9442 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
9443 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
9444 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
9445 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
9446 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
9447 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
9448 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
9449 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
9450 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
9451 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
9452 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
9453 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
9454 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
9455 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
9456 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
9457 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
9458 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
9459 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
9460 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
9461 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
9462 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
9463 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
9464 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
9465 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
9466 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
9467 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
9468 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
9469 aliases.
9470 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
9471 flag to second_arg_count, handle 4 argument function type _COUNT
9472 aliases, handle second_arg_count on second argument rather than last.
9473
9474 2017-04-10 Jeff Law <law@redhat.com>
9475
9476 PR tree-optimization/80374
9477 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
9478 record anything if we can not convert integer_zero_node to the
9479 desired type.
9480
9481 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
9482
9483 PR target/80108
9484 * config/rs6000/rs6000.c (rs6000_option_override_internal):
9485 Enhance special handling given to the TARGET_P9_MINMAX option in
9486 relation to certain other options.
9487
9488 2017-04-10 Bin Cheng <bin.cheng@arm.com>
9489
9490 PR tree-optimization/80153
9491 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
9492 remove POINTER_PLUS_EXPR's base part directly, rather than through
9493 aff_tree.
9494
9495 2017-04-10 Richard Biener <rguenther@suse.de>
9496 Bin Cheng <bin.cheng@arm.com>
9497
9498 PR tree-optimization/80153
9499 * tree-affine.c (aff_combination_to_tree): Get base pointer from
9500 the first element of pointer type aff_tree. Build result expr in
9501 aff_tree's type.
9502 (add_elt_to_tree): Convert to type unconditionally. Remove other
9503 fold_convert calls.
9504 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
9505 (rewrite_use_nonlinear_expr): Check invariant using iv information.
9506
9507 2017-04-10 Richard Biener <rguenther@suse.de>
9508
9509 * tree-ssa-structalias.c (find_func_aliases): Properly handle
9510 asm inputs.
9511
9512 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
9513
9514 PR rtl-optimization/70478
9515 * lra-constraints.c (curr_small_class_check): New.
9516 (update_and_check_small_class_inputs): New.
9517 (process_alt_operands): Update curr_small_class_check. Disfavor
9518 alternative insn memory operands. Check available regs for small
9519 class operands.
9520
9521 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
9522
9523 PR target/80057
9524 * config/mips/mips.opt (-mvirt): Update description.
9525 * doc/invoke.texi (-mvirt): Likewise.
9526
9527 2017-04-10 Richard Biener <rguenther@suse.de>
9528
9529 PR middle-end/80362
9530 * fold-const.c (fold_binary_loc): Look at unstripped ops when
9531 looking for NEGATE_EXPR in -A / -B to A / B folding.
9532
9533 2017-04-10 Martin Liska <mliska@suse.cz>
9534
9535 PR gcov-profile/80224
9536 * gcov.c (print_usage): Fix usage string.
9537 (get_gcov_intermediate_filename): Remove.
9538 (output_gcov_file): Use both for normal and intermediate format.
9539 (generate_results): Do not initialize special file for
9540 intermediate format.
9541
9542 2017-04-10 Richard Biener <rguenther@suse.de>
9543
9544 PR tree-optimization/80304
9545 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
9546 for safelen.
9547
9548 2017-04-10 Nathan Sidwell <nathan@acm.org>
9549
9550 PR target/79905
9551 * config/rs6000/rs6000.c (rs6000_vector_type): New.
9552 (rs6000_init_builtins): Use it.
9553
9554 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9555
9556 * config/arm/arm.md (<mrc>): Add mode to SET source.
9557 (<mrrc>): Likewise.
9558
9559 2017-04-10 Richard Biener <rguenther@suse.de>
9560
9561 PR middle-end/80344
9562 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
9563
9564 2017-04-10 Jakub Jelinek <jakub@redhat.com>
9565
9566 PR target/80324
9567 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
9568 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
9569 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
9570 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
9571 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
9572 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
9573 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
9574 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
9575 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
9576 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
9577 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
9578 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
9579 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
9580 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
9581 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
9582 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
9583 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
9584 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
9585 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
9586 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
9587 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
9588 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
9589 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
9590
9591 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
9592
9593 PR rtl-optimization/70478
9594 * lra-constraints.c: Reverse the last patch.
9595
9596 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
9597
9598 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
9599 Add comment for WCHAR_T.
9600
9601 2017-04-08 Martin Liska <mliska@suse.cz>
9602
9603 Revert:
9604 2017-04-07 Martin Liska <mliska@suse.cz>
9605
9606 PR ipa/80212
9607 * ipa-split.c (split_function): Add function part to a same comdat
9608 group.
9609
9610 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
9611
9612 PR target/80358
9613 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
9614
9615 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
9616
9617 * rs6000/rs6000.c (vec_load_pendulum): Rename...
9618 (vec_pairing): ...to this.
9619 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
9620 (rs6000_sched_init): Adjust for name change.
9621 (struct rs6000_sched_context): Likewise.
9622 (rs6000_init_sched_context): Likewise.
9623 (rs6000_set_sched_context): Likewise.
9624
9625 2017-04-07 Jakub Jelinek <jakub@redhat.com>
9626
9627 PR target/80322
9628 PR target/80323
9629 PR target/80325
9630 PR target/80326
9631 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
9632 intrinsics.
9633 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
9634 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
9635 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
9636
9637 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
9638
9639 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
9640
9641 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
9642
9643 PR rtl-optimization/70703
9644 * ira-color.c (update_conflict_hard_regno_costs): Use
9645 int64_t instead of HOST_WIDE_INT.
9646
9647 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
9648
9649 PR rtl-optimization/70478
9650 * lra-constraints.c (process_alt_operands): Disfavor alternative
9651 insn memory operands.
9652
9653 2017-04-07 Jeff Law <law@redhat.com>
9654
9655 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
9656 CALL and NOTE_INSN_CALL_ARG_LOCATION.
9657
9658 2017-04-07 Martin Liska <mliska@suse.cz>
9659
9660 PR target/79889
9661 * config/aarch64/aarch64.c (aarch64_process_target_attr):
9662 Show error message instead of an ICE.
9663
9664 2017-04-07 Martin Liska <mliska@suse.cz>
9665
9666 PR ipa/80212
9667 * ipa-split.c (split_function): Add function part to a same comdat
9668 group.
9669
9670 2017-04-07 Richard Biener <rguenther@suse.de>
9671
9672 PR middle-end/80341
9673 * tree.c (get_unwidened): Also handle ! for_type case for
9674 INTEGER_CSTs.
9675 * convert.c (do_narrow): Split out from ...
9676 (convert_to_integer_1): ... here. Do not pass final truncation
9677 type to get_unwidened for TRUNC_DIV_EXPR.
9678
9679 2017-04-07 Richard Biener <rguenther@suse.de>
9680
9681 * tree-affine.c (wide_int_ext_for_comb): Take type rather
9682 than aff_tree.
9683 (aff_combination_const): Adjust.
9684 (aff_combination_scale): Likewise.
9685 (aff_combination_add_elt): Likewise.
9686 (aff_combination_add_cst): Likewise.
9687 (aff_combination_convert): Likewise.
9688 (add_elt_to_tree): Likewise. Remove unused argument.
9689 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
9690
9691 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
9692
9693 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
9694 definition.
9695 * config/arm/arm.c (arm_default_short_enums): Use
9696 ARM_DEFAULT_SHORT_ENUMS.
9697 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
9698
9699 2017-04-06 Jakub Jelinek <jakub@redhat.com>
9700
9701 PR debug/80234
9702 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
9703 members with redundant out-of-class redeclaration.
9704
9705 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
9706
9707 PR target/80286
9708 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
9709 * config/i386/i386.md (*zero_extendsidi2):
9710 Add (?*x,*x) and (?*v,*v) alternatives.
9711
9712 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
9713
9714 PR target/79733
9715 * config/i386/i386.c (ix86_expand_builtin)
9716 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
9717 mode from insn data. Convert operands to insn operand mode.
9718 Copy operands that don't satisfy insn predicate to a register.
9719
9720 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
9721
9722 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
9723 Update comments.
9724
9725 2017-04-06 Richard Biener <rguenther@suse.de>
9726
9727 PR tree-optimization/80334
9728 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
9729 preserve alignment of accesses.
9730
9731 2017-04-06 Richard Biener <rguenther@suse.de>
9732
9733 PR tree-optimization/80262
9734 * tree-sra.c (build_ref_for_offset): Preserve address-space
9735 information.
9736 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
9737 Drop useless address-space information on MEM_REF offsets.
9738
9739 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
9740
9741 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
9742
9743 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
9744
9745 PR rtl-optimization/70703
9746 * ira-color.c (update_conflict_hard_regno_costs): Use
9747 HOST_WIDE_INT instead of long.
9748
9749 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
9750
9751 PR target/80298
9752 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
9753 not defined for x86_64 target. Add -mmmx target option when __SSE2__
9754 is not defined.
9755 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
9756 for x86_64 target. Handle -m3dnowa option.
9757
9758 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
9759
9760 PR rtl-optimization/70703
9761 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
9762 (update_conflict_hard_regno_costs): Use long instead of unsigned
9763 arithmetic for cost calculation.
9764
9765 2017-04-05 Jakub Jelinek <jakub@redhat.com>
9766 Bernd Edlinger <bernd.edlinger@hotmail.de>
9767
9768 PR sanitizer/80308
9769 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
9770 for big endian.
9771
9772 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
9773
9774 PR target/78002
9775 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
9776 ptr_mode with Pmode throughout.
9777 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
9778 into probe_stack_range and use DImode.
9779
9780 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
9781
9782 PR target/79890
9783 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
9784 call_eh_return is true.
9785
9786 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9787
9788 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
9789 Initialize last_match_fntype_index.
9790
9791 2017-04-05 Jakub Jelinek <jakub@redhat.com>
9792
9793 PR target/80310
9794 * tree-nvr.c: Include internal-fn.h.
9795 (pass_return_slot::execute): Ignore internal calls without
9796 direct optab.
9797
9798 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9799 Richard Biener <rguenther@suse.de>
9800
9801 PR c++/80297
9802 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
9803 captures used multiple times, except for the last use.
9804 * generic-match-head.c: Include gimplify.h.
9805
9806 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9807
9808 PR tree-optimization/79390
9809 * target.h (struct noce_if_info): Declare.
9810 * targhooks.h (default_noce_conversion_profitable_p): Declare.
9811 * target.def (noce_conversion_profitable_p): New target hook.
9812 * ifcvt.h (struct noce_if_info): New type, moved from ...
9813 * ifcvt.c (struct noce_if_info): ... here.
9814 (noce_conversion_profitable_p): Renamed to ...
9815 (default_noce_conversion_profitable_p): ... this. No longer
9816 static nor inline.
9817 (noce_try_store_flag_constants, noce_try_addcc,
9818 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
9819 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
9820 instead of noce_conversion_profitable_p.
9821 * config/i386/i386.c: Include ifcvt.h.
9822 (ix86_option_override_internal): Don't override
9823 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
9824 (ix86_noce_conversion_profitable_p): New function.
9825 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
9826 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
9827 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
9828 * doc/tm.texi: Regenerated.
9829
9830 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9831
9832 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
9833 correction.
9834
9835 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
9836
9837 PR target/80307
9838 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
9839 instructions for small multiply cores.
9840
9841 2017-04-04 Jeff Law <law@redhat.com>
9842
9843 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
9844 added member.
9845 (mips_expand_vec_perm_const): Initialize elements in orig_perm
9846 that are not set by the loop over the elements.
9847
9848 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9849
9850 PR target/80286
9851 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
9852 int mode, convert_modes it to mode as unsigned, otherwise use
9853 lowpart_subreg to mode rather than SImode.
9854 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
9855 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
9856 Use DImode instead of SImode for the shift count operand.
9857 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
9858 Likewise.
9859
9860 2017-04-04 Richard Biener <rguenther@suse.de>
9861
9862 PR middle-end/80281
9863 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
9864 arithmetic done for the negate or the plus. Simplify.
9865 (A - (-B) -> A + B): Likewise.
9866 * fold-const.c (split_tree): Make sure to not negate pointers.
9867
9868 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
9869
9870 PR rtl-optimization/60818
9871 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
9872 a compare of comparisons with the thing compared if this results
9873 in a different machine mode.
9874
9875 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
9876
9877 * alias.c (base_alias_check): Fix typo in comment.
9878 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
9879 * cgraphunit.c (symbol_table::compile): Likewise.
9880 * collect2.c (maybe_run_lto_and_relink): Likewise.
9881 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
9882 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
9883 * config/avr/avr.c (avr_map_op_t): Likewise.
9884 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
9885 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
9886 * config/epiphany/epiphany.md (movcc): Likewise.
9887 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
9888 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
9889 Likewise.
9890 * config/mips/mips.c (mips_save_restore_reg): Likewise.
9891 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
9892 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
9893 * config/sh/sh.c (sh_rtx_costs): Likewise.
9894 * fold-const.c (fold_truth_andor): Likewise.
9895 * genautomata.c (collapse_flag): Likewise.
9896 * gengtype.h (struct type::u::s): Likewise.
9897 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
9898 * input.c (FORMAT_AMOUNT): Likewise.
9899 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
9900 (known_aggs_to_agg_replacement_list): Likewise.
9901 * ipa-inline-analysis.c: Likewise.
9902 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
9903 * ipa-polymorphic-call.c
9904 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
9905 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
9906 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
9907 Likewise.
9908 * modulo-sched.c (apply_reg_moves): Likewise.
9909 * omp-expand.c (build_omp_regions_1): Likewise.
9910 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
9911 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
9912 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
9913 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9914 * value-prof.c: Likewise.
9915 * var-tracking.c (val_reset): Likewise.
9916
9917 2017-04-03 Richard Biener <rguenther@suse.de>
9918
9919 PR tree-optimization/80275
9920 * fold-const.c (split_address_to_core_and_offset): Handle
9921 POINTER_PLUS_EXPR.
9922
9923 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
9924
9925 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
9926 descriptors is at least equal to that of functions.
9927
9928 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
9929
9930 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
9931
9932 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
9933
9934 PR target/80250
9935 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
9936 (mov<IMOD4:mode>): New expander.
9937 (*mov<IMOD4:mode>_internal): New insn and split pattern.
9938
9939 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
9940
9941 PR rtl-optimization/79405
9942 * fwprop.c (propagations_left): New variable.
9943 (forward_propagate_into): Decrement it.
9944 (fwprop_init): Initialize it.
9945 (fw_prop): If the variable has reached zero, stop propagating.
9946 (fwprop_addr): Ditto.
9947
9948 2017-03-31 Jakub Jelinek <jakub@redhat.com>
9949
9950 PR debug/79255
9951 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
9952 a FUNCTION_DECL, pass it as decl instead of origin to
9953 process_scope_var.
9954
9955 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
9956
9957 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
9958 string.
9959
9960 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
9961
9962 PR target/80107
9963 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
9964 TARGET_VSX_SMALL_INTEGER.
9965
9966 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9967
9968 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
9969 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
9970
9971 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
9972
9973 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
9974 extraction from odd-numbered MSA register.
9975
9976 2017-03-31 Jakub Jelinek <jakub@redhat.com>
9977
9978 PR middle-end/80173
9979 * expmed.c (store_bit_field_1): Don't attempt to create
9980 a word subreg out of hard registers wider than word if they
9981 have HARD_REGNO_NREGS of 1 for their mode.
9982
9983 PR middle-end/80163
9984 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
9985 conversions to integer types wider than word and pointer.
9986
9987 PR debug/80025
9988 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
9989 (rtx_equal_for_cselib_p): Pass 0 to it.
9990 * cselib.c (cselib_hasher::equal): Likewise.
9991 (rtx_equal_for_cselib_1): Add depth argument. If depth
9992 is 128, don't look up VALUE locs and punt. Increment
9993 depth in recursive calls when walking VALUE locs.
9994
9995 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
9996
9997 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
9998 (make_gcov_file_name): Use the canonical path name for generating
9999 the MD5 value.
10000 (read_line): Fix handling of files with ascii null bytes.
10001
10002 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
10003
10004 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
10005 to initialise a vector register instead
10006 of using a const_int.
10007
10008 2017-03-30 Jakub Jelinek <jakub@redhat.com>
10009
10010 PR translation/80189
10011 * gimplify.c (omp_default_clause): Use %qs instead of %s in
10012 diagnostic messages.
10013
10014 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
10015
10016 PR target/80246
10017 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
10018 (dfp_diex_<mode>): Update mode of operand 1.
10019 * doc/extend.texi (dxex, dxexq): Document change to return type.
10020 (diex, diexq): Document change to argument type.
10021
10022 2017-03-30 Martin Jambor <mjambor@suse.cz>
10023
10024 PR ipa/77333
10025 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
10026 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
10027 it reflects the signature changes performed at the callee side.
10028 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
10029 to cgraph_build_function_type_skip_args.
10030 (build_function_decl_skip_args): Adjust call to the above function.
10031
10032 2017-03-30 Jakub Jelinek <jakub@redhat.com>
10033
10034 PR target/80206
10035 * config/i386/sse.md
10036 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
10037 register as dest whenever it is a MEM not rtx_equal_p to the
10038 corresponding dup operand, and when forcing into reg move the
10039 reg into the memory afterwards.
10040 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
10041 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
10042 for the force_reg mode.
10043 (avx512vl_vextractf128<mode>): Use register as dest either
10044 always when a MEM, or when it is a MEM not rtx_equal_p to the
10045 corresponding dup operand, or even not when it is a CONST_VECTOR
10046 depending on the mode and lo vs. hi.
10047 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
10048 parens.
10049 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
10050 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
10051 Likewise. Require that operands[2] is even.
10052 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
10053 Remove extraneous parens. Require that operands[2] is a multiple
10054 of 4.
10055 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
10056 operands[0] is a MEM if <mask_applied>, the predicates/constraints
10057 disallow memory then.
10058
10059 2017-03-30 Richard Biener <rguenther@suse.de>
10060
10061 PR tree-optimization/77498
10062 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
10063 to non-constants over backedges.
10064
10065 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
10066
10067 PR rtl-optimization/80233
10068 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
10069 as last_combined_insn. Do not test for BARRIER_P separately.
10070
10071 2017-03-29 Andreas Schwab <schwab@suse.de>
10072
10073 PR ada/80146
10074 * calls.c (prepare_call_address): Convert funexp to Pmode before
10075 copying to temp reg.
10076
10077 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10078
10079 PR tree-optimization/80158
10080 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
10081 Handle possible future case of more than one alternate
10082 interpretation.
10083 (replace_rhs_if_not_dup): Likewise.
10084 (replace_one_candidate): Likewise.
10085
10086 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
10087
10088 PR rtl-optimization/80193
10089 * ira.c (ira): Do not check allocation for LRA.
10090
10091 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
10092
10093 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
10094 (nvptx_output_simt_exit): Declare.
10095 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
10096 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
10097 (init_softstack_frame): Move initialization of crtl->is_leaf to...
10098 (nvptx_declare_function_name): ...here. Emit declaration of local
10099 memory space buffer for omp_simt_enter insn.
10100 (nvptx_output_unisimt_switch): New.
10101 (nvptx_output_softstack_switch): New.
10102 (nvptx_output_simt_enter): New.
10103 (nvptx_output_simt_exit): New.
10104 * config/nvptx/nvptx.h (struct machine_function): New fields
10105 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
10106 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
10107 (UNSPECV_SIMT_EXIT): Ditto.
10108 (omp_simt_enter_insn): New insn.
10109 (omp_simt_enter): New expansion.
10110 (omp_simt_exit): New insn.
10111 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
10112
10113 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
10114 (expand_GOMP_SIMT_ENTER_ALLOC): New.
10115 (expand_GOMP_SIMT_EXIT): New.
10116 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
10117 (GOMP_SIMT_ENTER_ALLOC): Ditto.
10118 (GOMP_SIMT_EXIT): Ditto.
10119 * target-insns.def (omp_simt_enter): New insn.
10120 (omp_simt_exit): Ditto.
10121 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
10122 simt_dlist.
10123 (lower_rec_simd_input_clauses): Implement SIMT privatization.
10124 (lower_rec_input_clauses): Likewise.
10125 (lower_lastprivate_clauses): Handle SIMT privatization.
10126
10127 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
10128 (ompdevlow_adjust_simt_enter): New.
10129 (find_simtpriv_var_op): New.
10130 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
10131 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
10132
10133 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
10134 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
10135 (copy_decl_for_dup_finish): Ditto.
10136
10137 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
10138
10139 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
10140
10141 PR target/53383
10142 * config/i386/i386.c (ix86_option_override_internal): Always
10143 allow -mpreferred-stack-boundary=3 for 64-bit targets.
10144
10145 2017-03-28 Bin Cheng <bin.cheng@arm.com>
10146
10147 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
10148
10149 2017-03-28 Bin Cheng <bin.cheng@arm.com>
10150
10151 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
10152 mark new edge's irreducible flag accordign to it.
10153 (vect_do_peeling): Check loop preheader edge's irreducible flag
10154 and pass it to function slpeel_add_loop_guard.
10155
10156 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
10157
10158 PR tree-optimization/80218
10159 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
10160 Update block frequencies and counts.
10161
10162 2017-03-28 Richard Biener <rguenther@suse.de>
10163
10164 PR tree-optimization/78644
10165 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
10166 of a simplification result we may not use it at all.
10167
10168 2017-03-28 Richard Biener <rguenther@suse.de>
10169
10170 PR ipa/80205
10171 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
10172 without arguments, generate default definition of a SSA name.
10173
10174 2017-03-28 Richard Biener <rguenther@suse.de>
10175
10176 PR middle-end/80222
10177 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
10178 TYPE_REF_CAN_ALIAS_ALL references.
10179 * fold-const.c (fold_indirect_ref_1): Likewise.
10180
10181 2017-03-28 Martin Liska <mliska@suse.cz>
10182
10183 PR ipa/80104
10184 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
10185 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
10186
10187 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
10188 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10189
10190 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
10191 (EXTRA_SPECS): Define.
10192 (SUBTARGET_EXTRA_SPECS): Likewise.
10193 (SUBTARGET_CPP_SPEC): Likewise.
10194 * config/arc/elf.h (EXTRA_SPECS): Renamed to
10195 SUBTARGET_EXTRA_SPECS.
10196 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
10197
10198 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
10199
10200 * config/arc/simdext.md (vst64_insn): Update pattern.
10201 (vld32wh_insn): Likewise.
10202 (vld32wl_insn): Likewise.
10203 (vld64_insn): Likewise.
10204 (vld32_insn): Likewise.
10205
10206 2017-03-28 Marek Polacek <polacek@redhat.com>
10207
10208 PR sanitizer/80067
10209 * fold-const.c (fold_comparison): Use protected_set_expr_location
10210 instead of SET_EXPR_LOCATION.
10211
10212 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
10213
10214 * tree.c (add_expr): Avoid name lookup warning.
10215
10216 2017-03-27 Jeff Law <law@redhat.com>
10217
10218 PR tree-optimization/80216
10219 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
10220 function name. Limit recursion depth.
10221 (record_temporary_equivalences): Corresponding changes.
10222
10223 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
10224
10225 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
10226 covered first.
10227
10228 2017-03-27 Jakub Jelinek <jakub@redhat.com>
10229
10230 PR target/80102
10231 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
10232 notes.
10233 * cfgcleanup.c (reg_note_cfa_p): New array.
10234 (insns_have_identical_cfa_notes): New function.
10235 (old_insns_match_p): Don't cross-jump in between /f
10236 and non-/f instructions. If both i1 and i2 are frame related,
10237 verify all CFA notes, their order and content.
10238
10239 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
10240
10241 PR target/78543
10242 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
10243 HImode and SImode with zero extend to DImode to one insn.
10244 (bswap<mode>2_extenddi): Likewise.
10245 (bswapsi2_extenddi): Likewise.
10246 (bswaphi2_extendsi): Likewise.
10247 (bswaphi2): Combine bswap HImode and SImode into one insn.
10248 Separate memory insns from swapping register.
10249 (bswapsi2): Likewise.
10250 (bswap<mode>2): Likewise.
10251 (bswaphi2_internal): Delete, no longer used.
10252 (bswapsi2_internal): Likewise.
10253 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
10254 store, and gpr<-gpr swap insns.
10255 (bswap<mode>2_store): Likewise.
10256 (bswaphi2_reg): Register only splitter, combine with the splitter.
10257 (bswaphi2 splitter): Likewise.
10258 (bswapsi2_reg): Likewise.
10259 (bswapsi2 splitter): Likewise.
10260 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
10261 the insns into load, store, and register/register insns.
10262 (bswapdi2_ldbrx): Likewise.
10263 (bswapdi2_load): Likewise.
10264 (bswapdi2_store): Likewise.
10265 (bswapdi2_reg): Likewise.
10266
10267 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
10268
10269 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
10270 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
10271
10272 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
10273
10274 PR target/80103
10275 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
10276 add comments.
10277 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
10278 special handling for target option conflicts between dform
10279 options (-mpower9-dform, -mpower9-dform-vector,
10280 -mpower9-dform-scalar) and -mno-direct-move.
10281
10282 2017-03-27 Richard Biener <rguenther@suse.de>
10283
10284 PR tree-optimization/80181
10285 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
10286
10287 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
10288
10289 * config/arc/predicates.md (move_double_src_operand): Replace the
10290 call to move_double_src_operand with a call to address_operand.
10291
10292 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
10293
10294 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
10295 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
10296 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
10297
10298 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
10299
10300 * config/arc/predicates.md (long_immediate_loadstore_operand):
10301 Consider scaled addresses cases.
10302
10303 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
10304
10305 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
10306 restored when in interrupt.
10307 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
10308 doesn't have delay slot.
10309
10310 2017-03-27 Richard Biener <rguenther@suse.de>
10311
10312 PR ipa/79776
10313 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
10314 inlined thunk clones.
10315
10316 2017-03-27 Jakub Jelinek <jakub@redhat.com>
10317
10318 PR sanitizer/80168
10319 * asan.c (instrument_derefs): Copy over last operand from
10320 original COMPONENT_REF to the new COMPONENT_REF with
10321 DECL_BIT_FIELD_REPRESENTATIVE.
10322 * ubsan.c (instrument_object_size): Likewise.
10323
10324 2017-03-27 Richard Biener <rguenther@suse.de>
10325
10326 PR tree-optimization/80170
10327 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
10328 sure DR/SCEV didnt fold in constants we do not see when looking
10329 at the reference base alignment.
10330
10331 2017-03-27 Richard Biener <rguenther@suse.de>
10332
10333 PR middle-end/80171
10334 * gimple-fold.c (fold_ctor_reference): Properly guard against
10335 NULL return value from canonicalize_constructor_val.
10336
10337 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
10338
10339 PR target/80180
10340 * config/i386/i386.c (ix86_expand_builtin)
10341 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
10342 flags reg setting and flags reg using instructions.
10343 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
10344 clobbering instructions to zero extend op2.
10345
10346 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
10347
10348 * doc/install.texi (Configuration) <--with-aix-soname>:
10349 Update link to AIX ld.
10350
10351 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
10352
10353 PR rtl-optimization/80160
10354 PR rtl-optimization/80159
10355 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
10356 reg_alternate_class into account.
10357
10358 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
10359
10360 PR target/80148
10361 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
10362 to consider in curr_insn_transform.
10363
10364 2017-03-24 Jakub Jelinek <jakub@redhat.com>
10365
10366 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
10367 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
10368 and emit_mode_inner.
10369
10370 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10371
10372 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
10373 argument to the overloaded builtin variants. Use the new flag to
10374 deprecate certain builtin variants.
10375 * config/s390/s390-builtin-types.def: Add new builtin types.
10376 * config/s390/s390-builtins.h: Support new flags field for
10377 overloaded builtins.
10378 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
10379 (s390_macro_to_expand): Enable vector float data type.
10380 (s390_cpu_cpp_builtins_internal): Indicate support of the new
10381 builtins by incrementing the __VEC__ version number.
10382 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
10383 vec_xst.
10384 (s390_resolve_overloaded_builtin): Emit error messages depending
10385 on the builtin flags.
10386 * config/s390/s390.c (s390_expand_builtin): Support additional
10387 flags argument. Change error message to match the messages
10388 emitted in s390-c.c.
10389 * config/s390/s390.md: New UNSPEC_* constants.
10390 (op_type): Add new instruction types.
10391 * config/s390/vecintrin.h: Add new builtins and test data class
10392 constants.
10393 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
10394 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
10395 (VEC_INEXACT, VEC_NOINEXACT): New constants.
10396 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
10397 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
10398 ("vec_mergel<mode>"): V_HW -> VEC_HW.
10399
10400 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
10401 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
10402 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
10403 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
10404
10405 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
10406 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
10407 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
10408 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
10409
10410 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
10411 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
10412 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
10413 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
10414 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
10415 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
10416 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
10417
10418 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
10419 ("vec_scatter_element<V_HW_4:mode>_DI")
10420 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
10421 ("vec_fpint<mode>", "vflls")
10422 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
10423 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
10424 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
10425 ("*vec_cmphe<mode>_cc"): ... these.
10426
10427 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
10428 mode constant instead of magic value.
10429
10430 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10431
10432 * config/s390/s390.c (s390_expand_vec_compare): Support other
10433 vector floating point modes than just V2DF.
10434 (s390_expand_vcond): Likewise.
10435 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
10436 (s390_cannot_change_mode_class): Prevent mode changes between TF
10437 and V1TF in vector registers.
10438 * config/s390/s390.md (DF, SF): New mode attributes.
10439 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
10440 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
10441 SFmode support for VRs.
10442 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
10443 vector fp modes.
10444 (VFT, VF_HW): New mode iterators.
10445 (vw, sdx): New mode attributes.
10446 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
10447 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
10448 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
10449 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
10450 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
10451 also the new vector floating point modes. Renaming to ...
10452
10453 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
10454 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
10455 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
10456 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
10457 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
10458 ("vec_unordered<mode>"): ... these.
10459
10460 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
10461 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
10462 ("*vec_extendv2df"): New insn definitions.
10463
10464 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10465
10466 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
10467 ("mulditi3_2", "*muldi3_sign"): New patterns.
10468 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
10469 rename the pattern definition.
10470
10471 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10472
10473 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
10474 expander.
10475 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
10476
10477 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10478
10479 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
10480 instruction if possible.
10481 * config/s390/vector.md (vec_halfnumelts): New mode
10482 attribute.
10483 ("*vec_vllezlf<mode>"): New pattern.
10484
10485 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10486
10487 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
10488 ("popcountv4si2", "popcountv2di2"): Rename to ...
10489 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
10490 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
10491 condition.
10492 ("popcount<mode>2_vxe"): New pattern.
10493
10494 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10495
10496 * common/config/s390/s390-common.c (processor_flags_table): Add
10497 arch12.
10498 * config.gcc: Add arch12.
10499 * config/s390/driver-native.c (s390_host_detect_local_cpu):
10500 Default to arch12 for unknown CPU model numbers.
10501 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
10502 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
10503 PROCESSOR_max sanity check.
10504 * config/s390/s390-opts.h (enum processor_type): Add
10505 PROCESSOR_ARCH12.
10506 * config/s390/s390.c (processor_table): Add arch12.
10507 (s390_expand_builtin): Add check for B_VXE flag.
10508 (s390_issue_rate): Add PROCESSOR_ARCH12.
10509 (s390_get_sched_attrmask): Likewise.
10510 (s390_get_unit_mask): Likewise.
10511 (s390_sched_score): Enable z13 scheduling for arch12.
10512 (s390_sched_reorder): Likewise.
10513 (s390_sched_variable_issue): Likewise.
10514 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
10515 PF_VXE.
10516 (s390_tune_attr): Use z13 scheduling also for arch12.
10517 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
10518 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
10519 (TARGET_VXE_P): New macros.
10520 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
10521 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
10522 * config/s390/s390.opt: Add arch12 as processor_type.
10523
10524 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10525
10526 * config/s390/s390.md
10527 ("fixuns_truncdddi2", "fixuns_trunctddi2")
10528 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
10529 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
10530
10531 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
10532 Rename expanders to ...
10533
10534 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
10535 ("fixuns_truncdddi2_emu"): ... these.
10536
10537 ("fixuns_trunc<mode>si2_emu"): New expander.
10538
10539 ("*fixuns_truncdfdi2_z13"): Rename to ...
10540 ("*fixuns_truncdfdi2_vx"): ... this.
10541
10542 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10543
10544 * config/s390/2964.md: Remove the single element vector compare
10545 instructions which are no longer used.
10546 * config/s390/s390.c (s390_select_ccmode): Remove handling of
10547 vector CCmodes.
10548 (s390_canonicalize_comparison): Remove handling of DFmode
10549 compares.
10550 (s390_expand_vec_compare_scalar): Remove function.
10551 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
10552 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
10553 pattern.
10554 ("*cmp<mode>_ccs"): Add wfcdb instruction.
10555
10556 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10557
10558 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
10559 FP zero.
10560 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
10561 will anyway by matched by mov<mode>_64dfp.
10562
10563 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10564
10565 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
10566 vlef/vstef. Add missing operand to vleif.
10567
10568 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10569
10570 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
10571 pair for all vector types with 64 bit elements.
10572 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
10573 * config/s390/vector.md (V_HW_64): ... here.
10574 (V_128_NOSINGLE): New mode iterator.
10575 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
10576 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
10577 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
10578 ("*vec_load_pairv2di"): Change to ...
10579 ("*vec_load_pair<mode>"): ... this one.
10580
10581 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10582
10583 * config/s390/constraints.md: Add comments.
10584 (jKK): Reject element sizes > 8 bytes.
10585 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
10586 s_operands.
10587 * config/s390/s390.md: Add the s_operand checks formerly in
10588 s390_split_ok_p to various splitters where they are still
10589 required.
10590 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
10591 for 128 bit vectors. Plus two splitters.
10592
10593 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10594
10595 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
10596 the file.
10597
10598 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10599
10600 PR target/79893
10601 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
10602 error if the boundary argument is not constant.
10603
10604 2017-03-24 Jakub Jelinek <jakub@redhat.com>
10605
10606 PR rtl-optimization/80112
10607 * loop-doloop.c (doloop_condition_get): Don't check condition
10608 if cmp isn't SET with IF_THEN_ELSE src.
10609
10610 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10611
10612 PR tree-optimization/80158
10613 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
10614 replacing a candidate statement, also replace it for the
10615 candidate's alternate interpretation.
10616 (replace_rhs_if_not_dup): Likewise.
10617 (replace_one_candidate): Likewise.
10618
10619 2017-03-24 Richard Biener <rguenther@suse.de>
10620
10621 PR tree-optimization/80167
10622 * graphite-isl-ast-to-gimple.c
10623 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
10624 properly.
10625 (translate_isl_ast_to_gimple::get_rename): Likewise.
10626
10627 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
10628
10629 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
10630 handling of certain combinations of target options, including the
10631 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
10632 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
10633
10634 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10635
10636 PR target/71436
10637 * config/arm/arm.md (*load_multiple): Add reload_completed to
10638 matching condition.
10639
10640 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10641 Richard Biener <rguenth@suse.de>
10642
10643 PR tree-optimization/79908
10644 PR tree-optimization/80136
10645 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
10646 been cast away, gimplify_and_add suffices.
10647
10648 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
10649
10650 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
10651
10652 2017-03-23 Richard Biener <rguenther@suse.de>
10653
10654 PR tree-optimization/80032
10655 * gimplify.c (gimple_push_cleanup): Forced unconditional
10656 cleanups still have to go to the conditional_cleanups
10657 sequence.
10658
10659 2017-03-22 Jakub Jelinek <jakub@redhat.com>
10660
10661 PR tree-optimization/80072
10662 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
10663 to unsigned int.
10664 (next_operand_entry_id): Change type to unsigned int.
10665 (sort_by_operand_rank): Make sure to return the right return value
10666 even if unsigned fields are bigger than INT_MAX.
10667 (struct oecount): Change cnt and id type to unsigned int.
10668 (oecount_hasher::equal): Formatting fix.
10669 (oecount_cmp): Make sure to return the right return value
10670 even if unsigned fields are bigger than INT_MAX.
10671 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
10672
10673 PR c++/80129
10674 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
10675 TREE_READONLY on result if writing it more than once.
10676
10677 PR sanitizer/80110
10678 * doc/invoke.texi (-fsanitize=thread): Document that with
10679 -fnon-call-exceptions atomics are not able to throw
10680 exceptions.
10681
10682 PR sanitizer/80110
10683 * tsan.c: Include tree-eh.h.
10684 (instrument_builtin_call): Call maybe_clean_eh_stmt or
10685 maybe_clean_or_replace_eh_stmt where needed.
10686 (instrument_memory_accesses): Add cfg_changed argument.
10687 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
10688 if it returned true.
10689 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
10690
10691 PR rtl-optimization/63191
10692 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
10693 wrapper function, moved the whole old content into ...
10694 (ix86_delegitimize_address_1): ... this. New inline function.
10695 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
10696 true as last argument instead of ix86_delegitimize_address.
10697
10698 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
10699
10700 * config/aarch64/aarch64.c (generic_branch_cost): Copy
10701 cortexa57_branch_cost.
10702
10703 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
10704
10705 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
10706
10707 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10708
10709 PR target/80123
10710 * doc/md.texi (Constraints): Document wA constraint.
10711 * config/rs6000/constraints.md (wA): New.
10712 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
10713 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
10714 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
10715 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
10716
10717 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
10718
10719 PR c++/80029
10720 * gimplify.c (is_oacc_declared): New function.
10721 (oacc_default_clause): Use it to set default flags for acc declared
10722 variables inside parallel regions.
10723 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
10724 declared variables.
10725 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
10726 declare attribute to any decl as necessary.
10727
10728 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
10729
10730 PR target/80082
10731 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
10732 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
10733 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
10734 (arm_arch_lpae): This.
10735 * config/arm/arm.c (arm_arch7ve): Rename into ...
10736 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
10737 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
10738 arm_arch_lpae.
10739
10740 2017-03-22 Martin Liska <mliska@suse.cz>
10741
10742 PR target/79906
10743 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
10744 error message instead of an ICE.
10745
10746 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10747
10748 * doc/extend.texi (6.11 Additional Floating Types): Revise.
10749
10750 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
10751
10752 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
10753 comments.
10754 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
10755 comments.
10756
10757 2017-03-21 Martin Sebor <msebor@redhat.com>
10758
10759 * doc/extend.texi: Use "cannot" instead of "can't."
10760 * doc/hostconfig.texi: Same.
10761 * doc/install.texi: Same.
10762 * doc/invoke.texi: Same.
10763 * doc/loop.texi: Same.
10764 * doc/md.texi: Same.
10765 * doc/objc.texi: Same.
10766 * doc/rtl.texi: Same.
10767 * doc/tm.texi: Same.
10768 * doc/tm.texi.in: Same.
10769 * doc/trouble.texi: Same.
10770
10771 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
10772
10773 PR debug/63238
10774 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
10775 (collect_checksum_attributes): Set it.
10776 (die_checksum_ordered): Use it.
10777
10778 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10779
10780 PR tree-optimization/79908
10781 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
10782 change: For a VA_ARG whose LHS has been cast away, use
10783 force_gimple_operand to construct the side effects.
10784
10785 2017-03-21 David Malcolm <dmalcolm@redhat.com>
10786
10787 PR translation/80001
10788 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
10789 more amenable to translation.
10790 (oacc_loop_auto_partitions): Likewise.
10791
10792 2017-03-21 Marek Polacek <polacek@redhat.com>
10793 Martin Sebor <msebor@redhat.com>
10794
10795 PR tree-optimization/80109
10796 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
10797 on INTEGRAL_TYPE_P.
10798
10799 2017-03-21 Jakub Jelinek <jakub@redhat.com>
10800 Segher Boessenkool <segher@kernel.crashing.org>
10801
10802 PR target/80125
10803 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
10804 check reg_used_between_p between insn and one of succ or succ2
10805 depending on if succ is artificial insn not inserted into insn
10806 stream.
10807
10808 2017-03-21 Martin Liska <mliska@suse.cz>
10809
10810 PR gcov-profile/80081
10811 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
10812 * doc/gcc.texi: Include gcov-dump stuff.
10813 * doc/gcov-dump.texi: New file.
10814
10815 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
10816
10817 PR rtl-optimization/79150
10818 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
10819 conditional jump, if the jump is the last insn of the loop.
10820
10821 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10822 Richard Biener <rguenth@suse.de>
10823
10824 PR tree-optimization/79908
10825 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
10826 been cast away, use force_gimple_operand to construct the side
10827 effects.
10828
10829 2017-03-21 Martin Liska <mliska@suse.cz>
10830
10831 PR libfortran/79956
10832 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
10833 to NULL.
10834
10835 2017-03-21 Brad Spengler <spender@grsecurity.net>
10836
10837 PR plugins/80094
10838 * plugin.c (htab_hash_plugin): New function.
10839 (add_new_plugin): Use it and adjust.
10840 (parse_plugin_arg_opt): Adjust.
10841 (init_one_plugin): Likewise.
10842
10843 2017-03-21 Richard Biener <rguenther@suse.de>
10844
10845 PR tree-optimization/80032
10846 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
10847 if set force the cleanup to happen unconditionally.
10848 (gimplify_target_expr): Push inserted clobbers with force_uncond
10849 to avoid them being removed by control-dependent DCE.
10850
10851 2017-03-21 Richard Biener <rguenther@suse.de>
10852
10853 PR tree-optimization/80122
10854 * tree-inline.c (copy_bb): Do not expans va-arg packs or
10855 va_arg_pack_len when the inlined call stmt requires pack
10856 expansion itself.
10857 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
10858
10859 2017-03-21 Jakub Jelinek <jakub@redhat.com>
10860
10861 PR sanitizer/78158
10862 * tsan.c (instrument_builtin_call): If the memory model argument
10863 is not a constant, assume it is valid.
10864
10865 PR c/67338
10866 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
10867 avoid UB.
10868
10869 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
10870
10871 PR rtl-optimization/79910
10872 * combine.c (can_combine_p): Do not allow combining an I0 or I1
10873 if its dest is used by an insn before I2 (other than the combined
10874 insns themselves, which are properly handled already).
10875
10876 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
10877
10878 Revert:
10879 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
10880
10881 * combine.c (record_used_regs): New static function.
10882 (try_combine): Handle situations where there is an additional
10883 instruction between I2 and I3 which needs to have a LOG_LINK
10884 updated.
10885
10886 Revert:
10887 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
10888
10889 * combine.c (try_combine): Delete redundant i1 test. Call
10890 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
10891
10892 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10893
10894 PR target/80083
10895 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
10896 alternatives 13/14.
10897
10898 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10899
10900 PR tree-optimization/80054
10901 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
10902 the optimization if a PHI or any of its arguments is not dominated
10903 by the candidate's basis. Use gphi* rather than gimple* as
10904 appropriate.
10905 (replace_profitable_candidates): Clean up a gimple* variable that
10906 should be a gphi* variable.
10907
10908 2017-03-20 Martin Sebor <msebor@redhat.com>
10909
10910 PR c++/52477
10911 * doc/extend.texi (attribute constructor): Document present limitation.
10912
10913 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
10914
10915 PR target/79963
10916 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
10917 __POWER9_VECTOR__ #ifdef control, change template definition to
10918 use Power9-specific built-in function.
10919 (vec_any_eq): Likewise.
10920 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
10921 to control outcomes from this test.
10922 (vector_ae_<mode>p): For VEC_F modes, likewise.
10923
10924 2017-03-20 Ian Lance Taylor <iant@google.com>
10925
10926 * config/i386/i386.c (ix86_function_regparm): Save an extra
10927 register for -fsplit-stack with DECL_STATIC_CHAIN.
10928
10929 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
10930
10931 PR target/79912
10932 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
10933 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
10934
10935 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
10936
10937 * config/riscv/riscv.c (riscv_print_operand): Use "fence
10938 iorw,ow".
10939 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
10940 iorw,iorw".
10941
10942 2017-03-20 Marek Polacek <polacek@redhat.com>
10943
10944 PR sanitizer/80063
10945 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
10946
10947 2017-03-20 Richard Biener <rguenther@suse.de>
10948
10949 PR tree-optimization/80113
10950 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
10951 allocate extra SSA name for PHI def.
10952 (add_close_phis_to_outer_loops): Likewise.
10953 (add_close_phis_to_merge_points): Likewise.
10954 (copy_loop_close_phi_args): Likewise.
10955 (copy_cond_phi_nodes): Likewise.
10956
10957 2017-03-20 Martin Liska <mliska@suse.cz>
10958
10959 PR middle-end/79753
10960 * tree-chkp.c (chkp_build_returned_bound): Do not build
10961 returned bounds for a LHS that's not a BOUNDED_P type.
10962
10963 2017-03-20 Martin Liska <mliska@suse.cz>
10964
10965 PR target/79769
10966 PR target/79770
10967 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
10968 COMPLEX_CST and VECTOR_CST.
10969
10970 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10971
10972 PR target/78857
10973 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
10974 target operand. A new splitter adds the clobber statement in case
10975 the target operand is dead anyway.
10976
10977 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
10978
10979 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
10980 to age-old versions of binutils and glibc.
10981
10982 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
10983
10984 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
10985
10986 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
10987
10988 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
10989
10990 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
10991
10992 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
10993 requirement for binutils 2.13.
10994
10995 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
10996
10997 * combine.c (try_combine): Delete redundant i1 test. Call
10998 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
10999
11000 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
11001
11002 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
11003 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
11004 contents.
11005 <riscv64-*-elf>: Re-arrange section
11006 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
11007 <riscv32-*-linux>: Likewise.
11008 <riscv64-*-elf>: Likewise
11009 <riscv64-*-linux>: Likewise.
11010
11011 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
11012
11013 PR target/80052
11014 * aarch64.opt(verbose-cost-dump): Fix typo.
11015
11016 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
11017
11018 PR target/79951
11019 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
11020 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
11021
11022 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
11023
11024 * reload.c (find_reloads): When reloading a nonoffsettable address,
11025 use RELOAD_OTHER for it and its address reloads.
11026
11027 PR rtl-optimization/79910
11028 * combine.c (record_used_regs): New static function.
11029 (try_combine): Handle situations where there is an additional
11030 instruction between I2 and I3 which needs to have a LOG_LINK
11031 updated.
11032
11033 2017-03-17 Jeff Law <law@redhat.com>
11034
11035 PR tree-optimization/71437
11036 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
11037 conditional in the hash table first.
11038 (vrp_dom_walker::before_dom_children): Extract condition from
11039 ASSERT_EXPR. Record condition, its inverion and any implied
11040 conditions as well.
11041
11042 2017-03-17 Marek Polacek <polacek@redhat.com>
11043 Markus Trippelsdorf <markus@trippelsdorf.de>
11044
11045 PR tree-optimization/80079
11046 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
11047 m_stores_head.
11048
11049 2017-03-17 Richard Biener <rguenther@suse.de>
11050
11051 PR middle-end/80075
11052 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
11053 Properly verify the LHS before the RHS possibly claims to be
11054 handled.
11055 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
11056 do not throw.
11057
11058 2017-03-17 Martin Jambor <mjambor@suse.cz>
11059
11060 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
11061 (List of -O2 options): Likewise.
11062 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
11063 (-fipa-vrp) New.
11064
11065 2017-03-17 Tom de Vries <tom@codesourcery.com>
11066
11067 * gcov-dump.c (print_usage): Print bug_report_url.
11068
11069 2017-03-17 Richard Biener <rguenther@suse.de>
11070
11071 PR middle-end/80050
11072 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
11073 (parser::peek): Likewise.
11074
11075 2017-03-17 Richard Biener <rguenther@suse.de>
11076
11077 PR tree-optimization/80048
11078 * sese.c (free_sese_info): Properly release rename_map and
11079 copied_bb_map elements.
11080
11081 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
11082
11083 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
11084 Add linked-list forward and backlinks. Insert on
11085 construction, remove on destruction.
11086 (class pass_store_merging): Add m_stores_head field.
11087 (pass_store_merging::terminate_and_process_all_chains):
11088 Iterate over m_stores_head list.
11089 (pass_store_merging::terminate_all_aliasing_chains):
11090 Likewise.
11091 (pass_store_merging::execute): Check for debug stmts first.
11092 Push new chains onto the m_stores_head stack.
11093
11094 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
11095
11096 PR target/71294
11097 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
11098 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
11099 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
11100
11101 2017-03-16 Jeff Law <law@redhat.com>
11102
11103 PR tree-optimization/71437
11104 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
11105 member function. Implementation moved into after_dom_children
11106 member function and into the threader's thread_outgoing_edges
11107 function.
11108 (dom_opt_dom_walker::after_dom_children): Simplify by moving
11109 some code into new thread_outgoing_edges.
11110 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
11111 definition. Simplify marker handling (do it here). Assume we always
11112 have the available expression and the const/copies tables.
11113 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
11114 and tree-vrp.c
11115 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
11116 * tree-vrp.c (equiv_stack): No longer file scoped.
11117 (vrp_dom_walker): New class.
11118 (vrp_dom_walker::before_dom_children): New member function.
11119 (vrp_dom_walker::after_dom_children): Likewise.
11120 (identify_jump_threads): Setup domwalker. Use it rather than
11121 walking edges in a random order by hand. Simplify setup/finalization.
11122 (finalize_jump_threads): Remove.
11123 (vrp_finalize): Do not call identify_jump_threads here.
11124 (execute_vrp): Do it here instead and call thread_through_all_blocks
11125 here too.
11126
11127 PR tree-optimization/71437
11128 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
11129 callers changed.
11130 (simplify_stmt_for_jump_threading): Add basic_block argument. All
11131 callers changed.
11132 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
11133 (dom_opt_dom_walker::thread_across_edge): Remove
11134 handle_dominating_asserts argument. All callers changed.
11135 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
11136 changes. Remove calls to lhs_of_dominating_assert. Other
11137 uses of handle_dominating_asserts turn into unconditional code
11138 (simplify_control_stmt_condition_1): Likewise.
11139 (simplify_control_stmt_condition): Likewise.
11140 (thread_through_normal_block, thread_across_edge): Likewise.
11141 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
11142 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
11143 object if it is not an SSA_NAME.
11144 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
11145 before calling into the VRP specific simplifiers.
11146 (identify_jump_threads): Remove handle_dominating_asserts
11147 argument.
11148
11149 2017-03-16 Jakub Jelinek <jakub@redhat.com>
11150
11151 PR fortran/79886
11152 * tree-diagnostic.c (default_tree_printer): No longer static.
11153 * tree-diagnostic.h (default_tree_printer): New prototype.
11154
11155 2017-03-16 Tamar Christina <tamar.christina@arm.com>
11156
11157 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
11158 Change ins into fmov.
11159
11160 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11161
11162 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
11163 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
11164 Use h_con constraint for operand 1.
11165 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
11166 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
11167
11168 2017-03-15 Jeff Law <law@redhat.com>
11169
11170 PR tree-optimization/71437
11171 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
11172 (record_temporary_equivalences): Use it.
11173
11174 PR tree-optimization/71437
11175 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
11176 tree-ssa-scopedtables.
11177 (lookup_avail_expr, build_and_record_new_cond): Likewise.
11178 (record_conditions, record_cond, vuse_eq): Likewise.
11179 (record_edge_info): Adjust to API tweak of record_conditions.
11180 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
11181 (record_temporary_equivalences, optimize_stmt): Likewise.
11182 (eliminate_redundant_computations): Likewise.
11183 (record_equivalences_from_stmt): Likewise.
11184 * tree-ssa-scopedtables.c: Include options.h and params.h.
11185 (vuse_eq): New function, moved from tree-ssa-dom.c
11186 (build_and_record_new_cond): Likewise.
11187 (record_conditions): Likewise. Accept vector of conditions rather
11188 than edge_equivalence structure for first argument.
11189 for the first argument.
11190 (avail_exprs_stack::lookup_avail_expr): New member function, moved
11191 from tree-ssa-dom.c.
11192 (avail_exprs_stack::record_cond): Likewise.
11193 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
11194 from tree-ssa-dom.c.
11195 (avail_exprs_stack): Add new member functions lookup_avail_expr
11196 and record_cond.
11197 (record_conditions): Declare.
11198
11199 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
11200
11201 PR target/80017
11202 * lra-constraints.c (process_alt_operands): Increase reject for
11203 reloading an input/output operand.
11204
11205 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
11206
11207 PR target/79038
11208 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
11209 insns to convert from signed/unsigned char/short to IEEE 128-bit
11210 floating point.
11211 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
11212
11213 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
11214
11215 PR target/80019
11216 * config/i386/i386.c (ix86_vector_duplicate_value): Create
11217 subreg of inner mode for values already in registers.
11218
11219 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
11220
11221 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
11222 iteration reg is used after the loop.
11223
11224 2017-03-14 Martin Sebor <msebor@redhat.com>
11225
11226 PR tree-optimization/79800
11227 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
11228 precision in negative-positive range.
11229 (format_floating): Call non-const overload with adjusted precision.
11230
11231 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
11232
11233 PR target/79947
11234 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
11235 -mpowerpc-gfxopt.
11236
11237 2017-03-14 Martin Sebor <msebor@redhat.com>
11238
11239 PR middle-end/80020
11240 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
11241 * builtins.def (aligned_alloc): Use it.
11242
11243 PR c/79936
11244 * Makefile.in (GTFILES): Add calls.c.
11245 * calls.c: Include "gt-calls.h".
11246
11247 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
11248
11249 PR rtl-optimization/79728
11250 * regs.h (struct target_regs): New field
11251 x_contains_allocatable_regs_of_mode.
11252 (contains_allocatable_regs_of_mode): New macro.
11253 * reginfo.c (init_reg_sets_1): Initialize it, and change
11254 contains_reg_of_mode so it includes global regs as well.
11255 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
11256 rather than contains_regs_of_mode.
11257
11258 2017-03-14 Martin Liska <mliska@suse.cz>
11259
11260 * doc/invoke.texi: Document options that can't be combined with
11261 -fcheck-pointer-bounds.
11262
11263 2017-03-14 Martin Liska <mliska@suse.cz>
11264
11265 PR middle-end/79831
11266 * doc/invoke.texi (-Wchkp): Document the option.
11267
11268 2017-03-14 Martin Liska <mliska@suse.cz>
11269
11270 * Makefile.in: Install gcov-dump.
11271
11272 2017-03-14 Martin Liska <mliska@suse.cz>
11273
11274 * multiple_target.c (expand_target_clones): Bail out for
11275 an invalid attribute.
11276
11277 2017-03-14 Richard Biener <rguenther@suse.de>
11278
11279 * alias.c (struct alias_set_entry): Pack properly.
11280 * cfgloop.h (struct loop): Likewise.
11281 * cse.c (struct set): Likewise.
11282 * ipa-utils.c (struct searchc_env): Likewise.
11283 * loop-invariant.c (struct invariant): Likewise.
11284 * lra-remat.c (struct cand): Likewise.
11285 * recog.c (struct change_t): Likewise.
11286 * rtl.h (struct address_info): Likewise.
11287 * symbol-summary.h (function_summary): Likewise.
11288 * tree-loop-distribution.c (struct partition): Likewise.
11289 * tree-object-size.c (struct object_size_info): Likewise.
11290 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
11291 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
11292 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
11293 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
11294 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
11295 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
11296 (struct _stmt_vec_info): Likewise.
11297
11298 2017-03-14 Martin Liska <mliska@suse.cz>
11299
11300 PR target/79892
11301 * multiple_target.c (create_dispatcher_calls): Check that
11302 a target can create a function dispatcher.
11303
11304 2017-03-14 Martin Liska <mliska@suse.cz>
11305
11306 PR lto/66295
11307 * multiple_target.c (expand_target_clones): Drop local.local
11308 flag for default implementation.
11309
11310 2017-03-14 Richard Biener <rguenther@suse.de>
11311
11312 PR tree-optimization/80030
11313 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
11314
11315 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
11316
11317 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
11318 gcc_fallthrough() instead of __attribute__((fallthrough));
11319
11320 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
11321
11322 * doc/gcc.texi: Remove "up" link to (DIR).
11323 * doc/gccint.texi: Ditto.
11324
11325 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
11326
11327 * doc/install.texi (Specific) <avr>: Remove reference to
11328 binutils 2.13.
11329
11330 2017-03-13 Jeff Law <law@redhat.com>
11331
11332 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
11333 attribute rather than comments.
11334
11335 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
11336 match_scratch operand is highest.
11337
11338 2017-03-13 Martin Liska <mliska@suse.cz>
11339
11340 PR middle-end/78339
11341 * ipa-pure-const.c (warn_function_noreturn): If the declarations
11342 is a CHKP clone, use original declaration.
11343
11344 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
11345
11346 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
11347 (arc_conditional_register_usage): Use a different allocation order
11348 when optimizing for size.
11349 * common/config/arc/arc-common.c (arc_option_optimization_table):
11350 Section anchors default on when optimizing for size.
11351
11352 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
11353
11354 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
11355
11356 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
11357
11358 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
11359 * config/arc/arc.md (cpu_facility): Add cd variant.
11360 (*movqi_insn): Add code density variant.
11361 (*movhi_insn): Likewise.
11362 (*movqi_insn): Likewise.
11363 (*addsi3_mixed): Likewise.
11364 (subsi3_insn): Likewise.
11365
11366 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
11367
11368 * config/arc/arc.md (movsi_cond_exec): Update constraint.
11369
11370 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
11371
11372 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
11373 expressions with MINUS and UNARY ops.
11374
11375 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11376
11377 PR target/79911
11378 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
11379 Rename to...
11380 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
11381 between vec_select and vector argument.
11382 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
11383 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
11384 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
11385 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
11386 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
11387 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
11388
11389 2017-03-13 Richard Biener <rguenther@suse.de>
11390
11391 PR other/79991
11392 * params.def (vect-max-peeling-for-alignment): Fix typo.
11393
11394 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
11395
11396 * doc/install.texi (Specific) <mips-*-*>: Remove description of
11397 issue that only occurred with binutils below 2.18.
11398
11399 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
11400
11401 * doc/install.texi (Specific) <cris-axis-elf>: No longer
11402 refer to binutils 2.11/2.12 minimum.
11403
11404 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
11405
11406 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
11407 ftp.kernel.org and simplify binutils requirement.
11408
11409 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
11410
11411 * doc/invoke.texi (Warning Options): Fix spelling of link-time
11412 optimization.
11413 (Optimize Options): Ditto. Also remove redundancy.
11414
11415 2017-03-10 David Malcolm <dmalcolm@redhat.com>
11416
11417 PR translation/79848
11418 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
11419 "%qs".
11420 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
11421 to G_ to avoid double translation.
11422
11423 2017-03-10 David Malcolm <dmalcolm@redhat.com>
11424
11425 PR translation/79923
11426 * auto-profile.c (get_combined_location): Convert leading
11427 character of diagnostics to lower case and remove trailing period.
11428 (read_profile): Likewise for various diagnostics.
11429 * config/arm/arm.c (arm_option_override): Remove trailing period
11430 from various diagnostics.
11431 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
11432 (msp430_expand_delay_cycles): Likewise.
11433
11434 2017-03-10 David Malcolm <dmalcolm@redhat.com>
11435
11436 PR target/79925
11437 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
11438 full command-line argument, rather than just "str".
11439 (aarch64_validate_march): Likewise.
11440 (aarch64_validate_mtune): Likewise.
11441
11442 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
11443
11444 PR rtl-optimization/78911
11445 * lra-assigns.c (must_not_spill_p): New function.
11446 (spill_for): Use it.
11447
11448 2017-03-10 Jakub Jelinek <jakub@redhat.com>
11449
11450 PR tree-optimization/79981
11451 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
11452 ATOMIC_COMPARE_EXCHANGE ifn result.
11453 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
11454 IFN_ATOMIC_COMPARE_EXCHANGE.
11455
11456 2017-03-10 David Malcolm <dmalcolm@redhat.com>
11457
11458 PR driver/79875
11459 * opts.c (parse_sanitizer_options): Add missing question mark to
11460 "did you mean" message.
11461
11462 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11463
11464 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
11465 built-in.
11466 (VMULEUH_UNS): Likewise.
11467 (VMULOUB_UNS): Likewise.
11468 (VMULOUH_UNS): Likewise.
11469 * config/rs6000/rs6000.c (builtin_function_type): Remove
11470 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
11471
11472 2017-03-10 David Malcolm <dmalcolm@redhat.com>
11473
11474 PR bootstrap/79952
11475 * read-rtl-function.c (function_reader::read_rtx_operand): Update
11476 x with result of extra_parsing_for_operand_code_0.
11477 (function_reader::extra_parsing_for_operand_code_0): Convert
11478 return type from void to rtx, returning x. When reading
11479 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
11480 larger size containing struct block_symbol.
11481
11482 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
11483
11484 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
11485 -mfloat128-hardware without -m64.
11486
11487 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
11488
11489 PR target/79941
11490 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
11491 entries to the case statement that marks unsigned arguments to
11492 overloaded functions.
11493
11494 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
11495
11496 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
11497 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
11498
11499 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
11500
11501 PR target/79907
11502 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
11503 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
11504
11505 2017-03-10 Martin Liska <mliska@suse.cz>
11506
11507 PR target/65705
11508 PR target/69804
11509 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
11510 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
11511 FIELD != NULL.
11512
11513 2017-03-10 Olivier Hainque <hainque@adacore.com>
11514
11515 * tree-switch-conversion (array_value_type): Start by resetting
11516 candidate type to it's main variant.
11517
11518 2017-03-10 Jakub Jelinek <jakub@redhat.com>
11519
11520 PR rtl-optimization/79909
11521 * combine.c (try_combine): Use simplify_replace_rtx on individual
11522 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
11523 of the whole CALL_INSN_FUNCTION_USAGE.
11524
11525 PR tree-optimization/79972
11526 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
11527 get_range_info on SSA_NAMEs. Formatting fixes.
11528
11529 2017-03-10 Richard Biener <rguenther@suse.de>
11530 Jakub Jelinek <jakub@redhat.com>
11531
11532 PR tree-optimization/77975
11533 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
11534 edge to be constant.
11535 (get_val_for): For constant x return it. Formatting fix.
11536 (loop_niter_by_eval): Avoid pointless looping if the next iteration
11537 would use the same bases as the current one.
11538
11539 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11540
11541 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
11542 instead of vec_select for V1TImode.
11543 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
11544 longer needed.
11545 (VSX_LE_128): Add V1TI to this mode iterator.
11546 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
11547 (*vsx_le_perm_store_<mode>): Likewise.
11548 (pre-reload splitter for VSX stores): Likewise.
11549 (post-reload splitter for VSX stores): Likewise.
11550 (*vsx_xxpermdi2_le_<mode>): Likewise.
11551 (*vsx_lxvd2x2_le_<mode>): Likewise.
11552 (*vsx_stxvd2x2_le_<mode>): Likewise.
11553
11554 2017-03-09 Michael Eager <eager@eagercon.com>
11555
11556 Correct failures with --enable-checking=yes,rtl.
11557
11558 * config/microblaze/microblaze.c (microblaze_expand_shift):
11559 Replace GET_CODE test with CONST_INT_P and INTVAL test with
11560 test for const0_rtx.
11561 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
11562 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
11563
11564 2017-03-09 Richard Biener <rguenther@suse.de>
11565
11566 PR tree-optimization/79977
11567 * graphite-scop-detection.c (scop_detection::merge_sese):
11568 Handle the case of extra exits to blocks dominating the entry.
11569
11570 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
11571
11572 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
11573 Document rdynamic.
11574
11575 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
11576
11577 PR rtl-optimization/79949
11578 * lra-constraints.c (process_alt_operands): Check memory when
11579 trying to predict a cycle. Print about the overall increase.
11580
11581 2017-03-09 Richard Biener <rguenther@suse.de>
11582
11583 PR middle-end/79971
11584 * gimple-expr.c (useless_type_conversion_p): Preserve
11585 TYPE_SATURATING for fixed-point types.
11586
11587 2017-03-09 Richard Biener <rguenther@suse.de>
11588
11589 PR ipa/79970
11590 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
11591 alignment of BLKmode params.
11592
11593 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11594
11595 PR target/79913
11596 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
11597 (VALL_NO_V2Q): Likewise.
11598 (VDQF_DF): Delete.
11599 * config/aarch64/aarch64-simd.md
11600 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
11601 iterator.
11602 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
11603 VALL_NO_V2Q mode iterator.
11604 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
11605
11606 2017-03-09 Martin Liska <mliska@suse.cz>
11607
11608 PR tree-optimization/79631
11609 * tree-chkp-opt.c (chkp_is_constant_addr): Call
11610 tree_int_cst_sign_bit just for INTEGER constants.
11611
11612 2017-03-09 Martin Liska <mliska@suse.cz>
11613
11614 PR target/65705
11615 PR target/69804
11616 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
11617 sanitizers.
11618
11619 2017-03-09 Marek Polacek <polacek@redhat.com>
11620
11621 PR c++/79672
11622 * tree.c (inchash::add_expr): Handle TREE_VEC.
11623
11624 2017-03-09 Martin Liska <mliska@suse.cz>
11625
11626 PR ipa/79764
11627 (chkp_narrow_size_and_offset): New function.
11628 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
11629 (void chkp_parse_bit_field_ref): New function.
11630 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
11631 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
11632
11633 2017-03-09 Martin Liska <mliska@suse.cz>
11634
11635 PR ipa/79761
11636 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
11637 (chkp_find_bounds_1): Remove gcc_unreachable.
11638
11639 2017-03-09 Jakub Jelinek <jakub@redhat.com>
11640
11641 PR sanitizer/79944
11642 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
11643 BUILT_IN_SYNC*, determine the access type from the size suffix and
11644 always build a MEM_REF with that type. Handle forgotten
11645 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
11646
11647 PR target/79932
11648 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
11649 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
11650 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
11651 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
11652 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
11653 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
11654 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
11655 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
11656 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
11657 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
11658 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
11659 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
11660 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
11661 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
11662 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
11663 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
11664 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
11665 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
11666 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
11667 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
11668 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
11669 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
11670 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
11671 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
11672 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
11673 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
11674 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
11675 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
11676 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
11677 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
11678 definitions outside of __OPTIMIZE__ guarded section.
11679
11680 PR target/79932
11681 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
11682 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
11683 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
11684 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
11685 guarded section.
11686
11687 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11688
11689 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
11690 ("vfenez<mode>"): Add missing constraints.
11691
11692 2017-03-08 Martin Sebor <msebor@redhat.com>
11693
11694 PR target/79928
11695 * config/nds32/nds32.c (nds32_option_override):
11696 Fix misspelled diagnostic.
11697
11698 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11699
11700 PR c/79940
11701 * gimplify.c (gimplify_omp_for): Replace index var in outer
11702 taskloop statement with an artificial variable and add
11703 OMP_CLAUSE_PRIVATE clause for it.
11704
11705 2017-03-08 Richard Biener <rguenther@suse.de>
11706
11707 PR tree-optimization/79955
11708 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
11709 for accesses that are completely outside of the variable.
11710
11711 2017-03-08 Andrew Haley <aph@redhat.com>
11712
11713 PR tree-optimization/79943
11714 * tree-ssa-loop-split.c (compute_new_first_bound): When
11715 calculating the new upper bound, (END-BEG) should be added, not
11716 subtracted.
11717
11718 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11719
11720 * config/avr/avr.md (setmemhi): Make sure match_dup
11721 operand number comes before match_scratch.
11722
11723 2017-03-08 Richard Biener <rguenther@suse.de>
11724
11725 PR tree-optimization/79920
11726 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
11727 with ncopies == 1 to ...
11728 (vect_transform_slp_perm_load): ... here. Properly compute
11729 all element loads by iterating VF times over the group. Do
11730 not handle ncopies (computed in a broken way) in
11731 vect_create_mask_and_perm.
11732
11733 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11734
11735 PR sanitizer/79904
11736 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
11737 is a uniform vector, use uniform_vector_p return value instead of
11738 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
11739
11740 2017-03-07 Marek Polacek <polacek@redhat.com>
11741
11742 PR middle-end/79809
11743 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
11744 (alloca_call_type): Likewise.
11745
11746 2017-03-07 Martin Liska <mliska@suse.cz>
11747
11748 * gcov.c (process_args): Put comment to correct location.
11749
11750 2017-03-07 Martin Liska <mliska@suse.cz>
11751
11752 PR middle-end/68270
11753 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
11754 Use array_at_struct_end_p instead of DECL_CHAIN (field).
11755 (chkp_narrow_bounds_for_field): Likewise.
11756 (chkp_parse_array_and_component_ref): Pass one more argument to
11757 call.
11758
11759 2017-03-07 Richard Biener <rguenther@suse.de>
11760
11761 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
11762 preheaders.
11763
11764 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
11765
11766 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
11767 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
11768
11769 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11770
11771 PR c/79855
11772 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
11773 to end of description.
11774 (PARAM_MAX_STORES_TO_MERGE): Likewise.
11775
11776 2017-03-07 Jakub Jelinek <jakub@redhat.com>
11777
11778 PR rtl-optimization/79901
11779 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
11780 ...
11781 (*avx512f_<code><mode>3<mask_name>): ... this.
11782 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
11783 iterator instead of VI8_AVX2_AVX512BW.
11784
11785 PR rtl-optimization/79901
11786 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
11787 min/max expander, expand it using expand_vec_cond_expr.
11788
11789 PR sanitizer/79897
11790 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
11791 temporary.
11792
11793 2017-03-06 Jakub Jelinek <jakub@redhat.com>
11794
11795 PR c++/79821
11796 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
11797 to void * for PCH reasons.
11798 * dwarf2out.c (output_loc_operands, output_die): Cast
11799 v.val_vec.array to unsigned char *.
11800
11801 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
11802
11803 PR target/77850
11804 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
11805 vector types.
11806
11807 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
11808
11809 PR rtl-optimization/79571
11810 * lra-constraints.c (process_alt_operands): Calculate static
11811 reject and subtract it from overall when only addresses will be
11812 reloaded.
11813
11814 2017-03-06 Julia Koval <julia.koval@intel.com>
11815
11816 PR target/79793
11817 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
11818 incoming stack boundary to 128 for 64-bit targets.
11819
11820 2017-03-06 Richard Biener <rguenther@suse.de>
11821
11822 PR tree-optimization/79894
11823 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
11824 to NULL after folding it.
11825
11826 2017-03-06 Richard Biener <rguenther@suse.de>
11827
11828 PR tree-optimization/79824
11829 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
11830 check disabling peeling for gaps.
11831
11832 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
11833
11834 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
11835 attributes): Document gettimeofday.
11836
11837 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
11838
11839 * config/s390/s390.c (s390_option_override_internal): Set
11840 PARAM_MIN_VECT_LOOP_BOUND
11841
11842 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
11843
11844 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
11845 * config/s390/s390.md: Likewise.
11846
11847 2017-03-06 Jakub Jelinek <jakub@redhat.com>
11848
11849 PR target/79812
11850 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
11851 (<avx2_avx512>_perm<mode>): Rename to ...
11852 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
11853 of VI8F_256_512.
11854 (<avx512>_perm<mode>_mask): Rename to ...
11855 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
11856 of VI8F_256_512.
11857 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
11858 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
11859 instead of VI8F_256_512.
11860 (avx512f_perm<mode>): New define_expand.
11861 (avx512f_perm<mode>_mask): Likewise.
11862 (avx512f_perm<mode>_1<mask_name>): New define_insn.
11863 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
11864
11865 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11866
11867 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
11868 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
11869 if_then_else.
11870 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
11871
11872 2017-03-06 Martin Liska <mliska@suse.cz>
11873
11874 PR sanitize/79783
11875 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
11876 when having a SSA NAME w/o VAR_DECL assigned to it.
11877
11878 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11879
11880 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
11881 msa_dpsub_<su>_d): Fix MODE for vec_select.
11882
11883 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11884
11885 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
11886 argument.
11887 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
11888
11889 2017-03-06 Richard Biener <rguenther@suse.de>
11890
11891 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
11892 * plugin.c (register_plugin_info): Likewise.
11893 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
11894
11895 2017-03-05 Jakub Jelinek <jakub@redhat.com>
11896
11897 * config/i386/sse.md (sse_storehps, sse_storelps,
11898 avx_<castmode><avxsizesuffix>_<castmode>,
11899 avx512f_<castmode><avxsizesuffix>_<castmode>,
11900 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
11901 in condition that at least one operand is not a MEM.
11902
11903 2017-03-03 Jakub Jelinek <jakub@redhat.com>
11904
11905 PR middle-end/79805
11906 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
11907 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
11908 ECF_NOTHROW.
11909 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
11910 gimple_call_nothrow_p flag based on whether original builtin can throw.
11911 If it can, emit following stmts on the fallthrough edge.
11912 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
11913 don't create new bb if inserting just debug stmts on the edge, try to
11914 insert them on the fallthru bb or just reset debug stmts.
11915
11916 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
11917
11918 PR target/43763
11919 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
11920 restore recog_data (including the operand rtxes inside it) around
11921 the call to get_insn_template.
11922
11923 2017-03-03 Martin Sebor <msebor@redhat.com>
11924
11925 PR tree-optimization/79699
11926 * context.c (context::~context): Free MPFR caches to avoid
11927 a memory leak on program exit.
11928
11929 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11930
11931 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
11932 Use wide_int::ulow () instead of .elt (0).
11933
11934 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
11935
11936 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
11937 (*pushxf): Limit oF constraint to 32bit targets and add oC
11938 constraint for 64bit targets.
11939 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
11940 (*pushdf): Change rmF constraint to rmC.
11941
11942 2017-03-03 Martin Liska <mliska@suse.cz>
11943
11944 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
11945 Remove unused variable.
11946
11947 2017-03-03 Jakub Jelinek <jakub@redhat.com>
11948
11949 PR target/79807
11950 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
11951 is a memory operand, increase num_memory.
11952 (ix86_expand_args_builtin): Likewise.
11953
11954 2017-03-03 Jan Hubicka <jh@suse.cz>
11955
11956 PR lto/79760
11957 * ipa-devirt.c (maybe_record_node): Properly handle
11958 __cxa_pure_virtual visibility.
11959
11960 2017-03-03 Martin Liska <mliska@suse.cz>
11961
11962 PR tree-optimization/79803
11963 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
11964 assert.
11965 (pass_loop_prefetch::execute): Disabled optimization if an
11966 assumption about L1 cache size is not met.
11967
11968 2017-03-03 Martin Liska <mliska@suse.cz>
11969
11970 PR rtl-optimization/79574
11971 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
11972 (hash_scan_set): Likewise.
11973 (dump_hash_table): Likewise.
11974 (hoist_code): Likewise.
11975
11976 2017-03-03 Richard Biener <rguenther@suse.de>
11977
11978 * fixed-value.c (fixed_from_string): Restore use of elt (1)
11979 in place of uhigh ().
11980 (fixed_convert_from_real): Likewise.
11981
11982 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
11983
11984 PR target/79514
11985 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
11986
11987 2017-03-03 Richard Biener <rguenther@suse.de>
11988
11989 PR middle-end/79818
11990 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
11991 TYPE_OVERFLOW_UNDEFINED check.
11992
11993 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11994
11995 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
11996 numbers.
11997 (vector_ae_<mode>_p): Likewise.
11998 (vector_nez_<mode>_p): Likewise.
11999 (vector_ne_v2di_p): Likewise.
12000 (vector_ae_v2di_p): Likewise.
12001 (vector_ne_<mode>_p): Likewise.
12002 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
12003 numbers.
12004 (vsx_tsqrt<mode>2_fe): Likewise.
12005
12006 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
12007
12008 PR target/79514
12009 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
12010
12011 2017-03-02 Jakub Jelinek <jakub@redhat.com>
12012
12013 PR rtl-optimization/79780
12014 * cprop.c (one_cprop_pass): When second and further conditional trap
12015 in a single basic block is turned into an unconditional trap, turn it
12016 into a deleted note to avoid RTL verification failures.
12017
12018 2017-03-02 Richard Biener <rguenther@suse.de>
12019
12020 * fold-const.c (const_binop): Use ulow () instead of elt (0).
12021
12022 2017-03-02 Richard Biener <rguenther@suse.de>
12023
12024 PR tree-optimization/79345
12025 PR c++/42000
12026 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
12027 param and abort the walk, returning -1 if it is hit.
12028 (walk_aliased_vdefs): Take a limit param and pass it on.
12029 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
12030 defaulting to 0 and return a signed int.
12031 * tree-ssa-uninit.c (struct check_defs_data): New struct.
12032 (check_defs): New helper.
12033 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
12034 about uninitialized memory.
12035 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
12036 bogus uninitialized warning.
12037 (fixed_convert_from_real): Likewise.
12038
12039 2017-03-02 Bin Cheng <bin.cheng@arm.com>
12040
12041 PR tree-optimization/66768
12042 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
12043 iv_use if base object can't be determined.
12044
12045 2017-03-02 Jakub Jelinek <jakub@redhat.com>
12046
12047 PR tree-optimization/79345
12048 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
12049 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
12050 (get_pattern_stats): Initialize it.
12051 * genemit.c (gen_expand): Verify match_scratch numbers come after
12052 match_operand/match_dup numbers.
12053 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
12054 match_scratch numbers.
12055 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
12056 Likewise.
12057 * config/s390/s390.md (trunctdsd2): Likewise.
12058
12059 2017-03-02 Richard Biener <rguenther@suse.de>
12060
12061 * wide-int.h (wide_int_storage::operator=): Implement in terms
12062 of wi::copy.
12063
12064 2017-03-02 Richard Biener <rguenther@suse.de>
12065
12066 PR tree-optimization/79777
12067 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
12068 the to insert expression to sth existing.
12069
12070 2017-03-01 Martin Sebor <msebor@redhat.com>
12071
12072 PR middle-end/79692
12073 * gimple-ssa-sprintf.c
12074 (directive::known_width_and_precision): New function.
12075 (format_integer): Use it.
12076 (get_mpfr_format_length): Consider the full range of precision
12077 when computing %g output with the # flag. Set the likely byte
12078 count to 3 rather than 1 when precision is indeterminate.
12079 (format_floating): Correct the lower bound of precision.
12080
12081 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12082
12083 * doc/invoke.texi: Document default code model for 64-bit Linux.
12084
12085 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
12086
12087 PR target/79752
12088 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
12089 udiv rather than div since input pattern is unsigned.
12090
12091 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
12092
12093 * config/i386/i386.c (print_reg): Warn for values of
12094 unsupported size in integer register.
12095
12096 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
12097
12098 PR target/79439
12099 * config/rs6000/predicates.md (current_file_function_operand): Do
12100 not allow self calls to be local if the function is replaceable.
12101
12102 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
12103
12104 PR target/79395
12105 * config/rs6000/altivec.h (vec_ctz and others): Change the
12106 preprocessor macro that controls conditional compilation from
12107 _ARCH_PWR9 to __POWER9_VECTOR__.
12108 (vec_all_ne): Change parameterization of __altivec_scalar_pred
12109 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
12110 control (instead of _ARCH_PWR9 control) so that template
12111 definition uses power9-specific function.
12112 (vec_any_eq): Likewise.
12113 (vec_all_ne): Change macro definition to use a power9-specific
12114 expansion under #ifdef __POWER9_VECTOR__ control (instead of
12115 _ARCH_PWR9 control).
12116 (vec_any_eq) Likewise.
12117 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
12118 expansion for CMPNEF to remove support for xvcmpnesp instruction.
12119 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
12120 support for xvcmpnedp instruction.
12121 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
12122 macro expansion so that Power9 implementation of vec_all_ne does
12123 not use the AltiVec predicate framework.
12124 (VCMPNEH_P): Likewise.
12125 (VCMPNEW_P): Likewise.
12126 (VCMPNED_P): Likewise.
12127 (VCMPNEFP_P): Likewise.
12128 (VCMPNEDP_P): Likewise.
12129 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
12130 implementation of vec_any_eq to not use AltiVec predicate
12131 framework.
12132 (VCMPAEH_P): Likewise.
12133 (VCMPAEW_P): Likewise.
12134 (VCMPAED_P): Likewise.
12135 (VCMPAEFP_P): Likewise.
12136 (VCMPAEDP_P): Likewise.
12137 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
12138 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
12139 not use the AltiVec predicate framework.
12140 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
12141 of vec_any_eq to not use AltiVec predicate framework.
12142 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
12143 support for predefined __POWER9_VECTOR__ macro to indicate that
12144 Power9 instruction selection is enabled.
12145 (altivec_overloaded_builtins): Remove extraneous
12146 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
12147 function argument types RS6000_BTI_bool_V16QI and
12148 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
12149 entry for overloaded function argument types RS6000_BTI_bool_V4SI
12150 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
12151 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
12152 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
12153 Power9 for implementations of vec_cmpne. Change the signature for
12154 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
12155 (representing vec_all_ne) to remove the previously described first
12156 argument of type RS6000_BTI_INTSI, as this was an artifact of
12157 reliance on the AltiVec predicate framework, which is no longer
12158 used in the implementation of these functions. Add
12159 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
12160 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
12161 since, unlike the AltiVec predicate framework implementation, we
12162 do not share function descriptors between vec_alle and vec_anyeq.
12163 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
12164 set of modes that receive special treatment even when
12165 TARGET_P9_VECTOR is true. The special treatment emits code that
12166 does not depend on Power9 instructions.
12167 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
12168 define_expand to not rely on AltiVec predicate framework.
12169 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
12170 function.
12171 (vector_ne_v2di_p): Change this define_expand to not rely on
12172 AltiVec predicate framework.
12173 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
12174 function.
12175 (vector_ne_<mode>_p): Change this define_expand to not rely on
12176 AltiVec predicate framework.
12177 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
12178 function.
12179 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
12180 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
12181 define_insn pattern.
12182 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
12183 define_insn pattern because the xvcmpne<VSs>. instruction is not
12184 supported.
12185 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
12186 instruction is not supported.
12187
12188 2017-03-01 Jakub Jelinek <jakub@redhat.com>
12189
12190 * config/nvptx/nvptx.c: Include intl.h.
12191
12192 2017-03-01 Martin Jambor <mjambor@suse.cz>
12193
12194 PR lto/78140
12195 * ipa-prop.h (ipa_bits): Removed field known.
12196 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
12197 to pointers. Adjusted their comments to warn about their sharing.
12198 (ipcp_transformation_summary): Change bits to a vector of pointers.
12199 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
12200 (ipa_get_ipa_bits_for_value): Declare.
12201 * tree-vrp.h (value_range): Mark as GTY((for_user)).
12202 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
12203 (ipa_bits_hash_table): Likewise.
12204 (ipa_vr_ggc_hash_traits): Likewise.
12205 (ipa_vr_hash_table): Likewise.
12206 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
12207 being pointers and vr_known being removed.
12208 (ipa_set_jf_unknown): Likewise.
12209 (ipa_get_ipa_bits_for_value): New function.
12210 (ipa_set_jfunc_bits): Likewise.
12211 (ipa_get_value_range): New overloaded functions.
12212 (ipa_set_jfunc_vr): Likewise.
12213 (ipa_compute_jump_functions_for_edge): Use the above functions to
12214 construct bits and vr parts of jump functions.
12215 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
12216 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
12217 exist.
12218 (ipcp_grow_transformations_if_necessary): Also allocate
12219 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
12220 exist.
12221 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
12222 them. Fix too long lines.
12223 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
12224 vr_known being removed.
12225 (ipa_read_jump_function): Use new setter functions to construct bits
12226 and vr parts of jump functions or set them to NULL.
12227 (write_ipcp_transformation_info): Adjust for bits being pointers.
12228 (read_ipcp_transformation_info): Likewise.
12229 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
12230 space.
12231 Include gt-ipa-prop.h.
12232 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
12233 being pointers.
12234 (ipcp_store_bits_results): Likewise.
12235 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
12236 Do not write to existing jump functions but use a temporary instead.
12237
12238 2017-03-01 Jakub Jelinek <jakub@redhat.com>
12239
12240 PR c++/79681
12241 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
12242 attempt to use its first operand as BIT_FIELD_REF base.
12243
12244 2017-03-01 Richard Biener <rguenther@suse.de>
12245
12246 PR middle-end/79721
12247 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
12248 interpolating formula in wrapping arithmetic.
12249 (chrec_apply): Convert chrec_evaluate return value to wanted type.
12250
12251 2017-03-01 Jakub Jelinek <jakub@redhat.com>
12252
12253 PR tree-optimization/79734
12254 * tree-vect-generic.c (expand_vector_condition): Optimize
12255 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
12256 Handle VEC_COND_EXPR where comparison has different inner width from
12257 type's inner width.
12258
12259 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
12260
12261 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
12262 markup, and similar issues. Remove @opindex entries for things
12263 that aren't options. Add missing -mmpy-option entries.
12264
12265 2017-02-28 Jakub Jelinek <jakub@redhat.com>
12266
12267 PR tree-optimization/79737
12268 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
12269 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
12270 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
12271 instead of byte_size. Formatting fix.
12272 (shift_bytes_in_array_right): Formatting fix.
12273
12274 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
12275
12276 PR target/79749
12277 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
12278 condition on optimize for the leaf function test.
12279
12280 2017-02-28 Martin Liska <mliska@suse.cz>
12281
12282 PR lto/79625
12283 * read-rtl-function.c (function_reader::handle_unknown_directive):
12284 Bail out when one uses -flto.
12285
12286 2017-02-28 Martin Liska <mliska@suse.cz>
12287
12288 * common.opt: Replace space with tabular for options of <number>
12289 type.
12290 * config/i386/i386.opt: Show <number> value for
12291 -mlarge-data-threshold.
12292 * opts.c (print_filtered_help): Do not display number in hexadecimal
12293 format.
12294
12295 2017-02-28 Martin Liska <mliska@suse.cz>
12296
12297 * common.opt: Fix --help=option -Q for options which are of
12298 an enum type.
12299
12300 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
12301
12302 * config/i386/i386.c (print_reg): Error out for values
12303 of 8-bit size in invalid integer register.
12304
12305 2017-02-28 Martin Sebor <msebor@redhat.com>
12306
12307 PR tree-optimization/79691
12308 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
12309
12310 2017-02-28 Jakub Jelinek <jakub@redhat.com>
12311
12312 PR target/79729
12313 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
12314 gcc_unreachable with output_operand_lossage.
12315
12316 2017-02-28 Richard Biener <rguenther@suse.de>
12317
12318 PR tree-optimization/79740
12319 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
12320 inserts.
12321 (visit_nary_op): Insert the nary into the hashtable if we
12322 pattern-matched sth.
12323 * tree-ssa-pre.c (eliminate_insert): Robustify.
12324
12325 2017-02-28 Richard Biener <rguenther@suse.de>
12326
12327 PR middle-end/79731
12328 * fold-const.c (decode_field_reference): Reject out-of-bound
12329 accesses.
12330
12331 2017-02-28 Jakub Jelinek <jakub@redhat.com>
12332
12333 * config/i386/i386.c: Include intl.h.
12334 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
12335 instead of just cond ? "..." : "...".
12336 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
12337 * coverage.c (read_counts_file): Likewise.
12338 * omp-offload.c: Include intl.h.
12339 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
12340 of just cond ? "..." : "...".
12341 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
12342 of just cond ? "..." : "...".
12343
12344 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
12345
12346 PR target/79742
12347 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
12348 entry, if present.
12349 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
12350 'tune for' CPU name.
12351 * config/arm/arm-cpu-data.h: Regenerated.
12352
12353 2017-02-28 Richard Biener <rguenther@suse.de>
12354
12355 PR tree-optimization/79732
12356 * tree-inline.c (expand_call_inline): Do not shadow var.
12357
12358 2017-02-28 Richard Biener <rguenther@suse.de>
12359
12360 PR tree-optimization/79723
12361 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
12362 address-space properly.
12363
12364 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
12365
12366 * doc/optinfo.texi (Optimization groups): Fix option used for
12367 OPTGROUP_ALL.
12368 * doc/invoke.texi (-fopt-info): Document "omp".
12369 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
12370 (OPTGROUP_ALL): Add OPTGROUP_OMP.
12371 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
12372 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
12373 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
12374
12375 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
12376 all users.
12377 * dumpfile.c (optgroup_options): Instead of "openmp", associate
12378 OPTGROUP_OMP with "omp".
12379
12380 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
12381
12382 PR target/79544
12383 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
12384 for arithmetic shift of unsigned V2DI.
12385
12386 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
12387
12388 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
12389 arc/linux.h headers.
12390 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
12391 (LINK_SPEC): Likewise.
12392 (ARC_TLS_EXTRA_START_SPEC): Likewise.
12393 (EXTRA_SPECS): Likewise.
12394 (STARTFILE_SPEC): Likewise.
12395 (ENDFILE_SPEC): Likewise.
12396 (LIB_SPEC): Likewise.
12397 (TARGET_SDATA_DEFAULT): Likewise.
12398 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
12399 (MULTILIB_DEFAULTS): Likewise.
12400 (DWARF2_UNWIND_INFO): Likewise.
12401 * config/arc/big.h: New file.
12402 * config/arc/elf.h: Likewise.
12403 * config/arc/linux.h: Likewise.
12404 * config/arc/t-uClibc: Remove.
12405
12406 2017-02-27 Bin Cheng <bin.cheng@arm.com>
12407
12408 PR tree-optimization/77536
12409 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
12410 (tree_transform_and_unroll_loop): Use above function to compute the
12411 estimated niter of unrolled loop and use it when scaling profile.
12412 Also use count info rather than frequency if it's non-zero.
12413 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
12414 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
12415 (vect_transform_loop): Call above function.
12416
12417 2017-02-27 Richard Biener <rguenther@suse.de>
12418
12419 PR tree-optimization/45397
12420 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
12421 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
12422 (visit_nary_op): Add pattern matching for CSEing sign-changed
12423 or truncated operations with wider ones.
12424
12425 2017-02-27 Richard Biener <rguenther@suse.de>
12426
12427 PR tree-optimization/79690
12428 * tree-vect-stmts.c (vectorizable_store): Use vector type
12429 built from the DR with address-space.
12430
12431 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
12432
12433 * doc/invoke.texi (Optimize Options): Refine the description
12434 of asan-use-after-return.
12435
12436 2017-02-25 Alan Modra <amodra@gmail.com>
12437
12438 PR rtl-optimization/79584
12439 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
12440 base, not ad->base_term, the reg within base. Remove assertion
12441 that ad->base == ad->base_term. Replace gen_int_mode using
12442 bogus mode with const0_rtx.
12443
12444 2017-02-25 Jakub Jelinek <jakub@redhat.com>
12445
12446 PR middle-end/79396
12447 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
12448 FMA_EXPR like tcc_binary or tcc_unary.
12449
12450 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
12451
12452 PR debug/77589
12453 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
12454 bitfield.
12455 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
12456 (output_loc_operands): Handle DW_OP_call_ref and
12457 DW_OP_GNU_variable_value.
12458 (struct variable_value_struct): New type.
12459 (struct variable_value_hasher): Likewise.
12460 (variable_value_hash): New variable.
12461 (string_types): Remove.
12462 (copy_loc_descr): New function.
12463 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
12464 (prepend_loc_descr_to_each): New function.
12465 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
12466 instead of add_loc_descr_to_each if the first argument is single
12467 location list and the second has multiple.
12468 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
12469 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
12470 when looking for variable value which doesn't have other location info.
12471 (loc_list_from_tree): Formatting fix.
12472 (gen_array_type_die): Simplify DW_AT_string_length handling.
12473 (adjust_string_types): Remove.
12474 (gen_subprogram_die): Don't call adjust_string_types nor test/set
12475 string_types. Call resolve_variable_values.
12476 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
12477 (resolve_addr_in_expr): Likewise. Add A argument.
12478 (copy_deref_exprloc): Remove deref argument. Adjust for the
12479 original expression being DW_OP_GNU_variable_value with optionally
12480 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
12481 optionally after it.
12482 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
12483 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
12484 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
12485 (variable_value_hasher::hash, variable_value_hasher::equal): New
12486 methods.
12487 (resolve_variable_value_in_expr, resolve_variable_value,
12488 resolve_variable_values, note_variable_value_in_expr,
12489 note_variable_value): New functions.
12490 (dwarf2out_early_finish): Call note_variable_value on all toplevel
12491 DIEs.
12492
12493 2017-02-24 Jakub Jelinek <jakub@redhat.com>
12494
12495 PR c/79677
12496 * opts.h (handle_generated_option): Add GENERATED_P argument.
12497 * opts-common.c (handle_option): Adjust function comment.
12498 (handle_generated_option): Add GENERATED_P argument, pass it to
12499 handle_option.
12500 (control_warning_option): Pass false to handle_generated_option
12501 GENERATED_P.
12502 * opts.c (maybe_default_option): Pass true to handle_generated_option
12503 GENERATED_P.
12504 * optc-gen.awk: Likewise.
12505
12506 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
12507
12508 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
12509 a REG, look at the REG it is a SUBREG of.
12510 (splitter for cmpeqsi_t): Ditto.
12511
12512 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
12513
12514 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
12515 the special USEs with the pattern of the insn, not the insn itself.
12516
12517 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
12518
12519 PR target/79473
12520 * doc/invoke.texi: Document -mload-store-pairs.
12521
12522 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
12523 Sandra Loosemore <sandra@codesourcery.com>
12524
12525 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
12526 argument isn't a CONST_INT.
12527 (nios2_alternate_compare_const): Assert op is a CONST_INT.
12528 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
12529 (nios2_validate_compare): Bypass alternate compare logic if *op2
12530 is not a CONST_INT.
12531 (ldstwm_operation_p): Return false if first_base is not a REG or
12532 if first_offset is not a CONST_INT.
12533
12534 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
12535
12536 * config/cris/cris.md: Use correct operand in a define_peephole2.
12537
12538 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
12539
12540 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
12541
12542 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
12543
12544 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
12545 this_insn if it is an INSN or JUMP_INSN.
12546 (force_offsettable): Look at base, not at addr.
12547 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
12548 on things that aren't necessarily CONST_INTs.
12549
12550 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
12551
12552 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
12553 -mfpmath=sse is the default also for x86-32 targets with SSE2
12554 instruction set when @option{-ffast-math} is enabled
12555
12556 2017-02-24 Jeff Law <law@redhat.com>
12557
12558 PR rtl-optimizatoin/79286
12559 * ira.c (update_equiv_regs): Drop may_trap_p exception to
12560 dominance test.
12561
12562 2017-02-24 Richard Biener <rguenther@suse.de>
12563
12564 PR tree-optimization/79389
12565 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
12566 debug insns.
12567
12568 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
12569
12570 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
12571 function comment to reflect reality.
12572 (loop_exits_before_overflow): Fix typo in function description.
12573
12574 2017-02-24 Richard Biener <rguenther@suse.de>
12575
12576 PR tree-optimization/79389
12577 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
12578 properly that a threading opportunity exists. Detect conditional
12579 copy/constant propagation opportunities.
12580
12581 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
12582
12583 * config/visium/visium.md (type): Add trap.
12584 (b): New mode attribute.
12585 (*btst): Rename into...
12586 (*btst<mode>): ...this and adjust.
12587 (*cbranchsi4_btst_insn): Rename into...
12588 (*cbranch<mode>4_btst_insn): ...this and adjust.
12589 (trap): New define_insn.
12590
12591 2017-02-23 Jakub Jelinek <jakub@redhat.com>
12592
12593 PR tree-optimization/79389
12594 * ifcvt.c (struct noce_if_info): Add rev_cond field.
12595 (noce_reversed_cond_code): New function.
12596 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
12597 reversed_comparison_code. Formatting fix.
12598 (noce_try_store_flag): Test rev_cond != NULL in addition to
12599 reversed_comparison_code.
12600 (noce_try_store_flag_constants): Likewise.
12601 (noce_try_store_flag_mask): Likewise.
12602 (noce_try_addcc): Use rev_cond if non-NULL instead of
12603 reversed_comparison_code.
12604 (noce_try_cmove_arith): Likewise. Formatting fixes.
12605 (noce_try_minmax, noce_try_abs): Clear rev_cond.
12606 (noce_find_if_block): Initialize rev_cond.
12607 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
12608 instead of false as last argument never attempt to reverse it
12609 afterwards.
12610
12611 2017-02-23 Bin Cheng <bin.cheng@arm.com>
12612
12613 PR tree-optimization/79663
12614 * tree-predcom.c (combine_chains): Process refs in reverse order
12615 only for ZERO length chains, and add explaining comment.
12616
12617 2017-02-23 Jeff Law <law@redhat.com>
12618
12619 PR tree-optimization/79578
12620 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
12621 in call to operand_equal_p.
12622
12623 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
12624
12625 PR target/71017
12626 * config/i386/cpuid.h: Fix another undefined behavior.
12627
12628 2017-02-23 Richard Biener <rguenther@suse.de>
12629
12630 PR tree-optimization/79683
12631 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
12632 vector types for data-refs.
12633
12634 2017-02-23 Martin Liska <mliska@suse.cz>
12635
12636 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
12637
12638 2017-02-23 Jakub Jelinek <jakub@redhat.com>
12639
12640 PR middle-end/79665
12641 * internal-fn.c (get_range_pos_neg): Moved to ...
12642 * tree.c (get_range_pos_neg): ... here. No longer static.
12643 * tree.h (get_range_pos_neg): New prototype.
12644 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
12645 are known to be in between 0 and signed maximum inclusive, try to
12646 expand both unsigned and signed divmod and use the cheaper one from
12647 those.
12648
12649 2017-02-22 Jeff Law <law@redhat.com>
12650
12651 PR tree-optimization/79578
12652 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
12653 to compare base operands.
12654
12655 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
12656
12657 PR target/79211
12658 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
12659 gpc_reg_operand instead of fpr_reg_operand.
12660
12661 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
12662
12663 * config/mips/mips.c (mips_return_in_memory): Force FP
12664 vector types to be returned in memory for o32 ABI.
12665
12666 2017-02-22 Jakub Jelinek <jakub@redhat.com>
12667
12668 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
12669 instead of DW_TAG_member for static data member declarations and don't
12670 set no_linkage_name for static inline data members.
12671 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
12672 to DW_TAG_member.
12673
12674 2017-02-22 Martin Liska <mliska@suse.cz>
12675
12676 * doc/invoke.texi: Replace inequality signs with square brackets
12677 for -Wnormalized.
12678
12679 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12680
12681 PR tree-optimization/68644
12682 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
12683
12684 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
12685
12686 PR target/78660
12687 * lra-constraints.c (simplify_operand_subreg): Handle
12688 WORD_REGISTER_OPERATIONS targets.
12689
12690 2017-02-22 Jakub Jelinek <jakub@redhat.com>
12691
12692 PR target/70465
12693 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
12694 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
12695 elimination by swapping fld*.
12696
12697 2017-02-22 Richard Biener <rguenther@suse.de>
12698
12699 PR tree-optimization/79673
12700 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
12701 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
12702 irrelevant address-space qualifiers and avoiding a
12703 ADDR_SPACE_CONVERT_EXPR from fold_convert.
12704
12705 2017-02-22 Richard Biener <rguenther@suse.de>
12706
12707 PR tree-optimization/79666
12708 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
12709 to not symbolically negate if that may introduce undefined
12710 overflow.
12711
12712 2017-02-22 Martin Liska <mliska@suse.cz>
12713
12714 PR lto/79587
12715 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
12716 * data-streamer-out.c (streamer_write_gcov_count_stream):
12717 Likewise.
12718 * value-prof.c (stream_out_histogram_value): Make assert more
12719 precise based on type of counter.
12720
12721 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
12722
12723 PR target/79593
12724 * config/i386/i386.md (standard_x87sse_constant_load splitter):
12725 Use nonimmediate_operand instead of memory_operand for operand 1.
12726 (float-extend standard_x87sse_constant_load splitter): Ditto.
12727
12728 2017-02-21 Jeff Law <law@redhat.com>
12729
12730 PR tree-optimization/79621
12731 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
12732 blocks with edges to themselves.
12733
12734 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12735
12736 PR target/79633
12737 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
12738 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
12739 Use gimple_call_builtin_p.
12740
12741 PR target/79570
12742 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
12743 on temporarily removed DEBUG_INSNs.
12744
12745 PR tree-optimization/79649
12746 * tree-loop-distribution.c (classify_partition): Give up on
12747 non-generic address space loads/stores.
12748
12749 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
12750
12751 * doc/loop.texi (Loop manipulation): Remove nonexistent
12752 tree_ssa_loop_version from the documentation.
12753 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
12754
12755 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12756
12757 PR target/79494
12758 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
12759 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
12760 * config/rs6000/rs6000.c: Include except.h.
12761 (rs6000_expand_split_stack_prologue): Call
12762 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
12763
12764 2017-02-21 Martin Jambor <mjambor@suse.cz>
12765
12766 PR lto/79579
12767 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
12768 have been analyzed.
12769
12770 2017-02-21 Martin Jambor <mjambor@suse.cz>
12771
12772 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
12773 for backward compatibility only.
12774 * doc/invoke.texi (Option Summary): Remove all references to
12775 -fipa-cp-alignment.
12776
12777 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
12778
12779 PR target/78660
12780 Revert:
12781 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12782
12783 * lra-constraints.c (curr_insn_transform): Handle
12784 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
12785
12786 2017-02-21 Martin Liska <mliska@suse.cz>
12787
12788 * config/i386/i386.opt: Replace -masm-dialect with -masm.
12789
12790 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
12791
12792 PR translation/79638
12793 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
12794
12795 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
12796
12797 PR ada/67205
12798 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
12799 (arm_function_ok_for_sibcall): Return false for an indirect call by
12800 descriptor if all the argument registers are used.
12801 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
12802 alignment of the function.
12803
12804 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12805
12806 PR tree-optimization/61441
12807 * simplify-rtx.c (simplify_const_unary_operation): For
12808 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
12809 the sNaN unmodified.
12810
12811 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
12812
12813 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
12814 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
12815 instead of SYSTEM_HEADER_DIR.
12816
12817 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
12818 Martin Liška <mliska@suse.cz>
12819
12820 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
12821 Fix typos and grammar, use active voice, and clarify.
12822
12823 2017-02-20 Marek Polacek <polacek@redhat.com>
12824
12825 PR middle-end/79537
12826 * gimplify.c (gimplify_expr): Handle unused *&&L;.
12827
12828 PR sanitizer/79558
12829 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
12830
12831 2017-02-20 Jakub Jelinek <jakub@redhat.com>
12832
12833 PR target/79568
12834 * config/i386/i386.c (ix86_expand_builtin): Handle
12835 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
12836 ix86_builtins_isa[fcode].isa as a requirement of those
12837 flags and any other flag in the bitmask.
12838 (ix86_init_mmx_sse_builtins): Use 0 instead of
12839 ~OPTION_MASK_ISA_64BIT as mask.
12840 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
12841 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
12842 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
12843 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
12844
12845 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12846
12847 PR target/78012
12848 * lra-constraints.c (split_reg): Check requested split mode
12849 is supported by the register.
12850
12851 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12852
12853 * lra-constraints.c (simplify_operand_subreg): Remove early
12854 return false.
12855
12856 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12857
12858 PR target/78660
12859 * lra-constraints.c (curr_insn_transform): Tighten condition
12860 for converting SUBREG reloads from OP_OUT to OP_INOUT.
12861
12862 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12863
12864 PR target/78660
12865 * lra-constraints.c (curr_insn_transform): Handle
12866 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
12867
12868 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
12869
12870 Revert:
12871 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
12872
12873 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
12874
12875 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
12876
12877 PR c++/69523
12878 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
12879 description.
12880
12881 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12882
12883 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
12884 for FMA_EXPR.
12885
12886 2017-02-18 Jakub Jelinek <jakub@redhat.com>
12887
12888 * final.c (last_columnnum, override_columnnum): New variables.
12889 (final_start_function): Set last_columnnum, pass it to begin_prologue
12890 hook and pass 0 to dwarf2out_begin_prologue.
12891 (final_scan_insn): Update override_columnnum. Pass last_columnnum
12892 to source_line debug hook.
12893 (notice_source_line): Compute last_columnnum and for debug_column_info
12894 return true on column changes.
12895 * debug.h (struct gcc_debug_hooks): Add column argument to
12896 source_line and begin_prologue hooks.
12897 (debug_nothing_int_charstar_int_bool): Remove prototype.
12898 (debug_nothing_int_int_charstar,
12899 debug_nothing_int_int_charstar_int_bool): New prototypes.
12900 (dwarf2out_begin_prologue): Add column argument.
12901 * debug.c (do_nothing_debug_hooks): Adjust source_line and
12902 begin_prologue hooks.
12903 (debug_nothing_int_charstar_int_bool): Remove.
12904 (debug_nothing_int_int_charstar,
12905 debug_nothing_int_int_charstar_int_bool): New functions.
12906 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
12907 through to dwarf2out_source_line.
12908 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
12909 (dwarf2out_source_line): Add column argument, emit it if requested.
12910 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
12911 arguments.
12912 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
12913 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
12914 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
12915 through to dwarf2out_begin_prologue.
12916 (vmsdbgout_source_line): Add column argument, pass it through to
12917 dwarf2out_source_line.
12918 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
12919 dbxout_source_line caller.
12920 (dbxout_source_line): Add column argument.
12921
12922 * common.opt (gno-column-info, gcolumn-info): New options.
12923 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
12924 (check_die): Also test for multiple DW_AT_decl_column attributes.
12925 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
12926 DW_AT_decl_column if requested.
12927 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
12928 if requested.
12929 (gen_variable_die): Likewise.
12930 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
12931 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
12932
12933 PR target/79569
12934 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
12935 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
12936 (ix86_handle_option): Handle OPT_m3dnowa.
12937 * doc/invoke.texi (-m3dnowa): Document.
12938 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
12939 -m3dnowa instead of -m3dnow -march=athlon.
12940
12941 PR target/79559
12942 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
12943 instead of gcc_assert for K, r and R code checks. Formatting fixes.
12944
12945 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12946
12947 PR target/79261
12948 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
12949 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
12950 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
12951 generator for vsx_xxpermdi_<mode>_be.
12952 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
12953 force big-endian semantics.
12954 (vsx_xxpermdi_<mode>_be): New define_expand with same
12955 implementation as previous version of vsx_xxpermdi_<mode>.
12956
12957 2017-02-17 Jakub Jelinek <jakub@redhat.com>
12958
12959 PR tree-optimization/79327
12960 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
12961 variable, its initialization and use.
12962
12963 2017-02-17 Julia Koval <julia.koval@intel.com>
12964
12965 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
12966 (OPTION_MASK_ISA_PKU_UNSET): New.
12967 (ix86_handle_option): Handle -mrdpid.
12968 * config/i386/cpuid.h (bit_RDPID): New.
12969 * config/i386/driver-i386.c (host_detect_local_cpu):
12970 Detect RDPID feature.
12971 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
12972 * config/i386/i386-c.c (ix86_target_macros_internal):
12973 Handle RDPID flag.
12974 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
12975 (ix86_valid_target_attribute_inner_p): Add "rdpid".
12976 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
12977 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
12978 * config/i386/i386.md (define_insn "rdpid"): New.
12979 * config/i386/i386.opt Add -mrdpid.
12980 * config/i386/immintrin.h (_rdpid_u32): New.
12981
12982 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
12983
12984 PR rtl-optimization/79541
12985 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
12986 instead of transforming it into USE.
12987
12988 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
12989
12990 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
12991 If HONOR_SNANS (SFmode) force the input to a register.
12992 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
12993 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
12994 an frsp or similar insn.
12995
12996 2017-02-17 Martin Liska <mliska@suse.cz>
12997
12998 PR rtl-optimization/79577
12999 * params.def (selsched-max-sched-times): Increase minimum to 1.
13000
13001 2017-02-17 Martin Liska <mliska@suse.cz>
13002
13003 PR rtl-optimization/79574
13004 * gcse.c (want_to_gcse_p): Prevent integer overflow.
13005
13006 2017-02-17 Martin Liska <mliska@suse.cz>
13007
13008 PR tree-optimization/79529
13009 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
13010 ssa_defined_default_def_p to handle cases which are implicitly
13011 defined.
13012 * tree-ssa.c (ssa_defined_default_def_p): New function.
13013 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
13014 which are implicitly defined.
13015 * tree-ssa.h (ssa_defined_default_def_p): Declare.
13016
13017 2017-02-17 Richard Biener <rguenther@suse.de>
13018
13019 PR middle-end/79576
13020 * params.def (max-ssa-name-query-depth): Limit to 10.
13021
13022 2017-02-17 Richard Biener <rguenther@suse.de>
13023
13024 PR tree-optimization/79552
13025 * tree-ssa-structalias.c (visit_loadstore): Properly verify
13026 default defs.
13027
13028 2017-02-17 Richard Biener <rguenther@suse.de>
13029
13030 PR bootstrap/79567
13031 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
13032
13033 2017-02-17 Marek Polacek <polacek@redhat.com>
13034
13035 PR middle-end/79536
13036 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
13037 (fold_negate_expr): New wrapper.
13038
13039 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
13040
13041 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
13042 Correct terminology and de-emphasize pre-standard behavior.
13043
13044 2017-02-16 Alan Modra <amodra@gmail.com>
13045
13046 PR rtl-optimization/79286
13047 * ira.c (def_dominates_uses): New function.
13048 (update_equiv_regs): Don't create an equivalence for insns that
13049 may trap where the register def does not dominate the use.
13050
13051 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
13052
13053 PR rtl-optimization/78127
13054 * lra.c (lra): Call lra_eliminate before finish the loop after
13055 lra_constraint.
13056
13057 2017-02-16 Richard Biener <rguenther@suse.de>
13058
13059 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
13060 isl/isl_val.h.
13061 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
13062 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
13063 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
13064 (isl_val_int_from_wi): New function.
13065 (extract_affine_gmp): Rename to ...
13066 (extract_affine_wi): ... this, take a widest_int.
13067 (extract_affine_int): Just wrap extract_affine_wi.
13068 (add_param_constraints): Use isl_val_int_from_wi.
13069 (add_loop_constraints): Likewise, and extract_affine_wi.
13070
13071 2017-02-15 Jeff Law <law@redhat.com>
13072
13073 PR middle-end/79521
13074 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
13075 ira_init_register_move_cost_if_necessary.
13076
13077 2017-02-15 Martin Sebor <msebor@redhat.com>
13078
13079 PR middle-end/32003
13080 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
13081 removed in a prior commit.
13082
13083 2017-02-15 Bin Cheng <bin.cheng@arm.com>
13084
13085 PR tree-optimization/79347
13086 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
13087 counters during peeling.
13088
13089 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
13090
13091 * Makefile.in (site.exp): Remove "set ISLVER".
13092
13093 2017-02-15 Jakub Jelinek <jakub@redhat.com>
13094
13095 PR target/79487
13096 * real.c (real_from_integer): Call real_convert even for decimal.
13097
13098 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
13099
13100 PR target/79421
13101 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
13102
13103 2017-02-14 Andrew Pinski <apinski@cavium.com>
13104
13105 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
13106 cores and change the partno/implementer to be correct.
13107 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
13108 the 'B" as the implementer.
13109 * config/aarch64/aarch64-tune.md: Regenerate.
13110
13111 2017-02-14 Carl Love <cel@us.ibm.com>
13112
13113 * config/rs6000/rs6000.c: Add case statement entry to make the
13114 xvcvuxdsp built-in argument unsigned.
13115 * config/rs6000/vsx.md: Fix the source and return operand types so they
13116 match the instruction definitions from the ISA document. Fix typo
13117 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
13118 statement.
13119
13120 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
13121
13122 PR target/79282
13123 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
13124 member early_clobber_alts.
13125 * lra-lives.c (reg_early_clobber_p): New.
13126 (process_bb_lives): Use it.
13127 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
13128 (debug_operand_data): Initialize early_clobber_alts.
13129 (setup_operand_alternative): Set up early_clobber_alts.
13130 (collect_non_operand_hard_regs): Ditto. Pass early clobber
13131 alternatives to new_insn_reg.
13132 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
13133 it.
13134 (lra_update_insn_regno_info): Pass the new arg.
13135
13136 2017-02-14 Jakub Jelinek <jakub@redhat.com>
13137
13138 PR middle-end/79505
13139 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
13140 (new_oacc_loop_raw): Don't clear already cleared fields.
13141
13142 PR target/79481
13143 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
13144 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
13145 _mm512_prefetch_i64gather_ps): New inline functions and macros.
13146
13147 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
13148
13149 PR target/79495
13150 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
13151
13152 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
13153
13154 PR target/79498
13155 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
13156 the extra instruction to the right place to store 128-bit constant
13157 when needed.
13158
13159 2017-02-14 Martin Sebor <msebor@redhat.com>
13160
13161 PR middle-end/79448
13162 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
13163 warning for strings of unknown length.
13164
13165 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
13166
13167 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
13168
13169 2017-02-14 Jeff Law <law@redhat.com>
13170
13171 PR target/79404
13172 * ira-costs.c (scan_one_insn): Initialize register move costs
13173 for pseudos seen in USE/CLOBBER insns.
13174
13175 PR tree-optimization/79095
13176 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
13177 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
13178 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
13179 if the operands are known to be not equal, then the resulting range
13180 is ~[0,0].
13181 (intersect_ranges): If the new range is ~[0,0] and the old range is
13182 wide, then prefer ~[0,0].
13183 * tree-vrp.c (overflow_comparison_p_1): New function.
13184 (overflow_comparison_p): New function.
13185 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
13186 if NAME is used in an overflow test.
13187 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
13188 overflow check that can be expressed as an equality test, then adjust
13189 ops to be that equality test.
13190
13191 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13192
13193 * config/s390/s390-builtin-types.def: Remove flags argument.
13194 * config/s390/s390.c (s390_init_builtins): Likewise.
13195
13196 2017-02-14 Martin Liska <mliska@suse.cz>
13197
13198 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
13199 vector. Fix trailing white spaces.
13200
13201 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
13202
13203 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
13204 HFmode.
13205
13206 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13207
13208 PR rtl-optimization/68664
13209 * config/arm/arm.c (arm_sched_can_speculate_insn):
13210 New function. Declare prototype.
13211 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
13212
13213 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13214
13215 PR rtl-optimization/68664
13216 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
13217 New function.
13218 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
13219
13220 2017-02-14 Amit Pawar <amit.pawar@amd.com>
13221
13222 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
13223 max skip bytes for function, loop and jump.
13224
13225 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13226
13227 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
13228 ABS_EXPR for gimple dump.
13229
13230 2017-02-14 Jakub Jelinek <jakub@redhat.com>
13231
13232 PR target/79462
13233 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
13234
13235 PR tree-optimization/79408
13236 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
13237 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
13238 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
13239 also if rhs1 is INTEGER_CST.
13240
13241 2017-02-14 Richard Biener <rguenther@suse.de>
13242
13243 PR middle-end/79432
13244 * tree-into-ssa.c (insert_phi_nodes): When the function can
13245 have abnormal edges rewrite SSA names with broken use-def
13246 dominance out of SSA and register them for PHI insertion.
13247
13248 2017-02-13 Martin Sebor <msebor@redhat.com>
13249
13250 PR middle-end/79496
13251 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
13252 clearing info.nowrite flag when snprintf size argument is a range.
13253
13254 2017-02-13 Jakub Jelinek <jakub@redhat.com>
13255
13256 * cprop.c (cprop_jump): Add missing space in string literal.
13257 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
13258 (get_constraint_for_component_ref): Likewise.
13259 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
13260 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
13261 * lra-constraints.c (process_alt_operands): Likewise.
13262 * ipa-inline.c (inline_small_functions): Likewise.
13263 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
13264 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
13265 * trans-mem.c (diagnose_tm_1_op): Likewise.
13266 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
13267 (grid_parallel_clauses_gridifiable): Likewise.
13268
13269 * config/nvptx/mkoffload.c (process): Add space in between
13270 , and %d.
13271
13272 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
13273 "MOD4_SSE_REGS" and "ALL_REGS".
13274
13275 * spellcheck.c (test_data): Add , in between "foo" and "food".
13276
13277 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
13278
13279 PR target/79449
13280 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
13281 boundary crossing check and subsequent code generation agree.
13282
13283 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13284
13285 * config/aarch64/aarch64.c (has_memory_op): Delete.
13286 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
13287 has_memory_op.
13288
13289 2017-02-13 Jakub Jelinek <jakub@redhat.com>
13290
13291 PR rtl-optimization/79388
13292 PR rtl-optimization/79450
13293 * combine.c (distribute_notes): When removing TEM_INSN for which
13294 corresponding dest has last value recorded, invalidate that last
13295 value.
13296
13297 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13298
13299 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
13300 of explicit '@'. Add missing assembly comment marker on branch costs
13301 printout.
13302
13303 2017-02-13 Nathan Sidwell <nathan@acm.org>
13304
13305 * gengtype-lex.l (<in_struct>): Add '/'.
13306
13307 2017-02-13 Martin Liska <mliska@suse.cz>
13308
13309 PR c/79471
13310 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
13311
13312 2017-02-13 Richard Biener <rguenther@suse.de>
13313
13314 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
13315 Remove.
13316 * configure: Re-generate.
13317 * config.in: Likewise.
13318 * graphite-dependences.c: Simplify as if
13319 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
13320 * graphite-isl-ast-to-gimple.c: Likewise.
13321 * graphite-optimize-isl.c: Likewise.
13322 * graphite-poly.c: Likewise.
13323 * graphite-sese-to-poly.c: Likewise.
13324 * graphite.h: Likewise.
13325 * toplev.c: Include isl/version.h and use isl_version () for
13326 printing the ISL version.
13327 * doc/install.texi: Update ISL requirement.
13328
13329 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
13330
13331 * doc/standards.texi (Standards): Update reference to
13332 Objective-C 2.0.
13333
13334 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
13335
13336 * doc/extend.texi (Named Address Spaces): sourceware.org now
13337 defaults to https.
13338 * doc/install.texi (Binaries): Ditto.
13339 (Specific): Ditto.
13340
13341 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
13342
13343 * doc/cpp.texi: Replace "stringify"/"stringification" with C
13344 standard terminology "stringize"/"stringizing" throughout.
13345 * doc/cppinternals.texi: Likewise.
13346
13347 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
13348
13349 * doc/extend.texi: Fix some spelling mistakes and typos.
13350 * doc/invoke.texi: Likewise.
13351
13352 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
13353
13354 PR ipa/79224
13355 * params.def (inline-min-speedup) Change from 10 to 8.
13356
13357 2017-02-11 Jakub Jelinek <jakub@redhat.com>
13358
13359 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
13360 4.5.
13361
13362 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
13363
13364 PR ipa/79224
13365 * ipa-inline-analysis.c (get_minimal_bb): New function.
13366 (record_modified): Use it.
13367 (remap_edge_change_prob): Handle also ancestor functions.
13368
13369 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
13370
13371 * doc/contrib.texi (Contributors): Remove broken link into
13372 the Mauve CVS repository.
13373
13374 2017-02-11 Jakub Jelinek <jakub@redhat.com>
13375
13376 PR middle-end/79454
13377 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
13378 result computation whenever lhs doesn't have vector mode, not
13379 just when it has BLKmode.
13380
13381 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
13382
13383 * doc/makefile.texi (profiledbootstrap): Refer to the
13384 installation instructions only in textual form.
13385
13386 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
13387
13388 PR target/79295
13389 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
13390
13391 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
13392
13393 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
13394 (Specific): Update mingw-w64 reference.
13395 (Binaries): Ditto.
13396 (Specific): Remove broken link to Renesas RX processor.
13397
13398 2017-02-10 Richard Biener <rguenther@suse.de>
13399
13400 * toplev.c (process_options): Do not mention obsolete graphite
13401 options when printing sorry message about missing graphite support.
13402 Mention -floop-nest-optimize.
13403
13404 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
13405
13406 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
13407 (vtst_p16): Likewise.
13408 (vtstq_p8): Likewise.
13409 (vtstq_p16): Likewise.
13410 (vtst_p64): New.
13411 (vtstq_p64): Likewise.
13412 * config/arm/arm_neon.h (vgetq_lane_p64): New.
13413 (vset_lane_p64): New.
13414 (vsetq_lane_p64): New.
13415
13416 2017-02-10 Jakub Jelinek <jakub@redhat.com>
13417
13418 PR tree-optimization/79411
13419 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
13420 stmt operands are SSA_NAMEs used in abnormal phis.
13421 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
13422 phis.
13423
13424 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
13425
13426 PR ipa/70795
13427 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
13428 flag if needed.
13429
13430 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
13431
13432 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
13433
13434 2017-02-09 Jakub Jelinek <jakub@redhat.com>
13435
13436 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
13437 to avoid warning.
13438
13439 PR c/79413
13440 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
13441 not arbitrary TREE_CONSTANT.
13442
13443 PR c/79431
13444 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
13445 "omp declare target link" attribute unless is_global_var.
13446 * omp-offload.c (find_link_var_op): Likewise.
13447
13448 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
13449 Chung-Lin Tang <cltang@codesourcery.com>
13450
13451 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
13452 OMP_CLAUSE_TILE.
13453 (gimplify_adjust_omp_clauses): Don't delete TILE.
13454 (gimplify_omp_for): Deal with TILE.
13455 * internal-fn.c (expand_GOACC_TILE): New function.
13456 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
13457 (GOACC_TILE): New.
13458 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
13459 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
13460 element fields.
13461 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
13462 avoid DIV for outermost collapse var.
13463 (expand_oacc_for): Insert tile element loop as needed. Adjust.
13464 Remove out of date comments, fix whitespace.
13465 * omp-general.c (omp_extract_for_data): Deal with tiling.
13466 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
13467 adjust OLF_DIM_BASE value.
13468 (struct omp_for_data): Add tiling field.
13469 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
13470 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
13471 for auto loops. Remove default auto determining, moved to
13472 oacc_loop_fixed_partitions.
13473 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
13474 stmts, add e_mask field.
13475 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
13476 (oacc_thread_numbers): Use oacc_dim_call.
13477 (oacc_xform_tile): New.
13478 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
13479 (finish_oacc_loop): Adjust for ifns vector.
13480 (oacc_loop_discover_walk): Append loop abstraction sites to list,
13481 add case for GOACC_TILE fns.
13482 (oacc_loop_xform_loop): Delete.
13483 (oacc_loop_process): Iterate over call list directly, and add
13484 handling for GOACC_TILE fns.
13485 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
13486 dump partitioning.
13487 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
13488 vector partitioning to outer loops. Assign 2 partitions to loops
13489 when available. Add TILE handling.
13490 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
13491 (execite_oacc_device_lower): Process GOACC_TILE fns,
13492 ignore unknown specs.
13493 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
13494 * tree.c (omp_clause_num_ops): Adjust TILE ops.
13495 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
13496
13497 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
13498
13499 * configure.ac (ACX_BUGURL): Update.
13500 * configure: Regenerate.
13501
13502 2017-02-09 Richard Biener <rguenther@suse.de>
13503
13504 PR tree-optimization/69823
13505 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
13506 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
13507
13508 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
13509
13510 * config/arc/arc-c.def: Add __NPS400__ definition.
13511 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
13512 (TARGET_NPS400): Define.
13513
13514 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
13515
13516 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
13517 file.
13518 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
13519 pointer, arch_info.
13520 (arc_cpu_types): Fill the arch_info field with a pointer into the
13521 arc_arch_types table.
13522 (arc_selected_cpu): Declare.
13523 * config/arc/arc.c (arc_selected_cpu): Make global.
13524 (arc_selected_arch): Delete.
13525 (arc_base_cpu): Delete.
13526 (arc_override_options): Remove references to deleted variables,
13527 update access to arch information.
13528 (ARC_OPT): Update access to arch information.
13529 (ARC_OPTX): Likewise.
13530 * config/arc/arc.h (arc_base_cpu): Remove declaration.
13531 (TARGET_ARC600): Update access to arch information.
13532 (TARGET_ARC601): Likewise.
13533 (TARGET_ARC700): Likewise.
13534 (TARGET_EM): Likewise.
13535 (TARGET_HS): Likewise.
13536 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
13537 information.
13538
13539 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
13540
13541 PR target/78604
13542 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
13543 condition/operands for integer GE/LE/GEU/LEU operations.
13544
13545 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
13546
13547 PR translation/79397
13548 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
13549 of AltiVec.
13550
13551 2017-02-08 Martin Jambor <mjambor@suse.cz>
13552
13553 PR ipa/79375
13554 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
13555 whether allocation happened.
13556 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
13557 nothing was allocated.
13558
13559 2017-02-08 Jakub Jelinek <jakub@redhat.com>
13560
13561 PR tree-optimization/79408
13562 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
13563 constant, but SSA_NAME with a known integer range, use the minimum
13564 of that range instead of op1 to determine if modulo can be replaced
13565 with its first operand.
13566
13567 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13568
13569 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
13570
13571 2017-02-08 Richard Biener <rguenther@suse.de>
13572
13573 PR tree-optimization/71824
13574 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
13575 Check all loops contained in the merged region.
13576
13577 2017-02-07 Andrew Pinski <apinski@cavium.com>
13578
13579 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
13580
13581 2017-02-07 Andrew Pinski <apinski@cavium.com>
13582
13583 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
13584 (thunderxt88): Likewise.
13585 (thunderxt81): Disable LSE and change v8.1 to v8.
13586 (thunderxt83): Likewise.
13587
13588 2017-02-07 Jakub Jelinek <jakub@redhat.com>
13589 Richard Biener <rguenther@suse.de>
13590
13591 PR middle-end/79399
13592 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
13593 type from int to size_t.
13594 * ira-costs.c (struct_costs_size): Change type from int to size_t.
13595
13596 2017-02-07 Jakub Jelinek <jakub@redhat.com>
13597
13598 PR rtl-optimization/79386
13599 * cprop.c (bypass_conditional_jumps): Initialize
13600 bypass_last_basic_block already before splitting bbs after
13601 unconditional traps...
13602 (bypass_conditional_jumps): ... rather than here.
13603
13604 PR target/79299
13605 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
13606 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
13607 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
13608 fix -masm=intel patterns.
13609
13610 2017-02-07 Richard Biener <rguenther@suse.de>
13611
13612 PR tree-optimization/79256
13613 PR middle-end/79278
13614 * builtins.c (get_object_alignment_2): Use min_align_of_type
13615 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
13616 and ADJUST_FIELD_ALIGN.
13617
13618 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
13619 type parameter.
13620 * doc/tm.texi: Regenerate.
13621 * stor-layout.c (layout_decl): Adjust.
13622 (update_alignment_for_field): Likewise.
13623 (place_field): Likewise.
13624 (min_align_of_type): Likewise.
13625 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
13626 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
13627 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
13628 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
13629 * config/frv/frv.c (frv_adjust_field_align): Likewise.
13630 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
13631 * config/i386/i386.c (x86_field_alignment): Likewise.
13632 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
13633 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
13634 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
13635 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
13636 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
13637 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
13638 Likewise.
13639
13640 Revert
13641 2017-01-30 Richard Biener <rguenther@suse.de>
13642
13643 PR tree-optimization/79256
13644 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
13645 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
13646 alignment on TYPE.
13647
13648 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
13649
13650 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
13651 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
13652 builtins to SImode and emit a zero-extend, if necessary.
13653
13654 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
13655
13656 * docs/invoke.texi (RISC-V Options): Alphabetize.
13657
13658 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
13659
13660 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
13661 options.
13662
13663 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
13664
13665 * config/riscv/riscv.c: New file.
13666 * gcc/common/config/riscv/riscv-common.c: Likewise.
13667 * config.gcc: Likewise.
13668 * config/riscv/constraints.md: Likewise.
13669 * config/riscv/elf.h: Likewise.
13670 * config/riscv/generic.md: Likewise.
13671 * config/riscv/linux.h: Likewise.
13672 * config/riscv/multilib-generator: Likewise.
13673 * config/riscv/peephole.md: Likewise.
13674 * config/riscv/pic.md: Likewise.
13675 * config/riscv/predicates.md: Likewise.
13676 * config/riscv/riscv-builtins.c: Likewise.
13677 * config/riscv/riscv-c.c: Likewise.
13678 * config/riscv/riscv-ftypes.def: Likewise.
13679 * config/riscv/riscv-modes.def: Likewise.
13680 * config/riscv/riscv-opts.h: Likewise.
13681 * config/riscv/riscv-protos.h: Likewise.
13682 * config/riscv/riscv.h: Likewise.
13683 * config/riscv/riscv.md: Likewise.
13684 * config/riscv/riscv.opt: Likewise.
13685 * config/riscv/sync.md: Likewise.
13686 * config/riscv/t-elf-multilib: Likewise.
13687 * config/riscv/t-linux: Likewise.
13688 * config/riscv/t-linux-multilib: Likewise.
13689 * config/riscv/t-riscv: Likewise.
13690 * configure.ac: Likewise.
13691 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
13692 Waterman as RISC-V maintainers.
13693 * doc/install.texi: Add RISC-V entries.
13694 * doc/invoke.texi: Add RISC-V options section.
13695 * doc/md.texi: Add RISC-V constraints section.
13696 * configure: Regenerated.
13697
13698 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
13699
13700 PR target/66144
13701 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
13702 false values to be constant vectors with all 0 or all 1 bits set.
13703 (vcondu<mode><mode>): Likewise.
13704 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
13705 predicate.
13706 (fpmask_comparison_operator): Update comment.
13707 (vecint_comparison_operator): New predicate.
13708 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
13709 vector conditionals when the true and false values are constant
13710 vectors with all 0 bits or all 1 bits set.
13711
13712 2017-02-06 Martin Sebor <msebor@redhat.com>
13713
13714 PR tree-optimization/79376
13715 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
13716
13717 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
13718
13719 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
13720 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
13721 to simplify split condition.
13722
13723 2017-02-06 Jakub Jelinek <jakub@redhat.com>
13724
13725 * omp-expand.c (oxpand_omp_atomic_fetch_op,
13726 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
13727 false.
13728
13729 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
13730
13731 PR rtl-optimization/68664
13732 * target.def (can_speculate_insn): New hook.
13733 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
13734 * doc/tm.texi: Regenerate.
13735 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
13736 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
13737 (rs6000_sched_can_speculate_insn): New function.
13738
13739 2017-02-06 Jakub Jelinek <jakub@redhat.com>
13740
13741 PR tree-optimization/79284
13742 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
13743 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
13744 vectorizable_mask_load_store, vectorizable_operation,
13745 vect_is_simple_cond, get_same_sized_vectype): Use it instead
13746 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
13747 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
13748 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
13749 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
13750 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
13751 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
13752 is_gimple_assign (stmt). Replace another such test with
13753 is_gimple_assign (stmt).
13754
13755 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
13756
13757 PR target/78883
13758 * config/avr/avr.c (rtl-iter.h): Include it.
13759 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
13760 (avr_legitimate_combined_insn): ...and implementation.
13761
13762 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
13763
13764 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
13765 * config/s390/s390.c (s390_const_operand_ok)
13766 (s390_canonicalize_comparison, s390_extract_part)
13767 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
13768 (s390_contiguous_bitmask_p, s390_rtx_costs)
13769 (legitimize_pic_address): Likewise.
13770 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
13771 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
13772 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
13773 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
13774 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
13775
13776 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
13777
13778 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
13779 REGNO($0) == REGNO($1).
13780
13781 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13782
13783 * config/s390/linux.h(SIZE_TYPE): Add comment.
13784
13785 2017-02-06 Julian Brown <julian@codesourcery.com>
13786 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13787 Virendra Pathak <virendra.pathak@broadcom.com>
13788
13789 * config/aarch64/aarch64-cores.def: Change the scheduler
13790 to Thunderx2t99.
13791 * config/aarch64/aarch64.md: Include thunderx2t99.md.
13792 * config/aarch64/thunderx2t99.md: New file.
13793
13794 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13795
13796 * doc/standards.texi (Go Language): Update link to language
13797 standard.
13798
13799 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
13800
13801 * tree-eh.c (lower_resx): Sanitize profile.
13802 (cleanup_empty_eh_move_lp): Likewise.
13803
13804 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
13805
13806 PR tree-ssa/79347
13807 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
13808 ELSE_PROB.
13809 * cfgloopmanip.h (loop_version): Update prototype.
13810 * modulo-sched.c (sms_schedule): Update call of loop_version.
13811 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
13812 * tree-parloops.c (gen_parallel_loop): Likewise.
13813 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
13814 * tree-ssa-loop-split.c (split_loop): Likewise.
13815 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
13816 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
13817
13818 2017-02-05 Martin Liska <mliska@suse.cz>
13819
13820 PR bootstrap/78985
13821 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
13822 variable to NULL.
13823 (print_operand_address): Initialize a struct to zero.
13824
13825 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13826
13827 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
13828 garbage collector only in textual form.
13829
13830 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13831
13832 * doc/extend.texi (x86 specific memory model extensions for
13833 transactional memory): Simplify a phrase.
13834
13835 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
13836
13837 PR target/79353
13838 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
13839 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
13840 (atomic_storedi_1): Likewise.
13841
13842 2017-02-04 Jakub Jelinek <jakub@redhat.com>
13843
13844 PR tree-optimization/79338
13845 * tree-parloops.c (gather_scalar_reductions): Don't call
13846 vect_analyze_loop_form for loop->inner before destroying loop's
13847 loop_vinfo.
13848
13849 2017-02-03 Martin Sebor <msebor@redhat.com>
13850
13851 PR tree-optimization/79327
13852 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
13853 when precision has resulted in leading zeros.
13854 (format_integer): Adjust the likely counter to assume an unknown
13855 argument that may be zero is non-zero.
13856
13857 2017-02-03 Jason Merrill <jason@redhat.com>
13858
13859 PR c++/78689
13860 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
13861 avoid copying non-taken branch.
13862
13863 2017-02-03 Jakub Jelinek <jakub@redhat.com>
13864
13865 PR tree-optimization/79340
13866 * tree-vect-loop.c (vectorizable_reduction): Release
13867 vec_defs elements after safe_splicing them into other vectors.
13868 Formatting fixes.
13869
13870 PR tree-optimization/79327
13871 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
13872 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
13873 dirtype.
13874 (format_integer): Use wide_int_to_tree instead of build_int_cst
13875 + to_?hwi. If argmin is NULL, just set argmin and argmax to
13876 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
13877 of shortest and longest sequence.
13878
13879 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
13880
13881 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
13882 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
13883
13884 2017-02-03 Walter Lee <walt@tilera.com>
13885
13886 PR target/78862
13887 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
13888 after initial stackframe link reg save.
13889 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
13890
13891 2017-02-03 Jakub Jelinek <jakub@redhat.com>
13892
13893 PR target/79354
13894 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
13895 wu for stxssp alternative.
13896
13897 2017-02-03 Martin Sebor <msebor@redhat.com>
13898
13899 PR tree-optimization/79352
13900 * gimple-fold.c (get_range_strlen): Add argument.
13901 (get_range_strlen): Change return type to bool.
13902 (get_maxval_strlen): Pass in a dummy argument.
13903 * gimple-fold.h (get_range_strlen): Change return type to bool.
13904 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
13905 * tree.h (array_at_struct_end_p): Add argument.
13906 * tree.c (array_at_struct_end_p): Handle it.
13907
13908 2017-02-03 Martin Liska <mliska@suse.cz>
13909
13910 PR lto/66295
13911 * multiple_target.c (create_dispatcher_calls): Redirect edge
13912 from a caller of a dispatcher.
13913 (expand_target_clones): Make the clones local.
13914 (ipa_target_clone): Do both target clones and resolvers.
13915 (ipa_dispatcher_calls): Remove the pass.
13916 (pass_dispatcher_calls::gate): Likewise.
13917 (make_pass_dispatcher_calls): Likewise.
13918 * passes.def (pass_target_clone): Put as very first IPA early
13919 pass.
13920
13921 2017-02-03 Martin Liska <mliska@suse.cz>
13922
13923 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
13924 in case of a function with ifunc attribute.
13925
13926 2017-02-03 Martin Liska <mliska@suse.cz>
13927
13928 * cgraph.c (cgraph_node::dump): Dump function version info.
13929 * symtab.c (symtab_node::dump_base): Add missing new line.
13930
13931 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
13932
13933 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
13934 (ifcombine_ifandif): Use it.
13935
13936 2017-02-03 Martin Liska <mliska@suse.cz>
13937
13938 * doc/invoke.texi: Document default value for
13939 use-after-scope-direct-emission-threshold.
13940
13941 2017-02-03 Martin Liska <mliska@suse.cz>
13942
13943 PR tree-optimization/79339
13944 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
13945 (format_floating): Likewise.
13946
13947 2017-02-03 Martin Liska <mliska@suse.cz>
13948
13949 PR ipa/79337
13950 * ipa-prop.c (ipa_node_params_t::insert): Remove current
13951 implementation.
13952 (ipa_node_params_t::remove): Likewise.
13953 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
13954 initialization from removed ipa_node_params_t::insert.
13955 (ipa_node_params::~ipa_node_params): Move from removed
13956 ipa_node_params_t::release.
13957 * symbol-summary.h (symbol_summary::m_released): New member.
13958 Do not release a summary twice. Do not allow to call finalizer
13959 for types of a summary that live in GGC memory.
13960
13961 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13962
13963 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
13964 cmp_branch fusion.
13965
13966 2017-02-02 Martin Sebor <msebor@redhat.com>
13967
13968 PR middle-end/79275
13969 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
13970 (format_string): Tighten up the range of output for non-constant
13971 strings and correct the expected range for wide non-constant strings.
13972
13973 2017-02-02 Martin Sebor <msebor@redhat.com>
13974
13975 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
13976
13977 PR middle-end/32003
13978 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
13979 index.
13980 (-fdump-tree-@var): Add to index and document how to come up
13981 with pass-specific option and dump file names.
13982 (-fdump-passes): Clarify where to look for output.
13983
13984 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
13985
13986 PR middle-end/77445
13987 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
13988 statistics of the analyzed path; allow threading for speed when
13989 any of BBs along the path are optimized for speed.
13990
13991 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
13992
13993 PR middle-end/78468
13994 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
13995 settings of the virtual registers.
13996
13997 Revert again
13998 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
13999
14000 * explow.c (get_dynamic_stack_size): Take known alignment of stack
14001 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
14002 needed.
14003
14004 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14005
14006 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
14007 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
14008
14009 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14010
14011 * config/s390/s390.md: Add missing comments with the expanded
14012 mnemonics.
14013 * config/s390/vector.md: Likewise.
14014 * config/s390/vx-builtins.md: Likewise.
14015
14016 2017-02-02 Jakub Jelinek <jakub@redhat.com>
14017
14018 PR target/79197
14019 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
14020 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
14021 conditions on a single line.
14022
14023 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14024
14025 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
14026 __S390_VX__ to __VX__.
14027
14028 2017-02-01 Andrew Pinski <apinski@cavium.com>
14029
14030 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
14031 stmt_info to record_stmt_cost.
14032 (vect_get_known_peeling_cost): Pass stmt_info if known to
14033 record_stmt_cost.
14034 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
14035 cpu_vector_cost field into
14036 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
14037 field into vec_int_stmt_cost and vec_fp_stmt_cost.
14038 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
14039 splitting of scalar_stmt_cost and vec_stmt_cost.
14040 (thunderx_vector_cost): Likewise.
14041 (cortexa57_vector_cost): LIkewise.
14042 (exynosm1_vector_cost): Likewise.
14043 (xgene1_vector_cost): Likewise.
14044 (thunderx2t99_vector_cost): Improve after the splitting of the two
14045 fields.
14046 (aarch64_builtin_vectorization_cost): Update for the splitting of
14047 scalar_stmt_cost and vec_stmt_cost.
14048
14049 2017-02-01 Torvald Riegel <triegel@redhat.com>
14050 Richard Henderson <rth@redhat.com>
14051
14052 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
14053 conditional on existance of a fast atomic load.
14054 * optabs-query.c (can_atomic_load_p): New function.
14055 * optabs-query.h (can_atomic_load_p): Declare it.
14056 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
14057 no fast atomic load is available for the particular size of access.
14058 (expand_atomic_compare_and_swap): Likewise.
14059 (expand_atomic_load): Likewise.
14060 (expand_atomic_store): Likewise.
14061 (expand_atomic_fetch_op): Likewise.
14062 * testsuite/lib/target-supports.exp
14063 (check_effective_target_sync_int_128): Remove x86 because it provides
14064 no fast atomic load.
14065 (check_effective_target_sync_int_128_runtime): Likewise.
14066
14067 2017-02-01 Richard Biener <rguenther@suse.de>
14068
14069 * graphite.c: Include tree-vectorizer.h for find_loop_location.
14070 (graphite_transform_loops): Provide opt-info for optimized nests.
14071 * tree-parloop.c (parallelize_loops): Provide opt-info for
14072 parallelized loops.
14073
14074 2017-02-01 Richard Biener <rguenther@suse.de>
14075
14076 PR middle-end/79315
14077 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
14078 was not set before.
14079
14080 2017-02-01 Richard Biener <rguenther@suse.de>
14081
14082 PR tree-optimization/71824
14083 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
14084 Verify the loops are valid in the merged SESE region.
14085 (scop_detection::can_represent_loop_1): Check analyzing the
14086 evolution of the number of iterations in the region succeeds.
14087
14088 2017-01-31 Ian Lance Taylor <iant@golang.org>
14089
14090 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
14091 REG_ARGS_SIZE note to 32-bit push insns and call insn.
14092
14093 2017-01-31 David Malcolm <dmalcolm@redhat.com>
14094
14095 PR preprocessor/79210
14096 * input.c (get_substring_ranges_for_loc): Replace line_width
14097 assertion with error-handling.
14098
14099 2017-01-31 Richard Biener <rguenther@suse.de>
14100
14101 PR tree-optimization/77318
14102 * graphite-sese-to-poly.c (extract_affine): Fix assert.
14103 (create_pw_aff_from_tree): Take loop parameter.
14104 (add_condition_to_pbb): Pass loop of the condition to
14105 create_pw_aff_from_tree.
14106
14107 2017-01-31 Jakub Jelinek <jakub@redhat.com>
14108
14109 * config/s390/s390.c (s390_asan_shadow_offset): New function.
14110 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
14111
14112 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
14113
14114 PR target/78597
14115 PR target/79038
14116 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
14117 no longer used.
14118 (convert_int_to_float128): Likewise.
14119 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
14120 (convert_int_to_float128): Likewise.
14121 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
14122 (UNSPEC_IEEE128_CONVERT): Likewise.
14123 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
14124 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
14125 Use local variables for IBM extended format.
14126 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
14127 (fix_trunc<mode>si2_fprs): Likewise.
14128 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
14129 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
14130 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
14131 to know that we can now have integers of all sizes in vector
14132 registers.
14133 (fix<uns>_<mode>di2_hw): Likewise.
14134 (float<uns>_<mode>si2_hw): Likewise.
14135 (fix_<mode>si2_hw): Likewise.
14136 (fixuns_<mode>si2_hw): Likewise.
14137 (float<uns>_<mode>di2_hw): Likewise.
14138 (float_<mode>di2_hw): Likewise.
14139 (float_<mode>si2_hw): Likewise.
14140 (floatuns_<mode>di2_hw): Likewise.
14141 (floatuns_<mode>si2_hw): Likewise.
14142 (xscvqp<su>wz_<mode>): Delete, no longer used.
14143 (xscvqp<su>dz_<mode>): Likewise.
14144 (xscv<su>dqp_<mode>): Likewise.
14145 (ieee128_mfvsrd_64bit): Likewise.
14146 (ieee128_mfvsrd_32bit): Likewise.
14147 (ieee128_mfvsrwz): Likewise.
14148 (ieee128_mtvsrw): Likewise.
14149 (ieee128_mtvsrd_64bit): Likewise.
14150 (ieee128_mtvsrd_32bit): Likewise.
14151
14152 2017-01-31 Martin Liska <mliska@suse.cz>
14153
14154 PR ipa/79285
14155 * ipa-prop.c (ipa_free_all_node_params): Call release method
14156 instead of ~sumbol_summary to not to trigger double times
14157 dtor of hash_map.
14158
14159 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
14160
14161 PR tree-optimization/71691
14162 * bitmap.h (class auto_bitmap): New.
14163 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
14164 is_maybe_undefined instead of ssa_undefined_value_p.
14165
14166 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14167
14168 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
14169 __S390_ARCH_LEVEL__ to __ARCH__.
14170
14171 2017-01-31 Jakub Jelinek <jakub@redhat.com>
14172
14173 PR tree-optimization/79267
14174 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
14175 if should_remove_lhs_p is true.
14176
14177 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
14178
14179 PR debug/63238
14180 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
14181 (add_alignment_attribute): New.
14182 (base_type_die): Add alignment attribute.
14183 (subrange_type_die): Likewise.
14184 (modified_type_die): Likewise.
14185 (gen_array_type_die): Likewise.
14186 (gen_descr_array_type_die: Likewise.
14187 (gen_enumeration_type_die): Likewise.
14188 (gen_subprogram_die): Likewise.
14189 (gen_variable_die): Likewise.
14190 (gen_field_die): Likewise.
14191 (gen_ptr_to_mbr_type_die): Likewise.
14192 (gen_struct_or_union_type_die): Likewise.
14193 (gen_subroutine_type_die): Likewise.
14194 (gen_typedef_die): Likewise.
14195 (base_type_cmp): Compare alignment attribute.
14196
14197 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14198
14199 PR target/79170
14200 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
14201 (setb_unsigned) New pattern for setb with CCUNS.
14202 * config/rs6000/rs6000.c (expand_block_compare): Use a different
14203 subfc./subfe sequence to avoid overflow problems. Generate a
14204 shorter sequence with cmpld/setb for power9.
14205 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
14206 for generating subfc. instruction.
14207 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
14208 now uses this instruction.
14209
14210 2017-01-30 Ian Lance Taylor <iant@google.com>
14211
14212 PR debug/79289
14213 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
14214 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
14215
14216 2017-01-30 Martin Sebor <msebor@redhat.com>
14217
14218 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
14219 Move constant to the right of a relational operator.
14220 (get_mpfr_format_length, format_character, format_string): Ditto.
14221 (should_warn_p, maybe_warn): Same.
14222
14223 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
14224
14225 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
14226
14227 PR lto/79061
14228 * asan.c (get_translation_unit_decl): Remove function.
14229 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
14230
14231 2017-01-30 Martin Liska <mliska@suse.cz>
14232
14233 PR gcov-profile/79259
14234 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
14235 -fprofile-generate.
14236
14237 2017-01-30 Martin Liska <mliska@suse.cz>
14238
14239 PR bootstrap/78985
14240 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
14241 Initialize variables with NULL value.
14242
14243 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
14244
14245 PR target/79260
14246 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
14247 tm_p_file.
14248 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
14249
14250 2017-01-30 Richard Biener <rguenther@suse.de>
14251
14252 PR tree-optimization/79276
14253 * tree-vrp.c (process_assert_insertions): Properly adjust common
14254 when removing a duplicate.
14255
14256 * gcc.dg/torture/pr79276.c: New testcase.
14257
14258 2017-01-30 Richard Biener <rguenther@suse.de>
14259
14260 PR tree-optimization/79256
14261 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
14262 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
14263 alignment on TYPE.
14264 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
14265
14266 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
14267
14268 PR target/79240
14269 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
14270 ("*r<noxa>sbg_<mode>_sll_bitmask")
14271 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
14272 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
14273 Use contiguous_bitmask_nowrap_operand.
14274
14275 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14276
14277 PR target/79268
14278 * config/rs6000/altivec.h (vec_xl): Revise #define.
14279 (vec_xst): Likewise.
14280
14281 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
14282
14283 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
14284
14285 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
14286
14287 PR rtl-optimization/79194
14288 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
14289 traps before call to bypass_conditional_jumps.
14290
14291 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
14292
14293 PR tree-optimization/71374
14294 * lra-constraints.c (check_conflict_input_operands): New.
14295 (match_reload): Use it.
14296
14297 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
14298
14299 PR target/79131
14300 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
14301 account to calculate conflict_set.
14302
14303 2017-01-27 Bin Cheng <bin.cheng@arm.com>
14304
14305 PR rtl-optimization/78559
14306 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
14307 other_insn in combine.
14308
14309 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
14310
14311 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
14312 uint16_type_node for BT_UINT16.
14313
14314 2017-01-27 David Malcolm <dmalcolm@redhat.com>
14315
14316 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
14317 "RTL Tests" to menu.
14318 (GIMPLE Tests): New node.
14319 (RTL Tests): New node.
14320
14321 2017-01-27 Richard Biener <rguenther@suse.de>
14322
14323 PR tree-optimization/79245
14324 * tree-loop-distribution.c (distribute_loop): Apply cost
14325 modeling also to detected patterns.
14326
14327 2017-01-27 Richard Biener <rguenther@suse.de>
14328
14329 PR tree-optimization/71433
14330 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
14331 (compare_assert_loc): New function.
14332 (process_assert_insertions): Sort and optimize assert locations
14333 to remove duplicates and push down identical assertions on
14334 edges to their destination block.
14335
14336 2017-01-27 Richard Biener <rguenther@suse.de>
14337
14338 PR tree-optimization/79244
14339 * tree-vrp.c (remove_range_assertions): Forcefully propagate
14340 out SSA names even if abnormal.
14341
14342 2017-01-27 Jakub Jelinek <jakub@redhat.com>
14343
14344 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
14345 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
14346 instead of MPFR_RNDN.
14347
14348 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
14349
14350 PR target/79239
14351 * arm.c (arm_option_override): Don't call build_target_option_node
14352 until after doing all option overrides.
14353 (arm_valid_target_attribute_tree): Likewise.
14354
14355 2017-01-27 Martin Liska <mliska@suse.cz>
14356
14357 * doc/invoke.texi (-fprofile-arcs): Document profiling support
14358 for {cd}tors and C++ {cd}tors.
14359
14360 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
14361
14362 * config/s390/s390.md ("*setmem_long_and")
14363 ("*setmem_long_and_31z"): Use zero_extend instead of and.
14364
14365 2017-01-26 Martin Sebor <msebor@redhat.com>
14366
14367 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
14368 of precision.
14369
14370 2017-01-26 Martin Sebor <msebor@redhat.com>
14371
14372 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
14373 HAVE_DFmode before using XFmode or DFmode.
14374 (parse_directive): Avoid using the z length modifier to avoid
14375 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
14376
14377 PR middle-end/78703
14378 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
14379 to accept adjustment as an array.
14380 (get_int_range): New function.
14381 (struct directive): Make width and prec arrays.
14382 (directive::set_width, directive::set_precision): Call get_int_range.
14383 (format_integer, format_floating): Handle width and precision ranges.
14384 (format_string, parse_directive): Same.
14385
14386 2017-01-26 Jakub Jelinek <jakub@redhat.com>
14387
14388 PR debug/79129
14389 * dwarf2out.c (generate_skeleton_bottom_up): For children with
14390 comdat_type_p set, just clone them, but keep the children in the
14391 original DIE.
14392
14393 PR debug/78835
14394 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
14395 which have direct callers with -fvar-tracking-assignments enabled
14396 in the current TU.
14397 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
14398 inside of type units.
14399
14400 2017-01-26 Martin Sebor <msebor@redhat.com>
14401
14402 PR middle-end/78703
14403 * gimple-ssa-sprintf.c (struct result_range): Add likely and
14404 unlikely counters.
14405 (struct format_result): Replace number_chars, number_chars_min,
14406 and number_chars_max with a single member of struct result_range.
14407 Remove bounded.
14408 (format_result::operator+=): Adjust.
14409 (struct fmtresult): Remove bounded. Handle likely and unlikely
14410 counters.
14411 (fmtresult::adjust_for_width_or_precision): New function.
14412 (fmtresult:type_max_digits): New function.
14413 (bytes_remaining): Handle likely and unlikely counters.
14414 (min_bytes_remaining): Remove.
14415 (format_percent): Simplify.
14416 (format_integer, format_floating): Set likely and unlikely counters.
14417 (get_string_length, format_character, format_string): Same.
14418 (format_plain, should_warn_p): New function.
14419 (maybe_warn): Call should_warn_p. Update diagnostic messages
14420 and handle those for all directives, including plain strings.
14421 (format_directive): Handle likely and unlikely counters.
14422 Remove unnecessary quoting from diagnostics. Add an informational
14423 note.
14424 (add_bytes): Remove.
14425 (pass_sprintf_length::compute_format_length): Simplify.
14426 (try_substitute_return_value): Handle likely and unlikely counters.
14427
14428 2017-01-26 Carl Love <cel@us.ibm.com>
14429
14430 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
14431 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
14432
14433 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
14434
14435 PR target/79131
14436 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
14437 endianess for subregs into account.
14438 * lra-constraints.c (lra_constraints): Do risky transformations
14439 always on the first iteration.
14440 * lra-lives.c (check_pseudos_live_through_calls): Add arg
14441 last_call_used_reg_set.
14442 (process_bb_lives): Define and use last_call_used_reg_set.
14443 * lra.c (lra): Always continue after lra_constraints on the first
14444 iteration.
14445
14446 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
14447
14448 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
14449 constant.
14450 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
14451
14452 2017-01-26 Jakub Jelinek <jakub@redhat.com>
14453
14454 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
14455 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
14456 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
14457 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
14458 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
14459 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
14460 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
14461 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
14462 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
14463
14464 2017-01-26 Marek Polacek <polacek@redhat.com>
14465
14466 PR c/79199
14467 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
14468 for the third operand.
14469
14470 2017-01-26 Jakub Jelinek <jakub@redhat.com>
14471
14472 PR middle-end/79236
14473 * omp-low.c (struct omp_context): Add simt_stmt field.
14474 (scan_omp_for): Return omp_context *.
14475 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
14476 context to the _simt_ SIMD stmt.
14477 (lower_omp_for): For combined SIMD with sibling _simt_
14478 SIMD, make sure to use the same decls in _looptemp_
14479 clauses as in the sibling.
14480
14481 2017-01-26 David Sherwood <david.sherwood@arm.com>
14482
14483 PR middle-end/79212
14484 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
14485 all contexts.
14486
14487 2017-01-26 Jakub Jelinek <jakub@redhat.com>
14488
14489 PR target/70465
14490 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
14491 emit fld b; fld a; if possible.
14492
14493 * brig-builtins.def: Update copyright years.
14494 * config/arm/arm_acle_builtins.def: Update copyright years.
14495
14496 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
14497
14498 PR target/79179
14499 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
14500 constraint instead of o for the stxsd instruction.
14501
14502 2017-01-25 Carl Love <cel@us.ibm.com>
14503
14504 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
14505 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
14506
14507 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
14508
14509 * doc/invoke.texi (C++ Dialect Options): Fix typo.
14510
14511 2017-01-25 Richard Biener <rguenther@suse.de>
14512
14513 PR tree-optimization/69264
14514 * target.def (vector_alignment_reachable): Improve documentation.
14515 * doc/tm.texi: Regenerate.
14516 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
14517 and add a comment.
14518 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
14519 earlier changes with respect to TYPE_USER_ALIGN.
14520 (vector_alignment_reachable_p): Likewise. Improve dumping.
14521
14522 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14523
14524 PR target/79145
14525 * config/arm/arm.md (xordi3): Force constant operand into a register
14526 for TARGET_IWMMXT.
14527
14528 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14529
14530 * doc/invoke.texi (-fstore-merging): Correct default optimization
14531 levels at which it is enabled.
14532 (-O): Move -fstore-merging from list to...
14533 (-O2): ... Here.
14534
14535 2017-01-25 Richard Biener <rguenther@suse.de>
14536
14537 PR debug/78363
14538 * omp-expand.c: Include debug.h.
14539 (expand_omp_taskreg): Make sure to generate early debug before
14540 outlining anything from a function.
14541 (expand_omp_target): Likewise.
14542 (grid_expand_target_grid_body): Likewise.
14543
14544 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
14545
14546 PR lto/79061
14547 * asan.c (get_translation_unit_decl): New function.
14548 (asan_add_global): Extract modules file name from globals
14549 TRANSLATION_UNIT_DECL name.
14550
14551 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
14552
14553 PR target/77439
14554 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
14555 for long calls with APCS frame and VFP.
14556
14557 2017-01-24 David Malcolm <dmalcolm@redhat.com>
14558
14559 * cfg.c (original_copy_tables_initialized_p): New function.
14560 * cfg.h (original_copy_tables_initialized_p): New decl.
14561 * cfgrtl.c (relink_block_chain): Guard the call to
14562 free_original_copy_tables with a call to
14563 original_copy_tables_initialized_p.
14564 * cgraph.h (symtab_node::native_rtl_p): New decl.
14565 * cgraphunit.c (symtab_node::native_rtl_p): New function.
14566 (symtab_node::needed_p): Don't assert for early assembly output
14567 for __RTL functions.
14568 (cgraph_node::finalize_function): Set "force_output" for __RTL
14569 functions.
14570 (cgraph_node::analyze): Bail out early for __RTL functions.
14571 (analyze_functions): Update assertion to support __RTL functions.
14572 (cgraph_node::expand): Bail out early for __RTL functions.
14573 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
14574 __RTL functions.
14575 * function.h (struct function): Update comment for field
14576 "pass_startwith".
14577 * gimple-expr.c: Include "tree-pass.h".
14578 (gimple_has_body_p): Return false for __RTL functions.
14579 * Makefile.in (OBJS): Add run-rtl-passes.o.
14580 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
14581 accessor.
14582 (gcc::pass_manager::get_clean_slate): New accessor.
14583 * passes.c: Include "insn-addr.h".
14584 (should_skip_pass_p): Add logging. Update logic for running
14585 "expand" to be compatible with both __GIMPLE and __RTL. Guard
14586 property-provider override so it is only done for gimple passes.
14587 Don't skip dfinit.
14588 (skip_pass): New function.
14589 (execute_one_pass): Call skip_pass when skipping passes.
14590 * read-md.c (md_reader::read_char): Support filtering
14591 the input to a subset of line numbers.
14592 (md_reader::md_reader): Initialize fields
14593 m_first_line and m_last_line.
14594 (md_reader::read_file_fragment): New function.
14595 * read-md.h (md_reader::read_file_fragment): New decl.
14596 (md_reader::m_first_line): New field.
14597 (md_reader::m_last_line): New field.
14598 * read-rtl-function.c (function_reader::create_function): Only
14599 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
14600 curr_properties. Set DECL_INITIAL to a dummy block.
14601 (read_rtl_function_body_from_file_range): New function.
14602 * read-rtl-function.h (read_rtl_function_body_from_file_range):
14603 New decl.
14604 * run-rtl-passes.c: New file.
14605 * run-rtl-passes.h: New file.
14606
14607 2017-01-24 Jeff Law <law@redhat.com>
14608
14609 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
14610 buffer size.
14611
14612 2017-01-24 Bin Cheng <bin.cheng@arm.com>
14613
14614 PR tree-optimization/79159
14615 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
14616 (record_nonwrapping_iv): Improve boundary using above function if no
14617 value range information.
14618
14619 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
14620 Martin Jambor <mjambor@suse.cz>
14621
14622 * brig-builtins.def: New file.
14623 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
14624 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
14625 (DEF_HSAIL_SAT_BUILTIN): Likewise.
14626 (DEF_HSAIL_INTR_BUILTIN): Likewise.
14627 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
14628 * builtin-types.def (BT_INT8): New.
14629 (BT_INT16): Likewise.
14630 (BT_UINT8): Likewise.
14631 (BT_UINT16): Likewise.
14632 (BT_FN_ULONG): Likewise.
14633 (BT_FN_UINT_INT): Likewise.
14634 (BT_FN_UINT_ULONG): Likewise.
14635 (BT_FN_UINT_LONG): Likewise.
14636 (BT_FN_UINT_PTR): Likewise.
14637 (BT_FN_ULONG_PTR): Likewise.
14638 (BT_FN_INT8_FLOAT): Likewise.
14639 (BT_FN_INT16_FLOAT): Likewise.
14640 (BT_FN_UINT32_FLOAT): Likewise.
14641 (BT_FN_UINT16_FLOAT): Likewise.
14642 (BT_FN_UINT8_FLOAT): Likewise.
14643 (BT_FN_UINT64_FLOAT): Likewise.
14644 (BT_FN_UINT16_UINT32): Likewise.
14645 (BT_FN_UINT32_UINT16): Likewise.
14646 (BT_FN_UINT16_UINT16_UINT16): Likewise.
14647 (BT_FN_INT_PTR_INT): Likewise.
14648 (BT_FN_UINT_PTR_UINT): Likewise.
14649 (BT_FN_LONG_PTR_LONG): Likewise.
14650 (BT_FN_ULONG_PTR_ULONG): Likewise.
14651 (BT_FN_VOID_UINT64_UINT64): Likewise.
14652 (BT_FN_UINT8_UINT8_UINT8): Likewise.
14653 (BT_FN_INT8_INT8_INT8): Likewise.
14654 (BT_FN_INT16_INT16_INT16): Likewise.
14655 (BT_FN_INT_INT_INT): Likewise.
14656 (BT_FN_UINT_FLOAT_UINT): Likewise.
14657 (BT_FN_FLOAT_UINT_UINT): Likewise.
14658 (BT_FN_ULONG_UINT_UINT): Likewise.
14659 (BT_FN_ULONG_UINT_PTR): Likewise.
14660 (BT_FN_ULONG_ULONG_ULONG): Likewise.
14661 (BT_FN_UINT_UINT_UINT): Likewise.
14662 (BT_FN_VOID_UINT_PTR): Likewise.
14663 (BT_FN_UINT_UINT_PTR: Likewise.
14664 (BT_FN_UINT32_UINT64_PTR): Likewise.
14665 (BT_FN_INT_INT_UINT_UINT): Likewise.
14666 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
14667 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
14668 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
14669 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
14670 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
14671 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
14672 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
14673 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
14674 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
14675 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
14676 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
14677 * doc/frontends.texi: List BRIG FE.
14678 * doc/install.texi (Testing): Add BRIG tesring requirements.
14679 * doc/invoke.texi (Overall Options): Mention BRIG.
14680 * doc/standards.texi (Standards): Doucment BRIG HSA version.
14681
14682 2017-01-24 Richard Biener <rguenther@suse.de>
14683
14684 PR translation/79208
14685 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
14686
14687 2017-01-24 Martin Jambor <mjambor@suse.cz>
14688
14689 PR bootstrap/79198
14690 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
14691 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
14692 and known_contexts.
14693
14694 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
14695
14696 PR middle-end/79123
14697 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
14698 casts from signed to unsigned really don't have a range.
14699
14700 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
14701
14702 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
14703 GMP_RNDx for compatiblity.
14704
14705 2017-01-24 Martin Liska <mliska@suse.cz>
14706
14707 PR bootstrap/79132
14708 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
14709 that would prevent us to call alloca with -1 as argument.
14710
14711 2017-01-24 Jakub Jelinek <jakub@redhat.com>
14712
14713 * dwarf2out.c (output_compilation_unit_header, output_file_names):
14714 Avoid -Wformat-security warning.
14715
14716 2017-01-23 Andrew Pinski <apinski@cavium.com>
14717
14718 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
14719 cost table.
14720
14721 2017-01-23 Martin Sebor <msebor@redhat.com>
14722
14723 PR middle-end/78703
14724 * gimple-ssa-sprintf.c (warn_level): New global.
14725 (format_integer): Use it here and throughout the rest of the file.
14726 Use the same switch to compute sign as base.
14727 (maybe_warn): New function.
14728 (format_directive): Factor out warnings into maybe_warn.
14729 Add debugging output. Use warn_level.
14730 (add_bytes): Use warn_level.
14731 (pass_sprintf_length::compute_format_length): Add debugging output.
14732 (try_substitute_return_value): Same.
14733 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
14734
14735 PR middle-end/78703
14736 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
14737 (struct fmtresult, format_integer, format_floating): Adjust.
14738 (fmtresult::fmtresult): Set max correctly in two argument ctor.
14739 (get_string_length, format_string,format_directive): Same.
14740 (pass_sprintf_length::compute_format_length): Same.
14741 (try_substitute_return_value): Simplify slightly.
14742
14743 PR middle-end/78703
14744 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
14745 (fmtresult::operator+=): Outlined.
14746 (struct fmtresult): Add ctors.
14747 (struct conversion_spec): Rename...
14748 (struct directive): ...to this. Add and remove data members.
14749 (directive::set_width, directive::set_precision): New functions.
14750 (format_percent): Use fmtresult ctor.
14751 (get_width_and_precision): Remove.
14752 (format_integer): Make naming changes. Avoid computing width and
14753 precision.
14754 (format_floating): Same. Adjust indentation.
14755 (format_character, format_none): New functions.
14756 (format_string): Moved character handling to format_character.
14757 (format_directive): Remove arguments, change return type.
14758 (parse_directive): New function.
14759 (pass_sprintf_length::compute_format_length): Move directive
14760 parsing to parse_directive.
14761
14762 2017-01-23 Jakub Jelinek <jakub@redhat.com>
14763
14764 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
14765 (assign_assembler_name_if_needed): ... this.
14766 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
14767 (assign_assembler_name_if_needed): ... this.
14768 (free_lang_data_in_cgraph): Adjust callers.
14769 * cgraphunit.c (cgraph_node::analyze): Likewise.
14770 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
14771 Likewise.
14772
14773 2017-01-23 Richard Biener <rguenther@suse.de>
14774
14775 PR tree-optimization/79088
14776 PR tree-optimization/79188
14777 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
14778 resetting loop bounds after last path deletion. Reset loop
14779 bounds of the target loop, make code match the comments.
14780 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
14781 Make sure loops need no fixups.
14782
14783 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
14784
14785 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
14786 exponent support with double type for first argument.
14787 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
14788 type returned by __builtin_vec_extract_sig,
14789 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
14790 functions from "vector int" to "vector unsigned int" or from
14791 "vector long long int" to "vector unsigned long long int".
14792 Changed type returned by __builtin_vec_extract_exp,
14793 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
14794 functions from "vector int" to "vector unsigned int" or from
14795 "vector long long int" to "vector unsigned long long int".
14796 Changed return type of __builtin_vec_test_data_class,
14797 __builtin_vec_test_data_class_sp, and
14798 __builtin_vec_test_data_class_dp from "vector int" to
14799 "vector bool int" or from "vector long long int" to "vector bool
14800 long long int" and changed second argument type from "unsigned
14801 int" to "int". Added new overloaded function forms "vector float
14802 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
14803 "vector float __builtin_vec_insert_exp_sp (vector float, vector
14804 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
14805 double, vector unsigned long long int)" and "vector double
14806 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
14807 long int)". Changed return type of
14808 __builtin_scalar_test_data_class and
14809 __builtin_scalar_test_data_class_sp and
14810 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
14811 int" and changed second argument from "unsigned int" to "int".
14812 Changed type returned by __builtin_scalar_test_neg,
14813 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
14814 from "int" to "bool int". Added new overloaded function form
14815 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
14816 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
14817 exponent double-precision with floating point first argument.
14818 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
14819 documentation of scalar_test_data_class, scalar_test_neg,
14820 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
14821 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
14822 vec_test_data_class built-in functions to reflect refinements in
14823 their type signatures.
14824
14825 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
14826
14827 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
14828 size of buf.
14829 (aarch64_elf_asm_destructor): Likewise.
14830
14831 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
14832
14833 PR rtl-optimization/78634
14834 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
14835 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
14836 * ifcvt.c (noce_try_cmove): Add missing cost check.
14837
14838 PR rtl-optimization/71724
14839 * combine.c (if_then_else_cond): Look for situations where it is
14840 beneficial to undo the work of one of the recursive calls.
14841
14842 2017-01-23 Bin Cheng <bin.cheng@arm.com>
14843
14844 PR tree-optimization/70754
14845 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
14846 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
14847 combined stmt before it if not NULL.
14848 (combine_chains): Process refs reversely and compute dominance point
14849 for root ref.
14850
14851 2017-01-23 Martin Liska <mliska@suse.cz>
14852
14853 PR tree-optimization/79196
14854 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
14855 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
14856 instead of memcmp.
14857 (strlen_optimize_stmt): Call the renamed function.
14858
14859 2017-01-23 Michael Matz <matz@suse.de>
14860
14861 PR tree-optimization/78384
14862 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
14863
14864 2017-01-23 Richard Biener <rguenther@suse.de>
14865
14866 PR tree-optimization/79186
14867 * tree-vrp.c (register_new_assert_for): Make sure we've seen
14868 both incoming edges before moving an assert.
14869
14870 2017-01-23 Martin Jambor <mjambor@suse.cz>
14871
14872 * ipa-prop.c (load_from_param_1): Removed.
14873 (load_from_unmodified_param): Bits from load_from_param_1 put back
14874 here.
14875 (load_from_param): Removed.
14876 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
14877 with stmt. Reverted back to use of load_from_unmodified_param.
14878
14879 2017-01-23 Martin Jambor <mjambor@suse.cz>
14880
14881 PR ipa/79108
14882 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
14883 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
14884 field a pointer to garbage collected vector, mark lattices and
14885 ipcp_orig_node with GTY((skip)).
14886 (ipa_get_param_count): Adjust to descriptors being a pointer.
14887 (ipa_get_param): Likewise.
14888 (ipa_get_type): Likewise.
14889 (ipa_get_param_move_cost): Likewise.
14890 (ipa_set_param_used): Likewise.
14891 (ipa_get_controlled_uses): Likewise.
14892 (ipa_set_controlled_uses): Likewise.
14893 (ipa_is_param_used): Likewise.
14894 (ipa_node_params_t): Move into garbage collector. New methods insert
14895 and remove.
14896 (ipa_node_params_sum): Annotate wth GTY(()).
14897 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
14898 garbage collected.
14899 (ipa_load_from_parm_agg): Adjust declaration.
14900 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
14901 * ipa-profile.c (ipa_profile): Likewise.
14902 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
14903 (ipa_populate_param_decls): Make descriptors parameter garbage
14904 collected.
14905 (ipa_dump_param): Adjust to descriptors being a pointer.
14906 (ipa_alloc_node_params): Likewise.
14907 (ipa_initialize_node_params): Likewise.
14908 (load_from_param_1): Make descriptors parameter garbage collected.
14909 (load_from_unmodified_param): Likewise.
14910 (load_from_param): Likewise.
14911 (ipa_load_from_parm_agg): Likewise.
14912 (ipa_node_params::~ipa_node_params): Removed.
14913 (ipa_free_all_node_params): Remove call to delete operator.
14914 (ipa_node_params_t::insert): New.
14915 (ipa_node_params_t::remove): Likewise.
14916 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
14917 copy known_csts and known_contexts vectors.
14918 (ipa_read_node_info): Adjust to descriptors being a pointer.
14919 (ipcp_modif_dom_walker): Make m_descriptors field garbage
14920 collected.
14921 (ipcp_transform_function): Make descriptors variable garbage
14922 collected.
14923
14924 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
14925
14926 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
14927 * config/i386/avx512dqintrin.h: Ditto.
14928 * config/i386/avx512fintrin.h: Ditto.
14929 * gcc/config/i386/i386.c: Handle new builtins.
14930 * config/i386/i386-builtin.def: Add new builtins.
14931 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
14932 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
14933
14934 2017-01-23 Jakub Jelinek <jakub@redhat.com>
14935 Martin Liska <mliska@suse.cz>
14936
14937 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
14938 * asan.c (asan_expand_poison_ifn): Support stores and use
14939 appropriate ASAN report function.
14940 * internal-fn.c (expand_ASAN_POISON_USE): New function.
14941 * internal-fn.def (ASAN_POISON_USE): Declare.
14942 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
14943 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
14944 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
14945 ASAN_POISON calls w/o LHS.
14946 * tree-ssa.c (execute_update_addresses_taken): Create clobber
14947 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
14948 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
14949 * gimplify.c (asan_poison_variables): Add attribute
14950 use_after_scope_memory to variables that really needs to live
14951 in memory.
14952 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
14953 having the attribute.
14954
14955 2017-01-23 Martin Liska <mliska@suse.cz>
14956
14957 * asan.c (create_asan_shadow_var): New function.
14958 (asan_expand_poison_ifn): Likewise.
14959 * asan.h (asan_expand_poison_ifn): New declaration.
14960 * internal-fn.c (expand_ASAN_POISON): Likewise.
14961 * internal-fn.def (ASAN_POISON): New builtin.
14962 * sanopt.c (pass_sanopt::execute): Expand
14963 asan_expand_poison_ifn.
14964 * tree-inline.c (copy_decl_for_dup_finish): Make function
14965 external.
14966 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
14967 * tree-ssa.c (is_asan_mark_p): New function.
14968 (execute_update_addresses_taken): Rewrite local variables
14969 (identified just by use-after-scope as addressable) into SSA.
14970
14971 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
14972
14973 * doc/install.texi (Specific): opensource.apple.com uses https
14974 now. Remove trailing slash.
14975
14976 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
14977
14978 * README.Portability: Remove note on an Irix compatibility issue.
14979
14980 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
14981
14982 * gcov.c (INCLUDE_ALGORITHM): Define.
14983 (INCLUDE_VECTOR): Define.
14984 No longer include <vector> and <algorithm> directly.
14985
14986 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
14987
14988 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
14989 to https.
14990 * doc/invoke.texi (Code Gen Options): Ditto.
14991
14992 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
14993
14994 PR lto/78407
14995 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
14996
14997 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
14998
14999 rtl-optimization/79125
15000 * cprop.c (local_cprop_pass): Handle cases where we make an
15001 unconditional trap.
15002
15003 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
15004
15005 PR target/61729
15006 PR target/77850
15007 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
15008 read from, for big endian.
15009
15010 2017-01-20 Jiong Wang <jiong.wang@arm.com>
15011
15012 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
15013 register pauth builtins for LP64 only.
15014
15015 2017-01-20 Marek Polacek <polacek@redhat.com>
15016
15017 PR c/79152
15018 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
15019 non-case labels.
15020
15021 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
15022
15023 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
15024 of safelen status.
15025 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
15026 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
15027 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
15028
15029 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15030
15031 PR target/71270
15032 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
15033 in big-endian mode when they are not a single duplicated value.
15034
15035 2017-01-20 Richard Biener <rguenther@suse.de>
15036
15037 * BASE-VER: Bump to 7.0.1.
15038
15039 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
15040
15041 * omp-low.c (omplow_simd_context): New struct. Use it...
15042 (lower_rec_simd_input_clauses): ...here and...
15043 (lower_rec_input_clauses): ...here to hold common data. Adjust all
15044 references to idx, lane, max_vf, is_simt.
15045
15046 2017-01-20 Graham Markall <graham.markall@embecosm.com>
15047
15048 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
15049 mcpu=nps400.
15050
15051 2017-01-20 Martin Jambor <mjambor@suse.cz>
15052
15053 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
15054 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
15055 gt-hsa-common.h.
15056 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
15057 (GTFILES): Rename hsa.c to hsa-common.c.
15058 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
15059 * hsa-dump.c: Likewise.
15060 * hsa-gen.c: Likewise.
15061 * hsa-regalloc.c: Likewise.
15062 * ipa-hsa.c: Likewise.
15063 * omp-expand.c: Likewise.
15064 * omp-low.c: Likewise.
15065 * toplev.c: Likewise.
15066
15067 2017-01-20 Marek Polacek <polacek@redhat.com>
15068
15069 PR c/64279
15070 * doc/invoke.texi: Document -Wduplicated-branches.
15071 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
15072 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
15073 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
15074 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
15075 return 0 only when not OEP_LEXICOGRAPHIC.
15076 (fold_build_cleanup_point_expr): Use the expression
15077 location when building CLEANUP_POINT_EXPR.
15078 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
15079 * tree.c (add_expr): Handle error_mark_node.
15080
15081 2017-01-20 Martin Liska <mliska@suse.cz>
15082
15083 PR lto/69188
15084 * tree-profile.c (init_ic_make_global_vars): Do not call
15085 finalize_decl.
15086 (gimple_init_gcov_profiler): Likewise.
15087
15088 2017-01-20 Martin Liska <mliska@suse.cz>
15089
15090 PR ipa/71190
15091 * cgraph.h (maybe_create_reference): Remove argument and
15092 update comment.
15093 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
15094 argument.
15095 * ipa-cp.c (create_specialized_node): Likewise.
15096 * symtab.c (symtab_node::maybe_create_reference): Handle
15097 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
15098
15099 2017-01-20 Martin Liska <mliska@suse.cz>
15100
15101 * read-rtl-function.c (function_reader::create_function): Use
15102 build_decl instread of build_decl_stat.
15103
15104 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
15105
15106 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
15107 * config/i386/avx512dqintrin.h: Ditto.
15108 * config/i386/avx512fintrin.h: Ditto.
15109 * config/i386/i386-builtin-types.def: Add new types.
15110 * gcc/config/i386/i386.c: Handle new types.
15111 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
15112 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
15113 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
15114 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
15115 (__builtin_ia32_kshiftridi): New.
15116 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
15117
15118 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
15119
15120 PR target/78875
15121 PR target/79140
15122 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
15123 define to rs6000_init_stack_protect_guard.
15124 (rs6000_init_stack_protect_guard): New function.
15125
15126 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
15127 Yunqiang Su <yunqiang.su@imgtec.com>
15128
15129 * config.gcc (supported_defaults): Add madd4.
15130 (with_madd4): Add validation.
15131 (all_defaults): Add madd4.
15132 * config/mips/mips.opt (mmadd4): New option.
15133 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
15134 mmadd4.
15135 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
15136 __mips_no_madd4.
15137 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
15138 (ISA_HAS_FUSED_MADD4): Likewise.
15139 * gcc/doc/invoke.texi (-mmadd4): Document the new option.
15140 * gcc/doc/install.texi (--with-madd4): Document the new option.
15141
15142 2017-01-19 Jiong Wang <jiong.wang@arm.com>
15143
15144 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
15145 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
15146 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
15147 (aarch64_init_pauth_hint_builtins): New.
15148 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
15149 (aarch64_expand_builtin): Expand new builtins.
15150
15151 2017-01-19 Jiong Wang <jiong.wang@arm.com>
15152
15153 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
15154 * combine-stack-adj.c (no_unhandled_cfa): Handle
15155 REG_CFA_TOGGLE_RA_MANGLE.
15156 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
15157 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
15158 info for return address signing.
15159 (aarch64_expand_epilogue): Likewise.
15160
15161 2017-01-19 Jiong Wang <jiong.wang@arm.com>
15162
15163 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
15164 * config/aarch64/aarch64-protos.h
15165 (aarch64_return_address_signing_enabled): New declaration.
15166 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
15167 New function.
15168 (aarch64_expand_prologue): Sign return address before it's pushed onto
15169 stack.
15170 (aarch64_expand_epilogue): Authenticate return address fetched from
15171 stack.
15172 (aarch64_override_options): Sanity check for ILP32 and ISA level.
15173 (aarch64_attributes): New function attributes for "sign-return-address".
15174 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
15175 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
15176 ("*do_return"): Generate combined instructions according to key index.
15177 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
15178 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
15179 iterators.
15180 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
15181 * config/aarch64/aarch64.opt (msign-return-address=): New.
15182 * doc/extend.texi (AArch64 Function Attributes): Documents
15183 "sign-return-address=".
15184 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
15185
15186 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
15187
15188 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
15189 overall option summary.
15190
15191 2017-01-19 Jiong Wang <jiong.wang@arm.com>
15192
15193 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
15194 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
15195 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
15196 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
15197
15198 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
15199
15200 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
15201 -mpower9-minmax by default for -mcpu=power9.
15202 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
15203 128-bit floating point.
15204
15205 2017-01-20 Alan Modra <amodra@gmail.com>
15206
15207 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
15208 optimizing for size.
15209
15210 2017-01-20 Alan Modra <amodra@gmail.com>
15211
15212 PR target/79144
15213 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
15214 for strcmp and strncmp from corresponding builtin decl.
15215
15216 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
15217
15218 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
15219 instead of i386/rtems-64.h.
15220 * config/i386/rtems-64.h: Remove.
15221
15222 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
15223
15224 PR target/78478
15225 Revert:
15226 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
15227
15228 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
15229
15230 2017-01-19 Tamar Christina <tamar.christina@arm.com>
15231
15232 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
15233 Change int to HOST_WIDE_INT.
15234 * config/aarch64/aarch64-protos.h
15235 (aarch64_simd_gen_const_vector_dup): Likewise.
15236 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
15237
15238 2017-01-19 David Malcolm <dmalcolm@redhat.com>
15239
15240 * langhooks-def.h (lhd_type_for_size): New decl.
15241 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
15242 * langhooks.c (lhd_type_for_size): New function, taken from
15243 lto_type_for_size.
15244
15245 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
15246
15247 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
15248 define_bypass for CR latency.
15249 (power9-cracked-alu): Update bypass latency and remove power9-branch.
15250 (power9-alu2): Add define_bypass for CR latency.
15251 (power9-cmp): New.
15252 (power9-mul): Update insn latency.
15253 (power9-mul-compare): Update insn latency, bypass latency and remove
15254 power9-branch.
15255
15256 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15257
15258 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
15259 Delete.
15260 * config/aarch64/aarch64.md
15261 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
15262 aarch64_nopcrelative_literal_loads.
15263 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
15264
15265 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
15266
15267 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
15268 TARGET_LOONGSON_3A.
15269 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
15270
15271 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
15272
15273 PR target/78176
15274 * config.gcc (supported_defaults): Add lxc1-sxc1.
15275 (with_lxc1_sxc1): Add validation.
15276 (all_defaults): Add lxc1-sxc1.
15277 * config/mips/mips.opt (mlxc1-sxc1): New option.
15278 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
15279 mlxc1-sxc1.
15280 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
15281 __mips_no_lxc1_sxc1.
15282 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
15283 * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
15284 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
15285
15286 2017-01-19 Richard Biener <rguenther@suse.de>
15287
15288 PR tree-optimization/72488
15289 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
15290 sure to restore SSA info.
15291 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
15292
15293 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
15294
15295 PR rtl-optimization/79121
15296 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
15297 of the inner type when shifting an extended value.
15298
15299 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
15300
15301 PR lto/78407
15302 * symtab.c (symtab_node::equal_address_to): Fix comparing of
15303 interposable aliases.
15304
15305 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
15306
15307 PR target/78516
15308 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
15309 Use the evmergelohi instruction.
15310 (mov_si<mode>_e500_subreg4_2_le): Likewise.
15311 (mov_sitf_e500_subreg8_2_be): Likewise.
15312 (mov_sitf_e500_subreg12_2_le): Likewise.
15313 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
15314 (mov_si<mode>_e500_subreg4_2_be): Likewise.
15315 (mov_sitf_e500_subreg8_2_le): Likewise.
15316 (mov_sitf_e500_subreg12_2_be): Likewise.
15317
15318 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15319
15320 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
15321 attribute from vecsimple to vecperm.
15322 (altivec_vbpermq2): Likewise.
15323
15324 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15325
15326 PR target/79040
15327 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
15328
15329 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
15330 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
15331 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
15332 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
15333 case where N arg is SIZE_MAX.
15334 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
15335 (cmpstrsi): Add pattern.
15336
15337 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
15338
15339 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15340 __builtin_vec_revb builtins.
15341 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
15342 built-in functions to support generation of the ISA 3.0 XXBR<x>
15343 vector byte reverse instructions.
15344 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
15345 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
15346 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
15347 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
15348 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
15349 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
15350 (P9V_BUILTIN_VEC_REVB): Likewise.
15351 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
15352 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
15353 (p9_xxbrq_v16qi): Likewise.
15354 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
15355 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
15356 (p9_xxbrh_v8hi): Likewise.
15357 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
15358 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
15359 vec_revb built-in functions.
15360
15361 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
15362
15363 PR rtl-optimization/78952
15364 * config/i386/i386.md (any_extract): New code iterator.
15365 (*insvqi_2): Use any_extract for source operand.
15366 (*insvqi_3): Use any_shiftrt for source operand.
15367
15368 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
15369
15370 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
15371 New function.
15372 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
15373
15374 2017-01-18 Matthias Klose <doko@ubuntu.com>
15375
15376 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
15377
15378 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15379
15380 * config/rs6000/altivec.h (vec_bperm): Change #define.
15381 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
15382 (altivec_vbpermq2): New define_insn.
15383 (altivec_vbpermd): Likewise.
15384 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
15385 function interface.
15386 (VBPERMD): Likewise.
15387 (VBPERM): New polymorphic function interface.
15388 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
15389 Add entries for P9V_BUILTIN_VEC_VBPERM.
15390 * doc/extend.texi: Add interfaces for vec_bperm.
15391
15392 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15393
15394 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
15395 first letter of error messages.
15396 (s390_resolve_overloaded_builtin): Likewise.
15397 * config/s390/s390.c (s390_expand_builtin): Likewise.
15398 (s390_invalid_arg_for_unprototyped_fn): Likewise.
15399 (s390_valid_target_attribute_inner_p): Likewise.
15400 * config/s390/s390.md ("tabort"): Likewise.
15401
15402 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
15403
15404 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
15405 (ISA_AVOID_DIV_HILO): New macro.
15406 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
15407 (ISA_HAS_DDIV): Likewise.
15408
15409 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
15410
15411 * doc/invoke.texi (fabi-version): Correct number of occurrences.
15412
15413 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
15414
15415 * doc/invoke.texi (fabi-version): Spelling fix.
15416
15417 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
15418
15419 PR c++/70182
15420 * doc/invoke.texi (fabi-version): Mention mangling fix for
15421 operator names.
15422
15423 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
15424
15425 PR c++/77489
15426 * doc/invoke.texi (fabi-version): Document discriminator mangling.
15427
15428 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
15429
15430 PR target/78875
15431 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
15432 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
15433 the new options.
15434 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
15435 flexible settings.
15436 (stack_protect_test): Ditto.
15437 * config/rs6000/rs6000.opt (mstack-protector-guard=,
15438 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
15439 options.
15440 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
15441 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
15442 -mstack-protector-guard-offset=.
15443 (RS/6000 and PowerPC Options): Ditto.
15444
15445 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
15446
15447 * config/i386/i386.h (MASK_CLASS_P): New define.
15448 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
15449 there are no registers from different register sets also when
15450 mask registers are used. Update function comment.
15451 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
15452 to (*k/*r) and (*k/*km) alternatives.
15453
15454 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
15455
15456 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
15457 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
15458 (EH_RETURN_HANDLER_RTX): New define.
15459 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
15460 Force frame pointer in EH return functions.
15461 (aarch64_expand_epilogue): Add barrier for eh_return.
15462 (aarch64_final_eh_return_addr): Remove.
15463 (aarch64_eh_return_handler_rtx): New function.
15464 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
15465 Remove.
15466 (aarch64_eh_return_handler_rtx): New prototype.
15467
15468 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15469
15470 * config/rs6000/altivec.h (vec_rlmi): New #define.
15471 (vec_vrlnm): Likewise.
15472 (vec_rlnm): Likewise.
15473 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
15474 (UNSPEC_VRLNM): Likewise.
15475 (VIlong): New mode iterator.
15476 (altivec_vrl<VI_char>mi): New define_insn.
15477 (altivec_vrl<VI_char>nm): Likewise.
15478 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
15479 function entry.
15480 (VRLDNM): Likewise.
15481 (RLNM): New polymorphic function entry.
15482 (VRLWMI): New monomorphic function entry.
15483 (VRLDMI): Likewise.
15484 (RLMI): New polymorphic function entry.
15485 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
15486 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
15487 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
15488 vec_vrlnm.
15489
15490 2017-01-17 Jakub Jelinek <jakub@redhat.com>
15491
15492 PR debug/78839
15493 * dwarf2out.c (field_byte_offset): Restore the
15494 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
15495 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
15496 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
15497 of build2 + fold.
15498
15499 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
15500
15501 PR ada/67205
15502 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
15503
15504 2017-01-17 Jakub Jelinek <jakub@redhat.com>
15505
15506 PR debug/71669
15507 * dwarf2out.c (add_data_member_location_attribute): For constant
15508 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
15509 instead of DW_AT_data_member_location, DW_AT_bit_offset and
15510 DW_AT_byte_size attributes.
15511
15512 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
15513
15514 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
15515 after forcing to constant memory when the code model is medium.
15516
15517 2017-01-17 Julia Koval <julia.koval@intel.com>
15518
15519 PR target/76731
15520 * config/i386/avx512fintrin.h
15521 (_mm512_i32gather_ps): Change __addr type to void const*.
15522 (_mm512_mask_i32gather_ps): Ditto.
15523 (_mm512_i32gather_pd): Ditto.
15524 (_mm512_mask_i32gather_pd): Ditto.
15525 (_mm512_i64gather_ps): Ditto.
15526 (_mm512_mask_i64gather_ps): Ditto.
15527 (_mm512_i64gather_pd): Ditto.
15528 (_mm512_mask_i64gather_pd): Ditto.
15529 (_mm512_i32gather_epi32): Ditto.
15530 (_mm512_mask_i32gather_epi32): Ditto.
15531 (_mm512_i32gather_epi64): Ditto.
15532 (_mm512_mask_i32gather_epi64): Ditto.
15533 (_mm512_i64gather_epi32): Ditto.
15534 (_mm512_mask_i64gather_epi32): Ditto.
15535 (_mm512_i64gather_epi64): Ditto.
15536 (_mm512_mask_i64gather_epi64): Ditto.
15537 (_mm512_i32scatter_ps): Change __addr type to void*.
15538 (_mm512_mask_i32scatter_ps): Ditto.
15539 (_mm512_i32scatter_pd): Ditto.
15540 (_mm512_mask_i32scatter_pd): Ditto.
15541 (_mm512_i64scatter_ps): Ditto.
15542 (_mm512_mask_i64scatter_ps): Ditto.
15543 (_mm512_i64scatter_pd): Ditto.
15544 (_mm512_mask_i64scatter_pd): Ditto.
15545 (_mm512_i32scatter_epi32): Ditto.
15546 (_mm512_mask_i32scatter_epi32): Ditto.
15547 (_mm512_i32scatter_epi64): Ditto.
15548 (_mm512_mask_i32scatter_epi64): Ditto.
15549 (_mm512_i64scatter_epi32): Ditto.
15550 (_mm512_mask_i64scatter_epi32): Ditto.
15551 (_mm512_i64scatter_epi64): Ditto.
15552 (_mm512_mask_i64scatter_epi64): Ditto.
15553 * config/i386/avx512pfintrin.h
15554 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
15555 (_mm512_mask_prefetch_i32gather_ps): Ditto.
15556 (_mm512_mask_prefetch_i64gather_pd): Ditto.
15557 (_mm512_mask_prefetch_i64gather_ps): Ditto.
15558 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
15559 (_mm512_prefetch_i32scatter_ps): Ditto.
15560 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
15561 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
15562 (_mm512_prefetch_i64scatter_pd): Ditto.
15563 (_mm512_prefetch_i64scatter_ps): Ditto.
15564 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
15565 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
15566 * config/i386/avx512vlintrin.h
15567 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
15568 (_mm_mmask_i32gather_ps): Ditto.
15569 (_mm256_mmask_i32gather_pd): Ditto.
15570 (_mm_mmask_i32gather_pd): Ditto.
15571 (_mm256_mmask_i64gather_ps): Ditto.
15572 (_mm_mmask_i64gather_ps): Ditto.
15573 (_mm256_mmask_i64gather_pd): Ditto.
15574 (_mm_mmask_i64gather_pd): Ditto.
15575 (_mm256_mmask_i32gather_epi32): Ditto.
15576 (_mm_mmask_i32gather_epi32): Ditto.
15577 (_mm256_mmask_i32gather_epi64): Ditto.
15578 (_mm_mmask_i32gather_epi64): Ditto.
15579 (_mm256_mmask_i64gather_epi32): Ditto.
15580 (_mm_mmask_i64gather_epi32): Ditto.
15581 (_mm256_mmask_i64gather_epi64): Ditto.
15582 (_mm_mmask_i64gather_epi64): Ditto.
15583 (_mm256_i32scatter_ps): Change __addr type to void*.
15584 (_mm256_mask_i32scatter_ps): Ditto.
15585 (_mm_i32scatter_ps): Ditto.
15586 (_mm_mask_i32scatter_ps): Ditto.
15587 (_mm256_i32scatter_pd): Ditto.
15588 (_mm256_mask_i32scatter_pd): Ditto.
15589 (_mm_i32scatter_pd): Ditto.
15590 (_mm_mask_i32scatter_pd): Ditto.
15591 (_mm256_i64scatter_ps): Ditto.
15592 (_mm256_mask_i64scatter_ps): Ditto.
15593 (_mm_i64scatter_ps): Ditto.
15594 (_mm_mask_i64scatter_ps): Ditto.
15595 (_mm256_i64scatter_pd): Ditto.
15596 (_mm256_mask_i64scatter_pd): Ditto.
15597 (_mm_i64scatter_pd): Ditto.
15598 (_mm_mask_i64scatter_pd): Ditto.
15599 (_mm256_i32scatter_epi32): Ditto.
15600 (_mm256_mask_i32scatter_epi32): Ditto.
15601 (_mm_i32scatter_epi32): Ditto.
15602 (_mm_mask_i32scatter_epi32): Ditto.
15603 (_mm256_i32scatter_epi64): Ditto.
15604 (_mm256_mask_i32scatter_epi64): Ditto.
15605 (_mm_i32scatter_epi64): Ditto.
15606 (_mm_mask_i32scatter_epi64): Ditto.
15607 (_mm256_i64scatter_epi32): Ditto.
15608 (_mm256_mask_i64scatter_epi32): Ditto.
15609 (_mm_i64scatter_epi32): Ditto.
15610 (_mm_mask_i64scatter_epi32): Ditto.
15611 (_mm256_i64scatter_epi64): Ditto.
15612 (_mm256_mask_i64scatter_epi64): Ditto.
15613 (_mm_i64scatter_epi64): Ditto.
15614 (_mm_mask_i64scatter_epi64): Ditto.
15615 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
15616 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
15617 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
15618 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
15619 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
15620 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
15621 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
15622 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
15623 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
15624 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
15625 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
15626 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
15627 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
15628 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
15629 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
15630 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
15631 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
15632 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
15633 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
15634 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
15635 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
15636 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
15637 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
15638 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
15639 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
15640 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
15641 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
15642 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
15643 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
15644 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
15645 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
15646 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
15647 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
15648 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
15649 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
15650 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
15651 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
15652 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
15653 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
15654 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
15655 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
15656 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
15657 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
15658 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
15659 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
15660 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
15661 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
15662 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
15663 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
15664 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
15665 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
15666 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
15667 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
15668 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
15669 definitions accordingly.
15670
15671 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
15672 Kuan-Lin Chen <kuanlinchentw@gmail.com>
15673
15674 PR target/79079
15675 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
15676 gen_lowpart.
15677
15678 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
15679
15680 PR target/79058
15681 * ira-conflicts.c (ira_build_conflicts): Update total conflict
15682 hard regs for inner regno.
15683
15684 2017-01-17 Martin Liska <mliska@suse.cz>
15685
15686 PR ipa/71207
15687 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
15688 assumption and add comment.
15689
15690 2017-01-17 Nathan Sidwell <nathan@acm.org>
15691
15692 * ipa-visibility.c (localize_node): New function, broken out of ...
15693 (function_and_variable_visibility): ... here. Call it.
15694
15695 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
15696
15697 PR middle-end/77445
15698 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
15699 correctly set frequency of oudgoing edge.
15700 (duplicate_thread_path): Fix profile updating.
15701
15702 2017-01-17 Jakub Jelinek <jakub@redhat.com>
15703
15704 PR other/79046
15705 * configure.ac: Add GCC_BASE_VER.
15706 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
15707 version from BASE-VER file.
15708 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
15709 (gcc.o): Depend on $(BASEVER).
15710 * common.opt (dumpfullversion): New option.
15711 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
15712 * doc/invoke.texi: Document -dumpfullversion.
15713 * doc/install.texi: Document --with-gcc-major-version-only.
15714 * configure: Regenerated.
15715
15716 2017-01-17 Richard Biener <rguenther@suse.de>
15717
15718 PR tree-optimization/71433
15719 * tree-vrp.c (register_new_assert_for): Merge same asserts
15720 on all incoming edges.
15721 (process_assert_insertions_for): Handle insertions at the
15722 beginning of BBs.
15723
15724 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
15725
15726 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
15727 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
15728
15729 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
15730
15731 PR target/78633
15732 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
15733 RTL sharing.
15734
15735 2017-01-17 Alan Modra <amodra@gmail.com>
15736
15737 PR target/79066
15738 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
15739 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
15740 symbolic stack limit when pic.
15741
15742 2017-01-16 Martin Sebor <msebor@redhat.com>
15743
15744 PR tree-optimization/78608
15745 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
15746
15747 2017-01-16 Jeff Law <law@redhat.com>
15748
15749 Revert:
15750 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
15751 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
15752 for several include directories that may be relative to sysroot.
15753 * config/i386/x-mingw32 (gplus_includedir): Define.
15754 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
15755 (native_system_includedir): Likewise.
15756 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
15757 override if TARGET_SYSTEM_ROOT is defined.
15758 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
15759
15760 PR tree-optimization/79090
15761 PR tree-optimization/33562
15762 PR tree-optimization/61912
15763 PR tree-optimization/77485
15764 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
15765 and computed trims into the dump file.
15766
15767 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
15768
15769 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
15770
15771 2017-01-16 Jakub Jelinek <jakub@redhat.com>
15772
15773 PR c/79089
15774 * gimplify.c (gimplify_init_constructor): If want_value and
15775 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
15776 fix.
15777
15778 PR target/79080
15779 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
15780 sequence. Formatting fixes.
15781 (doloop_optimize): Formatting fixes.
15782
15783 PR driver/49726
15784 * gcc.c (debug_level_greater_than_spec_func): New function.
15785 (static_spec_functions): Add debug-level-gt spec function.
15786 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
15787 !g0.
15788 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
15789 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
15790 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
15791 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
15792 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
15793 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
15794
15795 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
15796
15797 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
15798 QImode fixups to general and mask registers only.
15799
15800 2017-01-16 Carl Love <cel@us.ibm.com>
15801
15802 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
15803 for built-in functions
15804 vector signed char vec_nabs (vector signed char)
15805 vector signed short vec_nabs (vector signed short)
15806 vector signed int vec_nabs (vector signed int)
15807 vector signed long long vec_nabs (vector signed long long)
15808 vector float vec_nabs (vector float)
15809 vector double vec_nabs (vector double)
15810 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
15811 and NABS overload.
15812 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
15813 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
15814 * doc/extend.texi: Update the documentation file for the new built-in
15815 functions.
15816
15817 2017-01-16 Martin Sebor <msebor@redhat.com>
15818
15819 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
15820 message.
15821
15822 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15823
15824 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
15825 UNSPEC_VSX__XXSPLTD to require special splat handling.
15826
15827 2017-01-16 David Malcolm <dmalcolm@redhat.com>
15828
15829 PR bootstrap/78616
15830 * system.h: Poison strndup.
15831
15832 2017-01-16 Alan Modra <amodra@gmail.com>
15833
15834 PR target/79098
15835 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
15836 use a switch.
15837
15838 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
15839
15840 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
15841
15842 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
15843
15844 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
15845 call recog here. Assert that INSN_CODE (insn) is non-negative.
15846
15847 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
15848
15849 PR target/72749
15850 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
15851 fallthrough.
15852 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
15853 in the currently scheduled RTL fragment.
15854
15855 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
15856
15857 PR rtl-optimization/78751
15858 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
15859 give up.
15860
15861 2017-01-14 Jeff Law <law@redhat.com>
15862
15863 PR tree-optimization/79090
15864 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
15865 variable length stores.
15866 (compute_trims): Delete dead assignment to *trim_tail.
15867 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
15868 zero length.
15869
15870 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
15871
15872 PR rtl-optimization/78626
15873 PR rtl-optimization/78727
15874 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
15875 of a block, and split such blocks after everything else is finished.
15876
15877 2017-01-14 Alan Modra <amodra@gmail.com>
15878
15879 PR target/72749
15880 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
15881 target legitimate_combined_insn.
15882 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
15883 (rs6000_legitimate_combined_insn): New function.
15884 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
15885 all uses.
15886 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
15887 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
15888 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
15889
15890 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
15891
15892 * doc/frontends.texi (G++ and GCC): Remove references to Java.
15893
15894 2017-01-13 Jeff Law <law@redhat.com>
15895
15896 PR tree-optimization/33562
15897 PR tree-optimization/61912
15898 PR tree-optimization/77485
15899 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
15900 a statement.
15901 (delete_dead_assignment): Likewise.
15902 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
15903 statement to delete_dead_call and delete_dead_assignment.
15904
15905 2017-01-13 David Malcolm <dmalcolm@redhat.com>
15906
15907 PR c/78304
15908 * substring-locations.c (format_warning_va): Strengthen case 1 so
15909 that both endpoints of the substring must be within the format
15910 range for just the substring to be printed.
15911
15912 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
15913
15914 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
15915 * config/i386/i386.c (ix86_target_string): Add missing options
15916 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
15917 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
15918 flags_other and ix86_target_other to flags2_other. Display unknown
15919 isa2 options.
15920 (ix86_valid_target_attribute_inner_p): Add missing options and
15921 reorder options by implied ISAs, as in ix86_target_string.
15922
15923 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
15924
15925 * hash-table.h (hash_table::too_empty_p): New function.
15926 (hash_table::expand): Use it.
15927 (hash_table::traverse): Likewise.
15928 (hash_table::empty_slot): Use sizeof (value_type) instead of
15929 sizeof (PTR) to convert bytes to elements. Shrink the table
15930 if the current size is excessive for the current number of
15931 elements.
15932
15933 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
15934
15935 * ira-costs.c (record_reg_classes): Break from the inner loop
15936 early once alt_fail is known to be true. Update outer loop
15937 handling accordingly.
15938
15939 2017-01-13 Jeff Law <law@redhat.com>
15940
15941 * tree-ssa-dse.c (decrement_count): New function.
15942 (increment_start_addr, maybe_trim_memstar_call): Likewise.
15943 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
15944 when we know the partially dead statement is a mem* function.
15945
15946 PR tree-optimization/61912
15947 PR tree-optimization/77485
15948 * tree-ssa-dse.c: Include expr.h.
15949 (maybe_trim_constructor_store): New function.
15950 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
15951
15952 PR tree-optimization/33562
15953 PR tree-optimization/61912
15954 PR tree-optimization/77485
15955 * doc/invoke.texi: Document new dse-max-object-size param.
15956 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
15957 * tree-ssa-dse.c: Include params.h.
15958 (dse_store_status): New enum.
15959 (initialize_ao_ref_for_dse): New, partially extracted from
15960 dse_optimize_stmt.
15961 (valid_ao_ref_for_dse, normalize_ref): New.
15962 (setup_live_bytes_from_ref, compute_trims): Likewise.
15963 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
15964 (maybe_trim_partially_dead_store): Likewise.
15965 (maybe_trim_complex_store): Likewise.
15966 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
15967 Track what bytes live from the original store. Return tri-state
15968 for dead, partially dead or live.
15969 (dse_dom_walker): Add constructor, destructor and new private members.
15970 (delete_dead_call, delete_dead_assignment): New extracted from
15971 dse_optimize_stmt.
15972 (dse_optimize_stmt): Make a member of dse_dom_walker.
15973 Use initialize_ao_ref_for_dse.
15974
15975 PR tree-optimization/33562
15976 PR tree-optimization/61912
15977 PR tree-optimization/77485
15978 * sbitmap.h (bitmap_count_bits): Prototype.
15979 (bitmap_clear_range, bitmap_set_range): Likewise.
15980 * sbitmap.c (bitmap_clear_range): New function.
15981 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
15982
15983 2017-01-13 Martin Liska <mliska@suse.cz>
15984
15985 PR ipa/79043
15986 * function.c (set_cfun): Add new argument force.
15987 * function.h (set_cfun): Likewise.
15988 * ipa-inline-transform.c (inline_call): Use the function when
15989 strict alising from is dropped for function we inline to.
15990
15991 2017-01-13 Richard Biener <rguenther@suse.de>
15992
15993 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
15994 for dumping GIMPLE INTEGER_CSTs.
15995
15996 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15997
15998 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
15999 to 201112L since C++17.
16000
16001 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
16002
16003 PR sanitizer/78887
16004 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
16005 if -fsanitize=kernel-address is present.
16006
16007 2017-01-13 Richard Biener <rguenther@suse.de>
16008
16009 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
16010 as _Literal ( type ) number in case usual suffixes do not
16011 preserve all information.
16012
16013 2017-01-13 Richard Biener <rguenther@suse.de>
16014
16015 PR tree-optimization/77283
16016 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
16017 and ssa-iterators.h.
16018 (is_feasible_trace): Implement a cost model based on joiner
16019 PHI node uses.
16020
16021 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
16022
16023 PR target/79004
16024 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
16025 char or short to __float128/_Float128 directly.
16026
16027 2017-01-12 Martin Sebor <msebor@redhat.com>
16028
16029 to -Wformat-overflow.
16030 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
16031 (min_bytes_remaining): Same.
16032 (get_string_length): Same.
16033 (format_string): Same.
16034 (format_directive): Same.
16035 (add_bytes): Same.
16036 (pass_sprintf_length::handle_gimple_call): Same.
16037
16038 2017-01-12 Jakub Jelinek <jakub@redhat.com>
16039
16040 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
16041 info.nowrite calls with no lhs that can't throw. Return bool
16042 whether gsi_remove has been called or not.
16043 (pass_sprintf_length::handle_gimple_call): Return bool whether
16044 try_substitute_return_value called gsi_remove. Formatting fix.
16045 (pass_sprintf_length::execute): Don't use gsi_remove if
16046 handle_gimple_call returned true.
16047
16048 PR bootstrap/79069
16049 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
16050 be removed due to side-effects, don't remove following barrier nor
16051 turn the successor edge into fallthru edge.
16052
16053 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16054
16055 PR target/79044
16056 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
16057 element-reversing loads and stores as not swappable.
16058
16059 2017-01-12 Nathan Sidwell <nathan@acm.org>
16060 Nicolai Stange <nicstange@gmail.com>
16061
16062 * combine.c (try_combine): Don't ignore result of overlap checking
16063 loop. Combine overlap & asm check into single loop.
16064
16065 2017-01-12 Richard Biener <rguenther@suse.de>
16066
16067 * tree-pretty-print.c (dump_generic_node): Provide -gimple
16068 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
16069
16070 2017-01-12 Richard Biener <rguenther@suse.de>
16071
16072 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
16073 and TS_TARGET_OPTION directly derive from TS_BASE.
16074 * tree-core.h (tree_optimization_option): Derive from tree_base.
16075 (tree_target_option): Likewise.
16076
16077 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
16078
16079 * config/i386/i386.c (memory_address_length): Increase len
16080 only when rip_relative_addr_p returns false.
16081
16082 2017-01-11 Julia Koval <julia.koval@intel.com>
16083
16084 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
16085 (OPTION_MASK_ISA_SGX_SET): New.
16086 (ix86_handle_option): Handle OPT_msgx.
16087 * config.gcc: Added sgxintrin.h.
16088 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
16089 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
16090 * config/i386/i386.c (ix86_target_string): Add -msgx.
16091 (PTA_SGX): New.
16092 (ix86_option_override_internal): Handle new options.
16093 (ix86_valid_target_attribute_inner_p): Add sgx.
16094 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
16095 * config/i386/i386.opt: Add msgx.
16096 * config/i386/sgxintrin.h: New file.
16097 * config/i386/x86intrin.h: Add sgxintrin.h.
16098
16099 2017-01-11 Jakub Jelinek <jakub@redhat.com>
16100
16101 PR c++/71537
16102 * fold-const.c (maybe_nonzero_address): Return 1 for function
16103 local objects.
16104 (tree_single_nonzero_warnv_p): Don't handle function local objects
16105 here.
16106
16107 PR c++/72813
16108 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
16109 of c-header.
16110
16111 2017-01-11 David Malcolm <dmalcolm@redhat.com>
16112
16113 PR driver/78877
16114 * opts.c: Include "spellcheck.h"
16115 (struct string_fragment): New struct.
16116 (struct edit_distance_traits<const string_fragment &>): New
16117 struct.
16118 (get_closest_sanitizer_option): New function.
16119 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
16120
16121 2017-01-11 Jakub Jelinek <jakub@redhat.com>
16122
16123 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
16124 by 12.
16125 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
16126 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
16127 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
16128 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
16129 for initial die_offset if dwarf_split_debug_info.
16130 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
16131 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
16132 fields.
16133 (output_skeleton_debug_sections): Formatting fix. Use
16134 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
16135 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
16136
16137 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
16138
16139 * config/arm/cortex-a53.md: Add bypasses for
16140 cortex_a53_r2f_cvt.
16141 (cortex_a53_r2f): Only use for transfers.
16142 (cortex_a53_f2r): Likewise.
16143 (cortex_a53_r2f_cvt): Add reservation for conversions.
16144 (cortex_a53_f2r_cvt): Likewise.
16145
16146 2017-01-11 Tamar Christina <tamar.christina@arm.com>
16147
16148 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
16149 to all inlined functions, change static to extern.
16150
16151 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
16152
16153 PR target/78253
16154 * config/arm/arm.c (legitimize_pic_address): Handle reference to
16155 weak symbol.
16156 (arm_assemble_integer): Likewise.
16157
16158 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
16159
16160 * config.gcc: Use new awk script to check CPU, FPU and architecture
16161 parameters for --with-... options.
16162 * config/arm/parsecpu.awk: New file
16163 * config/arm/arm-cpus.in: New file.
16164 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
16165 files.
16166 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
16167 files.
16168 * config/arm/t-arm: Update dependency rules.
16169 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
16170 of processing .def files.
16171 * config/arm/genopt.sh: Deleted.
16172 * config/arm/gentune.sh: Deleted.
16173 * config/arm/arm-cores.def: Deleted.
16174 * config/arm/arm-arches.def: Deleted.
16175 * config/arm/arm-fpus.def: Deleted.
16176 * config/arm/arm-tune.md: Regenerated.
16177 * config/arm/arm-tables.opt: Regenerated.
16178 * config/arm/arm-cpu.h: New generated file.
16179 * config/arm/arm-cpu-data.h: New generated file.
16180 * config/arm/arm-cpu-cdata.h: New generated file.
16181
16182 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
16183
16184 PR lto/79042
16185 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
16186 bit.
16187 (input_varpool_node): Unpack dynamically_initialized bit.
16188
16189 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
16190
16191 PR rtl-optimization/79032
16192 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
16193 the alignment of the adjusted memory reference against that of MODE,
16194 instead of the alignment of the original memory reference.
16195
16196 2017-01-11 Martin Jambor <mjambor@suse.cz>
16197
16198 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
16199 test.
16200 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
16201 decorated functions.
16202
16203 2017-01-11 Richard Biener <rguenther@suse.de>
16204
16205 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
16206 set range/nonnull info for PHI results. Do not set it on
16207 stmts marked for removal.
16208
16209 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
16210
16211 * expr.c (store_field): In the bitfield case, fetch the return value
16212 from the registers before applying a single big-endian adjustment.
16213 Always do a final load for a BLKmode value not larger than a word.
16214
16215 2017-01-10 David Malcolm <dmalcolm@redhat.com>
16216
16217 PR c++/77949
16218 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
16219 that we correctly handle column numbers greater than
16220 LINE_MAP_MAX_COLUMN_NUMBER.
16221
16222 2017-01-10 Martin Sebor <msebor@redhat.com>
16223
16224 PR middle-end/78245
16225 * gimple-ssa-sprintf.c (get_destination_size): Call
16226 {init,fini}object_sizes.
16227 * tree-object-size.c (addr_object_size): Adjust.
16228 (pass_through_call): Adjust.
16229 (pass_object_sizes::execute): Adjust.
16230 * tree-object-size.h (fini_object_sizes): Declare.
16231
16232 2017-01-10 Martin Sebor <msebor@redhat.com>
16233
16234 PR tree-optimization/78775
16235 * builtins.c (get_size_range): Move...
16236 * calls.c: ...to here.
16237 (alloc_max_size): Accept zero argument.
16238 (operand_signed_p): Remove.
16239 (maybe_warn_alloc_args_overflow): Call get_size_range.
16240 * calls.h (get_size_range): Declare.
16241
16242 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
16243
16244 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
16245 from TI's devices.csv file as of September 2016.
16246 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
16247
16248 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
16249
16250 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
16251 * doc/invoke.texi: Likewise.
16252 * doc/md.texi: Likewise.
16253 * doc/objc.texi: Likewise.
16254
16255 2017-01-10 Joshua Conner <joshconner@google.com>
16256
16257 * config/arm/fuchsia-elf.h: New file.
16258 * config/fuchsia.h: New file.
16259 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
16260 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
16261 targets.
16262 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
16263
16264 2016-01-10 Richard Biener <rguenther@suse.de>
16265
16266 PR tree-optimization/79034
16267 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
16268 Propagate out degenerate PHIs in the joiner.
16269
16270 2017-01-10 Martin Liska <mliska@suse.cz>
16271
16272 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
16273 (sort_congruence_classes_by_decl_uid): Likewise.
16274 (sort_congruence_class_groups_by_decl_uid): Likewise.
16275 (sem_item_optimizer::merge_classes): Sort class, groups in these
16276 classes and members in the groups by DECL_UID of declarations.
16277 This would make merge operations stable.
16278
16279 2017-01-10 Martin Liska <mliska@suse.cz>
16280
16281 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
16282 usage of m_classes_vec.
16283 (sem_item_optimizer::~sem_item_optimizer): Likewise.
16284 (sem_item_optimizer::get_group_by_hash): Likewise.
16285 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
16286 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
16287 (sem_item_optimizer::verify_classes): Likewise.
16288 (sem_item_optimizer::process_cong_reduction): Likewise.
16289 (sem_item_optimizer::dump_cong_classes): Likewise.
16290 (sem_item_optimizer::merge_classes): Likewise.
16291 * ipa-icf.h (congruence_class_hash): Rename from
16292 congruence_class_group_hash. Remove declaration of m_classes_vec.
16293
16294 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
16295
16296 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
16297 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
16298 * config.gcc: Add avx512vpopcntdqintrin.h.
16299 * config/i386/avx512vpopcntdqintrin.h: New.
16300 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
16301 * config/i386/i386-builtin-types.def: Add new types.
16302 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
16303 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
16304 __builtin_ia32_vpopcountq_v8di_mask): New.
16305 * config/i386/i386-c.c (ix86_target_macros_internal): Define
16306 __AVX512VPOPCNTDQ__.
16307 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
16308 (PTA_AVX512VPOPCNTDQ): Define.
16309 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
16310 TARGET_AVX512VPOPCNTDQ_P): Define.
16311 * config/i386/i386.opt: Add mavx512vpopcntdq.
16312 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
16313 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
16314
16315 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16316
16317 PR middle-end/77484
16318 * predict.def (PRED_CALL): Set to 67.
16319
16320 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
16321
16322 * expr.c (store_field): In the bitfield case, if the value comes from
16323 a function call and is of an aggregate type returned in registers, do
16324 not modify the field mode; extract the value in all cases if the mode
16325 is BLKmode and the size is not larger than a word.
16326
16327 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
16328
16329 PR target/71017
16330 * config/i386/cpuid.h: Fix undefined behavior.
16331
16332 2017-01-04 Jeff Law <law@redhat.com>
16333
16334 PR tree-optimization/79007
16335 PR tree-optimization/67955
16336 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
16337 conservative for pt.null when flag_non_call_exceptions is on.
16338
16339 2017-01-09 Jakub Jelinek <jakub@redhat.com>
16340
16341 PR translation/79019
16342 PR translation/79020
16343 * params.def (PARAM_INLINE_MIN_SPEEDUP,
16344 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
16345 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
16346 in descriptions.
16347 * config/avr/avr.opt (maccumulate-args): Likewise.
16348 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
16349 * common.opt (freport-bug): Likewise.
16350 * cif-code.def (CIF_FINAL_ERROR): Likewise.
16351 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
16352 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
16353 translatable string.
16354 * config/i386/i386.c (function_value_32): Likewise.
16355 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
16356 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
16357 Likewise.
16358 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
16359 * common/config/msp430/msp430-common.c (msp430_handle_option):
16360 Likewise.
16361 * symtab.c (symtab_node::verify_base): Likewise.
16362 * opts.c (set_debug_level): Likewise.
16363 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
16364 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
16365 missing whitespace to translatable strings.
16366 * config/avr/avr.md (bswapsi2): Fix typo in comment.
16367 * config/sh/superh.h: Likewise.
16368 * config/i386/xopintrin.h: Likewise.
16369 * config/i386/znver1.md: Likewise.
16370 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
16371 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
16372 * double-int.h (struct double_int): Likewise.
16373 * double-int.c (div_and_round_double): Likewise.
16374 * wide-int.cc: Likewise.
16375 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
16376 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
16377 * cfgcleanup.c (crossjumps_occured): Renamed to ...
16378 (crossjumps_occurred): ... this.
16379 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
16380 Adjust all uses.
16381
16382 PR tree-optimization/78899
16383 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
16384 returning bool return struct loop *, NULL for failure and the new
16385 loop on success.
16386 (versionable_outer_loop_p): Don't version outer loop if it has
16387 dont_vectorized bit set.
16388 (tree_if_conversion): When versioning outer loop, ensure
16389 tree_if_conversion is performed also on the inner loop of the
16390 non-vectorizable outer loop copy.
16391 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
16392 LOOP_VECTORIZED in inner loop of the scalar outer loop and
16393 prevent vectorization of it.
16394 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
16395 the outer loop vectorization of the non-scalar version is attempted
16396 before vectorization of the inner loop in scalar version. If
16397 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
16398 vectorization of its inner loop.
16399 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
16400 has 2 inner loops, rename also on edges from bb whose single pred
16401 is outer_loop->header. Fix typo in function comment.
16402
16403 2017-01-09 Martin Sebor <msebor@redhat.com>
16404
16405 PR bootstrap/79033
16406 * asan.c (asan_emit_stack_protection): Increase local buffer size
16407 to avoid snprintf truncation warning.
16408
16409 2017-01-09 Andrew Pinski <apinski@cavium.com>
16410
16411 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
16412 to reference thunderx2t99 for the tuning structure
16413 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
16414 Rename to ...
16415 (thunderx2t99_extra_costs): This.
16416 * config/aarch64/aarch64-tune.md: Regenerate.
16417 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
16418 (vulcan_addrcost_table): This.
16419 (vulcan_regmove_cost): Rename to ...
16420 (thunderx2t99_regmove_cost): This.
16421 (vulcan_vector_cost): Rename to ...
16422 (thunderx2t99_vector_cost): this.
16423 (vulcan_branch_cost): Rename to ...
16424 (thunderx2t99_branch_cost): This.
16425 (vulcan_tunings): Rename to ...
16426 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
16427 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
16428
16429 2017-01-09 Martin Jambor <mjambor@suse.cz>
16430
16431 PR ipa/78365
16432 PR ipa/78599
16433 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
16434 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
16435 (propagate_vr_accross_jump_function): Use the above function for all
16436 value range computations for pass-through jump functions and type
16437 converasion from explicit value range values.
16438 (ipcp_propagate_stage): Do not attempt to deduce types of formal
16439 parameters from TYPE_ARG_TYPES.
16440 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
16441 (ipa_write_node_info): Stream type of the actual argument.
16442 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
16443
16444 2017-01-09 Martin Liska <mliska@suse.cz>
16445
16446 PR pch/78970
16447 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
16448 (lookup_compiler): Do not show error message with have_E.
16449
16450 2017-01-09 Jakub Jelinek <jakub@redhat.com>
16451
16452 PR tree-optimization/78938
16453 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
16454 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
16455 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
16456 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
16457 fixes.
16458
16459 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16460
16461 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
16462 is const0_rtx.
16463
16464 2017-01-09 Richard Biener <rguenther@suse.de>
16465
16466 PR tree-optimization/78997
16467 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
16468 name condition properly.
16469
16470 2017-01-09 Richard Biener <rguenther@suse.de>
16471
16472 PR debug/79000
16473 * dwarf2out.c (is_cxx): New overload with context.
16474 (is_naming_typedef_decl): Use it.
16475
16476 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
16477
16478 * invoke.texi (Option Summary): Correct spacing in option lists
16479 and add line breaks to fix over-long lines.
16480
16481 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
16482
16483 PR middle-end/17660
16484
16485 * extend.texi (Common Variable Attributes): Add xref to GCC
16486 Internals manual to explain mode attribute keywords.
16487
16488 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
16489
16490 PR other/16519
16491 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
16492 and Preprocessor Options.
16493 (Options for Linking): Document -pthread here....
16494 (RS/6000 and PowerPC Options): ...not here.
16495 (Solaris 2 Options): ...or here.
16496 * doc/cppopts.texi: Document -pthread.
16497
16498 2017-01-08 Martin Sebor <msebor@redhat.com>
16499
16500 PR middle-end/77708
16501 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
16502 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
16503 New member functions.
16504 (format_directive): Used them.
16505 (add_bytes): Same.
16506 (pass_sprintf_length::handle_gimple_call): Same.
16507 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
16508 to avoid truncation for any argument.
16509 (extract_affine_mul): Same.
16510 * tree.c (get_file_function_name): Same.
16511
16512 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16513
16514 PR middle-end/77484
16515 * predict.def (PRED_INDIR_CALL): Set to 86.
16516
16517 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
16518
16519 PR preprocessor/54124
16520 * doc/cppopts.texi: Reformat -d subtable to list the full name
16521 of the options. Add cross-reference to the docs for the general
16522 compiler -d options.
16523 * doc/invoke.texi (Developer Options): Add cross-reference to the
16524 preprocessor-specific -d option documentation.
16525
16526 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
16527
16528 PR preprocessor/13498
16529 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
16530 redudant material, and reflect new command-line options.
16531 (System Headers): Likewise.
16532
16533 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
16534
16535 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
16536 -isystem, and -idirafter. Copy-edit.
16537 * doc/cppopts.texi: Copy-edit. Remove contradiction about
16538 default for -ftrack-macro-expansion. Delete obsolete and
16539 badly-formatted implementation details about -fdebug-cpp output.
16540 * doc/cppwarnopts.texi: Copy-edit.
16541
16542 2017-01-07 David Malcolm <dmalcolm@redhat.com>
16543
16544 PR c++/72803
16545 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
16546 that the transition from a max line width >= 1<<10 to narrower
16547 lines works correctly.
16548
16549 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
16550
16551 * doc/options.texi (PerFunction): New.
16552 * opt-functions.awk (switch_flags): Map both Optimization and
16553 PerFunction to CL_OPTIMIZATION.
16554 * opth-gen.awk: Test for PerFunction flag along with
16555 Optimization.
16556 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
16557 it only when the latter is present. Skip those that don't in
16558 the hash function generator.
16559 * common.opt (fvar-tracking): Mark as PerFunction instead of
16560 Optimization.
16561 (fvar-tracking-assignments): Likewise.
16562 (fvar-tracking-assignments-toggle): Likewise.
16563 (fvar-tracking-uninit): Likewise.
16564
16565 2017-01-07 Jakub Jelinek <jakub@redhat.com>
16566
16567 PR translation/79018
16568 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
16569 the and store.
16570
16571 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
16572
16573 PR target/57583
16574 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
16575 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
16576 TARGET_LONG_JUMP_TABLE_OFFSETS.
16577 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
16578 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
16579 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
16580 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
16581 * config/m68k/m68k.md (tablejump expander): Likewise.
16582 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
16583 TARGET_LONG_JUMP_TABLE_OFFSETS.
16584 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
16585 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
16586
16587 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
16588 David Holsgrove <david.holsgrove@xilinx.com>
16589
16590 * common/config/microblaze/microblaze-common.c
16591 (TARGET_EXCEPT_UNWIND_INFO): Remove.
16592 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
16593 New prototype.
16594 * config/microblaze/microblaze.c (microblaze_must_save_register)
16595 (microblaze_expand_epilogue, microblaze_return_addr): Handle
16596 calls_eh_return.
16597 (microblaze_eh_return): New function.
16598 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
16599 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
16600 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
16601 * config/microblaze/microblaze.md (eh_return): New pattern.
16602
16603 2017-01-06 Jakub Jelinek <jakub@redhat.com>
16604
16605 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
16606 GCC_DIAGNOSTIC_STRINGIFY): Define.
16607
16608 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
16609
16610 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16611
16612 * config/arm/arm.md (<mcrr>): New.
16613 (<mrrc>): New.
16614 * config/arm/arm.c (arm_arch5te): New.
16615 (arm_option_override): Set arm_arch5te.
16616 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
16617 and mrrc2.
16618 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
16619 (arm_mcrr_qualifiers): ... this. New.
16620 (MRRC_QUALIFIERS): Define to...
16621 (arm_mrrc_qualifiers): ... this. New.
16622 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
16623 __arm_mrrc2): New.
16624 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
16625 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
16626 (MRRCI, mrrc, MRRC): New.
16627 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
16628 VUNSPEC_MRRC2): New.
16629
16630 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16631
16632 * config/arm/arm.md (<mcr>): New.
16633 (<mrc>): New.
16634 * config/arm/arm.c (arm_coproc_builtin_available): Add
16635 support for mcr, mrc, mcr2 and mrc2.
16636 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
16637 (arm_mcr_qualifiers): ... this. New.
16638 (MRC_QUALIFIERS): Define to ...
16639 (arm_mrc_qualifiers): ... this. New.
16640 (MCR_QUALIFIERS): Define to ...
16641 (arm_mcr_qualifiers): ... this. New.
16642 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
16643 __arm_mrc2): New.
16644 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
16645 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
16646 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
16647 VUNSPEC_MRC2): New.
16648
16649 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16650
16651 * config/arm/arm.md (*ldc): New.
16652 (*stc): New.
16653 (<ldc>): New.
16654 (<stc>): New.
16655 * config/arm/arm.c (arm_coproc_builtin_available): Add
16656 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
16657 (arm_coproc_ldc_stc_legitimate_address): New.
16658 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
16659 'qualifier_const_pointer'.
16660 (LDC_QUALIFIERS): Define to...
16661 (arm_ldc_qualifiers): ... this. New.
16662 (STC_QUALIFIERS): Define to...
16663 (arm_stc_qualifiers): ... this. New.
16664 * config/arm/arm-protos.h
16665 (arm_coproc_ldc_stc_legitimate_address): New.
16666 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
16667 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
16668 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
16669 stc2, stcl, stc2l): New.
16670 * config/arm/constraints.md (Uz): New.
16671 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
16672 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
16673 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
16674 VUNSPEC_STC2L): New.
16675
16676 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16677
16678 * config/arm/arm.md (<cdp>): New.
16679 * config/arm/arm.c (neon_const_bounds): Rename this ...
16680 (arm_const_bounds): ... this.
16681 (arm_coproc_builtin_available): New.
16682 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
16683 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
16684 (CDP_QUALIFIERS): Define to...
16685 (arm_cdp_qualifiers): ... this. New.
16686 (void_UP): Define.
16687 (arm_expand_builtin_args): Add case for 6 arguments.
16688 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
16689 (arm_const_bounds): ... this.
16690 (arm_coproc_builtin_available): New.
16691 * config/arm/arm_acle.h (__arm_cdp): New.
16692 (__arm_cdp2): New.
16693 * config/arm/arm_acle_builtins.def (cdp): New.
16694 (cdp2): New.
16695 * config/arm/iterators.md (CDPI,CDP,cdp): New.
16696 * config/arm/neon.md: Rename all 'neon_const_bounds' to
16697 'arm_const_bounds'.
16698 * config/arm/types.md (coproc): New.
16699 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
16700 * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
16701 * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
16702 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
16703
16704 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16705
16706 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
16707 (UBINOP_QUALIFIERS): New.
16708 (si_UP): Define.
16709 (acle_builtin_data): New. Change comment.
16710 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
16711 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
16712 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
16713 arm_acle_builtins.def.
16714 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
16715 (arm_init_acle_builtins): New.
16716 (CRC32_BUILTIN): Remove.
16717 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
16718 crc32cb, crc32ch and crc32cw.
16719 (arm_init_crc32_builtins): Remove.
16720 (arm_init_builtins): Use arm_init_acle_builtins rather
16721 than arm_init_crc32_builtins.
16722 (arm_expand_acle_builtin): New.
16723 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
16724 * config/arm/arm_acle_builtins.def: New.
16725
16726 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16727
16728 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
16729 (arm_builtin_datum): ... this.
16730 (arm_init_neon_builtin): Rename to ...
16731 (arm_init_builtin): ... this. Add a new parameters PREFIX
16732 and USE_SIG_IN_NAME.
16733 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
16734 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
16735 'arm_builtin_datum'.
16736 (arm_init_vfp_builtins): Likewise.
16737 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
16738 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
16739 (arm_expand_neon_args): Rename to ...
16740 (arm_expand_builtin_args): ... this. Rename builtin_arg
16741 enum values and differentiate between ARG_BUILTIN_MEMORY
16742 and ARG_BUILTIN_NEON_MEMORY.
16743 (arm_expand_neon_builtin_1): Rename to ...
16744 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
16745 values, arm_expand_builtin_args and add bool parameter NEON.
16746 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
16747 (arm_expand_vfp_builtin): Likewise.
16748 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
16749
16750 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16751
16752 PR middle-end/77484
16753 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
16754 * predict.c (tree_estimate_probability_bb): Reverse direction of
16755 polymorphic call predictor.
16756
16757 2017-01-06 David Malcolm <dmalcolm@redhat.com>
16758
16759 * passes.c (execute_one_pass): Split out pass-skipping logic into...
16760 (determine_pass_name_match): ...this new function and...
16761 (should_skip_pass_p): ...this new function.
16762
16763 2017-01-06 Nathan Sidwell <nathan@acm.org>
16764
16765 * ipa-visibility.c (function_and_variable_visibility): Reformat
16766 comments and long lines. Remove extrneous if.
16767 * symtab.c (symtab_node::make_decl_local): Fix code format.
16768 (symtab_node::set_section_for_node): Fix comment typo.
16769
16770 2017-01-06 Martin Liska <mliska@suse.cz>
16771
16772 PR bootstrap/79003
16773 * lra-constraints.c: Rename invariant to lra_invariant.
16774 * predict.c (set_even_probabilities): Initialize e to NULL.
16775
16776 2017-01-05 Martin Sebor <msebor@redhat.com>
16777
16778 PR tree-optimization/78910
16779 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
16780 (format_integer): Correct off-by-one error in the handling
16781 of precision with negative numbers in signed conversions..
16782
16783 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
16784
16785 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
16786
16787 2017-01-05 Jakub Jelinek <jakub@redhat.com>
16788
16789 PR tree-optimization/71016
16790 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
16791 factor_out_conditional_conversion. Formatting fix.
16792 (factor_out_conditional_conversion): Add cond_stmt argument.
16793 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
16794 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
16795 Formatting fix.
16796
16797 2017-01-05 David Malcolm <dmalcolm@redhat.com>
16798
16799 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
16800 read-rtl-function.o, and selftest-rtl.o.
16801 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
16802 (selftest::aarch64_test_loading_full_dump): New function.
16803 (selftest::aarch64_run_selftests): New function.
16804 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
16805 selftest::aarch64_run_selftests.
16806 * config/i386/i386.c
16807 (selftest::ix86_test_loading_dump_fragment_1): New function.
16808 (selftest::ix86_test_loading_call_insn): New function.
16809 (selftest::ix86_test_loading_full_dump): New function.
16810 (selftest::ix86_test_loading_unspec): New function.
16811 (selftest::ix86_run_selftests): Call the new functions.
16812 * emit-rtl.c (maybe_set_max_label_num): New function.
16813 * emit-rtl.h (maybe_set_max_label_num): New decl.
16814 * function.c (instantiate_decls): Guard call to
16815 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
16816 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
16817 "static".
16818 * gensupport.c (gen_reader::gen_reader): Pass "false"
16819 for new "compact" param of rtx_reader.
16820 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
16821 rather than an empty string for NULL strings.
16822 * read-md.c: Potentially include config.h rather than bconfig.h.
16823 Wrap include of errors.h with #ifdef GENERATOR_FILE.
16824 (have_error): New global, copied from errors.c.
16825 (md_reader::read_name): Rename to...
16826 (md_reader::read_name_1): ...this, adding "out_loc" param,
16827 and converting "missing name or number" to returning false, rather
16828 than failing.
16829 (md_reader::read_name): Reimplement in terms of read_name_1.
16830 (md_reader::read_name_or_nil): New function.
16831 (md_reader::read_string): Handle "(nil)" by returning NULL.
16832 (md_reader::md_reader): Add new param "compact".
16833 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
16834 (md_reader::read_file): New method.
16835 * read-md.h (md_reader::md_reader): Add new param "compact".
16836 (md_reader::read_file): New method.
16837 (md_reader::is_compact): New accessor.
16838 (md_reader::read_name): Convert return type from void to file_location.
16839 (md_reader::read_name_or_nil): New decl.
16840 (md_reader::read_name_1): New decl.
16841 (md_reader::m_compact): New field.
16842 (noop_reader::noop_reader): Pass "false" for new "compact" param
16843 of rtx_reader.
16844 (rtx_reader::rtx_reader): Add new "compact" param.
16845 (rtx_reader::read_rtx_operand): Make virtual and convert return
16846 type from void to rtx.
16847 (rtx_reader::read_until): New decl.
16848 (rtx_reader::handle_any_trailing_information): New virtual function.
16849 (rtx_reader::postprocess): New virtual function.
16850 (rtx_reader::finalize_string): New virtual function.
16851 (rtx_reader::m_in_call_function_usage): New field.
16852 (rtx_reader::m_reuse_rtx_by_id): New field.
16853 * read-rtl-function.c: New file.
16854 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
16855 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
16856 (selftest::verify_three_block_rtl_cfg): New decl.
16857 * read-rtl-function.h: New file.
16858 * read-rtl.c: Potentially include config.h rather than bconfig.h.
16859 For host, include function.h, memmodel.h, and emit-rtl.h.
16860 (one_time_initialization): New function.
16861 (struct compact_insn_name): New struct.
16862 (compact_insn_names): New array.
16863 (find_code): Handle insn codes in compact dumps.
16864 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
16865 (bind_subst_iter_and_attr): Likewise.
16866 (add_condition_to_string): Likewise.
16867 (add_condition_to_rtx): Likewise.
16868 (apply_attribute_uses): Likewise.
16869 (add_current_iterators): Likewise.
16870 (apply_iterators): Likewise.
16871 (initialize_iterators): Guard usage of apply_subst_iterator with
16872 #ifdef GENERATOR_FILE.
16873 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
16874 (md_reader::read_mapping): Likewise.
16875 (add_define_attr_for_define_subst): Likewise.
16876 (add_define_subst_attr): Likewise.
16877 (read_subst_mapping): Likewise.
16878 (check_code_iterator): Likewise.
16879 (rtx_reader::read_rtx): Likewise. Move one-time initialization
16880 logic to...
16881 (one_time_initialization): New function.
16882 (rtx_reader::read_until): New method.
16883 (read_flags): New function.
16884 (parse_reg_note_name): New function.
16885 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
16886 Handle reuse_rtx ids.
16887 Wrap iterator lookup within #ifdef GENERATOR_FILE.
16888 Add parsing support for RTL dumps, mirroring the special-cases in
16889 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
16890 values, and calling handle_any_trailing_information.
16891 (rtx_reader::read_rtx_operand): Convert return type from void
16892 to rtx, returning return_rtx. Handle case 'e'. Call
16893 finalize_string on XSTR and XTMPL fields.
16894 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
16895 "(nil)" values were omitted. Call the postprocess vfunc on the
16896 return_rtx.
16897 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
16898 class ctor. Initialize m_in_call_function_usage. Call
16899 one_time_initialization.
16900 * rtl-tests.c (selftest::test_uncond_jump): Call
16901 set_new_first_and_last_insn.
16902 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
16903 * selftest-rtl.c: New file.
16904 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
16905 (selftest::get_insn_by_uid): New decl.
16906 * selftest-run-tests.c (selftest::run_tests): Call
16907 read_rtl_function_c_tests.
16908 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
16909 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
16910 dumps.
16911
16912 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
16913
16914 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
16915 operands in a special way. Assert that pos+len <= mode precision.
16916
16917 2017-01-05 Jakub Jelinek <jakub@redhat.com>
16918
16919 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
16920 3 argument Alias with unlimited for the negative form.
16921 (fno-vect-cost-model): Removed.
16922
16923 2017-01-05 Martin Liska <mliska@suse.cz>
16924
16925 * hsa-gen.c (gen_hsa_divmod): New function.
16926 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
16927
16928 2017-01-05 Martin Liska <mliska@suse.cz>
16929
16930 PR pch/78970
16931 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
16932 header.
16933
16934 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16935
16936 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
16937 small constant length operands.
16938
16939 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16940
16941 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
16942 between loop iterations.
16943
16944 2017-01-05 Martin Liska <mliska@suse.cz>
16945
16946 PR sanitizer/78815
16947 * gimplify.c (gimplify_decl_expr): Compare to
16948 asan_poisoned_variables instread of checking flags.
16949 (gimplify_target_expr): Likewise.
16950 (gimplify_expr): Likewise.
16951 (gimplify_function_tree): Conditionally initialize
16952 asan_poisoned_variables.
16953
16954 2017-01-04 Jeff Law <law@redhat.com>
16955
16956 PR tree-optimizatin/78812
16957 * rtl.h (contains_mem_rtx_p): Prototype.
16958 * ifcvt.c (containts_mem_rtx_p): Move from here to...
16959 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
16960 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
16961 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
16962 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
16963
16964 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16965
16966 * input.c (assert_char_at_range): Default-initialize actual_range.
16967
16968 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16969
16970 * df-scan.c (df_ref_create_structure): Make regno unsigned,
16971 to match the caller.
16972
16973 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16974
16975 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
16976 insns after final jump in test to emit dummy move.
16977
16978 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16979
16980 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
16981 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
16982
16983 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16984
16985 * multiple_target.c (create_dispatcher_calls): Init e_next.
16986 * tree-ssa-loop-split.c (split_loop): Init border.
16987 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
16988 scalar_type.
16989
16990 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
16991
16992 PR target/71977
16993 PR target/70568
16994 PR target/78823
16995 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
16996 (altivec_register_operand): Do not return true if the operand
16997 contains a SUBREG mixing SImode and SFmode.
16998 (vsx_register_operand): Likewise.
16999 (vsx_reg_sfsubreg_ok): New predicate.
17000 (vfloat_operand): Do not return true if the operand contains a
17001 SUBREG mixing SImode and SFmode.
17002 (vint_operand): Likewise.
17003 (vlogical_operand): Likewise.
17004 (gpc_reg_operand): Likewise.
17005 (int_reg_operand): Likewise.
17006 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
17007 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
17008 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
17009 SImode and SFmode.
17010 (rs6000_emit_move_si_sf_subreg): New helper function.
17011 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
17012 fixup SUBREGs involving SImode and SFmode.
17013 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
17014 numbers for the new peephole2 optimization.
17015 (peephole2 for SFmode unions): New peephole2 to optimize cases in
17016 the GLIBC math library that do AND/IOR/XOR operations on single
17017 precision floating point.
17018 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
17019 target macros to say whether we need to avoid SUBREGs mixing
17020 SImode and SFmode.
17021 (TARGET_ALLOW_SF_SUBREG): Likewise.
17022 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
17023 (UNSPEC_SI_FROM_SF): Likewise.
17024 (iorxor): Change spacing.
17025 (and_ior_xor): New iterator for AND, IOR, and XOR.
17026 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
17027 (movdi_from_sf_zero_ext): Likewise.
17028 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
17029 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
17030 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
17031 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
17032 (fms<mode>4): Likewise.
17033 (fnma<mode>4): Likewise.
17034 (fnms<mode>4): Likewise.
17035 (nfma<mode>4): Likewise.
17036 (nfms<mode>4): Likewise.
17037
17038 2017-01-04 Marek Polacek <polacek@redhat.com>
17039
17040 PR c++/64767
17041 * doc/invoke.texi: Document -Wpointer-compare.
17042
17043 2017-01-04 Jakub Jelinek <jakub@redhat.com>
17044
17045 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
17046 RejectNegative.
17047
17048 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
17049 descriptions for -gdwarf-5 and emit them as uleb128 instead of
17050 2-byte data.
17051
17052 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
17053
17054 PR target/78056
17055 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
17056 documentation of the powerpc_popcntb_ok attribute.
17057 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
17058 code to issue warning messages if a requested CPU configuration is
17059 not supported by the binary (assembler and loader) toolchain.
17060 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
17061 made to define a built-in function that has been disabled.
17062 (paired_init_builtins): Add assertion to prevent ICE if attempt is
17063 made to define a built-in function that has been disabled.
17064 (altivec_init_builtins): Add comment explaining why definition
17065 of the DST built-in functions is not preceded by an assertion
17066 check. Add assertions to prevent ICE if attempts are made to
17067 define an altivec predicate or an abs* built-in function that has
17068 been disabled.
17069 (htm_init_builtins): Add comment explaining why definition of the
17070 htm built-in functions is not preceded by an assertion check.
17071
17072 2017-01-04 Jeff Law <law@redhat.com>
17073
17074 PR tree-optimizatin/67955
17075 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
17076 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
17077 the points-to solution does not include pt_null. Use DECL_PT_UID
17078 unconditionally.
17079
17080 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
17081
17082 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
17083 Use gen_int_mode instead of gen_lopwart for const_int operands.
17084
17085 2017-01-04 Jakub Jelinek <jakub@redhat.com>
17086
17087 PR tree-optimization/71563
17088 * match.pd: Simplify X << Y into X if Y is known to be 0 or
17089 out of range value - has low bits known to be zero.
17090
17091 2017-01-04 Alan Modra <amodra@gmail.com>
17092
17093 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
17094 * configure: Regenerate.
17095 * config.in: Regenerate.
17096
17097 2017-01-04 Jakub Jelinek <jakub@redhat.com>
17098
17099 PR bootstrap/77569
17100 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
17101 a substring of the message, but strcmp with the whole message. Ifdef
17102 ENABLE_NLS, translate the message first using dgettext.
17103
17104 2017-01-03 Jeff Law <law@redhat.com>
17105
17106 PR tree-optimizatin/78856
17107 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
17108 (mark_threaded_blocks): Remove code to truncate thread paths that
17109 cross multiple loop headers. Instead invalidate the cached loop
17110 iteration information and handle case of a thread path walking
17111 into an irreducible region.
17112
17113 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
17114
17115 PR target/78900
17116 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
17117 assertions. Add support for doing the signbit if the IEEE 128-bit
17118 floating point value is in a GPR.
17119 * config/rs6000/rs6000.md (Fsignbit): Delete.
17120 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
17121 Update the length attribute if the value is in a GPR.
17122 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
17123 the sign or zero extension instruction, since the value is always 0/1.
17124 (signbit<mode>2_dm2): Delete using <Fsignbit>.
17125
17126 PR target/78953
17127 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
17128 extracting SImode to a GPR register so that we can generate a
17129 store, limit the vector to be in a traditional Altivec register
17130 for the vextuwrx instruction.
17131
17132 2017-01-03 Ian Lance Taylor <iant@google.com>
17133
17134 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
17135
17136 2017-01-03 Martin Sebor <msebor@redhat.com>
17137
17138 PR tree-optimization/78696
17139 * gimple-ssa-sprintf.c (format_floating): Correct handling of
17140 precision. Use MPFR for %f for greater fidelity. Correct handling
17141 of %g.
17142 (pass_sprintf_length::compute_format_length): Set width and precision
17143 specified by asrerisk to void_node for vararg functions.
17144 (try_substitute_return_value): Adjust dump output.
17145
17146 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
17147
17148 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
17149
17150 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
17151
17152 * doc/invoke.texi (SPARC options): Document -mlra as the default.
17153 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
17154 -mlra/-mno-lra was passed to the compiler.
17155
17156 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
17157
17158 PR rtl-optimization/65618
17159 * emit-rtl.c (try_split): Move initialization of "before" and
17160 "after" to just before the call to emit_insn_after_setloc.
17161
17162 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
17163
17164 * doc/md.texi (Standard Names): Remove reference to Java frontend.
17165
17166 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
17167
17168 * dwarf2out.c (gen_enumeration_type_die): When
17169 -gno-strict-dwarf, add a DW_AT_encoding attribute.
17170
17171 2017-01-03 Jakub Jelinek <jakub@redhat.com>
17172
17173 PR tree-optimization/78965
17174 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
17175 Change first argument from const call_info & to call_info &. For %n
17176 set info.nowrite to false.
17177
17178 PR middle-end/78901
17179 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
17180 possibly throwing calls.
17181
17182 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
17183 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
17184 and fns handling, rather than in a separate case SSA_NAME.
17185
17186 2017-01-02 Jeff Law <law@redhat.com>
17187
17188 * config/darwin-driver.c (darwin_driver_init): Const-correctness
17189 fixes for first_period and second_period variables.
17190
17191 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
17192
17193 PR target/78967
17194 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
17195 (*insvqi_1): New insn pattern.
17196 (*insvqi_1_mem_rex64): Ditto.
17197 (*insvqi_2): Ditto.
17198 (*insvqi_3): Rename from *insvqi.
17199
17200 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
17201
17202 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
17203
17204 * doc/cfg.texi (Edges): Remove reference to Java.
17205 (Maintaining the CFG): Ditto.
17206
17207 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
17208
17209 PR middle-end/77674
17210 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
17211 transparent aliases.
17212
17213 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
17214
17215 PR middle-end/77484
17216 * predict.def (PRED_CALL): Update hitrate.
17217 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
17218 * predict.c (tree_estimate_probability_bb): Split CALL predictor
17219 into direct/indirect/polymorphic variants.
17220
17221 2017-01-01 Jakub Jelinek <jakub@redhat.com>
17222
17223 Update copyright years.
17224
17225 * gcc.c (process_command): Update copyright notice dates.
17226 * gcov-dump.c (print_version): Ditto.
17227 * gcov.c (print_version): Ditto.
17228 * gcov-tool.c (print_version): Ditto.
17229 * gengtype.c (create_file): Ditto.
17230 * doc/cpp.texi: Bump @copying's copyright year.
17231 * doc/cppinternals.texi: Ditto.
17232 * doc/gcc.texi: Ditto.
17233 * doc/gccint.texi: Ditto.
17234 * doc/gcov.texi: Ditto.
17235 * doc/install.texi: Ditto.
17236 * doc/invoke.texi: Ditto.
17237 \f
17238 Copyright (C) 2017 Free Software Foundation, Inc.
17239
17240 Copying and distribution of this file, with or without modification,
17241 are permitted in any medium without royalty provided the copyright
17242 notice and this notice are preserved.