re PR middle-end/78642 (invalid rtl sharing found in the insn)
[gcc.git] / gcc / ChangeLog
1 2016-12-06 Eric Botcazou <ebotcazou@adacore.com>
2
3 PR middle-end/78642
4 * emit-rtl.c (verify_rtx_sharing) <CLOBBER>: Relax condition.
5 (copy_rtx_if_shared_1) <CLOBBER>: Likewise.
6 (copy_insn_1) <CLOBBER>: Likewise.
7
8 2016-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
9
10 PR target/78688
11 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Use IN_RANGE
12 instead of ((N) >= (X) && (N) <= (Y-X)) to silence warnings about
13 comparing signed to unsigned values.
14 (FUNCTION_ARG_REGNO_P): Likewise.
15
16 2016-12-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17 Stefan Freudenberger <stefan@reservoir.com>
18
19 PR tree-optimization/78646
20 * gimple-ssa-strength-reduction.c (replace_ref): The pointer
21 addition used for the memory base expression should have the type
22 of the candidate.
23
24 2016-12-05 Waldemar Brodkorb <wbx@openadk.org>
25
26 PR target/71721
27 * config.gcc (*-*-uclinux*): Enable posix threads.
28
29 2016-12-05 Andrew Senkevich <andrew.senkevich@intel.com>
30
31 * config/i386/avx512bwintrin.h: Add new k-mask intrinsics.
32 * config/i386/avx512dqintrin.h: Ditto.
33 * config/i386/avx512fintrin.h: Ditto.
34 * config/i386/i386-builtin-types.def (UCHAR_FTYPE_UQI_UQI_PUCHAR,
35 UCHAR_FTYPE_UHI_UHI_PUCHAR, UCHAR_FTYPE_USI_USI_PUCHAR,
36 UCHAR_FTYPE_UDI_UDI_PUCHAR, UCHAR_FTYPE_UQI_UQI, UCHAR_FTYPE_UHI_UHI,
37 UCHAR_FTYPE_USI_USI, UCHAR_FTYPE_UDI_UDI, UQI_FTYPE_UQI_INT,
38 UHI_FTYPE_UHI_INT, USI_FTYPE_USI_INT, UDI_FTYPE_UDI_INT,
39 UQI_FTYPE_UQI, USI_FTYPE_USI, UDI_FTYPE_UDI, UQI_FTYPE_UQI_UQI): New
40 function types.
41 * config/i386/i386-builtin.def (__builtin_ia32_knotqi,
42 __builtin_ia32_knotsi, __builtin_ia32_knotdi,
43 __builtin_ia32_korqi, __builtin_ia32_korsi, __builtin_ia32_kordi,
44 __builtin_ia32_kxnorqi, __builtin_ia32_kxnorsi,
45 __builtin_ia32_kxnordi, __builtin_ia32_kxorqi, __builtin_ia32_kxorsi,
46 __builtin_ia32_kxordi, __builtin_ia32_kandqi,
47 __builtin_ia32_kandsi, __builtin_ia32_kanddi, __builtin_ia32_kandnqi,
48 __builtin_ia32_kandnsi, __builtin_ia32_kandndi): New.
49 * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
50
51 2016-12-05 Segher Boessenkool <segher@kernel.crashing.org>
52
53 * combine.c: Revert r243162.
54
55 2016-12-05 Paolo Bonzini <bonzini@gnu.org>
56
57 * match.pd: Simplify X ? C : 0 where C is a power of 2 and
58 X tests a single bit.
59
60 2016-12-05 Nathan Sidwell <nathan@acm.org>
61
62 * diagnostic.c (diagnostic_check_max_errors): New, broken out of ...
63 (diagnostic_action_after_output): ... here.
64 (diagnostic_report_diagnostic): Call it for non-notes.
65 * diagnostic.h (struct diagnostic_context): Make max_errors signed
66 int.
67 (diagnostic_check_max_errors): Declare.
68
69 2016-12-05 Cupertino Miranda <cmiranda@synopsys.com>
70
71 * config/arc/arc.h (STARTFILE_SPEC): Use default linux specs.
72 (ENDFILE_SPEC): Likewise.
73
74 2016-12-05 Claudiu Zissulescu <claziss@synopsys.com>
75
76 * config/arc/arc-protos.h (insn_is_tls_gd_dispatch): Remove.
77 * config/arc/arc.c (arc_unspec_offset): New function.
78 (arc_finalize_pic): Change.
79 (arc_emit_call_tls_get_addr): Likewise.
80 (arc_legitimize_tls_address): Likewise.
81 (arc_legitimize_pic_address): Likewise.
82 (insn_is_tls_gd_dispatch): Remove.
83 * config/arc/arc.h (INSN_REFERENCES_ARE_DELAYED): Change.
84 * config/arc/arc.md (ls_gd_load): Remove unused pattern.
85 (tls_gd_dispatch): Likewise.
86
87 2016-12-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
88
89 * config/arm/arm.c (TARGET_ASM_INIT_SECTIONS): Fix wrong undef
90 location.
91
92 2016-12-05 Eric Botcazou <ebotcazou@adacore.com>
93
94 * config/sparc/sparc-protos.h (sparc_splitdi_legitimate): Rename to...
95 (sparc_split_reg_mem_legitimate): ...this.
96 (sparc_split_reg_mem): Declare.
97 (sparc_split_mem_reg): Likewise.
98 (sparc_split_regreg_legitimate): Rename to...
99 (sparc_split_reg_reg_legitimate): ...this.
100 * config/sparc/sparc.c (sparc_splitdi_legitimate): Rename to...
101 (sparc_split_reg_mem_legitimate): ...this.
102 (sparc_split_reg_mem): New function.
103 (sparc_split_mem_reg): Likewise.
104 (sparc_split_regreg_legitimate): Rename to...
105 (sparc_split_reg_reg_legitimate): ...this.
106 (sparc_split_reg_reg): New function.
107 * config/sparc/sparc.md (lra): Remove "none" value.
108 (enabled): Adjust to above change.
109 (*movdi_insn_sp32): Remove new (r,T) alternative and reorder others.
110 (DImode splitters): Adjust to above renamings and use new functions.
111 (*movdf_insn_sp32): Remove new (r,T) alternative and reorder others.
112 (DFmode splitters): Adjust to above renamings and use new functions.
113 (*mov<VM64:mode>_insn_sp64): Replace C with Z constraint and use W
114 constraint in conjunction with e.
115 (*mov<VM64:mode>_insn_sp32): Remove new (r,T) alternative, add (o,Y)
116 alternative and reorder others.
117 (VM64:mode splitters): Adjust to above renamings and use new functions.
118
119 2016-12-04 Martin Sebor <msebor@redhat.com>
120
121 PR c/78668
122 * builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New
123 identifier tree nodes.
124 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list.
125 (ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same.
126 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same.
127 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same.
128 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same.
129 * builtins.def (aligned_alloc, calloc, malloc, realloc):
130 Add attribute alloc_size.
131 (alloca): Add attribute alloc_size and returns_nonnull.
132
133 2016-12-04 Uros Bizjak <ubizjak@gmail.com>
134
135 PR target/70322
136 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NEG.
137 (dimode_scalar_chain::compute_convert_gain): Ditto.
138 (dimode_scalar_chain::convert_insn): Ditto.
139
140 2016-12-03 Eric Botcazou <ebotcazou@adacore.com>
141
142 * lra-constraints.c (emit_spill_move): Use gen_lowpart_SUBREG in all
143 cases to build a lowpart SUBREG.
144
145 2016-12-03 Eric Botcazou <ebotcazou@adacore.com>
146 David S. Miller <davem@davemloft.net>
147
148 * config/sparc/constraints.md (U): Adjust comment.
149 * config/sparc/sparc.md (lra): New attribute.
150 (enabled): For base instructions, if the lra attribute is set,
151 return 1 if it is in keeping with TARGET_LRA.
152 (*movdi_insn_sp32): Add lra attribute for alternatives mentioning U
153 constraint and duplicate them with U replaced by r.
154 (*movdf_insn_sp32): Likewise.
155 (*mov<VM64:mode>_insn_sp32): Likewise.
156 (*movtf_insn_sp32): Remove alternatives mentioning U constraint.
157
158 2016-12-02 Jeff Law <law@redhat.com>
159
160 * config/arm/arm.c (arm_handle_cmse_nonsecure_call): Remove unused
161 variable main_variant.
162
163 2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com>
164
165 * config.gcc (powerpc*-*-linux*): Set gnu-indirect-function by
166 default on PowerPC linux systems.
167
168 2016-12-02 Segher Boessenkool <segher@kernel.crashing.org>
169
170 * simplify-rtx.c (simplify_truncation): M2 is not mode, it is
171 GET_MODE (op). Fix this.
172
173 2016-12-02 David Malcolm <dmalcolm@redhat.com>
174
175 PR bootstrap/78616
176 * selftest.c (selftest::assert_strndup_eq): Rename to...
177 (selftest::assert_xstrndup_eq): ...this, and remove call to
178 strndup.
179 (selftest::test_strndup): Rename to...
180 (selftest::test_xstrndup): ...this, updating for above renaming.
181 (selftest::test_libiberty): Update for renaming.
182
183 2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com>
184
185 PR target/78639
186 * config/rs6000/rs6000.md (movdi_internal64): Fix typo in
187 subversion id 242679 that causes the wrong store instruction to be
188 generated if a DImode is in an Altivec register using REG+REG
189 addressing.
190
191 2016-12-02 Uros Bizjak <ubizjak@gmail.com>
192
193 PR target/70322
194 * config/i386/i386.md (*andndi3_doubleword): Add non-BMI alternative
195 and corresponding post-reload splitter.
196
197 2016-12-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
198
199 * config/aarch64/aarch64.h (machine_function): Add
200 reg_is_wrapped_separately field.
201 * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Define new constant.
202 * config/aarch64/aarch64.c (emit_set_insn): Change return type to
203 rtx_insn *.
204 (aarch64_save_callee_saves): Don't save registers that are wrapped
205 separately.
206 (aarch64_restore_callee_saves): Don't restore registers that are
207 wrapped separately.
208 (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p,
209 aarch64_offset_7bit_signed_scaled_p): Move earlier in the file.
210 (aarch64_get_separate_components): New function.
211 (aarch64_get_next_set_bit): Likewise.
212 (aarch64_components_for_bb): Likewise.
213 (aarch64_disqualify_components): Likewise.
214 (aarch64_emit_prologue_components): Likewise.
215 (aarch64_emit_epilogue_components): Likewise.
216 (aarch64_set_handled_components): Likewise.
217 (aarch64_process_components): Likewise.
218 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
219 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
220 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
221 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
222 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
223 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
224
225 2016-12-02 Martin Jambor <mjambor@suse.cz>
226
227 * passes.def: Move pass_rebuild_cgraph_edges to the end of
228 pass_build_ssa_passes.
229
230 2016-12-02 Uros Bizjak <ubizjak@gmail.com>
231
232 * config/alpha/alpha.md (exception_receiver): Copy
233 alpha_gp_ave_rtx return value.
234
235 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
236
237 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
238 for several include directories that may be relative to sysroot.
239 * config/i386/x-mingw32 (gplus_includedir): Define.
240 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
241 (native_system_includedir): Likewise.
242 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
243 override if TARGET_SYSTEM_ROOT is defined.
244 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
245
246 2016-12-02 Jakub Jelinek <jakub@redhat.com>
247
248 PR target/70322
249 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NOT.
250 (dimode_scalar_chain::compute_convert_gain): Likewise.
251 (dimode_scalar_chain::convert_insn): Likewise.
252 * config/i386/i386.md (*one_cmpldi2_doubleword): New
253 define_insn_and_split.
254 (one_cmpl<mode>2): Use SWIM1248x iterator instead of SWIM.
255
256 PR target/78614
257 * rtl.c (copy_rtx): Don't clear used flag here.
258 (shallow_copy_rtx_stat): Clear used flag here unless code the rtx
259 is shareable.
260 * simplify-rtx.c (simplify_replace_fn_rtx): When copying rtx with
261 'E' in format, copy all vectors.
262 * emit-rtl.c (copy_insn_1): Don't clear used flag here.
263 * valtrack.c (cleanup_auto_inc_dec): Likewise.
264 * config/rs6000/rs6000.c (rs6000_frame_related): Likewise.
265
266 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
267 Thomas Preud'homme <thomas.preudhomme@arm.com>
268
269 * config/arm/arm-builtins.c (arm_builtins): Define
270 ARM_BUILTIN_CMSE_NONSECURE_CALLER.
271 (bdesc_2arg): Add line for cmse_nonsecure_caller.
272 (arm_init_builtins): Handle cmse_nonsecure_caller.
273 (arm_expand_builtin): Likewise.
274 * config/arm/arm_cmse.h (cmse_nonsecure_caller): New.
275
276 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
277 Thomas Preud'homme <thomas.preudhomme@arm.com>
278
279 * config/arm/arm.c (detect_cmse_nonsecure_call): New.
280 (cmse_nonsecure_call_clear_caller_saved): New.
281 (arm_reorg): Use cmse_nonsecure_call_clear_caller_saved.
282 (arm_function_ok_for_sibcall): Disable sibcalls for
283 cmse_nonsecure_call.
284 * config/arm/arm-protos.h (detect_cmse_nonsecure_call): New.
285 * config/arm/arm.md (call): Handle cmse_nonsecure_entry.
286 (call_value): Likewise.
287 (nonsecure_call_internal): New.
288 (nonsecure_call_value_internal): New.
289 * config/arm/thumb1.md (*nonsecure_call_reg_thumb1_v5): New.
290 (*nonsecure_call_value_reg_thumb1_v5): New.
291 * config/arm/thumb2.md (*nonsecure_call_reg_thumb2): New.
292 (*nonsecure_call_value_reg_thumb2): New.
293 * config/arm/unspecs.md (UNSPEC_NONSECURE_MEM): New.
294
295 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
296 Thomas Preud'homme <thomas.preudhomme@arm.com>
297
298 * config/arm/arm.c (gimplify.h): New include.
299 (arm_handle_cmse_nonsecure_call): New.
300 (arm_attribute_table): Added cmse_nonsecure_call.
301 (arm_comp_type_attributes): Deny compatibility of function types
302 with without the cmse_nonsecure_call attribute.
303 * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute.
304
305 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
306 Thomas Preud'homme <thomas.preudhomme@arm.com>
307
308 * config/arm/arm.c (output_return_instruction): Clear
309 registers.
310 (thumb2_expand_return): Likewise.
311 (thumb1_expand_epilogue): Likewise.
312 (thumb_exit): Likewise.
313 (arm_expand_epilogue): Likewise.
314 (cmse_nonsecure_entry_clear_before_return): New.
315 (comp_not_to_clear_mask_str_un): New.
316 (compute_not_to_clear_mask): New.
317 * config/arm/thumb1.md (*epilogue_insns): Change length attribute.
318 * config/arm/thumb2.md (*thumb2_return): Disable for
319 cmse_nonsecure_entry functions.
320 (*thumb2_cmse_entry_return): Duplicate thumb2_return pattern for
321 cmse_nonsecure_entry functions.
322
323 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
324 Thomas Preud'homme <thomas.preudhomme@arm.com>
325
326 * config/arm/arm.c (use_return_insn): Change to return with bxns
327 when cmse_nonsecure_entry.
328 (output_return_instruction): Likewise.
329 (arm_output_function_prologue): Likewise.
330 (thumb_pop): Likewise.
331 (thumb_exit): Likewise.
332 (thumb2_expand_return): Assert that entry functions always have simple
333 returns.
334 (arm_expand_epilogue): Handle entry functions.
335 (arm_function_ok_for_sibcall): Disable sibcall for entry functions.
336 (arm_asm_declare_function_name): New.
337 * config/arm/arm-protos.h (arm_asm_declare_function_name): New.
338 * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME): Redefine to
339 use arm_asm_declare_function_name.
340
341 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
342 Thomas Preud'homme <thomas.preudhomme@arm.com>
343
344 * config/arm/arm.c (arm_handle_cmse_nonsecure_entry): New.
345 (arm_attribute_table): Added cmse_nonsecure_entry
346 (arm_compute_func_type): Handle cmse_nonsecure_entry.
347 (cmse_func_args_or_return_in_stack): New.
348 (arm_handle_cmse_nonsecure_entry): New.
349 * config/arm/arm.h (ARM_FT_CMSE_ENTRY): New macro define.
350 (IS_CMSE_ENTRY): Likewise.
351 * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute.
352
353 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
354 Thomas Preud'homme <thomas.preudhomme@arm.com>
355
356 * config.gcc (extra_headers): Added arm_cmse.h.
357 * config/arm/arm-arches.def (ARM_ARCH):
358 (armv8-m): Add FL2_CMSE.
359 (armv8-m.main): Likewise.
360 (armv8-m.main+dsp): Likewise.
361 * config/arm/arm-c.c
362 (arm_cpu_builtins): Added __ARM_FEATURE_CMSE macro.
363 * config/arm/arm-flags.h: Define FL2_CMSE.
364 * config/arm.c (arm_arch_cmse): New.
365 (arm_option_override): New error for unsupported cmse target.
366 * config/arm/arm.h (arm_arch_cmse): New.
367 * config/arm/arm.opt (mcmse): New.
368 * config/arm/arm_cmse.h: New file.
369 * doc/invoke.texi (ARM Options): Add -mcmse.
370 * doc/sourcebuild.texi (arm_cmse_ok): Add new effective target.
371 * doc/extend.texi: Add ARMv8-M Security Extensions entry.
372
373 2016-12-02 Georg-Johann Lay <avr@gjlay.de>
374
375 * config/avr/avr.c: Fix coding rule glitches.
376
377 2016-12-02 Martin Jambor <mjambor@suse.cz>
378
379 * hsa.c (hsa_callable_function_p): Return false for artificial
380 functions.
381
382 2016-12-02 James Greenhalgh <james.greenhalgh@arm.com>
383
384 PR rtl-optimization/78561
385 * varasm.c (recompute_pool_offsets): New.
386 (output_constant_pool): Call it.
387
388 2016-12-02 James Greenhalgh <james.greenhalgh@arm.com>
389
390 PR rtl-optimization/78561
391 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Rename
392 get_pool_size to get_pool_size_upper_bound.
393 (rs6000_stack_info): Likewise.
394 (rs6000_emit_prologue): Likewise.
395 (rs6000_elf_declare_function_name): Likewise.
396 (rs6000_set_up_by_prologue): Likewise.
397 (rs6000_can_eliminate): Likewise, reformat spaces to tabs.
398 * output.h (get_pool_size): Rename to...
399 (get_pool_size_upper_bound): ...This.
400 * varasm.c (get_pool_size): Rename to...
401 (get_pool_size_upper_bound): ...This.
402
403 2016-12-02 Bin Cheng <bin.cheng@arm.com>
404
405 * match.pd: Add new pattern:
406 (cond (cmp (convert? x) c1) (op x c2) c3) -> (op (minmax x c1) c2).
407
408 2016-12-02 Nathan Sidwell <nathan@acm.org>
409
410 * diagnostic.c (diagnostic_report_diagnostic): Remove extraneous
411 braces.
412
413 2016-12-02 Aldy Hernandez <aldyh@redhat.com>
414
415 PR middle-end/78328
416 * gimple-ssa-warn-alloca.c (alloca_call_type): Handle
417 VR_ANTI_RANGE.
418
419 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
420
421 * config/s390/s390.c (s390_save_gprs_to_fprs): Fix RTL sharing
422 problem.
423
424 2016-12-02 Georg-Johann Lay <avr@gjlay.de>
425
426 * config/avr/avr-arch.h (avr_mcu_t) [n_flash]: Remove field.
427 * config/avr/avr-devices.c (AVR_MCU): Remove N_FLASH macro argument.
428 * config/avr/avr-mcus.def (AVR_MCU): Remove initializer for n_flash.
429 * config/avr/avr.c (avr_set_core_architecture) [avr_n_flash]: Use
430 avr_mcu_types.flash_size to compute default value.
431 * config/avr/gen-avr-mmcu-specs.c (print_mcu) [cc1_n_flash]: Use
432 mcu->flash_size to compute value for spec.
433
434 2016-12-02 Georg-Johann Lay <avr@gjlay.de>
435
436 * doc/invoke.texi (AVR Options) [-mabsdata]: Point to absdata.
437 * doc/extend.texi (AVR Variable Attributes) [progmem]: Hint
438 about linker description to avoid progmem altogether.
439 [absdata]: Point to -mabsdata option.
440
441 2016-12-02 Jakub Jelinek <jakub@redhat.com>
442
443 PR rtl-optimization/78547
444 * emit-rtl.c (unshare_all_rtl): Make sure DECL_RTL and
445 DECL_INCOMING_RTL is not shared.
446 * config/i386/i386.c (convert_scalars_to_vectors): If any
447 insns have been converted, adjust all parameter's DEC_RTL and
448 DECL_INCOMING_RTL back from V1TImode to TImode if the parameters have
449 TImode.
450
451 PR rtl-optimization/78575
452 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses): Use
453 DF infrastructure to wrap all V1TImode reg uses into TImode subreg
454 if not already wrapped in a subreg. Make sure df_insn_rescan does not
455 affect further iterations.
456
457 2016-12-02 Martin Liska <mliska@suse.cz>
458
459 PR ipa/78555
460 * sreal.c (sreal::to_int): Make absolute value before shifting.
461 (sreal::operator/): Likewise.
462 (sreal_verify_negative_division): New test.
463 (void sreal_c_tests): Call the new test.
464 * sreal.h (sreal::normalize_up): Use new SREAL_ABS and
465 SREAL_SIGN macros.
466 (sreal::normalize_down): Likewise.
467
468 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
469
470 * combine.c (combine_simplify_rtx): Suppress replacement of
471 "(and (reg) (const_int bit))" with "if_then_else".
472
473 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
474
475 PR target/77822
476 * config/s390/s390.md ("extzv")
477 ("*extzv<mode><clobbercc_or_nocc>")
478 ("*extzvdi<clobbercc_or_nocc>_lshiftrt")
479 ("*<risbg_n>_ior_and_sr_ze")
480 ("*extract1bitdi<clobbercc_or_nocc>")
481 ("*insv<mode><clobbercc_or_nocc>", "*insv_rnsbg_noshift")
482 ("*insv_rnsbg_srl", "*insv<mode>_mem_reg")
483 ("*insvdi_mem_reghigh", "*insvdi_reg_imm"): Use EXTRACT_ARGS_IN_RANGE
484 to validate the arguments of zero_extract and sign_extract.
485
486 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
487
488 PR target/77822
489 * rtl.h (EXTRACT_ARGS_IN_RANGE): New.
490
491 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
492
493 * gcc/config/s390/s390.c (s390_builtin_vectorization_cost): New
494 function.
495 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Define target
496 macro.
497
498 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
499
500 * config/s390/vector.md (vec_halfhalf): New mode iterator.
501 ("vec_pack_trunc_<mode>", "vec_pack_ssat_<mode>")
502 ("vec_pack_usat_<mode>", "vec_unpacks_hi_v16qi")
503 ("vec_unpacks_low_v16qi", "vec_unpacku_hi_v16qi")
504 ("vec_unpacku_low_v16qi", "vec_unpacks_hi_v8hi")
505 ("vec_unpacks_lo_v8hi", "vec_unpacku_hi_v8hi")
506 ("vec_unpacku_lo_v8hi", "vec_unpacks_hi_v4si")
507 ("vec_unpacks_lo_v4si", "vec_unpacku_hi_v4si")
508 ("vec_unpacku_lo_v4si"): New pattern definitions.
509 * config/s390/vx-builtins.md: Move VI_HW_HSD mode iterator to
510 vector.md.
511
512 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
513
514 * config/s390/s390-protos.h (s390_reverse_condition): New
515 prototype.
516 * config/s390/s390.c (s390_canonicalize_comparison): Fold compares
517 of CC mode values.
518 (s390_reverse_condition): New function.
519 * config/s390/s390.h (REVERSE_CC_MODE, REVERSE_CONDITION): Define
520 target macros.
521
522 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
523
524 * config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU)
525 (CCVHUANY): Remove modes.
526 (CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and
527 documentation.
528 * config/s390/s390.c (s390_match_ccmode_set): Rename cc modes.
529 (s390_expand_vec_compare_scalar): Pick one of the cc consumer
530 modes.
531 (s390_branch_condition_mask): Adjust to use the new cc consumer
532 modes. The new modes allow for proper reversal in the middle-end.
533 (s390_expand_vec_compare_cc): Determine the proper cc producer and
534 consumer modes for a comparison.
535 * config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU
536 throughout the file.
537 * config/s390/vx-builtins.md: Likewise.
538
539 2016-12-02 Maxim Ostapenko <m.ostapenko@samsung.com>
540
541 * asan.c (asan_global_struct): Refactor.
542 (create_odr_indicator): New function.
543 (asan_needs_odr_indicator_p): Likewise.
544 (is_odr_indicator): Likewise.
545 (asan_add_global): Introduce odr_indicator_ptr. Pass it into global's
546 constructor.
547 (asan_protect_global): Do not protect odr indicators.
548
549 2016-12-01 Jeff Law <law@redhat.com>
550
551 * tree-ssa-threadedge.c
552 (record_temporary_equivalences_from_stmts_at_dest): Avoid temporary
553 propagation of operands if there are no operands.
554
555 2016-12-02 Jakub Jelinek <jakub@redhat.com>
556
557 PR tree-optimization/78586
558 * gimple-ssa-sprintf.c (format_integer): Don't handle NOP_EXPR,
559 CONVERT_EXPR or COMPONENT_REF here. Formatting fix. For
560 SSA_NAME_DEF_STMT with NOP_EXPR only change argtype if the rhs1's
561 type is INTEGER_TYPE or POINTER_TYPE.
562
563 2016-12-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
564
565 PR target/78577
566 * config/rs6000/vsx.md (vextuhlx): Revise mode of operand 2.
567 (vextuhrx): Likewise.
568 (vextuwlx): Likewise.
569 (vextuwrx): Likewise.
570
571 2016-12-01 David Malcolm <dmalcolm@redhat.com>
572
573 * dwarf2out.c (dwarf2out_c_finalize): Reset early_dwarf and
574 early_dwarf_finished.
575
576 2016-12-01 Eric Botcazou <ebotcazou@adacore.com>
577 David S. Miller <davem@davemloft.net>
578
579 * config/sparc/sparc.opt (mlra): New target option.
580 * config/sparc/sparc.c (TARGET_LRA_P): Define to...
581 (sparc_lra_p): ...this. New function.
582 (D_MODES, DF_MODES): Add missing cast.
583 * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
584 provide these insns when flag_pic.
585 (sethi_di_medlow, losum_di_medlow, seth44, setm44, setl44, sethh,
586 setlm, sethm, setlo, embmedany_sethi, embmedany_losum,
587 embmedany_brsum, embmedany_textuhi, embmedany_texthi,
588 embmedany_textulo, embmedany_textlo): Likewise.
589 (sethi_di_medlow_embmedany_pic): Provide it only with flag_pic.
590
591 2016-12-01 David Edelsohn <dje.gcc@gmail.com>
592
593 PR debug/66419
594 PR c++/78235
595 * dbxout.c (dbxout_type_fields): Skip TEMPLATE_DECLs.
596
597 2016-12-01 Richard Biener <rguenther@suse.de>
598 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
599
600 * vec.h (vec<T, A, vl_embed>::quick_grow_cleared): Guard call to
601 memset if len-oldlen != 0.
602 (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Likewise.
603
604 2016-12-01 Uros Bizjak <ubizjak@gmail.com>
605
606 * config/i386/i386.md (*andndi3_doubleword): Depend on TARGET_SSE2.
607
608 2016-12-01 Georg-Johann Lay <avr@gjlay.de>
609
610 * config/avr/avr.c: Fix coding rule glitches.
611
612 2016-12-01 Markus Trippelsdorf <markus@trippelsdorf.de>
613
614 PR tree-optimization/78598
615 * tree-ssa-loop-prefetch.c (ddown): Cast to signed to avoid
616 overflows.
617
618 2016-12-01 Markus Trippelsdorf <markus@trippelsdorf.de>
619
620 PR rtl-optimization/78596
621 * combine.c (simplify_comparison): Cast to unsigned to avoid
622 left shifting of negative value.
623
624 2016-12-01 Matthias Klose <doko@ubuntu.com>
625
626 * doc/install.texi: Don't use pkg-config to check for bdw-gc.
627
628 2016-12-01 Richard Biener <rguenther@suse.de>
629
630 * tree-ssa-alias.c (indirect_refs_may_alias_p): Do not
631 treat arrays with same type as objects that cannot overlap.
632
633 2016-12-01 Georg-Johann Lay <avr@gjlay.de>
634
635 * config/avr/avr.c (avr_print_operand): Use SYMBOL_REF_P if possible.
636 (avr_handle_addr_attribute, avr_asm_output_aligned_decl_common)
637 (avr_asm_asm_output_aligned_bss, avr_addr_space_convert): Dito.
638
639 2016-12-01 Jakub Jelinek <jakub@redhat.com>
640
641 PR debug/78587
642 * dwarf2out.c (loc_descr_plus_const): For negative offset use
643 uint_loc_descriptor instead of int_loc_descriptor and perform negation
644 in unsigned HOST_WIDE_INT type.
645 (scompare_loc_descriptor): Shift UINTVAL left instead of INTVAL.
646
647 PR target/78614
648 * config/rs6000/rs6000.c (rs6000_frame_related): Call
649 set_used_flags (pat) before any simplifications. Clear used flag on
650 PARALLEL copy. Don't guard add_reg_note call. Call
651 copy_rtx_if_shared on pat before storing it into
652 REG_FRAME_RELATED_EXPR.
653
654 2016-12-01 Alan Modra <amodra@gmail.com>
655
656 * gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly
657 look inside UNSPEC_VSX_XXSPLTW vec.
658
659 2016-12-01 Segher Boessenkool <segher@kernel.crashing.org>
660
661 PR rtl-optimization/78607
662 * combine.c (try_combine): Emit a barrier after a unconditional trap.
663
664 2016-11-30 Michael Meissner <meissner@linux.vnet.ibm.com>
665
666 PR target/78602
667 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): If the
668 element is not a constant or in a register, force it to a
669 register.
670
671 PR target/78560
672 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Force value
673 that will be set to a vector element to be in a register.
674 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Fix thinko that used
675 the wrong multiplier to convert the element number to a byte
676 offset.
677
678 2016-11-30 Vladimir Makarov <vmakarov@redhat.com>
679
680 PR tree-optimization/77856
681 * lra-constraints.c (inherit_in_ebb): Check original regno for
682 invalid invariant regs too. Set only clobbered hard regs for the
683 invalid invariant regs.
684
685 2016-11-30 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
686
687 Commit files forgotten in r242966.
688
689 * config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member.
690 * config/avr/avr-devices.c (avr_mcu_types): Add flash size info.
691 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded
692 prefix check to find wrap-around value, instead use MCU flash size.
693 For 8k flash devices, update link_pmem_wrap spec string to
694 add --pmem-wrap-around=8k.
695 * config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from
696 here...
697 (LINK_SPEC): ...to here.
698
699 2016-11-30 David Malcolm <dmalcolm@redhat.com>
700
701 PR c/78498
702 * selftest.c (selftest::assert_strndup_eq): New function.
703 (selftest::test_strndup): New function.
704 (selftest::test_libiberty): New function.
705 (selftest::selftest_c_tests): Call test_libiberty.
706
707 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org>
708
709 PR rtl-optimization/78610
710 * ira.c (combine_and_move_insns): Don't substitute into TRAP_IF
711 instructions.
712
713 2016-11-30 Bin Cheng <bin.cheng@arm.com>
714
715 PR tree-optimization/78574
716 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Skip loop
717 header PHI that doesn't define biv.
718
719 2016-11-30 Jakub Jelinek <jakub@redhat.com>
720
721 * emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of
722 reset_used_flags.
723
724 * config/i386/i386.c (dimode_scalar_chain::convert_op): Avoid
725 sharing the SUBREG rtx between move and following insn.
726
727 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx
728 for REG_EQUIV argument.
729
730 2016-11-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
731
732 * config/arm/t-rmprofile: Add mappings for Cortex-M23 and Cortex-M33.
733
734 2016-11-30 Markus Trippelsdorf <markus@trippelsdorf.de>
735
736 PR ipa/78555
737 * real.c (real_hash): Add cast to avoid left
738 shifting of negative values.
739
740 2016-11-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
741
742 PR target/78362
743 * config/aarch64/aarch64.md (add<mode>3): Extract inner expression
744 from a subreg in operands[1] and don't call REGNO on a non-reg
745 expression when deciding to force operands[2] into a reg.
746
747 2016-11-30 Claudiu Zissulescu <claziss@synopsys.com>
748 Andrew Burgess <andrew.burgess@embecosm.com>
749
750 * config/arc/arc-protos.h (arc_store_addr_hazard_p): Declare.
751 * config/arc/arc.c (arc_store_addr_hazard_p): New function.
752 (workaround_arc_anomaly): Call arc_store_addr_hazard_p for ARC700.
753 * config/arc/arc700.md: Add define_bypass for store/load.
754
755 2016-11-30 Martin Liska <mliska@suse.cz>
756
757 * cgraph.c (symbol_table::initialize): Initialize
758 ipa_clones_dump_file.
759 (cgraph_node::remove): Report to ipa_clones_dump_file.
760 * cgraph.h: Add new argument (suffix) to cloning methods.
761 * cgraphclones.c (dump_callgraph_transformation): New function.
762 (cgraph_node::create_clone): New argument.
763 (cgraph_node::create_virtual_clone): Likewise.
764 (cgraph_node::create_version_clone): Likewise.
765 * dumpfile.c: Add .ipa-clones dump file.
766 * dumpfile.h (enum tree_dump_index): Add TDI_clones
767 * ipa-inline-transform.c (clone_inlined_nodes): Report operation
768 to dump_callgraph_transformation.
769
770 2016-11-30 Martin Liska <mliska@suse.cz>
771
772 PR sanitizer/78541
773 * asan.c (asan_expand_mark_ifn): Properly
774 select a VAR_DECL from FRAME.* component reference.
775
776 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org>
777
778 PR rtl-optimization/78583
779 * simplify-rtx.c (simplify_truncation): Add check missing from the
780 previous commit.
781
782 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org>
783
784 PR rtl-optimization/78590
785 * combine.c (change_zero_ext): Transform zero_extend of subregs only
786 if the subreg_reg is a scalar integer mode.
787
788 2016-11-30 Jakub Jelinek <jakub@redhat.com>
789
790 PR tree-optimization/78586
791 * gimple-ssa-sprintf.c (format_integer): Use TYPE_MAX_VALUE or
792 TYPE_MIN_VALUE or build_all_ones_cst instead of folding LSHIFT_EXPR.
793 Don't build_int_cst min/max twice. Formatting fix.
794
795 2016-11-30 Markus Trippelsdorf <markus@trippelsdorf.de>
796
797 PR rtl-optimization/78588
798 * combine.c (if_then_else_cond): Also guard against BLKmode.
799 * rtlanal.c (num_sign_bit_copies1): Add assert.
800
801 2016-11-29 Jeff Law <law@redhat.com>
802
803 * common/config/arc/arc-common.c (arc_handle_option): Remove unused
804 variables.
805
806 * lra-constraints.c (check_and_process_move): Constrain the
807 range of DCLASS and SCLASS to avoid false positive out of bounds
808 array index warning.
809
810 2016-11-29 David Malcolm <dmalcolm@redhat.com>
811
812 * doc/install.texi (--with-target-bdw-gc): Remove stray '@'.
813
814 2016-11-29 David Malcolm <dmalcolm@redhat.com>
815
816 PR preprocessor/78569
817 * input.c (get_substring_ranges_for_loc): Fail gracefully if
818 line directives were present.
819
820 2016-11-30 Matthias Klose <doko@ubuntu.com>
821
822 * doc/install.texi: Document configure options --enable-objc-gc
823 and --with-target-bdw-gc.
824
825 2016-11-29 Michael Meissner <meissner@linux.vnet.ibm.com>
826
827 PR target/78594
828 * config/rs6000/rs6000.md (mov<mode>_internal, QHI iterator): Add
829 'x' to stxsi<wd>x print pattern, so that QImode and HImode values
830 residing in traditional altivec registers can be stored
831 correctly.
832
833 2016-11-29 Max Filippov <jcmvbkbc@gmail.com>
834
835 PR target/78603
836 * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
837 overhead loop start between a call and its CALL_ARG_LOCATION
838 note.
839
840 2016-11-29 Waldemar Brodkorb <wbx@openadk.org>
841
842 * config/bfin/linux.h (CPP_SPEC): Define.
843
844 2016-11-29 Martin Sebor <msebor@redhat.com>
845
846 PR tree-optimization/78512
847 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Remove.
848 * config/rs6000/linux.h: Same.
849 * config/rs6000/linux64.h: Same.
850 * config/sol2.h: Same.
851 * config/sol2.c (solaris_printf_pointer_format): Remove.
852 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Remove.
853 * doc/tm.texi: Regenerate.
854 * gimple-ssa-sprintf.c (format_pointer): Rempove.
855 (pass_sprintf_length::compute_format_length): Return bool.
856 (pass_sprintf_length::handle_gimple_call): Adjust.
857 * target.def (printf_pointer_format): Remove.
858 * targhooks.c (default_printf_pointer_format): Remove.
859 (linux_printf_pointer_format): Same.
860 * targhooks.h (default_printf_pointer_format): Remove.
861 (linux_printf_pointer_format, solaris_printf_pointer_format): Same.
862
863 2016-11-29 Uros Bizjak <ubizjak@gmail.com>
864
865 * config/i386/sse.md (UNSPEC_MASKOP): Move from i386.md.
866 (mshift): Ditto.
867 (SWI1248_AVX512BWDQ): Ditto.
868 (SWI1248_AVX512BW): Ditto.
869 (k<any_logic:code><mode>): Ditto.
870 (kandn<mode>): Ditto.
871 (kxnor<mode>): Ditto.
872 (knot<mode>): Ditto.
873 (*k<any_lshift:code><mode>): Ditto.
874 (kortestzhi, kortestchi): Ditto.
875 (kunpckhi, kunpcksi, kunpckdi): Ditto.
876
877 2016-11-29 Andrew Pinski <apinski@cavium.com>
878
879 * tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node
880 for the EQ_EXPR.
881
882 2016-11-29 Chen Gang <gang.chen.5i5j@gmail.com>
883
884 PR target/71331
885 * config/tilegx/tilegx.c (tilegx_function_profiler): Save r10
886 to stack before call mcount.
887 (tilegx_can_use_return_insn_p): Clean up code.
888
889 2016-11-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
890
891 * config/avr/avr-mcu.def: (avr_mcu_types): Add flash size info.
892
893 2016-11-29 David Malcolm <dmalcolm@redhat.com>
894
895 PR c++/72774
896 PR c++/72786
897 PR c++/77922
898 PR c++/78313
899 * spellcheck.c (selftest::test_find_closest_string): Verify that
900 we don't offer the goal string as a suggestion.
901 * spellcheck.h (best_match::get_best_meaningful_candidate): Don't
902 offer the goal string as a suggestion.
903
904
905 2016-11-29 Claudiu Zissulescu <claziss@synopsys.com>
906
907 * config/arc/arc.c (arc_override_options): Avoid selection of
908 compact casesi for ARCv2.
909
910 2016-11-29 Richard Biener <rguenther@suse.de>
911
912 * tree-cfg.c (lower_phi_internal_fn): Do not look for further
913 PHIs after a regular stmt.
914 (stmt_starts_bb_p): PHIs not preceeded by a PHI or a label
915 start a new BB.
916
917 2016-11-29 Martin Liska <mliska@suse.cz>
918
919 PR gcov-profile/78582
920 * tree-profile.c (gimple_gen_time_profiler): Make one extra BB
921 to prevent PHI argument clash.
922
923 2016-11-29 Claudiu Zissulescu <claziss@synopsys.com>
924
925 * config/arc/arc.opt (marclinux): Fix typo.
926 (marclinux_prof): Likewise.
927
928 2016-11-29 Jiong Wang <jiong.wang@arm.com>
929
930 * target.def (stack_protect_runtime_enabled_p): New.
931 * function.c (expand_function_end): Guard stack_protect_epilogue with
932 targetm.stack_protect_runtime_enabled_p.
933 * cfgexpand.c (pass_expand::execute): Likewise.
934 * calls.c (expand_call): Likewise.
935 * doc/tm.texi.in (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): Add it.
936 * doc/tm.texi: Regenerate.
937
938 2016-11-29 Richard Biener <rguenther@suse.de>
939
940 PR middle-end/78546
941 * match.pd: Add CST1 - (CST2 - A) -> CST3 + A missing case.
942
943 2016-11-29 Janus Weil <janus@gcc.gnu.org>
944
945 * doc/contrib.texi: Add a few missing gfortran contributors.
946
947 2016-11-29 Segher Boessenkool <segher@kernel.crashing.org>
948
949 * combine.c (change_zero_ext): Also handle extends from a subreg
950 to a mode bigger than that of the operand of the subreg.
951
952 2016-11-29 Segher Boessenkool <segher@kernel.crashing.org>
953
954 PR target/77687
955 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Emit the
956 stack_restore_tie insn instead of stack_tie, for the SVR4 and
957 SPE ABIs.
958 * config/rs6000/rs6000.md (stack_restore_tie): New define_insn.
959
960 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org>
961
962 * shrink-wrap.c (init_separate_shrink_wrap): Do not clear
963 head_components and tail_components.
964 (spread_components): New algorithm.
965 (emit_common_tails_for_components): Clear head_components and
966 tail_components.
967 (insert_prologue_epilogue_for_components): Write extra output to the
968 dump file for sibcalls and abnormal exits.
969
970 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org>
971
972 PR rtl-optimization/78342
973 * combine.c: Include "cfghooks.h".
974 (try_combine): If we create an unconditional trap, break the basic
975 block in two just after it, and remove the edge between; also, set
976 the *new_direct_jump_p flag so that cleanup_cfg is run.
977
978 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org>
979
980 * simplify-rtx.c (simplify_truncation): Handle truncate of zero_extract
981 and sign_extract.
982
983 2016-11-28 Uros Bizjak <ubizjak@gmail.com>
984
985 * config/i386/i386.md (*and<mode>_1): Merge insn pattern from
986 *andsi_1 and *andhi_1 using SWI24 mode iterator. Use multi-line
987 output template string.
988 (*anddi_1): Use multi-line output template string.
989 (*andqi_1): Ditto.
990
991 2016-11-28 Jakub Jelinek <jakub@redhat.com>
992
993 PR middle-end/78540
994 * rtl.h (remove_reg_equal_equiv_notes): Return bool instead of void.
995 * rtlanal.c (remove_reg_equal_equiv_notes): Return true if any
996 note has been removed.
997 * postreload.c (reload_combine_recognize_pattern): If
998 remove_reg_equal_equiv_notes returns true, call df_notes_rescan.
999
1000 2016-11-28 Martin Sebor <msebor@redhat.com>
1001
1002 PR middle-end/78520
1003 * gimple-ssa-sprintf.c (target_max_value): Remove.
1004 (target_int_max, target_size_max): Use TYPE_MAX_VALUE.
1005 (get_width_and_precision): New function.
1006 (format_integer, format_floating, get_string_length, format_string):
1007 Correct handling of width and precision with unknown value.
1008 (format_directive): Add warning.
1009 (pass_sprintf_length::compute_format_length): Allow for precision
1010 to consist of a sole period with no asterisk or digits after it.
1011
1012 2016-11-28 Jakub Jelinek <jakub@redhat.com>
1013
1014 PR rtl-optimization/78546
1015 * simplify-rtx.c (neg_const_int): When negating most negative
1016 number in mode wider than HOST_BITS_PER_WIDE_INT, use
1017 simplify_const_unary_operation to produce CONST_DOUBLE or
1018 CONST_WIDE_INT.
1019 (simplify_plus_minus): Handle the case where neg_const_int
1020 doesn't return a CONST_INT.
1021
1022 2016-11-28 Markus Trippelsdorf <markus@trippelsdorf.de>
1023
1024 PR target/78556
1025 * config/rs6000/rs6000.c (vspltis_constant): Add casts to avoid
1026 left shifting of negative values.
1027
1028 2016-11-28 Jakub Jelinek <jakub@redhat.com>
1029
1030 PR fortran/78298
1031 * tree-nested.c (convert_local_reference_stmt): After adding
1032 shared (FRAME.NN) clause to omp parallel, task or target,
1033 add it also to all outer omp parallel, task or target constructs.
1034
1035 2016-11-28 Uros Bizjak <ubizjak@gmail.com>
1036
1037 * config/i386/i386.md (UNSPEC_KMASKOP): New.
1038 (UNSPEC_KMOV): Remove.
1039 (kmovw): Expand to plain HImode move.
1040 (k<any_logic:code><mode>): Rename from *k<logic><mode>. Use
1041 register_operand predicates. Tag pattern with UNSPEC_KMASKOP.
1042 Remove corresponding clobber-removing splitter.
1043 (*anddi_1): Remove mask register alternatives.
1044 (*andsi_1): Ditto.
1045 (*andhi_1): Ditto.
1046 (*andqi_1): Ditto.
1047 (*<any_or:code><mode>_1): Ditto.
1048 (*<any_or:code>qi_1): Ditto.
1049 (kandn<mode>): Use SWI1248_AVX512BW mode iterator. Remove
1050 general register alternatives. Tag pattern with UNSPEC_KMASKOP.
1051 Remove corresponding splitter to operation with general registers.
1052 (*andn<SWI38:mode>): Rename from *bmi_andn_<mode>.
1053 (*andn<SWI12:mode>): New pattern.
1054 (*kxnor<mode>): Remove general register alternatives. Tag pattern
1055 with UNSPEC_KMASKOP. Remove corresponding splitter to operation
1056 with general registers.
1057 (knot<mode>): New insn pattern.
1058 (*one_cmpl<mode>2_1): Remove mask register alternatives.
1059 (one_cmplqi2_1): Ditto.
1060 (*k<any_lshift:code><mode>): Rename from *k<mshift><mode>3.
1061 Tag pattern with UNSPEC_KMASKOP. Add mode attribute.
1062 * config/i386/predicates.md (mask_reg_operand): Remove predicate.
1063 * config/i386/sse.md (vec_unpacks_hi_hi): Update pattern
1064 to generate kmaskop shift.
1065 (vec_unpacks_hi_<mode>): Ditto.
1066 * config/i386/i386-builtin.def (__builtin_ia32_kandhi):
1067 Use CODE_FOR_kandhi.
1068 (__builtin_ia32_knothi): Use CODE_FOR_knothi.
1069 (__builtin_ia32_korhi): Use CODE_FOR_kiorhi.
1070 (__builtin_ia32_kxorhi): Use CODE_FOR_kxorhi.
1071
1072 2016-11-28 Richard Biener <rguenther@suse.de>
1073
1074 * tree-vrp.c (vrp_visit_assignment_or_call): Handle simplifications
1075 to SSA names via extract_range_from_ssa_name if allowed.
1076
1077 2016-11-28 Richard Biener <rguenther@suse.de>
1078
1079 PR tree-optimization/78542
1080 * tree-ssa-ccp.c (evaluate_stmt): Only valueize simplification
1081 if allowed.
1082
1083 2016-11-28 Paolo Bonzini <bonzini@gnu.org>
1084
1085 * combine.c (simplify_if_then_else): Simplify IF_THEN_ELSE that
1086 isolates a single bit, even if the condition involves subregs.
1087
1088 2016-11-28 Tamar Christina <tamar.christina@arm.com>
1089
1090 * config/aarch64/aarch64-simd-builtins.def
1091 (BSL_P): Added di and v2di mode.
1092 * config/aarch64/arm_neon.h
1093 (vsriq_n_p64, vsri_n_p64): Added poly type.
1094 (vextq_p64, vext_p64): Likewise.
1095 (vceq_p64, vbslq_p64, vbsl_p64): Likewise.
1096
1097 2016-11-28 Tamar Christina <tamar.christina@arm.com>
1098
1099 * config/aarch64/aarch64-builtins.c (TYPES_SETREGP): Added poly type.
1100 (TYPES_GETREGP): Likewise.
1101 (TYPES_SHIFTINSERTP): Likewise.
1102 (TYPES_COMBINEP): Likewise.
1103 (TYPES_STORE1P): Likewise.
1104 * config/aarch64/aarch64-simd-builtins.def
1105 (combine): Added poly generator.
1106 (get_dregoi): Likewise.
1107 (get_dregci): Likewise.
1108 (get_dregxi): Likewise.
1109 (ssli_n): Likewise.
1110 (ld1): Likewise.
1111 (st1): Likewise.
1112 * config/aarch64/arm_neon.h
1113 (poly64x1x2_t, poly64x1x3_t): New.
1114 (poly64x1x4_t, poly64x2x2_t): Likewise.
1115 (poly64x2x3_t, poly64x2x4_t): Likewise.
1116 (poly64x1_t): Likewise.
1117 (vcreate_p64, vcombine_p64): Likewise.
1118 (vdup_n_p64, vdupq_n_p64): Likewise.
1119 (vld2_p64, vld2q_p64): Likewise.
1120 (vld3_p64, vld3q_p64): Likewise.
1121 (vld4_p64, vld4q_p64): Likewise.
1122 (vld2_dup_p64, vld3_dup_p64): Likewise.
1123 (vld4_dup_p64, vsli_n_p64): Likewise.
1124 (vsliq_n_p64, vst1_p64): Likewise.
1125 (vst1q_p64, vst2_p64): Likewise.
1126 (vst3_p64, vst4_p64): Likewise.
1127 (__aarch64_vdup_lane_p64, __aarch64_vdup_laneq_p64): Likewise.
1128 (__aarch64_vdupq_lane_p64, __aarch64_vdupq_laneq_p64): Likewise.
1129 (vget_lane_p64, vgetq_lane_p64): Likewise.
1130 (vreinterpret_p8_p64, vreinterpretq_p8_p64): Likewise.
1131 (vreinterpret_p16_p64, vreinterpretq_p16_p64): Likewise.
1132 (vreinterpret_p64_f16, vreinterpret_p64_f64): Likewise.
1133 (vreinterpret_p64_s8, vreinterpret_p64_s16): Likewise.
1134 (vreinterpret_p64_s32, vreinterpret_p64_s64): Likewise.
1135 (vreinterpret_p64_f32, vreinterpret_p64_u8): Likewise.
1136 (vreinterpret_p64_u16, vreinterpret_p64_u32): Likewise.
1137 (vreinterpret_p64_u64, vreinterpret_p64_p8): Likewise.
1138 (vreinterpretq_p64_f64, vreinterpretq_p64_s8): Likewise.
1139 (vreinterpretq_p64_s16, vreinterpretq_p64_s32): Likewise.
1140 (vreinterpretq_p64_s64, vreinterpretq_p64_f16): Likewise.
1141 (vreinterpretq_p64_f32, vreinterpretq_p64_u8): Likewise.
1142 (vreinterpretq_p64_u16, vreinterpretq_p64_u32): Likewise.
1143 (vreinterpretq_p64_u64, vreinterpretq_p64_p8): Likewise.
1144 (vreinterpret_f16_p64, vreinterpretq_f16_p64): Likewise.
1145 (vreinterpret_f32_p64, vreinterpretq_f32_p64): Likewise.
1146 (vreinterpret_f64_p64, vreinterpretq_f64_p64): Likewise.
1147 (vreinterpret_s64_p64, vreinterpretq_s64_p64): Likewise.
1148 (vreinterpret_u64_p64, vreinterpretq_u64_p64): Likewise.
1149 (vreinterpret_s8_p64, vreinterpretq_s8_p64): Likewise.
1150 (vreinterpret_s16_p64, vreinterpret_s32_p64): Likewise.
1151 (vreinterpretq_s32_p64, vreinterpret_u8_p64): Likewise.
1152 (vreinterpret_u16_p64, vreinterpretq_u16_p64): Likewise.
1153 (vreinterpret_u32_p64, vreinterpretq_u32_p64): Likewise.
1154 (vset_lane_p64, vsetq_lane_p64): Likewise.
1155 (vget_low_p64, vget_high_p64): Likewise.
1156 (vcombine_p64, vst2_lane_p64): Likewise.
1157 (vst3_lane_p64, vst4_lane_p64): Likewise.
1158 (vst2q_lane_p64, vst3q_lane_p64): Likewise.
1159 (vst4q_lane_p64, vget_lane_p64): Likewise.
1160 (vget_laneq_p64, vset_lane_p64): Likewise.
1161 (vset_laneq_p64, vcopy_lane_p64): Likewise.
1162 (vcopy_laneq_p64, vdup_n_p64): Likewise.
1163 (vdupq_n_p64, vdup_lane_p64): Likewise.
1164 (vdup_laneq_p64, vld1_p64): Likewise.
1165 (vld1q_p64, vld1_dup_p64): Likewise.
1166 (vld1q_dup_p64, vld1q_dup_p64): Likewise.
1167 (vmov_n_p64, vmovq_n_p64): Likewise.
1168 (vst3q_p64, vst4q_p64): Likewise.
1169 (vld1_lane_p64, vld1q_lane_p64): Likewise.
1170 (vst1_lane_p64, vst1q_lane_p64): Likewise.
1171 (vcopy_laneq_p64, vcopyq_laneq_p64): Likewise.
1172 (vdupq_laneq_p64): Likewise.
1173
1174 2016-11-28 Tamar Christina <tamar.christina@arm.com>
1175
1176 * config/arm/arm_neon.h (vget_lane_p64): New.
1177
1178 2016-11-28 Iain Sandoe <iain@codesourcery.com>
1179
1180 PR target/71767
1181 * configure.ac (with_ld64): Use portable method to extract the
1182 major part of the version number.
1183 * configure: Regenerated.
1184
1185 2016-11-28 Jakub Jelinek <jakub@redhat.com>
1186
1187 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Look at
1188 UINTMAX_TYPE rather than SIZE_TYPE. Add gcc_unreachable if
1189 intmax_t couldn't be determined.
1190 (format_integer): Make {,u}intmax_type_node no longer static,
1191 initialize them only when needed. For z and t use
1192 signed_or_unsigned_type_for instead of assuming size_t and
1193 ptrdiff_t have the same precision.
1194
1195 PR lto/78211
1196 * ipa-icf.h (sem_item_optimizer): Add m_classes_vec member.
1197 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Initialize it.
1198 (sem_item_optimizer::~sem_item_optimizer): Traverse m_classes_vec
1199 vector instead of traversing m_classes hash table. Release
1200 m_classes_vec.
1201 (sem_item_optimizer::read_section, sem_item_optimizer::add_class):
1202 Formatting fixes.
1203 (sem_item_optimizer::get_group_by_hash): When inserting a new group,
1204 add it also to m_classes_vec vector.
1205 (sem_item_optimizer::remove_symtab_node,
1206 sem_item_optimizer::build_hash_based_classes,
1207 sem_item_optimizer::parse_nonsingleton_classes): Formatting fixes.
1208 (sem_item_optimizer::subdivide_classes_by_equality,
1209 sem_item_optimizer::subdivide_classes_by_sensitive_refs,
1210 sem_item_optimizer::verify_classes): Traverse m_classes_vec vector
1211 instead of traversing m_classes hash table. Formatting fixes.
1212 (sem_item_optimizer::traverse_congruence_split,
1213 sem_item_optimizer::do_congruence_step_for_index,
1214 sem_item_optimizer::do_congruence_step): Formatting fixes.
1215 (sem_item_optimizer::process_cong_reduction): Traverse m_classes_vec
1216 vector instead of traversing m_classes hash table.
1217 (sem_item_optimizer::dump_cong_classes): Likewise. Formatting fixes.
1218 (sem_item_optimizer::merge_classes): Traverse m_classes_vec vector
1219 instead of traversing m_classes hash table.
1220
1221 2016-11-28 Georg-Johann Lay <avr@gjlay.de>
1222
1223 * config/avr/avr.c (out_movhi_r_mr) [REG_X + PLUS]: Only SBIW if
1224 X is not unused after.
1225
1226 2016-11-28 Bernd Schmidt <bschmidt@redhat.com>
1227
1228 PR rtl-optimization/78120
1229 * rtlanal.c (insn_rtx_cost): Revert previous change.
1230
1231 2016-11-28 Georg-Johann Lay <avr@gjlay.de>
1232
1233 PR 41076
1234 * config/avr/avr.md (SPLIT34): New mode iterator.
1235 (bitop): New code iterator.
1236 (*iorhi3.ashift8-*). New insn-and-split patterns.
1237 (*movhi): Post-reload split reg = 0.
1238 [!MOVW]: Post-reload split reg = reg.
1239 (*mov<mode>) [SI,SF,PSI,SQ,USQ,SA,USA]: Post-reload split reg = reg.
1240 (andhi3, andpsi3, andsi3): Post-reload split reg-reg operations.
1241 (iorhi3, iorpsi3, iorsi3): Same.
1242 (xorhi3, xorpsi3, xorsi3): Same.
1243 * config/avr/avr.c (avr_rtx_costs_1) [IOR && HImode]: Adjust rtx
1244 costs to *iorhi3.ashift8-* patterns.
1245
1246 2016-11-27 Iain Sandoe <iain@codesourcery.com>
1247 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1248
1249 PR target/67710
1250 * config.in: Regenerate
1251 * config/darwin-driver.c (darwin_driver_init): Emit a version string
1252 for the assembler.
1253 * config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests.
1254 * config/darwin.opt(asm_macosx_version_min): New.
1255 * config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC.
1256 * configure: Regenerate
1257 * configure.ac: Check for mmacosx-version-min handling.
1258
1259 2016-11-27 Iain Sandoe <iain@codesourcery.com>
1260
1261 PR target/57438
1262 * config/i386/i386.c (ix86_code_end): Note that we emitted code
1263 where the function might otherwise appear empty for picbase thunks.
1264 (ix86_output_function_epilogue): If we find a zero-sized function
1265 assume that reaching it is UB and trap. If we find a trailing label
1266 append a nop.
1267 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): If we
1268 find a zero-sized function assume that reaching it is UB and trap.
1269 If we find a trailing label, append a nop.
1270
1271 2016-11-27 Iain Sandoe <iain@codesourcery.com>
1272
1273 PR target/71767
1274 * config/darwin-sections.def (picbase_thunk_section): New.
1275 * config/darwin.c (darwin_init_sections): Set up picbase thunk
1276 section. (darwin_rodata_section, darwin_objc2_section,
1277 machopic_select_section, darwin_asm_declare_constant_name,
1278 darwin_emit_weak_or_comdat, darwin_function_section): Don’t use
1279 coalesced with newer linkers.
1280 (darwin_override_options): Decide on usage of coalesed sections
1281 on the basis of the target linker version.
1282 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): New.
1283 * config/darwin.opt (mtarget-linker): New.
1284 * config/i386/i386.c (ix86_code_end): Do not force the thunks into
1285 a coalesced section, instead use a thunks section.
1286
1287 2016-11-27 Iain Sandoe <iain@codesourcery.com>
1288
1289 PR target/71767
1290 * configure.ac (with-ld64): New var, set for Darwin, set on
1291 detection of ld64, gcc_cv_ld64_export_dynamic: New, New test.
1292 * config/darwin.h: Use LD64_HAS_DYNAMIC export. DEF_LD64: New, define.
1293 * config/darwin10.h(DEF_LD64): Update for this target version.
1294 * config/darwin12.h(LINK_GCC_C_SEQUENCE_SPEC): Remove rdynamic test.
1295 (DEF_LD64): Update for this target version.
1296 * configure: Regenerated.
1297 * config.in: Regenerated.
1298
1299 2016-11-27 Iain Sandoe <iain@codesourcery.com>
1300
1301 PR target/71767
1302 * config/darwin.c (imachopic_indirection_name): Make data
1303 section indirections linker-visible.
1304 * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make local
1305 constant labels linker-visible.
1306
1307 2016-11-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1308
1309 * tree.c (build_common_tree_nodes): Initialize ptrdiff_type_node.
1310 (free_lang_data): Remove assignment to ptrdiff_type_node.
1311
1312 2016-11-25 Jakub Jelinek <jakub@redhat.com>
1313
1314 PR rtl-optimization/78526
1315 * simplify-rtx.c (simplify_immed_subreg): Don't use wi::extract_uhwi
1316 beyond val's precision.
1317
1318 PR rtl-optimization/78527
1319 * combine.c (make_compound_operation_int): Ignore LSHIFTRT with
1320 out of bounds shift count.
1321
1322 2016-11-25 Martin Liska <mliska@suse.cz>
1323
1324 PR web/71666
1325 * doc/invoke.texi (-fprofile-use): Fix reference to a section
1326 where -fprofile-generate is documented.
1327
1328 2016-11-25 Martin Liska <mliska@suse.cz>
1329
1330 PR gcov-profile/78086
1331 * coverage.c (build_init_ctor): Don't use priority {cd}tors if
1332 not supported by a target. Set priority to 100 if possible.
1333 (build_gcov_exit_decl): Likewise.
1334
1335 2016-11-25 Richard Biener <rguenther@suse.de>
1336
1337 PR ipa/78515
1338 * ipa-prop.c (compute_complex_assign_jump_func): Properly identify
1339 unary, binary and single RHSs.
1340 * tree.def (BIT_INSERT_EXPR): Adjust tree code name.
1341
1342 2016-11-25 Bin Cheng <bin.cheng@arm.com>
1343
1344 PR middle-end/78507
1345 PR middle-end/78510
1346 PR middle-end/78517
1347 * match.pd ((cond (cmp (convert1? @1) @3) (convert2? @1) @2)): Use
1348 cmp directly, rather than cmp_code. Initialize code to ERROR_MARK
1349 and set it to result code if transformation is valid. Use code EQ
1350 directly in last simplification case.
1351
1352 2016-11-25 Richard Biener <rguenther@suse.de>
1353
1354 * gimple-fold.c (fold_stmt_1): Check may_propagate_copy
1355 before valueizing return stmts.
1356
1357 2016-11-24 Richard Biener <rguenther@suse.de>
1358
1359 PR tree-optimization/78343
1360 * passes.def: Add CD-DCE pass after loop splitting.
1361 * tree-ssa-dce.c (find_obviously_necessary_stmts): Move
1362 SCEV init/finalize ...
1363 (perform_tree_ssa_dce): ... here. Deal with being
1364 executed inside the loop pipeline in aggressive mode.
1365
1366 2016-11-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
1367
1368 * tree-ssa-math-opts.c (struct symbolic_number): Improve comment.
1369
1370 2016-11-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
1371
1372 PR tree-optimization/77673
1373 * tree-ssa-math-opts.c (struct symbolic_number): Add new src field.
1374 (init_symbolic_number): Initialize src field from src parameter.
1375 (perform_symbolic_merge): Select most dominated statement as the
1376 source statement. Set src field of resulting n structure from the
1377 input src with the lowest address.
1378 (find_bswap_or_nop): Rename source_stmt into ins_stmt.
1379 (bswap_replace): Rename src_stmt into ins_stmt. Initially get source
1380 of load from src field rather than insertion statement. Cancel
1381 optimization if statement analyzed is not dominated by the insertion
1382 statement.
1383 (pass_optimize_bswap::execute): Rename src_stmt to ins_stmt. Compute
1384 dominance information.
1385
1386 2016-11-25 Eric Botcazou <ebotcazou@adacore.com>
1387
1388 PR ada/67205
1389 * config/mips/mips.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
1390
1391 2016-11-25 Martin Jambor <mjambor@suse.cz>
1392
1393 PR tree-optimization/70965
1394 * passes.def (pass_build_ssa_passes): Add pass_rebuild_cgraph_edges.
1395
1396 2016-11-24 James Greenahlgh <james.greenhalgh@arm.com>
1397
1398 PR target/78509
1399 * config/i386/i386.c (i386_excess_precision): Do not return
1400 FLT_EVAL_METHOD_UNPREDICTABLE when "type" is
1401 EXCESS_PRECISION_TYPE_STANDARD.
1402 * target.def (excess_precision): Document that targets should
1403 not return FLT_EVAL_METHOD_UNPREDICTABLE when "type" is
1404 EXCESS_PRECISION_TYPE_STANDARD or EXCESS_PRECISION_TYPE_FAST.
1405 Fix typo in first sentence.
1406 * doc/tm.texi: Regenerate.
1407
1408 2016-11-25 Richard Biener <rguenther@suse.de>
1409
1410 PR tree-optimization/78396
1411 * tree-vectorizer.c (vectorize_loops): When the if-converted
1412 body contains masked loads or stores do not attempt to
1413 basic-block-vectorize it.
1414
1415 2016-11-25 Richard Sandiford <richard.sandiford@arm.com>
1416 Alan Hayward <alan.hayward@arm.com>
1417 David Sherwood <david.sherwood@arm.com>
1418
1419 * function.h (spill_slot_alignment): Declare.
1420 * function.c (spill_slot_alignment): New function.
1421 * lra-spills.c (slot): Add align and size fields.
1422 (assign_mem_slot): Use them in the call to assign_stack_local.
1423 (add_pseudo_to_slot): Update the fields.
1424 (assign_stack_slot_num_and_sort_pseudos): Initialise the fields.
1425
1426 2016-11-25 Richard Sandiford <richard.sandiford@arm.com>
1427 Alan Hayward <alan.hayward@arm.com>
1428 David Sherwood <david.sherwood@arm.com>
1429
1430 * stor-layout.c (layout_type): Allow the caller to set the mode of
1431 a float type. Only choose one here if the mode is still VOIDmode.
1432 * tree.c (build_common_tree_nodes): Set the type mode of decimal
1433 floats before calling layout_type.
1434 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
1435
1436 2016-11-25 Richard Sandiford <richard.sandiford@arm.com>
1437
1438 * tree-tailcall.c (find_tail_calls): Allow calls to reference
1439 local variables if all references are known to be direct.
1440
1441 2016-11-25 Jakub Jelinek <jakub@redhat.com>
1442 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1443
1444 PR middle-end/78501
1445 * tree-vrp.c (extract_range_basic): Check for ptrdiff_type_node to be
1446 non null and it's precision matches precision of lhs's type.
1447
1448 2016-11-24 Martin Sebor <msebor@redhat.com>
1449
1450 PR tree-optimization/78476
1451 * gimple-ssa-sprintf.c (struct pass_sprintf_length::call_info):
1452 Add a member.
1453 (handle_gimple_call): Adjust signature.
1454 (try_substitute_return_value): Remove calls to bounded functions
1455 with zero buffer size whose result is known.
1456 (pass_sprintf_length::execute): Adjust call to handle_gimple_call.
1457
1458 2016-11-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1459
1460 * varasm.c (assemble_start_function): Wrap align_log definition in
1461 ASM_OUTPUT_MAX_SKIP_ALIGN.
1462
1463 2016-11-24 Uros Bizjak <ubizjak@gmail.com>
1464
1465 * config/i386/i386.md (wide AND insn to QImode splitter): Use
1466 explicit mode macros.
1467 (wide OR insn to QImode splitter): Ditto.
1468
1469 2016-11-24 Vladimir Makarov <vmakarov@redhat.com>
1470
1471 PR rtl-optimization/77541
1472 * lra-constraints.c (struct input_reload): Add field match_p.
1473 (get_reload_reg): Check modes of input reloads to generate unique
1474 value reload pseudo.
1475 (match_reload): Add input reload pseudo for the current insn.
1476
1477 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
1478
1479 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Update
1480 __FLT_EVAL_METHOD__ and __FLT_EVAL_METHOD_C99__ when we switch
1481 architecture levels.
1482 * config/aarch64/aarch64.c (aarch64_promoted_type): Only promote
1483 the aarch64_fp16_type_node, not all HFmode types.
1484 (aarch64_libgcc_floating_mode_supported_p): Support HFmode.
1485 (aarch64_scalar_mode_supported_p): Likewise.
1486 (aarch64_excess_precision): New.
1487 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
1488 (TARGET_SCALAR_MODE_SUPPORTED_P): Likewise.
1489 (TARGET_C_EXCESS_PRECISION): Likewise.
1490
1491 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
1492
1493 * config/aarch64/aarch64-c.c (aarch64_scalar_mode_supported_p): New.
1494 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
1495
1496 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
1497
1498 * config/aarch64/aarch64.md (<optab>sihf2): Convert to expand.
1499 (<optab>dihf2): Likewise.
1500 (aarch64_fp16_<optab><mode>hf2): New.
1501
1502 2016-11-24 Alexander Monakov <amonakov@ispras.ru>
1503
1504 PR target/67822
1505 * config/nvptx/mkoffload.c (main): Allow -fopenmp.
1506
1507 2016-11-24 Eric Botcazou <ebotcazou@adacore.com>
1508
1509 * common/config/sparc/sparc-common.c (sparc_option_optimization_table):
1510 Enable REE at -O2 and higher.
1511 * config/sparc/sparc.c (sparc_option_override): Disable it by default
1512 in 32-bit mode.
1513
1514 2016-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1515
1516 PR target/48863
1517 PR inline-asm/70184
1518 * tree-ssa-ter.c (temp_expr_table): Add reg_vars_cnt field.
1519 (new_temp_expr_table): Initialise reg_vars_cnt.
1520 (free_temp_expr_table): Release reg_vars_cnt.
1521 (process_replaceable): Add reg_vars_cnt argument, set reg_vars_cnt
1522 field of TAB.
1523 (find_replaceable_in_bb): Use the above to record register variable
1524 write occurrences and cancel replacement across them.
1525
1526 2016-11-24 Eric Botcazou <ebotcazou@adacore.com>
1527
1528 PR rtl-optimization/78437
1529 * ree.c (get_uses): New function.
1530 (combine_reaching_defs): When a copy is needed, return false if any
1531 reaching use of the source register reads it in a mode larger than
1532 the mode it is set in and WORD_REGISTER_OPERATIONS is true.
1533
1534 2016-11-24 Martin Liska <mliska@suse.cz>
1535
1536 * gimple-pretty-print.c (dump_edge_probability): New function.
1537 (dump_gimple_switch): Dump label edge probabilities.
1538 (dump_gimple_cond): Likewise.
1539 (dump_gimple_label): Dump
1540 (dump_gimple_bb_header): Dump basic block frequency.
1541 (pp_cfg_jump): Replace e->dest argument with e.
1542 (dump_implicit_edges): Likewise.
1543 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at):
1544 Use gimple_bb (at) instead of at->bb.
1545
1546 2016-11-24 Bernd Schmidt <bschmidt@redhat.com>
1547
1548 * common.opt (flimit-function-alignment): New.
1549 * doc/invoke.texi (-flimit-function-alignment): Document.
1550 * emit-rtl.h (struct rtl_data): Add max_insn_address field.
1551 * final.c (shorten_branches): Set it.
1552 * varasm.c (assemble_start_function): Limit alignment if
1553 requested.
1554
1555 2016-11-24 Richard Biener <rguenther@suse.de>
1556
1557 PR tree-optimization/71595
1558 * cfgloopmanip.h (remove_path): Add irred_invalidated and
1559 loop_closed_ssa_invalidated parameters, defaulted to NULL.
1560 * cfgloopmanip.c (remove_path): Likewise, pass them along to
1561 called functions. Only fix irred flags if the caller didn't
1562 request state.
1563 * tree-ssa-loop-ivcanon.c (unloop_loops): Use add_bb_to_loop.
1564 (unloop_loops): Pass irred_invalidated and loop_closed_ssa_invalidated
1565 to remove_path.
1566
1567 2016-11-24 Bernd Schmidt <bschmidt@redhat.com>
1568
1569 PR rtl-optimization/78120
1570 * ifcvt.c (noce_conversion_profitable_p): Check original cost in all
1571 cases, and additionally test against max_seq_cost for speed
1572 optimization.
1573 (noce_process_if_block): Compute an estimate for the original cost when
1574 optimizing for speed, using the minimum of then and else block costs.
1575
1576 PR rtl-optimization/78120
1577 * rtlanal.c (insn_rtx_cost): Use set_rtx_cost.
1578
1579 PR rtl-optimization/78120
1580 * config/i386/i386.c (ix86_rtx_costs): Fully handle SETs.
1581
1582 2016-11-24 Bin Cheng <bin.cheng@arm.com>
1583
1584 * match.pd: Refine type conversion in result expr for below pattern:
1585 (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).
1586
1587 2016-11-24 Eric Botcazou <ebotcazou@adacore.com>
1588
1589 PR middle-end/78429
1590 * tree.h (wi::fits_to_boolean_p): New predicate.
1591 (wi::fits_to_tree_p): Use it for boolean types.
1592 * tree.c (int_fits_type_p): Likewise.
1593
1594 2016-11-24 Martin Liska <mliska@suse.cz>
1595
1596 * print-tree.c (struct bucket): Remove.
1597 (print_node): Add new argument which drives whether a tree node
1598 is printed briefly or not.
1599 (debug_tree): Replace a custom hash table with hash_set<T>.
1600 * print-tree.h (print_node): Add the argument.
1601
1602 2016-11-24 Chung-Lin Tang <cltang@codesourcery.com>
1603
1604 * config/nios2/nios2.c (nios2_init_libfuncs): Add ATTRIBUTE_UNUSED.
1605
1606 2016-11-23 Peter Bergner <bergner@vnet.ibm.com>
1607
1608 PR target/78458
1609 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return MODE
1610 if it is at least NREGS wide.
1611
1612 2016-11-23 Joseph Myers <joseph@codesourcery.com>
1613
1614 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): For
1615 TARGET_E500_DOUBLE. handle TDmode, TImode and PTImode the same as
1616 TFmode, IFmode and KFmode.
1617
1618 2016-11-23 Joseph Myers <joseph@codesourcery.com>
1619
1620 * config/rs6000/spe.md (*frob_<SPE64:mode>_ti_8): New insn
1621 pattern.
1622
1623 2016-11-23 Segher Boessenkool <segher@kernel.crashing.org>
1624
1625 * combine.c (change_zero_ext): Only change the mode of a hard register
1626 destination if can_change_dest_mode holds for that.
1627
1628 2016-11-23 Jeff Law <law@redhat.com>
1629
1630 * varasm.c (assemble_name): Increase buffer size for name.
1631
1632 * config/spu/spu.md (floatunsdidf2): Remove unused local variable.
1633
1634 2016-11-23 Jakub Kicinski <jakub.kicinski@netronome.com>
1635
1636 * doc/extend.texi: Constify first argument to __builtin_object_size.
1637
1638 2016-11-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
1639
1640 * opth-gen.awk: Use unsigned shifts for bit masks. Allow all bits
1641 to be used. Add brackets around macro argument.
1642
1643 2016-11-23 Uros Bizjak <ubizjak@gmail.com>
1644
1645 * config/i386/i386.md (*<any_or:code>hi_1): Fix operand 2 constraints.
1646
1647 2016-11-23 Jakub Jelinek <jakub@redhat.com>
1648
1649 PR sanitizer/69278
1650 * opts.c (parse_sanitizer_options): For -fsanitize=undefined,
1651 restore enabling also SANITIZE_UNREACHABLE and SANITIZE_RETURN.
1652
1653 2016-11-23 Jakub Jelinek <jakub@redhat.com>
1654
1655 PR middle-end/69183
1656 * omp-low.c (build_outer_var_ref): Change lastprivate argument
1657 to code, pass it recursively, adjust uses. For OMP_CLAUSE_PRIVATE
1658 on worksharing constructs, treat it like clauses on simd construct.
1659 Formatting fix.
1660 (lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass
1661 OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref.
1662 (lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead
1663 of true as last argument to build_outer_var_ref.
1664
1665 2016-11-23 Uros Bizjak <ubizjak@gmail.com>
1666
1667 * config/i386/i386.md (*movqi_internal): Calculate mode
1668 attribute of alternatives 7,8,9 depending on TARGET_AVX512DQ.
1669 <TYPE_MSKMOV>: Emit kmovw for MODE_HI insn mode attribute.
1670 (*k<logic><mode>): Calculate mode attribute depending on
1671 TARGET_AVX512DQ. Emit k<logic>w for MODE_HI insn mode attribute.
1672 (*andqi_1): Calculate mode attribute of alternative 3 depending
1673 on TARGET_AVX512DQ. Emit kandw for MODE_HI insn mode attribute.
1674 (kandn<mode>): Calculate mode attribute of alternative 2 depending
1675 on TARGET_AVX512DQ. Emit kandnw for MODE_HI insn mode attribute.
1676 (kxnor<mode>): Merge insn patterns using SWI1248_AVX512BW mode
1677 iterator. Calculate mode attribute of alternative 1 depending
1678 on TARGET_AVX512DQ. Emit kxnorw for MODE_HI insn mode attribute.
1679 (*one_cmplqi2_1): Calculate mode attribute of alternative 2 depending
1680 on TARGET_AVX512DQ. Emit knotw for MODE_HI insn mode attribute.
1681
1682 2016-11-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1683
1684 PR middle-end/78153
1685 * gimple-fold.c (fold_stmt_1): Handle case for GIMPLE_RETURN.
1686 * tree-vrp.c (extract_range_basic): Handle case for
1687 CFN_BUILT_IN_STRLEN.
1688
1689 2016-11-23 Jeff Law <law@redhat.com>
1690
1691 * config/mcore/mcore.c (emit_new_cond_insn): Fix prototype.
1692
1693 * config/iq2000/iq2000.c (iq2000_rtx_costs): Avoid multiplication
1694 in boolean context warning.
1695
1696 * config/ia64/ia64.c (ia64_emit_insn_before): Fix prototype.
1697
1698 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
1699
1700 PR target/63250
1701 * config/arm/arm-builtins.c (arm_simd_floatHF_type_node): Rename to...
1702 (arm_fp16_type_node): ...This, make visibile.
1703 (arm_simd_builtin_std_type): Rename arm_simd_floatHF_type_node to
1704 arm_fp16_type_node.
1705 (arm_init_simd_builtin_types): Likewise.
1706 (arm_init_fp16_builtins): Likewise.
1707 * config/arm/arm.c (arm_excess_precision): New.
1708 (arm_floatn_mode): Likewise.
1709 (TARGET_C_EXCESS_PRECISION): Likewise.
1710 (TARGET_FLOATN_MODE): Likewise.
1711 (arm_promoted_type): Only promote arm_fp16_type_node.
1712 * config/arm/arm.h (arm_fp16_type_node): Declare.
1713
1714 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
1715
1716 * config/arm/arm.c (arm_convert_to_type): Delete.
1717 (TARGET_CONVERT_TO_TYPE): Delete.
1718 (arm_init_libfuncs): Enable trunc_optab from DFmode to HFmode.
1719 (arm_libcall_uses_aapcs_base): Add trunc_optab from DF- to HFmode.
1720 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): New.
1721 * config/arm/arm.md (truncdfhf2): Only convert through SFmode if we
1722 are in fast math mode, and have no single step hardware instruction.
1723 (extendhfdf2): Only expand through SFmode if we don't have a
1724 single-step hardware instruction.
1725 * config/arm/vfp.md (*truncdfhf2): New.
1726 (extendhfdf2): Likewise.
1727
1728 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
1729
1730 * targhooks.c (default_floatn_mode): Enable _Float16 if a target
1731 provides HFmode.
1732
1733 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
1734
1735 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Delete.
1736 * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): Delete.
1737 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Delete.
1738 * defaults.h (TARGET_FLT_EVAL_METHOD): Delete.
1739 * doc/tm.texi.in (TARGET_FLT_EVAL_METHOD): Delete.
1740 * doc/tm.texi: Regenerate.
1741 * system.h (TARGET_FLT_EVAL_METHOD): Poison.
1742
1743 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
1744
1745 * toplev.c (init_excess_precision): Delete most logic.
1746 * tree.c (excess_precision_type): Rewrite to use
1747 TARGET_EXCESS_PRECISION.
1748 * doc/invoke.texi (-fexcess-precision): Document behaviour in a
1749 more generic fashion.
1750 * ginclude/float.h: Wrap definition of FLT_EVAL_METHOD in
1751 __STDC_WANT_IEC_60559_TYPES_EXT__.
1752
1753 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
1754
1755 * common.opt (fpermitted-flt-eval-methods): New.
1756 * doc/invoke.texi (-fpermitted-flt-eval-methods): Document it.
1757 * flag_types.h (permitted_flt_eval_methods): New.
1758
1759 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
1760
1761 * config/m68k/m68k.c (m68k_excess_precision): New.
1762 (TARGET_C_EXCESS_PRECISION): Define.
1763
1764 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
1765
1766 * config/s390/s390.c (s390_excess_precision): New.
1767 (TARGET_C_EXCESS_PRECISION): Define.
1768
1769 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
1770
1771 * config/i386/i386.c (ix86_excess_precision): New.
1772 (TARGET_C_EXCESS_PRECISION): Define.
1773
1774 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
1775
1776 * target.def (excess_precision): New hook.
1777 * target.h (flt_eval_method): New.
1778 (excess_precision_type): Likewise.
1779 * targhooks.c (default_excess_precision): New.
1780 * targhooks.h (default_excess_precision): New.
1781 * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): New.
1782 * doc/tm.texi: Regenerate.
1783
1784 2016-11-23 Martin Sebor <msebor@redhat.com>
1785
1786 PR middle-end/78461
1787 * gimple-ssa-sprintf.c (format_string): Correct the maxima and
1788 set the minimum number of bytes for an unknown string to zero.
1789
1790 2016-11-23 Martin Jambor <mjambor@suse.cz>
1791 Martin Liska <mliska@suse.cz>
1792
1793 * hsa-builtins.def: New file.
1794 * Makefile.in (BUILTINS_DEF): Add hsa-builtins.def dependency.
1795 * builtins.def: Include hsa-builtins.def.
1796 (DEF_HSA_BUILTIN): New macro.
1797 * dumpfile.h (OPTGROUP_OPENMP): Define.
1798 * dumpfile.c (optgroup_options): Added OPTGROUP_OPENMP.
1799 * gimple.h (gf_mask): Added elements GF_OMP_FOR_GRID_INTRA_GROUP and
1800 GF_OMP_FOR_GRID_GROUP_ITER.
1801 (gimple_omp_for_grid_phony): Added checking assert.
1802 (gimple_omp_for_set_grid_phony): Likewise.
1803 (gimple_omp_for_grid_intra_group): New function.
1804 (gimple_omp_for_set_grid_intra_group): Likewise.
1805 (gimple_omp_for_grid_group_iter): Likewise.
1806 (gimple_omp_for_set_grid_group_iter): Likewise.
1807 * omp-low.c (check_omp_nesting_restrictions): Allow GRID loop where
1808 previosuly only distribute loop was permitted.
1809 (lower_lastprivate_clauses): Allow non tcc_comparison predicates.
1810 (grid_get_kernel_launch_attributes): Support multiple HSA grid
1811 dimensions.
1812 (grid_expand_omp_for_loop): Likewise and also support standalone
1813 distribute constructs. New parameter INTRA_GROUP, updated both users.
1814 (grid_expand_target_grid_body): Support standalone distribute
1815 constructs.
1816 (pass_data_expand_omp): Changed optinfo_flags to OPTGROUP_OPENMP.
1817 (pass_data_expand_omp_ssa): Likewise.
1818 (pass_data_omp_device_lower): Likewsie.
1819 (pass_data_lower_omp): Likewise.
1820 (pass_data_diagnose_omp_blocks): Likewise.
1821 (pass_data_oacc_device_lower): Likewise.
1822 (pass_data_omp_target_link): Likewise.
1823 (grid_lastprivate_predicate): New function.
1824 (lower_omp_for_lastprivate): Call grid_lastprivate_predicate for
1825 gridified loops.
1826 (lower_omp_for): Support standalone distribute constructs.
1827 (grid_prop): New type.
1828 (grid_safe_assignment_p): Check for assignments to group_sizes, new
1829 parameter GRID.
1830 (grid_seq_only_contains_local_assignments): New parameter GRID, pass
1831 it to callee.
1832 (grid_find_single_omp_among_assignments_1): Likewise, improve missed
1833 optimization info messages.
1834 (grid_find_single_omp_among_assignments): Likewise.
1835 (grid_find_ungridifiable_statement): Do not bail out for SIMDs.
1836 (grid_parallel_clauses_gridifiable): New function.
1837 (grid_inner_loop_gridifiable_p): Likewise.
1838 (grid_dist_follows_simple_pattern): Likewise.
1839 (grid_gfor_follows_tiling_pattern): Likewise.
1840 (grid_call_permissible_in_distribute_p): Likewise.
1841 (grid_handle_call_in_distribute): Likewise.
1842 (grid_dist_follows_tiling_pattern): Likewise.
1843 (grid_target_follows_gridifiable_pattern): Support standalone
1844 distribute constructs.
1845 (grid_var_segment): New enum.
1846 (grid_mark_variable_segment): New function.
1847 (grid_copy_leading_local_assignments): Call grid_mark_variable_segment
1848 if a new argument says so.
1849 (grid_process_grid_body): New function.
1850 (grid_eliminate_combined_simd_part): Likewise.
1851 (grid_mark_tiling_loops): Likewise.
1852 (grid_mark_tiling_parallels_and_loops): Likewise.
1853 (grid_process_kernel_body_copy): Support standalone distribute
1854 constructs.
1855 (grid_attempt_target_gridification): New grid variable holding overall
1856 gridification state. Support standalone distribute constructs and
1857 collapse clauses.
1858 * doc/optinfo.texi (Optimization groups): Document OPTGROUP_OPENMP.
1859 * hsa.h (hsa_bb): Add method method append_phi.
1860 (hsa_insn_br): Renamed to hsa_insn_cbr, renamed all
1861 occurences in all files too.
1862 (hsa_insn_br): New class, now the ancestor of hsa_incn_cbr.
1863 (is_a_helper <hsa_insn_br *>::test): New function.
1864 (is_a_helper <hsa_insn_cbr *>::test): Adjust to only cover conditional
1865 branch instructions.
1866 (hsa_insn_signal): Make a direct descendant of
1867 hsa_insn_basic. Add memorder constructor parameter and
1868 m_memory_order and m_signalop member variables.
1869 (hsa_insn_queue): Changed constructor parameters to common form.
1870 Added m_segment and m_memory_order member variables.
1871 (hsa_summary_t): Add private member function
1872 process_gpu_implementation_attributes.
1873 (hsa_function_summary): Rename m_binded_function to
1874 m_bound_function.
1875 (hsa_insn_basic_p): Remove typedef.
1876 (hsa_op_with_type): Change hsa_insn_basic_p into plain pointers.
1877 (hsa_op_reg_p): Remove typedef.
1878 (hsa_function_representation): Change hsa_op_reg_p into plain
1879 pointers.
1880 (hsa_insn_phi): Removed new and delete operators.
1881 (hsa_insn_br): Likewise.
1882 (hsa_insn_cbr): Likewise.
1883 (hsa_insn_sbr): Likewise.
1884 (hsa_insn_cmp): Likewise.
1885 (hsa_insn_mem): Likewise.
1886 (hsa_insn_atomic): Likewise.
1887 (hsa_insn_signal): Likewise.
1888 (hsa_insn_seg): Likewise.
1889 (hsa_insn_call): Likewise.
1890 (hsa_insn_arg_block): Likewise.
1891 (hsa_insn_comment): Likewise.
1892 (hsa_insn_srctype): Likewise.
1893 (hsa_insn_packed): Likewise.
1894 (hsa_insn_cvt): Likewise.
1895 (hsa_insn_alloca): Likewise.
1896 * hsa.c (hsa_destroy_insn): Also handle instances of hsa_insn_br.
1897 (process_gpu_implementation_attributes): New function.
1898 (link_functions): Move some functionality into it. Adjust after
1899 renaming m_binded_functions to m_bound_functions.
1900 (hsa_insn_basic::op_output_p): Add BRIG_OPCODE_DEBUGTRAP
1901 to the list of instructions with no output registers.
1902 (get_in_type): Return this if it is a register of
1903 matching size.
1904 (hsa_get_declaration_name): Moved to...
1905 * hsa-gen.c (hsa_get_declaration_name): ...here. Allocate
1906 temporary string on an obstack instead from ggc.
1907 (query_hsa_grid): Renamed to query_hsa_grid_dim, reimplemented, cut
1908 down to two overloads.
1909 (hsa_allocp_operand_address): Removed.
1910 (hsa_allocp_operand_immed): Likewise.
1911 (hsa_allocp_operand_reg): Likewise.
1912 (hsa_allocp_operand_code_list): Likewise.
1913 (hsa_allocp_operand_operand_list): Likewise.
1914 (hsa_allocp_inst_basic): Likewise.
1915 (hsa_allocp_inst_phi): Likewise.
1916 (hsa_allocp_inst_mem): Likewise.
1917 (hsa_allocp_inst_atomic): Likewise.
1918 (hsa_allocp_inst_signal): Likewise.
1919 (hsa_allocp_inst_seg): Likewise.
1920 (hsa_allocp_inst_cmp): Likewise.
1921 (hsa_allocp_inst_br): Likewise.
1922 (hsa_allocp_inst_sbr): Likewise.
1923 (hsa_allocp_inst_call): Likewise.
1924 (hsa_allocp_inst_arg_block): Likewise.
1925 (hsa_allocp_inst_comment): Likewise.
1926 (hsa_allocp_inst_queue): Likewise.
1927 (hsa_allocp_inst_srctype): Likewise.
1928 (hsa_allocp_inst_packed): Likewise.
1929 (hsa_allocp_inst_cvt): Likewise.
1930 (hsa_allocp_inst_alloca): Likewise.
1931 (hsa_allocp_bb): Likewise.
1932 (hsa_obstack): New.
1933 (hsa_init_data_for_cfun): Initialize obstack.
1934 (hsa_deinit_data_for_cfun): Release memory of the obstack.
1935 (hsa_op_immed::operator new): Use obstack instead of object_allocator.
1936 (hsa_op_reg::operator new): Likewise.
1937 (hsa_op_address::operator new): Likewise.
1938 (hsa_op_code_list::operator new): Likewise.
1939 (hsa_op_operand_list::operator new): Likewise.
1940 (hsa_insn_basic::operator new): Likewise.
1941 (hsa_insn_phi::operator new): Likewise.
1942 (hsa_insn_br::operator new): Likewise.
1943 (hsa_insn_sbr::operator new): Likewise.
1944 (hsa_insn_cmp::operator new): Likewise.
1945 (hsa_insn_mem::operator new): Likewise.
1946 (hsa_insn_atomic::operator new): Likewise.
1947 (hsa_insn_signal::operator new): Likewise.
1948 (hsa_insn_seg::operator new): Likewise.
1949 (hsa_insn_call::operator new): Likewise.
1950 (hsa_insn_arg_block::operator new): Likewise.
1951 (hsa_insn_comment::operator new): Likewise.
1952 (hsa_insn_srctype::operator new): Likewise.
1953 (hsa_insn_packed::operator new): Likewise.
1954 (hsa_insn_cvt::operator new): Likewise.
1955 (hsa_insn_alloca::operator new): Likewise.
1956 (hsa_init_new_bb): Likewise.
1957 (hsa_bb::append_phi): New function.
1958 (gen_hsa_phi_from_gimple_phi): Use it.
1959 (get_symbol_for_decl): Fix dinstinguishing between
1960 global and local functions. Put local variables into a segment
1961 according to their attribute or static flag, if there is one.
1962 (hsa_insn_br::hsa_insn_br): New.
1963 (hsa_insn_br::operator new): Likewise.
1964 (hsa_insn_cbr::hsa_insn_cbr): Set width via ancestor constructor.
1965 (query_hsa_grid_nodim): New function.
1966 (multiply_grid_dim_characteristics): Likewise.
1967 (gen_get_num_threads): Likewise.
1968 (gen_get_num_teams): Reimplemented.
1969 (gen_get_team_num): Likewise.
1970 (gen_hsa_insns_for_known_library_call): Updated calls to the above
1971 helper functions.
1972 (get_memory_order_name): Removed.
1973 (get_memory_order): Likewise.
1974 (hsa_memorder_from_tree): New function.
1975 (gen_hsa_ternary_atomic_for_builtin): Renamed to
1976 gen_hsa_atomic_for_builtin, can also create signals.
1977 (gen_hsa_insns_for_call): Handle many new builtins. Adjust to use
1978 hsa_memory_order_from_tree and gen_hsa_atomic_for_builtin.
1979 (hsa_insn_atomic): Fix function comment.
1980 (hsa_insn_signal::hsa_insn_signal): Fix comment. Update call to
1981 ancestor constructor and initialization of new member variables.
1982 (hsa_insn_queue::hsa_insn_queue): Added initialization of new
1983 member variables.
1984 (hsa_get_host_function): Handle functions with no bound CPU
1985 implementation. Fix binded to bound.
1986 (get_brig_function_name): Likewise.
1987 (HSA_SORRY_ATV): Remove semicolon after macro.
1988 (HSA_SORRY_AT): Likewise.
1989 (omp_simple_builtin::generate): Add missing semicolons.
1990 (hsa_insn_phi::operator new): Removed.
1991 (hsa_insn_br::operator new): Likewise.
1992 (hsa_insn_cbr::operator new): Likewise.
1993 (hsa_insn_sbr::operator new): Likewise.
1994 (hsa_insn_cmp::operator new): Likewise.
1995 (hsa_insn_mem::operator new): Likewise.
1996 (hsa_insn_atomic::operator new): Likewise.
1997 (hsa_insn_signal::operator new): Likewise.
1998 (hsa_insn_seg::operator new): Likewise.
1999 (hsa_insn_call::operator new): Likewise.
2000 (hsa_insn_arg_block::operator new): Likewise.
2001 (hsa_insn_comment::operator new): Likewise.
2002 (hsa_insn_srctype::operator new): Likewise.
2003 (hsa_insn_packed::operator new): Likewise.
2004 (hsa_insn_cvt::operator new): Likewise.
2005 (hsa_insn_alloca::operator new): Likewise.
2006 (get_symbol_for_decl): Accept CONST_DECLs, put them to
2007 readonly segment.
2008 (gen_hsa_addr): Also process CONST_DECLs.
2009 (gen_hsa_addr_insns): Process CONST_DECLs by creating private
2010 copies.
2011 (gen_hsa_unary_operation): Make sure the function does
2012 not use bittype source type for firstbit and lastbit operations.
2013 (gen_hsa_popcount_to_dest): Make sure the function uses a bittype
2014 source type.
2015 * hsa-brig.c (emit_insn_operands): Cope with zero operands in an
2016 instruction.
2017 (emit_branch_insn): Renamed to emit_cond_branch_insn.
2018 Emit the width stored in the class.
2019 (emit_generic_branch_insn): New function.
2020 (emit_insn): Call emit_generic_branch_insn.
2021 (emit_signal_insn): Remove obsolete comment. Update
2022 member variable name, pick a type according to profile.
2023 (emit_alloca_insn): Remove obsolete comment.
2024 (emit_atomic_insn): Likewise.
2025 (emit_queue_insn): Get segment and memory order from the IR object.
2026 (hsa_brig_section): Make allocate_new_chunk, chunks
2027 and cur_chunk provate, add a default NULL parameter to add method.
2028 (hsa_brig_section::add): Added a new parameter, store pointer to
2029 output data there if it is non-NULL.
2030 (emit_function_directives): Use this new parameter instead of
2031 calculating the pointer itself, fix function comment.
2032 (hsa_brig_emit_function): Add forgotten endian conversion.
2033 (hsa_output_kernels): Remove unnecessary building of
2034 kernel_dependencies_vector_type.
2035 (emit_immediate_operand): Declare.
2036 (emit_directive_variable): Also emit initializers of CONST_DECLs.
2037 (gen_hsa_insn_for_internal_fn_call): Also handle IFN_RSQRT.
2038 (verify_function_arguments): Properly detect variadic
2039 arguments.
2040 * hsa-dump.c (hsa_width_specifier_name): New function.
2041 (dump_hsa_insn_1): Dump generic branch instructions, update signal
2042 member variable name. Special dumping for queue objects.
2043 * ipa-hsa.c (process_hsa_functions): Adjust after renaming
2044 m_binded_functions to m_bound_functions. Copy externally visible flag
2045 to the node.
2046 (ipa_hsa_write_summary): Likewise.
2047 (ipa_hsa_read_section): Likewise.
2048
2049 2016-11-23 Richard Biener <rguenther@suse.de>
2050
2051 PR tree-optimization/78396
2052 * tree-vectorizer.c (vectorize_loops): If an innermost loop didn't
2053 vectorize try vectorizing an if-converted body using BB vectorization.
2054
2055 2016-11-23 Richard Sandiford <richard.sandiford@arm.com>
2056 Alan Hayward <alan.hayward@arm.com>
2057 David Sherwood <david.sherwood@arm.com>
2058
2059 * rtlanal.c (subreg_get_info): Use more local variables.
2060 Remark that for HARD_REGNO_NREGS_HAS_PADDING, each scalar unit
2061 occupies at least one register. Assume that full hard registers
2062 have consistent endianness. Share previously-duplicated if block.
2063 Rework the main handling so that it operates on independently-
2064 addressable YMODE-sized blocks. Use subreg_size_lowpart_offset
2065 to check lowpart offsets, without trying to find an equivalent
2066 integer mode first. Handle WORDS_BIG_ENDIAN != REG_WORDS_BIG_ENDIAN
2067 as a final register-endianness correction.
2068
2069 2016-11-23 Segher Boessenkool <segher@kernel.crashing.org>
2070
2071 PR target/77881
2072 PR bootstrap/78390
2073 PR target/78438
2074 PR bootstrap/78477
2075 * combine.c (make_compound_operation_int): Do not convert a subreg of
2076 a non-constant logical shift right to a zero_extract. Handle the case
2077 where some zero bits have been shifted into the range covered by that
2078 subreg.
2079
2080 2016-11-23 Richard Sandiford <richard.sandiford@arm.com>
2081 Alan Hayward <alan.hayward@arm.com>
2082 David Sherwood <david.sherwood@arm.com>
2083
2084 * rtl.h (subreg_size_offset_from_lsb): Declare.
2085 (subreg_offset_from_lsb): New function.
2086 (subreg_size_lowpart_offset): Declare.
2087 (subreg_lowpart_offset): Turn into an inline function.
2088 (subreg_size_highpart_offset): Declare.
2089 (subreg_highpart_offset): Turn into an inline function.
2090 * emit-rtl.c (subreg_size_lowpart_offset): New function.
2091 (subreg_size_highpart_offset): Likewise
2092 * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
2093
2094 2016-11-23 Richard Biener <rguenther@suse.de>
2095
2096 PR tree-optimization/78482
2097 * tree-cfgcleanup.c: Include tree-ssa-loop-niter.h.
2098 (remove_forwarder_block_with_phi): When merging with a loop
2099 header creates a new latch reset number of iteration information
2100 of the loop.
2101
2102 2016-11-23 Eric Botcazou <ebotcazou@adacore.com>
2103
2104 * config/sparc/sparc.md (*ashrsi3_extend): Rename to...
2105 (*ashrsi3_extend0): ...this. Accept constant integers.
2106 (*ashrsi3_extend2): Rename to...
2107 (*ashrsi3_extend1): ...this.
2108 (*ashrsi3_extend2): New pattern.
2109 (*lshrsi3_extend1): Accept constant integers.
2110 (*lshrsi3_extend2): Fix condition on operand 2.
2111
2112 2016-11-23 Martin Liska <mliska@suse.cz>
2113
2114 * config/i386/i386.c: Initialize function pointer to NULL.
2115
2116 2016-11-23 Bin Cheng <bin.cheng@arm.com>
2117
2118 * fold-const.c (fold_cond_expr_with_comparison): Move simplification
2119 for A == C1 ? A : C2 to below.
2120 * match.pd: Move from above to here:
2121 (cond (eq (convert1? x) c1) (convert2? x) c2)
2122 -> (cond (eq x c1) c1 c2).
2123
2124 2016-11-23 Bin Cheng <bin.cheng@arm.com>
2125
2126 * fold-const.c (fold_cond_expr_with_comparison): Move simplification
2127 for A cmp C1 ? A : C2 to below, also simplify remaining code.
2128 * match.pd: Move and extend simplification from above to here:
2129 (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).
2130 * tree-if-conv.c (ifcvt_follow_ssa_use_edges): New func.
2131 (predicate_scalar_phi): Call fold_stmt using the new valueize func.
2132
2133 2016-11-23 Martin Liska <mliska@suse.cz>
2134 Martin Jambor <mjambor@suse.cz>
2135
2136 * doc/install.texi: Remove entry about --with-hsa-kmt-lib.
2137
2138 2016-11-23 Aldy Hernandez <aldyh@redhat.com>
2139
2140 PR target/78213
2141 * opts.c (finish_options): Set -fsyntax-only if running self tests.
2142
2143 2016-11-23 Richard Biener <rguenther@suse.de>
2144
2145 PR middle-end/71762
2146 * match.pd ((~X & Y) -> X < Y, (X & ~Y) -> Y < X,
2147 (~X | Y) -> X <= Y, (X | ~Y) -> Y <= X): Remove.
2148
2149 2016-11-23 Richard Biener <rguenther@suse.de>
2150
2151 PR lto/78472
2152 * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
2153 fields.
2154
2155 2016-11-23 Richard Biener <rguenther@suse.de>
2156 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.rog>
2157
2158 PR tree-optimization/78154
2159 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Return true if function
2160 returns it's argument and the argument is nonnull.
2161 * builtin-attrs.def: Define ATTR_RETURNS_NONNULL,
2162 ATT_RETNONNULL_NOTHROW_LEAF.
2163 * builtins.def (BUILT_IN_MEMPCPY): Change attribute to
2164 ATTR_RETNONNULL_NOTHROW_LEAF.
2165 (BUILT_IN_STPCPY): Likewise.
2166 (BUILT_IN_STPNCPY): Likewise.
2167 (BUILT_IN_MEMPCPY_CHK): Likewise.
2168 (BUILT_IN_STPCPY_CHK): Likewise.
2169 (BUILT_IN_STPNCPY_CHK): Likewise.
2170 (BUILT_IN_STRCAT): Change attribute to ATTR_RET1_NOTHROW_NONNULL_LEAF.
2171 (BUILT_IN_STRNCAT): Likewise.
2172 (BUILT_IN_STRNCPY): Likewise.
2173 (BUILT_IN_MEMSET_CHK): Likewise.
2174 (BUILT_IN_STRCAT_CHK): Likewise.
2175 (BUILT_IN_STRCPY_CHK): Likewise.
2176 (BUILT_IN_STRNCAT_CHK): Likewise.
2177 (BUILT_IN_STRNCPY_CHK): Likewise.
2178
2179 2016-11-23 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2180
2181 * fold-const.c (tree_expr_nonzero_p) : Make non-static.
2182 * fold-const.h (tree_expr_nonzero_p) : Declare.
2183 * match.pd (cmp (mult:c @0 @1) (mult:c @2 @1) : New Pattern.
2184
2185 2016-11-23 Paolo Bonzini <bonzini@gnu.org>
2186
2187 * system.h (HAVE_DESIGNATED_INITIALIZERS,
2188 HAVE_DESIGNATED_UNION_INITIALIZERS): Do not use
2189 "defined" in macros.
2190 * doc/cpp.texi (Defined): Mention -Wexpansion-to-defined.
2191 * doc/cppopts.texi (Invocation): Document -Wexpansion-to-defined.
2192 * doc/invoke.texi (Warning Options): Document -Wexpansion-to-defined.
2193
2194 2016-11-23 Georg-Johann Lay <avr@gjlay.de>
2195
2196 PR target/60300
2197 * config/avr/constraints.md (Csp): Widen range to [-11..6].
2198 * config/avr/avr.c (avr_prologue_setup_frame): Limit number
2199 of RCALLs in prologue to 3.
2200
2201 2016-11-22 Michael Collison <michael.collison@arm.com>
2202
2203 * config/aarch64/aarch64-protos.h
2204 (aarch64_and_split_imm1, aarch64_and_split_imm2)
2205 (aarch64_and_bitmask_imm): New prototypes
2206 * config/aarch64/aarch64.c (aarch64_and_split_imm1):
2207 New overloaded function to create bit mask covering the
2208 lowest to highest bits set.
2209 (aarch64_and_split_imm2): New overloaded functions to create bit
2210 mask of zeros between first and last bit set.
2211 (aarch64_and_bitmask_imm): New function to determine if a integer
2212 is a valid two instruction "and" operation.
2213 * config/aarch64/aarch64.md:(and<mode>3): New define_insn and _split
2214 allowing wider range of constants with "and" operations.
2215 * (ior<mode>3, xor<mode>3): Use new LOGICAL2 iterator to prevent
2216 "and" operator from matching restricted constant range used for
2217 ior and xor operators.
2218 * config/aarch64/constraints.md (UsO constraint): New SImode constraint
2219 for constants in "and" operantions.
2220 (UsP constraint): New DImode constraint for constants
2221 in "and" operations.
2222 * config/aarch64/iterators.md (lconst2): New mode iterator.
2223 (LOGICAL2): New code iterator.
2224 * config/aarch64/predicates.md (aarch64_logical_and_immediate): New
2225 predicate.
2226 (aarch64_logical_and_operand): New predicate allowing extended
2227 constants for "and" operations.
2228
2229 2016-11-22 Walter Lee <walt@tilera.com>
2230
2231 * config/tilegx/tilegx.md (trap): New pattern.
2232 * config/tilepro/tilepro.md (trap): Likewise.
2233
2234 2016-11-22 Walter Lee <walt@tilera.com>
2235
2236 * config/tilegx/tilegx.md (*zero_extract): Use
2237 define_insn_and_split instead of define_insn; Handle pos + size >
2238 64.
2239 (*sign_extract): Likewise.
2240
2241 2016-11-22 Marek Polacek <polacek@redhat.com>
2242
2243 PR tree-optimization/78455
2244 * tree-ssa-uninit.c (can_chain_union_be_invalidated_p): Fix typo.
2245
2246 2016-11-22 Ian Lance Taylor <iant@golang.org>
2247
2248 PR go/78431
2249 PR go/78432
2250 * godump.c (go_format_type): Always pass alignment as 1 when
2251 calling go_append_padding at end of struct/union.
2252
2253 2016-11-22 Jakub Jelinek <jakub@redhat.com>
2254
2255 PR target/78451
2256 * config/i386/avx512bwintrin.h (_mm512_setzero_qi,
2257 _mm512_setzero_hi): Removed.
2258 (_mm512_maskz_mov_epi16, _mm512_maskz_loadu_epi16,
2259 _mm512_maskz_mov_epi8, _mm512_maskz_loadu_epi8,
2260 _mm512_maskz_broadcastb_epi8, _mm512_maskz_set1_epi8,
2261 _mm512_maskz_broadcastw_epi16, _mm512_maskz_set1_epi16,
2262 _mm512_mulhrs_epi16, _mm512_maskz_mulhrs_epi16, _mm512_mulhi_epi16,
2263 _mm512_maskz_mulhi_epi16, _mm512_mulhi_epu16,
2264 _mm512_maskz_mulhi_epu16, _mm512_maskz_mullo_epi16,
2265 _mm512_cvtepi8_epi16, _mm512_maskz_cvtepi8_epi16, _mm512_cvtepu8_epi16,
2266 _mm512_maskz_cvtepu8_epi16, _mm512_permutexvar_epi16,
2267 _mm512_maskz_permutexvar_epi16, _mm512_avg_epu8, _mm512_maskz_avg_epu8,
2268 _mm512_maskz_add_epi8, _mm512_maskz_sub_epi8, _mm512_avg_epu16,
2269 _mm512_maskz_avg_epu16, _mm512_subs_epi8, _mm512_maskz_subs_epi8,
2270 _mm512_subs_epu8, _mm512_maskz_subs_epu8, _mm512_adds_epi8,
2271 _mm512_maskz_adds_epi8, _mm512_adds_epu8, _mm512_maskz_adds_epu8,
2272 _mm512_maskz_sub_epi16, _mm512_subs_epi16, _mm512_maskz_subs_epi16,
2273 _mm512_subs_epu16, _mm512_maskz_subs_epu16, _mm512_maskz_add_epi16,
2274 _mm512_adds_epi16, _mm512_maskz_adds_epi16, _mm512_adds_epu16,
2275 _mm512_maskz_adds_epu16, _mm512_srl_epi16, _mm512_maskz_srl_epi16,
2276 _mm512_packs_epi16, _mm512_sll_epi16, _mm512_maskz_sll_epi16,
2277 _mm512_maddubs_epi16, _mm512_maskz_maddubs_epi16, _mm512_unpackhi_epi8,
2278 _mm512_maskz_unpackhi_epi8, _mm512_unpackhi_epi16,
2279 _mm512_maskz_unpackhi_epi16, _mm512_unpacklo_epi8,
2280 _mm512_maskz_unpacklo_epi8, _mm512_unpacklo_epi16,
2281 _mm512_maskz_unpacklo_epi16, _mm512_shuffle_epi8,
2282 _mm512_maskz_shuffle_epi8, _mm512_min_epu16, _mm512_maskz_min_epu16,
2283 _mm512_min_epi16, _mm512_maskz_min_epi16, _mm512_max_epu8,
2284 _mm512_maskz_max_epu8, _mm512_max_epi8, _mm512_maskz_max_epi8,
2285 _mm512_min_epu8, _mm512_maskz_min_epu8, _mm512_min_epi8,
2286 _mm512_maskz_min_epi8, _mm512_max_epi16, _mm512_maskz_max_epi16,
2287 _mm512_max_epu16, _mm512_maskz_max_epu16, _mm512_sra_epi16,
2288 _mm512_maskz_sra_epi16, _mm512_srav_epi16, _mm512_maskz_srav_epi16,
2289 _mm512_srlv_epi16, _mm512_maskz_srlv_epi16, _mm512_sllv_epi16,
2290 _mm512_maskz_sllv_epi16, _mm512_maskz_packs_epi16, _mm512_packus_epi16,
2291 _mm512_maskz_packus_epi16, _mm512_abs_epi8, _mm512_maskz_abs_epi8,
2292 _mm512_abs_epi16, _mm512_maskz_abs_epi16, _mm512_dbsad_epu8,
2293 _mm512_maskz_dbsad_epu8, _mm512_srli_epi16, _mm512_maskz_srli_epi16,
2294 _mm512_slli_epi16, _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16,
2295 _mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16,
2296 _mm512_maskz_shufflelo_epi16, _mm512_srai_epi16,
2297 _mm512_maskz_srai_epi16, _mm512_packs_epi32,
2298 _mm512_maskz_packs_epi32, _mm512_packus_epi32,
2299 _mm512_maskz_packus_epi32): Use _mm512_setzero_si512 instead of
2300 _mm512_setzero_qi or _mm512_setzero_hi.
2301 (_mm512_maskz_alignr_epi8, _mm512_dbsad_epu8,
2302 _mm512_maskz_dbsad_epu8): Formatting fixes.
2303 (_mm512_srli_epi16, _mm512_maskz_srli_epi16, _mm512_slli_epi16,
2304 _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16,
2305 _mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16,
2306 _mm512_maskz_shufflelo_epi16, _mm512_srai_epi16,
2307 _mm512_maskz_srai_epi16): Use _mm512_setzero_si512 instead of
2308 _mm512_setzero_qi or _mm512_setzero_hi.
2309
2310 2016-11-22 Nathan Sidwell <nathan@acm.org>
2311
2312 * gcc-ar.c (main): Fix indentation.
2313 * gcov-io.c (gcov_write_summary): Remove extraneous {...}
2314 * ggc-page.c (move_ptes_to_front): Fix formatting.
2315 * hsa-dump.c (dump_has_cfun): Fix indentation.
2316 * sel-sched-ir.h: Remove trailing blank lines.
2317
2318 2016-11-22 Jakub Jelinek <jakub@redhat.com>
2319 Alexander Monakov <amonakov@ispras.ru>
2320
2321 * internal-fn.c (expand_GOMP_USE_SIMT): New function.
2322 * tree.c (omp_clause_num_ops): OMP_CLAUSE__SIMT_ has 0 operands.
2323 (omp_clause_code_name): Add _simt_ name.
2324 (walk_tree_1): Handle OMP_CLAUSE__SIMT_.
2325 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SIMT_.
2326 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__SIMT_.
2327 (scan_omp_simd): New function.
2328 (scan_omp_1_stmt): Use it in target regions if needed.
2329 (omp_max_vf): Don't max with omp_max_simt_vf.
2330 (lower_rec_simd_input_clauses): Use omp_max_simt_vf if
2331 OMP_CLAUSE__SIMT_ is present.
2332 (lower_rec_input_clauses): Compute maybe_simt from presence of
2333 OMP_CLAUSE__SIMT_.
2334 (lower_lastprivate_clauses): Likewise.
2335 (expand_omp_simd): Likewise. Remove explicit offloaded region check.
2336 (execute_omp_device_lower): Lower IFN_GOMP_USE_SIMT.
2337 * internal-fn.def (GOMP_USE_SIMT): New internal function.
2338 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__SIMT_.
2339
2340 2016-11-22 Alexander Monakov <amonakov@ispras.ru>
2341
2342 * internal-fn.c (expand_GOMP_SIMT_LANE): New.
2343 (expand_GOMP_SIMT_VF): New.
2344 (expand_GOMP_SIMT_LAST_LANE): New.
2345 (expand_GOMP_SIMT_ORDERED_PRED): New.
2346 (expand_GOMP_SIMT_VOTE_ANY): New.
2347 (expand_GOMP_SIMT_XCHG_BFLY): New.
2348 (expand_GOMP_SIMT_XCHG_IDX): New.
2349 * internal-fn.def (GOMP_SIMT_LANE): New.
2350 (GOMP_SIMT_VF): New.
2351 (GOMP_SIMT_LAST_LANE): New.
2352 (GOMP_SIMT_ORDERED_PRED): New.
2353 (GOMP_SIMT_VOTE_ANY): New.
2354 (GOMP_SIMT_XCHG_BFLY): New.
2355 (GOMP_SIMT_XCHG_IDX): New.
2356 * omp-low.c (omp_maybe_offloaded_ctx): New, outlined from...
2357 (create_omp_child_function): ...here. Set "omp target entrypoint"
2358 or "omp declare target" attribute based on is_gimple_omp_offloaded.
2359 (omp_max_simt_vf): New. Use it...
2360 (omp_max_vf): ...here.
2361 (lower_rec_input_clauses): Add reduction lowering for SIMT execution.
2362 (lower_lastprivate_clauses): Likewise, for "lastprivate" lowering.
2363 (lower_omp_ordered): Likewise, for "ordered" lowering.
2364 (expand_omp_simd): Add SIMT transforms.
2365 (pass_data_lower_omp): Add PROP_gimple_lomp_dev.
2366 (execute_omp_device_lower): New.
2367 (pass_data_omp_device_lower): New.
2368 (pass_omp_device_lower): New pass.
2369 (make_pass_omp_device_lower): New.
2370 * passes.def (pass_omp_device_lower): Position new pass.
2371 * tree-pass.h (PROP_gimple_lomp_dev): Define.
2372 (make_pass_omp_device_lower): Declare.
2373
2374 2016-11-22 Jakub Jelinek <jakub@redhat.com>
2375
2376 PR target/78451
2377 * config/i386/avx512vlintrin.h (_mm_setzero_di): Removed.
2378 (_mm_maskz_mov_epi64): Use _mm_setzero_si128 instead of
2379 _mm_setzero_di.
2380 (_mm_maskz_load_epi64): Likewise.
2381 (_mm_setzero_hi): Removed.
2382 (_mm_maskz_loadu_epi64): Use _mm_setzero_si128 instead of
2383 _mm_setzero_di.
2384 (_mm_abs_epi64, _mm_maskz_abs_epi64, _mm_maskz_srl_epi64,
2385 _mm_maskz_unpackhi_epi64, _mm_maskz_unpacklo_epi64,
2386 _mm_maskz_compress_epi64, _mm_srav_epi64, _mm_maskz_srav_epi64,
2387 _mm_maskz_sllv_epi64, _mm_maskz_srlv_epi64, _mm_rolv_epi64,
2388 _mm_maskz_rolv_epi64, _mm_rorv_epi64, _mm_maskz_rorv_epi64,
2389 _mm_min_epi64, _mm_max_epi64, _mm_max_epu64, _mm_min_epu64,
2390 _mm_lzcnt_epi64, _mm_maskz_lzcnt_epi64, _mm_conflict_epi64,
2391 _mm_maskz_conflict_epi64, _mm_sra_epi64, _mm_maskz_sra_epi64,
2392 _mm_maskz_sll_epi64, _mm_rol_epi64, _mm_maskz_rol_epi64,
2393 _mm_ror_epi64, _mm_maskz_ror_epi64, _mm_alignr_epi64,
2394 _mm_maskz_alignr_epi64, _mm_srai_epi64, _mm_maskz_slli_epi64):
2395 Likewise.
2396 (_mm_cvtepi32_epi8, _mm256_cvtepi32_epi8, _mm_cvtsepi32_epi8,
2397 _mm256_cvtsepi32_epi8, _mm_cvtusepi32_epi8, _mm256_cvtusepi32_epi8,
2398 _mm_cvtepi32_epi16, _mm256_cvtepi32_epi16, _mm_cvtsepi32_epi16,
2399 _mm256_cvtsepi32_epi16, _mm_cvtusepi32_epi16, _mm256_cvtusepi32_epi16,
2400 _mm_cvtepi64_epi8, _mm256_cvtepi64_epi8, _mm_cvtsepi64_epi8,
2401 _mm256_cvtsepi64_epi8, _mm_cvtusepi64_epi8, _mm256_cvtusepi64_epi8,
2402 _mm_cvtepi64_epi16, _mm256_cvtepi64_epi16, _mm_cvtsepi64_epi16,
2403 _mm256_cvtsepi64_epi16, _mm_cvtusepi64_epi16, _mm256_cvtusepi64_epi16,
2404 _mm_cvtepi64_epi32, _mm256_cvtepi64_epi32, _mm_cvtsepi64_epi32,
2405 _mm256_cvtsepi64_epi32, _mm_cvtusepi64_epi32, _mm256_cvtusepi64_epi32,
2406 _mm_maskz_set1_epi32, _mm_maskz_set1_epi64): Formatting fixes.
2407 (_mm_maskz_cvtps_ph, _mm256_maskz_cvtps_ph): Use _mm_setzero_si128
2408 instead of _mm_setzero_hi.
2409 (_mm256_permutex_pd, _mm256_maskz_permutex_epi64, _mm256_insertf32x4,
2410 _mm256_maskz_insertf32x4, _mm256_inserti32x4, _mm256_maskz_inserti32x4,
2411 _mm256_extractf32x4_ps, _mm256_maskz_extractf32x4_ps,
2412 _mm256_shuffle_i32x4, _mm256_maskz_shuffle_i32x4, _mm256_shuffle_f64x2,
2413 _mm256_maskz_shuffle_f64x2, _mm256_shuffle_f32x4,
2414 _mm256_maskz_shuffle_f32x4, _mm256_maskz_shuffle_pd,
2415 _mm_maskz_shuffle_pd, _mm256_maskz_shuffle_ps, _mm_maskz_shuffle_ps,
2416 _mm256_maskz_srli_epi32, _mm_maskz_srli_epi32, _mm_maskz_srli_epi64,
2417 _mm256_mask_slli_epi32, _mm256_maskz_slli_epi32, _mm256_mask_slli_epi64,
2418 _mm256_maskz_slli_epi64, _mm256_roundscale_ps,
2419 _mm256_maskz_roundscale_ps, _mm256_roundscale_pd,
2420 _mm256_maskz_roundscale_pd, _mm_roundscale_ps, _mm_maskz_roundscale_ps,
2421 _mm_roundscale_pd, _mm_maskz_roundscale_pd, _mm256_getmant_ps,
2422 _mm256_maskz_getmant_ps, _mm_getmant_ps, _mm_maskz_getmant_ps,
2423 _mm256_getmant_pd, _mm256_maskz_getmant_pd, _mm_getmant_pd,
2424 _mm_maskz_getmant_pd, _mm256_maskz_shuffle_epi32,
2425 _mm_maskz_shuffle_epi32, _mm256_rol_epi32, _mm256_maskz_rol_epi32,
2426 _mm_rol_epi32, _mm_maskz_rol_epi32, _mm256_ror_epi32,
2427 _mm256_maskz_ror_epi32, _mm_ror_epi32, _mm_maskz_ror_epi32,
2428 _mm_maskz_alignr_epi32, _mm_maskz_alignr_epi64,
2429 _mm256_maskz_srai_epi32, _mm_maskz_srai_epi32, _mm_srai_epi64,
2430 _mm_maskz_srai_epi64, _mm256_maskz_permutex_pd,
2431 _mm256_maskz_permute_pd, _mm256_maskz_permute_ps, _mm_maskz_permute_pd,
2432 _mm_maskz_permute_ps, _mm256_permutexvar_ps): Formatting fixes.
2433 (_mm_maskz_slli_epi64, _mm_rol_epi64, _mm_maskz_rol_epi64,
2434 _mm_ror_epi64, _mm_maskz_ror_epi64): Use _mm_setzero_si128 instead of
2435 _mm_setzero_di.
2436 (_mm_maskz_cvtps_ph, _mm256_maskz_cvtps_ph): Use _mm_setzero_si128
2437 instead of _mm_setzero_hi.
2438 * config/i386/avx512dqintrin.h (_mm512_broadcast_f64x2,
2439 _mm512_broadcast_i64x2, _mm512_broadcast_f32x2, _mm512_broadcast_i32x2,
2440 _mm512_broadcast_f32x8, _mm512_broadcast_i32x8): Formatting fixes.
2441 (_mm512_extracti64x2_epi64, _mm512_maskz_extracti64x2_epi64): Use
2442 _mm_setzero_si128 instead of _mm_setzero_di.
2443 (_mm512_cvtt_roundpd_epi64, _mm512_mask_cvtt_roundpd_epi64,
2444 _mm512_maskz_cvtt_roundpd_epi64, _mm512_cvtt_roundpd_epu64,
2445 _mm512_mask_cvtt_roundpd_epu64, _mm512_maskz_cvtt_roundpd_epu64,
2446 _mm512_cvtt_roundps_epi64, _mm512_mask_cvtt_roundps_epi64,
2447 _mm512_maskz_cvtt_roundps_epi64, _mm512_cvtt_roundps_epu64,
2448 _mm512_mask_cvtt_roundps_epu64, _mm512_maskz_cvtt_roundps_epu64,
2449 _mm512_cvt_roundpd_epi64, _mm512_mask_cvt_roundpd_epi64,
2450 _mm512_maskz_cvt_roundpd_epi64, _mm512_cvt_roundpd_epu64,
2451 _mm512_mask_cvt_roundpd_epu64, _mm512_maskz_cvt_roundpd_epu64,
2452 _mm512_cvt_roundps_epi64, _mm512_mask_cvt_roundps_epi64,
2453 _mm512_maskz_cvt_roundps_epi64, _mm512_cvt_roundps_epu64,
2454 _mm512_mask_cvt_roundps_epu64, _mm512_maskz_cvt_roundps_epu64,
2455 _mm512_cvt_roundepi64_ps, _mm512_mask_cvt_roundepi64_ps,
2456 _mm512_maskz_cvt_roundepi64_ps, _mm512_cvt_roundepu64_ps,
2457 _mm512_mask_cvt_roundepu64_ps, _mm512_maskz_cvt_roundepu64_ps,
2458 _mm512_cvt_roundepi64_pd, _mm512_mask_cvt_roundepi64_pd,
2459 _mm512_maskz_cvt_roundepi64_pd, _mm512_cvt_roundepu64_pd,
2460 _mm512_mask_cvt_roundepu64_pd, _mm512_maskz_cvt_roundepu64_pd,
2461 _mm512_reduce_pd, _mm512_maskz_reduce_pd, _mm512_reduce_ps,
2462 _mm512_maskz_reduce_ps, _mm512_extractf32x8_ps,
2463 _mm512_maskz_extractf32x8_ps, _mm512_extractf64x2_pd,
2464 _mm512_maskz_extractf64x2_pd, _mm512_extracti32x8_epi32,
2465 _mm512_maskz_extracti32x8_epi32, _mm512_range_pd,
2466 _mm512_maskz_range_pd, _mm512_range_ps, _mm512_maskz_range_ps,
2467 _mm512_range_round_pd, _mm512_maskz_range_round_pd,
2468 _mm512_range_round_ps, _mm512_maskz_range_round_ps,
2469 _mm512_maskz_insertf64x2, _mm512_insertf32x8,
2470 _mm512_maskz_insertf32x8): Formatting fixes.
2471 (_mm512_extracti64x2_epi64, _mm512_maskz_extracti64x2_epi64): Use
2472 _mm_setzero_si128 instead of _mm_setzero_di.
2473 * config/i386/avx512vldqintrin.h (_mm_cvttpd_epi64,
2474 _mm_cvttpd_epu64, _mm_cvtpd_epi64, _mm_cvtpd_epu64,
2475 _mm_cvttps_epi64, _mm_maskz_cvttps_epi64, _mm_cvttps_epu64,
2476 _mm_maskz_cvttps_epu64, _mm_maskz_mullo_epi64, _mm_cvtps_epi64,
2477 _mm_maskz_cvtps_epi64, _mm_cvtps_epu64, _mm_maskz_cvtps_epu64,
2478 _mm256_extracti64x2_epi64, _mm256_maskz_extracti64x2_epi64): Use
2479 _mm_setzero_si128 instead of _mm_setzero_di.
2480 (_mm256_extracti64x2_epi64, _mm256_maskz_extracti64x2_epi64):
2481 Likewise in macros.
2482 * config/i386/avx512vlbwintrin.h (_mm_maskz_mov_epi8,
2483 _mm_maskz_loadu_epi16, _mm_maskz_mov_epi16, _mm_maskz_loadu_epi8,
2484 _mm_permutexvar_epi16, _mm_maskz_maddubs_epi16): Use
2485 _mm_setzero_si128 instead of _mm_setzero_hi.
2486 (_mm_maskz_min_epu16, _mm_maskz_max_epu8, _mm_maskz_max_epi8,
2487 _mm_maskz_min_epu8, _mm_maskz_min_epi8, _mm_maskz_max_epi16,
2488 _mm_maskz_max_epu16, _mm_maskz_min_epi16): Use _mm_setzero_si128
2489 instead of _mm_setzero_di.
2490 (_mm_dbsad_epu8, _mm_maskz_shufflehi_epi16,
2491 _mm_maskz_shufflelo_epi16): Use _mm_setzero_si128 instead of
2492 _mm_setzero_hi.
2493 (_mm_maskz_shufflehi_epi16, _mm_maskz_shufflelo_epi16,
2494 _mm_maskz_slli_epi16): Use _mm_setzero_si128 instead of
2495 _mm_setzero_hi.
2496 (_mm_maskz_alignr_epi8): Use _mm_setzero_si128 instead of
2497 _mm_setzero_di.
2498 (_mm_maskz_mulhi_epi16, _mm_maskz_mulhi_epu16, _mm_maskz_mulhrs_epi16,
2499 _mm_maskz_mullo_epi16, _mm_srav_epi16, _mm_srlv_epi16,
2500 _mm_sllv_epi16): Use _mm_setzero_si128 instead of _mm_setzero_hi.
2501
2502 2016-11-22 Carl Love <cel@us.ibm.com>
2503
2504 * config/rs6000/rs6000-c.c: Add built-in support for vector compare
2505 equal and vector compare not equal. The vector compares take two
2506 arguments of type vector bool char, vector bool short, vector bool int,
2507 vector bool long long with the same return type.
2508 * doc/extend.texi: Update built-in documentation file for the new
2509 powerpc built-ins.
2510
2511 2016-11-22 Uros Bizjak <ubizjak@gmail.com>
2512
2513 * Makefile.in ($(lang_checks_parallelized)): Fix detection
2514 of -j argument.
2515
2516 2016-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
2517
2518 * config.gcc: Allow new rmprofile value for configure option
2519 --with-multilib-list.
2520 * config/arm/t-rmprofile: New file.
2521 * doc/install.texi (--with-multilib-list): Document new rmprofile value
2522 for ARM.
2523
2524 2016-11-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2525
2526 PR target/78439
2527 * config/arm/vfp.md (*movdi_vfp_cortexa8): Use 'q' constraints for the
2528 register operand in alternatives 4,5,6.
2529
2530 2016-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
2531
2532 PR target/77904
2533 * config/arm/arm.c (thumb1_compute_save_reg_mask): Mark frame pointer
2534 in save register mask if it is needed.
2535
2536 2016-11-22 Jakub Jelinek <jakub@redhat.com>
2537
2538 PR tree-optimization/78436
2539 * gimple-ssa-store-merging.c (zero_char_buf): Removed.
2540 (shift_bytes_in_array, shift_bytes_in_array_right,
2541 merged_store_group::apply_stores): Formatting fixes.
2542 (clear_bit_region): Likewise. Use memset.
2543 (encode_tree_to_bitpos): Formatting fixes. Fix comment typos - EPXR
2544 instead of EXPR and inerted instead of inserted. Use memset instead
2545 of zero_char_buf. For !BYTES_BIG_ENDIAN decrease byte_size by 1
2546 if shift_amnt is 0.
2547
2548 PR middle-end/78416
2549 * expmed.c (expand_divmod): Use wide_int for computation of
2550 op1_is_pow2. Don't set it if op1 is 0. Formatting fixes.
2551 Use size <= HOST_BITS_PER_WIDE_INT instead of
2552 HOST_BITS_PER_WIDE_INT >= size.
2553
2554 PR tree-optimization/78445
2555 * tree-if-conv.c (tree_if_conversion): If any_pred_load_store or
2556 any_complicated_phi, version loop even if flag_tree_loop_if_convert
2557 is 1. Formatting fix.
2558
2559 2016-11-22 Martin Liska <mliska@suse.cz>
2560
2561 PR ipa/78309
2562 * ipa-icf.c (void sem_item::set_hash): Update m_hash_set.
2563 (sem_function::get_hash): Use the new field.
2564 (sem_function::parse): Remove an argument from ctor.
2565 (sem_variable::parse): Likewise.
2566 (sem_variable::get_hash): Use the new field.
2567 (sem_item_optimizer::read_section): Use new ctor and set hash.
2568 * ipa-icf.h: _hash is removed from sem_item::sem_item,
2569 sem_variable::sem_variable, sem_function::sem_function.
2570
2571 2016-11-21 Jeff Law <law@redhat.com>
2572
2573 PR target/68538
2574 * config/cris/cris.md: Don't call copy_to_mode_reg unless
2575 can_create_pseudo_p is true.
2576
2577 2016-11-21 Segher Boessenkool <segher@kernel.crashing.org>
2578
2579 PR target/68803
2580 * config/rs6000/rs6000.md (*rotlsi3_insert_5, *rotldi3_insert_6,
2581 *rotldi3_insert_7): New define_insns.
2582
2583 2016-11-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2584
2585 * config/rs6000/rs6000.md (movdi_internal32): Change constraints
2586 so that DImode can be allocated to FP/vector registers in more
2587 cases, and we can avoid direct move operations. If the register
2588 needs reloading, prefer GPRs over FP/vector registers. In the
2589 case of FPR vs. Altivec registers, prefer FPR registers unless we
2590 have the ISA 3.0 reg+offset scalar instructions.
2591 (movdi_internal64): Likewise.
2592
2593 2016-11-21 Jakub Jelinek <jakub@redhat.com>
2594
2595 PR middle-end/67335
2596 * omp-simd-clone.c (simd_clone_adjust_argument_types): Use NULL prefix
2597 for tmp simd array if DECL_NAME (parm) is NULL.
2598
2599 2016-11-20 Jeff Law <law@redhat.com>
2600
2601 PR target/25128
2602 * config/m68k/predicates.md (swap_peephole_relational_operator): New
2603 predicate.
2604 * config/m68k/m68k.md (relational tests against 65535/65536): New
2605 peephole2.
2606
2607 2016-11-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2608
2609 * tree-ssa-loop-prefetch.c: Delete FIXME after the includes.
2610
2611 2016-11-21 Martin Sebor <msebor@redhat.com>
2612
2613 * doc/invoke.texi (-fprintf-return-value): Document that option
2614 is enabled by default.
2615
2616 2016-11-21 Georg-Johann Lay <avr@gjlay.de>
2617
2618 * config/avr/avr-c.c (avr_register_target_pragmas): Use C++
2619 for-loop declaration of loop variable.
2620 (avr_register_target_pragmas, avr_cpu_cpp_builtins): Same.
2621 * config/avr/avr.c (avr_popcount_each_byte)
2622 (avr_init_expanders, avr_regs_to_save, sequent_regs_live)
2623 (get_sequence_length, avr_prologue_setup_frame, avr_map_metric)
2624 (avr_expand_epilogue, avr_function_arg_advance)
2625 (avr_out_compare, avr_out_plus_1, avr_out_bitop, avr_out_fract)
2626 (avr_rotate_bytes, _reg_unused_after, avr_assemble_integer)
2627 (avr_adjust_reg_alloc_order, output_reload_in_const)
2628 (avr_conditional_register_usage, avr_find_unused_d_reg)
2629 (avr_map_decompose, avr_fold_builtin): Same.
2630
2631 2016-11-21 Georg-Johann Lay <avr@gjlay.de>
2632
2633 * config/avr/avr.c (avr_popcount): Remove static function.
2634 (avr_popcount_each_byte, avr_out_bitop): Use popcount_hwi instead.
2635
2636 2016-11-21 Richard Earnshaw <rearnsha@arm.com>
2637
2638 * arm.opt (mapcs-float): Delete option.
2639 * arm.c (arm_option_override): Remove hunk relating to
2640 TARGET_APCS_FLOAT.
2641 * doc/invoke.texi (arm options): Remove documentation for -mapcs-float.
2642
2643 2016-11-21 Richard Sandiford <richard.sandiford@arm.com>
2644
2645 * tree-tailcall.c (process_assignment): Simplify the check for
2646 a valid copy, allowing the source to be a local variable as
2647 well as an SSA name.
2648 (find_tail_calls): Allow copies between local variables to follow
2649 the call. Allow the result to be stored in any local variable,
2650 even if it's an aggregate.
2651 (eliminate_tail_call): Check whether the result is an SSA name
2652 before updating its SSA_NAME_DEF_STMT.
2653
2654 2016-11-21 David Malcolm <dmalcolm@redhat.com>
2655
2656 PR preprocessor/78324
2657 * input.c (get_substring_ranges_for_loc): Fail gracefully if
2658 -ftrack-macro-expansion has a value other than 2.
2659
2660 2016-11-21 Segher Boessenkool <segher@kernel.crashing.org>
2661
2662 PR rtl-optimization/78400
2663 * shrink-wrap.c (try_shrink_wrapping_separate): Call
2664 df_update_entry_exit_and_calls instead of df_update_entry_block_defs
2665 and df_update_exit_block_uses.
2666
2667 2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
2668
2669 PR c++/71973
2670 * doc/invoke.texi (-Wno-builtin-declaration-mismatch): Document the
2671 new default-enabled warning..
2672 * builtin-types.def (BT_CONST_TM_PTR): New primitive type.
2673 (BT_PTR_CONST_STRING): Updated.
2674 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR): Removed.
2675 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_TM_PTR): New function type.
2676 * builtins.def (DEF_TM_BUILTIN): Disable BOTH_P for TM builtins.
2677 (strftime): Update builtin function.
2678 * tree-core.h (TI_CONST_TM_PTR_TYPE): New enum value.
2679 * tree.h (const_tm_ptr_type_node): New type node.
2680 * tree.c (free_lang_data, build_common_tree_nodes): Initialize
2681 const_tm_ptr_type_node.
2682
2683 2016-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2684
2685 PR tree-optimization/78413
2686 * tree-if-conv.c (versionable_outer_loop_p): Require that both
2687 inner and outer loop latches have single predecessors.
2688
2689 2016-11-21 Georg-Johann Lay <avr@gjlay.de>
2690
2691 PR target/78093
2692 * config/avr/avr.c (avr_decl_maybe_lds_p): New static function.
2693 (avr_encode_section_info) [TARGET_ABSDATA && AVR_TINY]: Use it.
2694
2695 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2696
2697 * rtl.h: Adjust prototype.
2698 * rtlanal.c (dead_or_set_p): Change argument type to rtx_insn *.
2699 (dead_or_set_regno_p): Likewise.
2700
2701 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2702
2703 * rtl.h: Adjust prototype.
2704 * rtlanal.c (add_int_reg_note): Change argument type to rtx_insn *.
2705
2706 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2707
2708 * function.c (contains): Change argument type to rtx_insn *.
2709 (prologue_contains): Likewise.
2710 (epilogue_contains): Likewise.
2711 (prologue_epilogue_contains): Likewise.
2712 * function.h: Adjust prototype.
2713
2714 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2715
2716 * optabs.c (emit_libcall_block): Change argument type to
2717 rtx_insn *.
2718 * optabs.h: Adjust prototype.
2719
2720 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2721
2722 * cfgrtl.c (delete_insn): Change argument type to rtx_insn *.
2723 (fixup_reorder_chain): Adjust.
2724 * cfgrtl.h: Adjust prototype.
2725
2726 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2727
2728 * rtl.h: Adjust prototype.
2729 * rtlanal.c (replace_label_in_insn): Change argument type to
2730 rtx_insn *.
2731
2732 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2733
2734 * config/v850/v850.c (expand_prologue): Adjust.
2735 (expand_epilogue): Likewise.
2736 * expr.c (init_expr_target): Likewise.
2737 * genrecog.c (print_subroutine): Always make the argument type
2738 rtx_insn *.
2739 * recog.h: Adjust prototype.
2740
2741 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2742
2743 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): split
2744 up variables to make some rtx_insn *.
2745 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
2746 * config/arc/arc.c: Likewise.
2747 * config/arm/arm.c: Likewise.
2748 * config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Likewise.
2749 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue):
2750 Likewise.
2751 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
2752
2753 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2754
2755 * config/arm/arm.c (legitimize_pic_address): Change to use
2756 rtx_insn * as the type of variables.
2757 (arm_pic_static_addr): Likewise.
2758 (arm_emit_movpair): Likewise.
2759 * config/c6x/c6x.c (reorg_split_calls): Likewise.
2760 * config/darwin.c (machopic_legitimize_pic_address): Likewise.
2761 * config/frv/frv.c (frv_optimize_membar_local): Likewise.
2762 * config/frv/frv.md: Likewise.
2763 * config/i386/i386-protos.h: Likewise.
2764 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
2765 (ix86_split_fp_branch): Likewise.
2766 (predict_jump): Likewise.
2767 * config/ia64/ia64.c: Likewise.
2768 * config/mcore/mcore.c: Likewise.
2769 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
2770 * config/s390/s390.c: Likewise.
2771 * config/s390/s390.md: Likewise.
2772 * config/spu/spu.md: Likewise.
2773 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise.
2774 * lower-subreg.c (resolve_simple_move): Likewise.
2775
2776 2016-11-20 Jeff Law <law@redhat.com>
2777
2778 PR target/48551
2779 * reload.h (struct target_reload): Make x_double_reg_address_ok
2780 be per-mode rather.
2781 * reload.c (find_reloads_address): Check if double_reg_address_ok
2782 is true for the mode of the memory reference.
2783 * reload1.c (init_reload): Initialize double_reg_address_ok for
2784 each mode.
2785
2786 2016-11-20 Aldy Hernandez <aldyh@redhat.com>
2787
2788 PR middle-end/61409
2789 * tree-ssa-uninit.c: Define new global max_phi_args.
2790 (compute_uninit_opnds_pos): Use max_phi_args.
2791 (prune_uninit_phi_opnds): Same.
2792 (use_pred_not_overlap_with_undef_path_pred): Remove reference to
2793 missing NUM_PREDS in function comment.
2794 (can_one_predicate_be_invalidated_p): New.
2795 (can_chain_union_be_invalidated_p): New.
2796 (flatten_out_predicate_chains): New.
2797 (uninit_ops_invalidate_phi_use): New.
2798 (is_use_properly_guarded): Call uninit_ops_invalidate_phi_use.
2799
2800 2016-11-20 Marc Glisse <marc.glisse@inria.fr>
2801
2802 * fold-const.c (fold_comparison): Ignore EXACT_DIV_EXPR.
2803 * match.pd (A /[ex] B CMP C): New simplifications.
2804
2805 2016-11-20 Marc Glisse <marc.glisse@inria.fr>
2806
2807 * match.pd (0 / X, X / X, X % X): New simplifications.
2808
2809 2016-11-19 Jakub Jelinek <jakub@redhat.com>
2810
2811 * config/i386/i386.c (ix86_can_inline_p): Use || instead of &
2812 when checking if callee's isa flags are subset of caller's isa flags.
2813 Fix comment wording.
2814
2815 * config/i386/i386.c (ix86_valid_target_attribute_tree): Don't
2816 clear opts->x_ix86_isa_flags, clear opts->x_ix86_isa_flags2
2817 instead and using = 0 instead of &= 0.
2818
2819 * config/i386/i386.c (def_builtin, def_builtin2, def_builtin_const2,
2820 ix86_add_new_builtins): Formatting fixes.
2821 (ix86_expand_builtin): Use || instead of && for isa vs. isa2.
2822 (ix86_get_builtin): Likewise.
2823
2824 * config/i386/i386.c (ix86_expand_builtin): Remove msk_mov variable,
2825 don't initialize it, don't use it for the case where it isn't
2826 provable %{z} nor using the same argument, instead move merge
2827 argument into a new pseudo and use that as target. Formatting fixes.
2828
2829 2016-11-19 Jeff Law <law@redhat.com>
2830
2831 PR target/25111
2832 * config/m68k/m68k.md (bsetdreg): New pattern.
2833 (bchgdreg, bclrdreg): Likewise.
2834
2835 2016-11-19 Kaz Kojima <kkojima@gcc.gnu.org>
2836
2837 PR target/78426
2838 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Use copy_to_mode_reg
2839 instead of force_reg.
2840 (sh_expand_setmem): Likewise.
2841
2842 2016-11-19 Krister Walfridsson <krister.walfridsson@gmail.com>
2843
2844 * config.gcc (*-*-netbsd): Set use_gcc_stdint=wrap.
2845
2846 2016-11-18 Walter Lee <walt@tilera.com>
2847
2848 * config/tilegx/tilegx.c (tilegx_gen_bundles): Preserve
2849 end-of-bundle marker for consecutive barriers.
2850
2851 2016-11-18 Walter Lee <walt@tilera.com>
2852
2853 * config/tilegx/tilegx.md (clzsi2): Fix for big-endian.
2854
2855 2016-11-18 Jakub Jelinek <jakub@redhat.com>
2856
2857 PR middle-end/78419
2858 * multiple_target.c (get_attr_len): Start with argnum and increment
2859 argnum on every arg. Use strchr in a loop instead of counting commas
2860 manually.
2861 (get_attr_str): Increment argnum for every comma in the string.
2862 (separate_attrs): Use for instead of while loop, simplify.
2863 (expand_target_clones): Rename defenition argument to definition.
2864 Free attrs and attr_str even when diagnosing errors. Temporarily
2865 change input_location around targetm.target_option.valid_attribute_p
2866 calls. Don't emit warning or errors if that function fails.
2867
2868 * dwarf2out.c (size_of_discr_list): Fix typo in function comment.
2869
2870 PR debug/78191
2871 * dwarf2out.c (abbrev_opt_base_type_end): New variable.
2872 (die_abbrev_cmp): Sort dies with die_abbrev smaller than
2873 abbrev_opt_base_type_end only by increasing die_abbrev, before
2874 any other dies.
2875 (optimize_abbrev_table): Don't change abbrev numbers of
2876 base types and CU or optimize implicit consts in them if
2877 calc_base_type_die_sizes has been called during build_abbrev_table.
2878 (calc_base_type_die_sizes): If abbrev_opt_start, set
2879 abbrev_opt_base_type_end to one plus largest base type's die_abbrev.
2880
2881 2016-11-18 Jeff Law <law@redhat.com>
2882
2883 PR target/25112
2884 * config/m68k/m68k.c (moveq feeding equality comparison): New
2885 peepholes.
2886 * config/m68k/predicates.md (addq_subq_operand): New predicate.
2887 (equality_comparison_operator): Likewise.
2888
2889 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
2890
2891 * rtlanal.c (load_extend_op): Move to...
2892 * rtl.h: ...here and make inline.
2893
2894 2016-11-18 Terry Guo <terry.guo@arm.com>
2895 Thomas Preud'homme <thomas.preudhomme@arm.com>
2896
2897 * common/config/arm/arm-common.c (arm_target_thumb_only): New function.
2898 * config/arm/arm-opts.h: Include arm-flags.h.
2899 (struct arm_arch_core_flag): Define.
2900 (arm_arch_core_flags): Define.
2901 * config/arm/arm-protos.h: Include arm-flags.h
2902 (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M, FL_MODE26, FL_MODE32,
2903 FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED, FL_STRONG, FL_ARCH5E,
2904 FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF, FL_ARCH6K, FL_THUMB2, FL_NOTM,
2905 FL_THUMB_DIV, FL_VFPV3, FL_NEON, FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV,
2906 FL_ARCH8, FL_CRC32, FL_SMALLMUL, FL_NO_VOLATILE_CE, FL_IWMMXT,
2907 FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1, FL2_ARCH8_2, FL2_FP16INST,
2908 FL_TUNE, FL_FOR_ARCH2, FL_FOR_ARCH3, FL_FOR_ARCH3M, FL_FOR_ARCH4,
2909 FL_FOR_ARCH4T, FL_FOR_ARCH5, FL_FOR_ARCH5T, FL_FOR_ARCH5E,
2910 FL_FOR_ARCH5TE, FL_FOR_ARCH5TEJ, FL_FOR_ARCH6, FL_FOR_ARCH6J,
2911 FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK, FL_FOR_ARCH6KZ,
2912 FL_FOR_ARCH6T2, FL_FOR_ARCH6M, FL_FOR_ARCH7, FL_FOR_ARCH7A,
2913 FL_FOR_ARCH7VE, FL_FOR_ARCH7R, FL_FOR_ARCH7M, FL_FOR_ARCH7EM,
2914 FL_FOR_ARCH8A, FL2_FOR_ARCH8_1A, FL2_FOR_ARCH8_2A, FL_FOR_ARCH8M_BASE,
2915 FL_FOR_ARCH8M_MAIN, arm_feature_set, ARM_FSET_MAKE,
2916 ARM_FSET_MAKE_CPU1, ARM_FSET_MAKE_CPU2, ARM_FSET_CPU1, ARM_FSET_CPU2,
2917 ARM_FSET_EMPTY, ARM_FSET_ANY, ARM_FSET_HAS_CPU1, ARM_FSET_HAS_CPU2,
2918 ARM_FSET_HAS_CPU, ARM_FSET_ADD_CPU1, ARM_FSET_ADD_CPU2,
2919 ARM_FSET_DEL_CPU1, ARM_FSET_DEL_CPU2, ARM_FSET_UNION, ARM_FSET_INTER,
2920 ARM_FSET_XOR, ARM_FSET_EXCLUDE, ARM_FSET_IS_EMPTY,
2921 ARM_FSET_CPU_SUBSET): Move to ...
2922 * config/arm/arm-flags.h: This new file.
2923 * config/arm/arm.h (TARGET_MODE_SPEC_FUNCTIONS): Define.
2924 (EXTRA_SPEC_FUNCTIONS): Add TARGET_MODE_SPEC_FUNCTIONS to its value.
2925 (TARGET_MODE_SPECS): Define.
2926 (DRIVER_SELF_SPECS): Add TARGET_MODE_SPECS to its value.
2927
2928 2016-11-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
2929
2930 * config/arm/arm-protos.h (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M,
2931 FL_MODE26, FL_MODE32, FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED,
2932 FL_STRONG, FL_ARCH5E, FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF,
2933 FL_ARCH6K, FL_THUMB2, FL_NOTM, FL_THUMB_DIV, FL_VFPV3, FL_NEON,
2934 FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV, FL_ARCH8, FL_CRC32, FL_SMALLMUL,
2935 FL_NO_VOLATILE_CE, FL_IWMMXT, FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1,
2936 FL2_ARCH8_2, FL2_FP16INST): Reindent comment, add final dot when
2937 missing and make value unsigned.
2938 (arm_feature_set): Use unsigned entries instead of unsigned long.
2939
2940 2016-11-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
2941
2942 Re-apply after PR bootstrap/77359 is fixed:
2943 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2944
2945 * explow.c (get_dynamic_stack_size): Take known alignment of stack
2946 pointer + STACK_DYNAMIC_OFFSET into account when calculating the
2947 size needed.
2948
2949 2016-11-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
2950
2951 PR bootstrap/77359
2952 * config/rs6000/rs6000.c (rs6000_stack_info): Properly align local
2953 variables in functions calling alloca. Also update the ASCII
2954 drawings.
2955 * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET)
2956 (STACK_DYNAMIC_OFFSET): Likewise.
2957 * config/rs6000/aix.h (STARTING_FRAME_OFFSET)
2958 (STACK_DYNAMIC_OFFSET): Copy AIX specific versions of the rs6000.h
2959 macros to aix.h.
2960
2961 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
2962 Alan Hayward <alan.hayward@arm.com>
2963 David Sherwood <david.sherwood@arm.com>
2964
2965 * combine.c (try_combine): Use rtx_mode_t instead of std::make_pair.
2966 * dwarf2out.c (mem_loc_descriptor, loc_descriptor): Likewise.
2967 (add_const_value_attribute): Likewise.
2968 * explow.c (plus_constant): Likewise.
2969 * expmed.c (expand_mult, make_tree): Likewise.
2970 * expr.c (convert_modes): Likewise.
2971 * loop-doloop.c (doloop_optimize): Likewise.
2972 * postreload.c (reload_cse_simplify_set): Likewise.
2973 * simplify-rtx.c (simplify_const_unary_operation): Likewise
2974 (simplify_binary_operation_1, simplify_const_binary_operation):
2975 Likewise.
2976 (simplify_const_relational_operation, simplify_immed_subreg): Likewise.
2977 * wide-int.h: Update documentation to recommend rtx_mode_t
2978 instead of std::make_pair.
2979
2980 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
2981 Alan Hayward <alan.hayward@arm.com>
2982 David Sherwood <david.sherwood@arm.com>
2983
2984 * tree.h (SET_DECL_MODE): New macro.
2985 * cfgexpand.c (avoid_deep_ter_for_debug): Use SET_DECL_MODE.
2986 (expand_gimple_basic_block): Likewise.
2987 * function.c (split_complex_args): Likeise.
2988 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2989 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise.
2990 * stor-layout.c (layout_decl, relayout_decl): Likewise.
2991 (finish_bitfield_representative): Likewise.
2992 * tree.c (make_node_stat): Likewise.
2993 * tree-inline.c (remap_ssa_name): Likewise.
2994 (tree_function_versioning): Likewise.
2995 * tree-into-ssa.c (rewrite_debug_stmt_uses): Likewise.
2996 * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
2997 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
2998 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise.
2999 * tree-ssa.c (insert_debug_temp_for_var_def): Likewise.
3000 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
3001 * varasm.c (make_debug_expr_from_rtl): Likewise.
3002
3003 2016-11-18 Segher Boessenkool <segher@kernel.crashing.org>
3004
3005 PR rtl-optimization/71785
3006 * bb-reorder.c (maybe_duplicate_computed_goto): New function.
3007 (duplicate_computed_gotos): New function.
3008 (pass_duplicate_computed_gotos::execute): Rewrite.
3009
3010 2016-11-17 Jeff Law <law@redhat.com>
3011
3012 PR target/47192
3013 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a scheduling
3014 barrier prior to deallocating the stack.
3015
3016 2016-11-17 Andrew Burgess <andrew.burgess@embecosm.com>
3017
3018 * config/arc/arc.md (cmem bit/sign-extend peephole2): New peephole
3019 to make better use of cmem loads in the case where a single bit is
3020 being accessed.
3021 * config/arc/predicates.md (ge_lt_comparison_operator): New predicate.
3022
3023 2016-11-17 Andrew Senkevich <andrew.senkevich@intel.com>
3024
3025 * config/i386/i386.c (processor_features): Add F_AVX5124VNNIW,
3026 F_AVX5124FMAPS.
3027 (isa_names_table): Handle new features.
3028
3029 2016-11-17 Kirill Yukhin <kirill.yukhin@gmail.com>
3030 Andrew Senkevich <andrew.senkevich@intel.com>
3031
3032 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX5124FMAPS_SET,
3033 OPTION_MASK_ISA_AVX5124FMAPS_UNSET, OPTION_MASK_ISA_AVX5124VNNIW_SET,
3034 OPTION_MASK_ISA_AVX5124VNNIW_UNSET): New.
3035 (ix86_handle_option): Handle OPT_mavx5124fmaps, OPT_mavx5124vnniw.
3036 * config.gcc: Add avx5124fmapsintrin.h, avx5124vnniwintrin.h.
3037 * config/i386/avx5124fmapsintrin.h: New file.
3038 * config/i386/avx5124vnniwintrin.h: Ditto.
3039 * config/i386/constraints.md (h): New constraint.
3040 * config/i386/cpuid.h (bit_AVX5124VNNIW, bit_AVX5124FMAPS): New.
3041 * config/i386/driver-i386.c (host_detect_local_cpu):
3042 Detect avx5124fmaps, avx5124vnniw.
3043 * config/i386/i386-builtin-types.def: Add types
3044 V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF_V16SF_UHI,
3045 V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF,
3046 V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF,
3047 V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF_V4SF_UQI,
3048 V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI,
3049 V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI_V16SI_UHI.
3050 * config/i386/i386-builtin.def (__builtin_ia32_4fmaddps_mask,
3051 __builtin_ia32_4fmaddps, __builtin_ia32_4fmaddss,
3052 __builtin_ia32_4fmaddss_mask, __builtin_ia32_4fnmaddps_mask,
3053 __builtin_ia32_4fnmaddps, __builtin_ia32_4fnmaddss,
3054 __builtin_ia32_4fnmaddss_mask, __builtin_ia32_vp4dpwssd,
3055 __builtin_ia32_vp4dpwssd_mask, __builtin_ia32_vp4dpwssds,
3056 __builtin_ia32_vp4dpwssds_mask): New.
3057 * config/i386/i386-c.c (ix86_target_macros_internal):
3058 Define __AVX5124FMAPS__, __AVX5124VNNIW__.
3059 * config/i386/i386-modes.def: Fixed comment typos, added new
3060 modes (VECTOR_MODES (FLOAT, 256), VECTOR_MODE (INT, SI, 64)).
3061 * config/i386/i386.c (ix86_target_string): Add -mavx5124fmaps,
3062 -mavx5124vnniw.
3063 (PTA_AVX5124FMAPS, PTA_AVX5124VNNIW): Define.
3064 (ix86_option_override_internal): Handle new options.
3065 (ix86_valid_target_attribute_inner_p): Add avx5124fmaps,
3066 avx5124vnniw.
3067 (ix86_expand_builtin): Handle new builtins.
3068 (ix86_additional_allocno_class_p): New.
3069 * config/i386/i386.h (TARGET_AVX5124FMAPS, TARGET_AVX5124FMAPS_P,
3070 TARGET_AVX5124VNNIW, TARGET_AVX5124VNNIW_P): Define.
3071 (reg_class): Add MOD4_SSE_REGS.
3072 (MOD4_SSE_REG_P, MOD4_SSE_REGNO_P): New.
3073 * config/i386/i386.opt: Add mavx5124fmaps, mavx5124vnniw.
3074 * config/i386/immintrin.h: Include avx5124fmapsintrin.h,
3075 avx5124vnniwintrin.h.
3076 * config/i386/sse.md (unspec): Add UNSPEC_VP4FMADD, UNSPEC_VP4FNMADD,
3077 UNSPEC_VP4DPWSSD, UNSPEC_VP4DPWSSDS.
3078 (define_mode_iterator IMOD4): New.
3079 (define_mode_attr imod4_narrow): Ditto.
3080 (define_insn "mov<mode>"): Ditto.
3081 (define_insn "avx5124fmaddps_4fmaddps"): Ditto.
3082 (define_insn "avx5124fmaddps_4fmaddps_mask"): Ditto.
3083 (define_insn "avx5124fmaddps_4fmaddps_maskz"): Ditto.
3084 (define_insn "avx5124fmaddps_4fmaddss"): Ditto.
3085 (define_insn "avx5124fmaddps_4fmaddss_mask"): Ditto.
3086 (define_insn "avx5124fmaddps_4fmaddss_maskz"): Ditto.
3087 (define_insn "avx5124fmaddps_4fnmaddps"): Ditto.
3088 (define_insn "avx5124fmaddps_4fnmaddps_mask"): Ditto.
3089 (define_insn "avx5124fmaddps_4fnmaddps_maskz"): Ditto.
3090 (define_insn "avx5124fmaddps_4fnmaddss"): Ditto.
3091 (define_insn "avx5124fmaddps_4fnmaddss_mask"): Ditto.
3092 (define_insn "avx5124fmaddps_4fnmaddss_maskz"): Ditto.
3093 (define_insn "avx5124vnniw_vp4dpwssd"): Ditto.
3094 (define_insn "avx5124vnniw_vp4dpwssd_mask"): Ditto.
3095 (define_insn "avx5124vnniw_vp4dpwssd_maskz"): Ditto.
3096 (define_insn "avx5124vnniw_vp4dpwssds"): Ditto.
3097 (define_insn "avx5124vnniw_vp4dpwssds_mask"): Ditto.
3098 (define_insn "avx5124vnniw_vp4dpwssds_maskz"): Ditto.
3099 * init-regs.c (initialize_uninitialized_regs): Add emit_clobber call.
3100 * genmodes.c (mode_size_inline): Extend return type.
3101 * machmode.h (mode_size, mode_base_align): Extend type.
3102
3103 2016-11-17 Michael Meissner <meissner@linux.vnet.ibm.com>
3104
3105 PR target/78101
3106 * config/rs6000/predicates.md (fusion_addis_mem_combo_load): Add
3107 the appropriate checks for SFmode/DFmode load/stores in GPR
3108 registers.
3109 (fusion_addis_mem_combo_store): Likewise.
3110 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Rename
3111 fusion_fpr_* to fusion_vsx_* and add in support for ISA 3.0 scalar
3112 d-form instructions for traditional Altivec registers.
3113 (emit_fusion_p9_load): Likewise.
3114 (emit_fusion_p9_store): Likewise.
3115 * config/rs6000/rs6000.md (p9 fusion store peephole2): Remove
3116 early clobber from scratch register. Do not match if the register
3117 being stored is the scratch register.
3118 (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Rename fusion_fpr_*
3119 to fusion_vsx_* and add in support for ISA 3.0 scalar d-form
3120 instructions for traditional Altivec registers.
3121 (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
3122 (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
3123 (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
3124
3125 2016-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
3126
3127 PR target/77933
3128 * config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr
3129 being live in the function and lr needing to be saved. Distinguish
3130 between already saved pushable registers and registers to push.
3131 Check for LR being an available pushable register.
3132
3133 2016-11-17 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3134
3135 * config/i386/i386.md (cmpstrnsi): New test to bail out if neither
3136 string input is a string constant.
3137 * builtins.c (expand_builtin_strncmp): Attempt expansion of strncmp
3138 via cmpstrnsi even if neither string is constant.
3139
3140 2016-11-17 Jakub Jelinek <jakub@redhat.com>
3141
3142 PR middle-end/78201
3143 * varasm.c (default_use_anchors_for_symbol_p): Fix a comment typo.
3144 Don't test decl != NULL. Don't look at DECL_SIZE, but DECL_SIZE_UNIT
3145 instead, return false if it is NULL, or doesn't fit into uhwi, or
3146 is larger or equal to targetm.max_anchor_offset.
3147
3148 2016-11-17 Pip Cet <pipcet@gmail.com>
3149 Eric Botcazou <ebotcazou@adacore.com>
3150
3151 PR rtl-optimization/78355
3152 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Document that the macro only
3153 needs to deal with unaligned accesses.
3154 * doc/tm.texi: Regenerate.
3155 * lra-constraints.c (simplify_operand_subreg): Only invoke
3156 SLOW_UNALIGNED_ACCESS on innermode if the MEM is not aligned enough.
3157
3158 2016-11-17 David Malcolm <dmalcolm@redhat.com>
3159
3160 * input.c (selftest::test_lexer_string_locations_long_line): New
3161 function.
3162 (selftest::test_lexer_string_locations_raw_string_multiline): New
3163 function.
3164 (selftest::input_c_tests): Call the new functions, via
3165 for_each_line_table_case.
3166
3167 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3168
3169 * config/aarch64/aarch64.md (mov<mode>): Call
3170 aarch64_split_dimode_const_store on DImode constant stores.
3171 * config/aarch64/aarch64-protos.h (aarch64_split_dimode_const_store):
3172 New prototype.
3173 * config/aarch64/aarch64.c (aarch64_split_dimode_const_store): New
3174 function.
3175
3176 2016-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3177 Richard Biener <rguenther@suse.de>
3178
3179 PR tree-optimization/77848
3180 * tree-if-conv.c (tree_if_conversion): Always version loops unless
3181 the user specified -ftree-loop-if-convert.
3182
3183 2016-11-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
3184
3185 PR target/77308
3186 * config/arm/arm.md (*thumb2_ldrd, *thumb2_ldrd_base,
3187 *thumb2_ldrd_base_neg, *thumb2_strd, *thumb2_strd_base,
3188 *thumb2_strd_base_neg): Recognize insn regardless of
3189 current_tune->prefer_ldrd_strd.
3190 * config/arm/ldrdstrd.md: Enable all ldrd/strd peephole rules
3191 whenever possible.
3192
3193 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com>
3194
3195 * config/arc/arc.c (arc_ccfsm_post_advance): Handle return
3196 instruction type.
3197
3198 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com>
3199
3200 * config/arc/arc-arches.def: Add FPX quarkse instruction as valid
3201 for arcem.
3202 * config/arc/arc-c.def (__ARC_FPX_QUARK__): Define.
3203 * config/arc/arc-cpus.def (quarkse_em): Add.
3204 * config/arc/arc-options.def (FL_FPX_QUARK, FL_QUARK): Likewise.
3205 * config/arc/arc-opts.h (FPX_QK): Define.
3206 * config/arc/arc-tables.opt: Regenerate.
3207 * config/arc/arc.c (gen_compare_reg): Change.
3208 (arc_register_move_cost): Avoid Dy,Dx moves.
3209 * config/arc/arc.h (TARGET_HARD_FLOAT): Change.
3210 (TARGET_FPX_QUARK, TARGET_FP_ASSIST): Define.
3211 * config/arc/arc.md (divsf3, sqrtsf2, fix_truncsfsi2, floatsisf2):
3212 New expands.
3213 * config/arc/fpu.md (divsf3_fpu, sqrtsf2_fpu, floatsisf2_fpu)
3214 (fix_truncsfsi2_fpu): Rename.
3215 * config/arc/fpx.md (cmp_quark, cmpsf_quark_, cmpsf_quark_ord)
3216 (cmpsf_quark_uneq, cmpsf_quark_eq, divsf3_quark, sqrtsf2_quark)
3217 (fix_truncsfsi2_quark, floatsisf2_quark): New patterns.
3218 * config/arc/t-multilib: Regenerate.
3219
3220 2016-11-17 Georg-Johann Lay <avr@gjlay.de>
3221
3222 * config/avr/avr.c (avr_print_operand_address): Use CONST_INT_P if
3223 appropriate.
3224 (ashlqi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out): Same.
3225 (ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Same.
3226 (avr_rtx_costs_1, extra_constraint_Q): Same.
3227 (avr_address_cost): Use SUBREG_P if possible.
3228
3229 2016-11-17 Richard Biener <rguenther@suse.de>
3230
3231 PR middle-end/78383
3232 * tree-cfgcleanup.c (cleanup_control_flow_bb): Do not turn
3233 non-local goto into CFG.
3234
3235 2016-11-17 Richard Biener <rguenther@suse.de>
3236
3237 * common.opt (ftree-loop-if-convert-stores): Mark as preserved for
3238 backward compatibility.
3239 * doc/invoke.texi (ftree-loop-if-convert-stores): Remove.
3240 * tree-if-conv.c (pass_if_conversion::gate): Do not test
3241 flag_tree_loop_if_convert_stores.
3242 (pass_if_conversion::execute): Likewise.
3243
3244 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3245
3246 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): Check for
3247 const_double code before calling aarch64_float_const_zero_rtx_p.
3248
3249 2016-11-17 Richard Biener <rguenther@suse.de>
3250
3251 PR tree-optimization/78306
3252 * ipa-inline-analysis.c (initialize_inline_failed): Do not
3253 inhibit inlining if function calls cilk_spawn.
3254 (can_inline_edge_p): Likewise.
3255
3256 2016-11-17 Richard Biener <rguenther@suse.de>
3257
3258 PR middle-end/78305
3259 * fold-const.c (negate_expr_p): Fix multiplication case.
3260
3261 2016-11-17 Chung-Lin Tang <cltang@codesourcery.com>
3262
3263 PR target/78357
3264 * config/nios2/nios2.c (nios2_init_libfuncs): Remove TARGET_LINUX_ABI
3265 condition.
3266 (TARGET_INIT_LIBFUNCS): Delete definition and...
3267 * config/nios2/linux.h (TARGET_INIT_LIBFUNCS): ...move to here, add
3268 comments.
3269
3270 2016-11-17 Krister Walfridsson <krister.walfridsson@gmail.com>
3271
3272 * config/netbsd-stdint.h: New.
3273 * config.gcc (i[34567]86-*-netbsd): Add netbsd-stdint.h to tm_file.
3274 (x86_64-*-netbsd*): Likewise.
3275
3276 2016-11-16 Andrew PInski <apinski@cavium.com>
3277
3278 * config/aarch64/aarch64.opt (mverbose-cost-dump): New option.
3279 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
3280 flag_aarch64_verbose_cost instead of checking for details dump.
3281 (aarch64_rtx_costs_wrapper): Likewise.
3282
3283 2016-11-16 Jakub Jelinek <jakub@redhat.com>
3284
3285 PR rtl-optimization/78378
3286 * combine.c (make_extraction): Use force_to_mode for non-{REG,MEM}
3287 inner only if pos is 0. Fix up formatting.
3288
3289 2016-11-17 Alan Modra <amodra@gmail.com>
3290
3291 PR rtl-optimization/78325
3292 PR rtl-optimization/70890
3293 * ira.c (combine_and_move_insns): Only remove REG_EQUIV notes
3294 for dead regno.
3295
3296 2016-11-16 Jason Merrill <jason@redhat.com>
3297
3298 * rtl.h: Declare gt_ggc_mx and gt_pch_nx.
3299
3300 2016-11-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3301 Richard Biener <rguenther@suse.de>
3302
3303 PR tree-optimization/77848
3304 * tree-if-conv.c (version_loop_for_if_conversion): When versioning
3305 an outer loop, only save basic block aux information for the inner
3306 loop.
3307 (versionable_outer_loop_p): New function.
3308 (tree_if_conversion): Version the outer loop instead of the inner
3309 one if the pattern will be recognized for outer-loop
3310 vectorization.
3311
3312 2016-11-16 Andrew Burgess <andrew.burgess@embecosm.com>
3313
3314 * gcc/bb-reorder.c: Remove 'toplev.h' include.
3315 (pass_partition_blocks::gate): No longer check
3316 user_defined_section_attribute, instead check the function decl
3317 for a section attribute.
3318 * gcc/c-family/c-attribs.c (handle_section_attribute): No longer
3319 set user_defined_section_attribute.
3320 * gcc/final.c (rest_of_handle_final): Likewise.
3321 * gcc/toplev.c: Remove definition of user_defined_section_attribute.
3322 * gcc/toplev.h: Remove declaration of
3323 user_defined_section_attribute.
3324
3325 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3326
3327 * config/mips/mips.md (casesi_internal_mips16_<mode>):
3328 Explicitly switch between JR and JRC for the table jump. Adjust
3329 instruction count.
3330
3331 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3332
3333 * config/mips/mips.md (casesi_internal_mips16_<mode>): Set
3334 `insn_count' to 11 rather than 16.
3335
3336 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3337
3338 * config/mips/mips.md (casesi_internal_mips16_<mode>): Use the
3339 `ltu' rather than `leu' operation in the RTL pattern
3340
3341 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3342
3343 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add
3344 missing <d> instruction prefixes throughout. Correct
3345 formatting.
3346
3347 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3348
3349 * config/mips/mips.c (mips_output_jump): Output R_MICROMIPS_JALR
3350 rather than R_MIPS_JALR relocation in microMIPS code. Do not
3351 cancel short delay slots in PIC call relaxation.
3352
3353 2016-11-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
3354
3355 * config/arm/arm.md (arm_addsi3): Add alternative for addition of
3356 general register with general register or ARM constant into SP
3357 register.
3358
3359 2016-11-16 Jakub Jelinek <jakub@redhat.com>
3360
3361 PR fortran/78299
3362 * omp-low.c (expand_omp_for_static_nochunk): Don't assert
3363 that loop->header == body_bb if broken_loop.
3364
3365 2015-11-16 Wilco Dijkstra <wdijkstr@arm.com>
3366
3367 * tree-ssa-math-opts.c (bswap_replace): Remove test
3368 of SLOW_UNALIGNED_ACCESS.
3369
3370 2016-11-16 Alexander Monakov <amonakov@ispras.ru>
3371
3372 * config/nvptx/mkoffload.c (main): Check that either OpenACC or OpenMP
3373 is selected. Pass -mgomp to offload compiler in OpenMP case.
3374 * config/nvptx/nvptx-protos.h (nvptx_shuffle_kind): Move enum
3375 declaration from nvptx.c.
3376 (nvptx_gen_shuffle): Declare.
3377 (nvptx_output_set_softstack): Declare.
3378 * config/nvptx/nvptx.c (nvptx_shuffle_kind): Move to nvptx-protos.h.
3379 (need_softstack_decl): New variable.
3380 (need_unisimt_decl): New variable.
3381 (diagnose_openacc_conflict): New. Use it...
3382 (nvptx_option_override): ...here. Handle TARGET_GOMP.
3383 (nvptx_encode_section_info): Handle "shared" attribute.
3384 (write_as_kernel): Restrict to OpenACC target regions.
3385 (init_softstack_frame): New.
3386 (nvptx_init_unisimt_predicate): New.
3387 (write_omp_entry): New. Use it...
3388 (nvptx_declare_function_name): ...here to emit OpenMP target region
3389 entrypoints. Handle TARGET_SOFT_STACK. Call
3390 nvptx_init_unisimt_predicate.
3391 (nvptx_output_set_softstack): New.
3392 (nvptx_get_drap_rtx): Return %argp as the DRAP if needed.
3393 (nvptx_gen_shuffle): Export.
3394 (nvptx_output_call_insn): Handle COND_EXEC patterns. Emit instruction
3395 predicate.
3396 (nvptx_print_operand): Fix handling of instruction predicates.
3397 (nvptx_get_unisimt_master): New helper function.
3398 (nvptx_get_unisimt_predicate): Ditto.
3399 (nvptx_call_insn_is_syscall_p): Ditto.
3400 (nvptx_unisimt_handle_set): Ditto.
3401 (nvptx_reorg_uniform_simt): New. Transform code for -muniform-simt.
3402 (nvptx_reorg): Call nvptx_reorg_uniform_simt.
3403 (nvptx_handle_shared_attribute): New. Use it...
3404 (nvptx_attribute_table): ... here (new entry).
3405 (nvptx_record_offload_symbol): Handle NULL attributes.
3406 (nvptx_file_end): Handle need_softstack_decl and need_unisimt_decl.
3407 (nvptx_simt_vf): New.
3408 (TARGET_SIMT_VF): Define.
3409 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Define
3410 __nvptx_softstack or __nvptx_unisimt__ when -msoft-stack, or resp.
3411 -muniform-simt option is active.
3412 (STACK_SIZE_MODE): Define.
3413 (FIXED_REGISTERS): Adjust.
3414 (SOFTSTACK_SLOT_REGNUM): New.
3415 (SOFTSTACK_PREV_REGNUM): New.
3416 (REGISTER_NAMES): Adjust.
3417 (struct machine_function): New fields.
3418 * config/nvptx/nvptx.md (UNSPEC_SET_SOFTSTACK): New.
3419 (UNSPEC_VOTE_BALLOT): Ditto.
3420 (UNSPEC_LANEID): Ditto.
3421 (UNSPECV_NOUNROLL): Ditto.
3422 (atomic): New attribute.
3423 (predicable): New attribute. Generate predicated forms via
3424 define_cond_exec.
3425 (br_true): Mark as not predicable.
3426 (br_false): Ditto.
3427 (br_true_uni): Ditto.
3428 (br_false_uni): Ditto.
3429 (return): Ditto.
3430 (trap_if_true): Ditto.
3431 (trap_if_false): Ditto.
3432 (nvptx_fork): Ditto.
3433 (nvptx_forked): Ditto.
3434 (nvptx_joining): Ditto.
3435 (nvptx_join): Ditto.
3436 (nvptx_barsync): Ditto.
3437 (epilogue): Emit stack restore if TARGET_SOFT_STACK.
3438 (allocate_stack): Implement for TARGET_SOFT_STACK. Remove unused code.
3439 (allocate_stack_<mode>): Remove unused pattern.
3440 (set_softstack_insn): New pattern.
3441 (restore_stack_block): Handle for TARGET_SOFT_STACK.
3442 (nvptx_vote_ballot): New pattern.
3443 (omp_simt_lane): Ditto.
3444 (omp_simt_last_lane): Ditto.
3445 (omp_simt_ordered): Ditto.
3446 (omp_simt_vote_any): Ditto.
3447 (omp_simt_xchg_bfly): Ditto.
3448 (omp_simt_xchg_idx): Ditto.
3449 (nvptx_nounroll): Ditto.
3450 (atomic_compare_and_swap<mode>_1): Mark with atomic attribute.
3451 (atomic_exchange<mode>): Ditto.
3452 (atomic_fetch_add<mode>): Ditto.
3453 (atomic_fetch_addsf): Ditto.
3454 (atomic_fetch_<logic><mode>): Ditto.
3455 * config/nvptx/nvptx.opt (msoft-stack): New option.
3456 (muniform-simt): Ditto.
3457 (mgomp): Ditto.
3458 * config/nvptx/t-nvptx (MULTILIB_OPTIONS): New.
3459 * doc/extend.texi (Nvidia PTX Variable Attributes): New section.
3460 * doc/invoke.texi (msoft-stack): Document.
3461 (muniform-simt): Document
3462 (mgomp): Document.
3463 * doc/tm.texi: Regenerate.
3464 * doc/tm.texi.in (TARGET_SIMT_VF): New hook.
3465 * target.def: Define it.
3466 * target-insns.def (omp_simt_lane): New.
3467 (omp_simt_last_lane): New.
3468 (omp_simt_ordered): New.
3469 (omp_simt_vote_any): New.
3470 (omp_simt_xchg_bfly): New.
3471 (omp_simt_xchg_idx): New.
3472
3473 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
3474
3475 * config/mips/mips-protos.h (mips_set_text_contents_type): New
3476 prototype.
3477 * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): New macro.
3478 (ASM_OUTPUT_CASE_END): Likewise.
3479 * config/mips/mips.c (mips_set_text_contents_type): New function.
3480 (mips16_emit_constants): Record the pool's initial label number
3481 with the `consttable' insn. Emit a `consttable_end' insn at the end.
3482 (mips_final_prescan_insn): Call `mips_set_text_contents_type'
3483 for `consttable' insns.
3484 (mips_final_postscan_insn): Call `mips_set_text_contents_type'
3485 for `consttable_end' insns.
3486 * config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE_END enum value.
3487 (consttable): Add operand.
3488 (consttable_end): New insn.
3489
3490 2016-11-16 Yuri Rumyantsev <ysrumyan@gmail.com>
3491
3492 * params.def (PARAM_VECT_EPILOGUES_NOMASK): New.
3493 * tree-if-conv.c (tree_if_conversion): Make public.
3494 * * tree-if-conv.h: New file.
3495 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences) Avoid
3496 dynamic alias checks for epilogues.
3497 * tree-vect-loop-manip.c (vect_do_peeling): Return created epilog.
3498 * tree-vect-loop.c: include tree-if-conv.h.
3499 (new_loop_vec_info): Add zeroing orig_loop_info field.
3500 (vect_analyze_loop_2): Don't try to enhance alignment for epilogues.
3501 (vect_analyze_loop): Add argument ORIG_LOOP_INFO which is not NULL
3502 if epilogue is vectorized, set up orig_loop_info field of loop_vinfo
3503 using passed argument.
3504 (vect_transform_loop): Check if created epilogue should be returned
3505 for further vectorization with less vf. If-convert epilogue if
3506 required. Print vectorization success for epilogue.
3507 * tree-vectorizer.c (vectorize_loops): Add epilogue vectorization
3508 if it is required, pass loop_vinfo produced during vectorization of
3509 loop body to vect_analyze_loop.
3510 * tree-vectorizer.h (struct _loop_vec_info): Add new field
3511 orig_loop_info.
3512 (LOOP_VINFO_ORIG_LOOP_INFO): New.
3513 (LOOP_VINFO_EPILOGUE_P): New.
3514 (LOOP_VINFO_ORIG_VECT_FACTOR): New.
3515 (vect_do_peeling): Change prototype to return epilogue.
3516 (vect_analyze_loop): Add argument of loop_vec_info type.
3517 (vect_transform_loop): Return created loop.
3518
3519 2016-11-16 Segher Boessenkool <segher@kernel.crashing.org>
3520
3521 * config/rs6000/rs6000.c (rs6000_components_for_bb): Mark the LR
3522 component as used also if LR_REGNO is a live input to the bb.
3523 * df-scan.c (df_get_entry_block_def_set): Return immediately after
3524 clearing the set if DF_SCAN_EMPTY_ENTRY_EXIT is set.
3525 (df_get_exit_block_use_set): Ditto.
3526 * df.h (df_scan_flags): New enum.
3527 * shrink-wrap.c (try_shrink_wrapping_separate): Set
3528 DF_SCAN_EMPTY_ENTRY_EXIT in df_scan->local_flags, and call
3529 df_update_entry_block_defs and df_update_exit_block_uses
3530 at the start; clear the flag and call those functions at the end.
3531
3532 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
3533 Alan Hayward <alan.hayward@arm.com>
3534 David Sherwood <david.sherwood@arm.com>
3535
3536 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Set
3537 nb_iterations to the number of latch iterations rather than the
3538 number of loop iterations.
3539
3540 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
3541 Alan Hayward <alan.hayward@arm.com>
3542 David Sherwood <david.sherwood@arm.com>
3543
3544 * combine.c (maybe_swap_commutative_operands): New function.
3545 (combine_simplify_rtx): Use it.
3546 (change_zero_ext): Likewise.
3547 (make_compound_operation_int): New function, split out of...
3548 (make_compound_operation): ...here. Use
3549 maybe_swap_commutative_operands for both.
3550
3551 2016-11-16 Richard Earnshaw <rearnsha@arm.com>
3552
3553 * arm/arm-fpus.def (vfpv2): New FPU, currently an alias for 'vfp'.
3554 (neon-vfpv3): New FPU, currently an alias for 'neon'.
3555 * arm/arm-tables.opt: Regenerated.
3556 * arm/t-aprofile (MULTILIB_REUSE): Add reuse rules for vfpv2 and
3557 neon-vfpv3.
3558 * doc/invoke.texi (ARM: -mfpu): Document new options. Note that 'vfp'
3559 and 'neon' are aliases for specific implementations.
3560
3561 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
3562 Alan Hayward <alan.hayward@arm.com>
3563 David Sherwood <david.sherwood@arm.com>
3564
3565 * optabs.c (vector_compare_rtx): Add a cmp_mode parameter
3566 and use it in the final call to gen_rtx_fmt_ee.
3567 (expand_vec_cond_expr): Update accordingly.
3568 (expand_vec_cmp_expr): Likewise.
3569
3570 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
3571 Alan Hayward <alan.hayward@arm.com>
3572 David Sherwood <david.sherwood@arm.com>
3573
3574 * cprop.c (local_cprop_find_used_regs): Use df_read_modify_subreg_p.
3575
3576 2016-11-16 Richard Biener <rguenther@suse.de>
3577
3578 PR middle-end/78333
3579 * gimplify.c (gimplify_function_tree): Do not instrument
3580 GNU extern inline functions.
3581
3582 2016-11-16 Martin Liska <mliska@suse.cz>
3583
3584 PR sanitizer/78270
3585 * gimplify.c (gimplify_switch_expr): Always save previous
3586 gimplify_ctxp->live_switch_vars.
3587
3588 2016-11-16 Andrew Burgess <andrew.burgess@embecosm.com>
3589
3590 * config/arc/arc.md (movb peephole2): New peephole2 to merge two
3591 zero_extract operations to allow a movb to occur.
3592 * testsuite/gcc.target/arc/movb-1.c: Update little endian arc results.
3593 * testsuite/gcc.target/arc/movb-2.c: Likewise.
3594 * testsuite/gcc.target/arc/movb-5.c: Likewise.
3595 * testsuite/gcc.target/arc/movh_cl-1.c: Extend test to cover
3596 little endian arc.
3597
3598 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
3599 Alan Hayward <alan.hayward@arm.com>
3600 David Sherwood <david.sherwood@arm.com>
3601
3602 * expr.c (emit_group_load_1): Tighten check for whether an
3603 access involves only one operand of a CONCAT. Use extract_bit_field
3604 for constants if the bit range does span the whole operand.
3605
3606 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
3607 Alan Hayward <alan.hayward@arm.com>
3608 David Sherwood <david.sherwood@arm.com>
3609
3610 * rtlanal.c (rtx_addr_can_trap_p_1): Handle unknown sizes.
3611
3612 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
3613 Alan Hayward <alan.hayward@arm.com>
3614 David Sherwood <david.sherwood@arm.com>
3615
3616 * tree-vect-loop.c (vect_transform_loop): Protect the updates of
3617 all three iteration counts with an any_* test. Use a single update
3618 for each count. Fix the calculation of nb_iterations_estimate.
3619
3620 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
3621
3622 * config/pdp11/pdp11.c: Include dbxout.h.
3623
3624 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
3625
3626 * config/arc/arc.c (arc_loop_hazard): Add missing brackets.
3627
3628 2016-11-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3629
3630 PR target/78364
3631 * config/arm/arm.md (*extv_reg): Restrict operands 2 and 3 to the
3632 proper ranges for an SBFX instruction.
3633 (extzv_t2): Likewise for UBFX.
3634
3635 2016-11-16 Richard Biener <rguenther@suse.de>
3636
3637 PR tree-optimization/78348
3638 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMMOVE.
3639 (generate_memcpy_builtin): Honor PKIND_MEMCPY on the partition.
3640 (classify_partition): Set PKIND_MEMCPY if dependence analysis
3641 revealed no dependency, PKIND_MEMMOVE otherwise.
3642
3643 2016-11-16 Jakub Jelinek <jakub@redhat.com>
3644
3645 PR sanitizer/77823
3646 * ubsan.c (ubsan_build_overflow_builtin): Add DATAP argument, if
3647 it points to non-NULL tree, use it instead of ubsan_create_data.
3648 (instrument_si_overflow): Handle vector signed integer overflow
3649 checking.
3650 * ubsan.h (ubsan_build_overflow_builtin): Add DATAP argument.
3651 * tree-vrp.c (simplify_internal_call_using_ranges): Punt for
3652 vector IFN_UBSAN_CHECK_*.
3653 * internal-fn.c (expand_addsub_overflow): Add DATAP argument,
3654 pass it through to ubsan_build_overflow_builtin.
3655 (expand_neg_overflow, expand_mul_overflow): Likewise.
3656 (expand_vector_ubsan_overflow): New function.
3657 (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB,
3658 expand_UBSAN_CHECK_MUL): Use tit for vector arithmetics.
3659 (expand_arith_overflow): Adjust expand_*_overflow callers.
3660
3661 2016-11-16 Matthias Klose <doko@ubuntu.com>
3662
3663 * doc/install.texi: Remove references to java/libjava.
3664
3665 2016-11-16 Kugan Vivekanandarajah <kuganv@linaro.org>
3666
3667 * tree-ssa-coalesce.c (register_default_def): Remove
3668 register_ssa_partition.
3669 (create_outofssa_var_map): Likewise.
3670 * tree-ssa-live.c (register_ssa_partition_check): Remove.
3671 * tree-ssa-live.h (register_ssa_partition): Likewise.
3672
3673 2016-11-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
3674
3675 * genattrtab.c (attr_rtx_1): Avoid allocating new rtx objects.
3676 Clear ATTR_CURR_SIMPLIFIED_P for re-used binary rtx objects.
3677 Use DEF_ATTR_STRING for string arguments. Use RTL_HASH for
3678 integer arguments. Only set ATTR_PERMANENT_P on newly hashed
3679 rtx when all sub-rtx are also permanent.
3680 (attr_eq): Simplify.
3681 (attr_copy_rtx): Remove.
3682 (make_canonical, get_attr_value): Use attr_equal_p.
3683 (copy_boolean): Rehash NOT.
3684 (simplify_test_exp_in_temp,
3685 optimize_attrs): Remove call to attr_copy_rtx.
3686 (attr_alt_intersection, attr_alt_union,
3687 attr_alt_complement, mk_attr_alt): Rehash EQ_ATTR_ALT.
3688 (make_automaton_attrs): Use attr_eq.
3689
3690 2016-11-15 Matthias Klose <doko@ubuntu.com>
3691
3692 * doc/install.texi: Remove references to java/libjava.
3693 * doc/sourcebuild.texi: Likewise.
3694 * doc/invoke.texi: Likewise.
3695 * doc/standards.texi: Likewise.
3696
3697 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
3698 Alan Hayward <alan.hayward@arm.com>
3699 David Sherwood <david.sherwood@arm.com>
3700
3701 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use Pmode instead
3702 of VOIDmode.
3703 * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Likewise.
3704 * config/iq2000/iq2000.h (INCOMING_RETURN_ADDR_RTX): Likewise.
3705 * config/m68k/m68k.h (INCOMING_RETURN_ADDR_RTX): Likewise.
3706 * config/microblaze/microblaze.h (INCOMING_RETURN_ADDR_RTX): Likewise.
3707 * config/mips/mips.h (INCOMING_RETURN_ADDR_RTX): Likewise.
3708 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Likewise.
3709 * config/nios2/nios2.h (INCOMING_RETURN_ADDR_RTX): Likewise.
3710
3711 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
3712 Alan Hayward <alan.hayward@arm.com>
3713 David Sherwood <david.sherwood@arm.com>
3714
3715 * dce.c (check_argument_store): Pass the size instead of
3716 the memory reference.
3717 (find_call_stack_args): Pass MEM_SIZE to check_argument_store.
3718
3719 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
3720 Alan Hayward <alan.hayward@arm.com>
3721 David Sherwood <david.sherwood@arm.com>
3722
3723 * alias.c (canon_rtx): Use simplify_gen_binary.
3724
3725 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
3726 Alan Hayward <alan.hayward@arm.com>
3727 David Sherwood <david.sherwood@arm.com>
3728
3729 * rtl.h (load_extend_op): Declare.
3730 * rtlanal.c (load_extend_op): New function.
3731 (nonzero_bits1): Use it.
3732 (num_sign_bit_copies1): Likewise.
3733 * cse.c (cse_insn): Likewise.
3734 * fold-const.c (fold_single_bit_test): Likewise.
3735 (fold_unary_loc): Likewise.
3736 * fwprop.c (free_load_extend): Likewise.
3737 * postreload.c (reload_cse_simplify_set): Likewise.
3738 (reload_cse_simplify_operands): Likewise.
3739 * combine.c (try_combine): Likewise.
3740 (simplify_set): Likewise. Remove redundant SUBREG_BYTE and
3741 subreg_lowpart_p checks.
3742
3743 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
3744 Alan Hayward <alan.hayward@arm.com>
3745 David Sherwood <david.sherwood@arm.com>
3746
3747 * combine.c (simplify_shift_const_1): Use the number of bits
3748 in the inner mode to determine the range of the shift.
3749 When handling shifts of vectors, skip any rules that apply
3750 only to scalars.
3751
3752 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
3753 Alan Hayward <alan.hayward@arm.com>
3754 David Sherwood <david.sherwood@arm.com>
3755
3756 * rtlanal.c (num_sign_bit_copies1): Calculate bitwidth after
3757 handling VOIDmode.
3758
3759 2016-11-15 Matthias Klose <doko@ubuntu.com>
3760
3761 * doc/install.texi: Remove references to gcj/libjava.
3762 * doc/invoke.texi: Likewise.
3763
3764 2016-11-15 Jeff Law <law@redhat.com>
3765
3766 * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded
3767 parameter. Callers changed.
3768 (check-subpath_and_update_thread_path): Extracted from
3769 fsm_find_control_statement_thread_paths.
3770 (handle_phi, handle_assignment, handle_assignment_p): Likewise.
3771 (handle_phi, handle_assignment): Allow any constant node, not
3772 just INTEGER_CST.
3773
3774 2016-11-15 Claudiu Zissulescu <claziss@synopsys.com>
3775
3776 * config/arc/arc-arch.h: New file.
3777 * config/arc/arc-arches.def: Likewise.
3778 * config/arc/arc-cpus.def: Likewise.
3779 * config/arc/arc-options.def: Likewise.
3780 * config/arc/t-multilib: Likewise.
3781 * config/arc/genmultilib.awk: Likewise.
3782 * config/arc/genoptions.awk: Likewise.
3783 * config/arc/arc-tables.opt: Likewise.
3784 * config/arc/driver-arc.c: Likewise.
3785 * testsuite/gcc.target/arc/nps400-cpu-flag.c: Likewise.
3786 * common/config/arc/arc-common.c (arc_handle_option): Trace
3787 toggled options.
3788 * config.gcc (arc*-*-*): Add arc-tables.opt to arc's extra
3789 options; check for supported cpu against arc-cpus.def file.
3790 (arc*-*-elf*, arc*-*-linux-uclibc*): Use new make fragment; define
3791 TARGET_CPU_BUILD macro; add driver-arc.o as an extra object.
3792 * config/arc/arc-c.def: Add emacs local variables.
3793 * config/arc/arc-opts.h (processor_type): Use arc-cpus.def file.
3794 (FPU_FPUS, FPU_FPUD, FPU_FPUDA, FPU_FPUDA_DIV, FPU_FPUDA_FMA)
3795 (FPU_FPUDA_ALL, FPU_FPUS_DIV, FPU_FPUS_FMA, FPU_FPUS_ALL)
3796 (FPU_FPUD_DIV, FPU_FPUD_FMA, FPU_FPUD_ALL): New defines.
3797 (DEFAULT_arc_fpu_build): Define.
3798 (DEFAULT_arc_mpy_option): Define.
3799 * config/arc/arc-protos.h (arc_init): Delete.
3800 * config/arc/arc.c (arc_cpu_name): New variable.
3801 (arc_selected_cpu, arc_selected_arch, arc_arcem, arc_archs)
3802 (arc_arc700, arc_arc600, arc_arc601): New variable.
3803 (arc_init): Add static; remove selection of default tune value,
3804 cleanup obsolete error messages.
3805 (arc_override_options): Make use of .def files for selecting the
3806 right cpu and option configurations.
3807 * config/arc/arc.h (stdbool.h): Include.
3808 (TARGET_CPU_DEFAULT): Define.
3809 (CPP_SPEC): Remove mcpu=NPS400 handling.
3810 (arc_cpu_to_as): Declare.
3811 (EXTRA_SPEC_FUNCTIONS): Define.
3812 (OPTION_DEFAULT_SPECS): Likewise.
3813 (ASM_DEFAULT): Remove.
3814 (ASM_SPEC): Use arc_cpu_to_as.
3815 (DRIVER_SELF_SPECS): Remove deprecated options.
3816 (arc_base_cpu): Declare.
3817 (TARGET_ARC600, TARGET_ARC601, TARGET_ARC700, TARGET_EM)
3818 (TARGET_HS, TARGET_V2, TARGET_ARC600): Make them use arc_base_cpu
3819 variable.
3820 (MULTILIB_DEFAULTS): Use ARC_MULTILIB_CPU_DEFAULT.
3821 * config/arc/arc.md (attr_cpu): Remove.
3822 * config/arc/arc.opt (mno-mpy): Deprecate.
3823 (mcpu=ARC600, mcpu=ARC601, mcpu=ARC700, mcpu=NPS400, mcpu=ARCEM)
3824 (mcpu=ARCHS): Remove.
3825 (mcrc, mdsp-packa, mdvbf, mmac-d16, mmac-24, mtelephony, mrtsc):
3826 Deprecate.
3827 (mbarrel_shifte, mspfp_, mdpfp_, mdsp_pack, mmac_): Remove.
3828 (arc_fpu): Use new defines.
3829 (mpy-option): Change to use numeric or string like inputs.
3830 * config/arc/t-arc (driver-arc.o): New target.
3831 (arc-cpus, t-multilib, arc-tables.opt): Likewise.
3832 * config/arc/t-arc-newlib: Delete.
3833 * config/arc/t-arc-uClibc: Renamed to t-uClibc.
3834 * doc/invoke.texi (ARC): Update arc options.
3835
3836 2016-11-15 Maciej W. Rozycki <macro@imgtec.com>
3837
3838 * config/mips/mips.c (mips16_emit_constants): Emit `consttable'
3839 insn at the beginning of the constant pool.
3840 (mips_insert_insn_pseudos): New function.
3841 (mips_machine_reorg2): Call it.
3842 * config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE and
3843 UNSPEC_INSN_PSEUDO enum values.
3844 (insn_pseudo, consttable): New insns.
3845
3846 2016-11-15 Michael Matz <matz@suse.de>
3847
3848 PR missed-optimization/77881
3849 * combine.c (simplify_comparison): Remove useless subregs
3850 also inside the loop, not just after it.
3851 (make_compound_operation): Recognize some subregs as being
3852 masking as well.
3853
3854 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
3855 Alan Hayward <alan.hayward@arm.com>
3856 David Sherwood <david.sherwood@arm.com>
3857
3858 * dwarf2out.c (mem_loc_descriptor): Fix GET_MODE_CLASS/
3859 GET_MODE_SIZE typo.
3860
3861 2016-11-14 Michael Meissner <meissner@linux.vnet.ibm.com>
3862
3863 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Add support
3864 for using xxinsertw and vinsert{b,h} on ISA 3.0.
3865
3866 * config/rs6000/vsx.md (vsx_extract_<mode>): Update comment.
3867 (vsx_set_<mode>_p9): New insn to generate xxinsertw and
3868 vinsert{b,h} on ISA 3.0.
3869
3870 2016-11-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
3871
3872 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
3873 and cmpnop in two steps: first the ones not accessed in original gimple
3874 expression in a endian independent way and then the ones not accessed
3875 in the final result in an endian-specific way.
3876 (bswap_replace): Stop doing big endian adjustment.
3877
3878 2016-11-14 Uros Bizjak <ubizjak@gmail.com>
3879
3880 * config/i386/i386.md (*andndi3_doubleword): Merge operand constraints.
3881 (*ashl<mode>3_doubleword): Ditto.
3882
3883 2016-11-14 Martin Liska <mliska@suse.cz>
3884
3885 * tree-ssa-dse.c (dse_optimize_stmt): Remove quotes and extra new line.
3886
3887 2016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
3888 Richard Biener <rguenther@suse.de>
3889
3890 * doc/invoke.texi (fgimple): Document.
3891 * dumpfile.h (TDF_GIMPLE): Add.
3892 * dumpfile.c (dump_options): Add gimple.
3893 * gimple-pretty-print.c (dump_gimple_switch): Adjust dump
3894 for TDF_GIMPLE.
3895 (dump_gimple_label): Likewise.
3896 (dump_gimple_phi): Likewise.
3897 (dump_gimple_bb_header): Likewise.
3898 (dump_phi_nodes): Likewise.
3899 (pp_cfg_jump): Likewise. Pass in dump flags.
3900 (dump_implicit_edges): Adjust.
3901 * passes.c (pass_init_dump_file): Do not dump function header
3902 for TDF_GIMPLE.
3903 * tree-cfg.c (dump_function_to_file): Dump function return type
3904 and __GIMPLE keyword for TDF_GIMPLE. Change guard for dumping
3905 GIMPLE stmts.
3906 * tree-pretty-print.c (dump_decl_name): Adjust dump for TDF_GIMPLE.
3907 (dump_generic_node): Likewise.
3908 * function.h (struct function): Add pass_startwith member.
3909 * passes.c (execute_one_pass): Implement startwith.
3910 * tree-ssanames.c (make_ssa_name_fn): New argument, check for version
3911 and assign proper version for parsed ssa names.
3912 * tree-ssanames.h (make_ssa_name_fn): Add new argument to the function.
3913 * internal-fn.c (expand_PHI): New function.
3914 * internal-fn.h (expand_PHI): Declared here.
3915 * internal-fn.def: New defination for PHI.
3916 * tree-cfg.c (lower_phi_internal_fn): New function.
3917 (build_gimple_cfg): Call it.
3918 (verify_gimple_call): Condition for passing label as arg in internal
3919 function PHI.
3920 * tree-into-ssa.c (rewrite_add_phi_arguments): Handle already
3921 present PHIs with arguments.
3922
3923 2016-11-14 Martin Liska <mliska@suse.cz>
3924
3925 PR bootstrap/78069
3926 * common.opt: Add prefer-atomic as a new enum value for
3927 -fprofile-update.
3928 * coretypes.h: Likewise.
3929 * doc/invoke.texi: Document the new option value.
3930 * gcc.c: Replace atomic with prefer-atomic. Remove warning.
3931 * tree-profile.c (tree_profiling): Select default value
3932 of -fprofile-update when 'prefer-atomic' is selected.
3933
3934 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
3935
3936 * config/arm/cortex-a57.md (cortex_a57_alu): Move extend here, bfm...
3937 (cortex_a57_alu_shift): ...here.
3938
3939 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
3940
3941 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3)
3942 Use bfx attribute.
3943 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
3944 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
3945 (<optab>si3_insn_uxtw): Likewise.
3946 (<optab><mode>3_insn): Likewise.
3947 (<ANY_EXTEND:optab><GPI:mode>_ashl<SHORT:mode>): Likewise.
3948 (zero_extend<GPI:mode>_lshr<SHORT:mode>): Likewise.
3949 (extend<GPI:mode>_ashr<SHORT:mode>): Likewise.
3950 (<optab><mode>): Likewise.
3951 (insv<mode>): Likewise.
3952 (andim_ashift<mode>_bfiz): Likewise.
3953 * config/aarch64/thunderx.md (thunderx_shift): Add bfx.
3954 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
3955 * config/arm/cortex-a57.md (cortex_a57_alu): Add bfx.
3956 * config/arm/exynos-m1.md (exynos_m1_alu): Add bfx.
3957 (exynos_m1_alu_p): Likewise.
3958 * config/arm/types.md: Add bfx.
3959 * config/arm/xgene1.md (xgene1_bfm): Add bfx.
3960
3961 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
3962
3963 * config/aarch64/aarch64.c (cortexa57_vector_cost):
3964 Change vec_stmt_cost, vec_align_load_cost and vec_unalign_load_cost.
3965
3966 2016-11-14 Richard Biener <rguenther@suse.de>
3967
3968 PR tree-optimization/78312
3969 * gimple-ssa-backprop.c (backprop::prepare_change): Reset
3970 flow-sensitive info.
3971
3972 2016-11-14 Georg-Johann Lay <avr@gjlay.de>
3973
3974 PR target/78093
3975 * doc/invoke.texi (AVR Options) [-mabsdata]: Document new option.
3976 * config/avr/avr.opt (-mabsdata): New option.
3977 * config/avr/avr-arch.h (avr_device_specific_features): Add AVR_ISA_LDS.
3978 * config/avr/avr.c (avr_encode_section_info) [AVR_TINY]: If
3979 -mabsdata & symbol is not progmem, tag as AVR_SYMBOL_FLAG_TINY_ABSDATA.
3980 * config/avr/avr-mcus.def (attiny4/5/9/10/20): Use AVR_ISA_LDS.
3981 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Print cc1_absdata
3982 spec depending on AVR_ISA_LDS.
3983 * config/avr/specs.h (CC1_SPEC): Enhanced by cc1_absdata spec.
3984
3985 2016-11-13 Jakub Jelinek <jakub@redhat.com>
3986
3987 * match.pd: Don't try to compare addresses of variables with
3988 DECL_VALUE_EXPR.
3989
3990 2016-11-13 Kugan Vivekanandarajah <kuganv@linaro.org>
3991
3992 * ipa-cp.c (ipa_get_jf_pass_through_result): Skip unary expressions.
3993 (propagate_vr_accross_jump_function): Handle unary expressions.
3994 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
3995 (load_from_param_1): New.
3996 (load_from_unmodified_param): Factor common part into load_from_param_1.
3997 (load_from_param): New.
3998 (compute_complex_assign_jump_func): Handle unary expressions.
3999 (update_jump_functions_after_inlining): Likewise.
4000 (ipa_write_jump_function): Likewise.
4001 (ipa_read_jump_function): Likewise.
4002
4003 2016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4004
4005 PR c/35503
4006 * doc/invoke.texi: Document Wrestrict.
4007 * pretty-print.c (pp_format): Add case for "Z" specifier.
4008 (test_pp_format): Test "Z" specifier.
4009
4010 2016-11-13 Eric Botcazou <ebotcazou@adacore.com>
4011
4012 * ipa-icf.c (sem_function::merge): Do not create a wrapper also if the
4013 original function needs a static chain.
4014
4015 2016-11-13 David Edelsohn <dje.gcc@gmail.com>
4016
4017 PR target/78336
4018 * config/rs6000/rs6000.c (rs6000_asm_weaken_decl): Protect
4019 ASM_OUTPUT_DEF.
4020
4021 2016-11-12 Segher Boessenkool <segher@kernel.crashing.org>
4022
4023 PR target/77957
4024 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
4025 return early if !optional_tbtab.
4026
4027 2016-11-11 Eric Botcazou <ebotcazou@adacore.com>
4028
4029 PR rtl-optimization/59461
4030 * doc/rtl.texi (paradoxical subregs): Add missing word.
4031 * combine.c (reg_nonzero_bits_for_combine): Do not discard results
4032 in modes with precision larger than that of last_set_mode.
4033 * rtlanal.c (nonzero_bits1) <SUBREG>: If WORD_REGISTER_OPERATIONS is
4034 set and LOAD_EXTEND_OP is appropriate, propagate results from inner
4035 REGs to paradoxical SUBREGs.
4036 (num_sign_bit_copies1) <SUBREG>: Likewise. Check that the mode is not
4037 larger than a word before invoking LOAD_EXTEND_OP on it.
4038
4039 2016-11-11 Michael Meissner <meissner@linux.vnet.ibm.com>
4040
4041 PR target/78243
4042 * config/rs6000/vsx.md (vsx_extract_<mode>_p9): Correct the
4043 element order for little endian ordering.
4044
4045 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Use
4046 VECTOR_ELT_ORDER_BIG and not BYTES_BIG_ENDIAN to adjust element
4047 number.
4048
4049 2016-11-11 Uros Bizjak <ubizjak@gmail.com>
4050
4051 PR target/78310
4052 * config/i386/i386.md (rotate to rotatex splitter): Avoid overflow
4053 when calculating operand 2.
4054 (rotate to rotatex zext splitter): Ditto.
4055
4056 2016-11-11 Jeff Law <law@redhat.com>
4057
4058 * gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New
4059 function.
4060 (stmt_uses_name_in_undefined_way): New function, extracted from
4061 find_implicit_erroneous_behavior and extended for div/mod case.
4062 (stmt_uses_0_or_null_in_undefined_way): New function, extracted from
4063 find_explicit_erroneous_behavior and extended for div/mod case.
4064 (find_implicit_erroneous_behavior): Use new helper function.
4065 (find_explicit_erroneous_behavior): Use new helper function.
4066
4067 2016-11-11 Richard Biener <rguenther@suse.de>
4068
4069 PR tree-optimization/71575
4070 * graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove
4071 bogus assert.
4072
4073 2016-11-11 Richard Biener <rguenther@suse.de>
4074
4075 PR middle-end/78295
4076 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
4077 about uninitialized destination arg of BIT_INSERT_EXPR.
4078
4079 2016-11-10 Sandra Loosemore <sandra@codesourcery.com>
4080
4081 PR c/37998
4082 * doc/invoke.texi (Code Gen Options) [-fno-common]: Use correct
4083 terminology. Expand to remove ambiguity.
4084
4085 2016-11-10 Segher Boessenkool <segher@kernel.crashing.org>
4086
4087 PR rtl-optimization/78232
4088 * combine.c (try_combine): Add a big comment about why reusing i2dest
4089 is undesirable.
4090 (change_zero_ext): Do not call simplify_gen_binary, do the
4091 simplifications manually.
4092
4093 2016-11-10 Michael Meissner <meissner@linux.vnet.ibm.com>
4094
4095 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0,
4096 enable HImode and QImode to go in vector registers by default if
4097 the -mvsx-small-integer option is enabled.
4098 (rs6000_secondary_reload_simple_move): Likewise.
4099 (rs6000_preferred_reload_class): Don't force integer constants to
4100 be loaded into vector registers that we can easily make into
4101 memory (or being created in the GPRs and moved over with direct move).
4102 * config/rs6000/vsx.md (UNSPEC_P9_MEMORY): Delete, no longer used.
4103 (vsx_extract_<mode>): Rework V4SImode, V8HImode, and V16QImode
4104 vector extraction on ISA 3.0 when the scalar integer can be
4105 allocated in vector registers. Generate the VEC_SELECT directy,
4106 and don't use UNSPEC's to avoid having the scalar type in a vector
4107 register. Make the expander target registers, and let the
4108 combiner fold in results storing to memory, if the machine
4109 supports stores.
4110 (vsx_extract_<mode>_di): Likewise.
4111 (vsx_extract_<mode>_p9): Likewise.
4112 (vsx_extract_<mode>_di_p9): Likewise.
4113 (vsx_extract_<mode>_store_p9): Likewise.
4114 (vsx_extract_si): Likewise.
4115 (vsx_extract_<mode>_p8): Likewise.
4116 (p9_lxsi<wd>zx): Delete, no longer used.
4117 (p9_stxsi<wd>x): Likewise.
4118 * config/rs6000/rs6000.md (INT_ISA3): New mode iterator for
4119 integers in vector registers for ISA 3.0.
4120 (QHI): Update comment.
4121 (zero_extendqi<mode>2): Add support for ISA 3.0 scalar load or
4122 vector extract instructions in sign/zero extend.
4123 (zero_extendhi<mode>): Likewise.
4124 (extendqi<mode>): Likewise.
4125 (extendhi<mode>2): Likewise.
4126 (HImode splitter for load/sign extend in vector register): Likewise.
4127 (float<QHI:mode><FP_ISA3:mode>2): Eliminate old method of
4128 optimizing floating point conversions to/from small data types and
4129 rewrite it to support QImode/HImode being allowed in vector
4130 registers on ISA 3.0.
4131 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
4132 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
4133 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
4134 (fix_trunc<SFDF:mode><QHI:mode>2): Likewise.
4135 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
4136 (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
4137 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
4138 VSPLITISW on ISA 2.07.
4139 (movhi_internal): Combine movhi_internal and movqi_internal into
4140 one mov<mode>_internal with an iterator. Add support for QImode
4141 and HImode being allowed in vector registers. Make large number
4142 of attributes and constraints easier to read.
4143 (movqi_internal): Likewise.
4144 (mov<mode>_internal): Likewise.
4145 (movdi_internal64): Fix constraint to allow loading -16..15 with
4146 VSPLITISW on ISA 2.07.
4147 (integer XXSPLTIB splitter): Add support for QI, HI, and SImode as
4148 well as DImode.
4149
4150 2016-11-10 Pat Haugen <pthaugen@us.ibm.com>
4151
4152 PR rtl-optimization/78241
4153 * loop-unroll.c (unroll_loop_runtime_iterations): Don't adjust 'niter',
4154 but emit initial peel copy if niter expr is not reliable.
4155
4156 2016-11-10 Segher Boessenkool <segher@kernel.crashing.org>
4157
4158 * dwarf2cfi.c (dump_cfi_row): Add forward declaration.
4159 (maybe_record_trace_start): If the CFI is different on the new and
4160 old paths, print out both to the dump file before ICEing.
4161
4162 2016-11-10 Vladimir Makarov <vmakarov@redhat.com>
4163
4164 * target.def (additional_allocno_class_p): New.
4165 * hooks.h (hook_bool_reg_class_t_false): New prototype.
4166 * hooks.c (hook_bool_reg_class_t_false): New.
4167 * ira.c (setup_allocno_and_important_classes): Use the new hook.
4168 * doc/tm.texi.in (TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Add it.
4169 * doc/tm.texi: Update.
4170
4171 2016-11-10 Jason Merrill <jason@redhat.com>
4172
4173 * gengtype.c (new_structure): Append to structures list.
4174 (find_structure): Likewise.
4175
4176 2016-11-10 Jim Wilson <jim.wilson@linaro.org>
4177
4178 * tree-loop-distribution.c (pg_add_dependence_edges): Return 2 if
4179 this_dir is 2. Check for this_dir non-zero before dir != this_dir
4180 check.
4181
4182 2016-11-10 Jakub Jelinek <jakub@redhat.com>
4183
4184 * omp-low.c (lower_omp_target): Fix up argument to is_reference.
4185 (expand_omp_ordered_sink): Handle TREE_PURPOSE of deps being
4186 TRUNC_DIV_EXPR.
4187 * gimplify.c (gimplify_scan_omp_clauses): Likewise. Set
4188 ctx->target_map_scalars_firstprivate on OMP_TARGET even for Fortran.
4189 Remove omp_no_lastprivate callers. Propagate lastprivate on combined
4190 teams distribute parallel for simd even to distribute and teams
4191 construct. For OMP_CLAUSE_DEPEND add missing break at the end of
4192 OMP_CLAUSE_DEPEND_SINK case.
4193 (omp_notice_variable): Use lang_hooks.decls.omp_scalar_p.
4194 (omp_no_lastprivate): Removed.
4195 (gimplify_adjust_omp_clauses): Remove omp_no_lastprivate callers.
4196 (gimplify_omp_for): Likewise.
4197 (computable_teams_clause): Fail for automatic vars from current
4198 function not yet seen in bind expr.
4199 * langhooks.c (lhd_omp_scalar_p): New function.
4200 * langhooks.h (struct lang_hooks_for_decls): Add omp_scalar_p.
4201 * varpool.c (varpool_node::get_create): Set node->offloading
4202 even for DECL_EXTERNAL decls.
4203 * langhooks-def.h (lhd_omp_scalar_p): New prototype.
4204 (LANG_HOOKS_OMP_SCALAR_P): Define.
4205 (LANG_HOOKS_DECLS): Use it.
4206
4207 2016-11-10 Martin Liska <mliska@suse.cz>
4208
4209 PR sanitizer/78270
4210 * gimplify.c (gimplify_switch_expr): Create live_switch_vars
4211 only when SWITCH_BODY is a BIND_EXPR.
4212
4213 2016-11-10 Pierre-Marie de Rodat <derodat@adacore.com>
4214
4215 PR debug/78112
4216 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
4217 on the context only when it has no DIE yet.
4218
4219 2016-11-10 Richard Earnshaw <rearnsha@arm.com>
4220
4221 * arm.h (target_cpus): Delete.
4222 * arm-opts.h (enum processor_type): Prefix entires with TARGET_CPU_.
4223 * arm.c (all_cores): Prefix IDENT with TARGET_CPU_.
4224 (all_architectures): Likewise.
4225 (arm_option_override): Adjust use of CPU enums.
4226 (arm_sched_reorder): Likewise.
4227 * vfp.md (movdi_vfp, movdi_vfp_cortexa8): Likewise.
4228 * arm.opt (mcpu, mtune): Adjust use of CPU enums.
4229 * arm/genopt.sh (processor_type): Prefix enumeration entries with
4230 TARGET_CPU_.
4231 * arm-tables.opt: Regenerated.
4232
4233 2016-11-10 Siddhesh Poyarekar <siddhesh.poyarekar@linaro.org>
4234
4235 * config/aarch64/aarch64-cores.def (qdf24xx): Update part number.
4236 (falkor): New core.
4237 * config/aarch64/aarch64-tune.md: Regenerated.
4238 * config/arm/arm-cores.def (falkor): New core.
4239 * config/arm/arm-tables.opt: Regenerated.
4240 * config/arm/arm-tune.md: Regenerated.
4241 * config/arm/bpabi.h (BE8_LINK_SPEC): Add falkor support.
4242 * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
4243 * doc/invoke.texi (AArch64 Options/-mtune): Document it.
4244 (ARM Options/-mtune): Likewise.
4245
4246 2016-11-10 Kugan Vivekanandarajah <kuganv@linaro.org>
4247
4248 Revert
4249 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
4250
4251 * ipa-cp.c (ipa_get_jf_pass_through_result): Handle unary expressions.
4252 (propagate_vr_accross_jump_function): Likewise.
4253 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
4254 (load_from_param_1): New.
4255 (load_from_unmodified_param): Factor common part into load_from_param_1.
4256 (load_from_param): New.
4257 (compute_complex_assign_jump_func): Handle unary expressions.
4258 (ipa_write_jump_function): Likewise.
4259 (ipa_read_jump_function): Likewise.
4260
4261 2016-11-09 Segher Boessenkool <segher@kernel.crashing.org>
4262
4263 * simplify-rtx.c (simplify_binary_operation_1): Simplify
4264 (xor (and (xor A B) C) B) to (ior (and A C) (and B ~C)) and
4265 (xor (and (xor A B) C) A) to (ior (and A ~C) (and B C)) if C
4266 is a const_int.
4267
4268 2016-11-09 David Malcolm <dmalcolm@redhat.com>
4269
4270 * print-rtl-function.c: Include varasm.h.
4271 (print_any_param_name): New function.
4272 (print_param): New function.
4273 (print_rtx_function): Call print_param for each argument.
4274 * print-rtl.c (rtx_writer::finish_directive): New function.
4275 * print-rtl.h (rtx_writer::finish_directive): New decl.
4276
4277 2016-11-09 Uros Bizjak <ubizjak@gmail.com>
4278
4279 PR target/78262
4280 * config/i386/i386.md (*<shift_insn><mode>3_doubleword): Mark
4281 operand 0 as earlyclobber.
4282 (*ashl<mode>3_doubleword): Ditto for all operand 0 alternatives.
4283
4284 2016-11-09 Martin Liska <mliska@suse.cz>
4285
4286 * fold-const-call.c (fold_const_call): Fix up type of s0 and s1.
4287
4288 2016-11-09 Jakub Jelinek <jakub@redhat.com>
4289
4290 PR target/77718
4291 * builtins.c (expand_builtin_memcmp): Formatting fix.
4292
4293 * flag-types.h (enum sanitize_code): Add SANITIZE_SHIFT_BASE
4294 and SANITIZE_SHIFT_EXPONENT, change SANITIZE_SHIFT to bitwise
4295 or of them, renumber other enumerators.
4296 * opts.c (sanitizer_opts): Add shift-base and shift-exponent.
4297 * doc/invoke.texi: Document -fsanitize=shift-base and
4298 -fsanitize-shift-exponent, document -fsanitize=shift as
4299 having those 2 suboptions.
4300
4301 2016-11-09 Richard Biener <rguenther@suse.de>
4302
4303 * fold-const.c (tree_swap_operands_p): Remove unused arg.
4304 * fold-const.c (tree_swap_operands_p): Likewise.
4305 (fold_binary_loc): Adjust.
4306 (fold_ternary_loc): Likewise.
4307 * genmatch.c (dt_operand::gen_gimple_exp): Likewise.
4308 * gimple-fold.c (fold_stmt_1): Likewise.
4309 * gimple-match-head.c (gimple_resimplify2): Likewise.
4310 (gimple_resimplify3): Likewise.
4311 (gimple_simplify): Likewise.
4312 * tree-ssa-dom.c (record_equality): Likewise.
4313 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Likewise.
4314 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
4315 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): Likewise.
4316
4317 2016-11-09 Richard Biener <rguenther@suse.de>
4318
4319 * tree-ssa-dom.c (canonicalize_comparison): Remove.
4320 (optimize_stmt): Remove redundant pre-propagation canonicalization
4321 of comparison operand order.
4322
4323 2016-11-09 Martin Liska <mliska@suse.cz>
4324
4325 * fold-const-call.c (fold_const_call): Fix the folding.
4326
4327 2016-11-09 Richard Biener <rguenther@suse.de>
4328
4329 * common.opt (flag_evaluation_order): Remove.
4330 * expr.c (expand_operands): Remove code guarded by
4331 flag_evaluation_order.
4332 * fold-const.c (reorder_operands_p): Remove, it always returns
4333 true.
4334 (negate_expr_p): Remove calls to reorder_operands_p.
4335 (fold_negate_expr): Likewise.
4336 (tree_swap_operands_p): Likewise.
4337 (fold_binary_loc): Likewise.
4338
4339 2016-11-09 Andreas Schwab <schwab@suse.de>
4340
4341 PR target/78254
4342 * config/m68k/m68k.md: Reject out-of-range bit pos in bit-fields
4343 insns operating on a register.
4344
4345 2016-11-09 Richard Biener <rguenther@suse.de>
4346
4347 PR tree-optimization/78007
4348 * tree-vect-stmts.c (vectorizable_bswap): New function.
4349 (vectorizable_call): Call vectorizable_bswap for
4350 BUILT_IN_BSWAP{16,32,64} if arguments are not promoted.
4351
4352 2016-11-09 Richard Biener <rguenther@suse.de>
4353
4354 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
4355 Look at the DR_BASE_ADDRESS object for forcing alignment.
4356
4357 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
4358
4359 * ipa-cp.c (ipa_get_jf_pass_through_result): Handle unary expressions.
4360 (propagate_vr_accross_jump_function): Likewise.
4361 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
4362 (load_from_param_1): New.
4363 (load_from_unmodified_param): Factor common part into load_from_param_1.
4364 (load_from_param): New.
4365 (compute_complex_assign_jump_func): Handle unary expressions.
4366 (ipa_write_jump_function): Likewise.
4367 (ipa_read_jump_function): Likewise.
4368
4369 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
4370
4371 PR ipa/78121
4372 * ipa-cp.c (propagate_vr_accross_jump_function): Pass param type.
4373 Also fold constant passed as argument while computing value range.
4374 (propagate_constants_accross_call): Pass param type.
4375 * ipa-prop.c: export ipa_get_callee_param_type.
4376 * ipa-prop.h: export ipa_get_callee_param_type.
4377
4378 2016-11-09 Maxim Ostapenko <m.ostapenko@samsung.com>
4379
4380 * asan.h (asan_intercepted_p): Handle BUILT_IN_STRCSPN,
4381 BUILT_IN_STRPBRK, BUILT_IN_STRSPN and BUILT_IN_STRSTR.
4382
4383 2016-11-09 Maxim Ostapenko <m.ostapenko@samsung.com>
4384
4385 * asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove.
4386 * asan.c (ASAN_STACK_MAGIC_PARTIAL): Replace with
4387 ASAN_STACK_MAGIC_MIDDLE.
4388 (asan_global_struct): Increase the size of fields.
4389 (asan_add_global): Add new field constructor.
4390 * sanitizer.def (__asan_version_mismatch_check_v6): Replace with
4391 __asan_version_mismatch_check_v8.
4392
4393 2016-11-08 David Edelsohn <dje.gcc@gmail.com>
4394
4395 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Test XCOFF_DEBUGGING_INFO
4396 at runtime.
4397
4398 2016-11-08 Uros Bizjak <ubizjak@gmail.com>
4399
4400 PR target/70799
4401 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
4402 Handle ASHIFT and LSHIFTRT.
4403 (dimode_scalar_chain::compute_convert_gain): Ditto.
4404 (dimode_scalar_chain::convert_insn): Ditto.
4405
4406 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4407
4408 * gimple-ssa-store-merging.c: Include selftest.h
4409 (verify_array_eq): New function.
4410 (verify_shift_bytes_in_array): Likewise.
4411 (verify_shift_bytes_in_array_right): Likewise.
4412 (verify_clear_bit_region): Likewise.
4413 (verify_clear_bit_region_be): Likewise.
4414 (store_merging_c_tests): Likewise.
4415 * selftest.h (store_merging_c_tests): Declare prototype.
4416 * selftest-run-tests.c (selftest::run_tests): Run
4417 store_merging_c_tests.
4418
4419 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4420
4421 * config/arm/arm.opt (mold-rtx-costs): Delete.
4422 (mnew-generic-costs): Delete.
4423 * config/arm/arm-protos.h (struct tune_params): Delete rtx_costs field.
4424 * config/arm/arm.c (arm_rtx_costs_1): Delete.
4425 (arm_size_rtx_costs): Likewise.
4426 (arm_slowmul_rtx_costs): Likewise.
4427 (arm_fastmul_rtx_costs): Likewise.
4428 (arm_xscale_rtx_costs): Likewise.
4429 (arm_9e_rtx_costs): Likewise.
4430 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
4431 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
4432 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
4433 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
4434 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
4435 arm_cortex_a5_tune, arm_xgene1_tune, arm_marvell_pj4_tune,
4436 arm_cortex_a35_tune, arm_exynosm1_tune, arm_cortex_a73_tune,
4437 arm_cortex_m7_tune):
4438 Delete rtx_costs field.
4439 (arm_new_rtx_costs): Rename to...
4440 (arm_rtx_costs_internal): ... This.
4441 (arm_rtx_costs): Remove old way of doing rtx costs.
4442
4443 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4444
4445 * config/arm/arm.c (arm_slowmul_tune): Use generic_extra_costs.
4446 (arm_fastmul_tune): Likewise.
4447 (arm_strongarm_tune): Likewise.
4448 (arm_xscale_tune): Likewise.
4449 (arm_9e_tune): Likewise.
4450 (arm_marvell_pj4_tune): Likewise.
4451 (arm_v6t2_tune): Likewise.
4452 (arm_v6m_tune): Likewise.
4453 (arm_fa726te_tune): Likewise.
4454
4455 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4456
4457 PR tree-optimization/78234
4458 * gimple-ssa-store-merging.c (clear_bit_region): Fix off-by-one error
4459 in start != 0 case.
4460
4461 2016-11-08 Martin Liska <mliska@suse.cz>
4462
4463 PR testsuite/78242
4464 * dbgcnt.def: Add new debug counter asan_use_after_scope.
4465 * gimplify.c (gimplify_decl_expr): Do not sanitize vars
4466 with a value expr. Do not add artificial variables to
4467 live_switch_vars. Use the debug counter.
4468 (gimplify_target_expr): Use the debug counter.
4469 * internal-fn.def: Remove ECF_TM_PURE from ASAN_MARK builtin.
4470 * sanitizer.def: Set ATTR_NOTHROW_LEAF_LIST to
4471 BUILT_IN_ASAN_CLOBBER_N and BUILT_IN_ASAN_UNCLOBBER_N.
4472
4473 2016-11-08 Richard Biener <rguenther@suse.de>
4474
4475 * tree-vect-stmts.c (get_group_load_store_type): If the
4476 access is aligned do not trigger peeling for gaps.
4477 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
4478 force alignment of vars with DECL_USER_ALIGN.
4479
4480 2016-11-08 James Greenhalgh <james.greenhalgh@arm.com>
4481
4482 * config/aarch64/t-aarch64 (aarch64-c.o): Depend on TARGET_H.
4483
4484 2016-11-08 Richard Biener <rguenther@suse.de>
4485
4486 PR tree-optimization/78205
4487 * tree-vect-stmts.c (vectorizable_load): Move check whether
4488 we may run into gaps when BB vectorizing SLP permutations ...
4489 * tree-vect-slp.c (vect_supported_load_permutation_p): ...
4490 here where we can do a more precise check.
4491
4492 2016-11-08 Richard Biener <rguenther@suse.de>
4493
4494 PR tree-optimization/78224
4495 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
4496 Split the fallthru edge in case its successor may have PHIs.
4497 Do not free dominance info.
4498
4499 2016-11-07 Jakub Jelinek <jakub@redhat.com>
4500
4501 PR target/78229
4502 * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
4503 EH info even for bzhi and pdep/pext.
4504
4505 2016-11-07 Peter Bergner <bergner@vnet.ibm.com>
4506
4507 * config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of
4508 INCLUDE_EXTRA_SPEC for Advance Toolchain builds.
4509
4510 2016-11-07 Segher Boessenkool <segher@kernel.crashing.org>
4511
4512 * config/rs6000/rs6000.md (div<mode>3): Expand using rs6000_emit_swdiv
4513 if appropriate.
4514 * config/rs6000/vector.md (div<mode>3): Ditto.
4515
4516 2016-11-07 David Edelsohn <dje.gcc@gmail.com>
4517
4518 * configure.ac (.hidden): Change to conftest_s string. Provide string
4519 for AIX assembler.
4520 (gcc_cv_ld_hidden): Yes for AIX.
4521 * configure: Regenerate.
4522
4523 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Don't set for AIX (XCOFF).
4524
4525 * config/rs6000/rs6000-protos.h (rs6000_asm_weaken_decl): Declare
4526 (rs6000_xcoff_asm_output_aligned_decl_common): Declare.
4527 * config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_DECL_NAME): Define.
4528 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
4529 (ASM_OUTPUT_ALIGNED_COMMON): Delete.
4530 * config/rs6000/rs6000.c (rs6000_init_builtins): Change clog rename
4531 from #if to if.
4532 (rs6000_xcoff_visibility): New.
4533 (rs6000_xcoff_declare_function_name): Add visibility support.
4534 (rs6000_xcoff_asm_globalize_decl_name): New.
4535 (rs6000_xcoff_asm_output_aligned_decl_common): New.
4536 (rs6000_asm_weaken_decl): New.
4537 (rs6000_code_end): Disable HIDDEN_LINKONCE on XCOFF.
4538 config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Change definition to
4539 reference function.
4540
4541 2016-11-07 Jack Howarth <howarth.at.gcc@gmail.com>
4542
4543 PR driver/78206
4544 * incpath.c (remove_dup): Also silently ignore EPERM.
4545
4546 2016-11-07 Martin Jambor <mjambor@suse.cz>
4547
4548 * tree.c (verify_type_variant): Use pointer comparison to check that
4549 TYPE_SIZE_UNIT match.
4550
4551 2016-11-07 Jakub Jelinek <jakub@redhat.com>
4552
4553 PR target/77834
4554 * dse.c (dse_step5): Call scan_reads even if just
4555 insn_info->frame_read. Improve and fix dump file messages.
4556
4557 PR target/78227
4558 * config/i386/i386.c (ix86_expand_sse_cmp): Force dest into
4559 cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp.
4560
4561 2016-11-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4562
4563 PR middle-end/35691
4564 * match.pd: Add following two patterns:
4565 (x == 0 & y == 0) -> (x | typeof(x)(y)) == 0.
4566 (x != 0 | y != 0) -> (x | typeof(x)(y)) != 0.
4567
4568 2016-11-07 Bernd Schmidt <bschmidt@redhat.com>
4569
4570 * emit-rtl.c (emit_copy_of_insn_after): Duplicate notes in order.
4571 * sel-sched-ir.c (create_copy_of_insn_rtx): Likewise.
4572 * rtl.h (duplicate_reg_notes): Declare.
4573 * rtlanal.c (duplicate_reg_note): New function.
4574
4575 PR rtl-optimization/77309
4576 * combine.c (make_compound_operation): Allow EQ for IN_CODE, and
4577 don't assume an equality comparison for plain COMPARE.
4578 (simplify_comparison): Pass a more accurate code to
4579 make_compound_operation.
4580
4581 2016-11-07 Pat Haugen <pthaugen@us.ibm.com>
4582
4583 * target.def (compute_pressure_classes): New target hook.
4584 * doc/tm.texi.in: Document it.
4585 * doc/tm.texi: Regenerate.
4586 * ira.c (setup_pressure_classes): Call target hook if defined.
4587
4588 2016-11-07 David Malcolm <dmalcolm@redhat.com>
4589
4590 * print-rtl.c (rtx_writer::operand_has_default_value_p): New
4591 method.
4592 (rtx_writer::print_rtx): In compact mode, omit trailing operands
4593 that have the default values.
4594 * print-rtl.h (rtx_writer::operand_has_default_value_p): New
4595 method.
4596 * rtl-tests.c (selftest::test_dumping_insns): Remove empty
4597 label string from expected dump.
4598 (seltest::test_uncond_jump): Remove trailing "(nil)" for REG_NOTES
4599 from expected dump.
4600
4601 2016-11-07 Jakub Jelinek <jakub@redhat.com>
4602
4603 PR target/77834
4604 * alias.c (nonoverlapping_memrefs_p): If one decl is
4605 FUNCTION_DECL or LABEL_DECL and the other is not, return 1.
4606
4607 2016-11-07 Richard Biener <rguenther@suse.de>
4608
4609 PR target/78229
4610 * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
4611 EH info.
4612
4613 2016-11-07 Richard Biener <rguenther@suse.de>
4614
4615 PR tree-optimization/78218
4616 * gimple-ssa-store-merging.c
4617 (pass_store_merging::terminate_all_aliasing_chains):
4618 Drop unused argument, fix alias check to also consider uses.
4619 (pass_store_merging::execute): Adjust.
4620
4621 2016-11-07 Richard Biener <rguenther@suse.de>
4622
4623 PR tree-optimization/78228
4624 * tree-ssa-phiopt.c (abs_replacement): Avoid introducing
4625 undefined behavior.
4626
4627 2016-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4628
4629 PR target/77822
4630 * config/aarch64/aarch64.md (*tb<optab><mode>1): Use
4631 aarch64_simd_shift_imm_<mode> predicate for operand 1.
4632 (<optab>, ANY_EXTRACT): Use tighter predicates on operands 2 and 3
4633 to restrict them to an appropriate range and add FAIL check if the
4634 region they specify is out of range. Delete useless constraint
4635 strings.
4636 (*<optab><mode>, ANY_EXTRACT): Add appropriate predicates on operands
4637 2 and 3 to restrict their range and add pattern predicate.
4638
4639 2016-11-07 Martin Liska <mliska@suse.cz>
4640
4641 * asan.c (enum asan_check_flags): Move the enum to header file.
4642 (asan_init_shadow_ptr_types): Make type creation more generic.
4643 (shadow_mem_size): New function.
4644 (asan_emit_stack_protection): Use newly added ASAN_SHADOW_GRANULARITY.
4645 Rewritten stack unpoisoning code.
4646 (build_shadow_mem_access): Add new argument return_address.
4647 (instrument_derefs): Instrument local variables if use after scope
4648 sanitization is enabled.
4649 (asan_store_shadow_bytes): New function.
4650 (asan_expand_mark_ifn): Likewise.
4651 (asan_sanitize_stack_p): Moved from asan_sanitize_stack_p.
4652 * asan.h (enum asan_mark_flags): Moved here from asan.c
4653 (asan_protect_stack_decl): Protect all declaration that need
4654 to live in memory.
4655 (asan_sanitize_use_after_scope): New function.
4656 (asan_no_sanitize_address_p): Likewise.
4657 * cfgexpand.c (partition_stack_vars): Consider
4658 asan_sanitize_use_after_scope in condition.
4659 (expand_stack_vars): Likewise.
4660 * common.opt (-fsanitize-address-use-after-scope): New option.
4661 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
4662 Explain the parameter.
4663 * flag-types.h (enum sanitize_code): Define SANITIZE_USE_AFTER_SCOPE.
4664 * gimplify.c (build_asan_poison_call_expr): New function.
4665 (asan_poison_variable): Likewise.
4666 (gimplify_bind_expr): Generate poisoning/unpoisoning for local
4667 variables that have address taken.
4668 (gimplify_decl_expr): Likewise.
4669 (gimplify_target_expr): Likewise for C++ temporaries.
4670 (sort_by_decl_uid): New function.
4671 (gimplify_expr): Unpoison all variables for a label we can jump
4672 from outside of a scope.
4673 (gimplify_switch_expr): Unpoison variables defined in the switch
4674 context.
4675 (gimplify_function_tree): Clear asan_poisoned_variables.
4676 (asan_poison_variables): New function.
4677 (warn_switch_unreachable_r): Handle IFN_ASAN_MARK.
4678 * internal-fn.c (expand_ASAN_MARK): New function.
4679 * internal-fn.def (ASAN_MARK): Declare.
4680 * opts.c (finish_options): Handle -fstack-reuse if
4681 -fsanitize-address-use-after-scope is enabled.
4682 (common_handle_option): Enable address sanitization if
4683 -fsanitize-address-use-after-scope is enabled.
4684 * params.def (PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD):
4685 New parameter.
4686 * params.h: Likewise.
4687 * sancov.c (pass_sanopt::execute): Handle IFN_ASAN_MARK.
4688 * sanitizer.def: Define __asan_poison_stack_memory and
4689 __asan_unpoison_stack_memory functions.
4690 * asan.c (asan_mark_poison_p): New function.
4691 (transform_statements): Handle asan_mark_poison_p calls.
4692 * gimple.c (nonfreeing_call_p): Handle IFN_ASAN_MARK.
4693
4694 2016-11-07 Tamar Christina <tamar.christina@arm.com>
4695
4696 PR driver/78196
4697 * Makefile.in (SELFTEST_FLAGS): Added -o /dev/null.
4698
4699 2016-11-07 Martin Liska <mliska@suse.cz>
4700
4701 * tree-profile.c (gimple_gen_time_profiler): Set proper type
4702 to time_profiler_counter_ptr.
4703
4704 2016-11-07 Richard Biener <rguenther@suse.de>
4705
4706 PR tree-optimization/37150
4707 * tree-vectorizer.h (vect_transform_slp_perm_load): Add n_perms
4708 parameter.
4709 * tree-vect-slp.c (vect_supported_load_permutation_p): Adjust.
4710 (vect_analyze_slp_cost_1): Account for the real number of
4711 permutations emitted and for dead loads.
4712 (vect_transform_slp_perm_load): Add n_perms parameter counting
4713 the number of emitted permutations.
4714 * tree-vect-stmts.c (vectorizable_load): Adjust.
4715
4716 2016-11-07 Richard Biener <rguenther@suse.de>
4717
4718 PR tree-optimization/78189
4719 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Fix
4720 alignment computation.
4721
4722 2016-11-06 Kugan Vivekanandarajah <kuganv@linaro.org>
4723
4724 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove unreachable code.
4725
4726 2016-11-05 Martin Sebor <msebor@redhat.com>
4727
4728 * doc/invoke.texi (Warning Options): Correct typos in -Walloca
4729 documentation.
4730
4731 2016-11-05 David Edelsohn <dje.gcc@gmail.com>
4732
4733 PR bootstrap/78188
4734 PR c++/71848
4735 * ipa-comdats.c (pass_ipa_comdats::gate): Require HAVE_COMDAT_GROUP.
4736
4737 2016-11-04 Jakub Jelinek <jakub@redhat.com>
4738
4739 PR target/77834
4740 * alias.c (nonoverlapping_memrefs_p): Return 0 if exprx or expry
4741 doesn't have rtl set.
4742
4743 2016-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4744
4745 * config/rs6000/rs6000.c (gimple-ssa.h): New #include.
4746 (TARGET_GIMPLE_FOLD_BUILTIN): Define as
4747 rs6000_gimple_fold_builtin.
4748 (rs6000_gimple_fold_builtin): New function. Add handling for
4749 early expansion of vector addition builtins.
4750
4751 2016-11-04 Eric Botcazou <ebotcazou@adacore.com>
4752
4753 * expr.h (copy_blkmode_from_reg): Delete.
4754 * expr.c (copy_blkmode_from_reg): Make static.
4755
4756 2016-11-04 Eric Botcazou <ebotcazou@adacore.com>
4757
4758 * defaults.h (LOAD_EXTEND_OP): Define if not already defined.
4759 * combine.c (LOAD_EXTEND_OP): Delete.
4760 (simplify_comparison): Fix comment about LOAD_EXTEND_OP.
4761 * cse.c (LOAD_EXTEND_OP): Delete.
4762 * fold-const.c (LOAD_EXTEND_OP): Likewise.
4763 * fwprop.c (free_load_extend): Remove #ifdef LOAD_EXTEND_OP/#endif.
4764 * postreload.c (LOAD_EXTEND_OP): Delete.
4765 * reload.c (push_reload): Remove #ifdef LOAD_EXTEND_OP/#endif.
4766 Convert conditional compilation based on WORD_REGISTER_OPERATIONS.
4767 (find_reloads): Likewise.
4768 * reload1.c (eliminate_regs_1): Likewise.
4769 * rtlanal.c (nonzero_bits1): Remove #ifdef LOAD_EXTEND_OP/#endif.
4770 (num_sign_bit_copies1): Likewise.
4771
4772 2016-11-04 David Malcolm <dmalcolm@redhat.com>
4773
4774 * config/i386/i386.c: Include "selftest.h" and "selftest-rtl.h".
4775 (selftest::ix86_test_dumping_hard_regs): New function.
4776 (selftest::ix86_run_selftests): New function.
4777 (TARGET_RUN_TARGET_SELFTESTS): When CHECKING_P, wire this up to
4778 selftest::ix86_run_selftests.
4779 * doc/tm.texi.in (TARGET_RUN_TARGET_SELFTESTS): New.
4780 * doc/tm.texi: Regenerate
4781 * selftest-rtl.h: New file.
4782 * rtl-tests.c: Include "selftest-rtl.h".
4783 (selftest::assert_rtl_dump_eq): Make non-static.
4784 (ASSERT_RTL_DUMP_EQ): Move to selftest-rtl.h.
4785 (selftest::test_dumping_regs): Update comment.
4786 * selftest-run-tests.c: Include "target.h".
4787 (selftest::run_tests): If non-NULL, call
4788 targetm.run_target_selftests.
4789 * target.def (run_target_selftests): New hook.
4790
4791 2016-11-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
4792
4793 * config/arm/arm-arches.def (armv8-m.main+dsp): Set Cortex-M33 as
4794 representative core for this architecture.
4795 * config/arm/arm-cores.def (cortex-m33): Define new processor.
4796 * config/arm/arm-tables.opt: Regenerate.
4797 * config/arm/arm-tune.md: Likewise.
4798 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of
4799 valid -mcpu options.
4800 * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor.
4801
4802 2016-11-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
4803
4804 * config/arm/arm-arches.def (armv8-m.base): Set Cortex-M23 as
4805 representative core for this architecture.
4806 * config/arm/arm-cores.def (cortex-m23): Define new processor.
4807 * config/arm/arm-tables.opt: Regenerate.
4808 * config/arm/arm-tune.md: Likewise.
4809 * config/arm/arm.c (arm_v6m_tune): Add Cortex-M23 to the list of cores
4810 this tuning parameters apply to in the comment.
4811 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M23 to the list of
4812 valid -mcpu options.
4813 * doc/invoke.texi (ARM Options): Document new Cortex-M23 processor.
4814
4815 2016-11-04 Bin Cheng <bin.cheng@arm.com>
4816
4817 * fold-const.c (fold_cond_expr_with_comparison): Remove call
4818 to pedantic_non_lvalue_loc. Remove useless code for lvalue
4819 where cond_expr can't be a lvalue.
4820
4821 2016-11-04 Claudiu Zissulescu <claziss@synopsys.com>
4822
4823 * config/arc/arc.c (arc_process_double_reg_moves): Use
4824 gen_dexcl_2op call.
4825 * config/arc/arc.md (movsi_insn): Disable unsupported move
4826 instructions for ARCv2 cores.
4827 (movdi): Use prepare_move_operands.
4828 (movsf, movdf): Use move_dest_operand predicate.
4829 * config/arc/constraints.md (Chs): Enable when barrel shifter is
4830 present.
4831 * config/arc/fpu.md (divsf3): Change to divsf3_fpu.
4832 * config/arc/fpx.md (dexcl_3op_peep2_insn): Dx data register is
4833 also a destination.
4834 (dexcl_3op_peep2_insn_nores): Likewise.
4835 * config/arc/arc.h (SHIFT_COUNT_TRUNCATED): Define to one.
4836 (LINK_COMMAND_SPEC): Remove.
4837
4838 2016-11-04 Richard Biener <rguenther@suse.de>
4839
4840 PR middle-end/78185
4841 * loop-invariant.c (find_exits): Record entering inner
4842 loops as possibly exiting to handle infinite sub-loops.
4843 * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
4844 (fill_always_executed_in_1): Honor infinite child loops.
4845
4846 2016-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
4847
4848 PR target/78192
4849 * config/rs6000/vsx.md (vsx_extract_<mode>_di): The element number
4850 has already been adjusted for endianness, so don't adjust it any
4851 further.
4852
4853 PR target/77993
4854 * config/rs6000/rs6000.h (FLOAT128_IBM_P): Do not allow IFmode or
4855 ICmode unless we have standard PowerPC floating point.
4856 * config/rs6000/rs6000.md (FP iterator): Likewise.
4857 (FMOVE128 iterator): Likewise.
4858
4859 2016-11-03 Jakub Jelinek <jakub@redhat.com>
4860 Alexandre Oliva <aoliva@redhat.com>
4861 Jason Merrill <jason@redhat.com>
4862
4863 PR debug/28767
4864 PR debug/56974
4865 * langhooks.h (struct lang_hooks_for_types): Add type_dwarf_attribute
4866 langhook.
4867 * langhooks.c (lhd_type_dwarf_attribute): New function.
4868 * langhooks-def.h (lhd_type_dwarf_attribute): Declare.
4869 (LANG_HOOKS_TYPE_DWARF_ATTRIBUTE): Define.
4870 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add
4871 LANG_HOOKS_TYPE_DWARF_ATTRIBUTE.
4872 (check_qualified_type, check_aligned_type): Call it.
4873 * dwarf2out.c (modified_type_die): Don't use type_main_variant
4874 for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with
4875 check_base_type and check_lang_type.
4876 (gen_ptr_to_mbr_type_die): If lookup_type_die is already non-NULL,
4877 return early. For pointer-to-data-member add DW_AT_use_location
4878 attribute.
4879 (gen_subroutine_type_die): Add DW_AT_{,rvalue_}reference attribute
4880 if needed.
4881 (gen_type_die_with_usage): Don't use type_main_variant
4882 for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with
4883 check_base_type and check_lang_type. Formatting fixes. Call
4884 get_debug_type langhook.
4885
4886 2016-11-03 Jason Merrill <jason@redhat.com>
4887
4888 * tree.c (check_lang_type): New.
4889 (check_qualified_type): Use it.
4890 (check_aligned_type): Use it.
4891 * tree.h: Declare it.
4892
4893 2016-11-03 Richard Earnshaw <rearnsha@arm.com>
4894
4895 * config.gcc (arm-wrs-vxworks): Set target_cpu_cname.
4896 (arm*-freebsd*): Likewise.
4897 (arm*-*-netbsdelf*): Likewise.
4898 (arm*-*-linux*): Likewise.
4899 (arm*-*-uclinux*eabi*): Likewise.
4900 (arm*-*-phoenix*): Likewise.
4901 (arm*-*-eabi*, arm*-*-symbianelf*, arm*-*-rtems*): Likewise.
4902 (arm*-*-*): Don't clobber target_cpu_cname when --with-cpu is not
4903 specified. Default to arm6 if target_cpu_cname is not set.
4904 * arm/arm.c (arm_option_override): Simplify logic. Assert that the
4905 default cpu has been correctly configured.
4906 * arm/arm.h (TARGET_CPU_DEFAULT): Delete.
4907 (target_cpus): Delete TARGET_CPU_generic, add TARGET_CPU_num_cores.
4908 * arm/freebsd.h (SUBTARGET_CPU_DEFAULT): Delete.
4909 * arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Delete.
4910 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
4911 * arm/symbian.h (SUBTARGET_CPU_DEFAULT): Delete.
4912 * arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
4913
4914 2016-11-03 Jiong Wang <jiong.wang@arm.com>
4915
4916 * reg-notes.def (CFA_VAL_EXPRESSION): New entry.
4917 * dwarf2cfi.c (dwarf2out_frame_debug_cfa_val_expression): New function.
4918 (dwarf2out_frame_debug): Support REG_CFA_VAL_EXPRESSION.
4919 (output_cfa_loc): Support DW_CFA_val_expression.
4920 (output_cfa_loc_raw): Likewise.
4921 (output_cfi): Likewise.
4922 (output_cfi_directive): Likewise.
4923 * dwarf2out.c (dw_cfi_oprnd1_desc): Support DW_CFA_val_expression.
4924 (dw_cfi_oprnd2_desc): Likewise.
4925 (mem_loc_descriptor): Recognize new pattern generated for value
4926 expression.
4927
4928 2016-11-03 Segher Boessenkool <segher@kernel.crashing.org>
4929
4930 PR rtl-optimization/78186
4931 * combine.c (change_zero_ext): Mask the RHS of a zero_extract as
4932 well, when converting to IOR.
4933
4934 2016-11-03 Eric Botcazou <ebotcazou@adacore.com>
4935
4936 * config/sparc/sparc.md (vec_interleave_lowv8qi): Delete.
4937 (vec_interleave_highv8qi): Likewise.
4938
4939 2016-11-03 Martin Liska <mliska@suse.cz>
4940
4941 * profile.c (instrument_values): Fix coding style.
4942 (branch_prob): Use renamed function.
4943 * tree-profile.c (init_ic_make_global_vars): Likewise.
4944 (gimple_init_edge_profiler): Rename to
4945 gimple_init_gcov_profiler.
4946 tree_time_profiler_counter variable declaration.
4947 (gimple_gen_time_profiler): Rewrite to do a direct gimple code
4948 emission.
4949 * value-prof.h: Remove an argument.
4950
4951 2016-11-03 Richard Biener <rguenther@suse.de>
4952
4953 * config/rs6000/rs6000.c (rs6000_xcoff_declare_object_name): Use
4954 symtab_node::get_create.
4955
4956 2016-11-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4957
4958 * rtlanal.c (nonzero_bits1): Fix WORD_REGISTER_OPERATIONS condition.
4959 Move comments into more natural position.
4960
4961 2016-11-03 Vineet Gupta <vgupta@synopsys.com>
4962
4963 * config/arc/arc.h (SIZE_TYPE): Define as unsigned int.
4964 (PTRDIFF_TYPE): Define as int.
4965
4966 2016-11-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4967
4968 * ccmp.c (expand_ccmp_expr_1): Adjust.
4969 (expand_ccmp_expr): Likewise.
4970 (expand_ccmp_next): Likewise.
4971 * config/aarch64/aarch64.c (aarch64_gen_ccmp_next): Likewise.
4972 (aarch64_gen_ccmp_first): Likewise.
4973 * doc/tm.texi: Regenerate.
4974 * target.def (gen_ccmp_first): Change argument types to rtx_insn *.
4975 (gen_ccmp_next): Likewise.
4976
4977 2016-11-03 Bin Cheng <bin.cheng@arm.com>
4978
4979 * tree-vect-loop.c (destroy_loop_vec_info): Handle cond_expr.
4980 (vect_is_simple_reduction): Swap cond_reduction by inversion.
4981
4982 2016-11-02 Uros Bizjak <ubizjak@gmail.com>
4983
4984 * config/i386/i386.c (ix86_init_libfuncs): New. Call
4985 darwin_rename_builtins here.
4986 (ix86_expand_divmod_libfunc): New.
4987 (TARGET_INIT_LIBFUNCS): Unconditionally define to ix86_init_libfuncs.
4988 (TARGET_EXPAND_DIVMOD_LIBFUNC): Define.
4989
4990 2016-11-02 Cesar Philippidis <cesar@codesourcery.com>
4991 Nathan Sidwell <nathan@acm.org>
4992
4993 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Set to zero.
4994
4995 2016-11-02 Max Filippov <jcmvbkbc@gmail.com>
4996
4997 * config/xtensa/xtensa.c (xtensa_output_integer_literal_parts):
4998 New function.
4999 (xtensa_output_literal): Use xtensa_output_integer_literal_parts
5000 to format MODE_INT and MODE_PARTIAL_INT literals.
5001
5002 2016-11-02 Segher Boessenkool <segher@kernel.crashing.org>
5003
5004 PR target/78168
5005 * config/r6000/rs6000.c (rs6000_get_separate_components): Return
5006 NULL if TARGET_SPE_ABI.
5007
5008 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5009
5010 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Don't forget to
5011 clear padding bits even when they're less than a byte.
5012
5013 2016-11-02 Richard Biener <rguenther@suse.de>
5014
5015 * gimple-ssa-store-merging.c: Include gimplify-me.h.
5016 (imm_store_chain_info::output_merged_stores): Force base_addr
5017 to be proper GIMPLE for a MEM_REF address.
5018 (pass_store_merging::execute): Restrict negative bitpos
5019 handling to non-MEM_REF bases. Remove TREE_THIS_VOLATILE
5020 check. Take into account non-NULL_TREE offset if the base
5021 is already addressable.
5022
5023 2016-11-26 Wilco Dijkstra <wdijkstr@arm.com>
5024
5025 * config/aarch64/aarch64-simd.md (aarch64_crypto_sha1hv4si):
5026 New pattern.
5027 (aarch64_be_crypto_sha1hv4si): New pattern.
5028
5029 2016-11-02 Wilco Dijkstra <wdijkstr@arm.com>
5030
5031 * config/aarch64/aarch64.md (add<mode>3): Remove
5032 redundant code. Don't split frame based additions.
5033
5034 2016-11-02 Richard Biener <rguenther@suse.de>
5035
5036 * gimple-ssa-store-merging.c (struct store_immediate_info): Remove
5037 redundant val and dest members.
5038 (store_immediate_info::store_immediate_info): Adjust.
5039 (merged_store_group::merged_store_group): Adjust.
5040 (merged_store_group::apply_stores): Likewise.
5041 (struct imm_store_chain_info): Add base_addr field.
5042 (imm_store_chain_info::imm_store_chain_info): New constructor.
5043 (imm_store_chain_info::terminate_and_process_chain): Do not pass base.
5044 (imm_store_chain_info::output_merged_store): Likewise. Use
5045 addr_base which is already the address.
5046 (imm_store_chain_info::output_merged_stores): Likewise.
5047 (pass_tree_store_merging::terminate_all_aliasing_chains): Take
5048 imm_store_chain_info instead of base. Fix alias check.
5049 (pass_tree_store_merging::terminate_and_release_chain): Likewise.
5050 (imm_store_chain_info::coalesce_immediate_stores): Adjust.
5051 (pass_store_merging::execute): Refuse to operate on TARGET_MEM_REF.
5052 use the address of the base and adjust for other changes.
5053
5054 2016-11-02 Martin Liska <mliska@suse.cz>
5055
5056 * fold-const-call.c (host_size_t_cst_p): Test whether
5057 t is convertible to size_t.
5058
5059 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5060
5061 PR tree-optimization/78170
5062 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Truncate padding
5063 introduced by native_encode_expr on little-endian as well.
5064
5065 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5066
5067 PR tree-optimization/78162
5068 * gimple-ssa-store-merging.c (execute): Mark stores with bitpos < 0
5069 as invalid.
5070
5071 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5072
5073 * config/aarch64/aarch64.c (aarch64_register_saved_on_entry): Add
5074 function comment.
5075 (aarch64_next_callee_save): Likewise.
5076 (aarch64_pushwb_single_reg): Likewise.
5077 (aarch64_gen_storewb_pair): Likewise.
5078 (aarch64_push_regs): Likewise.
5079 (aarch64_gen_loadwb_pair): Likewise.
5080 (aarch64_pop_regs): Likewise.
5081 (aarch64_gen_store_pair): Likewise.
5082 (aarch64_gen_load_pair): Likewise.
5083 (aarch64_save_callee_saves): Likewise.
5084 (aarch64_restore_callee_saves): Likewise.
5085
5086 2016-11-02 Richard Biener <rguenther@suse.de>
5087
5088 PR tree-optimization/78035
5089 PR tree-optimization/77964
5090 * gimple-pretty-print.c (pp_points_to_solution): Print
5091 vars_contains_interposable.
5092 * tree-ssa-alias.c: Include varasm.h.
5093 (ptrs_compare_unequal): Check vars_contains_interposable and
5094 decl_binds_to_current_def_p.
5095 (dump_points_to_solution): Dump vars_contains_interposable.
5096 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_interposable
5097 flag.
5098 * tree-ssa-structalias.c: Include varasm.h.
5099 (set_uids_in_ptset): Record whether vars contains a
5100 not decl_binds_to_current_def_p variable in vars_contains_interposable.
5101 (ipa_escaped_pt): Update initializer.
5102
5103 2016-11-02 Richard Biener <rguenther@suse.de>
5104
5105 PR tree-optimization/78047
5106 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Initialize
5107 fake field at offset zero conservatively regarding to may_have_pointers.
5108
5109 2016-11-02 Richard Biener <rguenther@suse.de>
5110
5111 * tree-vrp.c (evrp_dom_walker::before_dom_children): Call
5112 infer_value_range on stmt ops and update value-ranges.
5113 Dump visited stmts and blocks.
5114 (evrp_dom_walker::push_value_range): Dump changes.
5115 (evrp_dom_walker::pop_value_range): Likewise.
5116 (evrp_dom_walker::try_find_new_range): Avoid noop changes.
5117
5118 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5119
5120 * emit-rtl.c (prev_nonnote_insn_bb): Change argument type to
5121 rtx_insn *.
5122 * rtl.h (prev_nonnote_insn_bb): Adjust prototype.
5123
5124 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5125
5126 * cfgrtl.c (delete_insn_chain): Change argument type to rtx_insn *
5127 and adjust for that.
5128 * cfgrtl.h (delete_insn_chain): Adjust prototype.
5129
5130 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5131
5132 * config/rl78/rl78.c (gen-and_emit_move): Change argument type
5133 to rtx_insn *.
5134 (transcode_memory_rtx): Likewise.
5135 (move_to_acc): Likewise.
5136 (move_from_acc): Likewise.
5137 (move_acc_to_reg): Likewise.
5138 (move_to_x): Likewise.
5139 (move_to_hl): Likewise.
5140 (move_to_de): Likewise.
5141 * config/rs6000/rs6000.c (emit_frame_save): Likewise.
5142 (rs6000_emit_savres_rtx): Likewise.
5143 (rs6000_emit_prologue): Likewise.
5144 * reorg.c (update_reg_unused_notes): Likewise.
5145 * rtl.h (remove_note): Adjust prototype.
5146 * rtlanal.c (remove_note): Make argument type rtx_insn *.
5147
5148 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5149
5150 * config/alpha/alpha.c (alpha_legitimize_address_1): Split up
5151 variables so some can be rtx_insn *.
5152 (alpha_emit_xfloating_libcall): Likewise.
5153 * config/mips/mips.c (mips_call_tls_get_addr): Likewise.
5154 (mips_legitimize_tls_address): Likewise.
5155 * optabs.c (expand_binop): Likewise.
5156 * reload1.c (gen_reload): Likewise.
5157
5158 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5159
5160 * reorg.c (relax_delay_slots): Split up the trial variable.
5161
5162 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5163
5164 * config/arc/arc.c (arc_emit_call_tls_get_addr): Make the type
5165 of variables rtx_insn *.
5166 * config/arm/arm.c (arm_call_tls_get_addr): Likewise.
5167 (legitimize_tls_address): Likewise.
5168 * config/bfin/bfin.c (hwloop_optimize): Likewise.
5169 (bfin_gen_bundles): Likewise.
5170 * config/c6x/c6x.c (reorg_split_calls): Likewise.
5171 (c6x_reorg): Likewise.
5172 * config/frv/frv.c (frv_reorder_packet): Likewise.
5173 * config/i386/i386.c (ix86_split_idivmod): Likewise.
5174 * config/ia64/ia64.c (ia64_expand_compare): Likewise.
5175 * config/m32c/m32c.c (m32c_prepare_shift): Likewise.
5176 * config/mn10300/mn10300.c: Likewise.
5177 * config/rl78/rl78.c: Likewise.
5178 * config/s390/s390.c (s390_fix_long_loop_prediction): Likewise.
5179 * config/sh/sh-mem.cc (sh_expand_cmpstr): Likewise.
5180 (sh_expand_cmpnstr): Likewise.
5181 (sh_expand_strlen): Likewise.
5182 (sh_expand_setmem): Likewise.
5183 * config/sh/sh.md: Likewise.
5184 * emit-rtl.c (emit_pattern_before): Likewise.
5185 * except.c: Likewise.
5186 * final.c: Likewise.
5187 * jump.c: Likewise.
5188
5189 2016-11-01 Jason Merrill <jason@redhat.com>
5190
5191 * tree-inline.c (copy_tree_body_r): Only copy the taken branch of
5192 a COND_EXPR with constant condition.
5193
5194 2016-11-01 Jakub Jelinek <jakub@redhat.com>
5195
5196 * dwarf2out.c (gen_variable_die): Remove again origin_die variable
5197 and its initialization.
5198
5199 2016-11-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5200
5201 * dwarf2out.c (output_rnglists): Wrap basebuf, len in
5202 HAVE_AS_LEB128.
5203
5204 2016-11-01 Jakub Jelinek <jakub@redhat.com>
5205
5206 * dwarf2out.c (add_name_and_src_coords_attributes): Add NO_LINKAGE_NAME
5207 argument, don't call add_linkage_name if it is true.
5208 (gen_variable_die): For C++ inline static data members, consider the
5209 initial call when old_die is NULL to be declaration and call
5210 add_name_and_src_coords_attributes in that case with true as
5211 NO_LINKAGE_NAME. Add DW_AT_inline attribute if needed.
5212 (gen_member_die): For C++ inline static data members, emit a
5213 definition DIE right away in DW_TAG_compile_unit context.
5214
5215 2016-11-01 John David Anglin <danglin@gcc.gnu.org>
5216
5217 PR target/78166
5218 * config/pa/pa.md: Add new shift/add patterns to handle
5219 (plus (mult (reg) (mem_shadd_operand)) (reg)) source operand.
5220
5221 2016-11-01 Max Filippov <jcmvbkbc@gmail.com>
5222
5223 * config/xtensa/xtensa-protos.h
5224 (xtensa_use_return_instruction_p): New prototype.
5225 * config/xtensa/xtensa.c (xtensa_current_frame_size,
5226 xtensa_callee_save_size): Remove.
5227 (struct machine_function): Add new fields: current_frame_size,
5228 callee_save_size, frame_laid_out and epilogue_done.
5229 (compute_frame_size, xtensa_expand_prologue,
5230 xtensa_expand_epilogue): Replace xtensa_callee_save_size with
5231 cfun->machine->callee_save_size and xtensa_current_frame_size
5232 with cfun->machine->current_frame_size.
5233 (compute_frame_size): Update cfun->machine->frame_laid_out and
5234 don't update frame layout after reload completion.
5235 (xtensa_expand_epilogue): Set cfun->machine->epilogue_done
5236 instead of zeroing xtensa_current_frame_size.
5237 (xtensa_use_return_instruction_p): New function.
5238 * config/xtensa/xtensa.h (xtensa_current_frame_size): Remove
5239 declaration.
5240 (INITIAL_ELIMINATION_OFFSET): Use return value of
5241 compute_frame_size instead of xtensa_current_frame_size value.
5242 * config/xtensa/xtensa.md ("return" pattern): Use new predicate
5243 function xtensa_use_return_instruction_p instead of inline code.
5244
5245 2016-11-01 Jakub Jelinek <jakub@redhat.com>
5246
5247 * tree.h (BLOCK_IN_COLD_SECTION_P): Define.
5248 * final.c (final_scan_insn): Set BLOCK_IN_COLD_SECTION_P.
5249 * dwarf2out.c (rnglist_idx): New variable.
5250 (struct dw_ranges): Add label, idx and maybe_new_sec fields.
5251 (DEBUG_RNGLISTS_SECTION): Define.
5252 (ranges_base_label): New variable.
5253 (size_of_die) <case dw_val_class_range_list>: If using
5254 DW_FORM_rnglistx, count size of uleb128 of range list index.
5255 (value_format) <case dw_val_class_range_list>: For
5256 -gdwarf-5 -gsplit-dwarf return DW_FORM_rnglistx.
5257 (output_range_list_offset): Handle -gdwarf-5 .debug_rnglists
5258 offsets. Multiply dwarf < 5 offsets by 2 * DWARF_ADDR_SIZE.
5259 (add_ranges_num): Remove useless prototype. Don't multiply
5260 by 2 * DWARF2_ADDR_SIZE. Add maybe_new_sec argument, adjust
5261 for new fields added to dw_ranges struct.
5262 (add_ranges): Add maybe_new_sec argument and pass it
5263 through to add_ranges_num.
5264 (note_rnglist_head): New function.
5265 (add_ranges_by_labels): Pass true as maybe_new_sec to
5266 add_ranges_num, call note_rnglist_head on the head of the list.
5267 (output_ranges): Add function comment. Switch to
5268 .debug_ranges section here and emit .Ldebug_ranges0 label.
5269 (index_rnglists, output_rnglists): New functions.
5270 (gen_subprogram_die): Formatting fixes.
5271 (add_high_low_attributes): Don't divide offsets
5272 by 2 * DWARF2_ADDR_SIZE. Call note_rnglist_head on the
5273 first list element or when pointing into the middle of
5274 a list. Pass true as second argument to add_ranges on the
5275 first block fragment after cold/hot section switch.
5276 (init_sections_and_labels): For -gdwarf-5 use .debug_rnglists
5277 section instead of .debug_ranges. Initialize
5278 ranges_base_label if -gdwarf-5 -gsplit-dwarf.
5279 (dwarf2out_finish): For -gdwarf-5 -gsplit-dwarf call
5280 index_rnglists and add DW_AT_rnglists_base attr. Don't switch
5281 to dwarf_ranges_section here or emit .Ldebug_ranges0 label.
5282 Call output_rnglists for -gdwarf-5.
5283 (dwarf2out_c_finalize): Clear rnglist_idx.
5284
5285 2016-11-01 Fritz Reese <fritzoreese@gmail.com>
5286
5287 * combine.c (simplify_compare_const): Add gcc_fallthrough.
5288
5289 2016-11-01 Bilyan Borisov <bilyan.borisov@arm.com>
5290 Tamar Christina <tamar.christina@arm.com>
5291
5292 * config/arm/arm-c.c (arm_cpu_builtins): New macro definition.
5293 * config/arm/arm_neon.h (vmaxnm_f32): New intrinsinc.
5294 (vmaxnmq_f32): Likewise.
5295 (vminnm_f32): Likewise.
5296 (vminnmq_f32): Likewise.
5297 * config/arm/arm_neon_builtins.def (vmaxnm): New builtin.
5298 (vminnm): Likewise.
5299 * config/arm/neon.md (neon_<fmaxmin_op><mode>, VCVTF): New
5300 expander.
5301
5302 2016-10-31 Michael Meissner <meissner@linux.vnet.ibm.com>
5303
5304 * config/rs6000/vsx.md (VSX_EXTRACT_FL): New iterator for all
5305 binary floating point types supported by the hardware except for
5306 double.
5307 (vsx_xvcvsxwdp_df): Provide scalar result alternative to the
5308 vector instruction for optimizing extracting a SImode from a
5309 V4SImode vector and converting it to floating point.
5310 (vsx_xvcvuxwdp_df): Likewise.
5311 (vsx_extract_si): On ISA 3.0, allow extract target and temporary
5312 registers to be any VSX register. Move stores to the end of the
5313 constraints.
5314 (vsx_extract_si_<uns>float_df): New combiner pattern and splitter
5315 to optimize extracting a SImode from a V4SImode vector and
5316 converting it to a binary floating point type supported by the
5317 hardware. Use the vector converts instead of extracting the
5318 element, sign extending it, and then converting it to double.
5319 Other floating point types than double first convert to double,
5320 then the double is converted to that type.
5321 (vsx_extract_si_<uns>float_<mode>): Likewise.
5322
5323 2016-10-31 Andrew Pinski <apinski@cavium.com>
5324
5325 * config/aarch64/driver-aarch64.c (host_detect_local_cpu):
5326 Rewrite handling of part num to handle the case where
5327 multiple implementers share the same part num.
5328
5329 2016-10-31 Jan Kratochvil <jan.kratochvil@redhat.com>
5330 Jakub Jelinek <jakub@redhat.com>
5331
5332 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): Adjust for -gdwarf-5.
5333 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Likewise.
5334
5335 2016-10-31 Jakub Jelinek <jakub@redhat.com>
5336
5337 * dwarf2out.c (dwarf_AT): Handle DW_AT_dwo_name.
5338 (use_debug_types): Adjust comment for DWARF5 DW_UT_type units.
5339 (new_die): Handle DW_TAG_skeleton_unit like DW_TAG_compile_unit.
5340 (is_cu_die, is_unit_die): Likewise.
5341 (should_move_die_to_comdat, break_out_comdat_types): Adjust
5342 comments for DWARF5 DW_UT_type units.
5343 (output_compilation_unit_header): Add UT argument, output
5344 start of DWARF5 .debug_info section header.
5345 (output_comp_unit): Add dwo_id argument. Adjust
5346 output_compilation_unit_header caller, for DW_UT_split_compile
5347 emit dwo_id field, otherwise padding1. Emit padding2 field.
5348 (add_top_level_skeleton_die_attrs): Add DW_AT_dwo_name
5349 rather than DW_AT_GNU_dwo_name attr for -gdwarf-5.
5350 (output_skeleton_debug_sections): Add dwo_id argument, for
5351 -gdwarf-5 emit DWARF 5 DW_UT_skeleton header.
5352 (output_comdat_type_unit): For -gdwarf-5 emit .debug_info
5353 DW_UT_type or DW_UT_split_type units rather than .debug_types.
5354 (dwarf2out_finish): Use DW_TAG_skeleton_unit rather than
5355 DW_TAG_compile_unit for skeleton unit die. Don't add
5356 DW_AT_GNU_dwo_id attributes for -gdwarf-5, instead pass checksum
5357 address to output_comp_unit and output_skeleton_debug_sections.
5358
5359 * dwarf2out.c (debug_line_str_section): New variable.
5360 (debug_line_str_hash): Likewise.
5361 (DEBUG_LINE_STR_SECTION): Define.
5362 (set_indirect_string): Handle DW_FORM_line_strp like
5363 DW_FORM_strp.
5364 (find_string_form): Fix up formatting.
5365 (size_of_die): Handle DW_FORM_line_strp like DW_FORM_strp.
5366 Fix up indentation.
5367 (output_die): Handle DW_FORM_line_strp.
5368 (DWARF5_USE_DEBUG_LINE_STR): Define.
5369 (output_line_string): New function.
5370 (output_file_names): Add -gdwarf-5 support.
5371 (output_line_info): Likewise.
5372 (init_sections_and_labels): Initialize debug_line_str_section.
5373 (output_indirect_string): Change 2nd argument from void *
5374 to enum dwarf_form form, compare with form rather than
5375 DW_FORM_strp.
5376 (output_indirect_strings): Pass DW_FORM_strp to
5377 output_indirect_string traversion.
5378 (dwarf2out_finish): Output .debug_line_str strings.
5379 (dwarf2out_c_finalize): Clear debug_line_str_section and
5380 debug_line_str_hash.
5381
5382 2016-10-31 Tom Tromey <tom@tromey.com>
5383
5384 PR debug/77315
5385 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_form_tls_address.
5386 (resolve_args_picking_1): Move DW_OP_form_tls_address case next to
5387 DW_OP_GNU_push_tls_address case.
5388 (loc_list_from_tree_1): Use DW_OP_form_tls_address.
5389
5390 2016-10-31 Jakub Jelinek <jakub@redhat.com>
5391
5392 * dwarf2out.h (struct dw_loc_descr_node): Adjust comment
5393 for frame_offset_rel bit.
5394 (struct array_descr_info): Add rank field.
5395 * dwarf2out.c (struct loc_descr_context): Add placeholder_arg
5396 and placeholder_seen fields.
5397 (resolve_args_picking_1): Handle also frame_offset_rel DW_OP_dup
5398 and DW_OP_over. Optimize DW_OP_pick 0 into DW_OP_dup and
5399 DW_OP_pick 1 into DW_OP_over.
5400 (function_to_dwarf_procedure, type_byte_size, field_byte_offset,
5401 gen_variant_part): Clear placeholder_{arg,seen}.
5402 (loc_list_from_tree_1): Drop const from context argument.
5403 Handle integral PLACEHOLDER_EXPR if context->placeholder_arg.
5404 (loc_list_for_address_of_addr_expr_of_indirect_ref,
5405 loc_list_from_tree, loc_descriptor_from_tree): Drop const from
5406 context argument.
5407 (add_scalar_info): Drop const from context argument. Handle
5408 context->placeholder_arg.
5409 (add_bound_info): Drop const from context argument.
5410 (gen_descr_array_type_die): Drop const from ctx variable.
5411 Initialize placeholder_arg and placeholder_seen. Add DW_AT_rank
5412 attribute and use a single DW_TAG_generic_subrange instead of
5413 7 DW_TAG_subrange_type for assumed rank arrays.
5414
5415 * dwarf2out.h (enum dw_val_class): Add dw_val_class_loclistsptr.
5416 * dwarf2out.c (struct dw_loc_list_struct): Change emitted field
5417 from bool to 1-bit uchar bitfield. Add num_assigned and
5418 offset_emitted bitfields.
5419 (dw_val_equal_p): Compare v.val_lbl_id rather than v.val_unsigned
5420 for dw_val_class_lineptr and dw_val_class_macptr. Handle
5421 dw_val_class_loclistsptr.
5422 (new_addr_loc_descr): Fix up formatting.
5423 (DEBUG_LOCLISTS_SECTION, DEBUG_DWO_LOCLISTS_SECTION): Define.
5424 (add_AT_low_high_pc): Fix up formatting.
5425 (add_AT_loclistsptr): New function.
5426 (AT_lbl): Allow dw_val_class_loclistsptr.
5427 (print_dw_val, attr_checksum, attr_checksum_ordered, same_dw_val_p):
5428 Handle dw_val_class_loclistsptr.
5429 (loc_list_idx): New variable.
5430 (output_loclists_offsets, assign_location_list_indexes): New
5431 functions.
5432 (size_of_die): For dw_val_class_loc_list -gsplit-dwarf -gdwarf-5
5433 add size_of_uleb128 of the index. Drop never used
5434 dwarf_split_debug_info AT_index handling. Handle
5435 dw_val_class_loclistsptr.
5436 (value_format): Return DW_FORM_loclistsx for dw_val_class_loc_list
5437 if -gsplit-dwarf -gdwarf-5. Handle dw_val_class_loclistsptr.
5438 (output_loc_list): Handle DWARF 5 .debug_loclists* format.
5439 (output_loc_list_offset): Handle -gsplit-dwarf -gdwarf-5
5440 DW_FORM_loclistx indexes.
5441 (output_attr_index_or_value): Fix up formatting. Don't handle
5442 dw_val_class_loc_list here.
5443 (output_die): Formatting fixes. Handle dw_val_class_loclistsptr.
5444 For dw_val_class_loc_list call output_loc_list_offset rather than
5445 output_attr_index_or_value.
5446 (init_sections_and_labels): For -gdwarf-5 use .debug_loclists
5447 or .debug_loclists.dwo section name for debug_loc_section.
5448 (resolve_addr_in_expr): Formatting fix.
5449 (index_location_lists): Likewise.
5450 (dwarf2out_finish): If there are any location lists, for
5451 -gsplit-dwarf -gdwarf-5 add DW_AT_loclists_base attribute. Call
5452 index_location_lists only if have_location_lists. Call
5453 assign_location_list_indexes for -gsplit-dwarf -gdwarf-5. Emit
5454 .debug_loclists{,.dwo} section header for -gdwarf-5, for -gdwarf-5
5455 -gsplit-dwarf also emit offset table.
5456
5457 * dwarf2out.c (DWARF_LARGEST_DATA_FORM_BITS): Define.
5458 (size_of_die, value_format, output_die): Use
5459 DW_FORM_data16 for 128-bit dw_val_class_const_double or
5460 dw_val_class_wide_int.
5461
5462 * dwarf2out.c (dwarf_op): Renamed to ...
5463 (dwarf_OP): ... this.
5464 (convert_descriptor_to_mode, scompare_loc_descriptor,
5465 minmax_loc_descriptor, typed_binop, mem_loc_descriptor,
5466 implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr): Adjust
5467 callers.
5468 (dwarf_AT, dwarf_TAG): New functions.
5469 (check_die): Disallow DW_AT_call_all_calls next to
5470 DW_AT_GNU_all_call_sites.
5471 (gen_call_site_die): Use dwarf_TAG and dwarf_AT with DWARF 5 tag
5472 and attributes instead of the corresponding GNU tag and attributes.
5473 (gen_subprogram_die): Likewise. Emit call site information even
5474 for -gdwarf-5 -gstrict-dwarf. Replace DW_AT_GNU_defaulted with
5475 DW_AT_defaulted in comment.
5476 (resolve_addr): Handle DW_AT_call_origin attribute on
5477 DW_TAG_call_site DIE like DW_AT_abstract_origin on
5478 DW_TAG_GNU_call_site DIE.
5479
5480 * dwarf2out.c (dwarf_op): New function.
5481 (size_of_loc_descr): Handle DW_OP_{implicit_pointer,entry_value},
5482 DW_OP_{const,regval,deref}_type and DW_OP_{convert,reinterpret}.
5483 (output_loc_operands, output_loc_operands_raw): Likewise.
5484 (resolve_args_picking_1, prune_unused_types_walk_loc_descr,
5485 mark_base_types, hash_loc_operands, compare_loc_operands): Likewise.
5486 (resolve_addr_in_expr): Likewise. Only punt for !dwarf_strict
5487 if dwarf_version < 5.
5488 (convert_descriptor_to_mode): Use dwarf_op (DW_OP_xxx) instead of
5489 DW_OP_GNU_xxx.
5490 (scompare_loc_descriptor, ucompare_loc_descriptor,
5491 minmax_loc_descriptor, typed_binop, mem_loc_descriptor,
5492 implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr,
5493 optimize_location_into_implicit_ptr): Likewise. Only punt for
5494 !dwarf_strict if dwarf_version < 5.
5495 (string_cst_pool_decl): Adjust comment.
5496 (non_dwarf_expression): Handle DW_OP_implicit_pointer.
5497
5498 * dwarf2out.h (enum dw_val_class): Add dw_val_class_const_implicit,
5499 dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit.
5500 (struct dw_val_node): Add val_file_implicit field.
5501 * dwarf2out.c (dw_val_equal_p, print_dw_val, attr_checksum,
5502 attr_checksum_ordered, same_dw_val_p, size_of_die, value_format,
5503 output_die): Handle dw_val_class_const_implicit,
5504 dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit.
5505 (abbrev_die_table): Change into va_gc vec.
5506 (abbrev_die_table_allocated, abbrev_die_table_in_use,
5507 ABBREV_DIE_TABLE_INCREMENT): Remove.
5508 (AT_int, AT_unsigned, AT_file): Allow dw_val_class_*_implicit.
5509 (abbrev_opt_start, abbrev_usage_count, sorted_abbrev_dies): New
5510 variables.
5511 (build_abbrev_table): Adjust for abbrev_die_table being a va_gc vec.
5512 If abbrev_opt_start, fill in abbrev_usage_count and abbrev_dies
5513 vectors.
5514 (die_abbrev_cmp, optimize_implicit_const, optimize_abbrev_table): New
5515 functions.
5516 (output_die_abbrevs): For DW_FORM_implicit_const emit sleb128 with
5517 the implicit value.
5518 (output_abbrev_section): Adjust for abbrev_die_table being a va_gc
5519 vec.
5520 (output_comp_unit): Initialize abbrev_opt_start if emitting the main
5521 unit. Call optimize_abbrev_table.
5522 (dwarf2out_init, dwarf2out_finish, dwarf2out_c_finalize): Adjust for
5523 abbrev_die_table being a va_gc vec.
5524
5525 PR tree-optimization/77860
5526 * tree-ssa-reassoc.c (eliminate_using_constants): Handle
5527 also integral complex and vector constants.
5528
5529 * dwarf2out.c (dwarf2out_define, dwarf2out_undef, output_macinfo_op,
5530 optimize_macinfo_range, save_macinfo_strings): Replace
5531 DW_MACRO_GNU_* constants with corresponding DW_MACRO_* constants.
5532 (output_macinfo): Likewise. Emit .debug_macro* rather than
5533 .debug_macinfo* even for -gstrict-dwarf -gdwarf-5.
5534 (init_sections_and_labels): Use .debug_macro* labels rather than
5535 .debug_macinfo* labels even for -gstrict-dwarf -gdwarf-5.
5536 (dwarf2out_finish): Use DW_AT_macros instead of DW_AT_macro_info
5537 or DW_AT_GNU_macros for -gdwarf-5.
5538
5539 2016-10-31 Waldemar Brodkorb <wbx@openadk.org>
5540
5541 * config/microblaze/linux.h (UCLIBC_DYNAMIC_LINKER): Define.
5542
5543 2016-09-11 Le-Chun Wu <lcwu@google.com>
5544 Mark Wielaard <mjw@redhat.com>
5545
5546 * common.opt (Wshadow=global): New option. Default for -Wshadow.
5547 (Wshadow=local): New option.
5548 (Wshadow-local): Hidden alias for -Wshadow=local.
5549 (Wshadow=compatible-local): New option.
5550 (Wshadow-compatible-local): Hidden alias for
5551 -Wshadow=compatible-local.
5552 * doc/invoke.texi: Document Wshadow=global, Wshadow=local and
5553 Wshadow=compatible-local.
5554
5555 2016-10-31 Bin Cheng <bin.cheng@arm.com>
5556
5557 * tree-vect-slp.c (vect_get_and_check_slp_defs): New parameter SWAP.
5558 Check slp defs for COND_EXPR by swapping/inverting operands if the
5559 new parameter SWAP indicates so.
5560 (vect_build_slp_tree_1): New parameter SWAP. Check COND_EXPR stmt
5561 is isomorphic to the first stmt via swapping/inverting. Store swap
5562 information in the new parameter SWAP.
5563 (vect_build_slp_tree): New local array SWAP and pass it to function
5564 vect_build_slp_tree_1. Cleanup result handling code for function
5565 call to vect_get_and_check_slp_defs. Skip operand swapping if the
5566 order of operands has been fixed as indicated by SWAP[i].
5567
5568 2016-10-31 Bin Cheng <bin.cheng@arm.com>
5569
5570 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip
5571 unnecessary data dependence check after visited store stmt.
5572
5573 2016-10-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5574
5575 PR tree-optimization/71915
5576 PR tree-optimization/71490
5577 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
5578 stride_type field.
5579 (find_basis_for_base_expr): Require stride types to match when
5580 seeking a basis.
5581 (alloc_cand_and_find_basis): Record the stride type.
5582 (slsr_process_phi): Pass stride type to alloc_cand_and_find_basis.
5583 (backtrace_base_for_ref): Pass types to legal_cast_p_1 rather than
5584 the expressions having those types.
5585 (slsr_process_ref): Pass stride type to alloc_cand_and_find_basis.
5586 (create_mul_ssa_cand): Likewise.
5587 (create_mul_imm_cand): Likewise.
5588 (create_add_ssa_cand): Likewise.
5589 (create_add_imm_cand): Likewise.
5590 (legal_cast_p_1): Change interface to accept types rather than the
5591 expressions having those types.
5592 (legal_cast_p): Pass types to legal_cast_p_1.
5593 (slsr_process_cast): Pass stride type to
5594 alloc_cand_and_find_basis.
5595 (slsr_process_copy): Likewise.
5596 (dump_candidate): Display stride type when a cast exists.
5597 (create_add_on_incoming_edge): Introduce a cast when necessary for
5598 the stride type.
5599 (analyze_increments): Change the code checking for invalid casts
5600 to rely on the stride type, and update the documentation and
5601 example. Change the code checking for pointer multiplies to rely
5602 on the stride type.
5603 (insert_initializers): Introduce a cast when necessary for the
5604 stride type. Use the stride type for the type of the initializer.
5605
5606 2016-10-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5607
5608 * config/arm/arm.c (arm_const_not_ok_for_debug_p): Use VAR_P.
5609
5610 2016-10-29 Jakub Jelinek <jakub@redhat.com>
5611
5612 PR rtl-optimization/77919
5613 * expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing
5614 into memory if both modes are complex and their inner modes have the
5615 same precision. If the two modes are different complex modes, convert
5616 each part separately and generate a new CONCAT.
5617
5618 2016-10-29 John David Anglin <danglin@gcc.gnu.org>
5619
5620 * config/pa/pa64-hpux.h (FINI_SECTION_ASM_OP): Define to null string.
5621
5622 2016-10-29 Jakub Jelinek <jakub@redhat.com>
5623
5624 PR target/78148
5625 * gimple-ssa-store-merging.c
5626 (imm_store_chain_info::output_merged_store): Use build_aligned_type
5627 instead of SET_TYPE_ALIGN on shared integral type.
5628
5629 2016-10-29 John David Anglin <danglin@gcc.gnu.org>
5630
5631 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
5632 (MALLOC_ABI_ALIGNMENT): Define to 128 on all targets except SOM.
5633 Adjust comment.
5634
5635 2016-10-28 Jeff Law <law@redhat.com>
5636
5637 * config/vax/vax.h (REGNO_REG_CLASS): Access the REGNO argument.
5638 * config/spu/spu.h (REGNO_REG_CLASS): Likewise.
5639
5640 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
5641
5642 * doc/sourcebuild.texi (Ada Tests): Remove mention of gcc chapter.
5643
5644 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
5645
5646 * target.def (min_arithmetic_precision): New hook.
5647 * doc/tm.texi.in (Misc): Add TARGET_MIN_ARITHMETIC_PRECISION.
5648 * doc/tm.texi: Regenerate.
5649 * internal-fn.c (expand_arith_overflow): Adjust handling of target
5650 dependent support by means of TARGET_MIN_ARITHMETIC_PRECISION.
5651 * targhooks.c (default_min_arithmetic_precision): New function.
5652 * targhooks.h (default_min_arithmetic_precision): Declare.
5653 * config/sparc/sparc.c (TARGET_MIN_ARITHMETIC_PRECISION): Define.
5654 (sparc_min_arithmetic_precision): New function.
5655
5656 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org>
5657
5658 PR target/71847
5659 * combine.c (change_zero_ext): Handle zero_ext of hard registers.
5660 Swap commutative operands in new RTL if needed. Handle zero_ext
5661 in the set_dest.
5662 (recog_for_combine): Pass *pnewpat to change_zero_ext instead of
5663 PATTERN (insn).
5664
5665 2016-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5666 Kugan Vivekanandarajah <kuganv@linaro.org>
5667 Jim Wilson <jim.wilson@linaro.org>
5668
5669 PR tree-optimization/43721
5670 * target.def: New hook expand_divmod_libfunc.
5671 * doc/tm.texi.in: Add hook for TARGET_EXPAND_DIVMOD_LIBFUNC.
5672 * doc/tm.texi: Regenerate.
5673 * internal-fn.def: Add new entry for DIVMOD ifn.
5674 * internal-fn.c (expand_DIVMOD): New.
5675 * tree-ssa-math-opts.c: Include optabs-libfuncs.h, tree-eh.h,
5676 targhooks.h.
5677 (widen_mul_stats): Add new field divmod_calls_inserted.
5678 (target_supports_divmod_p): New.
5679 (divmod_candidate_p): Likewise.
5680 (convert_to_divmod): Likewise.
5681 (pass_optimize_widening_mul::execute): Call calculate_dominance_info,
5682 renumber_gimple_stmt_uids at beginning of function. Call
5683 convert_to_divmod and record stats for divmod.
5684 * config/arm/arm.c (arm_expand_divmod_libfunc): Override hook
5685 TARGET_EXPAND_DIVMOD_LIBFUNC.
5686 * doc/sourcebuild.texi: Add items for arm_divmod_simode, divmod,
5687 divmod_simode.
5688
5689 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
5690 Segher Boessenkool <segher@kernel.crashing.org>
5691
5692 * dojump.c (do_jump_by_parts_greater_rtx): Invert probability when
5693 swapping the arms of the branch.
5694 * internal-fn.c (expand_addsub_overflow): Use a straight-line code
5695 sequence for the generic signed-signed-signed case.
5696
5697 2016-10-28 Jeff Law <law@redhat.com>
5698
5699 * config/bfin/bfin.c (bfin_legitimate_address_p): Add missing
5700 fallthru comment.
5701 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
5702
5703 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org>
5704
5705 PR rtl-optimization/78029
5706 * function.c (prologue_contains, epilogue_contains): New functions.
5707 (record_prologue_seq, record_epilogue_seq): New functions.
5708 * function.h (prologue_contains, epilogue_contains,
5709 record_prologue_seq, record_epilogue_seq): New declarations.
5710 * sched-deps.c (sched_analyze_insn): Make dependencies to prevent
5711 mixing prologue and epilogue insns.
5712 (init_deps): Initialize the new fields in struct deps_desc.
5713 * sched-int.h (struct deps_desc): New fields last_prologue,
5714 last_epilogue, and last_logue_was_epilogue.
5715 * shrink-wrap.c (emit_common_heads_for_components): Record all
5716 emitted prologue and epilogue insns.
5717 (emit_common_tails_for_components): Ditto.
5718 (insert_prologue_epilogue_for_components): Ditto.
5719
5720 2016-10-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5721
5722 PR middle-end/22141
5723 * Makefile.in (OBJS): Add gimple-ssa-store-merging.o.
5724 * common.opt (fstore-merging): New Optimization option.
5725 * opts.c (default_options_table): Add entry for
5726 OPT_ftree_store_merging.
5727 * fold-const.h (can_native_encode_type_p): Declare prototype.
5728 * fold-const.c (can_native_encode_type_p): Define.
5729 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Define.
5730 (PARAM_MAX_STORES_TO_MERGE): Likewise.
5731 * timevar.def (TV_GIMPLE_STORE_MERGING): New timevar.
5732 * passes.def: Insert pass_tree_store_merging.
5733 * tree-pass.h (make_pass_store_merging): Declare extern
5734 prototype.
5735 * gimple-ssa-store-merging.c: New file.
5736 * doc/invoke.texi (Optimization Options): Document
5737 -fstore-merging.
5738 (--param documentation): Document store-merging-allow-unaligned
5739 and max-stores-to-merge.
5740
5741 2016-10-28 Will Schmidt <will_schmidt@vnet.ibm.com>
5742
5743 PR middle-end/72747
5744 * gimplify.c (gimplify_init_constructor): Move emit of constructor
5745 assignment to earlier in the if/else logic.
5746
5747 2016-10-28 Richard Biener <rguenther@suse.de>
5748
5749 PR middle-end/78128
5750 PR middle-end/71002
5751 * fold-const.c (make_bit_field_ref): Only adjust alias set
5752 when the original alias set was zero.
5753
5754 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5755
5756 * config/s390/s390.c (s390_adjust_loop_scan_osc): New function.
5757 (s390_adjust_loops): New function.
5758 (s390_reorg): Invoke s390_adjust_loops.
5759 * config/s390/s390.md (UNSPEC_OSC_BREAK): New constant.
5760 ("osc_break"): New insn definition.
5761
5762 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5763
5764 * config/s390/s390.opt: Support alternate cpu level naming (archXX).
5765 * config.gcc: Support alternate archXX cpu levels with
5766 --with-arch= and --with-tune=.
5767 * config/s390/linux.h: Translate new archXX cpu levels to the
5768 original names when calling GAS.
5769 * config/s390/tpf.h: Likewise.
5770 * doc/invoke.texi: Document the alternate cpu level names.
5771
5772 2016-10-28 Jakub Jelinek <jakub@redhat.com>
5773
5774 PR rtl-optimization/77919
5775 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into
5776 MEM if mode1 is not a complex mode.
5777
5778 PR rtl-optimization/78132
5779 * ree.c (combine_reaching_defs): Give up if copy_needed and
5780 !HARD_REGNO_MODE_OK (REGNO (src_reg), dst_mode).
5781
5782 2016-10-27 Eric Botcazou <ebotcazou@adacore.com>
5783
5784 * config/sparc/sparc.md (<*vlop:code><VL:mode>3): Remove leading '*'.
5785
5786 2016-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
5787
5788 * config/rs6000/constraints.md (wH constraint): Add new
5789 constraints for allowing 32-bit integers (and eventually 8/16-bit
5790 integers) into the vector registers.
5791 (wI constraint): Likewise.
5792 (wJ constraint): Likewise.
5793 (wK constraint): Likewise.
5794 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
5795 -mvsx-small-integer as a default option for ISA 2.07
5796 (i.e. power8).
5797 (POWERPC_MASKS): Likewise.
5798 * config/rs6000/rs6000.opt (-mvsx-small-integer): Add new debug
5799 switch to turn off small integer support in vector registers.
5800 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Eliminate
5801 test for -mupper-regs-di, since it is already done with the
5802 reg_add[mode].scalar_in_vsx_p. Add support for the switch
5803 -mvsx-small-integer.
5804 (rs6000_debug_reg_global): Add support for wH, wI, wJ, and wK
5805 constraints.
5806 (rs6000_setup_reg_addr_masks): Likewise.
5807 (rs6000_init_hard_regno_mode_ok): Likewise.
5808 (rs6000_option_override_internal): Add consistency checks for
5809 -mvsx-small-integer.
5810 (rs6000_secondary_reload_simple_move): SImode is a simple move if
5811 -mvsx-small-integer.
5812 (rs6000_secondary_reload): Use std::swap.
5813 (rs6000_preferred_reload_class): Don't prefer FLOAT_REGS over
5814 VSX_REGS for small integers in vector registers, since there is no
5815 D-FORM address mode for such types.
5816 (rs6000_register_move_cost): Use FIRST_FPR_REGNO instead of 32.
5817 (rs6000_opt_masks): Add -mvsx-small-integer.
5818 * config/rs6000/vsx.md (VSINT_84): Add SImode for small integer
5819 support.
5820 (VSX_EXTRACT_I2): Clone VSX_EXTRACT_I, but drop V4SI since SImode
5821 extracts can be done on ISA 2.07.
5822 (vsx_extract_<mode>): Add support for small integers in vsx
5823 registers.
5824 (vsx_extract_<mode>_p9): Use 'v' instead of VSX_EX, since we no
5825 longer support V4SImode in this pattern.
5826 (vsx_extract_si): New insn to support extraction of SImode in ISA
5827 2.07 using either xxextractuw or vspltw.
5828 (vsx_extract_<mode>_p8): Use 'v' instead of VSX_EX, since we no
5829 longer support V4SImode in this pattern.
5830 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wH, wI,
5831 wJ, and wK constraints.
5832 * config/rs6000/rs6000.md (f32_sv): Use correct instruction for
5833 storing SDmode with VSX instructions.
5834 (zero_extendsi<mode>2): Reorder pattern, so RLDICL comes after the
5835 GPR load and before the FPR and VSX loads. Remove ??, ! from the
5836 constraints. Add MFVSRWZ and XXEXTRACTUW instructions to support
5837 small integers in vector registers.
5838 (extendsi<mode>2): Reorder pattern, so EXTSW comes after the GPR
5839 load and before the FPR and VSX loads. Remove ??, ! from the
5840 constraints. Add VEXTSW2D support for small integers in vector
5841 registers.
5842 (lfiwax): Remove ! constraint. Add VEXTSW2D support for small
5843 integers in vector registers.
5844 (floatsi<mode>2_lfiwax): If -mvsx-small-integer issue a normal
5845 move instead of using an UNSPEC.
5846 (lfiwzx): Remove ! constraint. Add XXEXTRACTUW support for small
5847 integers in vector registers.
5848 (floatunssi<mode>2_lfiwzx): If -mvsx-small-integer issue a normal
5849 move instead of using an UNSPEC.
5850 (movsi_internal1): Add support for -mvsx-small-integer. Align
5851 columns so that it is more readable.
5852 (SImode splitter for ISA 3.0 constants): Add splitter for
5853 -128..127 constants that can easily be constructed on ISA 3.0.
5854 * doc/md.texi (PowerPC Constraints): Document wH, wI, wJ, and wK
5855 constraints.
5856
5857 2016-10-27 Jakub Jelinek <jakub@redhat.com>
5858
5859 PR middle-end/78025
5860 * omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
5861 functions.
5862
5863 2016-10-27 Aldy Hernandez <aldyh@redhat.com>
5864
5865 * builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating
5866 PIC_OFFSET_TABLE_REGNUM twice.
5867
5868 2016-10-27 Bin Cheng <bin.cheng@arm.com>
5869
5870 * match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add
5871 support for constant operand for OP.
5872
5873 2016-10-27 Jakub Jelinek <jakub@redhat.com>
5874
5875 * dwarf2out.c (gen_member_die): Only reparent_child instead of
5876 splice_child_die if child doesn't have DW_AT_specification attribute.
5877
5878 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
5879
5880 * config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline.
5881 (TARGET_HAVE_LDREXBH): Likewise.
5882 (TARGET_HAVE_LDACQ): Likewise.
5883
5884 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
5885
5886 * config/arm/arm.c (arm_split_atomic_op): Add function comment. Add
5887 logic to to decide whether to copy over old value to register for new
5888 value.
5889 * config/arm/sync.md: Add comments explaning why mode and code
5890 attribute are not defined in iterators.md
5891 (thumb1_atomic_op_str): New code attribute.
5892 (thumb1_atomic_newop_str): Likewise.
5893 (thumb1_atomic_fetch_op_str): Likewise.
5894 (thumb1_atomic_fetch_newop_str): Likewise.
5895 (thumb1_atomic_fetch_oldop_str): Likewise.
5896 (atomic_exchange<mode>): Add new ARMv8-M Baseline only alternatives to
5897 mirror the more restrictive constraints of the Thumb-1 insns after
5898 split compared to Thumb-2 counterpart insns.
5899 (atomic_<sync_optab><mode>): Likewise. Add comment to keep constraints
5900 in sync with non atomic version.
5901 (atomic_nand<mode>): Likewise.
5902 (atomic_fetch_<sync_optab><mode>): Likewise.
5903 (atomic_fetch_nand<mode>): Likewise.
5904 (atomic_<sync_optab>_fetch<mode>): Likewise.
5905 (atomic_nand_fetch<mode>): Likewise.
5906 * config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint
5907 in sync with atomic version.
5908 (thumb1_subsi3_insn): Likewise.
5909 (thumb1_andsi3_insn): Likewise.
5910 (thumb1_iorsi3_insn): Likewise.
5911 (thumb1_xorsi3_insn): Likewise.
5912
5913 2016-10-27 Nick Clifton <nickc@redhat.com>
5914
5915 * plugin.c (register_plugin_info): Produce an error message if the
5916 plugin is not found in the hash table.
5917
5918 2016-10-27 Bin Cheng <bin.cheng@arm.com>
5919
5920 * match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
5921 New pattern.
5922
5923 2016-10-26 Kelvin Nilsen <kelvin@gcc.gnu.org>
5924
5925 PR target/78056
5926 * config/rs6000/rs6000.c (spe_init_builtins): Modify loops to not
5927 define builtin functions from the bdesc_spe_predicates or
5928 bdesc_spe_evsel arrays if the builtin mask is not compatible with
5929 the current compiler configuration.
5930 (paired_init_builtins): Modify loop to not define define builtin
5931 functions from the bdesc_paried_preds array if the builtin mask is
5932 not compatible with the current compiler configuration.
5933 (altivec_init_builtins): Modify loops to not define the
5934 __builtin_altivec_stxvl function nor the builtin functions from
5935 the bdesc_dst or bdesc_altivec_preds, or bdesc_abs arrays if the
5936 builtin mask is not compatible with the current compiler
5937 configuration.
5938
5939 2016-10-26 Jeff Law <law@redhat.com>
5940
5941 * config/sh/sh.c (output_branch): Add missing fallthru comments.
5942 (gen_shl_and): Likewise.
5943 * config/sh/sh.md (movsicc): Add missing fallthru comments.
5944
5945 * config/mips/mips.c (mips16_constant_cost): Add missing
5946 fallthru comments.
5947 (mips16_build_call_stub): Increase buffer size. Adjust
5948 fallthru comment.
5949
5950 2016-10-26 David Malcolm <dmalcolm@redhat.com>
5951
5952 * print-rtl.c (rtx_writer::print_rtx_operand_code_u): Print
5953 INSN_UIDs for all insns in compact mode.
5954 (rtx_writer::print_rtx): Likewise.
5955 * print-rtl.h (rtx_writer::flag_compact): Update comment.
5956 * rtl-tests.c (selftest::test_dumping_insns): Update expected
5957 output to include INSN_UID.
5958 (selftest::test_uncond_jump): Likewise.
5959
5960 2016-10-26 Pat Haugen <pthaugen@us.ibm.com>
5961
5962 * haifa-sched.c (call_used_regs_num): Rename to...
5963 (call_saved_regs_num): ...this.
5964 (fixed_regs_num): New variable.
5965 (sched_pressure_start_bb): Subtract out fixed_regs. Scale call_saved
5966 regs not call_used.
5967 (alloc_global_sched_pressure_data): Compute call_saved and fixed regs.
5968
5969 2016-10-26 David Malcolm <dmalcolm@redhat.com>
5970
5971 * print-rtl-function.c (print_rtx_function): Rewrite in terms of
5972 class rtx_writer.
5973 * print-rtl.c (outfile): Delete global.
5974 (sawclose): Likewise.
5975 (indent): Likewise.
5976 (in_call_function_usage): Likewise.
5977 (flag_compact): Likewise.
5978 (flag_simple): Likewise.
5979 (rtx_writer::rtx_writer): New ctor.
5980 (print_rtx_operand_code_0): Convert to...
5981 (rtx_writer::print_rtx_operand_code_0): ...this.
5982 (print_rtx_operand_code_e): Convert to...
5983 (rtx_writer::print_rtx_operand_code_e): ...this.
5984 (print_rtx_operand_codes_E_and_V): Convert to...
5985 (rtx_writer::print_rtx_operand_codes_E_and_V): ...this.
5986 (print_rtx_operand_code_i): Convert to...
5987 (rtx_writer::print_rtx_operand_code_i): ...this.
5988 (print_rtx_operand_code_r): Convert to...
5989 (rtx_writer::print_rtx_operand_code_r): ...this.
5990 (print_rtx_operand_code_u): Convert to...
5991 (rtx_writer::print_rtx_operand_code_u): ...this.
5992 (print_rtx_operand): Convert to...
5993 (rtx_writer::print_rtx_operand): ...this.
5994 (print_rtx): Convert to...
5995 (rtx_writer::print_rtx): ...this.
5996 (print_inline_rtx): Rewrite in terms of class rtx_writer.
5997 (debug_rtx): Likewise.
5998 (print_rtl): Convert to...
5999 (rtx_writer::print_rtl): ...this.
6000 (print_rtl): Reimplement in terms of class rtx_writer.
6001 (print_rtl_single): Rewrite in terms of class rtx_writer.
6002 (print_rtl_single_with_indent): Convert to..
6003 (rtx_writer::print_rtl_single_with_indent): ...this.
6004 (print_simple_rtl): Rewrite in terms of class rtx_writer.
6005 * print-rtl.h (flag_compact): Delete decl.
6006 (class rtx_writer): New class.
6007 * rtl-tests.c (selftest::assert_rtl_dump_eq): Rewrite in terms of
6008 class rtx_writer.
6009
6010 2016-10-26 Jeff Law <law@redhat.com>
6011
6012 * config/microblaze/microblaze.c (tls_mentioned_p): Avoid
6013 fallthru.
6014
6015 * config/arc/arc.c (acr_print_operand): Adjust fallthru comment.
6016 (check_if_valid_sleep_operand): Add missing fallthru comment.
6017 (arc_register_move_cost): Increase buffer size.
6018 * config/arc/arc.md (cbranch4si_scratch): Add missing fallthru
6019 comment.
6020 * config/arc/predicates.md (move_str_operand): Avoid fallthru.
6021
6022 * config/cr16/cr16.c (cr16_print_operand): Add missing fallthru
6023 comment. Add gcc_unreachable for path that should never happen.
6024
6025 * config/epiphany/epiphany.c (epiphany_print_operand): Adjust
6026 fallthru comment.
6027
6028 2016-10-26 Jakub Jelinek <jakub@redhat.com>
6029 Martin Liska <mliska@suse.cz>
6030
6031 PR fortran/77973
6032 * gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
6033 clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
6034 on outer context if any.
6035
6036 2016-10-26 Jakub Jelinek <jakub@redhat.com>
6037
6038 * gen-pass-instances.awk (adjust_linenos): Increment pass_lines[p]
6039 by increment rather than double it.
6040 (insert_remove_pass): Strip leading whitespace from args[3]. Don't
6041 emit a space before args[4].
6042 (END): Don't emit a space before with_arg.
6043
6044 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
6045
6046 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M
6047 Baseline only alternatives to (i) hold store atomic success value in a
6048 return register rather than a scratch register, (ii) use a low register
6049 for it and to (iii) ensure the cbranchsi insn generated by the split
6050 respect the constraints of Thumb-1 cbranchsi4_insn and
6051 cbranchsi4_scratch.
6052 * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate
6053 constraints must match those in atomic_compare_and_swap.
6054 (cbranchsi4_scratch): Likewise.
6055
6056 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
6057
6058 * config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local
6059 variable. Add the new parameter to the insn generator. Set that
6060 parameter to be CC flag for 32-bit targets, bval otherwise. Set the
6061 return value from the negation of that parameter for Thumb-1, keeping
6062 the logic unchanged otherwise except for using bdst as the destination
6063 register of the compare_and_swap insn.
6064 (arm_split_compare_and_swap): Add explanation about how is the value
6065 returned to the function comment. Rename scratch variable to
6066 neg_bval. Adapt initialization of variables holding operands to the
6067 new operand numbers. Use return register to hold result of store
6068 exclusive for Thumb-1, scratch register otherwise. Construct the
6069 appropriate cbranch for Thumb-1 targets, keeping the logic unchanged
6070 for 32-bit targets. Guard Z flag setting to restrict to 32bit targets.
6071 Use gen_cbranchsi4 rather than hand-written conditional branch to loop
6072 for strongly ordered compare_and_swap.
6073 * config/arm/predicates.md (cc_register_operand): New predicate.
6074 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Use a
6075 match_operand with the new predicate to accept either the CC flag or a
6076 destination register for the boolean return value, restricting it to
6077 CC flag only via constraint. Adapt operand numbers accordingly.
6078
6079 2016-10-26 Jeff Law <law@redhat.com>
6080
6081 * config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment.
6082
6083 * config/frv/frv.c (comparison_string): Do not fall through after
6084 an error.
6085
6086 * config/iq2000/iq2000.c (iq2000_function_arg): Adjust fallthru
6087 comment.
6088 (expand_one_builtin): Add missing break.
6089
6090 * config/m32c/m32c.c (encode_pattern_1): Add fallthru comment.
6091 (m32c_legitimate_address_p): Likewise.
6092
6093 * config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment.
6094
6095 * config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments.
6096
6097 * config/microblaze/microblaze.c (microblaze_function_arg): Adjust
6098 fallthru comment.
6099
6100 * config/msp430/msp430.c (msp430_legitimate_address_p): Adjust
6101 fallthru comment.
6102
6103 * config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru.
6104
6105 * config/rl78/rl78.c (rl78_calculate_death_notes): Add fallthru
6106 comment.
6107 (rl78_asm_ctor_dtor): Increase buffer size.
6108
6109 * config/stormy16/stormy16.c (xstormy16_asm_output_destrutor): Increase
6110 buffer size.
6111 (xstormy16_asm_output_constructor): Likewise.
6112
6113 * config/pa/pa.c (pa_asm_output_mi_thunk): Increase buffer
6114 size.
6115
6116 * config/h8300/h8300.c (h8300_print_operand): Adjust FALLTHRU
6117 comment to silence warning.
6118
6119 * config/spu/spu.c (spu_sched_reorder): Add missing fallthru comment.
6120 (spu_legitimate_address_p): Fix logic error and add missing fallthru
6121 comment.
6122
6123 2016-10-26 Michael Matz <matz@suse.de>
6124
6125 PR tree-optimization/78060
6126 PR tree-optimization/78061
6127 PR tree-optimization/78088
6128 * tree-ssa-loop-split.c (easy_exit_values): New function.
6129 (tree_ssa_split_loops): Use it.
6130 (compute_new_first_bound): Change order of operations,
6131 fix invalid use of types.
6132
6133 2016-10-26 Georg-Johann Lay <avr@gjlay.de>
6134
6135 gen-pass-instances.awk is sensitive to the order in which
6136 passes are added; passes that appear later have to be added first.
6137
6138 PR target/71676
6139 PR target/71678
6140 * config/avr/avr-passes.def: Swap order of directives for
6141 gen-pass-instances.awk.
6142
6143 2016-10-25 Jeff Law <law@redhat.com>
6144
6145 * config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment.
6146 (vax_notice_update_cc): Likewise.
6147
6148 2016-10-25 Eric Botcazou <ebotcazou@adacore.com>
6149
6150 * config.gcc (sparc*-*-solaris2*): Adjust.
6151 (sparc64-*-linux*): Likewise.
6152 * config/sparc/default-64.h: Rename to...
6153 * config/sparc/default64.h: ...this.
6154 * config/sparc/sparc.c (sparc_option_override): Replace TARGET_64BIT
6155 with TARGET_ARCH64.
6156 (sparc_mangle_type): Replace !TARGET_64BIT with TARGET_ARCH32.
6157 * config/sparc/sparc.h: Minor tweaks.
6158 * config/sparc/sparc.md: Replace !TARGET_64BIT and !TARGET_ARCH64 with
6159 TARGET_ARCH32 throughout. Minor various tweaks throughout.
6160
6161 2016-10-25 David Malcolm <dmalcolm@redhat.com>
6162
6163 * input.c (fcache::file_patch): Add comment about lifetime.
6164 (selftest::cpp_reader_ptr): New class.
6165 (selftest::lexer_test): Convert m_parser from cpp_reader *
6166 to a cpp_reader_ptr, and move m_tempfile to after it.
6167 (selftest::lexer_test::lexer_test): Update for above reordering.
6168 (lexer_test::~lexer_test): Move cleanup of m_parser to
6169 cpp_reader_ptr's dtor.
6170
6171 2016-10-25 David Malcolm <dmalcolm@redhat.com>
6172
6173 * toplev.c (toplev::main): Remove call to
6174 location_adhoc_data_fini.
6175
6176 2016-10-25 Eric Botcazou <ebotcazou@adacore.com>
6177
6178 * tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.
6179 * tree.c (int_fits_type_p): Likewise. Adjust head comment.
6180
6181 2016-10-25 David Malcolm <dmalcolm@redhat.com>
6182
6183 * ggc-tests.c (forcibly_ggc_collect): Rename to...
6184 (selftest::forcibly_ggc_collect): ...this, and remove "static".
6185 (test_basic_struct): Update for above renaming.
6186 (test_length): Likewise.
6187 (test_union): Likewise.
6188 (test_finalization): Likewise.
6189 (test_deletable_global): Likewise.
6190 (test_inheritance): Likewise.
6191 (test_chain_next): Likewise.
6192 (test_user_struct): Likewise.
6193 (test_tree_marking): Likewise.
6194 * selftest-run-tests.c (selftest::run_tests): Call
6195 selftest::forcibly_ggc_collect at the end of the selftests.
6196 * selftest.h (selftest::forcibly_ggc_collect): New decl.
6197
6198 2016-10-25 Jakub Jelinek <jakub@redhat.com>
6199
6200 PR target/78102
6201 * optabs.def (vcondeq_optab, vec_cmpeq_optab): New optabs.
6202 * optabs.c (expand_vec_cond_expr): For comparison codes
6203 EQ_EXPR and NE_EXPR, attempt vcondeq_optab as fallback.
6204 (expand_vec_cmp_expr): For comparison codes
6205 EQ_EXPR and NE_EXPR, attempt vec_cmpeq_optab as fallback.
6206 * optabs-tree.h (expand_vec_cmp_expr_p, expand_vec_cond_expr_p):
6207 Add enum tree_code argument.
6208 * optabs-query.h (get_vec_cmp_eq_icode, get_vcond_eq_icode): New
6209 inline functions.
6210 * optabs-tree.c (expand_vec_cmp_expr_p): Add CODE argument. For
6211 CODE EQ_EXPR or NE_EXPR, attempt to use vec_cmpeq_optab as
6212 fallback.
6213 (expand_vec_cond_expr_p): Add CODE argument. For CODE EQ_EXPR or
6214 NE_EXPR, attempt to use vcondeq_optab as fallback.
6215 * tree-vect-generic.c (expand_vector_comparison,
6216 expand_vector_divmod, expand_vector_condition): Adjust
6217 expand_vec_cmp_expr_p and expand_vec_cond_expr_p callers.
6218 * tree-vect-stmts.c (vectorizable_condition,
6219 vectorizable_comparison): Likewise.
6220 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern,
6221 check_bool_pattern, search_type_for_mask_1): Likewise.
6222 * expr.c (do_store_flag): Likewise.
6223 * doc/md.texi (@code{vec_cmpeq@var{m}@var{n}},
6224 @code{vcondeq@var{m}@var{n}}): Document.
6225 * config/i386/sse.md (vec_cmpeqv2div2di, vcondeq<VI8F_128:mode>v2di):
6226 New expanders.
6227
6228 2016-10-25 Jeff Law <law@redhat.com>
6229
6230 * config/v850/v850.c (v850_handle_data_area_attribute): Fix fallthru
6231 comment.
6232 (v850_output_aligned_bss): Add missing break.
6233
6234 * config/m68k/m68k.c (m68k_get_reloc_decoration): Add gcc_unreachable.
6235
6236 2016-10-25 Martin Liska <mliska@suse.cz>
6237
6238 PR sanitizer/78106
6239 * sanopt.c (imm_dom_path_with_freeing_call): Handle gasm
6240 statements as they can also contain possibly a freeing call.
6241
6242 2016-10-25 H.J. Lu <hongjiu.lu@intel.com>
6243 Martin Liska <mliska@suse.cz>
6244
6245 PR ipa/78099
6246 * common.opt: Mark flag_ipa_icf_variables as Optimization flag.
6247 * ipa-icf.c (sem_function::get_hash): Add target optimization
6248 node to hash.
6249
6250 2016-10-25 Wilco Dijkstra <wdijkstr@arm.com>
6251
6252 PR target/78041
6253 * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
6254 Remove partial overlap check for shift by 1.
6255 (ashldi3_neon): Likewise.
6256
6257 2016-10-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
6258
6259 * config/arm/constraints.md (Q constraint): Document its use for
6260 Thumb-1.
6261 (Pf constraint): New constraint for relaxed, consume or relaxed memory
6262 models.
6263 * config/arm/sync.md (atomic_load<mode>): Add new ARMv8-M Baseline only
6264 alternatives to allow any register when memory model matches Pf and
6265 thus lda is used, but only low registers otherwise. Use unpredicated
6266 output template for Thumb-1 targets.
6267 (atomic_store<mode>): Likewise for stl.
6268 (arm_load_exclusive<mode>): Add new ARMv8-M Baseline only alternative
6269 whose output template does not have predication.
6270 (arm_load_acquire_exclusive<mode>): Likewise.
6271 (arm_load_exclusivesi): Likewise.
6272 (arm_load_acquire_exclusivesi): Likewise.
6273 (arm_store_release_exclusive<mode>): Likewise.
6274 (arm_store_exclusive<mode>): Use unpredicated output template for
6275 Thumb-1 targets.
6276
6277 2016-10-25 Jakub Jelinek <jakub@redhat.com>
6278
6279 * internal-fn.def (LAUNDER): New internal function.
6280 * internal-fn.c (expand_LAUNDER): New function.
6281
6282 2016-10-25 Georg-Johann Lay <avr@gjlay.de>
6283 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
6284
6285 New avr target pass to work around performance loss by PR fix.
6286
6287 PR target/71676
6288 PR target/71678
6289 * config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn.
6290 (*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3.
6291 * config/avr/predicates.md (extend_operator): New.
6292 * config/avr/avr-passes.def (avr_pass_casesi): Register new pass.
6293 * config/avr/avr-protos.h (avr_casei_sequence_check_operands)
6294 (make_avr_pass_casesi): New prototypes.
6295 * config/avr/avr.c (print-rtl.h): Include it.
6296 (pass_data avr_pass_data_casesi): Data for new pass.
6297 (avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi.
6298 (make_avr_pass_casesi, avr_parallel_insn_from_insns)
6299 (avr_is_casesi_sequence, avr_casei_sequence_check_operands)
6300 (avr_optimize_casesi): New functions.
6301
6302 2016-10-25 Georg-Johann Lay <avr@gjlay.de>
6303 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
6304
6305 PR target/71676
6306 PR target/71678
6307 * config/avr/avr.md (casesi): Rewrite avoiding subregs of SI.
6308
6309 2016-10-24 Jakub Jelinek <jakub@redhat.com>
6310
6311 * dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or
6312 DW_AT_rvalue_reference attributes.
6313
6314 2016-10-24 Bernd Edlinger <bernd.edlinger@hotmail.de>
6315
6316 * doc/invoke.text (Wint-in-bool-context): Update documentation.
6317 * value-prof.c (stringop_block_profile): Fix a warning.
6318
6319 2016-10-24 Martin Sebor <msebor@redhat.com>
6320
6321 PR middle-end/77735
6322 * builtins.c (string_length): New function.
6323 (c_strlen): Use string_length. Correctly handle wide strings.
6324 * gimple-ssa-sprintf.c (target_max_value, target_size_max): New
6325 functions.
6326 (target_int_max): Call target_max_value.
6327 (format_result::knownrange): New data member.
6328 (fmtresult::fmtresult): Define default constructor.
6329 (format_integer): Use it and set format_result::knownrange.
6330 Handle global constants.
6331 (format_floating_max): Add third argument.
6332 (format_floating): Recompute maximum value for %a for each argument.
6333 (get_string_length): Use fmtresult default ctor.
6334 (format_string): Set format_result::knownrange.
6335 (format_directive): Check format_result::knownrange.
6336 (add_bytes): Same. Correct caret placement in diagnostics.
6337 (pass_sprintf_length::compute_format_length): Set
6338 format_result::knownrange.
6339 (pass_sprintf_length::handle_gimple_call): Use target_size_max.
6340
6341 2016-10-24 Jakub Jelinek <jakub@redhat.com>
6342
6343 * config/i386/i386.c (ix86_in_large_data_p, ix86_expand_builtin): Use
6344 VAR_P (x) instead of TREE_CODE (x) == VAR_DECL.
6345
6346 2016-10-24 Ximin Luo <infinity0@pwned.gg>
6347
6348 PR debug/77985
6349 * dwarf2out.c (file_table_relative_p): Remove.
6350 (gen_compile_unit_die, dwarf2out_early_finish): Emit DW_AT_comp_dir
6351 also for absolute paths.
6352 * doc/tm.texi: Update.
6353 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Remove.
6354 * target.def (force_at_comp_dir): Remove hook.
6355 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Remove define.
6356
6357 2016-10-24 Richard Biener <rguenther@suse.de>
6358
6359 * tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore
6360 backedges when identifying the single predecessor to take
6361 conditional info from. Use SCEV to get at ranges for loop IVs.
6362 * lto-streamer-out.c (lto_write_mode_table): CSE inner mode to
6363 avoid false warning.
6364
6365 2016-10-24 Georg-Johann Lay <avr@gjlay.de>
6366
6367 PR target/78093
6368 * doc/extend.texi (AVR Variable Attributes) [absdata]: Document it.
6369 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_ABSDATA): New macro.
6370 (avr_address_tiny_absdata_p): New static function.
6371 (avr_legitimate_address_p, avr_legitimize_address) [AVR_TINY]: Use
6372 it to determine validity of constant addresses.
6373 (avr_attribute_table) [absdata]: New variable attribute...
6374 (avr_handle_absdata_attribute): ...and handler.
6375 (avr_decl_absdata_p): New static function.
6376 (avr_encode_section_info) [AVR_TINY]: Use it to add flag
6377 AVR_SYMBOL_FLAG_TINY_ABSDATA to respective symbols_refs.
6378 (avr_address_cost) [AVR_TINY]: absdata addresses cost 2.
6379
6380 2016-10-24 Richard Biener <rguenther@suse.de>
6381
6382 PR tree-optimization/78076
6383 * tree-ssa-loop-split.c (tree_ssa_split_loops): Reset aux
6384 also on the loop tree root.
6385
6386 2016-10-24 Jakub Jelinek <jakub@redhat.com>
6387
6388 * config/i386/i386.c (ix86_fold_builtin): Handle
6389 IX86_BUILTIN_BEXTR{,I}{32,64}, IX86_BUILTIN_BZHI{32,64},
6390 IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
6391 (ix86_gimple_fold_builtin): Handle IX86_BUILTIN_BZHI{32,64},
6392 IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
6393
6394 2016-10-24 Martin Liska <mliska@suse.cz>
6395
6396 PR sanitizer/77966
6397 * opts.c (finish_options): Skip conditionally.
6398
6399 2016-10-23 Martin Sebor <msebor@redhat.com>
6400
6401 PR target/77837
6402 * config/rs6000/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define.
6403 * config/rs6000/linux64.h (TARGET_PRINTF_POINTER_FORMAT): Likewise.
6404
6405 2016-10-23 Eric Botcazou <ebotcazou@adacore.com>
6406
6407 * config/sparc/sparc.md (cpu_feature): Minor tweak.
6408 (enabled): Likewise.
6409 (movsi_insn, movdi_insn_sp32, movdi_insn_sp64, movsf_insn,
6410 movdf_insn_sp32, movdf_insn_sp64, zero_extendsidi2_insn_sp64,
6411 sign_extendsidi2_insn, mov<VM32:mode>_insn, mov<VM64:mode>_insn_sp64,
6412 mov<VM64:mode>_insn_sp32, not_<code><mode>, nand<mode>_vis,
6413 <code>_not1<mode>_vi, <code>_not2<mode>_vis, one_cmpl<mode>2,
6414 fcmp<code><GCM:gcm_name>, pdistn<mode>_vis): Likewise.
6415
6416 2016-10-23 Eric Botcazou <ebotcazou@adacore.com>
6417
6418 * config/sparc/sparc-c.c (sparc_target_macros): Replace TARGET_64BIT
6419 with TARGET_ARCH64. Define __VIS to 0x400 if TARGET_VIS4.
6420
6421 2016-10-21 Andrew Pinski <apinski@cavium.com>
6422
6423 * config/aarch64/aarch64-cores.def: Rewrite so IMP and PART are
6424 integer constants.
6425 * config/aarch64/driver-aarch64.c (struct aarch64_core_data): Change
6426 implementer_id to unsigned char.
6427 Change part_no to unsigned int.
6428 (AARCH64_BIG_LITTLE): New define.
6429 (INVALID_IMP): New define.
6430 (INVALID_CORE): New define.
6431 (cpu_data): Change the last element's implementer_id and part_no to
6432 integers.
6433 (valid_bL_string_p): Rewrite to ..
6434 (valid_bL_core_p): this for integers instead of strings.
6435 (parse_field): New function.
6436 (contains_string_p): Rewrite to ...
6437 (contains_core_p): this for integers and only for the part_no.
6438 (host_detect_local_cpu): Rewrite handling of implementation and
6439 par num to be integers; simplifying the code.
6440
6441 2016-10-21 Kugan Vivekanandarajah <kuganv@linaro.org>
6442
6443 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Create nonzero
6444 value range for pointers in more cases.
6445
6446 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com>
6447
6448 * config/aarch64/aarch64.c (aarch64_add_constant_internal):
6449 Add extra argument to allow emitting the move immediate.
6450 Use add/sub with positive immediate.
6451 (aarch64_add_constant): Add inline function.
6452 (aarch64_add_sp): Likewise.
6453 (aarch64_sub_sp): Likewise.
6454 (aarch64_expand_prologue): Call aarch64_sub_sp.
6455 (aarch64_expand_epilogue): Call aarch64_add_sp.
6456 Decide when to leave out move.
6457 (aarch64_output_mi_thunk): Call aarch64_add_constant.
6458
6459 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com>
6460
6461 * config/aarch64/aarch64.c (aarch64_layout_frame):
6462 Align FP callee-saves.
6463
6464 2016-10-21 Jakub Jelinek <jakub@redhat.com>
6465
6466 * config/i386/adxintrin.h (_subborrow_u32, _addcarry_u32,
6467 _addcarryx_u32, _subborrow_u64, _addcarry_u64, _addcarryx_u64):
6468 Formatting fixes.
6469 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
6470 _rdseed64_step): Likewise.
6471 * config/i386/tbmintrin.h (__bextri_u32): Likewise.
6472
6473 PR target/78057
6474 * config/i386/i386.c: Include fold-const-call.h, tree-vrp.h
6475 and tree-ssanames.h.
6476 (ix86_fold_builtin): Fold IX86_BUILTIN_[LT]ZCNT{16,32,64}
6477 with INTEGER_CST argument.
6478 (ix86_gimple_fold_builtin): New function.
6479 (TARGET_GIMPLE_FOLD_BUILTIN): Define.
6480
6481 * dwarf2out.c (ranges_table): Change into vec<dw_ranges, va_gc> *.
6482 (ranges_by_label): Change into vec<dw_ranges_by_label, va_gc> *.
6483 (ranges_table_allocated, ranges_table_in_use,
6484 ranges_by_label_allocated, ranges_by_label_in_use,
6485 RANGES_TABLE_INCREMENT): Removed.
6486 (add_ranges_num): Use vec_safe_push into ranges_table.
6487 (add_ranges_by_labels): Use vec_safe_push into ranges_by_label.
6488 (output_ranges): Adjust for ranges_table and ranges_by_label
6489 conversion from arrays to vec.
6490 (add_high_low_attributes, dwarf2out_finish): Adjust for range_table
6491 conversion from arrays to vec.
6492 (dwarf2out_c_finalize): Don't clear ranges_table_allocated,
6493 ranges_table_in_use, ranges_by_label_allocated and
6494 ranges_by_label_in_use. Set ranges_by_label to NULL instead of 0.
6495
6496 * dwarf2out.c (gen_variable_die): Emit DW_AT_const_expr attribute
6497 if needed. Re-add origin_die variable and its initialization.
6498
6499 * gimplify.c (gimplify_bind_expr): Handle oacc_declare_returns
6500 even for -fstack-reuse=none, or for volatile vars etc.
6501
6502 2016-10-21 David Malcolm <dmalcolm@redhat.com>
6503
6504 * print-rtl-function.c (flag_compact): Move extern decl to...
6505 * print-rtl.h (flag_compact): ...here.
6506 * rtl-tests.c (selftests::assert_rtl_dump_eq): New function.
6507 (ASSERT_RTL_DUMP_EQ): New macro.
6508 (selftest::test_dumping_regs): New function.
6509 (selftest::test_dumping_insns): New function.
6510 (selftest::test_uncond_jump): Add uses of ASSERT_RTL_DUMP_EQ on
6511 the insns.
6512 (selftest::rtl_tests_c_tests): Call the new test functions.
6513
6514 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6515
6516 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
6517 (outgoing_edges_match): Likewise.
6518 (try_crossjump_to_edge): Likewise.
6519 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
6520 (rtl_tidy_fallthru_edge): Likewise.
6521 * rtl.h (tablejump_p): Adjust prototype.
6522 * rtlanal.c (tablejump_p): Return the label as a rtx_insn *.
6523
6524 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6525
6526 * rtl.h (label_ref_label): New function.
6527 (set_label_ref_label): New function.
6528 (LABEL_REF_LABEL): Delete.
6529 * alias.c (rtx_equal_for_memref_p): Adjust.
6530 * cfgbuild.c (make_edges): Likewise.
6531 (purge_dead_tablejump_edges): Likewise.
6532 * cfgexpand.c (convert_debug_memory_address): Likewise.
6533 * cfgrtl.c (patch_jump_insn): Likewise.
6534 * combine.c (distribute_notes): Likewise.
6535 * cse.c (hash_rtx_cb): Likewise.
6536 (exp_equiv_p): Likewise.
6537 (fold_rtx): Likewise.
6538 (check_for_label_ref): Likewise.
6539 * cselib.c (rtx_equal_for_cselib_1): Likewise.
6540 (cselib_hash_rtx): Likewise.
6541 * emit-rtl.c (mark_label_nuses): Likewise.
6542 * explow.c (convert_memory_address_addr_space_1): Likewise.
6543 * final.c (output_asm_label): Likewise.
6544 (output_addr_const): Likewise.
6545 * gcse.c (add_label_notes): Likewise.
6546 * genconfig.c (walk_insn_part): Likewise.
6547 * genrecog.c (validate_pattern): Likewise.
6548 * ifcvt.c (cond_exec_get_condition): Likewise.
6549 (noce_emit_store_flag): Likewise.
6550 (noce_get_alt_condition): Likewise.
6551 (noce_get_condition): Likewise.
6552 * jump.c (maybe_propagate_label_ref): Likewise.
6553 (mark_jump_label_1): Likewise.
6554 (redirect_exp_1): Likewise.
6555 (rtx_renumbered_equal_p): Likewise.
6556 * lra-constraints.c (operands_match_p): Likewise.
6557 * print-rtl.c (print_value): Likewise.
6558 * reload.c (find_reloads): Likewise.
6559 * reload1.c (set_label_offsets): Likewise.
6560 * reorg.c (get_branch_condition): Likewise.
6561 * rtl-tests.c (test_uncond_jump): Likewise.
6562 * rtl.c (rtx_equal_p_cb): Likewise.
6563 (rtx_equal_p): Likewise.
6564 * rtlanal.c (reg_mentioned_p): Likewise.
6565 (rtx_referenced_p): Likewise.
6566 (get_condition): Likewise.
6567 * varasm.c (const_hash_1): Likewise.
6568 (compare_constant): Likewise.
6569 (const_rtx_hash_1): Likewise.
6570 (output_constant_pool_1): Likewise.
6571
6572 2016-10-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6573
6574 PR target/71627
6575 * reload.c (find_valid_class_1): Allow regclass if atleast one
6576 regno in regclass is ok. Compute and use rclass size based on
6577 actually available regnos for mode in rclass.
6578
6579 2016-10-21 Eric Botcazou <ebotcazou@adacore.com>
6580
6581 * config/sparc/sparc-modes.def (CCV): New.
6582 (CCXV): Likewise.
6583 * config/sparc/predicates.md (v_comparison_operator): New.
6584 (icc_comparison_operator): Add support for CCV/CCXV.
6585 (xcc_comparison_operator): Likewise.
6586 * config/sparc/sparc.c (output_cbranch): Likewise.
6587 (sparc_print_operand): Likewise.
6588 * config/sparc/sparc.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
6589 (uaddvdi4): New expander.
6590 (addvdi4): Likewise.
6591 (uaddvdi4_sp32): New instruction.
6592 (addvdi4_sp32): Likewise.
6593 (uaddvsi4): New expander.
6594 (addvsi4): Likewise.
6595 (cmp_ccc_plus_sltu_set): New instruction.
6596 (cmp_ccv_plus): Likewise.
6597 (cmp_ccxv_plus): Likewise.
6598 (cmp_ccv_plus_set): Likewise.
6599 (cmp_ccxv_plus_set): Likewise.
6600 (cmp_ccv_plus_sltu_set): Likewise.
6601 (uaddvdi4): New expander.
6602 (subvdi4): Likewise.
6603 (usubdi4_sp32): New instruction.
6604 (subvdi4_sp32): Likewise.
6605 (usubvsi4): New expander.
6606 (subvsi4): Likewise.
6607 (cmpsi_minus_sltu_set): New instruction.
6608 (cmp_ccv_minus): Likewise.
6609 (cmp_ccxv_minus): Likewise.
6610 (cmp_ccv_minus_set): Likewise.
6611 (cmp_ccxv_minus_set): Likewise.
6612 (cmp_ccv_minus_sltu_set): Likewise.
6613 (unegvdi3): New expander.
6614 (negvdi3): Likewise.
6615 (unegdi3_sp32): New instruction.
6616 (negvdi3_sp32): Likewise.
6617 (unegvsi3): New expander.
6618 (negvsi3): Likewise.
6619 (cmp_ccc_neg_sltu_set): New instruction.
6620 (cmp_ccv_neg): Likewise.
6621 (cmp_ccxv_neg): Likewise.
6622 (cmp_ccv_neg_set): Likewise.
6623 (cmp_ccxv_neg_set): Likewise.
6624 (cmp_ccv_neg_sltu_set): Likewise.
6625
6626 * tree-ssa-loop-split.c: Remove trailing spaces.
6627 * match.pd: Likewise.
6628
6629 2016-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6630
6631 PR rtl-optimization/78038
6632 * ree.c (get_defs): Return NULL if a defining insn for REG cannot
6633 be deduced to set REG through the RTL structure.
6634 (make_defs_and_copies_lists): Return false on a failing get_defs call.
6635
6636 2016-10-21 Richard Biener <rguenther@suse.de>
6637
6638 PR tree-optimization/78051
6639 * tree-vrp.c (evrp_dom_walker::before_dom_children): Update stmt
6640 and mark replaced if folding did something.
6641
6642 2016-10-21 David Edelsohn <dje.gcc@gmail.com>
6643
6644 * config/rs6000/rs6000.c (rs6000_assemble_visibility): Swap "internal"
6645 and "protected" in visibility types.
6646 (rs6000_xcoff_declare_function_name): Fix formatting.
6647 (rs6000_xcoff_declare_object_name): Fix formatting.
6648
6649 2016-10-21 Uros Bizjak <ubizjak@gmail.com>
6650
6651 * config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ
6652 and IX86_BUILTIN_HUGE_VALQ here ...
6653 (ix86_expand_builtin): ... not here.
6654
6655 2016-10-20 Jakub Jelinek <jakub@redhat.com>
6656
6657 * doc/gty.texi (for_user): Use @item next to @findex.
6658
6659 2016-10-20 Uros Bizjak <ubizjak@gmail.com>
6660
6661 PR target/78037
6662 * config/i386/bmiintrin.h (__tzcnt_u16): Call __builtin_ia32_tzcnt_u16.
6663 (__tzcnt_u32, _tzcnt_u32): Call __builtin_ia32_tzcnt_u32.
6664 (__tzcnt_u64, _tzcnt_u64): Call __builtin_ia32_tzcnt_u64.
6665 * config/i386/lzcntintrin.h (__lzcnt_u16): Call
6666 __builtin_ia32_lzcnt_u16.
6667 (__lzcnt_u32, _lzcnt_u32): Call __builtin_ia32_lzcnt_u32.
6668 (__lzcnt_u64, _lzcnt_u64): Call __builtin_ia32_lzcnt_u64.
6669 * config/i386/i386.md (UNSPEC_LZCNT, UNSPEC_TZCNT): New unspecs.
6670 (ctz<mode>2, *ctz<mode>2): Use SWI48 mode iterator.
6671 (bmi_tzcnt_<mode>): New expander.
6672 (*bmi_tzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
6673 (*bmi_tzcnt_<mode>_falsedep, *bmi_tzcnt_<mode>): New insn patterns.
6674 (clz<mode>2_lzcnt, *clz<mode>2_lzcnt): Use SWI48 mode iterator.
6675 (lzcnt_<mode>): New expander.
6676 (*lzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
6677 (*lzcnt_<mode>_falsedep, *lzcnt_<mode>): New insn patterns.
6678 * config/i386/i386-builtin-types.def (UINT_FTYPE_UINT): New.
6679 (UINT64_FTYPE_UINT64): New.
6680 * config/i386/i386-builtin.def (__builtin_clzs): Remove description.
6681 (__builtin_ia32_lzcnt_u16): New description.
6682 (__builtin_ia32_lzcnt_u32): Ditto.
6683 (__builtin_ia32_lzcnt_u64): Ditto.
6684 (__builtin_ctzs): Remove description.
6685 (__builtin_ia32_tzcnt_u16): New description.
6686 (__builtin_ia32_tzcnt_u32): Ditto.
6687 (__builtin_ia32_tzcnt_u64): Ditto.
6688 * config/i386/i386.c (ix86_expand_args_builtin): Handle
6689 UINT_FTYPE_UINT and UINT64_FTYPE_UINT64.
6690
6691 2016-10-20 Martin Liska <mliska@suse.cz>
6692
6693 PR lto/78049
6694 * lto-streamer-in.c (fixup_call_stmt_edges_1): Replace value
6695 comparison with STMT_UID_NOT_IN_RANGE.
6696 (fixup_call_stmt_edges): Do not fixup edges of a thunk in
6697 LTRANS.
6698
6699 2016-10-20 Eric Botcazou <ebotcazou@adacore.com>
6700
6701 * compare-elim.c (conforming_compare): Accept UNSPECs.
6702 (find_comparison_dom_walker::before_dom_children): Deal with
6703 instructions both using and killing the flags register.
6704 (equivalent_reg_at_start): New function extracted from...
6705 (try_eliminate_compare): ...here. Use it and add support for
6706 registers and UNSPECs as second operand of the compare.
6707 * config/visium/visium-modes.def (CCV): New.
6708 * config/visium/predicates.md (visium_v_comparison_operator): New.
6709 (visium_branch_operator): Deal with CCV mode.
6710 * config/visium/visium.c (visium_select_cc_mode): Likewise.
6711 (output_cbranch): Likewise.
6712 * config/visium/visium.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
6713 (uaddv<mode>4): New expander.
6714 (addv<mode>4): Likewise.
6715 (add<mode>3_insn_set_carry): New instruction.
6716 (add<mode>3_insn_set_overflow): Likewise.
6717 (addsi3_insn_set_overflow): Likewise.
6718 (usubv<mode>4): New expander.
6719 (subv<mode>4): Likewise.
6720 (sub<mode>3_insn_set_carry): New instruction.
6721 (sub<mode>3_insn_set_overflow): Likewise.
6722 (subsi3_insn_set_overflow): Likewise.
6723 (unegv<mode>3): New expander.
6724 (negv<mode>3): Likewise.
6725 (neg<mode>2_insn_set_overflow): New instruction.
6726 (addv_tst<mode>): Likewise.
6727 (subv_tst<mode>): Likewise.
6728 (negv_tst<mode>): Likewise.
6729 (cbranch<mode>4_addv_insn): New splitter and instruction.
6730 (cbranch<mode>4_subv_insn): Likewise.
6731 (cbranch<mode>4_negv_insn): Likewise.
6732
6733 2016-10-20 Richard Biener <rguenther@suse.de>
6734
6735 * tree-ssa-alias.c (ptrs_compare_unequal): Remove code duplication.
6736 Handle decls possibly not bound.
6737 * tree-ssa-structalias.c (get_constraint_for_ssa_var): Add
6738 nothing_id for decls that might not be bound if we are interested
6739 for the address.
6740 (get_constraint_for_component_ref): Deal with that.
6741
6742 2016-10-20 Michael Matz <matz@suse.de>
6743
6744 Loop splitting.
6745 * common.opt (-fsplit-loops): New flag.
6746 * passes.def (pass_loop_split): Add.
6747 * opts.c (default_options_table): Add OPT_fsplit_loops entry at -O3.
6748 (enable_fdo_optimizations): Add loop splitting.
6749 * timevar.def (TV_LOOP_SPLIT): Add.
6750 * tree-pass.h (make_pass_loop_split): Declare.
6751 * tree-ssa-loop-manip.h (rewrite_into_loop_closed_ssa_1): Declare.
6752 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h,
6753 * tree-ssa-loop-split.c: New file.
6754 * Makefile.in (OBJS): Add tree-ssa-loop-split.o.
6755 * doc/invoke.texi (fsplit-loops): Document.
6756 * doc/passes.texi (Loop optimization): Add paragraph about loop
6757 splitting.
6758
6759 2016-10-20 Richard Biener <rguenther@suse.de>
6760
6761 * cgraphunit.c (analyze_functions): Set node->definition to
6762 false to signal symbol removal to debug_hooks->late_global_decl.
6763 * ipa.c (symbol_table::remove_unreachable_nodes): When not in
6764 WPA signal symbol removal to the debuginfo machinery.
6765 * dwarf2out.c (dwarf2out_late_global_decl): Instead of
6766 using early_finised to guard the we're called for symbol
6767 removal case look at the symtabs definition flag.
6768 (gen_variable_die): Remove redundant check.
6769
6770 2016-10-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6771
6772 * config/s390/s390.md ("prefetch"): Add fallthrough comment.
6773
6774 2016-10-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6775
6776 PR tree-optimization/53979
6777 * match.pd ((a ^ b) | a -> a | b): New pattern.
6778
6779 2016-10-19 John David Anglin <danglin@gcc.gnu.org>
6780
6781 * config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to
6782 config/pa/pa64-hpux-lib.h.
6783 (PA_CRTBEGIN_HACK): Likewise.
6784 (DTOR_LIST_BEGIN): Likewise.
6785
6786 2016-10-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
6787
6788 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
6789 register only if "in" and "out" are different registers.
6790
6791 2016-10-19 Eric Botcazou <ebotcazou@adacore.com>
6792
6793 * omp-low.c (pass_oacc_device_lower::gate): New method.
6794 (execute): Always call execute_oacc_device_lower.
6795
6796 2016-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6797
6798 PR tree-optimization/77916
6799 PR tree-optimization/77937
6800 * gimple-ssa-strength-reduction.c (analyze_increments): Remove
6801 stopgap fix.
6802 (insert_initializers): Requirement of initializer for -1 should be
6803 based on pointer-typedness of the candidate basis.
6804
6805 2016-10-19 Bin Cheng <bin.cheng@arm.com>
6806
6807 PR tree-optimization/78005
6808 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Compute
6809 upper (included) bound for niters of prolog loop.
6810 (vect_gen_scalar_loop_niters): Change parameter VF to VFM1.
6811 Compute niters of scalar loop above which vectorized loop is
6812 preferred, as well as the upper (included) bound for the niters.
6813 (vect_do_peeling): Record niter bound for loops accordingly.
6814
6815 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
6816
6817 PR lto/77458
6818 * tree-core.h (enum tree_index): Put the complex types after their
6819 component types.
6820 * tree-streamer.c (verify_common_node_recorded): New function.
6821 (preload_common_nodes) <TREE_CODE (node) == COMPLEX_TYPE>: Use it.
6822
6823 2016-10-19 Martin Liska <mliska@suse.cz>
6824
6825 * cgraph.h (cgraph_edge::binds_to_current_def_p):
6826 Replace NULL with false as a return value.
6827
6828 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
6829
6830 PR tree-optimization/78024
6831 * omp-low.c (oacc_loop_discovery): Call clear_bb_flags before, and
6832 don't clear BB_VISITED after processing.
6833
6834 2016-10-19 Richard Biener <rguenther@suse.de>
6835
6836 * domwalk.c (dom_walker::walk): Use RPO order.
6837
6838 2016-10-19 Richard Biener <rguenther@suse.de>
6839
6840 * tree-vrp.c (evrp_dom_walker::evrp_dom_walker): Initialize
6841 stmts_to_remove.
6842 (evrp_dom_walker::~evrp_dom_walker): Free it.
6843 (evrp_dom_walker::stmts_to_remove): Add.
6844 (evrp_dom_walker::before_dom_children): Mark PHIs and stmts
6845 whose output we fully propagate for removal. Propagate
6846 into BB destination PHI arguments.
6847 (execute_early_vrp): Remove queued stmts. Dump value ranges
6848 before stmt removal.
6849
6850 2016-10-18 Aldy Hernandez <aldyh@redhat.com>
6851
6852 * Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o.
6853 * passes.def: Add two instances of pass_walloca.
6854 * tree-pass.h (make_pass_walloca): New.
6855 * gimple-ssa-warn-alloca.c: New file.
6856 * doc/invoke.texi: Document -Walloca, -Walloca-larger-than=, and
6857 -Wvla-larger-than= options.
6858
6859 2016-10-18 Thomas Schwinge <thomas@codesourcery.com>
6860
6861 * cfg.c (clear_bb_flags): Use FOR_ALL_BB_FN.
6862 * config/nvptx/nvptx.c (nvptx_find_sese): Likewise.
6863
6864 2016-10-18 Kelvin Nilsen <kelvin@gcc.gnu.org>
6865
6866 * config/rs6000/altivec.h (vec_xl_len): New macro.
6867 (vec_xst_len): New macro.
6868 (vec_cmpnez): New macro.
6869 (vec_cntlz_lsbb): New macro.
6870 (vec_cnttz_lsbb): New macro.
6871 (vec_xlx): New macro.
6872 (vec_xrx): New macro.
6873 (vec_all_nez): New C++ predicate template.
6874 (vec_any_eqz): New C++ predicate template.
6875 (vec_all_ne): Revised C++ predicate template under _ARCH_PWR9
6876 conditional compilation.
6877 (vec_any_eq): Revised C++ predicate template under _ARCH_PWR9
6878 conditional compilation.
6879 (vec_all_nez): New macro.
6880 (vec_any_eqz): New macro.
6881 (vec_all_ne): Revised macro under _ARCH_PWR9 conditional
6882 compilation.
6883 (vec_any_eq): Revised macro under _ARCH_PWR9 conditional
6884 compilation.
6885 * config/rs6000/vector.md (VI): Moved this mode iterator
6886 definition from altivec.md to vector.md.
6887 (UNSPEC_NEZ_P): New value.
6888 (vector_ne_<mode>_p): New expansion for implementation of
6889 vec_all_ne and vec_any_eq built-in functions.
6890 (vector_nez_<mode>_p): New expansion for implementation of
6891 vec_all_nez and vec_any_eqz built-in functions.
6892 (vector_ne_v2di_p): New expansion for implementation of vec_all_ne
6893 and vec_any_eq built-in function.
6894 (cr6_test_for_zero): New commentary to explain this expansion.
6895 (cr6_test_for_zero_reverse): New commentary to explain this expansion.
6896 (cr6_test_for_lt): New commentary to explain this expansion.
6897 (cr6_test_for_lt_reverse): New commentary to explain this
6898 expansion.
6899 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6900 overloaded function prototypes for vec_all_ne, vec_all_nez,
6901 vec_any_eq, vec_any_eqz, vec_cmpnez, vec_cntlz_lsbb,
6902 vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, and vec_xrx
6903 built-in functions.
6904 (altivec_resolve_overloaded_builtin): Modify the handling of
6905 ALTIVEC_BUILTIN_VEC_CMPNE to use the Power9 instructions when
6906 the compiler is configured to support TARGET_P9_VECTOR.
6907 * config/rs6000/rs6000-builtin.def (BU_ALTIVEC_P): Add commentary
6908 to explain the special processing that is given to predicate
6909 built-ins introduced using this macro.
6910 (BU_ALTIVEC_OVERLOAD_P): Add commentary to alert maintainers to
6911 the special processing given to predicate built-ins introduced
6912 using this macro.
6913 (BU_VSX_P): Likewise.
6914 (BU_P8V_AV_P): Likewise.
6915 (BU_P9V_AV_P): Likewise.
6916 (BU_P9V_AV_X): New macro.
6917 (BU_P9V_64BIT_AV_X): New macro.
6918 (BU_P9V_VSX_3): New macro.
6919 (BU_P9V_OVERLOAD_P): New macro.
6920 (LXVL): New BU_P9V_64BIT_VSX_2.
6921 (VEXTUBLX): New BU_P9V_AV_2.
6922 (VEXTUBRX): Likewise.
6923 (VEXTUHLX): Likewise.
6924 (VEXTUHRX): Likewise.
6925 (VEXTUWLX): Likewise.
6926 (VEXTUWRX): Likewise.
6927 (STXVL): New BU_P9V_64BIT_AV_X.
6928 (VCLZLSBB): New BU_P9V_AV_1.
6929 (VCTZLSBB): Likewise.
6930 (CMPNEB): New BU_P9V_AV_2.
6931 (CMPNEH): Likewise.
6932 (CMPNEW): Likewise.
6933 (CMPNEF): Likewise.
6934 (CMPNED): Likewise.
6935 (VCMPNEB_P): New BU_P9V_AV_P.
6936 (VCMPNEH_P): Likewise.
6937 (VCMPNEW_P): Likewise.
6938 (VCMPNED_P): Likewise.
6939 (VCMPNEFP_P): Likewise.
6940 (VCMPNEDP_P): Likewise.
6941 (CMPNEZB): New BU_P9V_AV_2.
6942 (CMPNEZH): Likewise.
6943 (CMPNEZW): Likewise.
6944 (VCMPNEZB_P): New BU_P9V_AV_P.
6945 (VCMPNEZH_P): Likewise.
6946 (VCMPNEZW_P): Likewise.
6947 (LXVL): New BU_P9V_OVERLOAD_2.
6948 (STXVL): New BU_P9V_OVERLOAD_3.
6949 (VEXTULX): New BU_P9V_OVERLOAD_2.
6950 (VEXTURX): Likewise.
6951 (CMPNEZ): Likewise.
6952 (VCMPNEZ_P): New BU_P9V_OVERLOAD_P.
6953 (VCMPNE_P): Likewise.
6954 (VCLZLSBB): New BU_P9V_OVERLOAD_1.
6955 (VCTZLSBB): Likewise.
6956 * config/rs6000/rs6000.c (altivec_expand_predicate_builtin): Add
6957 comment to explain mode used for scratch register.
6958 (altivec_expand_stxvl_builtin): New function.
6959 (altivec_expand_builtin): Add case for new constant P9V_BUILTIN_STXVL.
6960 (altivec_init_builtins): Add initialized variable
6961 void_ftype_v16qi_pvoid_long and use this type to define the
6962 built-in function __builtin_altivec_stxvl.
6963 * config/rs6000/vsx.md (UNSPEC_LXVL): New value.
6964 (UNSPEC_STXVL): New value.
6965 (UNSPEC_VCLZLSBB): New value.
6966 (UNSPEC_VCTZLSBB): New value.
6967 (UNSPEC_VEXTUBLX): New value.
6968 (UNSPEC_VEXTUHLX): New value.
6969 (UNSPEC_VEXTUWLX): New value.
6970 (UNSPEC_VEXTUBRX): New value.
6971 (UNSPEC_VEXTUHRX): New value.
6972 (UNSPEC_VEXTUWRX): New value.
6973 (UNSPEC_VCMPNEB): New value.
6974 (UNSPEC_VCMPNEZB): New value.
6975 (UNSPEC_VCMPNEH): New value.
6976 (UNSPEC_VCMPNEZH): New value.
6977 (UNSPEC_VCMPNEW): New value.
6978 (UNSPEC_VCMPNEZW): New value.
6979 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
6980 vector of integer modes.
6981 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
6982 vector of float or double modes.
6983 (*vector_nez_<mode>_p): New insn for vector test all not equal or
6984 zero.
6985 (lxvl): New expand for load VSX vector with length.
6986 (*lxvl): New insn for load VSX vector with length.
6987 (stxvl): New expand for store VSX vector with length.
6988 (*stxvl): New insn for store VSX vector with length.
6989 (vcmpneb): New insn for vector of byte compare not equal.
6990 (vcmpnezb): New insn for vector of byte compare not equal or zero.
6991 (vcmpneh): New insn for vector of half word compare not equal.
6992 (vcmpnezh): New insn for vector of half word compare not equal or
6993 zero.
6994 (vcmpnew): New insn for vector of word compare not equal.
6995 (vcmpne<VSs>): New insn for vector of float or double compare not
6996 equal.
6997 (vcmpnezw): New insn for vector of word compare not equal or zero.
6998 (vclzlsbb): New insn for vector count leading zero
6999 least-significant bits byte.
7000 (vctzlsbb): New insn for vector count trailing zero least
7001 signficant bits byte.
7002 (vextublx): New insn for vector extract unsigned byte left
7003 indexed.
7004 (vextubrx): New insn for vector extract unsigned byte right
7005 indexed.
7006 (vextuhlx): New insn for vector extract unsigned half word left
7007 indexed.
7008 (vextuhrx): New insn for vector extract unsigned half word right
7009 indexed.
7010 (vextuwlx): New insn for vector extract unsigned word left
7011 indexed.
7012 (vextuwrx): New insn for vector extract unsigned word right
7013 indexed.
7014 * config/rs6000/rs6000.h (RS6000_BTC_CONST): Enhance comment to
7015 clarify intent of this constant.
7016 * config/rs6000/altivec.md (VI): Move this mode iterator to vsx.md.
7017 * doc/extend.texi (PowerPC Altivec Built-in Functions): Add
7018 documentation for vec_all_nez, vec_any_eqz, vec_cmpnez,
7019 vec_cntlz_lsbb, vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx,
7020 and vec_xrx functions.
7021
7022 2016-10-18 Andrew Pinski <apinski@cavium.com>
7023
7024 PR tree-opt/65950
7025 * predict.c (is_exit_with_zero_arg): New function.
7026 (tree_bb_level_predictions): Don't consider paths leading to exit(0)
7027 as nottaken.
7028
7029 2016-10-18 Uros Bizjak <ubizjak@gmail.com>
7030
7031 PR target/77991
7032 * config/i386/i386.c (legitimize_tls_address)
7033 <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
7034 convert dest to Pmode if different than Pmode.
7035
7036 2016-10-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7037
7038 PR tree-optimization/77916
7039 * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate
7040 stopgap fix, as pointers with -1 increment are still broken.
7041
7042 2016-10-18 David Edelsohn <dje.gcc@gmail.com>
7043
7044 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Move storage
7045 mapping class decoration from here...
7046 (rs6000_xcoff_encode_section): ...to here.
7047
7048 (rs6000_savres_strategy) [AIX,ELFv2]: Inline FPR save and restore
7049 if shrink-wrapping and optimizing for speed.
7050
7051 2016-10-18 Richard Biener <rguenther@suse.de>
7052
7053 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
7054 not visited but non-executable predecessors. Return taken edge.
7055 Simplify conditions and refactor propagation vs. folding step.
7056
7057 2016-10-18 Segher Boessenkool <segher@kernel.crashing.org>
7058
7059 * config/rs6000/rs6000.c (rs6000_savres_strategy): Do not select
7060 {SAVE,REST}_MULTIPLE if shrink-wrapping separate components.
7061 (rs6000_get_separate_components): Assert we do not have those
7062 strategies selected.
7063
7064 2016-10-18 Richard Biener <rguenther@suse.de>
7065
7066 * tree-ssa-propagate.h (substitute_and_fold): Adjust prototype.
7067 * tree-ssa-propagate.c (ssa_prop_fini): Remove final BB_VISITED
7068 clearing.
7069 (substitute_and_fold_dom_walker): Adjust constructor.
7070 (substitute_and_fold_dom_walker::before_dom_children): Remove
7071 do_dce flag and handling (always true).
7072 (substitute_and_fold): Likewise.
7073 * tree-vrp.c (vrp_finalize): Adjust.
7074 (execute_early_vrp): Remove final BB_VISITED clearing.
7075 * tree-ssa-ccp.c (ccp_finalize): Adjust.
7076 * tree-ssa-copy.c (fini_copy_prop): Likewise.
7077 * ira.c (ira): Call clear_bb_flags.
7078
7079 2016-10-18 Richard Biener <rguenther@suse.de>
7080
7081 * genmatch.c (dt_operand::gen_gimple_expr): Use get_name to
7082 get at the operand to look at with TREE_OPERAND for generic
7083 sub-nodes.
7084
7085 2016-10-18 David Malcolm <dmalcolm@redhat.com>
7086
7087 * genattrtab.c (attr_string): Use rtx_reader_ptr for call to
7088 copy_md_ptr_loc.
7089 (gen_attr): Use rtx_reader_ptr for lookup_enum_type call.
7090 (write_test_expr): Use rtx_reader_ptr for calls to
7091 fprint_c_condition.
7092 (write_attr_value): Likewise.
7093 * genconditions.c (write_one_condition): Use rtx_reader_ptr for
7094 call to print_md_ptr_loc.
7095 (write_one_condition): Likewise for calls to print_c_condition.
7096 * genconstants.c: Include "statistics.h" and "vec.h".
7097 (main): Update for conversion to member functions.
7098 * genemit.c (emit_c_code): Use rtx_reader_ptr for
7099 call to print_md_ptr_loc.
7100 * genenums.c: Include "statistics.h" and "vec.h".
7101 (main): Update for conversion of traverse_enum_types to a method.
7102 * genmddeps.c: Include "statistics.h" and "vec.h".
7103 * genoutput.c (process_template): Use rtx_reader_ptr for call to
7104 print_md_ptr_loc.
7105 * genpreds.c (write_predicate_subfunction): Likewise.
7106 (write_predicate_expr): Likewise for calls to print_c_condition.
7107 * genrecog.c (print_test): Likewise.
7108 * gensupport.c (process_rtx): Likewise for calls to
7109 copy_md_ptr_loc and join_c_conditions.
7110 (alter_test_for_insn): Likewise for call to join_c_conditions.
7111 (process_substs_on_one_elem): Likewise.
7112 (gen_mnemonic_setattr): Update for move of string_obstack to a
7113 field of rtx_reader.
7114 (mnemonic_htab_callback): Likewise. Fix formatting.
7115 (gen_mnemonic_attr): Likewise.
7116 * gentarget-def.c (def_target_insn): Use rtx_reader_ptr for calls
7117 to print_c_condition.
7118 * read-md.c: Include "statistics.h" and "vec.h".
7119 (string_obstack): Convert this global to field "m_string_obstack"
7120 of class rtx_reader.
7121 (ptr_locs): Likewise, as "m_ptr_locs".
7122 (ptr_loc_obstack): Likewise, as "m_ptr_loc_obstack".
7123 (joined_conditions): Likewise, as "m_joined_conditions".
7124 (joined_conditions_obstack): Likewise, as "m_joined_conditions_obstack".
7125 (md_constants): Likewise, as "m_md_constants".
7126 (enum_types): Likewise, as "m_enum_types".
7127 (set_md_ptr_loc): Convert to...
7128 (rtx_reader::set_md_ptr_loc): ...member function.
7129 (get_md_ptr_loc): Convert to...
7130 (rtx_reader::get_md_ptr_loc): ...member function.
7131 (copy_md_ptr_loc): Convert to...
7132 (rtx_reader::copy_md_ptr_loc): ...member function.
7133 (fprint_md_ptr_loc): Convert to...
7134 (rtx_reader::fprint_md_ptr_loc): ...member function.
7135 (print_md_ptr_loc): Convert to...
7136 (rtx_reader::print_md_ptr_loc): ...member function.
7137 (join_c_conditions): Convert to...
7138 (rtx_reader::join_c_conditions): ...member function.
7139 (fprint_c_condition): Convert to...
7140 (rtx_reader::fprint_c_condition): ...member function.
7141 (print_c_condition): Convert to...
7142 (rtx_reader::print_c_condition): ...member function.
7143 (read_name): Convert to...
7144 (rtx_reader::read_name): ...member function.
7145 (read_escape): Convert to...
7146 (rtx_reader::read_escape): ...member function.
7147 (read_quoted_string): Convert to...
7148 (rtx_reader::read_quoted_string): ...member function.
7149 (read_braced_string): Convert to...
7150 (rtx_reader::read_braced_string): ...member function.
7151 (read_string): Convert to...
7152 (rtx_reader::read_string): ...member function.
7153 (read_skip_construct): Convert to...
7154 (rtx_reader::read_skip_construct): ...member function.
7155 (handle_constants): Convert to...
7156 (rtx_reader::handle_constants): ...member function.
7157 (traverse_md_constants): Convert to...
7158 (rtx_reader::traverse_md_constants): ...member function.
7159 (handle_enum): Convert to...
7160 (rtx_reader::handle_enum): ...member function.
7161 (lookup_enum_type): Convert to...
7162 (rtx_reader::lookup_enum_type): ...member function.
7163 (traverse_enum_types): Convert to...
7164 (rtx_reader::traverse_enum_types): ...member function.
7165 (rtx_reader::rtx_reader): Move initializations
7166 of various former global data from rtx_reader::read_md_files to
7167 here, as fields, along with the call to unlock_std_streams.
7168 (rtx_reader::~rtx_reader): Clean up m_base_dir, and clean up
7169 the new fields.
7170 (rtx_reader::read_md_files): Move initializations of various
7171 global data from here to the ctor.
7172 * read-md.h (read_name): Convert to...
7173 (rtx_reader::read_name): ...member function.
7174 (rtx_reader::read_escape): New method decl.
7175 (read_quoted_string): Convert to...
7176 (rtx_reader::read_quoted_string): ...member function.
7177 (rtx_reader::read_braced_string): New method decl.
7178 (read_string): Convert to...
7179 (rtx_reader::read_string): ...member function.
7180 (rtx_reader::read_skip_construct): New method decl.
7181 (rtx_reader::set_md_ptr_loc): New method decl.
7182 (rtx_reader::get_md_ptr_loc): New method decl.
7183 (copy_md_ptr_loc): Convert to...
7184 (rtx_reader::copy_md_ptr_loc): ...member function.
7185 (fprint_md_ptr_loc): Convert to...
7186 (rtx_reader::fprint_md_ptr_loc): ...member function.
7187 (print_md_ptr_loc): Convert to...
7188 (rtx_reader::print_md_ptr_loc): ...member function.
7189 (rtx_reader::lookup_enum_type): New method decl.
7190 (rtx_reader::traverse_enum_types): New method decl.
7191 (rtx_reader::handle_constants): New method decl.
7192 (traverse_md_constants): Convert to...
7193 (rtx_reader::traverse_md_constants): ...member function.
7194 (rtx_reader::handle_enum): New method decl.
7195 (rtx_reader::join_c_conditions): New method decl.
7196 (fprint_c_condition): Convert to...
7197 (rtx_reader::fprint_c_condition): ...member function.
7198 (print_c_condition): Convert to...
7199 (rtx_reader::print_c_condition): ...member function.
7200 (rtx_reader::apply_iterator_to_string): New method decl.
7201 (rtx_reader::copy_rtx_for_iterators): New method decl.
7202 (rtx_reader::read_conditions): New method decl.
7203 (rtx_reader::record_potential_iterator_use): New method decl.
7204 (rtx_reader::read_mapping): New method decl.
7205 (rtx_reader::read_rtx): New method decl.
7206 (rtx_reader::read_rtx_code): New method decl.
7207 (rtx_reader::read_rtx_operand): New method decl.
7208 (rtx_reader::read_nested_rtx): New method decl.
7209 (rtx_reader::read_rtx_variadic): New method decl.
7210 (rtx_reader::get_string_obstack): New method.
7211 (rtx_reader::get_md_constants): New method.
7212 (string_obstack): Convert global variable decl to...
7213 (rtx_reader::m_string_obstack): ...this new field.
7214 (rtx_reader::m_ptr_locs): New field.
7215 (rtx_reader::m_ptr_loc_obstack): New field.
7216 (rtx_reader::m_joined_conditions): New field.
7217 (rtx_reader::m_joined_conditions_obstack): New field.
7218 (rtx_reader::m_md_constants): New field.
7219 (rtx_reader::m_enum_types): New field.
7220 * read-rtl.c (apply_iterator_to_string): Convert to...
7221 (rtx_reader::apply_iterator_to_string): ...member function.
7222 (copy_rtx_for_iterators): Convert to...
7223 (rtx_reader::copy_rtx_for_iterators): ...member function.
7224 (add_condition_to_string): Use rtx_reader_ptr for
7225 calls join_c_conditions.
7226 (apply_iterators): Use rtx_reader_ptr for calls to
7227 join_c_conditions and copy_rtx_for_iterators.
7228 (read_conditions): Convert to...
7229 (rtx_reader::read_conditions): ...member function.
7230 (record_potential_iterator_use): Convert to...
7231 (rtx_reader::record_potential_iterator_use): ...member function.
7232 (read_mapping): Convert to...
7233 (rtx_reader::read_mapping): ...member function.
7234 (read_subst_mapping): Use rtx_reader_ptr for read_string call.
7235 (read_rtx): Convert to...
7236 (rtx_reader::read_rtx): ...member function.
7237 (read_rtx_code): Convert to...
7238 (rtx_reader::read_rtx_code): ...member function.
7239 (read_rtx_operand): Convert to...
7240 (rtx_reader::read_rtx_operand): ...member function. Update for move
7241 of string_obstack to a field.
7242 (read_nested_rtx): Convert to..
7243 (rtx_reader::read_nested_rtx): ...member function.
7244 (read_rtx_variadic): Convert to..
7245 (rtx_reader::read_rtx_variadic): ...member function.
7246
7247 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
7248
7249 * tree-vrp.c (get_value_range): Check get_ptr_nonnull.
7250
7251 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
7252
7253 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Set value range
7254 for pointer type too.
7255 (ipcp_update_vr): set_ptr_nonnull for pointer.
7256
7257 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
7258
7259 * tree-ssa-alias.h (pt_solution_singleton_or_null_p): Renamed from
7260 pt_solution_singleton_p.
7261 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use renamed
7262 pt_solution_singleton_or_null_p from pt_solution_singleton_p.
7263 * tree-ssa-structalias.c (find_what_p_points_to): Preserve
7264 pointer nonnull computed by VRP.
7265 Also Conservatively set pt.null to 1.
7266 (pt_solution_reset): Conservatively set pt.null to 1.
7267 (pt_solution_singleton_or_null_p): Renamed from
7268 pt_solution_singleton_p.
7269 * tree-ssanames.h (set_ptr_nonnull): Declare.
7270 (get_ptr_nonnull): Likewise.
7271 * tree-ssanames.c (set_ptr_nonnull): New.
7272 (get_ptr_nonnull): Likewise.
7273 * tree-vrp.c (vrp_finalize): Set ptr that are nonnull.
7274 (evrp_dom_walker::before_dom_children): Likewise.
7275
7276 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
7277
7278 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
7279 * config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
7280 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
7281 * config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
7282 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to.
7283 * config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
7284 (rs6000_option_override_internal): Clear it if ABI_AIX.
7285 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
7286 * config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here.
7287
7288 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7289
7290 * gimple-ssa-strength-reduction.c (record_increment): Remove
7291 garbage comment.
7292
7293 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
7294
7295 * expmed.c (expand_shift_1): Add MAY_FAIL parameter and do not assert
7296 that the result is non-zero if it is true.
7297 (maybe_expand_shift): New wrapper around expand_shift_1.
7298 (emit_store_flag): Call maybe_expand_shift in lieu of expand_shift.
7299
7300 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7301
7302 PR tree-optimization/77916
7303 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
7304 Don't allow a MINUS_EXPR for pointer arithmetic for either known
7305 or unknown strides.
7306 (record_increment): Increments of -1 for unknown strides just use
7307 a multiply initializer like other negative values.
7308 (analyze_increments): Remove stopgap solution for -1 increment
7309 applied to pointer arithmetic.
7310
7311 2016-10-17 Yuri Rumyantsev <ysrumyan@gmail.com>
7312
7313 * dominance.c (dom_info::dom_info): Add new constructor for region
7314 which is vector of basic blocks.
7315 (dom_init): New method to initialize members common for both
7316 constructors.
7317 (dom_info::dom_info): Invoke dom_init for partial initialization.
7318 (dom_info::get_idom): Add check to corner cases on basic blocks which
7319 are not in region.
7320 (dom_info::calc_dfs_tree): Check M_FAKE_EXIT_EDGE instead of M_REVERSE
7321 to detect unreachable bbs.
7322 (dom_info::calc_idoms): Likewise.
7323 (compute_dom_fast_query_in_region): New function.
7324 (calculate_dominance_info_for_region): Likewise.
7325 (free_dominance_info_for_region): Likewise.
7326 * dominance.h: Add prototypes for introduced region-based functions
7327 * tree-if-conv.c (build_region): New function.
7328 (if_convertible_loop_p_1): Invoke local version of post-dominators
7329 calculation before basic block predication with subsequent freeing
7330 post-dominator info.
7331 (tree_if_conversion): Remove free of post-dominator info
7332 (pass_if_conversion::execute): Delete detection of infinite loops
7333 and fake edges to exit block since post-dominator calculation is
7334 performed per if-converted loop only.
7335
7336 2016-10-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
7337
7338 PR target/77308
7339 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
7340 register explicitly.
7341 * config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Don't FAIL if
7342 optimizing for size.
7343
7344 2016-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7345
7346 * config/aarch64/aarch64.c: Delete inclusion of
7347 cortex-a57-fma-steering.h.
7348 (aarch64_override_options): Delete call
7349 to aarch64_register_fma_steering.
7350 * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare.
7351 * config/aarch64/cortex-a57-fma-steering.h: Delete.
7352 * config/aarch64/aarch64-passes.def: New file.
7353 * config/aarch64/cortex-a57-fma-steering.c
7354 (aarch64_register_fma_steering): Delete definition.
7355 (make_pass_fma_steering): Remove static qualifier.
7356 * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive.
7357 (cortex-a57-fma-steering.o): Remove dependency on
7358 cortex-a57-fma-steering.h.
7359
7360 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
7361
7362 * explow.c (validize_mem): Do not modify the argument in-place.
7363
7364 2016-10-17 Thomas Schwinge <thomas@codesourcery.com>
7365
7366 * tree-streamer.c (record_common_node): Explicitly list expected
7367 tree codes.
7368
7369 2016-10-17 Richard Biener <rguenther@suse.de>
7370
7371 PR tree-optimization/77988
7372 * tree-vrp.c (remove_range_assertions): Use replace_uses_by.
7373
7374 2016-10-17 Marek Polacek <polacek@redhat.com>
7375
7376 * Makefile.in (C_COMMON_OBJS): Add c-family/c-attribs.o.
7377
7378 2016-10-17 Richard Biener <rguenther@suse.de>
7379
7380 * bb-reorder.c (reorder_basic_blocks_simple): Clear BB_VISITED
7381 before using it.
7382
7383 2016-10-17 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7384
7385 PR tree-optimization/71636
7386 * match.pd (x & ((1 << b) - 1) -> x & ~(~0 << b)): New pattern.
7387
7388 2016-10-17 Richard Biener <rguenther@suse.de>
7389
7390 * gimplify.c (gimplify_function_tree): Do not move the outer
7391 binds block.
7392
7393 2016-10-17 Jakub Jelinek <jakub@redhat.com>
7394
7395 * langhooks.h (struct lang_hooks_for_decls): Remove
7396 function_decl_explicit_p, function_decl_deleted_p and
7397 function_decl_defaulted hooks. Add decl_dwarf_attribute hook.
7398 * langhooks-def.h (lhd_decl_dwarf_attribute): Declare.
7399 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
7400 LANG_HOOKS_FUNCTION_DECL_DELETED_P,
7401 LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Remove.
7402 (LANG_HOOKS_DECL_DWARF_ATTRIBUTE): Define.
7403 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
7404 LANG_HOOKS_FUNCTION_DECL_DELETED_P and
7405 LANG_HOOKS_FUNCTION_DECL_DEFAULTED. Add
7406 LANG_HOOKS_DECL_DWARF_ATTRIBUTE.
7407 * langhooks.c (lhd_decl_dwarf_attribute): New function.
7408 * dwarf2out.c (gen_subprogram_die): Use
7409 lang_hooks.decls.decl_dwarf_attribute instead of
7410 lang_hooks.decls.function_decl_*.
7411
7412 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
7413
7414 PR ada/37139
7415 PR ada/67205
7416 * common.opt (-ftrampolines): New option.
7417 * doc/invoke.texi (Code Gen Options): Document it.
7418 * doc/tm.texi.in (Trampolines): Add TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
7419 * doc/tm.texi: Regenerate.
7420 * builtins.def: Add init_descriptor and adjust_descriptor.
7421 * builtins.c (expand_builtin_init_trampoline): Do not issue a warning
7422 on platforms with descriptors.
7423 (expand_builtin_init_descriptor): New function.
7424 (expand_builtin_adjust_descriptor): Likewise.
7425 (expand_builtin) <BUILT_IN_INIT_DESCRIPTOR>: New case.
7426 <BUILT_IN_ADJUST_DESCRIPTOR>: Likewise.
7427 * calls.c (prepare_call_address): Remove SIBCALLP parameter and add
7428 FLAGS parameter. Deal with indirect calls by descriptor and adjust.
7429 Set STATIC_CHAIN_REG_P on the static chain register, if any.
7430 (call_expr_flags): Set ECF_BY_DESCRIPTOR for calls by descriptor.
7431 (expand_call): Likewise. Move around call to prepare_call_address
7432 and pass all flags to it.
7433 * cfgexpand.c (expand_call_stmt): Reinstate CALL_EXPR_BY_DESCRIPTOR.
7434 * gimple.h (enum gf_mask): New GF_CALL_BY_DESCRIPTOR value.
7435 (gimple_call_set_by_descriptor): New setter.
7436 (gimple_call_by_descriptor_p): New getter.
7437 * gimple.c (gimple_build_call_from_tree): SetCALL_EXPR_BY_DESCRIPTOR.
7438 (gimple_call_flags): Deal with GF_CALL_BY_DESCRIPTOR.
7439 * langhooks.h (struct lang_hooks): Add custom_function_descriptors.
7440 * langhooks-def.h (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS): Define.
7441 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS.
7442 * rtl.h (STATIC_CHAIN_REG_P): New macro.
7443 * rtlanal.c (find_first_parameter_load): Skip static chain registers.
7444 * target.def (custom_function_descriptors): New POD hook.
7445 * tree.h (FUNC_ADDR_BY_DESCRIPTOR): New flag on ADDR_EXPR.
7446 (CALL_EXPR_BY_DESCRIPTOR): New flag on CALL_EXPR.
7447 * tree-core.h (ECF_BY_DESCRIPTOR): New mask.
7448 Document FUNC_ADDR_BY_DESCRIPTOR and CALL_EXPR_BY_DESCRIPTOR.
7449 * tree.c (make_node_stat) <tcc_declaration>: Use FUNCTION_ALIGNMENT.
7450 (build_common_builtin_nodes): Initialize init_descriptor and
7451 adjust_descriptor.
7452 * tree-nested.c: Include target.h.
7453 (struct nesting_info): Add 'any_descr_created' field.
7454 (get_descriptor_type): New function.
7455 (lookup_element_for_decl): New function extracted from...
7456 (create_field_for_decl): Likewise.
7457 (lookup_tramp_for_decl): ...here. Adjust.
7458 (lookup_descr_for_decl): New function.
7459 (convert_tramp_reference_op): Deal with descriptors.
7460 (build_init_call_stmt): New function extracted from...
7461 (finalize_nesting_tree_1): ...here. Adjust and deal with descriptors.
7462 * defaults.h (FUNCTION_ALIGNMENT): Define.
7463 (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY.
7464 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
7465 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
7466 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS):Likewise.
7467 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
7468
7469 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
7470
7471 * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
7472 constants in CONST_VECTORs.
7473
7474 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
7475
7476 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
7477 register as destination of bmask.
7478 (vector_init_bshuffle): Likewise.
7479 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
7480 (bmaskdi_vis): Enable only in 64-bit mode.
7481
7482 2016-10-15 Segher Boessenkool <segher@kernel.crashing.org>
7483
7484 * config/rs6000/rs6000.c (rs6000_get_separate_components): Do not
7485 make LR a separately shrink-wrapped component unless savres_strategy
7486 contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}. Do not wrap
7487 GPRs unless both {SAVE,REST}_INLINE_GPRS. Do not disallow all
7488 wrapping when not both {SAVE,REST}_INLINE_GPRS.
7489
7490 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
7491
7492 * optabs.c (expand_parity): Fix mode mismatch, add final conversion
7493 and keep looping on failure.
7494
7495 2016-10-14 David Malcolm <dmalcolm@redhat.com>
7496
7497 * print-rtl-function.c (print_edge): Omit "(flags)" when none are
7498 set.
7499 (print_rtx_function): Update example in comment for...
7500 * print-rtl.c (print_rtx_operand_code_r): In compact mode, print
7501 non-virtual pseudos with a '%' sigil followed by the regno, offset
7502 by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual
7503 pseudo is dumped as "%0".
7504
7505 2016-10-14 Jakub Jelinek <jakub@redhat.com>
7506
7507 PR middle-end/77959
7508 * expr.c (expand_expr_real_1) <case CONST_DECL>: For EXPAND_WRITE
7509 return a MEM.
7510
7511 2016-10-14 Eric Botcazou <ebotcazou@adacore.com>
7512
7513 * config/sparc/sparc-passes.def: New file.
7514 * config/sparc/t-sparc (PASSES_EXTRA): Add sparc-passes.def.
7515 * config/sparc/sparc-protos.h (make_pass_work_around_errata): New.
7516 * config/sparc/sparc.c (sparc_option_override): Don't register passes.
7517
7518 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
7519
7520 * loop-unroll.c (unroll_loop_runtime_iterations): Condition initial
7521 loop peel to loops with exit test at the beginning.
7522
7523 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
7524
7525 PR rtl-optimization/68212
7526 * cfgloopmanip.c (duplicate_loop_to_header_edge): Use preheader edge
7527 frequency when computing scale factor for peeled copies.
7528 * loop-unroll.c (unroll_loop_runtime_iterations): Fix freq/count
7529 values for switch/peel blocks/edges.
7530
7531 2016-10-14 Pedro Alves <palves@redhat.com>
7532
7533 * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h.
7534
7535 2016-10-14 Catherine Moore <clm@codesourcery.com>
7536
7537 * config/mips/mips.c (mips_prepare_pch_save): Initialize
7538 micromips_globals to zero.
7539
7540 2016-10-14 Richard Biener <rguenther@suse.de>
7541
7542 PR tree-optimization/77979
7543 * tree-vrp.c (compare_name_with_value): Handle released SSA names
7544 in the equivalency sets.
7545 (compare_names): Likewise.
7546
7547 2016-10-14 Martin Liska <mliska@suse.cz>
7548
7549 * builtins.h(target_char_cst_p): Declare the function.
7550 * builtins.c (fold_builtin_memchr): Remove.
7551 (target_char_cst_p): Move the function from gimple-fold.c.
7552 (fold_builtin_3): Do not call the function.
7553 * gimple-fold.c (gimple_fold_builtin_memchr): New function.
7554 (gimple_fold_builtin): Call the function.
7555 * fold-const-call.c (fold_const_call_1): Handle CFN_BUILT_IN_MEMCHR.
7556
7557 2016-10-14 Martin Liska <mliska@suse.cz>
7558
7559 * builtins.c (fold_builtin_strcmp): Remove function.
7560 (fold_builtin_strncmp): Likewise.
7561 (fold_builtin_2): Remove call of the function.
7562 (fold_builtin_3): Likewise.
7563 * fold-const-call.c (fold_const_call): Add constant folding
7564 for CFN_BUILT_IN_STRCASECMP and CFN_BUILT_IN_STRNCASECMP.
7565 * fold-const-call.h (build_cmp_result): Declare the function.
7566 * gimple-fold.c (gimple_load_first_char): New function.
7567 (gimple_fold_builtin_string_compare): Likewise.
7568 (gimple_fold_builtin): Call the function.
7569
7570 2016-10-14 Nathan Sidwell <nathan@acm.org>
7571
7572 * gcov-io.c (gcov_open): Deconstify 'mode'.
7573
7574 2016-10-14 Martin Liska <mliska@suse.cz>
7575
7576 * fold-const.c (c_getstr): Support of properly \0-terminated
7577 string constants. New argument is added.
7578 * fold-const.h: New argument is added.
7579
7580 2016-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7581
7582 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
7583 New function.
7584 (aarch64_print_hint_for_core): Likewise.
7585 (aarch64_print_hint_for_arch): Likewise.
7586 (aarch64_validate_march): Use it. Fix indentation in type signature.
7587 (aarch64_validate_mcpu): Use aarch64_print_hint_for_core_or_arch.
7588 (aarch64_validate_mtune): Likewise.
7589 (aarch64_handle_attr_arch): Likewise.
7590 (aarch64_handle_attr_cpu): Likewise.
7591 (aarch64_handle_attr_tune): Likewise.
7592
7593 2016-10-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7594
7595 * optabs.def: Remove optab function gen_int_libfunc for sdivmod_optab
7596 and udivmod_optab.
7597
7598 2016-10-13 Andreas Schwab <schwab@linux-m68k.org>
7599
7600 * config/m68k/m68k.c (m68k_option_override): Check
7601 opt_fstack_limit_symbol_arg and opt_fstack_limit_register_no
7602 instead of stack_limit_rtx.
7603
7604 2016-10-13 Jakub Jelinek <jakub@redhat.com>
7605
7606 * dwarf2out.c (gen_member_die): Handle inline static data member
7607 definitions.
7608
7609 2016-10-13 Nathan Sidwell <nathan@acm.org>
7610
7611 * gcov-io.c (gcov_open): Fix documentation. Simplify setting
7612 gcov_var.mode. Remove unnecessary fstat.
7613
7614 2016-10-13 Segher Boessenkool <segher@kernel.crashing.org>
7615
7616 PR bootstrap/77962
7617 * function.c (thread_prologue_and_epilogue_insns): Call all
7618 make_*logue_seq in the same order as traditional. Call them
7619 all a second time if shrink_wrapped_separate.
7620
7621 2016-10-13 Marek Polacek <polacek@redhat.com>
7622
7623 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
7624 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Don't
7625 use -Wno-error.
7626
7627 2016-10-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7628
7629 PR tree-optimization/77937
7630 * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
7631 to infinite when we have a pointer with an increment of -1.
7632
7633 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
7634
7635 * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
7636 into ...
7637 * memmodel.h: This file.
7638 * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
7639 caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
7640 cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
7641 combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
7642 common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
7643 common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
7644 common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
7645 compare-elim.c, config/aarch64/aarch64-builtins.c,
7646 config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
7647 config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
7648 config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
7649 config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
7650 config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
7651 config/darwin.c, config/epiphany/epiphany.c,
7652 config/epiphany/mode-switch-use.c,
7653 config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
7654 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
7655 config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
7656 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
7657 config/m68k/m68k.c, config/mcore/mcore.c,
7658 config/microblaze/microblaze.c, config/mmix/mmix.c,
7659 config/mn10300/mn10300.c, config/moxie/moxie.c,
7660 config/msp430/msp430.c, config/nds32/nds32-cost.c,
7661 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
7662 config/nds32/nds32-memory-manipulation.c,
7663 config/nds32/nds32-predicates.c, config/nds32/nds32.c,
7664 config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
7665 config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
7666 config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
7667 config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
7668 config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
7669 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
7670 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
7671 config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
7672 coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
7673 df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
7674 dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
7675 expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
7676 ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
7677 ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
7678 ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
7679 loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
7680 lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
7681 lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
7682 lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
7683 postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
7684 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
7685 reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
7686 rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
7687 sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
7688 stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
7689 targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
7690 tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
7691 tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
7692 tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
7693 var-tracking.c, varasm.c: Include memmodel.h.
7694 * genattrtab.c (write_header): Include memmodel.h in generated file.
7695 * genautomata.c (main): Likewise.
7696 * gengtype.c (open_base_files): Likewise.
7697 * genopinit.c (main): Likewise.
7698 * genconditions.c (write_header): Include memmodel.h earlier in
7699 generated file.
7700 * genemit.c (main): Likewise.
7701 * genoutput.c (output_prologue): Likewise.
7702 * genpeep.c (main): Likewise.
7703 * genpreds.c (write_insn_preds_c): Likewise.
7704 * genrecog.c (write_header): Likewise.
7705 * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
7706
7707 2016-10-13 David Malcolm <dmalcolm@redhat.com>
7708
7709 * function-tests.c (selftest::test_expansion_to_rtl): Add "true"
7710 for new "compact" param of print_rtx_function. Check for "cinsn"
7711 rather than "insn".
7712 * print-rtl-function.c (flag_compact): New decl.
7713 (print_rtx_function): Add param "compact" and use it to set
7714 flag_compact, adding a description of the effect to the leading
7715 comment, and updating the example output.
7716 * print-rtl.c (flag_compact): New variable.
7717 (print_rtx_operand_code_0): Omit the JUMP_LABEL reference in compact
7718 mode.
7719 (print_rtx_operand_code_i): When printing source locations, wrap
7720 xloc.file in quotes. Don't print INSN_CODEs in compact mode.
7721 (print_rtx_operand_code_r): Don't print regnos for hard regs and
7722 virtuals in compact mode.
7723 (print_rtx_operand_code_u): Don't print insn UIDs in compact mode,
7724 apart from in LABEL_REFs.
7725 (print_rtx_operand): In case 'w', don't print in hex in compact mode.
7726 Don't print basic block ids in compact mode.
7727 (print_rtx): In compact mode, prefix the code of insns with "c",
7728 only print the INSN_UID of CODE_LABELs, and omit their LABEL_NUSES.
7729 * print-rtl.h (print_rtx_function): Add "compact" param.
7730
7731 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
7732
7733 * arm.h (TARGET_VFP): Delete.
7734 (TARGET_VFPD32): Remove references to TARGET_VFP.
7735 (TARGET_VFP3, TARGET_VFP5): Likewise.
7736 (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise.
7737 (TARGET_NEON_FP16): Likewise.
7738 (TARGET_FMA): Likewise.
7739 (TARGET_CRYPTO): Likewise.
7740 (TARGET_NEON): Likewise.
7741 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
7742 (FUNCTION_ARG_REGNO_P): Likewise.
7743 * arm.c (arm_option_check_internal): Likewise.
7744 (arm_option_override): Likewise.
7745 (use_return_insn): Likewise.
7746 (arm_function_value_regno_p): Likewise.
7747 (arm_apply_result_size): Likewise.
7748 (use_vfp_abi): Likewise.
7749 (arm_legitimate_address_outer_p): Likewise.
7750 (thumb2_legitimate_address_p): Likewise.
7751 (arm_legitimate_index_p): Likewise.
7752 (thumb2_legitimate_index_p): Likewise.
7753 (arm_legitimate_address): Likewise.
7754 (arm_get_vfp_saved_size): Likewise.
7755 (arm_emit_vfp_multi_reg_pop): Likewise.
7756 (arm_get_frame_offsets): Likewise.
7757 (arm_save_coproc_regs): Likewise.
7758 (arm_hard_regno_mode_ok): Likewise.
7759 (arm_expand_epilogue_apcs_frame): Likewise.
7760 (arm_expand_epilogue): Likewise.
7761 (arm_file_start): Likewise.
7762 (arm_conditional_register_usage): Likewise.
7763 (arm_validize_comparison): Use vfp_compare_operand directly.
7764 * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP.
7765 (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting
7766 unsupported usage.
7767 (arm_atomic_assign_expand_fenv): Likewise.
7768 * arm.md (divsf3): Likewise.
7769 (arm_negsi2): Likewise.
7770 (absdf2): Likewise.
7771 (arm_movdi): Likewise.
7772 (arm_movt): Likewise.
7773 (cbranchsf4): Change predicate to vfp_compare_operand.
7774 (cbranchdf4): Change predicate to vfp_compare_operand.
7775 (cstorehf4): Change predicate to vfp_compare_operand.
7776 (cstoresf4): Change predicate to vfp_compare_operand.
7777 (cstoredf4): Change predicate to vfp_compare_operand.
7778 (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP.
7779 (movhi_insn_arch4, movhi_bytes): Likewise.
7780 * constraints.md (Dt): Likewise.
7781 (Dp): Likewise.
7782 * iterators.md (SDF): Likewise.
7783 * predicates.md (arm_float_compare_operand): Delete.
7784 (const_double_vcvt_power_of_two_reciprocal): Remove references to
7785 TARGET_VFP.
7786 (const_double_vcvt_power_of_two): Likewise.
7787 * thumb2.md thumb2_movsi_insn): Likewise.
7788 * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise.
7789 (movhf_vfp): Likewise.
7790 (arm_movsi_vfp, thumb2_movsi_vfp): Likewise.
7791 (movdi_vfp, movdi_vfp_cortexa8): Likewise.
7792 (movsf_vfp, thumb2_movsf_vfp): Likewise.
7793 (movdf_vfp, thumb2_movdf_vfp): Likewise.
7794 (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise.
7795 (subsf3_vfp, divsf3_vfp): Likewise.
7796 (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise.
7797 (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise.
7798 (mulsf3negsfsubsf_vfp): Likewise.
7799 (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise.
7800 (floatunssisf2, sqrtsf2_vfp): Likewise.
7801 (movcc_vfp): Likewise.
7802 (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise.
7803 (cmpsf_vfp, cmpsf_trap_vfp): Likewise.
7804 (push_multi_vfp): Likewise.
7805 (set_fpscr, get_fpscr): Likewise.
7806 * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__.
7807
7808 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
7809
7810 * arm.h (TARGET_VFP): Unconditionally define to 1.
7811 (arm_fpu_desc): Remove 'model' field.
7812 (TARGET_FPU_MODEL): Delete.
7813 * arm.c (all_fpus): Don't initialize the model field.
7814 (arm_can_inline_p): Don't check the FPU model.
7815 * arm-fpus.def: Remove redundant model field from all FPU
7816 descriptions.
7817
7818 2016-10-13 Richard Biener <rguenther@suse.de>
7819
7820 PR middle-end/77826
7821 * genmatch.c (struct capture): Add value_match member.
7822 (commutate): Preserve value_match.
7823 (lower_opt_convert): Likewise.
7824 (lower_cond): Likewise.
7825 (replace_id): Likewise.
7826 (struct dt_operand): Add value_match member.
7827 (decision_tree::cmp_node): Compare it.
7828 (decision_tree::insert_operand): Honor it when finding and
7829 when appending a DT_MATCH.
7830 (dt_operand::gen_match_op): Generate a type check after
7831 operand_equal_p if ! value_match for both GENERIC and GIMPLE.
7832 (parser::get_internal_capture_id): New helper.
7833 (parser::finish_match_operand): New function lowering @@<id>.
7834 (parser::parse_capture): Parse @@<id> as value-match.
7835 (parser::parse_expr): Use get_internal_capture_id.
7836 (parser::parse_simplify): Call finish_match_operand.
7837 (walk_captures): New helper.
7838 * match.pd (X - (X / Y) * Y -> X % Y): Use value-matching instead
7839 of operand_equal_p.
7840 ((X /[ex] A) * A -> X): Likewise.
7841 ((X | Y) ^ X -> Y & ~ X): Handle constants properly by using
7842 convert[12] and value-matching.
7843 ((A | B) & (A | C) -> A | (B & C)): Likewise.
7844 ((X | Y) | Y -> X | Y): Likewise.
7845 ((X ^ Y) ^ Y -> X): Likewise.
7846 (A - (A & B) -> ~B & A): Likewise.
7847 ((T)(P + A) - (T)P -> (T) A): Likewise.
7848 ((T)P - (T)(P + A) -> -(T) A): Likewise.
7849 ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Likewise.
7850 * doc/match-and-simplify.texi: Amend capture section.
7851
7852 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
7853
7854 * config/arc/arc.md (umul_600): Remove predicated variant.
7855 (umul64_600): Likewise.
7856
7857 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
7858
7859 * config/arc/arc.h (INSN_LENGTH_ALIGNMENT): Change.
7860
7861 2016-10-13 Bin Cheng <bin.cheng@arm.com>
7862
7863 * tree-vect-loop.c (loop_niters_no_overflow): New func.
7864 (vect_transform_loop): Call loop_niters_no_overflow. Pass the
7865 no-overflow information to vect_do_peeling_for_loop_bound and
7866 vect_gen_vector_loop_niters.
7867
7868 2016-10-13 Bin Cheng <bin.cheng@arm.com>
7869
7870 * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only
7871 iterates 1 time.
7872
7873 2016-10-13 Bin Cheng <bin.cheng@arm.com>
7874
7875 * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release
7876 adjust_vec automatically.
7877 (slpeel_add_loop_guard): Remove param cond_expr_stmt_list. Rename
7878 param exit_bb to guard_to.
7879 (slpeel_checking_verify_cfg_after_peeling):
7880 (set_prologue_iterations):
7881 (create_lcssa_for_virtual_phi): New func which is factored out from
7882 slpeel_tree_peel_loop_to_edge.
7883 (slpeel_tree_peel_loop_to_edge):
7884 (iv_phi_p): New func.
7885 (vect_can_advance_ivs_p): Call iv_phi_p.
7886 (vect_update_ivs_after_vectorizer): Call iv_phi_p. Directly insert
7887 new gimple stmts in basic block.
7888 (vect_gen_niters_for_prolog_loop): Rename to...
7889 (vect_gen_prolog_loop_niters): ...Rename from. Change parameters and
7890 adjust implementation.
7891 (vect_update_inits_of_drs): Fix code style issue. Convert niters to
7892 sizetype if necessary.
7893 (vect_build_loop_niters): Move to here from tree-vect-loop.c. Change
7894 it to external function.
7895 (vect_gen_scalar_loop_niters, vect_gen_vector_loop_niters): New.
7896 (vect_gen_vector_loop_niters_mult_vf): New.
7897 (slpeel_update_phi_nodes_for_loops): New.
7898 (slpeel_update_phi_nodes_for_guard1): Reimplement.
7899 (find_guard_arg, slpeel_update_phi_nodes_for_guard2): Reimplement.
7900 (slpeel_update_phi_nodes_for_lcssa, vect_do_peeling): New.
7901 * tree-vect-loop.c (vect_build_loop_niters): Move to file
7902 tree-vect-loop-manip.c
7903 (vect_generate_tmps_on_preheader): Delete.
7904 (vect_transform_loop): Rename vectorization_factor to vf. Call
7905 vect_do_peeling instead of vect_do_peeling-* functions.
7906 * tree-vectorizer.h (vect_do_peeling): New decl.
7907 (vect_build_loop_niters, vect_gen_vector_loop_niters): New decls.
7908 (vect_do_peeling_for_loop_bound): Delete.
7909 (vect_do_peeling_for_alignment): Delete.
7910
7911 2016-10-13 Bin Cheng <bin.cheng@arm.com>
7912
7913 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Put
7914 duplicated loop after its preheader and after the original loop.
7915
7916 2016-10-13 Bin Cheng <bin.cheng@arm.com>
7917
7918 * tree-vect-loop.c (vect_analyze_loop_2): Check and skip loop if it
7919 has no enough iterations for LOOP_VINFO_PEELING_FOR_GAPS.
7920
7921 2016-10-13 Bin Cheng <bin.cheng@arm.com>
7922
7923 * tree-vect-loop.c (vectorizable_live_operation): Support handling
7924 for live variable outside loop but not in lcssa form.
7925
7926 2016-10-13 Bin Cheng <bin.cheng@arm.com>
7927
7928 * cfg.c (reset_original_copy_tables): New func.
7929 * cfg.h (reset_original_copy_tables): New decl.
7930
7931 2016-10-13 Jakub Jelinek <jakub@redhat.com>
7932
7933 PR c/77946
7934 * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of
7935 public_flag.
7936 * varasm.c (default_binds_local_p_3): Formatting fix.
7937
7938 2016-10-13 Bin Cheng <bin.cheng@arm.com>
7939
7940 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code
7941 style issue.
7942 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
7943 Remove useless code.
7944
7945 2016-10-13 Martin Liska <mliska@suse.cz>
7946
7947 PR tree-optimization/77943
7948 * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
7949 a different EH landing pads.
7950
7951 2016-10-13 Jakub Jelinek <jakub@redhat.com>
7952
7953 PR target/77957
7954 * hooks.h (hook_tree_void_null): Declare.
7955 * hooks.c (hook_tree_void_null): New function.
7956 * langhooks.c (lhd_return_null_tree_v): Remove.
7957 * langhooks-def.h (lhd_return_null_tree_v): Remove.
7958 * cfgexpand.c (stack_protect_prologue): If guard_decl is NULL,
7959 set y to const0_rtx.
7960 * function.c (stack_protect_epilogue): Likewise.
7961 * config/tilepro/tilepro.c (TARGET_STACK_PROTECT_GUARD): Redefine
7962 if TARGET_THREAD_SSP_OFFSET is defined.
7963 * config/s390/s390.c (TARGET_STACK_PROTECT_GUARD): Likewise.
7964 * config/sparc/sparc.c (TARGET_STACK_PROTECT_GUARD): Likewise.
7965 * config/tilegx/tilegx.c (TARGET_STACK_PROTECT_GUARD): Likewise.
7966 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Likewise.
7967 * config/i386/i386.c (TARGET_STACK_PROTECT_GUARD): Likewise.
7968 (ix86_stack_protect_guard): New function.
7969
7970 2016-10-13 Richard Biener <rguenther@suse.de>
7971
7972 * dwarf2out.c (tree_add_const_value_attribute): Do not try
7973 rtl_for_decl_init during early phase.
7974 (gen_variable_die): Do not create locations during early phase.
7975 (gen_label_die): Likewise.
7976 (decls_for_scope): Do not waste time handling BLOCK_NONLOCALIZED_VARs
7977 twice.
7978
7979 2016-10-12 Richard Biener <rguenther@suse.de>
7980
7981 * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from
7982 try_add_new_range and made to eturn new range.
7983 (evrp_dom_walker::before_dom_children): Push op1 value range before
7984 pushing op0 value range.
7985
7986 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7987
7988 PR tree-optimization/77937
7989 * gimple-ssa-strength-reduction.c (analyze_increments): Use
7990 POINTER_TYPE_P on the candidate type to determine whether
7991 candidates in this chain require pointer arithmetic.
7992
7993 2016-10-12 Eric Botcazou <ebotcazou@adacore.com>
7994
7995 * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
7996 correction if the type is smaller than a word.
7997 (visium_select_cc_mode): Add ... fall through ... comment.
7998
7999 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8000
8001 * config/rs6000/rs6000.c (machine_function): Add new fields
8002 gpr_is_wrapped_separately and lr_is_wrapped_separately.
8003 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
8004 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
8005 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
8006 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
8007 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
8008 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
8009 (rs6000_get_separate_components): New function.
8010 (rs6000_components_for_bb): New function.
8011 (rs6000_disqualify_components): New function.
8012 (rs6000_emit_prologue_components): New function.
8013 (rs6000_emit_epilogue_components): New function.
8014 (rs6000_set_handled_components): New function.
8015 (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
8016 Don't emit GPR saves if gpr_is_wrapped_separately for that register.
8017 (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
8018 (rs6000_emit_epilogue): Don't emit GPR restores if
8019 gpr_is_wrapped_separately for that register. Don't make a
8020 REG_CFA_RESTORE note for registers we did not restore, either.
8021
8022 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8023
8024 * function.c (thread_prologue_and_epilogue_insns): Call
8025 try_shrink_wrapping_separate. Compute the prologue_seq afterwards,
8026 if it has possibly changed. Compute the split_prologue_seq and
8027 epilogue_seq later, too.
8028 * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
8029 (dump_components): New function.
8030 (struct sw): New struct.
8031 (SW): New function.
8032 (init_separate_shrink_wrap): New function.
8033 (fini_separate_shrink_wrap): New function.
8034 (place_prologue_for_one_component): New function.
8035 (spread_components): New function.
8036 (disqualify_problematic_components): New function.
8037 (emit_common_heads_for_components): New function.
8038 (emit_common_tails_for_components): New function.
8039 (insert_prologue_epilogue_for_components): New function.
8040 (try_shrink_wrapping_separate): New function.
8041 * shrink-wrap.h: Declare try_shrink_wrapping_separate.
8042
8043 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8044
8045 * regrename.c (build_def_use): Invalidate chains that have a
8046 REG_CFA_RESTORE on some instruction.
8047
8048 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8049
8050 * dce.c (delete_unmarked_insns): Don't delete instructions with
8051 a REG_CFA_RESTORE note.
8052
8053 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8054
8055 * common.opt (-fshrink-wrap-separate): New flag.
8056 * doc/invoke.texi: Document it.
8057 * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
8058 * doc/tm.texi: Regenerate.
8059 * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
8060 * target.def (shrink_wrap): New hook vector.
8061 (get_separate_components, components_for_bb, disqualify_components,
8062 emit_prologue_components, emit_epilogue_components,
8063 set_handled_components): New hooks.
8064
8065 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
8066
8067 * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
8068 vector return by reference only if -Wpsabi.
8069 (rs6000_pass_by_reference): Similarly, for argument passing.
8070
8071 2016-10-12 David Malcolm <dmalcolm@redhat.com>
8072
8073 * function-tests.c: Include "print-rtl.h".
8074 (selftest::test_expansion_to_rtl): Call print_rtx_function on the
8075 function, and verify what is dumped.
8076 * print-rtl-function.c (print_edge): New function.
8077 (begin_any_block): New function.
8078 (end_any_block): New function.
8079 (can_have_basic_block_p): New function.
8080 (print_rtx_function): Track the basic blocks of insns in the
8081 chain, wrapping those that are within blocks within "(block)"
8082 directives. Remove the "(cfg)" directive.
8083
8084 2016-10-12 David Malcolm <dmalcolm@redhat.com>
8085
8086 * selftest.c (selftest::read_file): New function.
8087 (selftest::test_read_file): New function.
8088 (selftest::selftest_c_tests): Call test_read_file.
8089 * selftest.h (selftest::read_file): New decl.
8090
8091 2016-10-12 Richard Biener <rguenther@suse.de>
8092
8093 PR debug/77947
8094 * cgraphunit.c (analyze_functions): Preserve cgraph nodes
8095 function context.
8096
8097 2016-10-12 Thomas Schwinge <thomas@codesourcery.com>
8098
8099 * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
8100
8101 * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
8102 dwarf2out_assembly_start.
8103
8104 * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
8105
8106 * Makefile.in (SELFTEST_FLAGS): New variable.
8107 (s-selftest, selftest-gdb, selftest-valgrind): Use it.
8108
8109 * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
8110 early_finish hook.
8111
8112 2016-10-12 Georg-Johann Lay <avr@gjlay.de>
8113
8114 * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
8115 dumped in RTL dumps.
8116
8117 2016-10-12 Martin Liska <mliska@suse.cz>
8118
8119 * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
8120 (gimple_fold_builtin_memory_op): Use the function.
8121 (gimple_fold_builtin_strchr): Likewise.
8122 (gimple_fold_builtin_strcat): Likewise.
8123 (gimple_build): Likewise.
8124
8125 2016-10-12 Nathan Sidwell <nathan@acm.org>
8126
8127 * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
8128
8129 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
8130
8131 * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
8132 equivalent 32-bit constant (modulo 2**32) when that yields
8133 smaller instructions.
8134 (size_of_int_loc_descriptor): Update accordingly.
8135
8136 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
8137
8138 * dwarf2out.c (dwarf2out_early_global_decl): For nested
8139 functions, call dwarf2out_decl on the parent function first.
8140
8141 2016-10-12 Richard Biener <rguenther@suse.de>
8142
8143 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
8144 on the conversion.
8145
8146 2016-10-12 Richard Biener <rguenther@suse.de>
8147
8148 * tree-ssa-propagate.c
8149 (substitute_and_fold_dom_walker::before_dom_children): Do not
8150 ignore ASSERT_EXPRs but only preserve them.
8151 * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
8152 that have been propagated into.
8153 (vrp_finalize): Enable DCE for substitute_and_fold.
8154
8155 2016-10-12 Richard Biener <rguenther@suse.de>
8156
8157 PR tree-optimization/77920
8158 * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
8159 (simplify_min_or_max_using_ranges): Pass in gsi and use it.
8160 (simplify_abs_using_ranges): Likewise.
8161 (simplify_conversion_using_ranges): Likewise.
8162 (simplify_stmt_using_ranges): Adjust.
8163
8164 2016-10-12 Jakub Jelinek <jakub@redhat.com>
8165
8166 PR tree-optimization/77929
8167 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
8168 (*ops)[ranges[i].idx]->op != ranges[i].exp case.
8169
8170 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
8171
8172 PR target/77934
8173 * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
8174 needs a base register for arg 1.
8175
8176 2016-10-12 Jakub Jelinek <jakub@redhat.com>
8177
8178 * common.opt (Wimplicit-fallthrough) Turn into alias to
8179 -Wimplicit-fallthrough=3. Remove EnabledBy.
8180 (Wimplicit-fallthrough=): New option.
8181 * gimplify.c (warn_implicit_fallthrough_r): Use
8182 OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
8183 * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
8184 to -Wimplicit-fallthrough=3.
8185 (-Wimplicit-fallthrough=): Document.
8186
8187 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
8188
8189 * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
8190 and GEU in DImode if TARGET_SUBXC.
8191 * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
8192 (seqdi<W:mode>_zero_subxc): Delete.
8193 (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
8194 (neg_seqdi<W:mode>_zero_vis3): Delete.
8195 (plus_seqdi<W:mode>_zero): Likewise.
8196 (minus_seqdi<W:mode>_zero): Likewise.
8197 (plus_plus_sltu<W:mode>): Accept only register.
8198 (addx<W:mode>): Likewise.
8199 (plus_sltu<W:mode>_vis3): Likewise.
8200 (plus_plus_sltu<W:mode>_vis3): Likewise.
8201 (neg_sgeu<W:mode>_vis3): Delete.
8202 (minus_sgeu<W:mode>_vis3): Likewise.
8203 (addxc<W:mode>): Accept only registers.
8204 (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
8205 (minus_neg_sltu<W:mode>_subxc): Accept only register.
8206 (neg_plus_sltu<W:mode>_subxc): Likewise.
8207 (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
8208 (minus_minus_sltu<W:mode>_subxc): Accept only register.
8209 (sgeu<W:mode>_insn_subxc): Delete.
8210 (plus_sgeu<W:mode>_subxc): Likewise.
8211 (subxc<W:mode>): Accept only register.
8212 (scc splitter): Split always GEU again.
8213
8214 2016-10-11 Jeff Law <law@redhat.com>
8215
8216 PR tree-optimization/77424
8217 * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
8218 dead conditionals. Assert that all e->aux fields are NULL.
8219
8220 2016-10-11 David Malcolm <dmalcolm@redhat.com>
8221
8222 * print-rtl.c (print_rtx): Rename "i" to "idx". Split out the
8223 operand-printing "switch" statement into...
8224 (print_rtx_operand_code_0): ...this new function, ...
8225 (print_rtx_operand_code_e): ...this new function, ...
8226 (print_rtx_operand_codes_E_and_V): ...this new function, ...
8227 (print_rtx_operand_code_i): ...this new function, ...
8228 (print_rtx_operand_code_r): ...this new function, ...
8229 (print_rtx_operand_code_u): ...this new function, ...
8230 (print_rtx_operand): ...and this new function.
8231
8232 2016-10-11 Uros Bizjak <ubizjak@gmail.com>
8233
8234 * config/alpha/alpha-passes.def: New file.
8235 * config/alpha/t-alpha: New file.
8236 * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
8237 (make_pass_handle_trap_shadows): New prototype.
8238 (make_pass_align_insns): Ditto.
8239 * config/alpha/alpha.c (alpha_option_override): Don't register
8240 passes here.
8241 * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
8242
8243 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
8244
8245 PR target/77924
8246 * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
8247 distinct __ibm128 IBM extended double type if long doubles are
8248 128-bits and the default format for long double is IEEE 128-bit.
8249
8250 2016-10-11 Richard Biener <rguenther@suse.de>
8251
8252 * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
8253 (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
8254 (verify_die): New function.
8255 (dwarf2out_finish): Call it.
8256 (output_line_info): Handle case of -gsplit-dwarf without
8257 DWARF2_ASM_LINE_DEBUG_INFO.
8258
8259 2016-10-11 Richard Biener <rguenther@suse.de>
8260
8261 PR debug/77931
8262 * gimple-low.c (lower_gimple_bind): Handle arbitrary common
8263 sub-chains of BLOCK_VARS and gimple_bind_vars.
8264
8265 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
8266
8267 * config/i386/znver1.md : Fix imov/imovx load type reservations.
8268
8269 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
8270
8271 * config/sparc/sparc.opt (msubxc): New option.
8272 * doc/invoke.texi (SPARC options): Document it and tidy up.
8273 * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
8274 * doc/tm.texi: Regenerate.
8275 * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
8276 (CCNZ): ...this.
8277 (CCX_NOOV): Rename into...
8278 (CCXNZ): ...this.
8279 (CCC): New.
8280 (CCXC): Likewise.
8281 * config/sparc/predicates.m (fcc_register_operand): Simplify.
8282 (fcc0_register_operand): Likewise.
8283 (icc_register_operand): New.
8284 (icc_or_fcc_register_operand): Simplify.
8285 (nz_comparison_operator): New.
8286 (c_comparison_operator): Likewise.
8287 (noov_compare_operator): Rename into...
8288 (icc_comparison_operator): ...this. Use above predicates.
8289 (noov_compare64_operator): Rename into...
8290 (v9_comparison_operator): ...this and tidy up.
8291 (fcc_comparison_operator): New.
8292 (icc_or_fcc_comparison_operator): Likewise.
8293 (v9_register_compare_operator): Rename info...
8294 (v9_register_comparison_operator): ...this.
8295 * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
8296 (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
8297 for Niagara-7.
8298 (sparc_fixed_condition_code_regs): New function.
8299 (select_cc_mode): Remove ATTRIBUTE_UNUSED. Adjust for CCNZ/CCXNZ
8300 renaming and add support for CCC/CCXC.
8301 (output_cbranch): Likewise.
8302 (sparc_print_operand): Likewise.
8303 (gen_v9_scc): Remove obsolete assertion.
8304 (emit_scc_insn): Emit RTL directly for EQ and NE. Add direct support
8305 for EQ in DImode if TARGET_SUBXC. Remove test on TARGET_VIS3 for GEU.
8306 (output_cbcond): Remove bogus handling of CC modes.
8307 (sparc_register_move_cost): Return 100 for NO_REGS.
8308 * config/sparc/sparc.md (W): New mode iterator.
8309 (length): Adjust for noov_compare64_operator renaming.
8310 (cmpsi_sne): New instruction.
8311 (cmpdi_sne): Likewise.
8312 (seqdi_special): Delete.
8313 (seqdi_special): Likewise.
8314 (snesi<P:mode>_special): Likewise.
8315 (snedi_special): Likewise.
8316 (snedi_special_vis3): Likewise.
8317 (snesi patterns): Use W iterator.
8318 (snedi patterns): Likewise. Add TARGET_SUBXC patterns.
8319 (sltu patterns): Likewise.
8320 (sgeu patterns): Likewise.
8321 (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
8322 (normal_branch): Use icc_comparison_operator predicate.
8323 (inverted_branch): Likewise.
8324 (cbcond_sp32): Use comparison_operator predicate.
8325 (cbcond_sp64): Likewise.
8326 (normal_int_branch_sp64): Adjust for renaming
8327 (inverted_int_branch_sp64): Likewise.
8328 (mov<I:mode>_cc_reg_sp64): Likewise.
8329 (movsf_cc_reg_sp6): Likewise.
8330 (movdf_cc_reg_sp64): Likewise.
8331 (movtf_cc_reg_hq_sp64): Likewise.
8332 (movtf_cc_reg_sp64): Likewise.
8333 (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
8334 (movsf_cc_v9): Likewise.
8335 (movdf_cc_v9): Likewise.
8336 (movtf_cc_hq_v9): Likewise.
8337 (movtf_cc_v9): Likewise.
8338 (adddi3): Call gen_adddi3_sp32.
8339 (adddi3_insn_sp32): Rename to...
8340 (adddi3_sp32): ...this. Accept only register_operand as operand #1
8341 and use CCCmode for the carry.
8342 (addx_extend_sp32): Use CCCmode for the carry.
8343 (addx_extend_sp64): Delete.
8344 (adddi3_extend_sp32): Use CCCmode for the carry.
8345 (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
8346 (subdi3): Call gen_subdi3_sp32.
8347 (subdi3_insn_sp32): Rename to...
8348 (subdi3_sp32): ...this and use CCmode for the carry.
8349 (subx_extend_sp32): Use CCCmode for the carry.
8350 (subx_extend_sp64): Delete.
8351 (subdi3_extend_sp32): Use CCmode for the carry.
8352 (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
8353 (negdi3): Call gen_negdi3_sp32.
8354 (negdi3_sp32): Use CCCmode for the carry.
8355 (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
8356 (cmp_nz_ashift_1): Use CCNZ mode.
8357 (cmp_nz_set_ashift_1): Likewise.
8358 (ctrapsi4): Use comparison_operator predicate.
8359 (ctrapdi4): Likewise.
8360 (trapsi_insn): Use icc_comparison_operator predicate.
8361 (trapdi_insn): Likewise.
8362 (edge8 patterns): Use CCNZmode.
8363 (edge16 patterns): Likewise.
8364 (edge32 patterns): Likewise.
8365
8366 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
8367
8368 * config/visium/visium-modes.def (CC_NOOV): Rename into...
8369 (CCNZ): ...this.
8370 (CC_BTST): Rename into...
8371 (CCC): ...this.
8372 * config/visium/predicates.md (real_add_operand): New.
8373 (visium_btst_operator): Rename into...
8374 (visium_equality_comparison_operator): ...this.
8375 (visium_noov_operator): Rename into...
8376 (visium_nz_comparison_operator): ...this.
8377 (visium_c_comparison_operator): New.
8378 (visium_branch_operator): Adjust and deal with all CC modes.
8379 * config/visium/visium.c (visium_adjust_cost): Adjust.
8380 (visium_split_double_add): Use the *_set_carry patterns.
8381 (visium_select_cc_mode): Add support for CCC mode and adjust.
8382 (output_cbranch): Adjust and use the carry-based operators for
8383 floating-point comparisons.
8384 * config/visium/visium.md (flags_subst_arith): Adjust.
8385 (addsi3_insn_set_carry): New instruction.
8386 (subsi3_insn_set_carry): Likewise.
8387 (negsi2_insn_set_carry): Likewise.
8388 (btst): Adjust.
8389 (cmp<mode>_sne): Likewise.
8390 (cbranch<mode>4): Use ordered_comparison_operator.
8391 (cbranch<mode>4_insn): Likewise.
8392 (cbranchsi4_btst_insn): Adjust.
8393
8394 2016-10-11 Tom de Vries <tom@codesourcery.com>
8395
8396 PR middle-end/77558
8397 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
8398 special-casing.
8399
8400 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
8401
8402 * tree.h (build_complex_type): Add second parameter with default.
8403 * tree.c (build_complex_type): Add NAMED second parameter and adjust
8404 recursive call. Create a TYPE_DECL only if NAMED is true.
8405 (build_common_tree_nodes): Pass true in calls to build_complex_type.
8406
8407 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
8408
8409 New avr-passes.def to register AVR specific passes.
8410
8411 * config/avr/avr-passes.def: New file.
8412 * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
8413 * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
8414 (make_avr_pass_recompute_note): New proto.
8415 * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
8416 (avr_pass_recompute_notes): Use anonymous namespace.
8417 (avr_register_passes): Remove function...
8418 (avr_option_override): ...and its call.
8419
8420 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
8421
8422 * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
8423 PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
8424 PTF_AVOID_BRANCHLIKELY_SPEED for others.
8425 (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
8426 flags.
8427 * config/mips/mips.c (mips_option_override): Enable the branch
8428 likely depending on the tune flags and optimization level.
8429 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
8430 (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
8431 (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
8432 (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
8433
8434 2016-10-11 Richard Biener <rguenther@suse.de>
8435
8436 * lto-streamer-out.c (collect_block_tree_leafs): New helper.
8437 (output_function): Properly stream the whole block tree.
8438 * lto-streamer-in.c (input_function): Likewise.
8439
8440 2016-10-11 Marek Polacek <polacek@redhat.com>
8441
8442 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
8443
8444 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
8445
8446 * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
8447 (evrp_dom_walker::before_dom_children): Infer and push new value
8448 ranges for x in y < x.
8449
8450 2016-10-10 Joseph Myers <joseph@codesourcery.com>
8451
8452 PR target/77586
8453 * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
8454 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
8455 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
8456 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
8457 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
8458 (IA64_NO_LIBGCC_TFMODE): Likewise.
8459
8460 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
8461
8462 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
8463 copying.
8464
8465 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
8466
8467 * config.gcc: Add aarch64-*-freebsd* support.
8468 * config.host: Likewise.
8469 * config/aarch64/aarch64-freebsd.h: New file.
8470 * config/aarch64/t-aarch64-freebsd: Ditto.
8471
8472 2016-10-10 Jeff Law <law@redhat.com>
8473
8474 PR tree-optimization/71947
8475 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
8476 B with A within a single statement.
8477
8478 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8479
8480 PR tree-optimization/77824
8481 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
8482 zero cost for copies.
8483 (find_candidates_dom_walker::before_dom_children): Replace
8484 MODIFY_EXPR with SSA_NAME.
8485 (replace_mult_candidate): Likewise.
8486 (replace_profitable_candidates): Likewise.
8487
8488 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8489
8490 * config/s390/s390.h: Wrap more macros args in brackets and fix
8491
8492 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
8493
8494 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
8495
8496 2016-10-10 Andreas Schwab <schwab@suse.de>
8497
8498 PR target/77738
8499 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
8500 pseudo is not DImode.
8501
8502 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
8503
8504 * common/config/arc/arc-common.c (arc_option_optimization_table):
8505 Remove compact casesi option.
8506 * config/arc/arc.c (arc_override_options): Use compact casesi
8507 option only for pre-ARCv2 cores.
8508 * doc/invoke.texi (mcompact-casesi): Update text.
8509
8510 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
8511
8512 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
8513 Add macro to say we can efficiently handle overlapping unaligned
8514 loads.
8515 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
8516 poor code for processors older than p8.
8517
8518 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
8519
8520 * gen-pass-instances.awk: Remove GNUism.
8521
8522 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8523
8524 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
8525 NULL of (*ipcp_transformations)][node->uid].
8526
8527 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
8528
8529 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
8530 (MALLOC_ABI_ALIGNMENT): Define.
8531
8532 2016-10-09 Jakub Jelinek <jakub@redhat.com>
8533
8534 * tree-ssa.c (target_for_debug_bind, verify_phi_args,
8535 ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
8536 VAR_OR_FUNCTION_DECL_P macros.
8537 * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
8538 chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
8539 chkp_find_bounds_1): Likewise.
8540 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
8541 * hsa-gen.c (get_symbol_for_decl): Likewise.
8542 * cgraphunit.c (check_global_declaration, analyze_functions,
8543 handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
8544 Likewise.
8545 * gimple-fold.c (can_refer_decl_in_current_unit_p,
8546 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
8547 Likewise.
8548 * tree.c (set_decl_section_name, copy_node_stat,
8549 need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
8550 merge_dllimport_decl_attributes, handle_dll_attribute,
8551 decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
8552 verify_type): Likewise.
8553 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
8554 find_explicit_erroneous_behavior): Likewise.
8555 * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
8556 * ipa.c (process_references): Likewise.
8557 * tree-chkp-opt.c (chkp_get_check_result): Likewise.
8558 * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
8559 notice_global_symbol, assemble_variable, mark_decl_referenced,
8560 build_constant_desc, output_constant_def_contents, do_assemble_alias,
8561 make_decl_one_only, default_section_type_flags,
8562 categorize_decl_for_section, default_encode_section_info): Likewise.
8563 * trans-mem.c (requires_barrier): Likewise.
8564 * gimple-expr.c (mark_addressable): Likewise.
8565 * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
8566 expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
8567 expand_debug_expr): Likewise.
8568 * tree-dump.c (dequeue_and_dump): Likewise.
8569 * ubsan.c (instrument_bool_enum_load): Likewise.
8570 * tree-pretty-print.c (print_declaration): Likewise.
8571 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
8572 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
8573 * asan.c (asan_protect_global, instrument_derefs): Likewise.
8574 * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
8575 pass_build_ssa::execute): Likewise.
8576 * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
8577 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
8578 Likewise.
8579 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
8580 Likewise.
8581 * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
8582 can_be_nonlocal, remap_decls, copy_debug_stmt,
8583 initialize_inlined_parameters, add_local_variables,
8584 reset_debug_binding, replace_locals_op): Likewise.
8585 * dse.c (can_escape): Likewise.
8586 * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
8587 Likewise.
8588 * tree-diagnostic.c (default_tree_printer): Likewise.
8589 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
8590 unpack_ts_decl_with_vis_value_fields,
8591 lto_input_ts_decl_common_tree_pointers): Likewise.
8592 * builtins.c (builtin_save_expr, fold_builtin_expect,
8593 readonly_data_expr): Likewise.
8594 * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
8595 create_variable_info_for, set_uids_in_ptset, visit_loadstore):
8596 Likewise.
8597 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
8598 * gimplify.c (force_constant_size, gimplify_bind_expr,
8599 gimplify_decl_expr, gimplify_var_or_parm_decl,
8600 gimplify_compound_lval, gimplify_init_constructor,
8601 gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
8602 gimplify_type_sizes): Likewise.
8603 * cgraphbuild.c (record_reference, record_type_list, mark_address,
8604 mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
8605 * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
8606 remove_unused_locals): Likewise.
8607 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
8608 ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
8609 * function.c (instantiate_expr, instantiate_decls_1,
8610 setjmp_vars_warning, add_local_decl): Likewise.
8611 * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
8612 Likewise.
8613 * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
8614 va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
8615 optimize_va_list_gpr_fpr_size): Likewise.
8616 * tree-nrv.c (pass_nrv::execute): Likewise.
8617 * tsan.c (instrument_expr): Likewise.
8618 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
8619 * vtable-verify.c (verify_bb_vtables): Likewise.
8620 * tree-dfa.c (ssa_default_def, set_ssa_default_def,
8621 get_ref_base_and_extent): Likewise.
8622 * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
8623 Likewise.
8624 * tree-sra.c (static bool constant_decl_p, find_var_candidates,
8625 analyze_all_variable_accesses): Likewise.
8626 * tree-nested.c (get_nonlocal_debug_decl,
8627 convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
8628 note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
8629 get_local_debug_decl, convert_local_omp_clauses,
8630 convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
8631 Likewise.
8632 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
8633 * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
8634 * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
8635 dbxout_symbol, dbxout_common_check): Likewise.
8636 * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
8637 string_constant): Likewise.
8638 * hsa.c (hsa_get_declaration_name): Likewise.
8639 * passes.c (rest_of_decl_compilation): Likewise.
8640 * tree-ssanames.c (make_ssa_name_fn): Likewise.
8641 * tree-streamer-out.c (pack_ts_decl_common_value_fields,
8642 pack_ts_decl_with_vis_value_fields,
8643 write_ts_decl_common_tree_pointers): Likewise.
8644 * stor-layout.c (place_field): Likewise.
8645 * symtab.c (symtab_node::maybe_create_reference,
8646 symtab_node::verify_base, symtab_node::make_decl_local,
8647 symtab_node::copy_visibility_from,
8648 symtab_node::can_increase_alignment_p): Likewise.
8649 * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
8650 decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
8651 fortran_common, add_location_or_const_value_attribute,
8652 add_scalar_info, add_linkage_name, set_block_abstract_flags,
8653 local_function_static, gen_variable_die, dwarf2out_late_global_decl,
8654 optimize_one_addr_into_implicit_ptr,
8655 optimize_location_into_implicit_ptr): Likewise.
8656 * gimple-low.c (record_vars_into): Likewise.
8657 * ipa-visibility.c (update_vtable_references): Likewise.
8658 * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
8659 Likewise.
8660 * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
8661 DFS::DFS_write_tree_body, write_symbol): Likewise.
8662 * langhooks.c (lhd_warn_unused_global_decl,
8663 lhd_set_decl_assembler_name): Likewise.
8664 * attribs.c (decl_attributes): Likewise.
8665 * except.c (output_ttype): Likewise.
8666 * varpool.c (varpool_node::get_create, ctor_for_folding,
8667 varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
8668 * fold-const.c (fold_unary_loc): Likewise.
8669 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
8670 ipa_find_agg_cst_from_init): Likewise.
8671 * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
8672 expand_omp_target, lower_omp_regimplify_p,
8673 grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
8674 find_link_var_op): Likewise.
8675 * tree-chrec.c (chrec_contains_symbols): Likewise.
8676 * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
8677 gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
8678 execute_fixup_cfg): Likewise.
8679
8680 PR tree-optimization/77901
8681 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
8682 if ranges[i].exp is SSA_NAME when looking for >= and only when
8683 ranges[i].exp is NULL or SSA_NAME when looking for the other
8684 comparison.
8685
8686 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8687
8688 * ipa-cp.c (ipcp_alignment_lattice): Remove.
8689 (ipcp_param_lattices): Remove field alignment.
8690 (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
8691 (set_all_contains_variable): Remove call to
8692 ipcp_alignment_lattice::set_to_bottom.
8693 (initialize_node_lattices): Likewise.
8694 (propagate_alignment_accross_jump_function): Remove.
8695 (propagate_constants_accross_call): Remove call to
8696 propagate_alignment_accross_jump_function.
8697 (ipcp_store_alignment_results): Remove.
8698 (ipcp_driver): Remove call to ipcp_store_alignment_results.
8699 (propagate_bits_accross_jump_function): Handle ancestor jump function.
8700 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
8701 pretty-printing of alignment jump function.
8702 (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
8703 (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
8704 alignments and remove computing ipa_alignment jump function.
8705 (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
8706 (ipa_write_jump_functions): Remove streaming for ipa_alignment.
8707 (ipa_read_jump_function): Remove reading of ipa_alignment.
8708 (write_ipcp_transformation_info): Remove streaming for alignment
8709 propagation summary.
8710 (read_ipcp_transformation_info): Remove reading of alignment
8711 propagation summary.
8712 (ipcp_update_alignments): Remove.
8713 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
8714 type.
8715 (ipcp_transform_function): Remove call to ipcp_update_alignments()
8716 and remove assignment to (*ipcp_transformations)[node->uid].alignments.
8717 * ipa-prop.h (ipa_alignment): Remove.
8718 (ipa_jump_func): Remove field alignment.
8719 (ipcp_transformation_summary): Remove field alignments.
8720 * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
8721 * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
8722 (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
8723
8724 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
8725
8726 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
8727
8728 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
8729 change.
8730 (visium_expand_fp_cstore): Likewise.
8731
8732 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8733
8734 * diagnostic-core.h (warning_at_rich_loc_n): Declare.
8735 * diagnostic.c (warning_at_rich_loc_n): New function.
8736 (diagnostic_n_impl_richloc): Likewise.
8737 (diagnostic_n_impl): Move most of the function to
8738 diagnostic_n_impl_richloc and call it.
8739
8740 2016-10-08 Jakub Jelinek <jakub@redhat.com>
8741
8742 * gen-pass-instances.awk: Rewritten.
8743 * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
8744 $(PASSES_EXTRA) after passes.def to the script.
8745 * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
8746 * config/i386/i386-passes.def: New file.
8747 * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
8748 make_pass_stv): Declare.
8749 * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
8750 false.
8751 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
8752 or !TARGET_64BIT.
8753 (pass_stv::clone, pass_stv::set_pass_param): New methods.
8754 (pass_stv::timode_p): New non-static data member.
8755 (ix86_option_override): Don't register passes here.
8756
8757 * doc/invoke.texi: Document accepting Else, fallthrough.
8758
8759 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
8760 style changes.
8761
8762 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
8763 FALLTHRU comment styles.
8764
8765 2016-10-07 Andrew Pinski <apinski@cavium.com>
8766
8767 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
8768 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
8769 * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
8770 Likewise.
8771 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
8772 Likewise.
8773 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
8774 Likewise.
8775 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
8776 (AARCH64_ARCH): Likewise.
8777 * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
8778 Likewise.
8779 (AARCH64_CORE): Likewise.
8780 (AARCH64_ARCH): Likewise.
8781 * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
8782 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
8783 * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
8784 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
8785 (AARCH64_ARCH): Likewise.
8786 (AARCH64_CORE): Likewise.
8787 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
8788 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
8789 (AARCH64_CORE): Likewise.
8790 (AARCH64_ARCH): Likewise.
8791
8792 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
8793
8794 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
8795 -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
8796 floating point type infrastructre, and -mfloat128 that enables the
8797 keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
8798 if -mfloat128-type. Define __ibm128 to be long double by default.
8799 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
8800 the IEEE 128-bit floating point type infrastructure should
8801 automatically be enabled.
8802 (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
8803 instead of -mfloat128 to enable KFmode.
8804 (rs6000_option_override_internal): Split the option -mfloat128
8805 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit
8806 systems, automatically set -mfloat128-type, but don't enable it on
8807 other operating systems. Move setting the long double size and
8808 IEEE quad support before the IEEE 128-bit floating point changes.
8809 (rs6000_init_builtins): Do not create a unique type for __ibm128
8810 if long double is IBM extended double, instead rely on __ibm128
8811 being defined as 'long double'. If -mfloat128-type and not
8812 -mfloat128, create the KFmode type with an undocumented __ieee128
8813 keyword.
8814 (rs6000_init_libfuncs): Use -mfloat128-type instead of
8815 -mfloat128 for tests about the types, but keep tests for
8816 -mfloat128 to enable the keyword support.
8817 (rs6000_complex_function_value): Likewise.
8818 (rs6000_scalar_mode_supported_p): Likewise.
8819 (rs6000_floatn_mode): Likewise.
8820 (rs6000_c_mode_for_suffix): Likewise.
8821 (rs6000_opt_masks): Add -mfloat128-type.
8822 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
8823 -mfloat128-type being split from -mfloat128. Add
8824 -mfloat128-hardware, which was missing.
8825 * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
8826 -mfloat128 and -mfloat128-type:
8827 (-mfloat128-type): Likewise.
8828 * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
8829 that 64-bit Linux systems with enable -mfloat128-type by default
8830 on VSX systems.
8831 * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
8832 (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
8833 -mfloat128-type instead of -mfloat128.
8834 (FLOAT128_2REG_P): Likewise.
8835 (MASK_FLOAT128_TYPE): Likewise.
8836 (ALTIVEC_ARG_MAX_RETURN): Likewise.
8837 (RS6000_BTM_FLOAT128): Likewise.
8838 (TARGET_FLOAT128): Poison old identifiers.
8839 (OPTION_MASK_FLOAT128): Likewise.
8840 (MASK_FLOAT128): Likewise.
8841 * config/rs6000/rs6000.md (FP): Likewise.
8842 (FLOAT128): Likewise.
8843 (fix_trunc<mode>di2): Likewise.
8844 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
8845 (floatdi<mode>2): Likewise.
8846 (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
8847 (neg<mode>2, FLOAT128 iterator): Likewise.
8848 (abs<mode>2, FLOAT128 iterator): Likewise.
8849 (ieee_128bit_negative_zero): Likewise.
8850 (ieee_128bit_vsx_neg<mode>2): Likewise.
8851 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
8852 (ieee_128bit_vsx_abs<mode>2): Likewise.
8853 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
8854 (ieee_128bit_vsx_nabs<mode>2): Likewise.
8855 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
8856 (extendiftf2): Likewise.
8857 (extendifkf2): Likewise.
8858 (extendtfkf2): Likewise.
8859 (trunciftf2): Likewise.
8860 (truncifkf2): Likewise.
8861 (trunckftf2): Likewise.
8862 (trunctfif2): Likewise.
8863 (extendkftf2): Likewise.
8864 (trunctfkf2): Likewise.
8865
8866 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8867
8868 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
8869 before merging in bytes to pass down to real_from_target.
8870
8871 2016-10-07 Richard Biener <rguenther@suse.de>
8872
8873 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
8874 required hack.
8875 (substitute_and_fold_dom_walker::before_dom_children):
8876 Substitute and fold before pass specific folding to avoid
8877 feeding that with SSA names that will be later released.
8878 * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
8879 introduced by folding and visited by evaluate_stmt called during
8880 ccp_fold_stmt.
8881 (likely_value): Likewise.
8882 (evaluate_stmt): Likewise.
8883 * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
8884 (simplify_div_or_mod_using_ranges): Likewise.
8885 (simplify_min_or_max_using_ranges): Likewise.
8886 (simplify_abs_using_ranges): Likewise.
8887 (simplify_conversion_using_ranges): Likewise.
8888 (simplify_float_conversion_using_ranges): Likewise.
8889 (simplify_stmt_using_ranges): Likewise.
8890
8891 2016-10-07 Marek Polacek <polacek@redhat.com>
8892
8893 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
8894 FALLTHROUGH_LABEL_P here...
8895 (warn_implicit_fallthrough_r): ...not here.
8896
8897 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
8898
8899 PR tree-optimization/77880
8900 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
8901 necessary.
8902
8903 2016-10-07 Marek Polacek <polacek@redhat.com>
8904
8905 PR c++/77803
8906 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
8907
8908 2016-10-07 Richard Biener <rguenther@suse.de>
8909
8910 * bitmap.h: Document constraints on bitmap modification while
8911 iterating over it.
8912
8913 2016-10-07 Richard Biener <rguenther@suse.de>
8914
8915 * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
8916 * bitmap.h (bmp_iter_set): When advancing to the next element
8917 check that we didn't remove the current one.
8918 (bmp_iter_and): Likewise.
8919 (bmp_iter_and_compl): Likewise.
8920 * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
8921 we currently iterate on but keep a one-level queue.
8922 * sched-deps.c (remove_from_deps): Do not clear current bit
8923 but keep a one-level queue.
8924
8925 2016-10-07 Jakub Jelinek <jakub@redhat.com>
8926
8927 PR tree-optimization/77664
8928 * tree-ssa-reassoc.c (update_range_test): Also clear low and high
8929 for the other ranges.
8930 (optimize_range_tests_diff): Fix up formatting.
8931 (optimize_range_tests_var_bound): New function.
8932 (optimize_range_tests): Use it.
8933
8934 2016-10-07 Martin Liska <mliska@suse.cz>
8935
8936 * coverage.c (build_gcov_exit_decl): Fix priority what
8937 should be really 99.
8938
8939 2016-10-07 Richard Biener <rguenther@suse.de>
8940
8941 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
8942 vars in gimple_bind_vars but not in BLOCK_VARS.
8943
8944 2016-10-07 Richard Biener <rguenther@suse.de>
8945
8946 PR tree-optimization/77879
8947 * tree-ssa-structalias.c (handle_const_call): Properly handle
8948 NRV return slots.
8949 (handle_pure_call): Likewise.
8950
8951 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
8952
8953 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
8954 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
8955 possible overflow.
8956
8957 2016-10-06 Andrew Pinski <apinski@cavium.com>
8958
8959 * config/aarch64/aarch64-cores.def: Add a comment before each
8960 set of cores.
8961
8962 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
8963
8964 PR tree-optimization/77862
8965 * tree-vrp.c (add_equivalence): Use get_value_range so that
8966 num_vr_values is checked before accessing vr_values.
8967
8968 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
8969
8970 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
8971 POINTER_TYPE_P.
8972
8973 2016-10-05 Jeff Law <law@redhat.com>
8974
8975 PR tree-optimization/71661
8976 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
8977 removal of a forwarder exposes a new natural loop.
8978
8979 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
8980
8981 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
8982 Introduce ssesuffix variable.
8983 (<mask_codefor><code><mode>3<mask_name>): Ditto.
8984 (*<code><mode>3): Ditto.
8985
8986 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
8987
8988 * postreload.c (reload_cse_simplify): Skip also USE when detecting
8989 noop move.
8990
8991 2016-10-06 Richard Biener <rguenther@suse.de>
8992
8993 PR tree-optimization/77855
8994 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
8995 instead of removing the current item while iterating over the set
8996 which is not safe.
8997
8998 2016-10-06 James Clarke <jrtc27@jrtc27.com>
8999 Eric Botcazou <ebotcazou@adacore.com>
9000
9001 PR target/77759
9002 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
9003 (classify_registers): Don't set it
9004 (function_arg_slotno): Don't initialize and test it. Tidy up.
9005
9006 2016-10-06 Richard Biener <rguenther@suse.de>
9007
9008 PR tree-optimization/77839
9009 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
9010 lattice transition.
9011
9012 2016-10-06 Martin Liska <mliska@suse.cz>
9013
9014 * gcc.c: Set -fprofile-update=atomic when profiling is
9015 enabled and -pthread is set. Warn when one combines
9016 -pthread and -fprofile-update=single for an app using
9017 profiling code.
9018
9019 2016-10-06 Martin Liska <mliska@suse.cz>
9020
9021 PR bootstrap/77788
9022 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
9023 * gimple-ssa-strength-reduction.c (slsr_process_cast):
9024 Initialize a pointer to NULL.
9025 (slsr_process_copy): Likewise.
9026 * input.c (location_get_source_line): Likewise.
9027 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
9028
9029 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
9030
9031 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
9032 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
9033 (ix86_handle_option): Deleted handle of OPT_mpcommit.
9034 * config.gcc: Deleted pcommitintrin.h
9035 * config/i386/pcommitintrin.h: Deleted file.
9036 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
9037 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
9038 detection.
9039 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
9040 __PCOMMIT__.
9041 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
9042 (PTA_PCOMMIT): Deleted define.
9043 (ix86_option_override_internal): Deleted handle of option.
9044 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
9045 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
9046 __builtin_ia32_pcommit): Deleted.
9047 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
9048 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
9049 (pcommit): Deleted instruction.
9050 * config/i386/i386.opt: Mention -mpcommit deprecation.
9051 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
9052
9053 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
9054
9055 PR target/77874
9056 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
9057 Remove wrong assert.
9058 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
9059 Use <round_constraint> as operand 1 constraint.
9060
9061 2016-10-05 Jakub Jelinek <jakub@redhat.com>
9062
9063 PR sanitizer/66343
9064 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
9065 (ubsan_instrument_float_cast): And not here.
9066
9067 PR sanitizer/66343
9068 * ubsan.c (ubsan_ids): New GTY(()) array.
9069 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
9070 instead of static local counters.
9071
9072 2016-10-05 Martin Sebor <msebor@redhat.com>
9073
9074 PR bootstrap/77819
9075 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
9076 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
9077 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
9078 (default_printf_pointer_format): Define function.
9079 * targhooks.c (linux_printf_pointer_format): Define new function.
9080 * targhooks.h (linux_printf_pointer_format): Declare.
9081 (gnu_libc_printf_pointer_format): Remove declaration.
9082
9083 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9084
9085 * fold-const.c (native_encode_real): Fix logic for selecting offset
9086 to write to when BYTES_BIG_ENDIAN.
9087
9088 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
9089
9090 * builtins.c (fold_builtin_strchr): Remove function.
9091 (fold_builtin_strrchr): Likewise.
9092 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
9093 * gimple-fold.c (target_char_cst_p): New function.
9094 (gimple_fold_builtin_strchr) Add more foldings.
9095 (gimple_fold_builtin): Add index, strrchr, rindex cases.
9096
9097 2016-10-05 Richard Biener <rguenther@suse.de>
9098
9099 PR middle-end/77863
9100 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
9101 capture ids in c-exprs.
9102
9103 2016-10-05 Richard Biener <rguenther@suse.de>
9104
9105 PR middle-end/77826
9106 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
9107 with types_match for GIMPLE code gen to handle type mismatched
9108 constants properly.
9109 (dt_operand::gen): Adjust.
9110 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
9111 and constant A.
9112
9113 2016-10-05 Richard Biener <rguenther@suse.de>
9114
9115 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
9116
9117 2016-10-05 Richard Biener <rguenther@suse.de>
9118
9119 PR middle-end/77842
9120 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
9121
9122 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
9123
9124 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
9125 version check to protect only DW_TAG_imported_module generation.
9126
9127 2016-10-05 Richard Biener <rguenther@suse.de>
9128
9129 PR middle-end/55152
9130 * match.pd (min(a,-a) -> -abs(a)): New pattern.
9131
9132 2016-10-04 Ian Lance Taylor <iant@golang.org>
9133
9134 * explow.c (allocate_dynamic_stack_space): Call
9135 do_pending_stack_adjust before handling flag_split_stack.
9136
9137 2016-10-04 David Malcolm <dmalcolm@redhat.com>
9138
9139 * genattrtab.c (make_internal_attr): Supply dummy column number to
9140 file_location ctor.
9141 (main): Likewise.
9142 * genoutput.c (init_insn_for_nothing): Likewise.
9143 * gensupport.c (add_define_attr): Likewise.
9144 * read-md.c (message_at_1): Print column number.
9145 (fatal_with_file_and_line): Likewise.
9146 (rtx_reader::read_char): Track column numbers.
9147 (rtx_reader::unread_char): Likewise.
9148 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
9149 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
9150 (rtx_reader::handle_file): Initialize m_read_md_colno.
9151 (rtx_reader::get_current_location): Supply column number to
9152 file_location ctor.
9153 * read-md.h (struct file_location): Add field "colno".
9154 (file_location::file_location): Likewise.
9155 (rtx_reader::get_colno): New accessor.
9156 (rtx_reader::m_read_md_colno): New field.
9157 (rtx_reader::m_last_line_colno): New field.
9158
9159 2016-10-04 Jakub Jelinek <jakub@redhat.com>
9160
9161 * doc/extend.texi (Java Exceptions): Remove.
9162 (java_interface): Remove.
9163
9164 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
9165
9166 PR tree-optimization/77808
9167 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
9168 and addr are different before copying points-to information.
9169
9170 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
9171
9172 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
9173 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
9174 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
9175 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
9176
9177 2016-10-04 Richard Biener <rguenther@suse.de>
9178
9179 PR tree-optimization/77399
9180 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
9181 verify the target can convert.
9182
9183 2016-10-04 Richard Biener <rguenther@suse.de>
9184
9185 PR middle-end/77833
9186 * explow.c (plus_constant): Verify the mode of the constant
9187 pool offset before calling plus_constant.
9188
9189 2016-10-04 Richard Biener <rguenther@suse.de>
9190
9191 PR middle-end/77407
9192 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
9193 type support, mark with :C.
9194 (X / -X -> -1): Mark with :C.
9195
9196 2016-10-04 Jakub Jelinek <jakub@redhat.com>
9197
9198 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
9199 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
9200 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
9201 * doc/tm.texi: Regenerated.
9202 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
9203 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
9204 * config/darwin.h (JCR_SECTION_NAME): Remove.
9205 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
9206 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
9207 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
9208 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
9209 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
9210 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
9211
9212 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9213
9214 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
9215 between "because" and "param" in dump message in call to fprintf.
9216
9217 2016-10-03 Jeff Law <law@redhat.com>
9218
9219 PR tree-optimization/71550
9220 PR tree-optimization/71403
9221 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
9222 (profitable_jump_thread_path): Also return boolean indicating if
9223 the realized path will create an irreducible loop.
9224 Remove loop depth tests from 71403.
9225 (fsm_find_control_statement_thread_paths): Remove loop depth tests
9226 from 71403. If threading will create an irreducible loop, then
9227 throw away loop iteration and related information.
9228
9229 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
9230
9231 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
9232 -Woverloaded-virtual checks for warning options.
9233 * configure: Regenerate.
9234
9235 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
9236
9237 PR preprocessor/77699
9238 * input.c (maybe_grow): Don't allocate one byte extra headroom.
9239 (get_next_line): Return false on error.
9240 (read_next_line): Removed, use get_next_line instead.
9241 (read_line_num): Don't copy the line.
9242 (location_get_source_line): Don't use static data.
9243 (selftest::test_reading_source_line): Add more test cases.
9244
9245 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9246
9247 Revert
9248 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9249
9250 * ifcvt.c (noce_try_avoid_const_materialization): New function.
9251 (noce_process_if_block): Use it.
9252
9253 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
9254
9255 * doc/invoke.texi: Update -Wint-in-bool-context.
9256
9257 2016-10-02 Jakub Jelinek <jakub@redhat.com>
9258
9259 * dwarf2out.c (output_fde, output_call_frame_info,
9260 dwarf2out_do_cfi_startproc, set_indirect_string,
9261 gen_internal_sym, output_die, output_line_info): Use
9262 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
9263 ASM_GENERATE_INTERNAL_LABEL output.
9264
9265 2016-10-01 Richard Biener <rguenther@suse.de>
9266
9267 PR middle-end/77798
9268 * genmatch.c (get_operand_type): Add operand position arg
9269 and handle COND_EXPR comparison operand with fixed boolean_type_node.
9270 (expr::gen_transform): Adjust.
9271 (dt_simplify::gen_1): Likewise.
9272
9273 2016-10-01 Jakub Jelinek <jakub@redhat.com>
9274
9275 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
9276 comments. Simplify asserts, remove unnecessary conditions.
9277 Formatting fixes.
9278 (*<code><mode>3): Likewise.
9279
9280 2016-09-30 Jakub Jelinek <jakub@redhat.com>
9281
9282 * doc/invoke.texi (-Wregister): Document.
9283
9284 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
9285
9286 * configure.ac: Split CHECKING_P into CHECKING_P and
9287 ENABLE_EXTRA_CHECKING.
9288 * configure: Regenerated.
9289 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
9290 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
9291
9292 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
9293
9294 PR other/31566
9295 * gcc.c (process_command): For @filename handling, output
9296 the correct name if the file does not exist.
9297
9298 2016-09-30 Marek Polacek <polacek@redhat.com>
9299
9300 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
9301 * config/alpha/predicates.md: Likewise.
9302
9303 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9304
9305 * ifcvt.c (noce_try_avoid_const_materialization): New function.
9306 (noce_process_if_block): Use it.
9307
9308 2016-09-30 Martin Liska <mliska@suse.cz>
9309
9310 * doc/invoke.texi: Document asan-use-after-return that
9311 it's disabled by default in runtime.
9312
9313 2016-09-30 Richard Biener <rguenther@suse.de>
9314
9315 * tree-vrp.c (intersect_ranges): If we failed to handle
9316 the intersection choose a constant singleton range if available.
9317
9318 2016-09-30 Richard Biener <rguenther@suse.de>
9319
9320 PR tree-optimization/77399
9321 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
9322 float <-> int conversions.
9323
9324 2016-09-30 Alan Modra <amodra@gmail.com>
9325
9326 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
9327
9328 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
9329
9330 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
9331 ext_level before calling CPUID with 0x80000008.
9332 Simplify xgetbv checks.
9333
9334 2016-09-29 David Malcolm <dmalcolm@redhat.com>
9335
9336 * Makefile.in (OBJS): Add print-rtl-function.o.
9337 * print-rtl-function.c: New file.
9338 * print-rtl.h (print_rtx_function): New decl.
9339
9340 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
9341
9342 PR target/77756
9343 * config/i386/cpuid.h (__get_cpuid_count): New.
9344 (__get_cpuid): Rename __level to __leaf.
9345
9346 2016-09-29 Marek Polacek <polacek@redhat.com>
9347
9348 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
9349
9350 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
9351
9352 PR target/77718
9353 * builtins.c (expand_builtin_memcmp): Don't swap args unless
9354 result is only being compared with zero.
9355
9356 2016-09-29 Marek Polacek <polacek@redhat.com>
9357
9358 * dwarf2out.c (loc_descriptor): Add fall through comment.
9359 (add_const_value_attribute): Likewise.
9360
9361 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
9362
9363 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
9364 with "v6t2". Move "arch" attribute above "pool_range".
9365 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
9366 with "v6t2".
9367 (*thumb2_movhi_vfp): Likewise.
9368 (*arm_movhi_fp16): Likewise.
9369 (*thumb2_movhi_fp16): Likewise.
9370 (*arm_movsi_vfp): Remove "arch" attribute.
9371 (*thumb2_movsi_vfp): Likewise.
9372
9373 2016-09-29 Martin Liska <mliska@suse.cz>
9374
9375 * doc/extend.texi: Remove limitation of Objective C for
9376 __attribute__((constructor)) and __attribute__((destructor)).
9377
9378 2016-09-29 Richard Biener <rguenther@suse.de>
9379
9380 PR tree-optimization/77768
9381 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9382 Handle stores to readonly memory when removing redundant stores.
9383
9384 2016-09-29 Richard Biener <rguenther@suse.de>
9385
9386 PR middle-end/77407
9387 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
9388 X / -X -> -1 simplifications.
9389
9390 2016-09-29 Richard Biener <rguenther@suse.de>
9391
9392 PR middle-end/55152
9393 * match.pd: Add max(a,-a) -> abs(a) pattern.
9394 * tree-ssa-phiopt.c (minmax_replacement): Disable for
9395 HONOR_SIGNED_ZEROS types.
9396
9397 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
9398
9399 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
9400 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
9401
9402 2016-09-29 Richard Biener <rguenther@suse.de>
9403
9404 * tree-vrp.c (set_defs_to_varying): New helper avoiding
9405 writing to vr_const_varying.
9406 (vrp_initialize): Call it.
9407 (vrp_visit_stmt): Likewise.
9408 (evrp_dom_walker::before_dom_children): Likewise.
9409
9410 2016-09-29 Richard Biener <rguenther@suse.de>
9411
9412 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
9413 constructors with vector elements.
9414
9415 2016-09-29 Richard Biener <rguenther@suse.de>
9416
9417 PR tree-optimization/77768
9418 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
9419 with stores to a place we know has a constant value.
9420
9421 2016-09-29 Alan Modra <amodra@gmail.com>
9422
9423 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
9424 * doc/invoke.texi: Document it.
9425 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
9426 (rs6000_passes_float): Comment.
9427 (rs6000_passes_long_double): New static var.
9428 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
9429 (init_cumulative_args): Set up to emit fp .gnu_attribute for
9430 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
9431 to include fp values returned in vectors.
9432 Set rs6000_passes_long_double.
9433 (rs6000_function_arg_advance_1): Likewise for function args.
9434 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
9435 and SPE. Emit long double tag value too.
9436 (rs6000_opt_vars): Add gnu-attr.
9437 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
9438 * configure: Regenerate.
9439 * config.in: Regenerate.
9440
9441 2016-09-28 Jakub Jelinek <jakub@redhat.com>
9442
9443 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
9444 of 0 < x.
9445 (format_floating, format_string, format_directive,
9446 get_destination_size, pass_sprintf_length::handle_gimple_call):
9447 Likewise.
9448
9449 2016-09-28 Jakub Jelinek <jakub@redhat.com>
9450
9451 * gimple-ssa-sprintf.c: Fix comment formatting.
9452 (format_integer): Use is_gimple_assign.
9453 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
9454 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
9455 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
9456 (pass_sprintf_length::execute): Use is_gimple_call.
9457
9458 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
9459
9460 * gimple-fold.c (gimple_fold_builtin): After failing to fold
9461 strchr, also try the generic folding.
9462
9463 2016-09-28 Martin Sebor <msebor@redhat.com>
9464
9465 PR c/77762
9466 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
9467 Fix typos.
9468
9469 2016-09-28 Martin Sebor <msebor@redhat.com>
9470
9471 PR middle-end/77683
9472 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
9473 length modifier is not expected.
9474 (format_floating): Ignore l length modifier and fail gracefuly
9475 when it isn't one of the other expected ones.
9476
9477 2016-09-28 Martin Sebor <msebor@redhat.com>
9478
9479 PR bootstrap/77753
9480 * varasm.c (assemble_addr_to_section): Increase local buffer size.
9481
9482 2016-09-27 Richard Biener <rguenther@suse.de>
9483
9484 * dwarf2out.c (cu_die_list): New global.
9485 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
9486 main_comp_unit_die to cu_die_list if we created it.
9487 Move break_out_includes ...
9488 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
9489 the cu_die_list.
9490
9491 2016-09-28 Richard Biener <rguenther@suse.de>
9492
9493 * dwarf2out.c (struct die_struct): Add removed flag.
9494 (lookup_type_die): If the DIE is marked as removed, clear
9495 TYPE_SYMTAB_DIE and return NULL.
9496 (lookup_decl_die): If the DIE is marked as removed, remove it
9497 from the hash and return NULL.
9498 (mark_removed): New helper.
9499 (prune_unused_types_prune): Call it for removed DIEs.
9500 (gen_subprogram_die): Move the premark_used_types call to after
9501 DIEs for the functions scopes are generated.
9502 (process_scope_var): Do not re-create pruned types or type decls.
9503 Make sure to also re-parent type decls.
9504 (dwarf2out_finish): Move unused type pruning and debug_types
9505 handling ...
9506 (dwarf2out_early_finish): ... here.
9507
9508 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
9509
9510 * config/arc/arc-c.c: New file.
9511 * config/arc/arc-c.def: Likewise.
9512 * config/arc/t-arc: Likewise.
9513 * config.gcc: Include arc-c.o as c and cpp object.
9514 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
9515 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
9516 arc_cpu_cpp_builtins.
9517
9518 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
9519
9520 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
9521 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
9522
9523 2016-09-28 Nathan Sidwell <nathan@acm.org>
9524
9525 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
9526 printing.
9527
9528 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
9529
9530 PR tree-optimization/61056
9531 * gimple-fold.c (gimple_fold_builtin_strchr):
9532 New function to optimize strchr (s, 0) to strlen.
9533 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
9534
9535 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
9536
9537 PR tree-optimization/77724
9538 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
9539 Add tree_fits_shwi_p check.
9540
9541 2016-09-27 Jakub Jelinek <jakub@redhat.com>
9542
9543 * auto-inc-dec.c (try_merge): Remove break after return.
9544 * cselib.c (autoinc_split): Likewise.
9545 * explow.c (promote_mode): Likewise.
9546 * fixed-value.c (fixed_arithmetic): Likewise.
9547 * hsa.c (hsa_internal_fn::get_arity): Likewise.
9548 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
9549 * trans-mem.c (get_attrs_for): Likewise.
9550 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
9551 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
9552 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
9553 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
9554 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
9555 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
9556 * config/cris/cris.c (cris_op_str): Likewise.
9557 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
9558 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
9559
9560 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
9561
9562 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
9563 IFN_GOACC_REDUCTION_CODES): New.
9564 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
9565 ifn_goacc_reduction_kind): Use them.
9566 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
9567 of internal functions, when applicable.
9568
9569 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
9570
9571 * config/mips/constraints.md (d): Fix documentation.
9572 * doc/md.texi (Machine Constraints): Update accordingly.
9573
9574 2016-09-27 Richard Biener <rguenther@suse.de>
9575
9576 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
9577 cur_line_info_table initialization ...
9578 (dwarf2out_assembly_start): ... here.
9579
9580 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
9581
9582 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
9583 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
9584 (*thumb2_movhi_vfp): Likewise.
9585 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
9586 template. Expand predicable attribute to mark VMOV.F16 as not
9587 predicable. Add "arch" attribute.
9588 (*thumb2_movhi_fp16): Likewise.
9589 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
9590 (*thumb2_movsi_vfp): Add "arch" attribute.
9591
9592 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
9593
9594 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
9595 VAR_DECL string.
9596
9597 2016-09-27 Marek Polacek <polacek@redhat.com>
9598
9599 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
9600 comment.
9601
9602 * config/c6x/c6x.h: Adjust fall through comment.
9603 * config/sh/sh.c (final_prescan_insn): Likewise.
9604 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
9605 (visium_expand_fp_cstore): Likewise.
9606
9607 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9608
9609 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
9610 expected by -Wimplicit-fallthrough.
9611 (thumb1_size_rtx_costs): Likewise.
9612 (thumb2_reorg): Likewise.
9613 (tls_mentioned_p): Add "Fall through" comment.
9614 (thumb2_reorg): Likewise.
9615 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
9616 comment form expected by -Wimplicit-fallthrough.
9617
9618 2016-09-27 Martin Liska <mliska@suse.cz>
9619
9620 PR gcov-profile/46266
9621 * input.h (RESERVED_LOCATION_P): New macro.
9622 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
9623 instread of comparison with UNKNOWN_LOCATION.
9624
9625 2016-09-27 Richard Biener <rguenther@suse.de>
9626
9627 PR tree-optimization/77745
9628 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9629 When removing redundant stores make sure to check compatibility
9630 of the TBAA state for downstream accesses.
9631 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
9632 value-numbering virtual operands for store matches.
9633
9634 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
9635
9636 PR target/51244
9637 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
9638 movrt patterns. Match them before anything else in the SET case.
9639
9640 2016-09-27 Martin Liska <mliska@suse.cz>
9641
9642 PR gcov-profile/7970
9643 PR gcov-profile/16855
9644 PR gcov-profile/44779
9645 * coverage.c (build_gcov_exit_decl): New function.
9646 (coverage_obj_init): Call the function and generate __gcov_exit
9647 destructor.
9648 * doc/gcov.texi: Document when __gcov_exit function is called.
9649
9650 2016-09-27 Marek Polacek <polacek@redhat.com>
9651
9652 PR bootstrap/77751
9653 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
9654 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
9655 -Wno-error instead of -Wno-implicit-fallthrough.
9656
9657 2016-09-27 Martin Liska <mliska@suse.cz>
9658
9659 PR bootstrap/77749
9660 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
9661
9662 2016-09-27 Jakub Jelinek <jakub@redhat.com>
9663
9664 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
9665 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
9666 comments. Remove break after return.
9667 (ix86_fp_compare_code_to_integer, has_dispatch,
9668 ix86_simd_clone_usable): Remove break after return.
9669
9670 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
9671
9672 PR rlt-optimization/77714
9673 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
9674 REG_EQUAL note.
9675
9676 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
9677
9678 PR ipa/77677
9679 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
9680 extract_range_from_unary_expr to convert value_range.
9681 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
9682 (extract_range_from_unary_expr): This.
9683 * tree-vrp.h (extract_range_from_unary_expr): Declare.
9684
9685 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
9686
9687 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
9688
9689 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9690
9691 * config/i386/i386.c (ix86_print_operand)
9692 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
9693 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
9694 (epilogue_renumber): Likewise.
9695
9696 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
9697
9698 PR middle-end/77719
9699 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
9700 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
9701
9702 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
9703
9704 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
9705 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
9706 is_mm_seq_cst, is_mm_sync): Move to ...
9707 * memmodel.h: This. New file.
9708 * builtins.c: Include memmodel.h.
9709 * optabs.c: Likewise.
9710 * tsan.c: Likewise.
9711 * config/aarch64/aarch64.c: Likewise.
9712 * config/alpha/alpha.c: Likewise.
9713 * config/arm/arm.c: Likewise.
9714 * config/i386/i386.c: Likewise.
9715 * config/ia64/ia64.c: Likewise.
9716 * config/mips/mips.c: Likewise.
9717 * config/rs6000/rs6000.c: Likewise.
9718 * config/sparc/sparc.c: Likewise.
9719 * genconditions.c: Include memmodel.h in generated file.
9720 * genemit.c: Likewise.
9721 * genoutput.c: Likewise.
9722 * genpeep.c: Likewise.
9723 * genpreds.c: Likewise.
9724 * genrecog.c: Likewise.
9725
9726 2016-09-26 David Malcolm <dmalcolm@redhat.com>
9727
9728 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
9729 "c" instead when parsing characters. Move operand parsing into...
9730 (read_rtx_operand): ...this new function, renaming "i" to "idx",
9731 and tightening the scope of various locals.
9732
9733 2016-09-26 Liu Hao <lh_mouse@126.com>
9734
9735 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
9736
9737 2016-09-26 Marek Polacek <polacek@redhat.com>
9738
9739 * system.h: Use __has_attribute to check whether the fallthrough
9740 attribute is supported.
9741
9742 2016-09-26 Marek Polacek <polacek@redhat.com>
9743
9744 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
9745 gimple_call_internal_p.
9746 * ipa-split.c (find_return_bb): Likewise.
9747 (execute_split_functions): Likewise.
9748 * omp-low.c (dump_oacc_loop_part): Likewise.
9749 (oacc_loop_xform_head_tail): Likewise.
9750 * predict.c (predict_loops): Likewise.
9751 * sanopt.c (pass_sanopt::execute): Likewise.
9752 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
9753 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
9754 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
9755 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
9756 (expand_ifn_va_arg): Likewise.
9757 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
9758 (optimize_mask_stores): Likewise.
9759 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
9760 (vect_transform_stmt): Likewise.
9761 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
9762 * tsan.c (instrument_memory_accesses): Likewise.
9763
9764 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9765 Alexander Monakov <amonakov@ispras.ru>
9766
9767 * regrename.c (rename_chains): Check
9768 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
9769 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
9770 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
9771
9772 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9773
9774 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
9775 (s390_sched_score): Likewise.
9776
9777 2016-09-26 Martin Liska <mliska@suse.cz>
9778
9779 * doc/gcov.texi: Update program output of gcov tool.
9780
9781 2016-09-26 Martin Liska <mliska@suse.cz>
9782
9783 PR gcov-profile/23332
9784 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
9785 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
9786 * value-prof.c (dump_histogram_value): Do not handle
9787 HIST_TYPE_CONST_DELTA.
9788 (stream_in_histogram_value): Likewise.
9789 (gimple_find_values_to_profile): Likewise.
9790 * value-prof.h (enum hist_type): Likewise.
9791
9792 2016-09-26 Martin Liska <mliska@suse.cz>
9793
9794 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
9795 from default sanitize recover values.
9796 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
9797 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
9798 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
9799 consistent.
9800 * opts.c (finish_options): Do a generic loop over options
9801 that can be recovered.
9802 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
9803 SANITIZE_RETURN.
9804 (common_handle_option): Likewise.
9805 * opts.h: Declare can_recover to sanitizer_opts_s.
9806
9807 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
9808
9809 * target.def(elf_flags_numeric): Change documentation to present tense.
9810 * doc/tm.texi: Regenerate.
9811
9812 2016-09-26 Marek Polacek <polacek@redhat.com>
9813
9814 PR c/7652
9815 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
9816 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
9817 -Wno-switch-fallthrough.
9818 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
9819 (expand_builtin): Likewise.
9820 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
9821 * convert.c (convert_to_real_1): Likewise.
9822 (convert_to_integer_1): Likewise.
9823 * final.c (output_alternate_entry_point): Likewise.
9824 * genattrtab.c (make_canonical): Likewise.
9825 (write_test_expr): Likewise.
9826 * genpreds.c (validate_exp): Likewise.
9827 * gimple-ssa-strength-reduction.c
9828 (find_candidates_dom_walker::before_dom_children): Likewise.
9829 * godump.c (go_format_type): Likewise.
9830 * reload1.c (elimination_effects): Likewise.
9831 * resource.c (mark_referenced_resources): Likewise.
9832 (mark_set_resources): Likewise.
9833 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
9834 * varasm.c (output_addressed_constants): Likewise.
9835
9836 2016-09-26 Marek Polacek <polacek@redhat.com>
9837
9838 PR c/7652
9839 * common.opt (Wimplicit-fallthrough): New option.
9840 * doc/extend.texi: Document statement attributes and the fallthrough
9841 attribute.
9842 * doc/invoke.texi: Document -Wimplicit-fallthrough.
9843 * gimple.h (gimple_call_internal_p): New function.
9844 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
9845 (struct label_entry): New struct.
9846 (find_label_entry): New function.
9847 (case_label_p): New function.
9848 (collect_fallthrough_labels): New function.
9849 (last_stmt_in_scope): New function.
9850 (should_warn_for_implicit_fallthrough): New function.
9851 (warn_implicit_fallthrough_r): New function.
9852 (maybe_warn_implicit_fallthrough): New function.
9853 (expand_FALLTHROUGH_r): New function.
9854 (expand_FALLTHROUGH): New function.
9855 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
9856 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
9857 (gimplify_label_expr): New function.
9858 (gimplify_case_label_expr): Set location.
9859 (gimplify_expr): Call gimplify_label_expr.
9860 * internal-fn.c (expand_FALLTHROUGH): New function.
9861 * internal-fn.def (FALLTHROUGH): New internal function.
9862 * langhooks.c (lang_GNU_OBJC): New function.
9863 * langhooks.h (lang_GNU_OBJC): Declare.
9864 * system.h (gcc_fallthrough): Define.
9865 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
9866 * tree.h (FALLTHROUGH_LABEL_P): Define.
9867
9868 2016-09-26 Richard Biener <rguenther@suse.de>
9869
9870 * dwarf2out.c (stripattributes): Remove unused function.
9871 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
9872 Push dwarf_split_debug_info handling into init_sections_and_labels.
9873 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
9874 (DEBUG_MACRO_SECTION_FLAGS): Remove.
9875 (debug_macinfo_section_name): New global.
9876 (output_macinfo): Use debug_macinfo_section_name.
9877 (init_sections_and_labels): Split out section and label generation
9878 from dwarf2out_init. Set debug_macinfo_section_name.
9879 (dwarf2out_init): Move text section label generation and emission
9880 to ...
9881 (dwarf2out_assembly_start): ... here.
9882 (dwarf2out_finish): Call init_sections_and_labels before DWARF
9883 output starts.
9884
9885 2016-09-26 Richard Biener <rguenther@suse.de>
9886
9887 PR debug/77692
9888 * cgraphunit.c (analyze_functions): Before early removing
9889 global vars calls the late_global_decl debug handler mark
9890 the variable as readonly.
9891
9892 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
9893
9894 PR target/51244
9895 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
9896 (sh_rtx_costs): Handle SET of movt and movrt patterns.
9897 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
9898 declare new overloads.
9899 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
9900 operand.
9901
9902 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
9903
9904 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
9905 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
9906
9907 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
9908
9909 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
9910 * configure: Regenerate.
9911
9912 2016-09-24 Marek Polacek <polacek@redhat.com>
9913
9914 PR c/77490
9915 * doc/invoke.texi: Document -Wbool-operation.
9916
9917 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
9918
9919 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
9920 * config/rs6000/rs6000.c (expand_block_compare): New function used by
9921 cmpmemsi pattern to do builtin expansion of memcmp ().
9922 (compute_current_alignment): Add helper function for
9923 expand_block_compare used to compute alignment as the compare proceeds.
9924 (select_block_compare_mode): Used by expand_block_compare to select
9925 the mode used for reading the next chunk of bytes in the compare.
9926 (do_load_for_compare): Used by expand_block_compare to emit the load
9927 insns for the compare.
9928 (rs6000_emit_dot_insn): Moved this function to avoid a forward
9929 reference from expand_block_compare ().
9930 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
9931 prototype for this function.
9932 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
9933 target option for controlling how much code inline expansion of
9934 memcmp() will be allowed to generate.
9935
9936 2016-09-23 Jakub Jelinek <jakub@redhat.com>
9937
9938 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
9939 hook_bool_mode_false, hook_bool_mode_true,
9940 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
9941 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
9942 hook_bool_const_rtx_insn_const_rtx_insn_true,
9943 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
9944 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
9945 hook_bool_const_tree_hwi_hwi_const_tree_false,
9946 hook_bool_const_tree_hwi_hwi_const_tree_true,
9947 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
9948 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
9949 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
9950 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
9951 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
9952 hook_bool_const_tree_true, hook_bool_tree_tree_false,
9953 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
9954 hook_bool_rtx_insn_true, hook_bool_rtx_false,
9955 hook_bool_uintp_uintp_false,
9956 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
9957 hook_rtx_tree_int_null, hook_uint_mode_0,
9958 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
9959 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
9960 hook_constcharptr_const_rtx_insn_null,
9961 hook_constcharptr_const_tree_const_tree_null,
9962 hook_constcharptr_int_const_tree_null,
9963 hook_constcharptr_int_const_tree_const_tree_null,
9964 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
9965 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
9966 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
9967
9968 * vec.h (vNULL): Extend comment to say = vNULL initialization
9969 isn't needed for static vars.
9970
9971 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
9972 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
9973 = vNULL initialization of file scope vec.
9974 * passes.c (pass_tab, enabled_pass_uid_range_tab,
9975 disabled_pass_uid_range_tab): Likewise.
9976 * haifa-sched.c (sched_luids, h_i_d): Likewise.
9977 * tree-chkp-opt.c (check_infos): Likewise.
9978 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
9979
9980 * vec.h (vnull::operator vec): Add constexpr keyword for
9981 C++11 and later.
9982
9983 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
9984
9985 PR tree-optimization/77654
9986 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
9987 to duplicate_ssa_name_ptr_info.
9988
9989 2016-09-23 David Malcolm <dmalcolm@redhat.com>
9990
9991 PR preprocessor/77672
9992 * input.c (selftest::test_lexer_string_locations_simple): Update
9993 test to expect location information of the terminator character
9994 at the location of the final closing quote.
9995 (selftest::test_lexer_string_locations_hex): Likewise.
9996 (selftest::test_lexer_string_locations_oct): Likewise.
9997 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
9998 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
9999 (selftest::test_lexer_string_locations_ucn4): Likewise.
10000 (selftest::test_lexer_string_locations_ucn8): Likewise.
10001 (selftest::test_lexer_string_locations_u8): Likewise.
10002 (selftest::test_lexer_string_locations_utf8_source): Likewise.
10003 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
10004 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
10005 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
10006 (selftest::test_lexer_string_locations_macro): Likewise.
10007 (selftest::test_lexer_string_locations_long_line): Likewise.
10008
10009 2016-09-23 Richard Biener <rguenther@suse.de>
10010
10011 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
10012 virtual definition to virtual use if the call devirtualizes
10013 to a const or pure function.
10014 (visit_use): Also visit calls we can devirtualize to a
10015 const or pure function.
10016
10017 2016-09-23 Richard Biener <rguenther@suse.de>
10018
10019 PR tree-optimization/77697
10020 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
10021 signal error if we have sth ternary or unhandled.
10022
10023 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10024
10025 * config/arm/arm_neon.h (vabd_f16): New.
10026 (vabdq_f16): New.
10027 (vabs_f16): New.
10028 (vabsq_f16): New.
10029 (vadd_f16): New.
10030 (vaddq_f16): New.
10031 (vcage_f16): New.
10032 (vcageq_f16): New.
10033 (vcagt_f16): New.
10034 (vcagtq_f16): New.
10035 (vcale_f16): New.
10036 (vcaleq_f16): New.
10037 (vcalt_f16): New.
10038 (vcaltq_f16): New.
10039 (vceq_f16): New.
10040 (vceqq_f16): New.
10041 (vceqz_f16): New.
10042 (vceqzq_f16): New.
10043 (vcge_f16): New.
10044 (vcgeq_f16): New.
10045 (vcgez_f16): New.
10046 (vcgezq_f16): New.
10047 (vcgt_f16): New.
10048 (vcgtq_f16): New.
10049 (vcgtz_f16): New.
10050 (vcgtzq_f16): New.
10051 (vcle_f16): New.
10052 (vcleq_f16): New.
10053 (vclez_f16): New.
10054 (vclezq_f16): New.
10055 (vclt_f16): New.
10056 (vcltq_f16): New.
10057 (vcltz_f16): New.
10058 (vcltzq_f16): New.
10059 (vcvt_f16_s16): New.
10060 (vcvt_f16_u16): New.
10061 (vcvt_s16_f16): New.
10062 (vcvt_u16_f16): New.
10063 (vcvtq_f16_s16): New.
10064 (vcvtq_f16_u16): New.
10065 (vcvtq_s16_f16): New.
10066 (vcvtq_u16_f16): New.
10067 (vcvta_s16_f16): New.
10068 (vcvta_u16_f16): New.
10069 (vcvtaq_s16_f16): New.
10070 (vcvtaq_u16_f16): New.
10071 (vcvtm_s16_f16): New.
10072 (vcvtm_u16_f16): New.
10073 (vcvtmq_s16_f16): New.
10074 (vcvtmq_u16_f16): New.
10075 (vcvtn_s16_f16): New.
10076 (vcvtn_u16_f16): New.
10077 (vcvtnq_s16_f16): New.
10078 (vcvtnq_u16_f16): New.
10079 (vcvtp_s16_f16): New.
10080 (vcvtp_u16_f16): New.
10081 (vcvtpq_s16_f16): New.
10082 (vcvtpq_u16_f16): New.
10083 (vcvt_n_f16_s16): New.
10084 (vcvt_n_f16_u16): New.
10085 (vcvtq_n_f16_s16): New.
10086 (vcvtq_n_f16_u16): New.
10087 (vcvt_n_s16_f16): New.
10088 (vcvt_n_u16_f16): New.
10089 (vcvtq_n_s16_f16): New.
10090 (vcvtq_n_u16_f16): New.
10091 (vfma_f16): New.
10092 (vfmaq_f16): New.
10093 (vfms_f16): New.
10094 (vfmsq_f16): New.
10095 (vmax_f16): New.
10096 (vmaxq_f16): New.
10097 (vmaxnm_f16): New.
10098 (vmaxnmq_f16): New.
10099 (vmin_f16): New.
10100 (vminq_f16): New.
10101 (vminnm_f16): New.
10102 (vminnmq_f16): New.
10103 (vmul_f16): New.
10104 (vmul_lane_f16): New.
10105 (vmul_n_f16): New.
10106 (vmulq_f16): New.
10107 (vmulq_lane_f16): New.
10108 (vmulq_n_f16): New.
10109 (vneg_f16): New.
10110 (vnegq_f16): New.
10111 (vpadd_f16): New.
10112 (vpmax_f16): New.
10113 (vpmin_f16): New.
10114 (vrecpe_f16): New.
10115 (vrecpeq_f16): New.
10116 (vrnd_f16): New.
10117 (vrndq_f16): New.
10118 (vrnda_f16): New.
10119 (vrndaq_f16): New.
10120 (vrndm_f16): New.
10121 (vrndmq_f16): New.
10122 (vrndn_f16): New.
10123 (vrndnq_f16): New.
10124 (vrndp_f16): New.
10125 (vrndpq_f16): New.
10126 (vrndx_f16): New.
10127 (vrndxq_f16): New.
10128 (vrsqrte_f16): New.
10129 (vrsqrteq_f16): New.
10130 (vrecps_f16): New.
10131 (vrecpsq_f16): New.
10132 (vrsqrts_f16): New.
10133 (vrsqrtsq_f16): New.
10134 (vsub_f16): New.
10135 (vsubq_f16): New.
10136
10137 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10138
10139 * config.gcc (extra_headers): Add arm_fp16.h
10140 * config/arm/arm_fp16.h: New.
10141 * config/arm/arm_neon.h: Include "arm_fp16.h".
10142
10143 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10144
10145 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
10146 variants).
10147 (vmulf): New (v8hf, v4hf variants).
10148 (vfma): New (v8hf, v4hf variants).
10149 (vfms): New (v8hf, v4hf variants).
10150 (vsub): New (v8hf, v4hf variants).
10151 (vcage): New (v8hf, v4hf variants).
10152 (vcagt): New (v8hf, v4hf variants).
10153 (vcale): New (v8hf, v4hf variants).
10154 (vcalt): New (v8hf, v4hf variants).
10155 (vceq): New (v8hf, v4hf variants).
10156 (vcgt): New (v8hf, v4hf variants).
10157 (vcge): New (v8hf, v4hf variants).
10158 (vcle): New (v8hf, v4hf variants).
10159 (vclt): New (v8hf, v4hf variants).
10160 (vceqz): New (v8hf, v4hf variants).
10161 (vcgez): New (v8hf, v4hf variants).
10162 (vcgtz): New (v8hf, v4hf variants).
10163 (vcltz): New (v8hf, v4hf variants).
10164 (vclez): New (v8hf, v4hf variants).
10165 (vabd): New (v8hf, v4hf variants).
10166 (vmaxf): New (v8hf, v4hf variants).
10167 (vmaxnm): New (v8hf, v4hf variants).
10168 (vminf): New (v8hf, v4hf variants).
10169 (vminnm): New (v8hf, v4hf variants).
10170 (vpmaxf): New (v4hf variant).
10171 (vpminf): New (v4hf variant).
10172 (vpadd): New (v4hf variant).
10173 (vrecps): New (v8hf, v4hf variants).
10174 (vrsqrts): New (v8hf, v4hf variants).
10175 (vabs): New (v8hf, v4hf variants).
10176 (vneg): New (v8hf, v4hf variants).
10177 (vrecpe): New (v8hf, v4hf variants).
10178 (vrnd): New (v8hf, v4hf variants).
10179 (vrnda): New (v8hf, v4hf variants).
10180 (vrndm): New (v8hf, v4hf variants).
10181 (vrndn): New (v8hf, v4hf variants).
10182 (vrndp): New (v8hf, v4hf variants).
10183 (vrndx): New (v8hf, v4hf variants).
10184 (vrsqrte): New (v8hf, v4hf variants).
10185 (vmul_lane): Add v4hf and v8hf variants.
10186 (vmul_n): Add v4hf and v8hf variants.
10187 (vext): New (v8hf, v4hf variants).
10188 (vcvts): New (v8hi, v4hi variants).
10189 (vcvts): New (v8hf, v4hf variants).
10190 (vcvtu): New (v8hi, v4hi variants).
10191 (vcvtu): New (v8hf, v4hf variants).
10192 (vcvts_n): New (v8hf, v4hf variants).
10193 (vcvtu_n): New (v8hi, v4hi variants).
10194 (vcvts_n): New (v8hi, v4hi variants).
10195 (vcvtu_n): New (v8hf, v4hf variants).
10196 (vbsl): New (v8hf, v4hf variants).
10197 (vcvtas): New (v8hf, v4hf variants).
10198 (vcvtau): New (v8hf, v4hf variants).
10199 (vcvtms): New (v8hf, v4hf variants).
10200 (vcvtmu): New (v8hf, v4hf variants).
10201 (vcvtns): New (v8hf, v4hf variants).
10202 (vcvtnu): New (v8hf, v4hf variants).
10203 (vcvtps): New (v8hf, v4hf variants).
10204 (vcvtpu): New (v8hf, v4hf variants).
10205
10206 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10207
10208 * config/arm/arm-builtins.c (hf_UP): New.
10209 (si_UP): New.
10210 (vfp_builtin_data): New. Update comment.
10211 (enum arm_builtins): Include "arm_vfp_builtins.def".
10212 (ARM_BUILTIN_VFP_PATTERN_START): New.
10213 (arm_init_vfp_builtins): New.
10214 (arm_init_builtins): Add arm_init_vfp_builtins.
10215 (arm_expand_vfp_builtin): New.
10216 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
10217 long line.
10218 * config/arm/arm_vfp_builtins.def: New file.
10219 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
10220 (arm-builtins.o): Likewise.
10221
10222 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
10223
10224 PR ipa/77677
10225 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
10226 from constant while creating value range.
10227
10228 2016-09-23 Renlin Li <renlin.li@arm.com>
10229
10230 * ira.c (ira): Move ira_use_lra_p initialization code to ...
10231 (ira_init_once): Here.
10232
10233 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
10234 Jakub Jelinek <jakub@redhat.com>
10235
10236 * hooks.h (hook_uint_uintp_false): Rename to...
10237 (hook_bool_uint_uintp_false): ... this.
10238 * hooks.c (hook_uint_uintp_false): Rename to...
10239 (hook_bool_uint_uintp_false): ... this.
10240 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
10241 instead of hook_uint_uintp_false.
10242
10243 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10244
10245 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
10246 (arm_init_builtins): Move body of a loop to the standalone
10247 function arm_init_neon_builtin.
10248 (arm_expand_neon_builtin_1): New. Update comment. Function body
10249 moved from arm_neon_builtin with some white-space fixes.
10250 (arm_expand_neon_builtin): Move code into the standalone function
10251 arm_expand_neon_builtin_1.
10252
10253 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10254
10255 * config/arm/iterators.md (VCVTHI): New.
10256 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
10257 (NEON_VAGLTE): New.
10258 (VFM_LANE_AS): New.
10259 (VH_CVTTO): New.
10260 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
10261 (V_HALF): Add V4HF. Fix white-space.
10262 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
10263 (V_s_elem): Likewise.
10264 (V_sz_elem): Fix white-space.
10265 (V_elem_ch): Likewise.
10266 (VH_elem_ch): New.
10267 (scalar_mul_constraint): Add V8HF and V4HF.
10268 (Is_float_mode): Fix white-space.
10269 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
10270 (q): Add HF. Fix white-space.
10271 (float_sup): New.
10272 (float_SUP): New.
10273 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
10274 (neon_vfm_lane_as): New.
10275 * config/arm/neon.md (add<mode>3_fp16): New.
10276 (sub<mode>3_fp16): New.
10277 (mul<mode>3add<mode>_neon): New.
10278 (fma<VH:mode>4_intrinsic): New.
10279 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
10280 (fmsub<VH:mode>4_intrinsic): New.
10281 (<absneg_str><mode>2): New.
10282 (neon_v<absneg_str><mode>): New.
10283 (neon_v<fp16_rnd_str><mode>): New.
10284 (neon_vrsqrte<mode>): New.
10285 (neon_vpaddv4hf): New.
10286 (neon_vadd<mode>): New.
10287 (neon_vsub<mode>): New.
10288 (neon_vmulf<mode>): New.
10289 (neon_vfma<VH:mode>): New.
10290 (neon_vfms<VH:mode>): New.
10291 (neon_vc<cmp_op><mode>): New.
10292 (neon_vc<cmp_op><mode>_fp16insn): New
10293 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
10294 (neon_vca<cmp_op><mode>): New.
10295 (neon_vca<cmp_op><mode>_fp16insn): New.
10296 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
10297 (neon_vc<cmp_op>z<mode>): New.
10298 (neon_vabd<mode>): New.
10299 (neon_v<maxmin>f<mode>): New.
10300 (neon_vp<maxmin>fv4hf: New.
10301 (neon_<fmaxmin_op><mode>): New.
10302 (neon_vrecps<mode>): New.
10303 (neon_vrsqrts<mode>): New.
10304 (neon_vrecpe<mode>): New (VH variant).
10305 (neon_vdup_lane<mode>_internal): New.
10306 (neon_vdup_lane<mode>): New.
10307 (neon_vcvt<sup><mode>): New (VCVTHI variant).
10308 (neon_vcvt<sup><mode>): New (VH variant).
10309 (neon_vcvt<sup>_n<mode>): New (VH variant).
10310 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
10311 (neon_vcvt<vcvth_op><sup><mode>): New.
10312 (neon_vmul_lane<mode>): New.
10313 (neon_vmul_n<mode>): New.
10314 * config/arm/unspecs.md (UNSPEC_VCALE): New
10315 (UNSPEC_VCALT): New.
10316 (UNSPEC_VFMA_LANE): New.
10317 (UNSPECS_VFMS_LANE): New.
10318
10319 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
10320
10321 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
10322 ("*extzv<mode><clobbercc_or_nocc>"):
10323 Correct a typo in a comment.
10324 Merged patterns.
10325 ("*insv<mode>_zEC12", "*insv<mode>_z10")
10326 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
10327 ("*insv<mode>_zEC12_appendbitsleft")
10328 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
10329 ("*insv<mode>_z10_appendbitsleft"): Ditto.
10330 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
10331 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
10332 Provide pattern with operands switched.
10333 ("*pre_z10_extv<mode>"):
10334 Use new subst patterns.
10335 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
10336 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
10337 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
10338 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
10339 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
10340 ("*<risbg_n>_sidi_ior_and_lshiftrt")
10341 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
10342 New patterns.
10343 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
10344 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
10345 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
10346 on zEC12.
10347 ("SINT"): New mode_iterator with SI, HI, QI.
10348 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
10349 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
10350 duplication.
10351
10352 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
10353
10354 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
10355 new interface of s390_contiguous_bitmask_p.
10356 ("contiguous_bitmask_nowrap_operand"): New predicate.
10357 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
10358 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
10359 of s390_contiguous_bitmask_p.
10360 ("NxxDw"): Rename NxxDq constraint to NxxDw.
10361 ("NxxSw"): New constraint.
10362 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
10363 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
10364 interface.
10365 (s390_contiguous_bitmask_nowrap_p): Export.
10366 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
10367 former s390_contiguous_bitmask_p.
10368 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
10369 detect contiguous bit ranges with wraparound. Change signature to
10370 return START and END position instead of POS and LENGTH.
10371 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
10372 ranges with wraparound.
10373 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
10374 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
10375 Adapt to new signature of s390_contiguous_bitmask_p.
10376
10377 2016-09-23 Bin Cheng <bin.cheng@arm.com>
10378
10379 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
10380 (create_intersect_range_checks): New.
10381 (vect_create_cond_for_alias_checks): Call above function.
10382
10383 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10384
10385 * config/arm/iterators.md (Code iterators): Fix some white-space
10386 in the comments.
10387 (GLTE): New.
10388 (ABSNEG): New
10389 (FCVT): Moved from vfp.md.
10390 (VCVT_HF_US_N): New.
10391 (VCVT_SI_US_N): New.
10392 (VCVT_HF_US): New.
10393 (VCVTH_US): New.
10394 (FP16_RND): New.
10395 (absneg_str): New.
10396 (FCVTI32typename): Moved from vfp.md.
10397 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
10398 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
10399 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
10400 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
10401 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
10402 (vcvth_op): New.
10403 (fp16_rnd_str): New.
10404 (fp16_rnd_insn): New.
10405 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
10406 (UNSPEC_VCVT_HF_U_N): New.
10407 (UNSPEC_VCVT_SI_S_N): New.
10408 (UNSPEC_VCVT_SI_U_N): New.
10409 (UNSPEC_VCVTH_S): New.
10410 (UNSPEC_VCVTH_U): New.
10411 (UNSPEC_VCVTA_S): New.
10412 (UNSPEC_VCVTA_U): New.
10413 (UNSPEC_VCVTM_S): New.
10414 (UNSPEC_VCVTM_U): New.
10415 (UNSPEC_VCVTN_S): New.
10416 (UNSPEC_VCVTN_U): New.
10417 (UNSPEC_VCVTP_S): New.
10418 (UNSPEC_VCVTP_U): New.
10419 (UNSPEC_VCVTP_S): New.
10420 (UNSPEC_VCVTP_U): New.
10421 (UNSPEC_VRND): New.
10422 (UNSPEC_VRNDA): New.
10423 (UNSPEC_VRNDI): New.
10424 (UNSPEC_VRNDM): New.
10425 (UNSPEC_VRNDN): New.
10426 (UNSPEC_VRNDP): New.
10427 (UNSPEC_VRNDX): New.
10428 * config/arm/vfp.md (<absneg_str>hf2): New.
10429 (neon_vabshf): New.
10430 (neon_v<fp16_rnd_str>hf): New.
10431 (neon_vrndihf): New.
10432 (addhf3): New.
10433 (subhf3): New.
10434 (divhf3): New.
10435 (mulhf3): New.
10436 (*mulsf3neghf_vfp): New.
10437 (*negmulhf3_vfp): New.
10438 (*mulsf3addhf_vfp): New.
10439 (*mulhf3subhf_vfp): New.
10440 (*mulhf3neghfaddhf_vfp): New.
10441 (*mulhf3neghfsubhf_vfp): New.
10442 (fmahf4): New.
10443 (neon_vfmahf): New.
10444 (fmsubhf4_fp16): New.
10445 (neon_vfmshf): New.
10446 (*fnmsubhf4): New.
10447 (*fnmaddhf4): New.
10448 (neon_vsqrthf): New.
10449 (neon_vrsqrtshf): New.
10450 (FCVT): Move to iterators.md.
10451 (FCVTI32typename): Likewise.
10452 (neon_vcvth<sup>hf): New.
10453 (neon_vcvth<sup>si): New.
10454 (neon_vcvth<sup>_nhf_unspec): New.
10455 (neon_vcvth<sup>_nhf): New.
10456 (neon_vcvth<sup>_nsi_unspec): New.
10457 (neon_vcvth<sup>_nsi): New.
10458 (neon_vcvt<vcvth_op>h<sup>si): New.
10459 (neon_<fmaxmin_op>hf): New.
10460
10461 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
10462
10463 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
10464 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
10465 ("*insv<mode>_zEC12_appendbitsleft")
10466 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
10467 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
10468
10469 2016-09-23 Jakub Jelinek <jakub@redhat.com>
10470
10471 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
10472 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
10473 construct values without normalization.
10474 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
10475 static local lhs_ops to vNULL.
10476
10477 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10478 Jiong Wang <jiong.wang@arm.com>
10479
10480 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
10481 available when FP16 instructions are available.
10482 (output_move_vfp): Add support for 16-bit data moves.
10483 (arm_validize_comparison): Fix some white-space. Support HFmode
10484 by conversion to SFmode.
10485 * config/arm/arm.md (truncdfhf2): Fix a comment.
10486 (extendhfdf2): Likewise.
10487 (cstorehf4): New.
10488 (movsicc): Fix some white-space.
10489 (movhfcc): New.
10490 (movsfcc): Fix some white-space.
10491 (*cmovhf): New.
10492 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
10493 instructions are available.
10494 (*thumb2_movhi_vfp): Likewise.
10495 (*arm_movhi_fp16): New.
10496 (*thumb2_movhi_fp16): New.
10497 (*movhf_vfp_fp16): New.
10498 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
10499 (*movhf_vfp): Likewise.
10500 (extendhfsf2): Enable when VFP FP16 instructions are available.
10501 (truncsfhf2): Enable when VFP FP16 instructions are available.
10502
10503 2016-09-23 Martin Liska <mliska@suse.cz>
10504
10505 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
10506
10507 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10508
10509 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
10510 V4HF modes.
10511 (arm_evpc_neon_vtrn): Likewise.
10512 (arm_evpc_neon_vrev): Likewise.
10513 (arm_evpc_neon_vext): Likewise.
10514 * config/arm/arm_neon.h (vbsl_f16): New.
10515 (vbslq_f16): New.
10516 (vdup_n_f16): New.
10517 (vdupq_n_f16): New.
10518 (vdup_lane_f16): New.
10519 (vdupq_lane_f16): New.
10520 (vext_f16): New.
10521 (vextq_f16): New.
10522 (vmov_n_f16): New.
10523 (vmovq_n_f16): New.
10524 (vrev64_f16): New.
10525 (vrev64q_f16): New.
10526 (vtrn_f16): New.
10527 (vtrnq_f16): New.
10528 (vuzp_f16): New.
10529 (vuzpq_f16): New.
10530 (vzip_f16): New.
10531 (vzipq_f16): New.
10532 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
10533 (vdup_lane): New (v8hf, v4hf variants).
10534 (vext): New (v8hf, v4hf variants).
10535 (vbsl): New (v8hf, v4hf variants).
10536 * config/arm/iterators.md (VDQWH): New.
10537 (VH): New.
10538 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
10539 (Scalar_mul_8_16): Fix white-space.
10540 (Is_d_reg): Add V4HF and V8HF.
10541 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
10542 (neon_vdup_lane<mode>): New.
10543 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
10544 (*neon_vtrn<mode>_insn): Likewise.
10545 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
10546 (*neon_vzip<mode>_insn): Likewise
10547 (neon_vuzp<mode>_internal): Likewise.
10548 (*neon_vuzp<mode>_insn): Likewise
10549 * config/arm/vec-common.md (vec_perm_const<mode>): New.
10550
10551 2016-09-23 Jiong Wang <jiong.wang@arm.com>
10552 Matthew Wahab <matthew.wahab@arm.com>
10553
10554 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
10555 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
10556 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
10557 available. Also fix some white-space.
10558 * config/arm/vfp.md (*arm_movhi_vfp): New.
10559 (*thumb2_movhi_vfp): New.
10560
10561 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10562
10563 * config/arm/arm-c.c (arm_cpu_builtins): Define
10564 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
10565 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
10566
10567 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10568
10569 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
10570 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
10571 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
10572 arm_v8_2a_fp16_neon_hw.
10573 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
10574 arm_v8_2a_neon.
10575
10576 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10577
10578 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
10579 arm_fp16_alternative_ok and arm_fp16_none_ok.
10580
10581 2016-09-23 Martin Liska <mliska@suse.cz>
10582
10583 * ipa-icf.c (sem_variable::merge): Replace adress with address.
10584
10585 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
10586
10587 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
10588 ("armv8.2-a"): New.
10589 ("armv8.2-a+fp16"): New.
10590 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
10591 (FL2_FP16INST): New.
10592 (FL2_FOR_ARCH8_2A): New.
10593 * config/arm/arm-tables.opt: Regenerate.
10594 * config/arm/arm.c (arm_arch8_2): New.
10595 (arm_fp16_inst): New.
10596 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
10597 for incompatible fp16-format settings.
10598 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
10599 (TARGET_NEON_FP16INST): New.
10600 (arm_arch8_2): Declare.
10601 (arm_fp16_inst): Declare.
10602 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
10603 march=armv8.2-a and march=armv8.2-a+fp16.
10604 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
10605 and armv8.2-a+fp16.
10606 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
10607 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
10608
10609 2016-09-23 Martin Liska <mliska@suse.cz>
10610
10611 * doc/extend.texi: Remove fused-madd from i386 target options.
10612
10613 2016-09-23 Martin Liska <mliska@suse.cz>
10614
10615 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
10616 Handle movbe.
10617
10618 2016-09-23 Martin Liska <mliska@suse.cz>
10619
10620 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
10621 Handle crc32.
10622
10623 2016-09-23 Martin Liska <mliska@suse.cz>
10624
10625 PR target/71652
10626 * config/i386/i386.c (ix86_option_override_internal): Change
10627 signature and return false when there's an error related to
10628 arch string.
10629 (release_options_strings): New function.
10630 (ix86_valid_target_attribute_tree): Call the function.
10631
10632 2016-09-23 Jakub Jelinek <jakub@redhat.com>
10633
10634 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
10635 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
10636 (gen_hsa_ctor_assignment): Likewise.
10637 * print-tree.c (print_node): Likewise.
10638 * tree-dump.c (dequeue_and_dump): Likewise.
10639 * tree-sra.c (sra_modify_constructor_assign): Likewise.
10640 * expr.c (store_constructor): Likewise.
10641 * fold-const.c (operand_equal_p): Likewise.
10642 * tree-pretty-print.c (dump_generic_node): Likewise.
10643 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
10644 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
10645
10646 2016-09-23 Richard Biener <rguenther@suse.de>
10647
10648 * hooks.h (hook_uint_uintp_false): Declare.
10649
10650 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10651
10652 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
10653 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
10654
10655 2016-09-22 Martin Sebor <msebor@redhat.com>
10656
10657 PR target/77676
10658 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
10659 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
10660 (target_int_min): Correct computation.
10661 (format_integer): Use long long as the argument for the ll length
10662 modifier.
10663 (format_floating): Use target_int_max().
10664 (get_string_length): Same.
10665 (format_string): Avoid setting the bounded flag for strings
10666 of unknown length.
10667 (try_substitute_return_value): Avoid setting range info when
10668 the result isn't bounded.
10669 * varasm.c (assemble_name): Increase buffer size.
10670
10671 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
10672 Terry Guo <terry.guo@arm.com>
10673
10674 * target.def (elf_flags_numeric): New target hook.
10675 * targhooks.h (default_asm_elf_flags_numeric): New.
10676 * varasm.c (default_asm_elf_flags_numeric): New.
10677 (default_elf_asm_named_section): Use new target hook.
10678 * config/arm/arm.opt (mpure-code): New.
10679 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
10680 * config/arm/arm.c (arm_asm_init_sections): Add section
10681 attribute to default text section if -mpure-code.
10682 (arm_option_check_internal): Diagnose use of option with
10683 non supported targets and/or options.
10684 (arm_asm_elf_flags_numeric): New.
10685 (arm_function_section): New.
10686 (arm_elf_section_type_flags): New.
10687 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
10688 for -mpure-code.
10689 * doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
10690 * doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
10691
10692 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
10693
10694 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
10695
10696 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10697
10698 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
10699 * rtl.h: Adjust prototype.
10700
10701 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10702
10703 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
10704 (prev_active_insn): Likewise.
10705 (active_insn_p): Likewise.
10706 * rtl.h: Adjust prototypes.
10707 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
10708 * config/arc/arc.md: Likewise.
10709 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
10710 (branch_needs_nop_p): Likewise.
10711 (use_skip_p): Likewise.
10712 * config/sh/sh.c (gen_block_redirect): Likewise.
10713 (split_branches): Likewise.
10714 * reorg.c (optimize_skip): Likewise.
10715 (fill_simple_delay_slots): Likewise.
10716 (fill_slots_from_thread): Likewise.
10717 (relax_delay_slots): Likewise.
10718 * resource.c (mark_target_live_regs): Likewise.
10719
10720 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10721
10722 * config/cris/cris.c (cris_asm_output_case_end): Change argument
10723 type to rtx_insn *.
10724 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
10725 (prev_nonnote_nondebug_insn): Likewise.
10726 * config/cris/cris-protos.h: Adjust prototype.
10727 * rtl.h: Likewise.
10728 * jump.c (rtx_renumbered_equal_p): Adjust.
10729
10730 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10731
10732 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
10733 * rtl.h: Adjust prototype.
10734 * config/sh/sh.md: Adjust.
10735 * dwarf2out.c (add_var_loc_to_decl): Likewise.
10736
10737 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10738
10739 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
10740 (prev_nondebug_insn): Likewise.
10741 * loop-doloop.c (doloop_condition_get): Likewise.
10742 * rtl.h: Adjust prototype.
10743 * cfgloop.h: Likewise.
10744
10745 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10746
10747 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
10748 (prev_nonnote_insn): Likewise.
10749 * jump.c (reversed_comparison_code_parts): Likewise.
10750 (reversed_comparison): Likewise.
10751 * rtl.h: Adjust prototypes.
10752 * config/arc/arc.md: Adjust.
10753 * cse.c (find_comparison_args): Likewise.
10754 * reorg.c (redundant_insn): Change return type to rtx_insn *.
10755 (fix_reg_dead_note): Change argument type to rtx_insn *.
10756 (delete_prior_computation): Likewise.
10757 (delete_computation): Likewise.
10758 (fill_slots_from_thread): Adjust.
10759 (relax_delay_slots): Likewise.
10760 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10761 (simplify_relational_operation_1): Likewise.
10762 (simplify_ternary_operation): Likewise.
10763
10764 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10765
10766 * config/arc/arc-protos.h (arc_label_align): Change type of
10767 variables from rtx to rtx_insn *.
10768 * config/arc/arc.c (arc_label_align): Likewise.
10769 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
10770 * config/bfin/bfin.c (workaround_speculation): Likewise.
10771 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
10772 (find_last_same_clock): Likewise.
10773 (reorg_split_calls): Likewise.
10774 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
10775 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
10776 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
10777 (same_cmp_following_p): Likewise.
10778 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
10779 (same_cmp_following_p): Likwise.
10780 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
10781 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
10782 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
10783 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
10784 (rl78_alloc_physical_registers_cmp): Likewise.
10785 (rl78_alloc_physical_registers_umul): Likewise.
10786 (rl78_calculate_death_notes): Likewise.
10787 * config/s390/s390-protos.h (s390_label_align): Likewise.
10788 * config/s390/s390.c (s390_label_align): Likewise.
10789 * config/sh/sh.c (barrier_align): Likewise.
10790 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
10791 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
10792 (emit_cbcond_nop): Likewise.
10793
10794 2016-09-22 Martin Liska <mliska@suse.cz>
10795
10796 PR ipa/77653
10797 * ipa-icf.c (sem_variable::merge): Yield merge operation if
10798 alias address matters, not necessarily address of original.
10799
10800 2016-09-22 Richard Biener <rguenther@suse.de>
10801
10802 PR middle-end/77697
10803 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
10804 fold fails.
10805
10806 2016-09-22 Richard Biener <rguenther@suse.de>
10807
10808 PR middle-end/77677
10809 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
10810 from constant folding results.
10811 (gimple_resimplify2): Likewise.
10812 (gimple_resimplify3): Likewise.
10813
10814 2016-09-22 Richard Biener <rguenther@suse.de>
10815
10816 PR middle-end/77678
10817 * expr.c (expand_expr_real_1): Guard array access against negative
10818 offset.
10819
10820 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10821
10822 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
10823 of MPFR_RNDN.
10824 (format_floating): Likewise.
10825
10826 2016-09-22 Jakub Jelinek <jakub@redhat.com>
10827
10828 PR fortran/77665
10829 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
10830 for all IFN_GOMP_SIMD_* internal fns, not just for
10831 IFN_GOMP_SIMD_ORDERED_*.
10832
10833 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10834
10835 PR target/77670
10836 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
10837 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
10838 instructions when you want to invert the test.
10839 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
10840 correct order for XXSEL.
10841 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
10842 for using XSCMP{EQ,GT,GE}DP.
10843
10844 2016-09-21 David Malcolm <dmalcolm@redhat.com>
10845
10846 * genconstants.c (main): Introduce noop_reader and convert call
10847 to read_md_files to a method call.
10848 * genenums.c (main): Likewise.
10849 * genmddeps.c (main): Likewise.
10850 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
10851 rtx_reader_ptr->get_top_level_filename ().
10852 (write_tm_preds_h): Likewise.
10853 (write_insn_preds_c): Likewise.
10854 * gensupport.c (class gen_reader): New subclass of rtx_reader.
10855 (rtx_handle_directive): Convert to...
10856 (gen_reader::handle_unknown_directive): ...this.
10857 (init_rtx_reader_args_cb): Convert return type from bool to
10858 rtx_reader *. Create a gen_reader instance, using it for the
10859 call to read_md_files. Return it if no errors occur.
10860 (init_rtx_reader_args): Convert return type from bool to
10861 rtx_reader *.
10862 * gensupport.h (init_rtx_reader_args_cb): Likewise.
10863 (init_rtx_reader_args_cb): Likewise.
10864 * read-md.c (struct file_name_list): Move to class rtx_reader.
10865 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
10866 (read_md_filename): Delete in favor of
10867 rtx_reader::m_read_md_filename.
10868 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
10869 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
10870 (base_dir): Delete in favor of rtx_reader::m_base_dir.
10871 (first_dir_md_include): Delete in favor of
10872 rtx_reader::m_first_dir_md_include.
10873 (last_dir_md_include_ptr): Delete in favor of
10874 rtx_reader::m_last_dir_md_include_ptr.
10875 (max_include_len): Delete.
10876 (rtx_reader_ptr): New.
10877 (fatal_with_file_and_line): Use get_filename and get_lineno
10878 accessors of rtx_reader_ptr.
10879 (require_char_ws): Likewise.
10880 (rtx_reader::read_char): New method, based on ::read_char.
10881 (rtx_reader::unread_char): New method, based on ::unread_char.
10882 (read_escape): Use get_filename and get_lineno accessors of
10883 rtx_reader_ptr.
10884 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
10885 (read_string): Use get_filename and get_lineno accessors of
10886 rtx_reader_ptr.
10887 (rtx_reader::rtx_reader): New ctor.
10888 (rtx_reader::~rtx_reader): New dtor.
10889 (handle_include): Convert from a function to...
10890 (rtx_reader::handle_include): ...this method, converting
10891 handle_directive from a callback to a virtual function.
10892 (handle_file): Likewise, converting to...
10893 (rtx_reader::handle_file): ...this method.
10894 (handle_toplevel_file): Likewise, converting to...
10895 (rtx_reader::handle_toplevel_file): ...this method.
10896 (rtx_reader::get_current_location): New method.
10897 (parse_include): Convert from a function to...
10898 (rtx_reader::add_include_path): ...this method, dropping redundant
10899 update to unused max_include_len.
10900 (read_md_files): Convert from a function to...
10901 (rtx_reader::read_md_files): ...this method, converting
10902 handle_directive from a callback to a virtual function.
10903 (noop_reader::handle_unknown_directive): New method.
10904 * read-md.h (directive_handler_t): Delete this typedef.
10905 (in_fname): Delete.
10906 (read_md_file): Delete.
10907 (read_md_lineno): Delete.
10908 (read_md_filename): Delete.
10909 (class rtx_reader): New class.
10910 (rtx_reader_ptr): New decl.
10911 (class noop_reader): New subclass of rtx_reader.
10912 (read_char): Reimplement in terms of rtx_reader::read_char.
10913 (unread_char): Reimplement in terms of rtx_reader::unread_char.
10914 (read_md_files): Delete.
10915 * read-rtl.c (read_rtx_code): Update for deletion of globals
10916 read_md_filename and read_md_lineno.
10917
10918 2016-09-21 Jason Merrill <jason@redhat.com>
10919
10920 * input.h (from_macro_definition_at): New.
10921
10922 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
10923
10924 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
10925
10926 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
10927
10928 PR tree-optimization/77550
10929 * tree-vect-stmts.c (create_array_ref): Change parameters.
10930 (get_group_alias_ptr_type): New function.
10931 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
10932
10933 2016-09-21 Marek Polacek <polacek@redhat.com>
10934
10935 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
10936 Add falls through comment.
10937
10938 2016-09-21 Richard Biener <rguenther@suse.de>
10939
10940 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
10941 (replace_child): Likewise.
10942 (remove_child_TAG): Adjust.
10943 (move_marked_base_types): Likewise.
10944 (prune_unused_types_prune): Clear die_sib of removed children.
10945
10946 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
10947
10948 PR target/77326
10949 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
10950 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
10951
10952 2016-09-21 Richard Biener <rguenther@suse.de>
10953
10954 PR tree-optimization/77648
10955 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
10956 with complex RHS.
10957 (make_transitive_closure_constraints): Adjust comment.
10958 (make_any_offset_constraints): New function.
10959 (handle_rhs_call): Make sure to first expand a pointer to all
10960 subfields before transitively closing it.
10961 (handle_const_call): Likewise. Properly expand returned
10962 pointers as well.
10963 (handle_pure_call): Likewise.
10964
10965 2016-09-21 Richard Biener <rguenther@suse.de>
10966 Jakub Jelinek <jakub@redhat.com>
10967
10968 PR tree-optimization/77621
10969 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
10970 group at non-vectorizable stmts.
10971
10972 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
10973
10974 PR tree-optimization/72835
10975 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
10976 (make_new_ssa_for_all_defs): Likewise.
10977 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
10978
10979 2016-09-20 Martin Sebor <msebor@redhat.com>
10980
10981 PR middle-end/49905
10982 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
10983 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
10984 * config/linux.c (gnu_libc_printf_pointer_format): New function.
10985 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
10986 * config/sol2.c (solaris_printf_pointer_format): New function.
10987 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
10988 options.
10989 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
10990 * doc/tm.texi: Regenerate.
10991 * gimple-fold.h (get_range_strlen): New function.
10992 (get_maxval_strlen): Declare existing function.
10993 * gimple-fold.c (get_range_strlen): Add arguments and compute both
10994 maximum and minimum.
10995 (get_range_strlen): Define overload.
10996 (get_maxval_strlen): Adjust.
10997 * gimple-ssa-sprintf.c: New file and pass.
10998 * passes.def (pass_sprintf_length): Add new pass.
10999 * targhooks.h (default_printf_pointer_format): Declare new function.
11000 (gnu_libc_printf_pointer_format): Same.
11001 (solaris_libc_printf_pointer_format): Same.
11002 * targhooks.c (default_printf_pointer_format): Define new function.
11003 * tree-pass.h (make_pass_sprintf_length): Declare new function.
11004 * print-tree.c: Increase buffer size.
11005
11006 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
11007
11008 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
11009
11010 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
11011
11012 * common.opt: New option -fipa-vrp.
11013 * ipa-cp.c (ipa_get_vr_lat): New.
11014 (ipcp_vr_lattice::print): Likewise.
11015 (print_all_lattices): Call ipcp_vr_lattice::print.
11016 (ipcp_vr_lattice::meet_with): New.
11017 (ipcp_vr_lattice::meet_with_1): Likewise.
11018 (ipcp_vr_lattice::top_p): Likewise.
11019 (ipcp_vr_lattice::bottom_p): Likewsie.
11020 (ipcp_vr_lattice::set_to_bottom): Likewise.
11021 (set_all_contains_variable): Call VR set_to_bottom.
11022 (initialize_node_lattices): Init VR lattices.
11023 (propagate_vr_accross_jump_function): New.
11024 (propagate_constants_accross_call): Call
11025 propagate_vr_accross_jump_function.
11026 (ipcp_store_vr_results): New.
11027 (ipcp_driver): Handle VR.
11028 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
11029 (ipa_set_jf_unknown): Likewise.
11030 (ipa_compute_jump_functions_for_edge): Likewise.
11031 (ipa_node_params_t::duplicate): Likewise.
11032 (ipa_write_jump_function): Likewise.
11033 (ipa_read_jump_function): Likewise.
11034 (write_ipcp_transformation_info): Likewise.
11035 (read_ipcp_transformation_info): Likewise.
11036 (ipcp_update_vr): New.
11037 (ipcp_transform_function): Handle VR.
11038 * ipa-prop.h (struct ipa_vr): New.
11039 * cgraph.c: Include tree-vrp.h.
11040 * cgraphunit.c: Likewise.
11041 * ipa-utils.c: Likewise.
11042 * ipa.c: Likewise.
11043 * opts.c: Likewise.
11044 * toplev.c: Likewise.
11045 * ipa-devirt.c: Likewise.
11046 * ipa-inline-transform.c: Likewise.
11047 * ipa-inline.c: Likewise.
11048 * ipa-profile.c: Likewise.
11049
11050 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
11051
11052 * doc/invoke.texi: Document -fdump-tree-evrp.
11053 * passes.def: Define new pass_early_vrp.
11054 * timevar.def: Define new TV_TREE_EARLY_VRP.
11055 * tree-pass.h (make_pass_early_vrp): New.
11056 * tree-ssa-propagate.c: Make replace_uses_in non static.
11057 * tree-ssa-propagate.h: Export replace_uses_in.
11058 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
11059 (extract_range_from_assert): Factor out
11060 extract_range_for_var_from_comparison_expr.
11061 (vrp_initialize_lattice): New.
11062 (vrp_initialize): Factor out vrp_initialize_lattice.
11063 (vrp_valueize): Fix it to reject complex value ranges.
11064 (vrp_free_lattice): New.
11065 (evrp_dom_walker::before_dom_children): Likewise.
11066 (evrp_dom_walker::after_dom_children): Likewise.
11067 (evrp_dom_walker::push_value_range): Likewise.
11068 (evrp_dom_walker::pop_value_range): Likewise.
11069 (execute_early_vrp): Likewise.
11070 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
11071 (make_pass_early_vrp): New.
11072
11073 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
11074
11075 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
11076 instead of exact_log2.
11077
11078 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
11079
11080 PR target/77621
11081 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
11082 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
11083 (ix86_add_stmt_cost): Penalize DFmode vector operations
11084 for !TARGET_VECTORIZE_DOUBLE.
11085
11086 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
11087
11088 * doc/invoke.texi (Warning Options): Simplify language.
11089 (Optimize Options): Complete sentence.
11090
11091 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
11092
11093 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
11094 early_finish hook.
11095
11096 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
11097
11098 PR target/71395
11099 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
11100 inits on power8 and above, use the VMRGEW instruction instead of a
11101 permute.
11102
11103 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
11104 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
11105 initialization.
11106
11107 2016-09-20 Tamar Christina <tamar.christina@arm.com>
11108
11109 * config/aarch64/arm_neon.h
11110 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
11111 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
11112 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
11113
11114 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
11115
11116 * config/var/vax.h (ELIMINABLE_REGS): Define.
11117 (INITIAL_ELIMINATION_OFFSET): Define.
11118
11119 2016-09-20 Jakub Jelinek <jakub@redhat.com>
11120
11121 PR middle-end/77624
11122 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
11123 cast to void * if the cast is from some other pointer type.
11124
11125 2016-09-20 Richard Biener <rguenther@suse.de>
11126
11127 PR tree-optimization/77646
11128 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
11129 a VDEF.
11130
11131 2016-09-20 Tamar Christina <tamar.christina@arm.com>
11132
11133 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
11134 attributes to all inlined functions and make them extern.
11135
11136 2016-09-20 Richard Biener <rguenther@suse.de>
11137
11138 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
11139 hook.
11140 * debug.c (do_nothing_debug_hooks): Adjust.
11141 * dbxout.c (dbx_debug_hooks): Likewise.
11142 * sdbout.c (sdb_debug_hooks): Likewise.
11143 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
11144 (dwarf2out_finish): Move producer, filename and
11145 path annotation ...
11146 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
11147 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
11148
11149 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
11150
11151 PR c++/77434
11152 * doc/invoke.texi: Document -Wint-in-bool-context.
11153
11154 PR middle-end/77421
11155 * dwarf2out.c (output_loc_operands): Fix an assertion.
11156
11157 2016-09-19 Joseph Myers <joseph@codesourcery.com>
11158
11159 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
11160 (CR_DECIMAL_DIG): New macro.
11161
11162 2016-09-19 Joseph Myers <joseph@codesourcery.com>
11163
11164 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
11165 element.
11166
11167 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
11168
11169 PR rtl-optimization/77416
11170 * lra-remat.c (operand_to_remat): Process hard coded insn
11171 registers.
11172
11173 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11174
11175 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
11176 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
11177
11178 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
11179
11180 * target.def (lra_p): Wordsmithing.
11181 * doc/tm.texi: Regenerate.
11182
11183 2016-09-19 Jakub Jelinek <jakub@redhat.com>
11184 Jan Hubicka <jh@suse.cz>
11185
11186 PR target/77587
11187 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
11188 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
11189 Call ultimate_alias_target just once, not up to 4 times.
11190
11191 2016-09-19 Richard Biener <rguenther@suse.de>
11192
11193 * dwarf2out.c (early_dwarf_finished): New global.
11194 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
11195 is false.
11196 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
11197 if called from LTO exit early.
11198 (dwarf2out_late_global_decl): When being during the early
11199 debug phase do not add locations but only const value attributes.
11200 Adjust the way we generate early DIEs for LTO.
11201
11202 2016-09-19 Richard Biener <rguenther@suse.de>
11203
11204 PR middle-end/77605
11205 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
11206 proper niter to bound the loops.
11207
11208 2016-09-19 Richard Biener <rguenther@suse.de>
11209
11210 PR tree-optimization/77514
11211 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
11212 search for folded stmt.
11213
11214 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
11215
11216 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
11217 * tree-pass.h (make_pass_early_thread_jumps): Declare.
11218 * tree-ssa-threadbackward.c (fsm_find_thread_path,
11219 fsm_find_thread_path, profitable_jump_thread_path,
11220 fsm_find_control_statement_thread_paths,
11221 find_jump_threads_backwards): Add speed_p parameter.
11222 (pass_data_early_thread_jumps): New pass.
11223 (make_pass_early_thread_jumps): New function.
11224
11225 2016-09-17 Andreas Schwab <schwab@suse.de>
11226
11227 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
11228 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
11229
11230 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
11231
11232 * recog.c (rest_of_handle_split_after_reload): Delete.
11233 (pass_split_after_reload::gate): New method.
11234 (pass_split_after_reload::execute): Call split_all_insns directly.
11235
11236 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
11237
11238 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
11239 parameters for functions taking long long arguments.
11240
11241 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11242
11243 PR target/77613
11244 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
11245 splat with truncate.
11246
11247 2016-09-16 Jason Merrill <jason@redhat.com>
11248
11249 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
11250 New.
11251 * hwint.c (exact_log2): Use pow2p_hwi.
11252 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
11253 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
11254 * builtins.c (get_object_alignment_2, get_object_alignment)
11255 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
11256 least_bit_hwi.
11257 * calls.c (compute_argument_addresses, store_one_arg): Use
11258 least_bit_hwi.
11259 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
11260 * combine.c (force_to_mode): Use least_bit_hwi.
11261 (contains_muldiv, find_split_point, combine_simplify_rtx)
11262 (simplify_if_then_else, simplify_set, force_to_mode)
11263 (if_then_else_cond, simplify_and_const_int_1)
11264 (simplify_compare_const): Use pow2p_hwi.
11265 * cse.c (fold_rtx): Use pow2p_hwi.
11266 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
11267 Use least_bit_hwi.
11268 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
11269 (init_expmed_one_conv): Use pow2p_hwi.
11270 * expr.c (is_aligning_offset): Use pow2p_hwi.
11271 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
11272 (fold_binary_loc): Use pow2p_hwi.
11273 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
11274 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
11275 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
11276 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
11277 Use least_bit_hwi.
11278 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
11279 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
11280 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
11281 * omp-low.c (oacc_loop_fixed_partitions)
11282 (oacc_loop_auto_partitions): Use least_bit_hwi.
11283 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
11284 * stor-layout.c (place_field): Use least_bit_hwi.
11285 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
11286 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
11287 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
11288 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
11289 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
11290 * tree-vect-data-refs.c (vect_analyze_group_access_1)
11291 (vect_grouped_store_supported, vect_grouped_load_supported)
11292 (vect_permute_load_chain, vect_shift_permute_load_chain)
11293 (vect_transform_grouped_load): Use pow2p_hwi.
11294 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
11295 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
11296 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
11297 least_bit_hwi.
11298 * tsan.c (instrument_expr): Use least_bit_hwi.
11299 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
11300
11301 2016-09-16 Andreas Schwab <schwab@suse.de>
11302
11303 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
11304 OFFSET, not offset.
11305 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
11306
11307 2016-09-16 Jakub Jelinek <jakub@redhat.com>
11308
11309 PR target/77526
11310 * combine.c (rest_of_handle_combine): If any edges have been purged,
11311 free dominators if available.
11312
11313 2016-09-16 Jakub Jelinek <jakub@redhat.com>
11314 Eric Botcazou <ebotcazou@adacore.com>
11315
11316 PR middle-end/77594
11317 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
11318 through into expand_addsub_overflow after expand_neg_overflow.
11319
11320 2016-09-15 David Malcolm <dmalcolm@redhat.com>
11321
11322 * diagnostic-show-locus.c
11323 (selftest::test_fixit_insert_containing_newline): New function.
11324 (selftest::test_fixit_replace_containing_newline): New function.
11325 (selftest::diagnostic_show_locus_c_tests): Call the above.
11326
11327 2016-09-15 Bin Cheng <bin.cheng@arm.com>
11328
11329 PR tree-optimization/77503
11330 * tree-vect-loop.c (vectorizable_reduction): Record reduction
11331 code for CONST_COND_REDUCTION at analysis stage and use it at
11332 transform stage.
11333 * tree-vectorizer.h (struct _stmt_vec_info): New field.
11334 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
11335 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
11336 field.
11337
11338 2016-09-15 Richard Biener <rguenther@suse.de>
11339
11340 PR middle-end/77544
11341 * fold-const.c (split_tree): Do not split constant ~X.
11342
11343 2016-09-15 Jakub Jelinek <jakub@redhat.com>
11344
11345 PR rtl-optimization/77425
11346 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
11347 is NULL.
11348
11349 PR middle-end/77475
11350 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
11351 use %qs instead of %s where desirable, use argument instead of arg in
11352 the diagnostic wording, add list of supported strategies and
11353 spellcheck hint.
11354 (ix86_option_override_internal): Emit target("m...") instead of
11355 option("m...") in the diagnostic. Use %qs instead of %s in invalid
11356 -march/-mtune option diagnostic. Add list of supported arches/tunings
11357 and spellcheck hint. Remove prefix, suffix and sw variables, use
11358 main_args_p ? "..." : "..." in diagnostics to make translation
11359 possible.
11360
11361 2016-09-15 Richard Biener <rguenther@suse.de>
11362
11363 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
11364 extra offset argument.
11365 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
11366 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
11367 to reflect new offset parameter.
11368 * doc/tm.texi: Regenerate.
11369 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
11370 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
11371 offset argument.
11372 (darwin_asm_output_dwarf_offset): Likewise.
11373 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
11374 argument.
11375 (darwin_asm_output_dwarf_offset): Pass offset argument through.
11376 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
11377 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
11378
11379 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
11380
11381 PR fortran/72743
11382 * ipa-icf.c (set_alias_uids): New function.
11383 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
11384 all the merged variable's referring aliases.
11385
11386 2016-09-15 Richard Biener <rguenther@suse.de>
11387
11388 PR tree-optimization/77514
11389 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
11390 only forced_stmts sequence.
11391
11392 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
11393
11394 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
11395 * cfgexpand.c (update_alias_info_with_stack_vars): Use
11396 FOR_EACH_SSA_NAME to iterate over SSA variables.
11397 (pass_expand::execute): Likewise.
11398 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
11399 * tree-cfg.c (dump_function_to_file): Likewise.
11400 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
11401 (update_ssa): Likewise.
11402 * tree-ssa-alias.c (dump_alias_info): Likewise.
11403 * tree-ssa-ccp.c (ccp_finalize): Likewise.
11404 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
11405 (create_outofssa_var_map): Likewise.
11406 (coalesce_ssa_name): Likewise.
11407 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
11408 * tree-ssa-pre.c (compute_avail): Likewise.
11409 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
11410 (scc_vn_restore_ssa_info): Likewise.
11411 (free_scc_vn): Likwise.
11412 (run_scc_vn): Likewise.
11413 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
11414 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
11415 * tree-ssa-copy.c (fini_copy_prop): Likewise.
11416 * tree-ssa.c (verify_ssa): Likewise.
11417
11418 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
11419
11420 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
11421 and mips64r2 as default 32-bit and 64-bit architectures.
11422 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
11423 as default 32-bit and 64-bit architectures.
11424
11425 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
11426
11427 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
11428 of succ edge.
11429
11430 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
11431
11432 * target.def (lra_p): Change commentary (for the manual) for the
11433 new default.
11434 * doc/tm.texi: Regenerate.
11435
11436 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
11437
11438 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
11439 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
11440 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
11441 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
11442
11443 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
11444
11445 * targhooks.c (default_lra_p): Return true instead of false.
11446
11447 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
11448
11449 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
11450 hook_bool_void_false.
11451 * config/avr/avr.c: Ditto.
11452 * config/bfin/bfin.c: Ditto.
11453 * config/c6x/c6x.c: Ditto.
11454 * config/cr16/cr16.c: Ditto.
11455 * config/cris/cris.c: Ditto.
11456 * config/epiphany/epiphany.c: Ditto.
11457 * config/fr30/fr30.c: Ditto.
11458 * config/frv/frv.c: Ditto.
11459 * config/h8300/h8300.c: Ditto.
11460 * config/ia64/ia64.c: Ditto.
11461 * config/iq2000/iq2000.c: Ditto.
11462 * config/lm32/lm32.c: Ditto.
11463 * config/m32c/m32c.c: Ditto.
11464 * config/m32r/m32r.c: Ditto.
11465 * config/m68k/m68k.c: Ditto.
11466 * config/mcore/mcore.c: Ditto.
11467 * config/microblaze/microblaze.c: Ditto.
11468 * config/mmix/mmix.c: Ditto.
11469 * config/mn10300/mn10300.c: Ditto.
11470 * config/moxie/moxie.c: Ditto.
11471 * config/msp430/msp430.c: Ditto.
11472 * config/nios2/nios2.c: Ditto.
11473 * config/nvptx/nvptx.c: Ditto.
11474 * config/pa/pa.c: Ditto.
11475 * config/pdp11/pdp11.c: Ditto.
11476 * config/rl78/rl78.c: Ditto.
11477 * config/sparc/sparc.c: Ditto.
11478 * config/spu/spu.c: Ditto.
11479 * config/stormy16/stormy16.c: Ditto.
11480 * config/tilegx/tilegx.c: Ditto.
11481 * config/tilepro/tilepro.c: Ditto.
11482 * config/v850/v850.c: Ditto.
11483 * config/vax/vax.c: Ditto.
11484 * config/visium/visium.c: Ditto.
11485 * config/xtensa/xtensa.c: Ditto.
11486
11487 2016-09-14 Jakub Jelinek <jakub@redhat.com>
11488
11489 PR sanitizer/68260
11490 * tsan.c: Include target.h.
11491 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
11492 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
11493 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
11494 BUILT_IN_ATOMIC_TEST_AND_SET entries.
11495 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
11496
11497 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
11498 Martin Liska <mliska@suse.cz>
11499
11500 PR middle-end/77574
11501 * predict.c (force_edge_cold): Add braces to a condition.
11502
11503 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
11504
11505 PR rtl-optimization/77289
11506 * lra-constraints.c (get_final_hard_regno): Removed.
11507 (get_hard_regno): Add new parameter final_p.
11508 (get_reg_class): Directly call lra_get_elimination_hard_regno.
11509 (operands_match_p): Adjust call to get_hard_regno.
11510 (uses_hard_regs_p): Likewise.
11511 (process_alt_operands): Likewise.
11512
11513 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
11514
11515 PR target/70713
11516 * config/msp430/msp430.c (msp430_start_function): Emit an error
11517 if a function is both weak and specifies an interrupt number.
11518
11519 2016-09-13 Jakub Jelinek <jakub@redhat.com>
11520
11521 PR tree-optimization/77454
11522 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
11523 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
11524 Formatting fix.
11525
11526 2016-09-13 Tamar Christina <tamar.christina@arm.com>
11527
11528 * config/aarch64/aarch64-builtins.c
11529 (aarch64_init_simd_builtins): Fix builtin type signature printing.
11530
11531 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
11532
11533 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
11534 SFmode and SCmode arguments by reference.
11535
11536 2016-09-13 David Malcolm <dmalcolm@redhat.com>
11537
11538 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
11539 Rename to...
11540 (selftest::test_one_liner_fixit_insert_before): ...this, and update
11541 for renaming of add_fixit_insert to add_fixit_insert_before.
11542 (selftest::test_one_liner_fixit_insert_after): New function.
11543 (selftest::test_one_liner_fixit_validation_adhoc_locations):
11544 Update for renaming of add_fixit_insert to add_fixit_insert_before.
11545 (selftest::test_one_liner_many_fixits): Likewise.
11546 (selftest::test_diagnostic_show_locus_one_liner): Update for
11547 renaming, call new test function.
11548 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
11549 renaming of add_fixit_insert to add_fixit_insert_before.
11550 (selftest::test_fixit_consolidation): Likewise.
11551 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
11552 Likewise.
11553 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
11554 (selftest::test_applying_fixits_insert_before): ...this.
11555 (selftest::test_applying_fixits_insert): Update for renaming of
11556 add_fixit_insert to add_fixit_insert_before.
11557 (selftest::test_applying_fixits_insert_after): New function.
11558 (selftest::test_applying_fixits_insert_after_at_line_end): New
11559 function.
11560 (selftest::test_applying_fixits_insert_after_failure): New function.
11561 (selftest::test_applying_fixits_multiple): Update for renaming of
11562 add_fixit_insert to add_fixit_insert_before.
11563 (selftest::change_line): Likewise.
11564 (selftest::test_applying_fixits_unreadable_file): Likewise.
11565 (selftest::test_applying_fixits_line_out_of_range): Likewise.
11566 (selftest::test_applying_fixits_column_validation): Likewise.
11567 (selftest::test_applying_fixits_column_validation): Likewise.
11568 (selftest::edit_context_c_tests): Update for renamed test function;
11569 call new test functions.
11570
11571 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
11572
11573 PR tree-optimization/77536
11574 PR rtl-optimization/68212
11575 * config/rs6000/rs6000.md (div->recip splitter): Remove
11576 optimize_insn_for_speed_p condition.
11577
11578 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
11579
11580 * optabs.c (prepare_cmp_insn): Update documentation comment.
11581
11582 2016-09-13 Jakub Jelinek <jakub@redhat.com>
11583 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11584
11585 PR middle-end/77475
11586 * opts.h (candidates_list_and_hint): Declare.
11587 * opts-common.c (candidates_list_and_hint): New function.
11588 (cmdline_handle_error): Use it.
11589
11590 2016-09-12 David Malcolm <dmalcolm@redhat.com>
11591
11592 * edit-context.c (edited_line::get_len): New accessor.
11593 (edited_file::print_diff): Split out hunk-printing into...
11594 (edited_file::print_diff_hunk): New method.
11595 (edited_file::print_diff_line): New method.
11596
11597 2016-09-12 Andrew Pinski <apinski@cavium.com>
11598
11599 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
11600 New tuning option.
11601 * config/aarch64/aarch64.c (thunderx_tunings): Enable
11602 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
11603 (aarch64_operands_ok_for_ldpstp): Return false if
11604 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
11605 was SImode and the alignment is less than 8 byte.
11606 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
11607
11608 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
11609
11610 PR target/77570
11611 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
11612
11613 2016-09-12 Marek Polacek <polacek@redhat.com>
11614
11615 * doc/extend.texi: Use lowercase "boolean".
11616 * doc/invoke.texi: Likewise.
11617 * doc/md.texi: Likewise.
11618 * target.def: Likewise.
11619 * doc/tm.texi: Regenerated.
11620
11621 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11622
11623 PR middle-end/77426
11624 * expmed.c (synth_mult): Delete duplicate mode check.
11625
11626 2016-09-10 Tom de Vries <tom@codesourcery.com>
11627
11628 PR C/71602
11629 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
11630 va_list type only.
11631 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
11632 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
11633
11634 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
11635
11636 PR rtl-optimization/77289
11637 * lra-constraints.c (get_final_hard_regno): Add support for non hard
11638 register numbers. Remove support for subregs.
11639 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
11640 (get_reg_class): Delete removed get_final_hard_regno() argument.
11641 (uses_hard_regs_p): Call get_final_hard_regno().
11642
11643 2016-09-09 Martin Sebor <msebor@redhat.com>
11644
11645 PR c/77520
11646 PR c/77521
11647 * pretty-print.c (pp_quoted_string): New function.
11648 (pp_format): Call it for %c and %s directives.
11649
11650 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
11651
11652 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
11653 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
11654 INITIAL_ELIMINATION_OFFSET) : Update documentation.
11655 * target.def (frame_pointer_required, can_eliminate): Likewise.
11656 * doc/tm.texi: Regenerated.
11657 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
11658 ELIMINABLE_REGS.
11659 * df-scan.c (df_hard_reg_init): Likewise.
11660 * ira.c (ira_setup_eliminable_regset): Likewise.
11661 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
11662 init_elim_table): Likewise.
11663 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
11664 set_initial_elim_offsets, update_eliminables,
11665 init_elim_table): Likewise.
11666 * rtlanal.c (get_initial_register_offset): Likewise.
11667 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
11668 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
11669 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
11670 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
11671 * config/fr30/fr30.h: Fix comment.
11672 * config/frv/frv.c: Likewise.
11673 * config/frv/frv.h: Likewise.
11674 * config/ft32/ft32.h: Likewise.
11675 * config/visium/visium.h: Likewise.
11676 * config/pa/pa64-linux.h: Likewise.
11677 * config/v850/v850.h: Likewise.
11678 * config/cris/cris.c: Likewise.
11679 * config/ia64/ia64.h: Likewise.
11680 * config/moxie/moxie.h: Likewise.
11681 * config/m32r/m32r.h: Likewise.
11682
11683 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
11684
11685 PR target/77267
11686 * config.in: Regenerate.
11687 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
11688 New macro.
11689 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
11690 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
11691 static-libmpxwrappers case.
11692 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
11693 MPX_LD_AS_NEEDED_GUARD_POP.
11694 * configure: Regenerate.
11695 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
11696 defined if linker support "--push-state"/"--pop-state".
11697
11698 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
11699
11700 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
11701
11702 2016-09-09 Joseph Myers <joseph@codesourcery.com>
11703
11704 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
11705 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
11706 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
11707 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
11708 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
11709 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
11710 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
11711 Document.
11712 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
11713 width macros from TS 18661-1.
11714 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
11715
11716 2016-09-08 Jakub Jelinek <jakub@redhat.com>
11717
11718 PR fortran/77516
11719 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
11720 OMP_CLAUSE_SAFELEN_EXPR.
11721
11722 2016-09-07 David Malcolm <dmalcolm@redhat.com>
11723
11724 * Makefile.in (OBJS): Add substring-locations.o.
11725 * langhooks-def.h (class substring_loc): New forward decl.
11726 (lhd_get_substring_location): New decl.
11727 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
11728 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
11729 * langhooks.c (lhd_get_substring_location): New function.
11730 * langhooks.h (class substring_loc): New forward decl.
11731 (struct lang_hooks): Add field get_substring_location.
11732 * substring-locations.c: New file, taking definition of
11733 format_warning_va and format_warning_at_substring from
11734 c-family/c-format.c, making them non-static.
11735 * substring-locations.h (class substring_loc): Move class here
11736 from c-family/c-common.h. Add and rewrite comments.
11737 (format_warning_va): New decl.
11738 (format_warning_at_substring): New decl.
11739 (get_source_location_for_substring): Add comment.
11740
11741 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
11742
11743 * config/i386/i386.c: Add 'U' suffix to processor feature bits
11744 to avoid -Wnarrowing warning.
11745 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
11746 * opts.c: Likewise for SANITIZER_OPT bitmasks.
11747
11748 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
11749
11750 * config/aarch64/aarch64.c (aarch64_legitimize_address):
11751 Avoid use of base_offset if offset already in range.
11752
11753 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
11754
11755 * config/sh/sh-protos.h (struct sh_atomic_model,
11756 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
11757 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
11758 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
11759 * config/sh/sh.h (struct sh_atomic_model,
11760 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
11761 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
11762 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
11763 Guard with __cplusplus.
11764
11765 2016-09-06 Jakub Jelinek <jakub@redhat.com>
11766
11767 PR target/69255
11768 * config/i386/i386.c (ix86_expand_builtin): For builtin with
11769 unsupported or unknown ISA, use expand_call.
11770
11771 2016-09-06 Martin Liska <mliska@suse.cz>
11772
11773 PR gcov-profile/77378
11774 PR gcov-profile/77466
11775 * tree-profile.c (tree_profiling): Detect whether target can use
11776 -fprofile-update=atomic.
11777
11778 2016-09-06 Richard Biener <rguenther@suse.de>
11779
11780 PR tree-optimization/77479
11781 * tree-vrp.c (update_value_range): Extend overflow handling to
11782 VARYING.
11783
11784 2016-09-05 Jakub Jelinek <jakub@redhat.com>
11785
11786 PR target/77476
11787 * config/i386/i386.md (isa): Add x64_avx512bw.
11788 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
11789 (kmov_isa): New mode attr.
11790 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
11791 (*zero_extend<mode>si2): Likewise.
11792 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
11793
11794 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
11795
11796 * doc/invoke.texi (SPU Options): nops -> NOPs.
11797 (x86 Options): Ditto.
11798
11799 2016-09-05 Jakub Jelinek <jakub@redhat.com>
11800
11801 PR middle-end/77475
11802 * toplev.c (process_options): Temporarily set input_location
11803 to UNKNOWN_LOCATION around targetm.target_option.override () call.
11804
11805 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
11806
11807 PR rtl-optimization/77452
11808 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
11809 inner-mode reference to a CONST_VECTOR constant in the constant pool.
11810
11811 2016-09-05 Marek Polacek <polacek@redhat.com>
11812
11813 PR c/77423
11814 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
11815
11816 2016-09-05 Jakub Jelinek <jakub@redhat.com>
11817
11818 PR other/77421
11819 * gensupport.c (alter_output_for_subst_insn): Remove redundant
11820 *insn_out == '*' test. Don't copy unnecessary to yet another
11821 memory buffer, and don't leak it.
11822
11823 PR rtl-optimization/77425
11824 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
11825
11826 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
11827
11828 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
11829
11830 2016-09-02 David Malcolm <dmalcolm@redhat.com>
11831
11832 * common.opt (fdiagnostics-generate-patch): New option.
11833 * diagnostic.c: Include "edit-context.h".
11834 (diagnostic_initialize): Initialize context->edit_context_ptr.
11835 (diagnostic_finish): Delete context->edit_context_ptr.
11836 (diagnostic_report_diagnostic): Add fix-it hints from the
11837 diagnostic to context->edit_context_ptr, if any.
11838 * diagnostic.h (class edit_context): Add forward decl.
11839 (struct diagnostic_context): Add field "edit_context_ptr".
11840 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
11841 -fdiagnostics-generate-patch.
11842 (-fdiagnostics-generate-patch): New item.
11843 * toplev.c: Include "edit-context.h".
11844 (process_options): Set global_dc->edit_context_ptr to a new
11845 edit_context if the options need one.
11846 (toplev::main): Handle -fdiagnostics-generate-patch by using
11847 global_dc->edit_context_ptr.
11848
11849 2016-09-02 Jakub Jelinek <jakub@redhat.com>
11850
11851 PR c/65467
11852 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
11853 map and firstprivate clauses on target construct for _Atomic
11854 qualified decls.
11855 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
11856 on target construct for _Atomic qualified decls.
11857 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
11858 decls.
11859 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
11860 _Atomic qualified arguments not mentioned in uniform clause.
11861
11862 2016-09-02 David Malcolm <dmalcolm@redhat.com>
11863
11864 * Makefile.in (OBJS-libcommon): Add edit-context.o.
11865 * diagnostic-color.c (color_dict): Add "diff-filename",
11866 "diff-hunk", "diff-delete", and "diff-insert".
11867 (parse_gcc_colors): Update default value of GCC_COLORS in comment
11868 to reflect above changes.
11869 * doc/invoke.texi (-fdiagnostics-color): Update description of
11870 default GCC_COLORS, and of the supported capabilities.
11871 * edit-context.c: New file.
11872 * edit-context.h: New file.
11873 * input.c (struct fcache): Add field "missing_trailing_newline".
11874 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
11875 true.
11876 (add_file_to_cache_tab): Likewise.
11877 (fcache::fcache): Likewise.
11878 (get_next_line): Update c->missing_trailing_newline.
11879 (location_missing_trailing_newline): New function.
11880 * input.h (location_missing_trailing_newline): New decl.
11881 * selftest-run-tests.c (selftest::run_tests): Call
11882 edit_context_c_tests.
11883 * selftest.h (edit_context_c_tests): New decl.
11884
11885 2016-09-02 Jakub Jelinek <jakub@redhat.com>
11886 Richard Biener <rguenth@suse.de>
11887
11888 PR tree-optimization/77444
11889 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
11890 as steptype, remove redundant initialization.
11891
11892 2016-09-02 Jakub Jelinek <jakub@redhat.com>
11893
11894 PR sanitizer/77396
11895 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
11896 (sanopt_optimize_walker): Optimize away
11897 __asan_before_dynamic_init (...) followed by
11898 __asan_after_dynamic_init () without intervening memory loads/stores.
11899 * ipa-pure-const.c (special_builtin_state): Handle
11900 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
11901 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
11902
11903 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11904
11905 * cfg.c (free_original_copy_tables): Replace second assignment of
11906 bb_copy = NULL by bb_original = NULL.
11907
11908 2016-09-02 Jakub Jelinek <jakub@redhat.com>
11909
11910 PR other/77421
11911 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
11912 assignment added in r216794.
11913
11914 2016-09-02 David Malcolm <dmalcolm@redhat.com>
11915
11916 * Makefile.in (OBJS): Add typed-splay-tree.o.
11917 * selftest-run-tests.c (selftest::run_tests): Call
11918 typed_splay_tree_c_tests.
11919 * selftest.h (typed_splay_tree_c_tests): New decl.
11920 * typed-splay-tree.c: New file.
11921 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
11922 (typed_splay_tree::max): New method.
11923 (typed_splay_tree::min): New method.
11924 (typed_splay_tree::foreach): New method.
11925 (typed_splay_tree::closure): New struct.
11926 (typed_splay_tree::inner_foreach_fn): New function.
11927
11928 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11929
11930 * ipa-cp.c (ipcp_store_bits_results): Change option name from
11931 -fipa-cp-bit to -fipa-bit-cp.
11932
11933 2016-09-01 Martin Sebor <msebor@redhat.com>
11934
11935 PR tree-optimization/71831
11936 * tree-object-size.h: Return bool instead of the size and add
11937 argument for the size.
11938 * tree-object-size.c (compute_object_offset): Update signature.
11939 (addr_object_size): Same.
11940 (compute_builtin_object_size): Return bool instead of the size
11941 and add argument for the size. Handle POINTER_PLUS_EXPR when
11942 optimization is disabled.
11943 (expr_object_size): Adjust.
11944 (plus_stmt_object_size): Adjust.
11945 (pass_object_sizes::execute): Adjust.
11946 * builtins.c (fold_builtin_object_size): Adjust.
11947 * doc/extend.texi (Object Size Checking): Update.
11948 * ubsan.c (instrument_object_size): Adjust.
11949
11950 2016-09-01 Martin Sebor <msebor@redhat.com>
11951
11952 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
11953 it fits the output of the formatted function regardless of its
11954 arguments.
11955 * genmodes.c (parser::parse_expr): Same.
11956 * gimplify.c (gimplify_asm_expr): Same.
11957 * passes.c (pass_manager::register_one_dump_file): Same.
11958 * print-tree.c (print_node): Same.
11959
11960 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
11961
11962 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
11963
11964 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
11965
11966 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
11967
11968 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
11969
11970 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
11971 * config/rs6000/vector.md: Ditto.
11972 * config/rs6000/vsx.md: Ditto.
11973
11974 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
11975
11976 * ipa-inline-analysis.c (param_change_prob): Get to the base object
11977 first in all cases.
11978
11979 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
11980
11981 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
11982 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
11983 *return_and_restore_gpregs_<mode>_r11,
11984 *return_and_restore_gpregs_<mode>_r12,
11985 *return_and_restore_gpregs_<mode>_r1,
11986 *return_and_restore_fpregs_<mode>_r11,
11987 *return_and_restore_fpregs_<mode>_r12,
11988 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
11989 directly instead of via the "l" constraint. Renumber operands.
11990 Fix whitespace.
11991
11992 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
11993
11994 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
11995 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
11996 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
11997 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
11998 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
11999 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
12000 *call_value_nonlocal_darwin64, reload_macho_picbase,
12001 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
12002 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
12003 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
12004 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
12005 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
12006 *save_fpregs_<mode>_r1): Ditto.
12007 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
12008 *return_and_restore_gpregs_spe): Ditto.
12009
12010 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
12011
12012 * config/rs6000/rs6000.md
12013 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
12014 the use of the link register.
12015 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
12016
12017 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12018 Michael Meissner <meissner@linux.vnet.ibm.com>
12019
12020 PR target/72827
12021 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
12022 reg+reg addressing for TImode.
12023 (rs6000_legitimate_address_p): Only allow register indirect
12024 addressing for TImode, even without TARGET_QUAD_MEMORY.
12025
12026 2016-09-01 Richard Biener <rguenther@suse.de>
12027
12028 PR middle-end/77436
12029 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
12030 check whether the result fits the desired result type.
12031
12032 2016-09-01 Nathan Sidwell <nathan@acm.org>
12033
12034 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
12035
12036 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
12037
12038 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
12039 New function.
12040 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
12041
12042 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12043
12044 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
12045 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
12046 for comparisons of integer ZERO_EXTEND against zero.
12047
12048 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
12049
12050 * config/i386/i386.c (ix86_option_override_internal): Also disable the
12051 STV pass if -mstackrealign is enabled.
12052
12053 2016-08-31 Ilya Verbin <iverbin@gmail.com>
12054
12055 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
12056 AVX512IFMA.
12057
12058 2016-08-31 David Malcolm <dmalcolm@redhat.com>
12059
12060 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
12061 (layout_range::intersects_line_p): New method.
12062 (test_range_contains_point_for_single_point): Rename to...
12063 (test_layout_range_for_single_point): ...this, and add testing
12064 for layout_range::intersects_line_p.
12065 (test_range_contains_point_for_single_line): Rename to...
12066 (test_layout_range_for_single_line): ...this, and add testing
12067 for layout_range::intersects_line_p.
12068 (test_range_contains_point_for_multiple_lines): Rename to...
12069 (test_layout_range_for_multiple_lines): ...this, and add testing
12070 for layout_range::intersects_line_p.
12071 (layout::layout): Populate m_fixit_hints.
12072 (layout::get_expanded_location): Handle the case of a line-span
12073 for a fix-it hint.
12074 (layout::validate_fixit_hint_p): New method.
12075 (get_line_span_for_fixit_hint): New function.
12076 (layout::calculate_line_spans): Add spans for fixit-hints.
12077 (layout::should_print_annotation_line_p): New method.
12078 (layout::print_any_fixits): Drop param "richloc", instead using
12079 validated fixits in m_fixit_hints. Add "const" to hint pointers.
12080 (diagnostic_show_locus): Avoid printing blank annotation lines.
12081 (selftest::test_diagnostic_context::test_diagnostic_context):
12082 Initialize show_column and start_span.
12083 (selftest::test_diagnostic_context::start_span_cb): New static
12084 function.
12085 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
12086 (selftest::diagnostic_show_locus_c_tests): Update for function
12087 renamings. Call test_diagnostic_show_locus_fixit_lines.
12088
12089 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
12090
12091 PR tree-optimization/73714
12092 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
12093
12094 2016-08-31 David Malcolm <dmalcolm@redhat.com>
12095
12096 * selftest.c: Move "namespace selftest {" to top of file,
12097 removing explicit "selftest::" qualifiers throughout.
12098
12099 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
12100
12101 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
12102 New types.
12103 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
12104 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
12105 Replace builtin with vector extension.
12106 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
12107 New types.
12108 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
12109 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
12110 Replace builtin with vector extension.
12111 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
12112 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
12113 Replace builtin with vector extension.
12114 * config/i386/xmmintrin.h (__m128_u): New type.
12115 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
12116 (_mm_load_ps, _mm_store_ps): Simplify.
12117
12118 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
12119
12120 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
12121
12122 2016-08-30 David Malcolm <dmalcolm@redhat.com>
12123
12124 * diagnostic-show-locus.c (colorizer::begin_state): Support more
12125 than 3 ranges per diagnostic by alternating between color 1 and
12126 color 2.
12127 (layout::layout): Replace use of rich_location::MAX_RANGES
12128 with richloc->get_num_locations ().
12129 (layout::calculate_line_spans): Replace use of
12130 rich_location::MAX_RANGES with m_layout_ranges.length ().
12131 (layout::print_annotation_line): Handle arbitrary numbers of
12132 ranges in caret-printing by defaulting to '^'.
12133 (selftest::test_one_liner_many_fixits): New function.
12134 (test_diagnostic_show_locus_one_liner): Call it.
12135 * diagnostic.c (diagnostic_initialize): Update for renaming
12136 of rich_location::MAX_RANGES to
12137 rich_location::STATICALLY_ALLOCATED_RANGES.
12138 * diagnostic.h (struct diagnostic_context): Likewise.
12139
12140 2016-08-30 David Malcolm <dmalcolm@redhat.com>
12141
12142 * selftest.c (selftest::named_temp_file::named_temp_file): New
12143 ctor.
12144 (selftest::temp_source_file::~temp_source_file): Move to...
12145 (selftest::named_temp_file::~named_temp_file): ...here.
12146 (selftest::test_named_temp_file): New function.
12147 (selftest::selftest_c_tests): Call test_named_temp_file.
12148 * selftest.h (class named_temp_file): New class.
12149 (class temp_source_file): Convert to a subclass of named_temp_file.
12150
12151 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
12152
12153 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
12154 USEs of LR_REGNO in returns and sibcalls.
12155 (rs6000_output_mi_thunk): Similar.
12156 (rs6000_sibcall_aix): Similar.
12157 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
12158 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
12159 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
12160 Remove the USE of LR_REGNO from the patterns as well. Delete an
12161 obsolete comment.
12162 (return_internal_<mode>): Delete.
12163
12164 2016-08-30 Tamar Christina <tamar.christina@arm.com>
12165
12166 * config/aarch64/aarch64-simd.md
12167 (aarch64_ld2<mode>_dreg_le): New.
12168 (aarch64_ld2<mode>_dreg_be): New.
12169 (aarch64_ld2<mode>_dreg): Removed.
12170 (aarch64_ld3<mode>_dreg_le): New.
12171 (aarch64_ld3<mode>_dreg_be): New.
12172 (aarch64_ld3<mode>_dreg): Removed.
12173 (aarch64_ld4<mode>_dreg_le): New.
12174 (aarch64_ld4<mode>_dreg_be): New.
12175 (aarch64_ld4<mode>_dreg): Removed.
12176 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
12177
12178 2016-08-30 David Malcolm <dmalcolm@redhat.com>
12179
12180 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
12181 redundant location param.
12182 (test_one_liner_fixit_remove): Likewise.
12183 (test_one_liner_fixit_replace): Likewise.
12184 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
12185 * gcc-rich-location.c
12186 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
12187 get_range_from_loc. Drop overload taking a const char *.
12188 * gcc-rich-location.h
12189 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
12190 a const char *.
12191
12192 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
12193
12194 * config/linux.c (linux_libc_has_function): Return true on musl.
12195
12196 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
12197
12198 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
12199
12200 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
12201
12202 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
12203 used for abnormal egdes.
12204
12205 2016-08-30 Jakub Jelinek <jakub@redhat.com>
12206
12207 PR tree-optimization/72866
12208 * tree-vect-patterns.c (search_type_for_mask): Turn into
12209 a small wrapper, move all code to ...
12210 (search_type_for_mask_1): ... this new function. Add caching
12211 and adjust recursive calls.
12212
12213 PR debug/77363
12214 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
12215 instead of lookup_type_die (type_main_variant (type)) even for array
12216 types.
12217
12218 PR middle-end/77377
12219 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
12220 constant pool reference return x instead of c.
12221
12222 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
12223
12224 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
12225 include MQ.
12226
12227 2016-08-29 David Malcolm <dmalcolm@redhat.com>
12228
12229 * input.c
12230 (selftest::test_make_location_nonpure_range_endpoints): Fix
12231 header comment.
12232
12233 2016-08-29 David Malcolm <dmalcolm@redhat.com>
12234
12235 * diagnostic-show-locus.c
12236 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
12237 function.
12238 (selftest::test_diagnostic_show_locus_one_liner): Call it.
12239 * input.c (get_pure_location): Move to libcpp/line-map.c.
12240 * input.h (get_pure_location): Convert decl to an inline function
12241 calling implementation in libcpp.
12242
12243 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
12244
12245 PR target/77403
12246 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
12247 template for intel asm dialect.
12248 (vec_set_hi_<mode><mask_name>): Ditto.
12249
12250 2016-08-29 David Malcolm <dmalcolm@redhat.com>
12251
12252 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
12253 (selftest::fail_formatted): Likewise.
12254
12255 2016-08-29 David Malcolm <dmalcolm@redhat.com>
12256
12257 * input.c (make_location): Call get_start and get_finish
12258 on the endpoints to avoid storing packed ranges or ad-hoc
12259 ranges in them.
12260 (selftest::test_make_location_nonpure_range_endpoints): New function.
12261 (selftest::input_c_tests): Call it.
12262 * input.h (get_start): New inline function.
12263
12264 2016-08-29 Tom de Vries <tom@codesourcery.com>
12265
12266 PR c/77398
12267 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
12268 with assert.
12269
12270 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
12271
12272 * Makefile.in (gcov-iov.h): Add dummy recipe.
12273
12274 2016-08-29 Nathan Sidwell <nathan@acm.org>
12275
12276 * config/nvptx/nvptx.c: #include tree-vrp.h.
12277
12278 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
12279
12280 PR target/77324
12281 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
12282 HIGH+LO construct during reload.
12283
12284 2016-08-28 Tom de Vries <tom@codesourcery.com>
12285
12286 PR lto/70955
12287 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
12288 'sysv_abi va_list' attribute.
12289 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
12290 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
12291 attributes.
12292
12293 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12294
12295 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
12296 * emit-rtl.c (unshare_all_rtl_1): Adjust.
12297 (unshare_all_rtl_again): Likewise.
12298 * function.c (assign_stack_local_1): Likewise.
12299 (assign_stack_temp_for_type): Likewise.
12300
12301 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12302
12303 * cfgbuild.c (make_edges): Adjust.
12304 * cfgrtl.c (can_delete_label_p): Likewise.
12305 * dwarf2cfi.c (create_trace_edges): Likewise.
12306 * except.c (sjlj_emit_dispatch_table): Likewise.
12307 * function.h (struct expr_status): make x_forced_labels a vector.
12308 * jump.c (rebuild_jump_labels_1): Adjust.
12309 * reload1.c (set_initial_label_offsets): Likewise.
12310 * stmt.c (force_label_rtx): Likewise.
12311 (expand_label): Likewise.
12312
12313 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12314
12315 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
12316
12317 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
12318
12319 PR tree-optimization/71077
12320 PR tree-optimization/68542
12321 * fold-const.c (fold_relational_const): Fix folding of
12322 VECTOR_CST comparisons that have a scalar boolean result type.
12323 (selftest::test_vector_folding): New static function.
12324 (selftest::fold_const_c_tests): Call it.
12325
12326 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
12327
12328 * doc/extend.texi (SPU Built-in Functions): Remove stale
12329 references to material formerly at IBM and Sony.
12330
12331 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
12332
12333 PR target/77349
12334 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
12335
12336 2016-08-26 David Malcolm <dmalcolm@redhat.com>
12337
12338 * diagnostic-show-locus.c
12339 (selftest::test_fixit_consolidation): New function.
12340 (selftest::diagnostic_show_locus_c_tests): Call it.
12341 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
12342 constructor based on source_range.
12343
12344 2016-08-26 David Malcolm <dmalcolm@redhat.com>
12345
12346 * diagnostic-color.c (color_dict): Add "fixit-insert" and
12347 "fixit-delete".
12348 (parse_gcc_colors): Update description of default GCC_COLORS.
12349 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
12350 (colorizer::set_fixit_insert): New method.
12351 (colorizer::set_fixit_delete): New method.
12352 (colorizer::get_color_by_name): New method.
12353 (colorizer::STATE_FIXIT_INSERT): New constant.
12354 (colorizer::STATE_FIXIT_DELETE): New constant.
12355 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
12356 fields in favor of new field "m_stop_color". Add fields
12357 "m_fixit_insert" and "m_fixit_delete".
12358 (colorizer::colorizer): Update for above changes. Replace
12359 colorize_start calls with calls to get_color_by_name.
12360 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
12361 STATE_FIXIT_DELETE. Update for field renamings.
12362 (colorizer::finish_state): Simplify by using m_stop_color,
12363 rather than multiple identical "*_ce" fields.
12364 (colorizer::get_color_by_name): New method.
12365 (layout::print_any_fixits): Print insertions and replacements
12366 using the "fixit-insert" color, and deletions using the
12367 "fixit-delete" color.
12368 * doc/invoke.texi (-fdiagnostics-color): Update description of
12369 default GCC_COLORS, and of the supported capabilities.
12370
12371 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
12372
12373 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
12374 current_function_static_stack_size variable with the static
12375 stack frame size of the current function when
12376 flag_stack_usage_info is enabled.
12377
12378 2016-08-26 Nathan Sidwell <nathan@acm.org>
12379
12380 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
12381 assignment inside if condition.
12382
12383 2016-08-26 Richard Biener <rguenther@suse.de>
12384
12385 PR tree-optimization/69047
12386 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
12387 extracts similar to what FRE does.
12388 (non_rewritable_mem_ref_base): Likewise.
12389
12390 2016-08-26 Joseph Myers <joseph@codesourcery.com>
12391
12392 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
12393 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
12394 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12395 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12396 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
12397 Likewise.
12398 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12399 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12400 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12401 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
12402 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
12403
12404 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12405
12406 PR target/70473
12407 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
12408 reservation duration to 15 cycles.
12409 (cortex_a8_vfp_macs): Likewise.
12410 (cortex_a8_vfp_macd): Likewise.
12411 (cortex_a8_vfp_divs): Likewise.
12412 (cortex_a8_vfp_divd): Likewise.
12413
12414 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12415
12416 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
12417 (aarch_macro_fusion_pair_p): Use above to avoid early return.
12418
12419 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12420 Martin Jambhor <mjambor@suse.cz>
12421
12422 * common.opt: New option -fipa-bit-cp.
12423 * doc/invoke.texi: Document -fipa-bit-cp.
12424 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
12425 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
12426 * tree-ssa-ccp.h: New header file.
12427 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
12428 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
12429 Replace all occurences of tree parameter by two new params: signop, int.
12430 (bit_value_unop_1): Change to bit_value_unop and export it.
12431 Replace all occurences of tree parameter by two new params: signop,
12432 int.
12433 (bit_value_binop): Change call from bit_value_binop_1 to
12434 bit_value_binop.
12435 (bit_value_assume_aligned): Likewise.
12436 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
12437 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
12438 to ccp_finalize.
12439 (ccp_finalize): Skip processing if val->mask == 0.
12440 * ipa-cp.c: Include tree-ssa-ccp.h
12441 (ipcp_bits_lattice): New class.
12442 (ipcp_param_lattice (bits_lattice): New member.
12443 (print_all_lattices): Call ipcp_bits_lattice::print.
12444 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
12445 (initialize_node_lattices): Likewise.
12446 (propagate_bits_accross_jump_function): New function.
12447 (propagate_constants_accross_call): Call
12448 propagate_bits_accross_jump_function.
12449 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
12450 (ipcp_store_bits_results): New function.
12451 (ipcp_driver): Call ipcp_store_bits_results.
12452 * ipa-prop.h (ipa_bits): New struct.
12453 (ipa_jump_func): Add new member bits of type ipa_bits.
12454 (ipa_param_descriptor): Change decl to decl_or_type.
12455 (ipa_get_param): Change decl to decl_or_type and assert on
12456 PARM_DECL.
12457 (ipa_get_type): New function.
12458 (ipcp_transformation_summary): New member bits.
12459 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
12460 (ipa_populate_param_decls): Likewise.
12461 (ipa_dump_param): Likewise.
12462 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
12463 function.
12464 (ipa_set_jf_unknown): Set ipa_bits::known to false.
12465 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
12466 propagation.
12467 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
12468 (ipa_write_jump_function): Add streaming for ipa_bits.
12469 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
12470 (write_ipcp_transformation_info): Add streaming for ipa_bits
12471 summary for ltrans.
12472 (read_ipcp_transfomration_info): Add support for reading streamed
12473 ipa_bits.
12474 (ipcp_update_bits): New function.
12475 (ipcp_transform_function): Call ipcp_update_bits.
12476
12477 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
12478
12479 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
12480 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
12481
12482 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
12483
12484 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
12485
12486 2016-08-25 Richard Biener <rguenther@suse.de>
12487
12488 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
12489 Only add locations in late dwarf.
12490 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
12491 (dwarf2out_early_finish): But do it here.
12492
12493 2016-08-24 Michael Collison <michael.collison@linaro.org>
12494 Michael Collison <michael.collison@arm.com>
12495
12496 * config/arm/arm-modes.def: Add new condition code mode CC_V
12497 to represent the overflow bit.
12498 * config/arm/arm.c (maybe_get_arm_condition_code):
12499 Add support for CC_Vmode.
12500 (arm_gen_unlikely_cbranch): New function to generate common
12501 rtl conditional branches for overflow patterns.
12502 * config/arm/arm-protos.h: Add prototype for
12503 arm_gen_unlikely_cbranch.
12504 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
12505 addsi3_compareV_upper): New patterns to support signed
12506 builtin overflow add operations.
12507 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
12508 New patterns to support unsigned builtin add overflow operations.
12509 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
12510 builtin overflow subtract operations,
12511 (usubv<mode>4): New patterns to support unsigned builtin subtract
12512 overflow operations.
12513 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
12514 to support builtin overflow negate operations.
12515
12516 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12517
12518 Revert
12519 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
12520
12521 * explow.c (get_dynamic_stack_size): Take known alignment of stack
12522 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
12523 needed.
12524
12525 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
12526
12527 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
12528 MULTILIB_OPTIONS should be used. Small wording fixes.
12529 * genmultilib: Memorize set of all option combinations in
12530 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
12531 found in MULTILIB_OPTIONS by checking if option set is listed in
12532 combination_space. Output new and existing error message to stderr.
12533
12534 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
12535
12536 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
12537 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
12538 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
12539 (MULTILIB_REUSE): Remove reuse rules for option set including
12540 -mfpu=fp-armv8 and -mfpu=vfpv4
12541
12542 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
12543
12544 * config/arm/t-rtems: Add vfp multilib.
12545
12546 2016-08-23 Ian Lance Taylor <iant@golang.org>
12547
12548 * config/s390/s390.c (s390_asm_file_start): Call
12549 default_file_start.
12550
12551 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
12552
12553 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
12554 initialization of all 0's to the 0 constant, instead of directly
12555 generating XOR. Add support for V4SImode vector initialization on
12556 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
12557 initialization. Change variables used in V4SFmode vector
12558 intialization. For V4SFmode vector splat on ISA 3.0, make sure
12559 any memory addresses are in index form. Add support for using
12560 VSPLTH/VSPLTB to initialize vector short and vector char vectors
12561 with all of the same element.
12562 (regno_or_subregno): New helper function to return a register
12563 number for either REG or SUBREG.
12564 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
12565 Use regno_or_subregno where possible.
12566 (rs6000_split_v4si_init_di_reg): New helper function to build up a
12567 DImode value from two SImode values in order to generate V4SImode
12568 vector initialization on 64-bit systems with direct move.
12569 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
12570 initialization.
12571 (rtx_is_swappable_p): V4SImode vector initialization insn is not
12572 swappable.
12573 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
12574 declaration.
12575 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
12576 attributes to initialize V8HImode and V16QImode vectors with the
12577 same element.
12578 (VSX_SPLAT_COUNT): Likewise.
12579 (VSX_SPLAT_SUFFIX): Likewise.
12580 (UNSPEC_VSX_VEC_INIT): New unspec.
12581 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
12582 Allow SFmode values to come from Altivec registers.
12583 (vsx_init_v4si): New insn/split for V4SImode vector initialization
12584 on 64-bit systems with direct move.
12585 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
12586 vector initializations, to allow V4SImode vector initializations
12587 on 64-bit systems with direct move.
12588 (vsx_splat_v4si): Likewise.
12589 (vsx_splat_v4si_di): Likewise.
12590 (vsx_splat_v4sf): Likewise.
12591 (vsx_splat_v4sf_internal): Likewise.
12592 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
12593 register classes.
12594 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
12595 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
12596 initializing V8HImode and V16QImode vectors with the same
12597 element.
12598 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
12599 optimization if -maltivec=be.
12600
12601 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
12602
12603 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
12604 attribute for alternatives 3 and 4.
12605
12606 2016-08-23 David Malcolm <dmalcolm@redhat.com>
12607
12608 * selftest.c (selftest::assert_str_contains): New function.
12609 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
12610 * selftest.h (selftest::assert_str_contains): New decl.
12611 (ASSERT_STR_CONTAINS): New macro.
12612
12613 2016-08-23 Richard Biener <rguenther@suse.de>
12614
12615 PR tree-optimization/77286
12616 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
12617 the CFG here.
12618 (vect_transform_loop): Split exit edges of loop and scalar
12619 loop if required and at the appropriate time.
12620
12621 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
12622
12623 * explow.c (get_dynamic_stack_size): Take known alignment of stack
12624 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
12625 needed.
12626 Correct a typo in a comment.
12627
12628 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
12629
12630 * config/s390/s390.md ("*andc_split"): New splitter for and with
12631 complement.
12632
12633 2016-08-23 Richard Biener <rguenther@suse.de>
12634
12635 PR tree-optimization/27336
12636 * tree-vrp.c (infer_value_range): Handle stmts that can throw
12637 by looking for a non-EH edge.
12638 (process_assert_insertions_for): Likewise.
12639
12640 2016-08-23 Richard Biener <rguenther@suse.de>
12641
12642 PR middle-end/77305
12643 * statistics.c (statistics_counter_event): Robustify against
12644 NULL current_pass.
12645
12646 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12647
12648 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
12649 for targets amdfam10 and barcelona.
12650
12651 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
12652
12653 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
12654 (zero_extend<mode>di2): Ditto.
12655 (*zero_extend<mode>si2): Ditto.
12656 (*zero_extendqihi2): Ditto.
12657
12658 2016-08-22 Joseph Myers <joseph@codesourcery.com>
12659
12660 PR middle-end/77269
12661 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
12662 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
12663
12664 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
12665
12666 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
12667 identical consecutive elements.
12668 [SSA_NAME]: Print the name's def stmt on its own line. When printing
12669 the node's def stmt, avoid printing an unwanted trailing newline by
12670 replacing the call to print_gimple_stmt() with its inlined body and
12671 adjusting it to not set pp_needs_newline and to call pp_flush()
12672 instead of pp_newline_and_flush().
12673
12674 2016-08-22 Joseph Myers <joseph@codesourcery.com>
12675
12676 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
12677 (float32_type_node, float64_type_node, float32x_type_node)
12678 (float128x_type_node): New macros.
12679 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
12680 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
12681 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
12682 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
12683 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
12684 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
12685 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
12686 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
12687 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
12688 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
12689 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
12690 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
12691 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
12692 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
12693 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
12694 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
12695 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
12696 (copysign, fabs, huge_val, inf, nan, nans): Use it.
12697 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
12698 and copysign.
12699 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
12700 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
12701 * doc/extend.texi (Other Builtins): Document these built-in
12702 functions.
12703 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
12704 for nan and nans.
12705
12706 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
12707
12708 * doc/install.texi (Binaries): www.opencsw.org now uses https.
12709
12710 2016-08-22 Richard Biener <rguenther@suse.de>
12711
12712 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
12713
12714 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
12715
12716 PR target/77270
12717 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
12718 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
12719 non-SSE2 athlons only, otherwise prefer SSE prefetches.
12720
12721 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
12722
12723 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
12724 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
12725 (vrp_visit_switch_stmt): Likewise.
12726 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
12727 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
12728 (vrp_visit_stmt): Use extract_range_from_stmt.
12729 (vrp_visit_phi_node): Use extract_range_from_phi_node.
12730
12731 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
12732
12733 * Makefile.in: Add tree-vrp.h to GTFILES.
12734 * gengtype.c (open_base_files): Add tree-vrp.h.
12735 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
12736 * builtins.c: Likewise.
12737 * fold-const.c: Likewise.
12738 * gimple-builder.c: Likewise.
12739 * gimple-laddress.c: Likewise.
12740 * hsa-gen.c: Likewise.
12741 * internal-fn.c: Likewise.
12742 * ssa.h: Likewise.
12743 * targhooks.c: Liewise,
12744 * tree-ssa-address.c: Likewise.
12745 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
12746 * tree-vrp.c (struct value_range): Move to tree-vrp.h
12747 * tree-vrp.h: New file.
12748
12749 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
12750
12751 PR tree-optimization/61839
12752 * tree-vrp.c (two_valued_val_range_p): New.
12753 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
12754 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
12755 Also Convert VAR BINOP CST where VAR is two-valued to
12756 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
12757
12758 2016-08-19 David Malcolm <dmalcolm@redhat.com>
12759
12760 * diagnostic-show-locus.c
12761 (layout::annotation_line_showed_range_p): New method.
12762 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
12763 Reimplement case fixit_hint::REPLACE to cover removals, and
12764 replacements where the range of the replacement isn't one
12765 of the ranges in the rich_location.
12766 (test_one_liner_fixit_replace): Likewise.
12767 (selftest::test_one_liner_fixit_replace_non_equal_range): New
12768 function.
12769 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
12770 New function.
12771 (selftest::test_diagnostic_show_locus_one_liner): Call the new
12772 functions.
12773 * diagnostic.c (print_parseable_fixits): Remove case
12774 fixit_hint::REMOVE.
12775
12776 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
12777
12778 PR target/77270
12779 * config/i386/i386.c (ix86_option_override_internal): Remove
12780 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
12781 Enable SSE prefetch also for TARGET_PREFETCHWT1.
12782 Do not try to enable TARGET_PRFCHW ISA flag here.
12783 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
12784 Rewrite expander function body.
12785 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
12786
12787 2016-08-19 Joseph Myers <joseph@codesourcery.com>
12788
12789 PR c/32187
12790 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
12791 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
12792 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
12793 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
12794 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
12795 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
12796 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
12797 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
12798 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
12799 tree_index values.
12800 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
12801 macros.
12802 (struct floatn_type_info): New structure type.
12803 (floatn_nx_types): New variable declaration.
12804 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
12805 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
12806 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
12807 * tree.c (floatn_nx_types): New variable.
12808 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
12809 corresponding complex types.
12810 * target.def (floatn_mode): New hook.
12811 * targhooks.c: Include "real.h".
12812 (default_floatn_mode): New function.
12813 * targhooks.h (default_floatn_mode): New prototype.
12814 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
12815 types.
12816 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
12817 effective-target and dg-add-options keywords.
12818 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
12819 Document new effective-target keywords.
12820 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
12821 * doc/tm.texi: Regenerate.
12822 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
12823 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
12824 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
12825 18661-3.
12826 * real.h (struct real_format): Add field ieee_bits.
12827 * real.c (ieee_single_format, mips_single_format)
12828 (motorola_single_format, spu_single_format, ieee_double_format)
12829 (mips_double_format, motorola_double_format)
12830 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
12831 (ieee_extended_intel_128_format)
12832 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
12833 (mips_extended_format, ieee_quad_format, mips_quad_format)
12834 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
12835 (decimal_double_format, decimal_quad_format, ieee_half_format)
12836 (arm_half_format, real_internal_format: Initialize ieee_bits
12837 field.
12838 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
12839 float128_type_node. Set float80_type_node to float64x_type_node
12840 if appropriate and long_double_type_node not appropriate.
12841 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
12842 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
12843 Initialize ieee_bits field.
12844 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
12845 (rs6000_init_builtins): Set ieee128_float_type_node to
12846 float128_type_node.
12847 (rs6000_floatn_mode): New function.
12848
12849 2016-08-19 Jakub Jelinek <jakub@redhat.com>
12850
12851 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
12852 _rdseed64_step): Uglify argument names and/or local variable names
12853 in inline functions.
12854 * config/i386/rtmintrin.h (_xabort): Likewise.
12855 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
12856 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
12857 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
12858 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
12859 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
12860 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
12861 _mm_maskz_ternarylogic_epi32): Likewise.
12862 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
12863 __lwpins32, __lwpins64): Likewise.
12864 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
12865 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
12866 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
12867 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
12868 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
12869 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
12870 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
12871 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
12872 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
12873 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
12874 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
12875 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
12876 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
12877 _mm256_mask_i64gather_epi32): Likewise.
12878 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
12879 * config/i386/ia32intrin.h (__writeeflags): Likewise.
12880 * config/i386/pkuintrin.h (_wrpkru): Likewise.
12881 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
12882 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
12883 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
12884 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
12885 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
12886 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
12887 _mm512_mask_prefetch_i64scatter_ps): Likewise.
12888 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
12889 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
12890 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
12891 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
12892 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
12893 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
12894 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
12895 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
12896
12897 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
12898 returning void.
12899 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
12900 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
12901 Likewise.
12902 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
12903 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
12904 function name.
12905 (_rdpkru_u32): Add space after function name.
12906
12907 * config/i386/t-i386 (i386-c.o): Don't depend on
12908 i386-builtin-types.inc.
12909 (i386.o): Depend on i386-builtin-types.inc.
12910
12911 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
12912
12913 PR target/77281
12914 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
12915 Use const_vec_duplicate to check for duplicated elements.
12916
12917 2016-08-19 Richard Biener <rguenther@suse.de>
12918
12919 PR tree-optimization/77290
12920 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
12921 Fix flag_tree_parallelize_loops check.
12922
12923 2016-08-19 Richard Biener <rguenther@suse.de>
12924
12925 * match.pd (x | 0 -> x): Add.
12926
12927 2016-08-19 Richard Biener <rguenther@suse.de>
12928
12929 PR tree-optimization/77286
12930 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
12931 Deal with virtual PHIs being out-of-order.
12932
12933 2016-08-18 David Malcolm <dmalcolm@redhat.com>
12934
12935 * doc/invoke.texi (fverbose-asm): Note that source code lines
12936 are emitted, and provide an example.
12937 * final.c (asm_show_source): New function.
12938 (final_scan_insn): Call asm_show_source.
12939
12940 2016-08-18 David Malcolm <dmalcolm@redhat.com>
12941
12942 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
12943 param with diagnostic_kind.
12944 (class colorizer): Similarly replace field m_diagnostic with
12945 m_diagnostic_kind.
12946 (colorizer::colorizer): Replace diagnostic
12947 param with diagnostic_kind.
12948 (colorizer::begin_state): Update for above field change.
12949 (layout::layout): Replace diagnostic param with rich_location *
12950 and diagnostic_kind.
12951 (diagnostic_show_locus): Replace diagnostic param with richloc
12952 and diagnostic_kind.
12953 (class selftest::test_diagnostic_context): New class.
12954 (selftest::test_diagnostic_show_locus_unknown_location): New
12955 function.
12956 (selftest::test_one_liner_simple_caret): New function.
12957 (selftest::test_one_liner_caret_and_range): New function.
12958 (selftest::test_one_liner_multiple_carets_and_ranges): New
12959 function.
12960 (selftest::test_one_liner_fixit_remove): New function.
12961 (selftest::test_one_liner_fixit_replace): New function.
12962 (selftest::test_diagnostic_show_locus_one_liner): New function.
12963 (selftest::diagnostic_show_locus_c_tests): Call the new test
12964 functions.
12965 * diagnostic.c (diagnostic_initialize): Initialize
12966 colorize_source_p, show_ruler_p and parseable_fixits_p.
12967 (default_diagnostic_finalizer): Update for change to
12968 diagnostic_show_locus.
12969 (diagnostic_append_note): Likewise.
12970 * diagnostic.h (diagnostic_show_locus): Replace
12971 const diagnostic_info * param with location * and diagnostic_t.
12972
12973 2016-08-18 David Malcolm <dmalcolm@redhat.com>
12974
12975 * input.c (saved_line_table): New global.
12976 (class selftest::temp_line_table): Rename to line_table_test and
12977 move declaration to selftest.h, and drop field m_old_line_table.
12978 (selftest::temp_line_table::temp_line_table): Rename ctor to...
12979 (selftest::line_table_test::line_table_test): ...this. Add a
12980 default ctor. Store current value of line_table within
12981 saved_line_table.
12982 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
12983 (selftest::line_table_test::~line_table_test): ...this, and
12984 restore line_table from the saved_line_table, rather than
12985 m_old_line_table.
12986 (selftest::test_accessing_ordinary_linemaps): Update for above
12987 renaming.
12988 (selftest::test_lexer): Likewise.
12989 (struct selftest::lexer_test): Likewise.
12990 (selftest::lexer_test::lexer_test): Likewise.
12991 (selftest::input_c_tests): Move the looping over test cases from
12992 here into...
12993 (selftest::for_each_line_table_case): New function.
12994 * input.h (saved_line_table): New decl.
12995 * selftest.h (struct selftest::line_table_case): New forward decl.
12996 (class selftest::line_table_test): New class, moved here from
12997 selftest::temp_line_table in input.c, and renamed.
12998 (selftest::for_each_line_table_case): New decl.
12999
13000 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
13001
13002 PR target/72839
13003 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
13004
13005 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
13006
13007 PR middle-end/70895
13008 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
13009 enclosing parallel construct for reduction variables on OpenACC loop
13010 directives.
13011
13012 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
13013
13014 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
13015 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
13016 -gdwarf-3.
13017 (function_to_dwarf_procedure): Update comment.
13018
13019 2016-08-18 David Malcolm <dmalcolm@redhat.com>
13020
13021 * input.c (diagnostics_file_cache_forcibly_evict_file): New
13022 function.
13023 * input.h (diagnostics_file_cache_forcibly_evict_file): New
13024 declaration.
13025 * selftest.c (selftest::temp_source_file::~temp_source_file):
13026 Evict m_filename from the diagnostic file cache.
13027
13028 2016-08-18 Richard Biener <rguenther@suse.de>
13029
13030 * tree-pass.h (make_pass_materialize_all_clones): Declare.
13031 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
13032 make_pass_materialize_all_clones): New simple IPA pass encapsulating
13033 clone materialization.
13034 * passes.def (all_late_ipa_passes): Start with
13035 pass_materialize_all_clones.
13036 * cgraphunit.c (symbol_table::compile): Remove call to
13037 materialize_all_clones.
13038 * tree-into-ssa.c: Include statistics.h.
13039 (update_ssa): Count number of times we do incremental/rewrite
13040 SSA update.
13041
13042 2016-08-18 Richard Biener <rguenther@suse.de>
13043
13044 PR tree-optimization/77282
13045 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
13046 When doing auto-parallelizing also prevent use of PHIs that
13047 carry dependences across loop backedges.
13048
13049 2016-08-18 Tamar Christina <tamar.christina@arm.com>
13050 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13051
13052 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
13053
13054 2016-08-18 Richard Biener <rguenther@suse.de>
13055
13056 * ssa-iterators.h (ssa_vuse_operand): New inline.
13057 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
13058 (predicate_all_scalar_phis): Use remove_phi_node to remove
13059 phi nodes predicated. Delay removing virtual PHIs.
13060 (predicate_mem_writes): Update virtual operands.
13061 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
13062 (tree_if_conversion): Do not rewrite virtual SSA form.
13063 * tree-phinodes.c (release_phi_node): Make static.
13064 * tree-phinodes.h (release_phi_node): Remove.
13065
13066 2016-08-18 Jakub Jelinek <jakub@redhat.com>
13067
13068 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
13069 codes that appear in bdesc_* arrays, instead include i386-builtin.def
13070 twice to define those.
13071 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
13072 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
13073 bdesc_multi_arg): Define by including i386-builtin.def the third time.
13074 * config/i386/i386-builtin.def: New file.
13075
13076 2016-08-17 David Malcolm <dmalcolm@redhat.com>
13077
13078 * input.c (get_source_range_for_char): Rename to...
13079 (selftest::get_source_range_for_char): ...this, and move within
13080 the #if CHECKING_P guard.
13081 (get_num_source_ranges_for_substring): Rename to...
13082 (selftest::get_num_source_ranges_for_substring): ...this, move
13083 within the #if CHECKING_P guard, and make static.
13084 (selftest::assert_num_substring_ranges): Initialize
13085 actual_num_ranges.
13086
13087 2016-08-18 Alan Modra <amodra@gmail.com>
13088
13089 PR rtl-optimization/72771
13090 * reload.c (find_reloads): Don't assume that a subreg mem is OK
13091 when find_reloads_toplev returns address_reloaded==-1.
13092 (alternative_allows_const_pool_ref): Update comment.
13093
13094 2015-08-17 Alan Hayward <alan.hayward@arm.com>
13095
13096 PR tree-optimization/71752
13097 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
13098 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
13099
13100 2016-08-17 Jakub Jelinek <jakub@redhat.com>
13101
13102 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
13103 instead of testing ECF_NORETURN bit in gimple_call_flags.
13104 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
13105 * predict.c (tree_bb_level_predictions): Likewise.
13106 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
13107
13108 PR middle-end/77259
13109 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
13110 turning a call into __builtin_unreachable-like noreturn call, adjust
13111 gimple_call_set_fntype.
13112 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
13113 gimple_call_fntype has void return type.
13114
13115 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
13116
13117 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
13118 maybe_lookup_decl, to handle nested acc loop directives.
13119
13120 2016-08-17 Richard Biener <rguenther@suse.de>
13121
13122 PR tree-optimization/76490
13123 * tree-vrp.c (update_value_range): Preserve overflow infinities
13124 when intersecting with ranges from get_range_info.
13125 (operand_less_p): Handle overflow infinities correctly.
13126 (value_range_constant_singleton): Use vrp_operand_equal_p
13127 to handle overflow max/min correctly.
13128 (vrp_valueize): Likewise.
13129 (union_ranges): Likewise.
13130 (intersect_ranges): Likewise.
13131 (vrp_visit_phi_node): Improve iteration limitation to only
13132 apply when we'll possibly re-visit the PHI via a changed argument
13133 on the backedge.
13134
13135 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
13136
13137 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
13138 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
13139 rather than those that should not be built.
13140
13141 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
13142
13143 PR target/66488
13144 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
13145
13146 2016-08-17 Richard Biener <rguenther@suse.de>
13147
13148 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
13149 (verify_vssa): New function verifying virtual SSA form.
13150 (verify_ssa): Call it.
13151 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
13152 Do not apply loop-closed SSA handling to virtuals.
13153 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
13154 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
13155 when rewriting their symbol.
13156 (prepare_def_site_for): Likewise.
13157 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
13158 operands of moved stmts.
13159
13160 2016-08-17 Richard Biener <rguenther@suse.de>
13161
13162 PR tree-optimization/23855
13163 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
13164 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
13165 find guards to hoist. Do not update SSA form but rewrite virtuals
13166 into loop closed SSA.
13167 (find_loop_guard): Adjust to skip already hoisted guards. Do
13168 not mark virtuals for renaming or update SSA form.
13169
13170 2016-08-17 Martin Liska <mliska@suse.cz>
13171
13172 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
13173 a LONG_LONG_TYPE_SIZE comparison.
13174 * gcov-io.h: Remove macro definitions.
13175 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
13176 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
13177 comparison.
13178
13179 2016-08-16 Jakub Jelinek <jakub@redhat.com>
13180
13181 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
13182 that builtins not mentioned in bdesc_* arrays come first, then
13183 the ones mentioned in bdesc_* arrays in the order they appear in
13184 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
13185 IX86_BUILTIN__BDESC_*_LAST enumerator.
13186 (bdesc_mpx): Fix up a comment typo.
13187 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
13188 __builtin_ia32_vpcomneu[bwdq] builtins.
13189 (BDESC_VERIFY, BDESC_VERIFYS): Define.
13190 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
13191 enum ix86_builtins ordering.
13192 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
13193 for direct bdesc_* array member access instead of searching all the
13194 arrays until an fcode match is found.
13195
13196 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
13197
13198 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
13199 pattern as define_insn_and_split. Split insn before reload to
13200 ashl<mode>3_1.
13201 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
13202 <shift_insn><mode>3_1.
13203 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
13204 <rotate_insn><mode>3_1.
13205
13206 2016-08-16 David Malcolm <dmalcolm@redhat.com>
13207
13208 PR c/72857
13209 * input.c (get_source_range_for_substring): Rename to...
13210 (get_source_location_for_substring): ...this, adding param
13211 "caret_idx", and converting output param from source_range * to
13212 location_t *.
13213 (get_source_range_for_char): New function.
13214 (get_num_source_ranges_for_substring): Update comment to reflect
13215 above renaming.
13216 (assert_char_at_range): Update to use get_source_range_for_char
13217 rather than get_source_range_for_substring.
13218 (test_lexer_string_locations_concatenation_2): Likewise.
13219 * substring-locations.h (get_source_range_for_substring): Rename
13220 to...
13221 (get_source_location_for_substring): ...this, and adding param
13222 "caret_idx", and converting output param from source_range * to
13223 location_t *.
13224
13225 2016-08-16 David Malcolm <dmalcolm@redhat.com>
13226
13227 * input.c (class selftest::temp_source_file): Move to
13228 selftest.h.
13229 (selftest::temp_source_file::temp_source_file): Move to
13230 selftest.c.
13231 (selftest::temp_source_file::~temp_source_file): Likewise.
13232 * selftest.c (selftest::temp_source_file::temp_source_file): Move
13233 here from input.c.
13234 (selftest::temp_source_file::~temp_source_file): Likewise.
13235 * selftest.h (class selftest::temp_source_file): Move here from
13236 input.c
13237
13238 2016-08-16 Jakub Jelinek <jakub@redhat.com>
13239
13240 PR target/71910
13241 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
13242 inlining, add cgraph edge for the added __builtin_unreachable call.
13243
13244 PR middle-end/67485
13245 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
13246 only cast it to SHWI for the final comparison.
13247
13248 2016-08-16 Martin Liska <mliska@suse.cz>
13249
13250 PR gcov-profile/36412
13251 * doc/gcov.texi: Document --hash-filenames(-x).
13252 * gcov.c (print_usage): Add the option.
13253 (process_args): Process the option, sort options alphabetically.
13254 (md5sum_to_hex): New function.
13255 (make_gcov_file_name): Do the md5sum and append it to a
13256 filename.
13257
13258 2016-08-16 Bin Cheng <bin.cheng@arm.com>
13259
13260 PR tree-optimization/69848
13261 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
13262 and swtich operands to avoid additional NOT instruction.
13263 (vcond<v_cmp_mixed><mode>): Ditto.
13264 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
13265
13266 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
13267
13268 * doc/install.texi (*-*-solaris2*): Adjust latest change.
13269
13270 2016-08-16 Richard Biener <rguenther@suse.de>
13271
13272 PR tree-optimization/76783
13273 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
13274 BB visited flags at start.
13275
13276 2016-08-16 Bin Cheng <bin.cheng@arm.com>
13277
13278 PR tree-optimization/72817
13279 PR tree-optimization/73450
13280 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
13281 multiple_of_p for adjusted IV.base.
13282
13283 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
13284
13285 PR target/72867
13286 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
13287 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
13288 for !flag_finite_math_only or flag_signed_zeros.
13289 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
13290 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
13291 depend on flag_finite_math_only.
13292 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
13293 New insn pattern.
13294 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
13295 (*ieee_smin<mode>3): Ditto.
13296 (*ieee_smax<mode>3): Ditto.
13297 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
13298 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
13299 flag_signed_zeros.
13300 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
13301 depend on flag_finite_math_only.
13302 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
13303 (*mmx_<code>v2sf3): Remove.
13304 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
13305 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
13306 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
13307
13308 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
13309
13310 PR rtl-optimization/73650
13311 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
13312 it is not a simple move.
13313
13314 2016-08-15 Martin Liska <mliska@suse.cz>
13315
13316 PR driver/72765
13317 * gcc.c (do_spec_1): Call save_string with the right size.
13318 (save_string): Do an assert about string we copy.
13319
13320 2016-08-15 Richard Biener <rguenther@suse.de>
13321
13322 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
13323 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
13324 TV_MACH_DEP.
13325 (pass_data_stv): Likewise.
13326
13327 2016-08-15 Richard Biener <rguenther@suse.de>
13328
13329 PR tree-optimization/73434
13330 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
13331 TBAA info on the base when forwarding a non-invariant address.
13332
13333 2016-08-15 Jakub Jelinek <jakub@redhat.com>
13334
13335 * dwarf2out.c (struct checksum_attributes): Add
13336 at_string_length_bit_size and at_string_length_byte_size fields.
13337 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
13338 and DW_AT_string_length_byte_size.
13339 (die_checksum_ordered): Handle at_string_length_bit_size and
13340 at_string_length_byte_size.
13341 (gen_array_type_die): For dwarf_version >= 5 emit
13342 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
13343 (adjust_string_types): For dwarf_version >= 5 remove
13344 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
13345 (resolve_addr): Likewise.
13346
13347 PR debug/71906
13348 * dwarf2out.c (string_types): New variable.
13349 (gen_array_type_die): Change early_dwarf handling of
13350 DW_AT_string_length, create DW_OP_call4 referencing the
13351 length var temporarily. Handle parameters that are pointers
13352 to string length.
13353 (adjust_string_types): New function.
13354 (gen_subprogram_die): Temporarily set string_types to local var,
13355 call adjust_string_types if needed.
13356 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
13357 New functions.
13358 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
13359
13360 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
13361
13362 * doc/install.texi (*-*-solaris2*): Fix version number and document
13363 requirement on GNU make for building libjava with the Solaris linker.
13364
13365 2016-08-15 Martin Liska <mliska@suse.cz>
13366 Jakub Jelinek <jakub@redhat.com>
13367
13368 PR tree-optimization/72824
13369 * tree-loop-distribution.c (const_with_all_bytes_same)
13370 <case VECTOR_CST>: Fix a typo.
13371
13372 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
13373
13374 PR target/76342
13375 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
13376 Renamed from _mm512_undefined_si512.
13377 (_mm_undefined_si512): New definition.
13378
13379 2016-08-13 Richard Biener <rguenther@suse.de>
13380
13381 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
13382 into PHIs and update the lattice for its def.
13383
13384 2016-08-12 Jakub Jelinek <jakub@redhat.com>
13385
13386 PR c/71512
13387 * ubsan.c (instrument_si_overflow): Pass true instead of false
13388 to gsi_replace.
13389 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
13390 of bbs. Return TODO_cleanup_cfg if any returned true.
13391
13392 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
13393
13394 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
13395 ISA 3.0 MTVSRDD instruction.
13396 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
13397 vecperm.
13398
13399 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
13400
13401 PR tree-optimization/71083
13402 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
13403 bitfield access when possible.
13404
13405 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
13406
13407 PR middle-end/71654
13408 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
13409 sign-changing cast from a shorter unsigned type to a wider
13410 signed type.
13411
13412 2016-08-12 Jakub Jelinek <jakub@redhat.com>
13413
13414 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
13415 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
13416 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
13417
13418 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13419
13420 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
13421 Correct costs for vec_construct.
13422
13423 2016-08-12 Bin Cheng <bin.cheng@arm.com>
13424
13425 PR tree-optimization/69848
13426 * tree-vectorizer.h (enum vect_def_type): New condition reduction
13427 type CONST_COND_REDUCTION.
13428 * tree-vect-loop.c (vectorizable_reduction): Support new condition
13429 reudction type CONST_COND_REDUCTION.
13430
13431 2016-08-12 Richard Biener <rguenther@suse.de>
13432
13433 PR tree-optimization/57326
13434 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
13435 returning an SSA name.
13436 (phi_translate_1): When fully_constant_expression returns a NAME
13437 make sure we have a leader for it.
13438
13439 2016-08-12 Martin Liska <mliska@suse.cz>
13440 Adam Fineman <afineman@afineman.com>
13441
13442 * gcov.c (process_file): Create .gcov file when .gcda
13443 file is missing.
13444
13445 2016-08-12 Marek Polacek <polacek@redhat.com>
13446
13447 PR c/7652
13448 * alias.c (find_base_value): Adjust fall through comment.
13449 * cfgexpand.c (expand_debug_expr): Likewise.
13450 * combine.c (find_split_point): Likewise.
13451 (expand_compound_operation): Likewise. Add FALLTHRU.
13452 (make_compound_operation): Adjust fall through comment.
13453 (canon_reg_for_combine): Add FALLTHRU.
13454 (force_to_mode): Adjust fall through comment.
13455 (simplify_shift_const_1): Likewise.
13456 (simplify_comparison): Likewise.
13457 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
13458 FALLTHRU.
13459 * config/aarch64/predicates.md: Likewise.
13460 * config/i386/i386.c (function_arg_advance_32): Likewise.
13461 (ix86_gimplify_va_arg): Likewise.
13462 (print_reg): Likewise.
13463 (ix86_print_operand): Likewise.
13464 (ix86_build_const_vector): Likewise.
13465 (ix86_expand_branch): Likewise.
13466 (ix86_sched_init_global): Adjust fall through comment.
13467 (ix86_expand_args_builtin): Add FALLTHRU.
13468 (ix86_expand_builtin): Likewise.
13469 (ix86_expand_vector_init_one_var): Likewise.
13470 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
13471 (rs6000_adjust_cost): Likewise.
13472 (insn_must_be_first_in_group): Likewise.
13473 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
13474 * dbxout.c (dbxout_symbol): Adjust fall through comment.
13475 * df-scan.c (df_uses_record): Likewise.
13476 * dojump.c (do_jump): Add FALLTHRU.
13477 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
13478 comment.
13479 (resolve_args_picking_1): Adjust fall through comment.
13480 (loc_list_from_tree_1): Likewise.
13481 * expmed.c (make_tree): Likewise.
13482 * expr.c (expand_expr_real_2): Add FALLTHRU.
13483 (expand_expr_real_1): Likewise. Adjust fall through comment.
13484 * fold-const.c (const_binop): Adjust fall through comment.
13485 (fold_truth_not_expr): Likewise.
13486 (fold_cond_expr_with_comparison): Add FALLTHRU.
13487 (fold_binary_loc): Likewise.
13488 (contains_label_1): Adjust fall through comment.
13489 (multiple_of_p): Likewise.
13490 * gcov-tool.c (process_args): Add FALLTHRU.
13491 * genattrtab.c (check_attr_test): Likewise.
13492 (write_test_expr): Likewise.
13493 * genconfig.c (walk_insn_part): Likewise.
13494 * genpreds.c (validate_exp): Adjust fall through comment.
13495 (needs_variable): Likewise.
13496 * gensupport.c (get_alternatives_number): Add FALLTHRU.
13497 (subst_dup): Likewise.
13498 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
13499 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
13500 (gimplify_scan_omp_clauses): Add FALLTHRU.
13501 (goa_stabilize_expr): Likewise.
13502 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
13503 through comment.
13504 * hsa-gen.c (get_address_from_value): Likewise.
13505 * ipa-icf.c (sem_function::hash_stmt): Likewise.
13506 * ira.c (ira_setup_alts): Add FALLTHRU.
13507 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
13508 comment.
13509 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
13510 * opts.c (common_handle_option): Likewise.
13511 * read-rtl.c (read_rtx_code): Likewise.
13512 * real.c (round_for_format): Likewise.
13513 * recog.c (asm_operand_ok): Likewise.
13514 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
13515 * reload1.c (set_label_offsets): Likewise.
13516 (eliminate_regs_1): Likewise.
13517 (reload_reg_reaches_end_p): Likewise.
13518 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
13519 (rtx_cost): Likewise.
13520 * sched-rgn.c (is_exception_free): Likewise.
13521 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
13522 * stor-layout.c (int_mode_for_mode): Likewise.
13523 * toplev.c (print_to_asm_out_file): Likewise.
13524 (print_to_stderr): Likewise.
13525 * tree-cfg.c (gimple_verify_flow_info): Likewise.
13526 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
13527 (chrec_fold_multiply): Likewise.
13528 (evolution_function_is_invariant_rec_p): Likewise.
13529 (for_each_scev_op): Likewise.
13530 * tree-data-ref.c (siv_subscript_p): Likewise.
13531 (get_references_in_stmt): Likewise.
13532 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
13533 (substitute_in_expr): Likewise.
13534 (type_cache_hasher::equal): Likewise.
13535 (walk_type_fields): Likewise.
13536 * var-tracking.c (adjust_mems): Add FALLTHRU.
13537 (set_dv_changed): Adjust fall through comment.
13538 * varasm.c (default_function_section): Add FALLTHRU.
13539
13540 2016-08-12 Marek Polacek <polacek@redhat.com>
13541
13542 PR c/7652
13543 * tree-complex.c (expand_complex_division): Add missing break.
13544
13545 2016-08-12 Richard Biener <rguenther@suse.de>
13546
13547 * passes.c (execute_todo): Do not push/pop TV_TODO.
13548 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
13549 (execute_one_pass): Likewise.
13550 * common.opt (ftime-report-details): New switch.
13551 * doc/invoke.texi (ftime-report-details): Document.
13552 * timevar.h (timer::print_row): Adjust signature.
13553 (timer::all_zero): New static helper.
13554 (timer::child_map_t): New typedef.
13555 (timer::time_var_def): Add children field.
13556 * timevar.c (timer::named_items::print): Adjust.
13557 (timer::~timer): Free timevar recorded children.
13558 (timer::pop_internal): When -ftime-report-details record
13559 time spent in sub-timevars.
13560 (timer::print_row): Adjust.
13561 (timer::print): Print sub-timevar stats, use all_zero.
13562 * timevar.def (TV_TODO): Remove.
13563
13564 2016-08-12 Richard Biener <rguenther@suse.de>
13565
13566 PR tree-optimization/72851
13567 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
13568 worklists to use bitmaps indexed in execution order.
13569 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
13570 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
13571 (cfg_blocks): Make a bitmap.
13572 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
13573 New globals.
13574 (cfg_blocks_empty_p): Adjust.
13575 (cfg_blocks_add): Likewise.
13576 (cfg_blocks_get): Likewise.
13577 (add_ssa_edge): Likewise.
13578 (add_control_edge): Likewise.
13579 (simulate_stmt): Likewise.
13580 (process_ssa_edge_worklist): Likewise.
13581 (simulate_block): Likewise.
13582 (ssa_prop_init): Compute PRE order and stmt UIDs.
13583 (ssa_prop_fini): Adjust.
13584 (ssa_propagate): Adjust.
13585
13586 2016-08-12 Richard Biener <rguenther@suse.de>
13587
13588 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
13589 the currently executable edges have fixed ranges. Always
13590 go through update_value_range.
13591
13592 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
13593
13594 PR debug/63240
13595 * langhooks-def.h
13596 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
13597 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
13598 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
13599 (LANG_HOOKS_DECLS): Add it.
13600 * langhooks.h (struct lang_hooks_for_decls): Add
13601 function_decl_defaulted. Const_tree-ify
13602 function_decl_explicit_p and function_decl_deleted_p.
13603 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
13604 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
13605 also at strict DWARF v5.
13606
13607 PR debug/55641
13608 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
13609 TYPE_QUAL_CONST in reference-typed decls.
13610
13611 PR debug/49366
13612 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
13613 in DW_OP_pieces, just enough to handle pointers to member
13614 functions.
13615 (gen_remaining_tmpl_value_param_die_attribute): Use a location
13616 expression on DWARFv5 if a constant value doesn't work.
13617
13618 2016-08-11 David Malcolm <dmalcolm@redhat.com>
13619
13620 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
13621 * selftest.c (selftest::test_assertions): New function.
13622 (selftest::selftest_c_tests): New function.
13623 * selftest.h (selftest::selftest_c_tests): New declaration.
13624
13625 2016-08-11 Richard Biener <rguenther@suse.de>
13626 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13627
13628 PR rtl-optimization/72855
13629 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
13630
13631 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13632
13633 PR target/72863
13634 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
13635 (vsx_store_<mode>): Likewise.
13636
13637 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
13638
13639 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
13640 TImode CONST_WIDE_INT store.
13641 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
13642
13643 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
13644
13645 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
13646 mode if unaligned SSE load and store are optimal.
13647
13648 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
13649
13650 PR tree-optimization/71083
13651 * tree-predcom.c (ref_at_iteration): Correctly align the
13652 reference type.
13653
13654 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13655
13656 * config/s390/s390-builtin-types.def: Add INT128 types.
13657 * config/s390/s390-builtins.def: Add INT128 variants for the add
13658 sub low-level builtins dealing with TImode.
13659 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
13660 via subreg when expanding a builtin.
13661 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
13662 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
13663 Fix comment.
13664 * config/s390/vecintrin.h: Adjust builtin names accordingly.
13665 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
13666 ("vec_addc<mode>", "vec_addc_u128"): Merge to
13667 "vacc<bhfgq>_<mode>".
13668 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
13669 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
13670 ("vec_subc<mode>", "vec_subc_u128"): Merge to
13671 "vscbi<bhfgq>_<mode>".
13672 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
13673 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
13674
13675 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13676
13677 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
13678
13679 2016-08-11 Bin Cheng <bin.cheng@arm.com>
13680
13681 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
13682 unused declaration.
13683 (vcond<v_cmp_mixed><mode>): Ditto.
13684 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
13685
13686 2016-08-11 Bin Cheng <bin.cheng@arm.com>
13687
13688 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
13689 variable explicitly, also assert on it before use.
13690
13691 2016-08-11 Richard Biener <rguenther@suse.de>
13692
13693 PR tree-optimization/72772
13694 * cfgloopmanip.c (create_preheader): Use split_edge if there
13695 is a single loop entry, avoiding degenerate PHIs.
13696
13697 2016-08-11 Richard Biener <rguenther@suse.de>
13698
13699 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
13700 unconditional TODO_cleanup_cfg.
13701 (pass_thread_jumps::execute): Initialize loops, perform a CFG
13702 cleanup only if we threaded a jump.
13703
13704 2016-08-11 Alan Modra <amodra@gmail.com>
13705
13706 PR target/71680
13707 * lra-constraints.c (simplify_operand_subreg): Allow subreg
13708 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
13709 slow. Emit two reloads for slow mem case, first loading in
13710 fast innermode, then converting to required mode.
13711
13712 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
13713
13714 * config/rs6000/altivec.h (vec_extract_exp): New macro.
13715 (vec_extract_sig): New macro.
13716 (vec_insert_exp): New macro.
13717 (vec_test_data_class): New macro.
13718 (scalar_extract_exp): New macro.
13719 (scalar_extract_sig): New macro.
13720 (scalar_insert_exp): New macro.
13721 (scalar_test_data_class): New macro.
13722 (scalar_test_neg): New macro.
13723 (scalar_cmp_exp_gt): New macro.
13724 (scalar_cmp_exp_lt): New macro.
13725 (scalar_cmp_exp_eq): New macro.
13726 (scalar_cmp_exp_unordered): New macro.
13727 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
13728 to enforce constraint that operand is a 7-bit unsigned literal.
13729 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
13730 for power9 built-ins.
13731 (BU_P9V_VSX_2): Likewise.
13732 (BU_P9V_64BIT_VSX_2): Likewise.
13733 (VSEEDP): Add scalar extract exponent support.
13734 (VSEESP): Add scalar extract signature support.
13735 (VSTDCNDP): Add scalar test negative support.
13736 (VSTDCNSP): Likewise.
13737 (VSIEDP): Add scalar insert exponent support.
13738 (VSCEDPGT): Add scalar compare exponent greater than support.
13739 (VSCEDPLT): Add scalar compare exponent less than support.
13740 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
13741 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
13742 (VSTDCDP): Add scalar test data class support.
13743 (VSTDCSP): Likewise.
13744 (VSEEDP): Add overload support for scalar extract exponent
13745 operation.
13746 (VSESDP): Add overload support for scalar extract signature
13747 operation.
13748 (VSTDCN): Add overload support for scalar test negative
13749 operation.
13750 (VSTDCNDP): Add overload support for scalar test negative
13751 operation.
13752 (VSTDCNSP): Add overload support for scalar test negative
13753 operation.
13754 (VSIEDP): Add overload support for scalar insert exponent
13755 operation.
13756 (VSTDC): Add overload support for scalar test data class
13757 operation.
13758 (VSTDCDP): Add overload support for scalar test data class
13759 operation.
13760 (VSTDCSP): Add overload support for scalar test data class
13761 opreation.
13762 (VSCEDPGT): Add overload support for scalar compare exponent
13763 greater than operation.
13764 (VSCEDPLT): Add overload support for scalar compare exponent
13765 less than operation.
13766 (VSCEDPEQ): Add overload support for scalar compare exponent
13767 test-for-equality operation.
13768 (VSCEDPUO): Add overload support for scalar compare exponent
13769 test-for-unordered operation.
13770 (VEEDP): Add vector extract exponent support.
13771 (VEESP): Likewise.
13772 (VESDP): Add vector extract significand support.
13773 (VESSP): Likewise.
13774 (VIEDP): Add vector insert exponent support.
13775 (VIESP): Likewise.
13776 (VTDCDP): Add vector test data class support.
13777 (VTDCSP): Likewise.
13778 (VES): Add overload support for vector extract significand operation.
13779 (VESDP): Likewise.
13780 (VESSP): Likewise
13781 (VEE): Add overload support for vector extract exponent operation.
13782 (VEEDP): Likewise.
13783 (VEESP): Likewise.
13784 (VTDC): Add overload support for vector test data class operation.
13785 (VTDCDP): Likewise.
13786 (VTDCSP): Likewise.
13787 (VIE): Add overload support for vector insert exponent operation.
13788 (VIEDP): Likewise.
13789 (VIESP): Likewise.
13790 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13791 overloaded binary floating point functions.
13792 (altivec_resolve_overloaded_builtin): Improve error messages to
13793 distinguish between functions not supported in the current
13794 compiler configuration and functions that were invoked with an
13795 invalid parameter combination, and include the built-in function
13796 name in both error messages.
13797 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
13798 New prototype.
13799 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
13800 function.
13801 (rs6000_expand_binop_builtin): Add check to enforce that argument
13802 2 of the test data class operations is a 7-bit unsigned literal.
13803 (rs6000_invalid_builtin): Add code to issue an error message if a
13804 built-in function that requires the power9_vector and -m32
13805 command-line options is compiled without these options.
13806 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
13807 (UNSPEC_VSX_SXSIGDP): New value.
13808 (UNSPEC_VSX_SXSIGPDP): New value.
13809 (UNSPEC_VSX_SIEXPDP): New value.
13810 (UNSPEC_VSX_SCMPEXPDP): New value.
13811 (UNSPEC_VSX_STSTDC): New value.
13812 (UNSPEC_VSX_VXEXP): New value.
13813 (UNSPEC_VSX_VXSIG): New value.
13814 (UNSPEC_VSX_VIEXP): New value.
13815 (UNSPEC_VSX_VTSTDC): New value.
13816 (xsxexpdp): New insn for scalar extract exponent.
13817 (xsxsigdp): New insn for scalar extract significand.
13818 (xsiexpdp): New insn for scalar insert exponent.
13819 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
13820 (*xscmpexpdp): New insn for scalar compare exponents.
13821 (xststdc<Fvsx): New expansion for both single- and
13822 double-precision scalar test data class operations.
13823 (xststdcneg<Fvsx>): New expansion for both single- and
13824 double-precision scalar test for negative value operations.
13825 (*xststdc<Fvsx>): New insn for scalar test data class
13826 operation.
13827 (xvxexp<VSs>): New insn for single- and double-precision
13828 vector extract exponent operation.
13829 (xvxsig<VSs>): New insn for single- and double-precision
13830 vector extract significand operation.
13831 (xviexp<VSs>): New insn for single- and double-precision
13832 vector insert exponent operation.
13833 (xvtstdc<VSs>): New insn for single- and double-precision
13834 vector test data class operation.
13835 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
13836 built-in functions to represent the Power9 binary floating-point
13837 support instructions.
13838
13839 2016-08-10 bin cheng <bin.cheng@arm.com>
13840
13841 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
13842
13843 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
13844 Renlin Li <renlin.li@arm.com>
13845 Bin Cheng <bin.cheng@arm.com>
13846
13847 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
13848 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
13849 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
13850 (aarch64_vcond_internal<mode><mode>): Delete pattern.
13851 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
13852 (vcond<v_cmp_result><mode>): Ditto.
13853 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
13854 (vcondu<mode><mode>): Ditto.
13855 (vcond<v_cmp_mixed><mode>): New pattern.
13856 (vcondu<mode><v_cmp_mixed>): New pattern.
13857 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
13858 of aarch64_vcond_internal.
13859
13860 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
13861 Renlin Li <renlin.li@arm.com>
13862 Bin Cheng <bin.cheng@arm.com>
13863
13864 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
13865 (vec_cmp<mode><v_cmp_result>): New pattern.
13866 (vec_cmpu<mode><mode>): New pattern.
13867 (vcond_mask_<mode><v_cmp_result>): New pattern.
13868
13869 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
13870
13871 PR tree-optimization/71734
13872 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
13873 REF_LOOP, invoke ref_indep_loop_p_1.
13874 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
13875 to ref_indep_loop_p.
13876 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
13877 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
13878 is inside LOOP, do not cache dpendence value for loops with
13879 non-zero SAFELEN.
13880 (ref_indep_loop_p_2): Delete function.
13881 (can_sm_ref_p): Pass LOOP as additional argument to
13882 ref_indep_loop_p.
13883
13884 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
13885
13886 PR target/72853
13887 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
13888 being an offsettable address.
13889
13890 2016-08-10 Martin Liska <mliska@suse.cz>
13891
13892 PR gcov-profile/58306
13893 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
13894 atomic variants of profile update functions.
13895
13896 2016-08-10 Martin Liska <mliska@suse.cz>
13897
13898 Cherry picked (and modified) from google-4_7 branch
13899 2012-12-26 Rong Xu <xur@google.com>
13900 * common.opt (fprofile-update): Add new flag.
13901 * coretypes.h: Define enum profile_update.
13902 * doc/invoke.texi: Document -fprofile-update.
13903 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
13904 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
13905 * tree-profile.c (gimple_init_edge_profiler): Generate
13906 also atomic profiler update.
13907 (gimple_gen_edge_profiler): Likewise.
13908
13909 2016-08-10 David Malcolm <dmalcolm@redhat.com>
13910
13911 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
13912 stack_usage_file to NULL after fclose calls.
13913
13914 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
13915
13916 PR target/71873
13917 * reload.c (push_reload): Compute subreg_in_class for
13918 subregs of constants and plus expressions. Remove special
13919 handling of SYMBOL_REFs.
13920
13921 2016-08-10 Alan Modra <amodra@gmail.com>
13922
13923 PR target/71680
13924 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
13925 SImode for TARGET_E500_DOUBLE when given SImode.
13926
13927 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
13928
13929 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
13930 unused variable __O.
13931
13932 2016-08-09 Martin Liska <mliska@suse.cz>
13933
13934 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
13935 _gcov_reset to __gcov_reset.
13936 * doc/gcov-tool.texi: Fix typo.
13937
13938 2016-08-09 Martin Liska <mliska@suse.cz>
13939
13940 * value-prof.c (gimple_divmod_values_to_profile): Do not
13941 instrument MOD histogram if a value is not a SSA name.
13942
13943 2016-08-09 Martin Liska <mliska@suse.cz>
13944
13945 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
13946 values.
13947
13948 2016-08-09 Renlin Li <renlin.li@arm.com>
13949
13950 PR middle-end/64971
13951 * calls.c (prepare_call_address): Convert funexp to Pmode when
13952 necessary.
13953 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
13954 (sibcall_value): Likewise.
13955
13956 2016-08-09 Marek Polacek <polacek@redhat.com>
13957
13958 PR c/7652
13959 * cselib.c (cselib_expand_value_rtx_1): Add return.
13960 * gengtype.c (dbgprint_count_type_at): Likewise.
13961 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
13962 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
13963
13964 2016-08-09 Martin Jambor <mjambor@suse.cz>
13965
13966 PR ipa/71981
13967 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
13968 if instance is a MEM_REF.
13969
13970 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
13971
13972 PR target/72843
13973 * config/i386/i386.md (*movtf_internal): Use
13974 lra_in_progress || reload_completed instead of !can_create_pseudo_p
13975 in the insn constraint.
13976 (*movxf_internal): Ditto.
13977 (*movdf_internal): Ditto.
13978 (*movsf_internal): Ditto.
13979
13980 2016-08-09 Bin Cheng <bin.cheng@arm.com>
13981
13982 PR tree-optimization/72772
13983 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
13984 for expanded base.
13985
13986 2016-08-09 Bin Cheng <bin.cheng@arm.com>
13987
13988 PR tree-optimization/72772
13989 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
13990 parameter STOP.
13991 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
13992 parameter STOP and update calls. Move expand_simple_operations
13993 function call from here...
13994 (simplify_using_initial_conditions): ...to here. Delete parameter
13995 STOP.
13996 (tree_simplify_using_condition): Delete parameter STOP.
13997 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
13998 simplify_using_initial_conditions.
13999
14000 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
14001
14002 PR c/65345
14003 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
14004 Use create_tmp_var_raw instead of create_tmp_var.
14005
14006 2016-08-09 Richard Biener <rguenther@suse.de>
14007
14008 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
14009 Treat same SSA names related.
14010
14011 2016-08-09 Jakub Jelinek <jakub@redhat.com>
14012
14013 PR tree-optimization/72824
14014 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
14015 real_zerop is not negative.
14016
14017 2016-08-09 Richard Biener <rguenther@suse.de>
14018
14019 PR tree-optimization/71802
14020 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
14021 all merge opportunities with the predecessor.
14022
14023 2016-08-09 Richard Biener <rguenther@suse.de>
14024
14025 PR ipa/68273
14026 * ipa-prop.c (ipa_modify_formal_parameters): Build
14027 parameter types with natural alignment also for the
14028 over-aligned case.
14029
14030 2016-08-08 Andi Kleen <ak@linux.intel.com>
14031
14032 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
14033
14034 2016-08-08 David Malcolm <dmalcolm@redhat.com>
14035
14036 PR c/64955
14037 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
14038 do-nothing langhook.
14039 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
14040 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
14041 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
14042 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
14043
14044 2016-08-08 David Malcolm <dmalcolm@redhat.com>
14045
14046 PR bootstrap/72844
14047 * input.c: Ensure that HAVE_ICONV is defined.
14048
14049 2016-08-08 Jakub Jelinek <jakub@redhat.com>
14050
14051 PR middle-end/72781
14052 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
14053 private vars for lastprivate and for linear iterator.
14054
14055 PR middle-end/68762
14056 * omp-simd-clone.c: Include varasm.h.
14057 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
14058 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
14059 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
14060 update function name.
14061
14062 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
14063
14064 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
14065 (avr_diagnose_devicespecs_error): Remove.
14066 (avr_devicespecs_file): Remove composing absolute path for specfile
14067 and its verbose info. Remove conditions to check specs-file,
14068
14069 2016-08-08 Jakub Jelinek <jakub@redhat.com>
14070
14071 PR rtl-optimization/72821
14072 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
14073 just return false for them.
14074
14075 2016-08-08 Alan Modra <amodra@gmail.com>
14076
14077 PR target/72771
14078 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
14079 toc refs created during reload. Update function comment.
14080
14081 2016-08-08 Alan Modra <amodra@gmail.com>
14082
14083 PR target/72802
14084 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
14085 alternatives. Put loads first, then stores, and reg/reg moves
14086 within same class later. Delete attr length.
14087
14088 2016-08-08 Alan Modra <amodra@gmail.com>
14089
14090 PR target/72802
14091 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
14092 (mem_operand_ds_form): New predicate.
14093 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
14094 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
14095 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
14096 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
14097 (extendsfdf2_fpr): Replace o constraint with wY.
14098
14099 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
14100
14101 * tree-ssa-threadbackward.c: Include tree-inline.h
14102 (profitable_jump_thread_path): Use estimate_num_insns to estimate
14103 size of copied block; for cold paths reduce duplication.
14104 (find_jump_threads_backwards): Remove redundant tests.
14105 (pass_thread_jumps::gate): Enable for -Os.
14106
14107 2016-08-07 Jakub Jelinek <jakub@redhat.com>
14108
14109 PR c/72816
14110 * stor-layout.c (layout_decl): Fix up formatting.
14111 (relayout_decl): Allow DECL to be FIELD_DECL.
14112
14113 2016-08-07 Alan Modra <amodra@gmail.com>
14114
14115 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
14116
14117 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
14118
14119 * data-streamer-in.c (streamer_read_wide_int): New.
14120 (streamer_read_widest_int): Renamed function.
14121 * data-streamer-out.c (streamer_write_wide_int): New
14122 (streamer_write_widest_int): Renamed function.
14123 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
14124 data-stream-in.c.
14125 (input_cfg): Call renamed function.
14126 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
14127 data-stream-out.c.
14128 (output_cfg): Call renamed function.
14129 * data-streamer.h: Add declarations.
14130
14131 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14132
14133 * tree-ssa-ccp.c (extend_mask): New param sgn.
14134 Remove ORing with wi::mask.
14135 (get_default_value): Adjust call to extend_mask to pass sign.
14136 (evaluate_stmt): Likewise.
14137
14138 2016-08-06 Jakub Jelinek <jakub@redhat.com>
14139
14140 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
14141 INT64_MAX.
14142
14143 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14144
14145 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
14146 transform if operand's type is pointer to function or method.
14147
14148 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
14149
14150 PR tree-optimization/18046
14151 * tree-ssa-threadedge.c: Include cfganal.h.
14152 (simplify_control_statement_condition): If simplifying a
14153 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
14154 with the dominating ASSERT_EXPR before handing it off to VRP.
14155 Mention that a CASE_LABEL_EXPR may be returned.
14156 (thread_around_empty_blocks): Adjust to handle
14157 simplify_control_statement_condition() returning a
14158 CASE_LABEL_EXPR.
14159 (thread_through_normal_block): Likewise.
14160 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
14161 a switch statement by trying to determine which case label
14162 will be taken.
14163
14164 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
14165
14166 PR rtl-optimization/69847
14167 * lra-constraints.c (process_invariant_for_inheritance): Save
14168 pattern instead of src.
14169 (remove_inheritance_pseudos): Use the pattern. Add assert.
14170
14171 2016-08-05 David Malcolm <dmalcolm@redhat.com>
14172
14173 * input.c (string_concat::string_concat): New constructor.
14174 (string_concat_db::string_concat_db): New constructor.
14175 (string_concat_db::record_string_concatenation): New method.
14176 (string_concat_db::get_string_concatenation): New method.
14177 (string_concat_db::get_key_loc): New method.
14178 (class auto_cpp_string_vec): New class.
14179 (get_substring_ranges_for_loc): New function.
14180 (get_source_range_for_substring): New function.
14181 (get_num_source_ranges_for_substring): New function.
14182 (class selftest::lexer_test_options): New class.
14183 (struct selftest::lexer_test): New struct.
14184 (class selftest::ebcdic_execution_charset): New class.
14185 (selftest::ebcdic_execution_charset::s_singleton): New variable.
14186 (selftest::lexer_test::lexer_test): New constructor.
14187 (selftest::lexer_test::~lexer_test): New destructor.
14188 (selftest::lexer_test::get_token): New method.
14189 (selftest::assert_char_at_range): New function.
14190 (ASSERT_CHAR_AT_RANGE): New macro.
14191 (selftest::assert_num_substring_ranges): New function.
14192 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
14193 (selftest::assert_has_no_substring_ranges): New function.
14194 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
14195 (selftest::test_lexer_string_locations_simple): New function.
14196 (selftest::test_lexer_string_locations_ebcdic): New function.
14197 (selftest::test_lexer_string_locations_hex): New function.
14198 (selftest::test_lexer_string_locations_oct): New function.
14199 (selftest::test_lexer_string_locations_letter_escape_1): New function.
14200 (selftest::test_lexer_string_locations_letter_escape_2): New function.
14201 (selftest::test_lexer_string_locations_ucn4): New function.
14202 (selftest::test_lexer_string_locations_ucn8): New function.
14203 (selftest::uint32_from_big_endian): New function.
14204 (selftest::test_lexer_string_locations_wide_string): New function.
14205 (selftest::uint16_from_big_endian): New function.
14206 (selftest::test_lexer_string_locations_string16): New function.
14207 (selftest::test_lexer_string_locations_string32): New function.
14208 (selftest::test_lexer_string_locations_u8): New function.
14209 (selftest::test_lexer_string_locations_utf8_source): New function.
14210 (selftest::test_lexer_string_locations_concatenation_1): New
14211 function.
14212 (selftest::test_lexer_string_locations_concatenation_2): New
14213 function.
14214 (selftest::test_lexer_string_locations_concatenation_3): New
14215 function.
14216 (selftest::test_lexer_string_locations_macro): New function.
14217 (selftest::test_lexer_string_locations_stringified_macro_argument):
14218 New function.
14219 (selftest::test_lexer_string_locations_non_string): New function.
14220 (selftest::test_lexer_string_locations_long_line): New function.
14221 (selftest::test_lexer_char_constants): New function.
14222 (selftest::input_c_tests): Call the new test functions once per
14223 case within the line_table test matrix.
14224 * input.h (struct string_concat): New struct.
14225 (struct location_hash): New struct.
14226 (class string_concat_db): New class.
14227 * substring-locations.h: New header.
14228
14229 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
14230
14231 PR tree-optimization/72810
14232 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
14233 the type of the case labels when truncating.
14234
14235 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
14236
14237 PR Target/72819
14238 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
14239 (aarch64_fp16_ptr_type_node): Likewise.
14240 * config/aarch64/aarch64-simd-builtins.c
14241 (aarch64_fp16_ptr_type_node): Define.
14242 (aarch64_init_fp16_types): New, refactored out of...
14243 (aarch64_init_builtins): ...here, update to call
14244 aarch64_init_fp16_types.
14245 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
14246 HFmode.
14247 (aapcs_vfp_sub_candidate): Likewise.
14248
14249 2016-08-05 Martin Liska <mliska@suse.cz>
14250 Joshua Cranmer <Pidgeot18@gmail.com>
14251
14252 * gcov.c (line_t::has_block): New function.
14253 (enum loop_type): New enum.
14254 (handle_cycle): New function.
14255 (unblock): Likewise.
14256 (circuit): Likewise.
14257 (get_cycles_count): Likewise.
14258 (accumulate_line_counts): Use new loop detection algorithm.
14259
14260 2016-08-05 Martin Liska <mliska@suse.cz>
14261
14262 * gcov.c (output_intermediate_file): Rename
14263 function_info::line_next to next_file_fn.
14264 (process_file): Likewise.
14265 (read_graph_file): Likewise.
14266 (accumulate_line_counts): Likewise.
14267 (output_lines): Likewise.
14268
14269 2016-08-05 Richard Biener <rguenther@suse.de>
14270
14271 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
14272 restriction on threading to a loop header.
14273
14274 2016-08-05 Richard Biener <rguenther@suse.de>
14275
14276 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
14277 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
14278 adjust loop info accordingly.
14279
14280 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
14281
14282 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
14283 before folding call to __builtin_constant_p with parameters to false.
14284
14285 2016-08-05 Alan Modra <amodra@gmail.com>
14286
14287 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
14288 code accidentally committed 2016-05-02 providing class when given
14289 NO_REGS.
14290
14291 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
14292
14293 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
14294 the case label ranges that partially overlap with OP's value
14295 range.
14296
14297 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
14298
14299 PR target/72805
14300 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
14301 Cast builtin function result to __mmask16 instead of __mmask8.
14302 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
14303 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
14304 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
14305
14306 2016-08-04 David Malcolm <dmalcolm@redhat.com>
14307
14308 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
14309 (ASSERT_TRUE_AT): New macro.
14310 (ASSERT_FALSE): Reimplement in terms of...
14311 (ASSERT_FALSE_AT): New macro.
14312 (ASSERT_STREQ_AT): Fix typo in comment.
14313
14314 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
14315
14316 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
14317 labels are exhaustive, designate the label with the widest
14318 range to be the default label.
14319
14320 2016-08-04 Andrew Pinski <apinski@cavium.com>
14321
14322 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
14323 (thunderx_tunings): Use thunderx_vector_cost instead of
14324 generic_vector_cost.
14325
14326 2016-08-04 Martin Liska <mliska@suse.cz>
14327
14328 * gcov.c (main): Fix GNU coding style.
14329 (output_intermediate_file): Likewise.
14330 (process_file): Likewise.
14331 (generate_results): Likewise.
14332 (release_structures): Likewise.
14333 (create_file_names): Likewise.
14334 (find_source): Likewise.
14335 (read_graph_file): Likewise.
14336 (find_exception_blocks): Likewise.
14337 (canonicalize_name): Likewise.
14338 (make_gcov_file_name): Likewise.
14339 (mangle_name): Likewise.
14340 (accumulate_line_counts): Likewise.
14341 (output_branch_count): Likewise.
14342 (read_line): Likewise.
14343
14344 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
14345
14346 PR rtl-optimization/71779
14347 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
14348 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
14349 or if it was truncated.
14350
14351 PR rtl-optimization/70903
14352 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
14353
14354 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
14355
14356 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
14357 accessing SSA_NAME_PTR_INFO.
14358
14359 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
14360
14361 PR 70677
14362 * common/config/avr/avr-common.c (avr_option_optimization_table)
14363 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
14364
14365 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
14366
14367 PR 55181
14368 * config/avr/avr.md: New pattern to work around do_store_flag
14369 generating shift instructions for bit extractions.
14370
14371 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
14372
14373 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
14374 BITMAP_ALLOC.
14375 (add_equivalence): Likewise.
14376 (get_value_range): Allocate value range with vrp_value_range_pool.
14377 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
14378 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
14379
14380 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
14381
14382 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
14383 the default for the rs6000 port.
14384
14385 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
14386
14387 PR middle-end/71876
14388 * calls.c (special_function_p): Remove special handling of
14389 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
14390 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
14391 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
14392
14393 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
14394
14395 PR middle-end/72778
14396 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
14397 Don't stop on regular insns.
14398
14399 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
14400
14401 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
14402 size to DImode boundary.
14403 (nvptx_propagate): Likewise.
14404
14405 2016-08-03 Alan Modra <amodra@gmail.com>
14406
14407 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
14408 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
14409 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
14410 from -mefficient-unaligned-vector. Note that this affects fp too.
14411
14412 2016-08-03 Alan Modra <amodra@gmail.com>
14413
14414 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
14415 cost more.
14416
14417 2016-08-03 Alan Modra <amodra@gmail.com>
14418
14419 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
14420 to a reg. Localize vars.
14421
14422 2016-08-03 Alan Modra <amodra@gmail.com>
14423
14424 * config/rs6000/rs6000.opt: Remove negatives from help strings
14425 and comments.
14426
14427 2016-08-03 Alan Modra <amodra@gmail.com>
14428
14429 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
14430 Delete duplicated code.
14431
14432 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
14433
14434 PR middle-end/72778
14435 * lra-spills.c (regno_in_use_p): New.
14436 (lra_final_code_change): Use it.
14437
14438 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
14439
14440 PR rtl-optimization/69847
14441 * lra-int.h (struct lra-reg): Use restore_rtx instead of
14442 restore_regno.
14443 (lra_rtx_hash): New.
14444 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
14445 of restore_regno.
14446 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
14447 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
14448 * lra-spills.c (lra_final_code_change): Don't delete insn when the
14449 next insn is USE with the same reg as the current insn source.
14450 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
14451 of restore_regno.
14452 (lra_constraints_init): Call initiate_invariants.
14453 (lra_constraints_finish): Call finish_invariants.
14454 (struct invariant, invariant_t, invariant_ptr_t): New.
14455 (const_invariant_ptr_t, invariants, invariants_pool): New.
14456 (invariant_table, invariant_hash, invariant_eq_p): New.
14457 (insert_invariant, initiate_invariants, finish_invariants): New.
14458 (clear_invariants, invalid_invariant_regs): New.
14459 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
14460 instead of restore_regno.
14461 (invariant_p, process_invariant_for_inheritance): New.
14462 (inherit_in_ebb): Implement invariant inheritance.
14463 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
14464 (remove_inheritance_pseudos): Implement undoing invariant
14465 inheritance.
14466 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
14467 instead of restore_regno.
14468 * lra-assigns.c (regno_live_length): New.
14469 (reload_pseudo_compare_func): Use regno_live_length.
14470 (assign_by_spills): Use restore_rtx instead of restore_regno.
14471 (lra_assign): Ditto. Initiate regno_live_length.
14472
14473 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
14474
14475 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
14476 __builtin_aarch64_fmindf.
14477
14478 2016-08-02 Bin Cheng <bin.cheng@arm.com>
14479
14480 PR tree-optimization/34114
14481 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
14482 information for more control IVs.
14483
14484 2016-08-02 Bin Cheng <bin.cheng@arm.com>
14485
14486 PR tree-optimization/34114
14487 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
14488 PLUS_EXPR case. Handle SSA_NAME case.
14489
14490 2016-08-02 Tamar Christina <tamar.christina@arm.com>
14491
14492 * config/aarch64/aarch64-simd-builtins.def
14493 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
14494 (__builtin_aarch64_fmaxdf): Likewise.
14495 (__builtin_aarch64_smin_nandf): Likewise.
14496 (__builtin_aarch64_smax_nandf): Likewise.
14497 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
14498 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
14499 (<fmaxmin><mode>3): ...this.
14500 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
14501 (vminnm_f64): Likewise.
14502 (vmin_f64): Likewise.
14503 (vmax_f64): Likewise.
14504 * config/aarch64/iterators.md (FMAXMIN): Merge with...
14505 (FMAXMIN_UNS): ...this.
14506 (fmaxmin): Merged with
14507 (fmaxmin_op): ...this...
14508 (maxmin_uns_op): ...in to this.
14509
14510 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
14511
14512 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14513 Add support for vec_extract on vector float, vector int, vector
14514 short, and vector char vector types.
14515 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
14516 vector float, vector int, vector short, and vector char
14517 optimizations on 64-bit ISA 2.07 systems for both constant and
14518 variable element numbers.
14519 (rs6000_split_vec_extract_var): Likewise.
14520 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
14521 Altivec registers on ISA 2.07 and above.
14522 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
14523 which never was matched due to the split occuring before register
14524 allocation (and the code would not have worked on little endian
14525 systems if it did match). Allow extracts to go to the Altivec
14526 registers if ISA 2.07 (power8). Change from using "" around the
14527 C++ code to using {}'s.
14528 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
14529 vec_extracts when the vector is in memory.
14530 (vsx_extract_v4sf_var): New insn to optimize vector float
14531 vec_extracts when the element number is variable on 64-bit ISA
14532 2.07 systems.
14533 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
14534 for 64-bit ISA 2.07 as well as ISA 3.0.
14535 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
14536 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
14537 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
14538 optimize vector int, vector short, and vector char vec_extracts
14539 when the vector is in memory.
14540 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
14541 optimize vector int, vector short, and vector char vec_extracts
14542 when the element number is variable.
14543
14544 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
14545
14546 PR target/71948
14547 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
14548 does not overlap with other symbol flags.
14549
14550 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
14551
14552 * config/aarch64/aarch64.h (aarch64_frame):
14553 Remove padding0 and hardfp_offset. Add locals_offset,
14554 initial_adjust, callee_adjust, callee_offset and final_adjust.
14555 * config/aarch64/aarch64.c (aarch64_layout_frame):
14556 Remove unused padding0 and hardfp_offset initializations.
14557 Choose frame layout and set frame variables accordingly.
14558 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
14559 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
14560 (aarch64_pop_regs): Likewise.
14561 (aarch64_expand_prologue): Remove all decision code, just emit
14562 prolog according to frame variables.
14563 (aarch64_expand_epilogue): Remove all decision code, just emit
14564 epilog according to frame variables.
14565 (aarch64_initial_elimination_offset): Use offset to local/arg area.
14566
14567 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
14568
14569 PR target/72748
14570 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
14571 fix_debug_reg_uses after changing source register mode to
14572 V1TImode if source register is undefined.
14573
14574 2015-08-01 Alan Hayward <alan.hayward@arm.com>
14575
14576 PR tree-optimization/71818
14577 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
14578 with non invariant evolutions
14579
14580 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
14581
14582 PR target/72767
14583 * config/avr/avr.md (length) [branch]: Correct insn length
14584 attribute for forward branches.
14585
14586 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
14587
14588 * doc/extend.texi (AVR Built-in Functions): Document
14589 __builtin_avr_nops.
14590 * config/avr/builtins.def (NOPS): New.
14591 * config/avr/avr.c (avr_expand_nops): New static function.
14592 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
14593
14594 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14595
14596 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
14597 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
14598 addresses.
14599
14600 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
14601
14602 * config/aarch64/aarch64.c (vulcan_tunings): Update
14603 vulcan L1 cache_line_size.
14604
14605 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
14606
14607 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
14608 function that takes a vector memory address, a hard register, an
14609 element number and a temporary base register, and recreates an
14610 address that points to the appropriate element within the vector.
14611 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
14612 (rs6000_split_vec_extract_var): Add support for the target of a
14613 vec_extract with variable element number being a scalar memory
14614 location.
14615 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
14616 swappable.
14617 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
14618 vsx_extract_<mode>_load insn with a new insn that optimizes
14619 storing either element to a memory location, using scratch
14620 registers to pick apart the vector and reconstruct the address.
14621 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
14622 (vsx_extract_<mode>_store): Rework alternatives to more correctly
14623 support Altivec registers. Add support for ISA 3.0 Altivec d-form
14624 store instruction.
14625 (vsx_extract_<mode>_var): Add support for extracting a variable
14626 element number from memory.
14627
14628 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
14629
14630 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
14631 when testing for compares against constants of the form 0xabab.
14632
14633 2016-07-29 Bin Cheng <bin.cheng@arm.com>
14634
14635 PR tree-optimization/57558
14636 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
14637 function.
14638 (vect_loop_versioning): Support versioning with niter assumptions.
14639 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
14640 (vect_get_loop_niters): New parameter. Reimplement to support
14641 assumptions in loop niter info.
14642 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
14643 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
14644 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
14645 Support loop versioning for niters.
14646 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
14647 (vect_free_loop_info_assumptions): New function.
14648 (vectorize_loops): Free loop niter info for loops with flag
14649 LOOP_F_ASSUMPTIONS set if vectorization failed.
14650 * tree-vectorizer.h (struct _loop_vec_info): New field
14651 num_iters_assumptions.
14652 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
14653 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
14654 (LOOP_REQUIRES_VERSIONING): New macro.
14655 (vect_free_loop_info_assumptions): New decl.
14656
14657 2016-07-29 Bin Cheng <bin.cheng@arm.com>
14658
14659 * cfgloop.h (struct loop): New field constraints.
14660 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
14661 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
14662 functions.
14663 * cfgloop.c (alloc_loop): Initialize new field.
14664 * cfgloopmanip.c (copy_loop_info): Copy constraints.
14665 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
14666 Adjust niter analysis wrto loop constraints.
14667 * doc/loop.texi (@node Number of iterations): Add description for loop
14668 constraints.
14669
14670 2016-07-29 Marek Polacek <polacek@redhat.com>
14671
14672 PR c/7652
14673 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
14674 (ix86_expand_round_builtin): Likewise.
14675
14676 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
14677 Georg-Johann Lay <avr@gjlay.de>
14678
14679 PR rtl-optimization/71976
14680 * combine.c (get_last_value): Return 0 if the argument for which
14681 the function is called has a wider mode than the recorded value.
14682
14683 2016-07-29 Marek Polacek <polacek@redhat.com>
14684
14685 PR c/7652
14686 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
14687 (altivec_expand_st_builtin): Likewise.
14688
14689 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
14690
14691 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
14692 introduced in r238381.
14693
14694 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
14695
14696 PR middle-end/68217
14697 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
14698 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
14699
14700 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
14701
14702 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
14703 New declaration.
14704 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14705 Add support for vec_extract of vector double or vector long having
14706 a variable element number on 64-bit ISA 2.07 systems or newer.
14707 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
14708 Likewise.
14709 (rs6000_split_vec_extract_var): New function to split a
14710 vec_extract built-in function with variable element number.
14711 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
14712 swappable.
14713 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
14714 (UNSPEC_VSX_EXTRACT): Likewise.
14715 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
14716 direct move instructions to be generated on 64-bit ISA 2.07
14717 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
14718 instruction.
14719 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
14720 arguments for vec_extract variable element.
14721 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
14722 vec_extract with variable element on V2DFmode and V2DImode
14723 vectors.
14724 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
14725 -mupper-regs-df requirement, since it isn't needed.
14726 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
14727 do direct moves on 64-bit systems, which allows optimization of
14728 vec_extract on 64-bit ISA 2.07 systems and newer.
14729
14730 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
14731 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
14732
14733 * config/aarch64/aarch64.md
14734 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
14735 statement and type.
14736 (<optab>qihi2_aarch64): Likewise, and split into two.
14737 (extendqihi2_aarch64): New.
14738 (zero_extendqihi2_aarch64): New.
14739 * config/aarch64/iterators.md (ldrxt): Remove.
14740 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
14741 uxtb/uxth.
14742
14743 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
14744
14745 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
14746
14747 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
14748
14749 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
14750 (aarch64_push_reg): New function to push 1 or 2 registers.
14751 (aarch64_pop_reg): New function to pop 1 or 2 registers.
14752 (aarch64_expand_prologue): Use aarch64_push_regs.
14753 (aarch64_expand_epilogue): Use aarch64_pop_regs.
14754
14755 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
14756
14757 PR tree-optimization/71734
14758 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
14759 attribute instead of REF_LOOP and use it.
14760 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
14761 set it for Loops having non-zero safelen attribute.
14762 (ref_indep_loop_p): Pass zero as initial value for safelen.
14763
14764 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
14765
14766 PR middle-end/72657
14767 PR target/72683
14768 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
14769 call using chkp_gimple_call_builtin_p.
14770 (chkp_copy_bounds_for_assign): Likewise.
14771
14772 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14773
14774 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
14775 * config/arm/arm-protos.h (struct tune_params): Likewise.
14776 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
14777 (cortex_a9_sched_adjust_cost): Likewise.
14778 (fa726te_sched_adjust_cost): Likewise.
14779 (arm_adjust_cost): Likewise.
14780 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
14781 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
14782 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
14783 * config/i386/i386.c (ix86_adjust_cost): Likewise.
14784 * config/ia64/ia64.c: Likewise.
14785 * config/m68k/m68k.c: Likewise.
14786 * config/mep/mep.c (mep_adjust_cost): Likewise.
14787 * config/microblaze/microblaze.c (microblaze_adjust_cost):
14788 * Likewise.
14789 * config/mips/mips.c (mips_adjust_cost): Likewise.
14790 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
14791 * Likewise.
14792 * config/pa/pa.c (pa_adjust_cost): Likewise.
14793 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
14794 (rs6000_debug_adjust_cost): Likewise.
14795 * config/sh/sh.c (sh_adjust_cost): Likewise.
14796 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
14797 (hypersparc_adjust_cost): Likewise.
14798 (sparc_adjust_cost): Likewise.
14799 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
14800 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
14801 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
14802 * Likewise.
14803 * config/visium/visium.c (visium_adjust_cost): Likewise.
14804 * doc/tm.texi: Regenerate.
14805 * haifa-sched.c (dep_cost_1): Adjust.
14806 * target.def: Merge adjust_cost and adjust_cost_2.
14807
14808 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14809
14810 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
14811
14812 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14813
14814 * store-motion.c (struct st_expr): Make pattern_regs a vector.
14815 (extract_mentioned_regs): Append to a vector instead of
14816 returning a rtx_expr_list.
14817 (st_expr_entry): Adjust.
14818 (free_st_expr_entry): Likewise.
14819 (store_ops_ok): Likewise.
14820 (store_killed_in_insn): Likewise.
14821 (find_moveable_store): Likewise.
14822
14823 2016-07-28 Martin Liska <mliska@suse.cz>
14824
14825 PR gcov-profile/68025
14826 * tree-profile.c (tree_profiling): Respect
14827 no_profile_instrument_function attribute.
14828 * doc/extend.texi: Document no_profile_instrument_function
14829 attribute.
14830
14831 2016-07-28 Martin Liska <mliska@suse.cz>
14832
14833 PR rtl-optimization/70944
14834 * combine.c (make_compound_operation):
14835 Do not allow make_compound_operation for vector mode
14836
14837 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
14838
14839 PR middle-end/71994
14840 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
14841 before calling get_ops.
14842
14843 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
14844
14845 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
14846 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
14847 (BITS_PER_UNIT_LOG): Remove.
14848 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
14849 * expr.c (expand_assignment): Likewise.
14850 * stor-layout.c (initialize_sizetypes): Likewise.
14851
14852 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
14853
14854 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
14855 signature of rs6000_expand_vector_extract so that the element
14856 number is a RTX instead of a constant integer.
14857 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
14858 Likewise.
14859 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
14860 (altivec_expand_vec_ext_builtin): Likewise.
14861 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
14862 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
14863 MFVSRLD instruction.
14864
14865 2016-07-27 David Malcolm <dmalcolm@redhat.com>
14866
14867 * input.c (get_pure_location): Move here from tree.c.
14868 (make_location): Likewise. Add header comment.
14869 (selftest::test_accessing_ordinary_linemaps): Verify
14870 pure_location_p, make_location, get_location_from_adhoc_loc and
14871 get_range_from_loc.
14872 * input.h (get_pure_location): Move declaration here from tree.h.
14873 (get_finish): Likewise for inline function.
14874 (make_location): Likewise for declaration.
14875 * tree.c (get_pure_location): Move to input.c.
14876 (make_location): Likewise.
14877 * tree.h (get_pure_location): Move declaration to tree.h.
14878 (get_finish): Likewise for inline function.
14879 (make_location): Likewise for declaration.
14880
14881 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14882
14883 PR middle-end/71078
14884 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
14885
14886 2016-07-27 David Malcolm <dmalcolm@redhat.com>
14887
14888 * system.h (STATIC_ASSERT): Use static_assert if building
14889 with C++11 onwards.
14890
14891 2016-07-27 Richard Biener <rguenther@suse.de>
14892
14893 PR tree-optimization/72517
14894 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
14895 Revert change to not compute read-read dependences.
14896
14897 2016-07-27 Richard Biener <rguenther@suse.de>
14898
14899 * predict.c (set_even_probabilities): Make nedges unsigned.
14900
14901 2016-07-27 Martin Liska <mliska@suse.cz>
14902
14903 * predict.c (set_even_probabilities): Handle unlikely edges.
14904 (combine_predictions_for_bb): Likewise.
14905
14906 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
14907
14908 PR target/71869
14909 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
14910 __float128 support when we don't have hardware support, so that
14911 the IEEE built-in functions like isgreater, first call __unordkf3
14912 to make sure neither operand is a NaN, and if both operands are
14913 ordered, do the normal comparison.
14914
14915 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
14916
14917 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
14918 name.
14919 (extract_code_and_val_from_cond_with_ops): Verify that name is
14920 either cond_op0 or cond_op1.
14921
14922 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
14923
14924 PR tree-optimization/18046
14925 * genmodes.c (emit_mode_size_inline): Emit an assert that
14926 verifies that mode is a valid array index.
14927 (emit_mode_nuinits_inline): Likewise.
14928 (emit_mode_inner_inline): Likewise.
14929 (emit_mode_unit_size_inline): Likewise.
14930 (emit_mode_unit_precision_inline): Likewise.
14931 * tree-vrp.c: Include params.h.
14932 (find_switch_asserts): Register edge assertions for the default
14933 label which correspond to the anti-ranges of each case label.
14934 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
14935 * doc/invoke.texi: Document it.
14936
14937 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14938
14939 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
14940 and unnecessary call to gimple_bb.
14941
14942 2016-07-26 Richard Biener <rguenther@suse.de>
14943
14944 PR rtl-optimization/71984
14945 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
14946 for VOIDmode.
14947
14948 2016-07-26 Richard Biener <rguenther@suse.de>
14949
14950 PR middle-end/72517
14951 * expmed.c (extract_bit_field_1): Constrain the vector mode
14952 with element size matching the extraction mode size when
14953 choosing a better vector mode to do the extraction from.
14954
14955 2016-07-26 Richard Biener <rguenther@suse.de>
14956 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14957
14958 PR middle-end/70920
14959 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
14960 pattern.
14961
14962 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14963
14964 * tree-ssa-structalias.c (struct scc_info): Change types of
14965 members to auto_sbitmap and auto_vec.
14966 (scc_info::scc_info): New constructor.
14967 (scc_info::~scc_info): New destructor.
14968 (init_scc_info): Remove.
14969 (free_scc_info): Remove.
14970 (find_indirect_cycles): Adjust.
14971 (perform_var_substitution): Likewise.
14972 (free_var_substitution_info): Likewise.
14973
14974 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14975
14976 * tree-outof-ssa.c (struct elim_graph): Change type of members
14977 to auto_vec and auto_sbitmap.
14978 (elim_graph::elim_graph): New constructor.
14979 (delete_elim_graph): Remove.
14980 (expand_phi_nodes): Adjust.
14981
14982 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14983
14984 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
14985 (new_elim_graph): Adjust.
14986 (clear_elim_graph): Likewise.
14987 (delete_elim_graph): Likewise.
14988 (elim_graph_size): Likewise.
14989 (elim_graph_add_node): Likewise.
14990 (elim_graph_add_edge): Likewise.
14991 (elim_graph_remove_succ_edge): Likewise.
14992 (eliminate_name): Likewise.
14993 (eliminate_build): Likewise.
14994 (elim_forward): Likewise.
14995 (elim_unvisited_predecessor): Likewise.
14996 (elim_backward): Likewise.
14997 (elim_create): Likewise.
14998 (eliminate_phi): Likewise.
14999 (expand_phi_nodes): Likewise.
15000
15001 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15002
15003 * bt-load.c (compute_out): Use auto_sbitmap class.
15004 (link_btr_uses): Likewise.
15005 * cfganal.c (mark_dfs_back_edges): Likewise.
15006 (post_order_compute): Likewise.
15007 (inverted_post_order_compute): Likewise.
15008 (pre_and_rev_post_order_compute_fn): Likewise.
15009 (single_pred_before_succ_order): Likewise.
15010 * cfgexpand.c (pass_expand::execute): Likewise.
15011 * cfgloop.c (verify_loop_structure): Likewise.
15012 * cfgloopmanip.c (fix_bb_placements): Likewise.
15013 (remove_path): Likewise.
15014 (update_dominators_in_loop): Likewise.
15015 * cfgrtl.c (break_superblocks): Likewise.
15016 * ddg.c (check_sccs): Likewise.
15017 (create_ddg_all_sccs): Likewise.
15018 * df-core.c (df_worklist_dataflow): Likewise.
15019 * dse.c (dse_step3): Likewise.
15020 * except.c (eh_region_outermost): Likewise.
15021 * function.c (thread_prologue_and_epilogue_insns): Likewise.
15022 * gcse.c (prune_expressions): Likewise.
15023 (prune_insertions_deletions): Likewise.
15024 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
15025 * graph.c (draw_cfg_nodes_no_loops): Likewise.
15026 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
15027 * lcm.c (compute_earliest): Likewise.
15028 (compute_farthest): Likewise.
15029 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
15030 (unroll_loop_runtime_iterations): Likewise.
15031 (unroll_loop_stupid): Likewise.
15032 * lower-subreg.c (decompose_multiword_subregs): Likewise.
15033 * lra-lives.c: Likewise.
15034 * lra.c (lra): Likewise.
15035 * modulo-sched.c (schedule_reg_moves): Likewise.
15036 (optimize_sc): Likewise.
15037 (get_sched_window): Likewise.
15038 (sms_schedule_by_order): Likewise.
15039 (check_nodes_order): Likewise.
15040 (order_nodes_of_sccs): Likewise.
15041 (order_nodes_in_scc): Likewise.
15042 * recog.c (split_all_insns): Likewise.
15043 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
15044 * reload1.c (reload): Likewise.
15045 * sched-rgn.c (haifa_find_rgns): Likewise.
15046 (split_edges): Likewise.
15047 (compute_trg_info): Likewise.
15048 * sel-sched.c (init_seqno): Likewise.
15049 * store-motion.c (remove_reachable_equiv_notes): Likewise.
15050 * tree-into-ssa.c (update_ssa): Likewise.
15051 * tree-ssa-live.c (live_worklist): Likewise.
15052 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
15053 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
15054 * Likewise.
15055 (try_peel_loop): Likewise.
15056 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
15057 * Likewise.
15058 * tree-ssa-pre.c (compute_antic): Likewise.
15059 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
15060 * tree-stdarg.c (reachable_at_most_once): Likewise.
15061 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
15062 * var-tracking.c (vt_find_locations): Likewise.
15063
15064 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15065
15066 * sbitmap.h (auto_sbitmap): New class.
15067
15068 2016-07-26 Alan Modra <amodra@gmail.com>
15069
15070 PR target/72103
15071 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
15072 sri->t_icode.
15073
15074 2016-07-25 David Malcolm <dmalcolm@redhat.com>
15075
15076 * input.c (selftest::temp_source_file::temp_source_file): Fix
15077 missing "%s" in fprintf.
15078
15079 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
15080
15081 PR middle-end/71732
15082 * cselib.c (cselib_process_insn): Invalidate argument slots for
15083 const/pure calls.
15084
15085 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15086
15087 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
15088 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
15089 vmulxh_lane_f16, vmulxh_laneq_f16): New.
15090
15091 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15092
15093 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15094 * config/aarch64/aarch64.md (fma, fnma): Support HF.
15095 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
15096
15097 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15098
15099 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15100 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
15101 New.
15102 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
15103 (add<mode>3): Likewise.
15104 (sub<mode>3): Likewise.
15105 (mul<mode>3): Likewise.
15106 (div<mode>3): Likewise.
15107 (*div<mode>3): Likewise.
15108 (<fmaxmin><mode>3): Extend to HF.
15109 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
15110 (fabd<mode>3): Likewise.
15111 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
15112 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
15113 (aarch64_fmulx<mode>): Likewise.
15114 (aarch64_fac<optab><mode>): Likewise.
15115 (aarch64_frecps<mode>): Likewise.
15116 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
15117 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
15118 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
15119 (VSDQ_HSDI): Support HI.
15120 (fcvt_target, FCVT_TARGET): Likewise.
15121 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
15122 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
15123 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
15124 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
15125 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
15126 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
15127 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
15128 vrsqrtsh_f16): New.
15129
15130 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15131
15132 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
15133 * config/aarch64/aarch64-builtins.c (hi_UP): New.
15134 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15135 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
15136 mode.
15137 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
15138 (aarch64_cm<optab><mode>): Likewise.
15139 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
15140 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
15141 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
15142 (sqrt<mode>2): Likewise.
15143 (*sqrt<mode>2): Likewise.
15144 (abs<mode>2): Likewise.
15145 (<optab><mode>hf2): New pattern for HF mode.
15146 (<optab>hihf2): Likewise.
15147 * config/aarch64/arm_neon.h: Include arm_fp16.h.
15148 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
15149 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
15150 Support HF mode.
15151 * config/aarch64/arm_fp16.h: New file.
15152 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
15153 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
15154 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
15155 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
15156 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
15157 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
15158 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
15159 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
15160 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
15161 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
15162 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
15163 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
15164 vsqrth_f16): New.
15165
15166 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15167
15168 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
15169 reduc_smin_scal_): Use VDQIF_F16.
15170 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
15171 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
15172 Use VHSDF.
15173 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
15174 * config/aarch64/iterators.md (VDQIF_F16): New.
15175 (vp): Support HF modes.
15176 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
15177 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
15178
15179 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15180
15181 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
15182 "*aarch64_mulx_elt_from_dup<mode>".
15183 (*aarch64_mul3_elt<mode>): Update schedule type.
15184 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
15185 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
15186 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
15187 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
15188 (f, fp): Support HF modes.
15189 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
15190 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
15191 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
15192 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
15193 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
15194 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
15195
15196 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15197
15198 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15199 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
15200 modes.
15201 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
15202 vfmsq_f16): New.
15203
15204 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15205
15206 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15207 * config/aarch64/aarch64-simd.md
15208 (aarch64_rsqrts<mode>): Extend to HF modes.
15209 (fabd<mode>3): Likewise.
15210 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
15211 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
15212 (aarch64_<maxmin_uns>p<mode>): Likewise.
15213 (<su><maxmin><mode>3): Likewise.
15214 (<maxmin_uns><mode>3): Likewise.
15215 (<fmaxmin><mode>3): Likewise.
15216 (aarch64_faddp<mode>): Likewise.
15217 (aarch64_fmulx<mode>): Likewise.
15218 (aarch64_frecps<mode>): Likewise.
15219 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
15220 (add<mode>3): Extend to HF modes.
15221 (sub<mode>3): Likewise.
15222 (mul<mode>3): Likewise.
15223 (div<mode>3): Likewise.
15224 (*div<mode>3): Likewise.
15225 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
15226 HF, V4HF and V8HF.
15227 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
15228 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
15229 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
15230 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
15231 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
15232 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
15233 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
15234 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
15235 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
15236 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
15237 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
15238 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
15239 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
15240 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
15241
15242 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15243
15244 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
15245 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
15246 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
15247 (neg<mode>2): Likewise.
15248 (abs<mode>2): Likewise.
15249 (<frint_pattern><mode>2): Likewise.
15250 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
15251 (<optab><VDQF:mode><fcvt_target>2): Likewise.
15252 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
15253 (ftrunc<VDQF:mode>2): Likewise.
15254 (<optab><fcvt_target><VDQF:mode>2): Likewise.
15255 (sqrt<mode>2): Likewise.
15256 (*sqrt<mode>2): Likewise.
15257 (aarch64_frecpe<mode>): Likewise.
15258 (aarch64_cm<optab><mode>): Likewise.
15259 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
15260 HF, V4HF and V8HF.
15261 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
15262 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
15263 (stype): New.
15264 * config/aarch64/arm_neon.h (vdup_n_f16): New.
15265 (vdupq_n_f16): Likewise.
15266 (vld1_dup_f16): Use vdup_n_f16.
15267 (vld1q_dup_f16): Use vdupq_n_f16.
15268 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
15269 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
15270 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
15271 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
15272 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
15273 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
15274 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
15275 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
15276 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
15277 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
15278 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
15279 vsqrt_f16, vsqrtq_f16): New.
15280
15281 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15282
15283 * config/aarch64/aarch64-simd.md
15284 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
15285 (aarch64_ext<mode>): Likewise.
15286 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
15287 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
15288 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
15289 and V8HFmode.
15290 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
15291 float16x8_t.
15292 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
15293 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
15294 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
15295 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
15296 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
15297 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
15298 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
15299 New.
15300 (vmov_n_f16): Reimplement using vdup_n_f16.
15301 (vmovq_n_f16): Reimplement using vdupq_n_f16..
15302
15303 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15304
15305 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
15306 "frame_related_p". Generate CFA annotation when it's necessary.
15307 (aarch64_expand_prologue): Use aarch64_add_constant.
15308 (aarch64_expand_epilogue): Likewise.
15309 (aarch64_output_mi_thunk): Pass "false" when calling
15310 aarch64_add_constant.
15311
15312 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15313
15314 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
15315 sequences.
15316
15317 2016-07-25 Jiong Wang <jiong.wang@arm.com>
15318
15319 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
15320 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
15321 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
15322 (aarch64_build_constant): Delete.
15323
15324 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
15325
15326 Revert
15327 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
15328
15329 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
15330 flag_toplevel_reorder.
15331
15332 2016-07-25 Richard Biener <rguenther@suse.de>
15333
15334 * cgraph.c (cgraph_node::verify_node): Compare against builtin
15335 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
15336 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
15337 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
15338 (streamer_get_builtin_tree): Likewise.
15339 (streamer_write_builtin): Likewise.
15340 * lto-streamer.h (LTO_builtin_decl): Remove.
15341 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
15342 (lto_input_scc): Remove LTO_builtin_decl handling.
15343 (lto_input_tree_1): Liekwise.
15344 * lto-streamer-out.c (lto_output_tree_1): Remove special
15345 handling of builtins.
15346 (DFS::DFS): Likewise.
15347 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
15348 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
15349 assert.
15350 (streamer_write_builtin): Remove.
15351
15352 2016-07-25 Martin Liska <mliska@suse.cz>
15353
15354 * lto-cgraph.c (input_symtab): Don't call get_working_sets
15355 if flag_auto_profile is set to true.
15356
15357 2016-07-25 Martin Liska <mliska@suse.cz>
15358
15359 PR gcov-profile/71868
15360 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
15361 have a function with multiple latches, count them all.
15362
15363 2016-07-25 Martin Liska <mliska@suse.cz>
15364
15365 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
15366
15367 2016-07-25 Martin Liska <mliska@suse.cz>
15368
15369 PR tree-optimization/71987
15370 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
15371 just for SSA_NAMEs. Fix GNU coding style.
15372
15373 2016-07-25 Martin Liska <mliska@suse.cz>
15374
15375 PR gcov-profile/64874
15376 * gcov-io.h: Update command about file format.
15377 * gcov-iov.c (main): Adapt the numbering scheme.
15378
15379 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
15380
15381 PR middle-end/66726
15382 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
15383 whose result is used in PHI.
15384 (final_range_test_p): Likewise.
15385 (maybe_optimize_range_tests): Likewise.
15386
15387 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
15388
15389 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15390 Reformat two multi-line strings.
15391
15392 2016-07-22 Martin Sebor <msebor@redhat.com>
15393
15394 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
15395
15396 2016-07-22 Martin Sebor <msebor@redhat.com>
15397
15398 PR c/71560
15399 * doc/extend.texi (Compound Literals): Correct and clarify.
15400 (Cast to Union): Same.
15401
15402 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
15403
15404 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
15405 comments to explain why certain error messages make mention of
15406 undocumented options.
15407 (rs6000_invalid_builtin): Change error messages to replace mention
15408 of undocumented options with mention of the -mcpu=power9 option
15409 that enables those undocumented options.
15410 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
15411 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
15412 definition of this macro to correct an existing error.
15413 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
15414 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
15415 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
15416 descriptions of built-in functions so that they depend on
15417 -mcpu=power9 instead of on the corresponding undocumented flags.
15418 * doc/invoke.texi (Option Summary): Remove all mention of newly
15419 undocumented flags.
15420 (IBM RS/6000 and PowerPC Options): Likewise.
15421 * doc/md.texi (Constraints for Particuliar Machines): Remove all
15422 mention of newly undocumented flags.
15423
15424 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
15425
15426 * ipa-cp.c (determine_versionability): Do not create constprop clones,
15427 when target_clones attribute is set.
15428
15429 2016-07-22 Bin Cheng <bin.cheng@arm.com>
15430
15431 * common.opt (funsafe-loop-optimizations): Mark ignore.
15432 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
15433 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
15434 related code.
15435 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
15436 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
15437
15438 2016-07-22 Bin Cheng <bin.cheng@arm.com>
15439
15440 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
15441 Parameter.
15442 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
15443 Parameter.
15444 (number_of_iterations_exit): Warn missed loop optimization for
15445 possible infinite loops.
15446
15447 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
15448
15449 PR target/71216
15450 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
15451 when to emit a ".machine" pseudo-op.
15452
15453 2016-07-22 Martin Liska <mliska@suse.cz>
15454
15455 PR gcov-profile/69028
15456 PR gcov-profile/62047
15457 * coverage.c (coverage_compute_lineno_checksum): Do not
15458 calculate checksum for fns w/o xloc.file.
15459 (coverage_compute_profile_id): Likewise.
15460
15461 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
15462
15463 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
15464 (avr_secondary_reload): ...and implementation.
15465 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
15466 * config/avr/avr.md (reload_in<mode>): Remove insns.
15467 (adjust_len) [lpm]: Remove insn attribute value.
15468 * config/avr/predicates.md (flash_operand): Remove insn predicate.
15469
15470 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
15471
15472 PR middle-end/71876
15473 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
15474 attribute.
15475 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
15476 * calls.c (special_function_p): Remove the special handling of the
15477 "__builtin_" prefix.
15478
15479 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
15480
15481 PR middle-end/71876
15482 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
15483 if STMT may be an alloca call.
15484 (gimple_alloca_call_p, alloca_call_p): Return only true for the
15485 builtin alloca call.
15486 * calls.h (gimple_maybe_alloca_call_p): New function.
15487 * tree-inline.c (inline_forbidden_p_stmt): Use
15488 gimple_maybe_alloca_call_p here.
15489
15490 2016-07-21 David Malcolm <dmalcolm@redhat.com>
15491
15492 * spellcheck-tree.c (best_macro_match::best_macro_match):
15493 Explictly specify the template arguments when invoking the base
15494 class constructor, to help older C++ compilers.
15495
15496 2016-07-21 Jakub Jelinek <jakub@redhat.com>
15497
15498 PR sanitizer/71953
15499 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
15500 before builtin_decl_implicit.
15501
15502 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
15503
15504 * optabs.c (emit_condiitonal_move): Short circuit for identical
15505 sources.
15506
15507 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
15508
15509 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
15510 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
15511 (noce_conversion_profitable_p): New.
15512 (noce_try_store_flag_constants): Use it.
15513 (noce_try_addcc): Likewise.
15514 (noce_try_store_flag_mask): Likewise.
15515 (noce_try_cmove): Likewise.
15516 (noce_try_cmove_arith): Likewise.
15517 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
15518 overwriting it.
15519 (noce_convert_multiple_sets): Move cost model to here, from...
15520 (bb_ok_for_noce_convert_multiple_sets) ...here.
15521 (noce_process_if_block): Update calls for above changes.
15522 (noce_find_if_block): Record new noce_if_info parameters.
15523
15524 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
15525
15526 * target.def (max_noce_ifcvt_seq_cost): New.
15527 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
15528 * doc/tm.texi: Regenerate.
15529 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
15530 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
15531 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
15532 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
15533 * doc/invoke.texi: Document new params.
15534
15535 2016-07-21 Richard Biener <rguenther@suse.de>
15536
15537 PR tree-optimization/71947
15538 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
15539 ranges have useful limit_vr information.
15540
15541 2016-07-21 Richard Biener <rguenther@suse.de>
15542
15543 * function-tests.c (build_trivial_generic_function): Set
15544 BLOCK_SUPERCONTEXT of DECL_INITIAL.
15545 * omp-low.c (create_omp_child_function): Likewise.
15546 (grid_expand_target_grid_body): Likewise.
15547 * cgraphunit.c (init_lowered_empty_function): Likewise.
15548 (cgraph_node::expand_thunk): Likewise.
15549 * tree-parloops.c (create_loop_fn): Likewise.
15550 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
15551
15552 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15553
15554 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
15555 in comment.
15556
15557 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
15558
15559 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
15560 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
15561 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
15562 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
15563 values for insn attribute.
15564 * config/avr/avr.c (avr_out_insert_notbit): New function.
15565 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
15566 ADJUST_LEN_INSV_NOTBIT_0/_7.
15567 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
15568
15569 2016-07-21 Bin Cheng <bin.cheng@arm.com>
15570
15571 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
15572 (chrec_convert_1, chrec_convert): Ditto.
15573 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
15574 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
15575 * tree-vrp.c (adjust_range_with_scev): Ditto.
15576 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
15577 (scev_var_range_cant_overflow): New function.
15578 (scev_probably_wraps_p): New parameter. Call above function.
15579 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
15580
15581 2016-07-21 Bin Cheng <bin.cheng@arm.com>
15582
15583 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
15584 by removing computation of may_be_zero.
15585
15586 2016-07-21 Jakub Jelinek <jakub@redhat.com>
15587
15588 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
15589
15590 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
15591
15592 Improving concepts performance and diagnostics.
15593 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
15594 for constraint satisfaction and subsumption.
15595 * timevar.h (auto_timevar): New constructor that matches the push/pop
15596 pattern of usage in pt.c.
15597
15598 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
15599
15600 * hwint.h (HOST_WIDE_INT_0): New define.
15601 (HOST_WIDE_INT_0U): Ditto.
15602 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
15603 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
15604 * simplify-rtx.c: Ditto.
15605 * tree-object-size.c: Ditto.
15606
15607 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15608
15609 * config/s390/s390.c (s390_encode_section_info): Remove mode size
15610 check.
15611
15612 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
15613
15614 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
15615 * combine.c: Use HOST_WIDE_INT_M1U instead of
15616 ~(unsigned HOST_WIDE_INT) 0.
15617 * double-int.h: Ditto.
15618 * dse.c: Ditto.
15619 * dwarf2asm.c:Ditto.
15620 * expmed.c: Ditto.
15621 * genmodes.c: Ditto.
15622 * match.pd: Ditto.
15623 * read-rtl.c: Ditto.
15624 * tree-ssa-loop-ivopts.c: Ditto.
15625 * tree-ssa-loop-prefetch.c: Ditto.
15626 * tree-vect-generic.c: Ditto.
15627 * tree-vect-patterns.c: Ditto.
15628 * tree.c: Ditto.
15629
15630 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
15631
15632 * config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
15633 constant addresses outside [0,0xc0] into a register.
15634 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
15635 cases where the base address register is unused after.
15636 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
15637 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
15638 (avr_out_store_psi_reg_disp_tiny): Same.
15639
15640 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
15641
15642 Implement attribute progmem on reduced Tiny cores by adding
15643 flash offset 0x4000 to respective symbols.
15644
15645 PR target/71948
15646 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
15647 documentation how it works on reduced Tiny cores.
15648 (AVR Named Address Spaces): No support for reduced Tiny.
15649 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
15650 (avr_address_tiny_pm_p): New static function.
15651 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
15652 if the address is in progmem.
15653 (avr_assemble_integer): Same.
15654 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
15655 for symbol_ref in progmem.
15656 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
15657 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
15658 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
15659
15660 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
15661
15662 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
15663 * configure: Regenerate.
15664 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
15665 (USE_THIN_ARCHIVES): New variable.
15666 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
15667 this archive as a thin archive.
15668
15669 2016-07-20 David Malcolm <dmalcolm@redhat.com>
15670
15671 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
15672 same location as last time, don't skip if we have fix-it hints.
15673 Clarify the skipping logic by converting it from one "if" clause
15674 to repeated "if" clauses.
15675 * spellcheck-tree.c: Include "cpplib.h".
15676 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
15677 (best_macro_match::best_macro_match): New constructor.
15678 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
15679 Move here from c/c-decl.c.
15680 (class best_macro_match): Move here from c/c-decl.c, converting
15681 from a typedef to a subclass, gaining a ctor.
15682
15683 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
15684
15685 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
15686 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
15687 define...
15688 (avr_addr_space_diagnose_usage): ...and implementation.
15689 (avr_addr_space_supported_p): New function.
15690 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
15691 report bad address space usage if that space is supported.
15692 (avr_insert_attributes): Same. No more complain about unsupported
15693 address spaces.
15694 * config/avr/avr-c.c (tm_p.h): Include it.
15695 (avr_cpu_cpp_builtins): Only define addr-space related built-in
15696 macro if avr_addr_space_supported_p.
15697
15698 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
15699
15700 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
15701 flag_toplevel_reorder.
15702
15703 2016-07-20 David Malcolm <dmalcolm@redhat.com>
15704
15705 * gcc-rich-location.c
15706 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
15707 a const char *.
15708 * gcc-rich-location.h
15709 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
15710
15711 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
15712
15713 * target.def (addr_space): Add new diagnose_usage to hook vector.
15714 * targhooks.c (default_addr_space_diagnose_usage): Add default
15715 implementation and...
15716 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
15717 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
15718 is some address space, call targetm.addr_space.diagnose_usage.
15719 * doc/tm.texi.in (Named Address Spaces): Add anchor for
15720 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
15721 * doc/tm.texi: Regenerate.
15722
15723 2016-07-20 Martin Liska <mliska@suse.cz>
15724
15725 PR middle-end/71898
15726 * graphite-isl-ast-to-gimple.c (later_of_the_two):
15727 Properly handly PHI stmts.
15728
15729 2016-07-20 Bin Cheng <bin.cheng@arm.com>
15730
15731 PR tree-optimization/71503
15732 PR tree-optimization/71683
15733 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
15734 and break.
15735
15736 2016-07-20 Martin Liska <mliska@suse.cz>
15737
15738 * doc/invoke.texi (-fipa-ra): Document when the option is
15739 disabled. Fix a typo.
15740
15741 2016-07-20 Martin Liska <mliska@suse.cz>
15742
15743 * Makefile.in: Include fibonacci_heap.c
15744 * fibonacci_heap.c: New file.
15745 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
15746 (fibonacci_heap::union_with): Fix deletion of the second heap.
15747 * selftest-run-tests.c (selftest::run_tests): Incorporate
15748 fibonacci heap tests.
15749 * selftest.h: Declare fibonacci_heap_c_tests.
15750
15751 2016-07-20 Martin Liska <mliska@suse.cz>
15752
15753 * selftest-run-tests.c (selftest::run_tests): New function.
15754 * selftest.h (sreal_c_tests): Declare.
15755 * sreal.c (sreal_verify_basics): New function.
15756 (verify_aritmetics): Likewise.
15757 (sreal_verify_arithmetics): Likewise.
15758 (verify_shifting): Likewise.
15759 (sreal_verify_shifting): Likewise.
15760 (void sreal_c_tests): Likewise.
15761
15762 2016-07-19 Jakub Jelinek <jakub@redhat.com>
15763
15764 PR rtl-optimization/71916
15765 * cfgrtl.c (contains_no_active_insn_p): Return false also for
15766 bb which have a single succ fake edge.
15767
15768 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
15769
15770 PR debug/71855
15771 * dwarf2out.c (gen_subprogram_die): Only call
15772 gen_unspecified_parameters_die while dumping early dwarf.
15773
15774 2016-07-19 Jakub Jelinek <jakub@redhat.com>
15775
15776 PR middle-end/71874
15777 * gimple-fold.c (fold_builtin_memory_op): Use
15778 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
15779
15780 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
15781
15782 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
15783 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
15784 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
15785 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
15786 * combine.c: Ditto.
15787 * cse.c: Ditto.
15788 * dojump.c: Ditto.
15789 * double-int.c: Ditto.
15790 * dse.c: Ditto.
15791 * dwarf2out.c: Ditto.
15792 * expmed.c: Ditto.
15793 * expr.c: Ditto.
15794 * fold-const.c: Ditto.
15795 * function.c: Ditto.
15796 * fwprop.c: Ditto.
15797 * genmodes.c: Ditto.
15798 * hwint.c: Ditto.
15799 * hwint.h: Ditto.
15800 * ifcvt.c: Ditto.
15801 * loop-doloop.c: Ditto.
15802 * loop-invariant.c: Ditto.
15803 * loop-iv.c: Ditto.
15804 * match.pd: Ditto.
15805 * optabs.c: Ditto.
15806 * real.c: Ditto.
15807 * reload.c: Ditto.
15808 * rtlanal.c: Ditto.
15809 * simplify-rtx.c: Ditto.
15810 * stor-layout.c: Ditto.
15811 * toplev.c: Ditto.
15812 * tree-ssa-loop-ivopts.c: Ditto.
15813 * tree-vect-generic.c: Ditto.
15814 * tree-vect-patterns.c: Ditto.
15815 * tree.c: Ditto.
15816 * tree.h: Ditto.
15817 * ubsan.c: Ditto.
15818 * varasm.c: Ditto.
15819 * wide-int-print.cc: Ditto.
15820 * wide-int.cc: Ditto.
15821 * wide-int.h: Ditto.
15822
15823 2016-07-19 David Malcolm <dmalcolm@redhat.com>
15824
15825 * selftest.c (selftest::assert_streq): Handle NULL values of
15826 val_actual and val_expected.
15827
15828 2016-07-19 Martin Jambor <mjambor@suse.cz>
15829
15830 PR fortran/71688
15831 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
15832 rather than cgraph_create_node to get a call graph node.
15833
15834 2016-07-19 Richard Biener <rguenther@suse.de>
15835
15836 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
15837 handle all tcc_constant bases and valueize SSA names.
15838 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
15839 tcc_constant bases.
15840
15841 2016-07-19 David Malcolm <dmalcolm@redhat.com>
15842
15843 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
15844 the flags of the exit block and bb2, not just the entry block.
15845
15846 2016-07-19 Richard Biener <rguenther@suse.de>
15847
15848 PR tree-optimization/71901
15849 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
15850 align member, group stuff with the bitfield.
15851 (vn_ref_op_align_unit): New inline.
15852 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
15853 record element alignment and operand 3 unchanged.
15854 (ao_ref_init_from_vn_reference): Adjust.
15855 (valueize_refs_1): Likewise.
15856 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
15857
15858 2016-07-19 Richard Biener <rguenther@suse.de>
15859
15860 PR tree-optimization/71908
15861 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
15862 symbolic constants in a more reliable way.
15863
15864 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
15865
15866 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
15867 comment.
15868 (vect_update_inits_of_drs): Likewise.
15869 (vect_create_cond_for_alias_checks): Likewise.
15870 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
15871
15872 2016-07-19 Richard Biener <rguenther@suse.de>
15873
15874 PR lto/71907
15875 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
15876 with an abstract origin that is not an inlined function outer
15877 scope add a self-reference as abstract origin.
15878 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
15879
15880 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
15881
15882 PR target/71493
15883 * config/rs6000/rs6000.c (rs6000_function_value): Fix
15884 unintentional System V.4 structure return breakage for structures
15885 with a single floating point element.
15886
15887 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
15888
15889 PR tree-optimization/71734
15890 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
15891 contains REF, use it to check safelen, assume that safelen value
15892 must be greater 1, fix style.
15893 (ref_indep_loop_p_2): Add REF_LOOP argument.
15894 (ref_indep_loop_p): Pass LOOP as additional argument to
15895 ref_indep_loop_p_2.
15896
15897 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
15898
15899 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
15900 allocation in the prologue.
15901 * explow.c (get_dynamic_stack_base): New function to return an address
15902 expression for the dynamic stack base.
15903 (get_dynamic_stack_size): New function to do the required dynamic stack
15904 space size calculations.
15905 (allocate_dynamic_stack_space): Use new functions.
15906 (align_dynamic_address): Move some code from
15907 allocate_dynamic_stack_space to new function.
15908 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
15909
15910 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15911
15912 * config/s390/s390.c (s390_encode_section_info): Always set
15913 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
15914 found.
15915
15916 2016-07-18 Richard Biener <rguenther@suse.de>
15917
15918 PR tree-optimization/71893
15919 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
15920 for sizetype cast added by array_ref_element_size.
15921 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15922
15923 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
15924
15925 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
15926 register parameters. Remove code to initialize argument pointer
15927 on TARGET_64BIT. Optimize call to _mcount when it can be reached
15928 using a pc-relative branch. Cleanup conditional code.
15929 * config/pa/pa.md (call_mcount): New expander.
15930 (call_mcount_nonpic): New insn.
15931 (call_mcount_pic): New insn and split.
15932 (call_mcount_pic_post_reload): New insn.
15933 (call_mcount_64bit): New insn and split.
15934 (call_mcount_64bit_post_reload): New insn.
15935
15936 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
15937
15938 * config/avr/predicates.md (const_m255_to_m1_operand): New.
15939 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
15940 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
15941 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
15942 (*usum_widenqihi3, *udiff_widenqihi3)
15943 (*addhi3_zero_extend.const): New combiner insns.
15944 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
15945 just 1 bit is affected.
15946 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
15947 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
15948
15949 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
15950
15951 * omp-low.c (lower_omp_target): Mark data clauses with
15952 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
15953 zero-length subarrays.
15954
15955 2016-07-15 Richard Biener <rguenther@suse.de>
15956
15957 PR tree-optimization/71881
15958 * tree-loop-distribution.c (destroy_loop): Remove blocks in
15959 reverse DOM order to make debug temp generation happy.
15960
15961 2016-07-15 Richard Biener <rguenther@suse.de>
15962
15963 PR tree-optimization/71887
15964 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
15965 verify it is not zero for division / modulo handling.
15966 (value_replacement): Adjust.
15967
15968 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
15969 Julian Brown <julian@codesourcery.com>
15970
15971 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
15972 * config/aarch64/aarch64-cost-tables.h
15973 (vulcan_extra_costs): New variable.
15974 * config/aarch64/aarch64.c
15975 (vulcan_addrcost_table): Likewise.
15976 (vulcan_regmove_cost): Likewise.
15977 (vulcan_vector_cost): Likewise.
15978 (vulcan_branch_cost): Likewise.
15979 (vulcan_tunings): Likewise.
15980
15981 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
15982
15983 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
15984 (output_in_order): Loop over undefined variables too. Output them
15985 via assemble_undefined_decl. Skip variables that correspond to hard
15986 registers or have value-exprs.
15987 * varpool.c (symbol_table::output_variables): Handle undefined
15988 variables together with defined ones.
15989
15990 2016-07-15 Richard Biener <rguenther@suse.de>
15991
15992 * tree-ssa-pre.c (get_representative_for): Make sure to return
15993 the value number of SSA names.
15994 (phi_translate_1): get_representative_for cannot return NULL.
15995 (do_pre_regular_insertion): Remove redundant call to
15996 fully_constant_expression.
15997 (do_pre_partial_partial_insertion): Likewise.
15998
15999 2016-07-15 Bin Cheng <bin.cheng@arm.com>
16000
16001 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
16002 (derive_simple_iv_with_niters): New function.
16003 (simple_iv): Rewrite using simple_iv_with_niters.
16004 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
16005 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
16006 function.
16007 (number_of_iterations_exit): Rewrite using above function.
16008 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
16009 Decl.
16010
16011 2016-07-15 Richard Biener <rguenther@suse.de>
16012
16013 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
16014 vec_construct cost.
16015
16016 2016-07-14 Jakub Jelinek <jakub@redhat.com>
16017
16018 PR tree-optimization/71872
16019 * tree-data-ref.c (get_references_in_stmt): Ignore references
16020 with is_gimple_constant get_base_address.
16021
16022 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
16023
16024 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
16025 (TARGET_HAVE_LDACQD): New macro.
16026 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
16027 than TARGET_HAVE_LDACQ.
16028 (arm_load_acquire_exclusivedi): Likewise.
16029 (arm_store_release_exclusivedi): Likewise.
16030
16031 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
16032
16033 PR rtl-optimization/71878
16034 * lra-constraints.c (match_reload): Pass information about other
16035 output operands. Create new unique register value if matching input
16036 operand shares same register value as output operand being considered.
16037 (curr_insn_transform): Record output operands already processed.
16038
16039 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16040
16041 PR target/65951
16042 PR tree-optimization/70923
16043 * tree-vect-patterns.c: Include mult-synthesis.h.
16044 (target_supports_mult_synth_alg): New function.
16045 (synth_lshift_by_additions): Likewise.
16046 (apply_binop_and_append_stmt): Likewise.
16047 (vect_synth_mult_by_constant): Likewise.
16048 (target_has_vecop_for_code): Likewise.
16049 (vect_recog_mult_pattern): Use above functions to synthesize vector
16050 multiplication by integer constants.
16051
16052 2016-07-14 Alan Modra <amodra@gmail.com>
16053
16054 * config/rs6000/altivec.md (altivec_mov<mode>): Disparage
16055 gpr alternatives. Correct '*' placement on Y,r alternative.
16056 Add '*' on operand 1 of r,r alternative.
16057
16058 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16059
16060 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
16061 * expmed.h: ... Here.
16062
16063 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
16064
16065 * gimple.h (stmt_can_terminate_bb_p): New function.
16066 * tree-cfg.c (need_fake_edge_p): Rename to ...
16067 (stmt_can_terminate_bb_p): ... this; return true if stmt can
16068 throw external; handle const and pure calls.
16069 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
16070
16071 2016-07-14 Richard Biener <rguenther@suse.de>
16072
16073 PR tree-optimization/71866
16074 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
16075 (do_hoist_insertion): Avoid endless recursion when we
16076 didn't insert anything because we managed to simplify
16077 things down to a constant or SSA name.
16078 (fully_constant_expression): Re-write in terms of ...
16079 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
16080 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
16081 vn_nary_build_or_lookup_1.
16082 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
16083 (vn_nary_build_or_lookup): ... this which now wraps it.
16084
16085 2016-07-14 Alan Modra <amodra@gmail.com>
16086
16087 PR target/71733
16088 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
16089 with p9_vector override before power9-dform override.
16090
16091 2016-07-13 Andi Kleen <ak@linux.intel.com>
16092
16093 * value-prof.c (gimple_value_profile_transformations): Don't run
16094 when auto_profile is on.
16095
16096 2016-07-13 Andi Kleen <ak@linux.intel.com>
16097
16098 * auto-profile.c (update_inlined_ind_target,
16099 afdo_indirect_call): Print information to dump file.
16100
16101 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
16102
16103 * genrecog.c (special_predicate_operand_p): New function.
16104 (predicate_name): Move function.
16105 (validate_pattern): Don't warn about missing mode for all
16106 define_special_predicate predicates.
16107
16108 2016-07-13 Bin Cheng <bin.cheng@arm.com>
16109
16110 * tree-vect-data-refs.c (vect_no_alias_p): New function.
16111 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
16112 resolve alias checks which are known at compilation time.
16113 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
16114 alias checks are resolved. Move dump info for too many runtime
16115 alias checks to here...
16116 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
16117
16118 2016-07-13 Richard Biener <rguenther@suse.de>
16119
16120 PR tree-optimization/24574
16121 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
16122 position and add shift, rotate, divison and modulo support
16123 for left zero.
16124 (value_replacement): Pass in argument position to absorbing_element_p.
16125
16126 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
16127
16128 PR ipa/71633
16129 * ipa-inline-transform.c (inline_call): Support
16130 instrumented thunks.
16131
16132 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
16133
16134 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
16135 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
16136 divide feature.
16137 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
16138 Baseline. Make initial alternative TARGET_32BIT only.
16139 (udivsi3): Likewise.
16140 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
16141 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
16142 target.
16143
16144 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
16145
16146 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
16147 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
16148 availability with TARGET_HAVE_MOVT.
16149 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
16150 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
16151 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
16152 UINTVAL.
16153 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
16154 extra instruction if MOVW is available. Use a cost variable
16155 incremented by COSTS_N_INSNS (1) when the condition match rather than
16156 returning an arithmetic expression based on COSTS_N_INSNS. Make
16157 constant with bottom half word zero cost 2 instruction if MOVW is
16158 available.
16159 * config/arm/arm.md (define_attr "arch"): Add v8mb.
16160 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
16161 target is ARMv8-M Baseline.
16162 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
16163 (arm_movtas_ze): Likewise.
16164 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
16165 alternative for constants satisfying j constraint.
16166 (thumb1_movsi_insn): Likewise.
16167 (movsi splitter for K alternative): Tighten condition to not trigger
16168 if movt is available and j constraint is satisfied.
16169 (Pe immediate splitter): Likewise.
16170 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
16171 constant fitting in an halfword to use MOVW.
16172 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
16173 effective target.
16174
16175 2016-07-13 Richard Biener <rguenther@suse.de>
16176
16177 PR middle-end/71104
16178 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
16179 gimplifying the LHS. Make sure to gimplify a returning twice
16180 call LHS without using SSA names.
16181
16182 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16183
16184 * tree-data-ref.c (find_data_references_in_stmt): Remove
16185 unnecessary call to vec::release.
16186 (graphite_find_data_references_in_stmt): Likewise.
16187 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
16188 * tree-vect-stmts.c (vectorizable_condition): Likewise.
16189
16190 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16191
16192 * cfgexpand.c (expand_used_vars): Make the type of a local
16193 variable auto_vec.
16194 * genmatch.c (lower_for): Likewise.
16195 * haifa-sched.c (haifa_sched_init): Likewise.
16196 (add_to_speculative_block): Likewise.
16197 (create_check_block_twin): Likewise.
16198 * predict.c (handle_missing_profiles): Likewise.
16199 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
16200 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
16201 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
16202 Likewise.
16203 (maybe_lower_iteration_bound): Likewise.
16204 * tree-ssa-sccvn.c (DFS): Likewise.
16205 * tree-stdarg.c (reachable_at_most_once): Likewise.
16206 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
16207 (vectorizable_store): Likewise.
16208
16209 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16210
16211 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
16212 (sccvn_dom_walker): make cond_stack an auto_vec.
16213
16214 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16215
16216 * ree.c (struct ext_state): Make type of members auto_vec.
16217 (find_and_remove_re): Adjust.
16218
16219 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16220
16221 * cfgexpand.c (struct stack_vars_data): Make type of fields
16222 auto_vec.
16223 (expand_used_vars): Adjust.
16224
16225 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16226
16227 * ipa.c (record_cdtor_fn): Adjust.
16228 (build_cdtor_fns): Likewise.
16229 (ipa_cdtor_merge): Make static_ctors and static_dtors local
16230 variables.
16231
16232 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16233
16234 * genextract.c (struct accum_extract): Add constructor and make
16235 members auto_vec.
16236 (gen_insn): Adjust.
16237
16238 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16239
16240 * tree.c (struct free_lang_data_d): Add constructor and change
16241 types of members to ones that automatically manage resources.
16242 (fld_worklist_push): Adjust.
16243 (find_decls_types): Likewise.
16244 (find_decls_types_in_eh_region): Likewise.
16245 (free_lang_data_in_cgraph): Stop manually creating and
16246 destroying members of free_lang_data_d.
16247
16248 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
16249
16250 PR rtl-optimization/68961
16251 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
16252 peephole variant. Use sse_reg_operand predicates.
16253
16254 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
16255
16256 * config/i386/predicates.md (x86_64_immediate_operand)
16257 <case CONST_INT>: Remove unneeded truncation to DImode.
16258 <case CONST>: Ditto.
16259 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
16260
16261 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
16262
16263 PR target/71805
16264 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
16265 The xxperm and xxpermr instructions require that the 2nd input
16266 operand overlap with the output operand, and not the 1st.
16267 (altivec_vperm_v8hiv16qi): Likewise.
16268 (altivec_vperm_<mode>_uns_internal): Likewise.
16269 (altivec_vpermr_<mode>_internal): Likewise.
16270 (vperm_v8hiv4si): Likewise.
16271 (vperm_v16qiv8hi): Likewise.
16272
16273 2016-07-12 Nathan Sidwell <nathan@acm.org>
16274
16275 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
16276 when -mno-pic-data-is-text-relative is in effect, by default.
16277 * doc/invoke.texi (mpic-data-is-text-relative): Document new
16278 behavior and clarify.
16279
16280 2016-07-12 Martin Liska <mliska@suse.cz>
16281
16282 * params.def: Add avg-loop niter.
16283 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
16284 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
16285 * doc/invoke.texi: Document the new parameter.
16286
16287 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16288
16289 PR middle-end/71700
16290 * expr.c (store_constructor): Mask sign-extended bits when widening
16291 sub-word constructor element at the start of a word.
16292
16293 2016-07-12 Martin Liska <mliska@suse.cz>
16294
16295 * Makefile.in: Append rule for params-options.h.
16296 * params-options.h: New file.
16297
16298 2016-07-12 Martin Liska <mliska@suse.cz>
16299
16300 * ira-build.c (mark_loops_for_removal): Properly iterate
16301 loops.
16302
16303 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
16304 Richard Biener <rguenther@suse.de>
16305
16306 PR tree-optimization/23286
16307 PR tree-optimization/70159
16308 * doc/invoke.texi: Document -fcode-hoisting.
16309 * common.opt (fcode-hoisting): New flag.
16310 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
16311 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
16312 (do_regular_insertion): Rename to ...
16313 (do_pre_regular_insertion): ... this and amend general comments
16314 on insertion strathegy.
16315 (do_partial_partial_insertion): Rename to ...
16316 (do_pre_partial_partial_insertion): ... this.
16317 (do_hoist_insertion): New function.
16318 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
16319 and call do_hoist_insertion properly.
16320 (insert): Adjust.
16321 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
16322 (pass_pre::execute): Register hoist_insert stats.
16323
16324 2016-07-12 Jakub Jelinek <jakub@redhat.com>
16325
16326 PR middle-end/71716
16327 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
16328 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
16329 is different from mode's bitsize. Small cleanup.
16330
16331 2016-07-12 Richard Biener <rguenther@suse.de>
16332
16333 PR rtl-optimization/68961
16334 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
16335 to simplify to a non-constant.
16336
16337 2016-07-11 Jakub Jelinek <jakub@redhat.com>
16338
16339 PR middle-end/71758
16340 * omp-low.c (expand_omp_target): Gimplify device.
16341
16342 PR tree-optimization/71823
16343 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
16344 to get vec_oprnds2 from op2.
16345
16346 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
16347
16348 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
16349 Hoist common subexpressions.
16350 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
16351
16352 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
16353
16354 PR target/71800
16355 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
16356 prevent generation of 'stxsiwx' on pre Power8 hardware.
16357
16358 2016-07-11 David Malcolm <dmalcolm@redhat.com>
16359
16360 * input.c: Include cpplib.h.
16361 (selftest::temp_source_file): New class.
16362 (selftest::temp_source_file::temp_source_file): New ctor.
16363 (selftest::temp_source_file::~temp_source_file): New dtor.
16364 (selftest::should_have_column_data_p): New function.
16365 (selftest::test_should_have_column_data_p): New function.
16366 (selftest::temp_line_table): New class.
16367 (selftest::temp_line_table::temp_line_table): New ctor.
16368 (selftest::temp_line_table::~temp_line_table): New dtor.
16369 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
16370 it to create a temp_line_table.
16371 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
16372 locations that are known to have column data.
16373 (selftest::line_table_case): New struct.
16374 (selftest::test_reading_source_line): Move tempfile handling
16375 to class temp_source_file.
16376 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
16377 (selftest::assert_token_loc_eq): New function.
16378 (ASSERT_TOKEN_LOC_EQ): New macro.
16379 (selftest::test_lexer): New function.
16380 (selftest::boundary_locations): New array.
16381 (selftest::input_c_tests): Call test_should_have_column_data_p.
16382 Loop over a test matrix of interesting values of location and
16383 default_range_bits, calling test_lexer on each case in the matrix.
16384 Move call to test_accessing_ordinary_linemaps into the matrix.
16385 * selftest.h (ASSERT_EQ): Reimplement in terms of...
16386 (ASSERT_EQ_AT): New macro.
16387
16388 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
16389
16390 PR target/71801
16391 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
16392 Don't convert TImode in debug insn.
16393
16394 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
16395
16396 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
16397 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
16398 (tree_type_common::lang_flag_7): New.
16399 (tree_type_common::spare): Reduce size.
16400 * tree.h (TYPE_ALIGN_OK): Remove.
16401 (TYPE_LANG_FLAG_7): New.
16402 (get_inner_reference): Adjust header.
16403 * print-tree.c (print_node): Adjust.
16404 * expr.c (get_inner_reference): Remove parameter keep_aligning.
16405 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
16406 calls to get_inner_reference.
16407 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
16408 handling of TYPE_ALIGN_OK.
16409 * builtins.c (get_object_alignment_2): Adjust call to
16410 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
16411 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
16412 TYPE_ALIGN_OK.
16413 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
16414 * cfgexpand.c (expand_debug_expr): Likewise.
16415 * dbxout.c (dbxout_expand_expr): Likewise.
16416 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
16417 loc_list_from_tree, fortran_common): Likewise.
16418 * fold-const.c (optimize_bit_field_compare,
16419 decode_field_reference, fold_unary_loc, fold_comparison,
16420 split_address_to_core_and_offset): Likewise.
16421 * gimple-laddress.c (execute): Likewise.
16422 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
16423 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
16424 * hsa-gen.c (gen_hsa_addr): Likewise.
16425 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
16426 * tsan.c (instrument_expr): Likewise.
16427 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
16428 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
16429 * tree-affine.c (tree_to_aff_combination,
16430 get_inner_reference_aff): Adjust calls to get_inner_reference.
16431 * tree-data-ref.c (split_constant_offset_1,
16432 dr_analyze_innermost): Likewise.
16433 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
16434 * tree-sra.c (ipa_sra_check_caller): Likewise.
16435 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
16436 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
16437 bswap_replace): Likewise.
16438 * tree-vect-data-refs.c (vect_check_gather,
16439 vect_analyze_data_refs): Likewise.
16440 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
16441 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
16442 TYPE_ALIGN_OK.
16443
16444 2016-07-11 David Malcolm <dmalcolm@redhat.com>
16445
16446 * Makefile.in (selftest-valgrind): New phony target.
16447 * function-tests.c (selftest::build_cfg): Delete pass instances
16448 created by the test.
16449 (selftest::convert_to_ssa): Likewise.
16450 (selftest::test_expansion_to_rtl): Likewise.
16451 * tree-cfg.c (selftest::test_linear_chain): Release dominator
16452 vectors.
16453 (selftest::test_diamond): Likewise.
16454
16455 2016-07-11 Richard Biener <rguenther@suse.de>
16456
16457 PR tree-optimization/71816
16458 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
16459 than replacing all of its operands.
16460
16461 2016-07-11 Alan Modra <amodra@gmail.com>
16462
16463 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
16464 (ctr<mode>): Add unspec.
16465 (ctr<mode>_internal*): Likewise.
16466
16467 2016-07-08 James Bowman <james.bowman@ftdichip.com>
16468
16469 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
16470 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
16471
16472 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
16473
16474 PR rtl-optimization/71621
16475 * lra-constraints.c (process_alt_operands): Check combination of
16476 reg class and mode.
16477
16478 2016-07-08 Jason Merrill <jason@redhat.com>
16479 Richard Biener <rguenther@suse.de>
16480
16481 P0145: Refining Expression Order for C++.
16482 * gimplify.c (initial_rhs_predicate_for): New.
16483 (gimplfy_modify_expr): Gimplify RHS before LHS.
16484
16485 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16486
16487 PR target/71297
16488 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16489 Allow standard error handling to take over when a wrong number
16490 of arguments is presented to __builtin_vec_ld () or
16491 __builtin_vec_st ().
16492
16493 2016-07-08 Jiong Wang <jiong.wang@arm.com>
16494
16495 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
16496 variants.
16497 (smin): Likewise.
16498 (fmax): New entry.
16499 (fmin): Likewise.
16500 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
16501 __builtin_aarch64_fmaxv2sf.
16502 (vmaxnmq_f32): Likewise.
16503 (vmaxnmq_f64): Likewise.
16504 (vminnm_f32): Likewise.
16505 (vminnmq_f32): Likewise.
16506 (vminnmq_f64): Likewise.
16507
16508 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
16509
16510 PR target/71806
16511 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
16512 enable -mfloat128-hardware by default.
16513 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
16514 that IEEE 128-bit hardware support needs.
16515 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
16516 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
16517 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
16518 floating point requires.
16519 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
16520 -mfloat128 and -mfloat128-hardware changes.
16521
16522 2016-07-08 Alan Hayward <alan.hayward@arm.com>
16523
16524 PR tree-optimization/71667
16525 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
16526
16527 2016-07-08 Martin Liska <mliska@suse.cz>
16528
16529 PR middle-end/71606
16530 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
16531 folding produces SAVE_EXPRs, thus return false for the type.
16532
16533 2016-07-07 Martin Liska <mliska@suse.cz>
16534
16535 * file-find.c (remove_prefix): New function.
16536 * file-find.h (remove_prefix): Declare the function.
16537 * gcc-ar.c (main): Skip a folder of the wrapper if
16538 a wrapped binary would point to the same file.
16539
16540 2016-07-07 Jan Hubicka <jh@suse.cz>
16541
16542 * tree-scalar-evolution.c (iv_can_overflow_p): export.
16543 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
16544 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
16545
16546 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
16547
16548 PR ipa/71624
16549 * ipa-inline-analysis.c (compute_inline_parameters): Set
16550 local.can_change_signature to false for intrumentation
16551 thunk callees.
16552
16553 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
16554
16555 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
16556 with TARGET_HAVE_MOVT.
16557 (TARGET_HAVE_MOVT): Define.
16558 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
16559 availability with TARGET_HAVE_MOVT.
16560 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
16561 availability.
16562 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
16563 TARGET_THUMB2.
16564 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
16565 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
16566 * config/arm/constraints.md (define_constraint "j"): Use
16567 TARGET_HAVE_MOVT to check MOVT availability.
16568
16569 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
16570
16571 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
16572
16573 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
16574
16575 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
16576 (armv8-m.main): Likewise.
16577 (armv8-m.main+dsp): Likewise.
16578 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
16579 (FL_FOR_ARCH8M_MAIN): Likewise.
16580 * config/arm/arm-tables.opt: Regenerate.
16581 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
16582 armv8-m.main+dsp to BE8_LINK_SPEC.
16583 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
16584 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
16585 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
16586 Baseline and Mainline.
16587 (arm_option_override_internal): Also disable arm_restrict_it when
16588 !arm_arch_notm. Update comment for -munaligned-access to also cover
16589 ARMv8-M Baseline.
16590 (arm_file_start): Increase buffer size for printing architecture name.
16591 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
16592 and armv8-m.main+dsp.
16593 (mno-unaligned-access): Clarify that this is disabled by default for
16594 ARMv8-M Baseline architectures as well.
16595
16596 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
16597
16598 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
16599 decide whether to prevent some libgcc routines being included for some
16600 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
16601 link between this condition and the one in
16602 libgcc/config/arm/lib1func.S.
16603
16604 2016-07-07 Richard Biener <rguenther@suse.de>
16605
16606 * tree-ssa-pre.c: Include alias.h.
16607 (compute_avail): If we have multiple VN_REFERENCEs with the
16608 same hashtable entry adjust that to make it a valid replacement
16609 for all of them with respect to alignment and aliasing
16610 when doing insertion.
16611 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
16612 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
16613
16614 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
16615
16616 PR target/70098
16617 PR target/71763
16618 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
16619 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
16620 constraint.
16621
16622 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16623
16624 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
16625 (adjust_mems): Adjust.
16626 (adjust_insn): Likewise.
16627 (prepare_call_arguments): Likewise.
16628
16629 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16630
16631 * gcse.c (struct ls_expr): Make stores field a vector.
16632 (ldst_entry): Adjust.
16633 (free_ldst_entry): Likewise.
16634 (print_ldst_list): Likewise.
16635 (compute_ld_motion_mems): Likewise.
16636 (update_ld_motion_stores): Likewise.
16637
16638 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16639
16640 * gcse.c (struct ls_expr): Remove loads field.
16641 (ldst_entry): Adjust.
16642 (free_ldst_entry): Likewise.
16643 (print_ldst_list): Likewise.
16644 (compute_ld_motion_mems): Likewise.
16645
16646 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16647
16648 * store-motion.c (struct st_expr): Make antic_stores a vector.
16649 (st_expr_entry): Adjust.
16650 (free_st_expr_entry): Likewise.
16651 (print_store_motion_mems): Likewise.
16652 (find_moveable_store): Likewise.
16653 (compute_store_table): Likewise.
16654 (remove_reachable_equiv_notes): Likewise.
16655 (replace_store_insn): Likewise.
16656 (build_store_vectors): Likewise.
16657
16658 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16659
16660 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
16661 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
16662
16663 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
16664
16665 PR tree-optimization/71518
16666 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
16667 misalign also for outer loops with negative step.
16668
16669 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
16670
16671 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
16672 (cortex_a53_shift): Add mov_shift.
16673 (cortex_a53_shift_reg): Add new reservation for register shifts.
16674 (cortex_a53_alu): Remove bfm.
16675 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
16676 (cortex_a53_alu_extr): Add new reservation for EXTR.
16677 (bypasses): Improve bypass modelling.
16678
16679 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16680
16681 PR target/50739
16682 * config/avr/avr.c (avr_asm_select_section): Strip off
16683 SECTION_DECLARED from flags when calling get_section.
16684
16685 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
16686
16687 * tree-vectorizer.h (vect_memory_access_type): Add
16688 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
16689 * tree-vect-stmts.c (compare_step_with_zero): New function.
16690 (perm_mask_for_reverse): Move further up file.
16691 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
16692 step is negative.
16693 (get_negative_load_store_type): New function.
16694 (get_load_store_type): Call it. Add an ncopies argument.
16695 (vectorizable_mask_load_store): Update call accordingly and
16696 remove tests for negative steps.
16697 (vectorizable_store, vectorizable_load): Likewise. Handle new
16698 memory_access_types.
16699
16700 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
16701
16702 * tree-vectorizer.h (vect_memory_access_type): New enum.
16703 (_stmt_vec_info): Add a memory_access_type field.
16704 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
16705 (vect_model_store_cost): Take an access type instead of a boolean.
16706 (vect_model_load_cost): Likewise.
16707 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
16708 vect_model_store_cost and vect_model_load_cost.
16709 * tree-vect-stmts.c (vec_load_store_type): New enum.
16710 (vect_model_store_cost): Take an access type instead of a
16711 store_lanes_p boolean. Simplify tests.
16712 (vect_model_load_cost): Likewise, but for load_lanes_p.
16713 (get_group_load_store_type, get_load_store_type): New functions.
16714 (vectorizable_store): Use get_load_store_type. Record the access
16715 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
16716 (vectorizable_load): Likewise.
16717 (vectorizable_mask_load_store): Likewise. Replace is_store
16718 variable with vls_type.
16719
16720 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
16721
16722 * tree-vectorizer.h (vect_grouped_load_supported): Add a
16723 single_element_p parameter.
16724 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
16725 Check the PR65518 case here rather than in vectorizable_load.
16726 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
16727 * tree-vect-stmts.c (vectorizable_load): Likewise.
16728
16729 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
16730
16731 * tree-vectorizer.h (gather_scatter_info): New structure.
16732 (vect_check_gather_scatter): Return a bool rather than a decl.
16733 Replace return-by-pointer arguments with a single
16734 gather_scatter_info *.
16735 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
16736 (vect_analyze_data_refs): Update call accordingly.
16737 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
16738 (vectorizable_mask_load_store): Likewise. Also record the
16739 offset dt and vectype in the gather_scatter_info.
16740 (vectorizable_store): Likewise.
16741 (vectorizable_load): Likewise.
16742
16743 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
16744
16745 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
16746 strided groups, use the cost of N scalar accesses instead
16747 of ncopies vector accesses.
16748 (vect_model_load_cost): Likewise.
16749
16750 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
16751
16752 * tree-vect-stmts.c (vect_cost_group_size): Delete.
16753 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
16754 variable to indicate when once-per-group costs are being used.
16755 (vect_model_load_cost): Likewise. Fix comment and misindented code.
16756
16757 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
16758
16759 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
16760 peeling-for-gaps condition.
16761
16762 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16763
16764 * config/s390/s390.c (s390_expand_vec_init): Force initializer
16765 element to register if it doesn't match general_operand.
16766
16767 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
16768 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16769
16770 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
16771 prototype.
16772 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
16773 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
16774 (SIGNBIT): New mode iterator.
16775 (Fsignbit): New mode attribute.
16776 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
16777 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
16778 when direct moves are available.
16779 (signbit<mode>2_dm): New define_insn_and_split).
16780 (signbit<mode>2_dm2): New define_insn.
16781
16782 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16783
16784 PR rtl-optimization/71594
16785 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
16786 into subregs of appropriate mode before trying to emit a conditional
16787 move.
16788
16789 2016-07-05 Jan Hubicka <jh@suse.cz>
16790
16791 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
16792 (simple_iv): Use it.
16793
16794 2016-07-05 Jan Hubicka <jh@suse.cz>
16795
16796 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
16797
16798 2016-07-05 Jiong Wang <jiong.wang@arm.com>
16799
16800 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
16801 "offmemok".
16802
16803 2016-07-05 Jan Hubicka <jh@suse.cz>
16804
16805 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
16806 IV can overflow.
16807
16808 2016-07-05 Richard Biener <rguenther@suse.de>
16809
16810 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
16811 Handle empty else block.
16812 (is_feasible_trace): Likewise.
16813 (split_paths): Likewise.
16814
16815 2016-07-05 Richard Biener <rguenther@suse.de>
16816
16817 * tree-loop-distribution.c (distribute_loop): Fix issue with
16818 the cost model loop.
16819
16820 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
16821
16822 * config/arm/neon-testgen.ml: Delete.
16823 * config/arm/neon.ml: Delete.
16824
16825 2016-07-04 Jakub Jelinek <jakub@redhat.com>
16826
16827 PR c++/71739
16828 * tree.c (attribute_value_equal): Use get_attribute_name instead of
16829 directly using TREE_PURPOSE.
16830
16831 2016-07-04 Jiong Wang <jiong.wang@arm.com>
16832
16833 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
16834 * config/aarch64/aarch64_neon.h: Likewise.
16835 * config/aarch64/arm_neon.h: Likewise.
16836 * config/aarch64/atomics.md: Likewise.
16837 * config/aarch64/aarch64-simd-builtins.def: Likewise.
16838 * doc/invoke.texi: Likewise.
16839
16840 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
16841
16842 * config/s390/s390.md: Add "z13" cpu_facility.
16843 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
16844 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
16845 condition" type instructions.
16846
16847 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
16848 Jeff Law <law@redhat.com>
16849
16850 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
16851 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
16852
16853 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
16854
16855 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
16856 permutation for TARGET_AVX512F.
16857 (ix86_expand_vec_one_operand_perm_avx512): New function.
16858 (expand_vec_perm_1): Invoke introduced function.
16859 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
16860 it may be not valid after vectorization.
16861
16862 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16863
16864 PR target/63874
16865 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
16866 typo in comment. Only force to memory if it is a weak
16867 external reference.
16868
16869 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
16870 Jiong Wang <jiong.wang@arm.com>
16871
16872 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
16873 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
16874 (AARCH64_FL_F16): New.
16875 (AARCH64_FL_FOR_ARCH8_2): New.
16876 (AARCH64_ISA_8_2): New.
16877 (AARCH64_ISA_F16): New.
16878 (TARGET_FP_F16INST): New.
16879 (TARGET_SIMD_F16INST): New.
16880 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
16881 ("fp"): Disabling "fp" also disables "fp16".
16882 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
16883 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
16884 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
16885 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
16886
16887 2016-07-04 Jan Beulich <jbeulich@suse.com>
16888
16889 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
16890
16891 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
16892
16893 PR target/71720
16894 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
16895 the insns, use an insn form that does not adjust the offset on
16896 little endian systems.
16897
16898 2016-07-01 Jan Beulich <jbeulich@suse.com>
16899
16900 * varasm.c (get_variable_section): Validate initializer in
16901 named .bss-like sections.
16902
16903 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
16904
16905 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
16906 Exchange the order of the second and third operands in the vpermr
16907 instruction tmeplate.
16908
16909 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
16910
16911 PR target/71698
16912 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
16913 Disallow TDmode values.
16914
16915 2016-07-01 Alan Modra <amodra@gmail.com>
16916
16917 PR rtl-optimization/71709
16918 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
16919 being set, not referenced.
16920
16921 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
16922
16923 PR tree-optimization/70729
16924 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
16925 of loop since it can be not valid after transformation.
16926
16927 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16928
16929 * config/arm/arm.c (thumb_reload_in_hi): Delete.
16930 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
16931
16932 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
16933
16934 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
16935 for NULL decl.
16936
16937 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
16938
16939 PR target/71677
16940 * config/rs6000/constraints.md (wY constraint): New constraint to
16941 match the requirements for the LXSD and STXSD instructions.
16942 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
16943 predicate to match the requirements for the LXSD and STXSD
16944 instructions.
16945 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
16946 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
16947 to make sure that the bottom 2 bits of offset are 0, the address
16948 form is offsettable, and no updating is done in the address mode.
16949 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
16950 (movdi_internal32): Likewise
16951 (movdi_internal64): Likewise.
16952
16953 2016-06-30 Jakub Jelinek <jakub@redhat.com>
16954
16955 PR tree-optimization/71707
16956 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
16957 strinfo even for ADDR_EXPR ptr.
16958
16959 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
16960
16961 * config/rs6000/altivec.md (darn_32): Change the condition to
16962 TARGET_P9_MISC instead of TARGET_MODULO.
16963 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
16964 condition expression.
16965 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
16966 condition expression.
16967 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
16968 (DFP_TEST): New code iterator.
16969 (dfptstsfi_<code>_mode>): New define_expand.
16970 (*dfp_sgnfcnc_<mode>): New define_insn.
16971 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
16972 definition next to BU_P9_MISC_1 definition and change the MASK
16973 value to RS6000_BTM_P9_MISC.
16974 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
16975 (BU_P9_64BIT_MISC_0): Likewise.
16976 (BU_P9_DFP_MISC_0): New macro definition.
16977 (BU_P9_DFP_MISC_1): New macro definition.
16978 (BU_P9_DFP_MISC_2): New macro definition.
16979 (BU_P9_DFP_OVERLOAD_1): New macro definition.
16980 (BU_P9_DFP_OVERLOAD_2): New macro definition.
16981 (BU_P9_DFP_OVERLOAD_3): New macro definition.
16982 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
16983 (TSTSFI_LT_TD): Likewise.
16984 (TSTSFI_EQ_DD): Likewise.
16985 (TSTSFI_EQ_TD): Likewise.
16986 (TSTSFI_GT_DD): Likewise.
16987 (TSTSFI_GT_TD): Likewise.
16988 (TSTSFI_OV_DD): Likewise.
16989 (TSTSFI_OV_TD): Likewise.
16990 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
16991 (TSTSFI_LT_DD): Likewise.
16992 (TSTSFI_LT_TD): Likewise.
16993 (TSTSFI_EQ): Likewise.
16994 (TSTSFI_EQ_DD): Likewise.
16995 (TSTSFI_EQ_TD): Likewise.
16996 (TSTSFI_GT): Likewise.
16997 (TSTSFI_GT_DD): Likewise.
16998 (TSTSFI_GT_TD): Likewise.
16999 (TSTSFI_OV): Likewise.
17000 (TSTSFI_OV_DD): Likewise.
17001 (TSTSFI_OV_TD): Likewise.
17002 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17003 overloaded test significance functions.
17004 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
17005 OPTION_MASK_P9_MISC into the representation of this mask.
17006 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
17007 of this mask.
17008 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
17009 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
17010 non-zero.
17011 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
17012 argument is a 6-bit unsigned literal value if the icode argument
17013 represents a DFP test significance built-in call.
17014 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
17015 flag used independently and in combination with the
17016 RS6000_BTM_64BIT flag.
17017 (rs6000_opt_masks): Add entry for power9-misc command-line option.
17018 (rs6000_builtin_mask_names): Add entry for power9-misc
17019 command-line option.
17020 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
17021 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
17022 RS6000_BTM_P9_MISC macros.
17023 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
17024 option and change the description of the -mpower9-vector option to
17025 enable only vector instructions, removing its erroneously claimed
17026 support for scalar instructions.
17027 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
17028 the ISA 3.0 digital floating point test significance built-in
17029 functions.
17030
17031 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
17032
17033 * config/aarch64/aarch64.c (cortexa35_tunings):
17034 Enable AES fusion. Use cortexa57_branch_cost.
17035 (cortexa53_tunings): Use cortexa57_branch_cost.
17036 (cortexa72_tunings): Use cortexa57_branch_cost.
17037 Use AUTOPREFETCHER_WEAK.
17038 (cortexa73_tunings): Use cortexa57_branch_cost.
17039
17040 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17041 James Greenhalgh <james.greenhalgh@arm.com>
17042
17043 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
17044 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
17045 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
17046 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
17047 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
17048 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
17049 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
17050 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
17051 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
17052 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
17053 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
17054 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
17055 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
17056 New intrinsics.
17057
17058 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
17059 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17060
17061 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
17062 New define_insn.
17063 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
17064
17065 2016-06-30 David Malcolm <dmalcolm@redhat.com>
17066
17067 PR driver/71651
17068 * gcc.c (driver::build_option_suggestions): Pass "option" to
17069 add_misspelling_candidates.
17070 * opts-common.c (add_misspelling_candidates): Add "option" param;
17071 use it to avoid adding negated forms for options marked with
17072 RejectNegative.
17073 * opts.h (add_misspelling_candidates): Add "option" param.
17074
17075 2016-06-30 Jakub Jelinek <jakub@redhat.com>
17076
17077 PR middle-end/71693
17078 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
17079 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
17080 first when permuting bitwise operation with rotate. Cast
17081 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
17082
17083 2016-06-29 David Malcolm <dmalcolm@redhat.com>
17084
17085 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
17086 for misspelled param names.
17087 * params.c: Include spellcheck.h.
17088 (find_param_fuzzy): New function.
17089 * params.h (find_param_fuzzy): New prototype.
17090 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
17091 * spellcheck.h (struct edit_distance_traits<const char *>):
17092 ...here.
17093
17094 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
17095
17096 * config/rs6000/predicates.md (const_0_to_7_operand): New
17097 predicate, recognize 0..7.
17098 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
17099 support for doing extracts from V16QImode, V8HImode, V4SImode
17100 under ISA 3.0.
17101 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
17102 vector extract support.
17103 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
17104 for ISA 3.0 vector extract.
17105 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
17106 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
17107 extracts of a constant element number from small integer vectors
17108 on 64-bit ISA 3.0 systems.
17109 (vsx_extract_<mode>_di): Likewise.
17110 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
17111 say when we can do ISA 3.0 vector extracts.
17112 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
17113 registers, using the stxsiwx instruction.
17114
17115 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
17116
17117 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
17118 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
17119 qdf24xx_regmove_cost, qdf24xx_tunings): New.
17120 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
17121 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
17122 * config/arm/arm.c (arm_qdf24xx_tune): New.
17123
17124 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
17125
17126 * config/aarch64/aarch64.c (cortexa53_tunings):
17127 Increase loop alignment to 8. Set function alignment to 16.
17128 (cortexa35_tunings): Likewise.
17129 (cortexa57_tunings): Increase loop alignment to 8.
17130 (cortexa72_tunings): Likewise.
17131 (cortexa73_tunings): Likewise.
17132
17133 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
17134
17135 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
17136 for arm_fp16_ok and arm_fp16_hw.
17137 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
17138 arm_fp16_alternative.
17139
17140 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
17141
17142 PR tree-optimization/71655
17143 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
17144 types when swapping operands.
17145
17146 2016-06-29 Martin Liska <mliska@suse.cz>
17147
17148 PR middle-end/71585
17149 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
17150 * ipa-inline-transform.c (inline_call): Remove unnecessary call
17151 of build_optimization_node.
17152
17153 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
17154
17155 PR tree-optimization/70729
17156 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
17157 independent in loops having positive safelen value.
17158 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
17159 it may be not valid after vectorization.
17160
17161 2016-06-29 Jakub Jelinek <jakub@redhat.com>
17162
17163 PR tree-optimization/71625
17164 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
17165 is sorted by ascending list->offset. If PTR is non-NULL and there is
17166 previous strinfo, call get_stridx_plus_constant.
17167 (get_stridx): Pass exp as second argument to get_addr_stridx.
17168 (addr_stridxptr): Add missing list = list->next, so that there can be
17169 more than one entries in the list. Bump limit from 16 to 32. Ensure
17170 the list is sorted by ascending list->offset.
17171 (get_stridx_plus_constant): Adjust so that it can be also called with
17172 ADDR_EXPR instead of SSA_NAME as PTR.
17173 (handle_char_store): Pass NULL_TREE as second argument to
17174 get_addr_stridx.
17175
17176 2016-06-29 Richard Biener <rguenther@suse.de>
17177
17178 PR rtl-optimization/68961
17179 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
17180
17181 2016-06-29 Richard Biener <rguenther@suse.de>
17182
17183 PR middle-end/71002
17184 * alias.c (component_uses_parent_alias_set_from): Handle
17185 type punning through union accesses by using the union alias set.
17186 * gimple.c (gimple_get_alias_set): Remove union type punning case.
17187
17188 2016-07-29 Richard Biener <rguenther@suse.de>
17189
17190 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
17191 precision not matching mode precision.
17192
17193 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
17194
17195 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
17196 pa_output_arg_descriptor.
17197 (call_val_symref_64bit_post_reload): Likewise.
17198 (call_val_powf_64bit_post_reload): Likewise.
17199 (sibcall_internal_symref_64bit): Likewise.
17200 (sibcall_value_internal_symref_64bit): Likewise.
17201
17202 2016-06-28 Jakub Jelinek <jakub@redhat.com>
17203
17204 PR middle-end/71626
17205 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
17206 a constant, force its SUBREG_REG into memory or register instead
17207 of whole op1.
17208
17209 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
17210
17211 PR target/58655
17212 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
17213 * doc/invoke.texi (AVR Options): Document it.
17214
17215 2016-06-28 Walter Lee <walt@tilera.com>
17216
17217 * config/tilegx/linux.h: Do not include arch/icache.h
17218 (CLEAR_INSN_CACHE): Provide inlined definition directly.
17219 * config/tilepro/linux.h: Do not include arch/icache.h
17220 (CLEAR_INSN_CACHE): Provide inlined definition directly.
17221
17222 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
17223
17224 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
17225 for big-endian BIT_FIELD_REF.
17226
17227 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
17228
17229 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
17230 ('size' attribute): Add '128'.
17231 Include power9.md.
17232 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
17233 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
17234 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
17235 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
17236 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
17237 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
17238 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
17239 *trunc<mode>df2_odd): Set size attribute to '128'.
17240 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
17241 * config/rs6000/power6.md (power6-fp): Include dfp type.
17242 * config/rs6000/power7.md (power7-fp): Likewise.
17243 * config/rs6000/power8.md (power8-fp): Likewise.
17244 * config/rs6000/power9.md: New file.
17245 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
17246 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
17247 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
17248 htmsimple.
17249 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
17250 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
17251 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
17252 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
17253 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
17254 dfp_dscri_<mode>): Change type attribute to dfp.
17255 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
17256 attribute to vecsimple.
17257 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
17258 and prefetch streams.
17259 (rs6000_option_override_internal): Remove temporary code setting
17260 tuning to power8. Don't set rs6000_sched_groups for power9.
17261 (last_scheduled_insn): Change to rtx_insn *.
17262 (divide_cnt, vec_load_pendulum): New variables.
17263 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
17264 (rs6000_issue_rate): Set issue rate for Power9.
17265 (is_power9_pairable_vec_type): New.
17266 (power9_sched_reorder2): New.
17267 (rs6000_sched_reorder2): Call new function for Power9 specific
17268 reordering.
17269 (insn_must_be_first_in_group): Remove Power9.
17270 (insn_must_be_last_in_group): Likewise.
17271 (force_new_group): Likewise.
17272 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
17273 Initialize divide_cnt/vec_load_pendulum.
17274 (_rs6000_sched_context, rs6000_init_sched_context,
17275 rs6000_set_sched_context): Handle context save/restore of new
17276 variables.
17277
17278 2016-06-28 Richard Biener <rguenther@suse.de>
17279
17280 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
17281 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
17282 COMPONENT_REF operand.
17283 (nonoverlapping_component_refs_p): Likewise.
17284 * stor-layout.c (start_bitfield_representative): Mark
17285 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
17286
17287 2016-06-28 Jakub Jelinek <jakub@redhat.com>
17288
17289 * Makefile.in: Don't cat ../stage_current if it does not exist.
17290
17291 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
17292 last argument is a bit-field.
17293
17294 PR rtl-optimization/71673
17295 * internal-fn.c (expand_arith_overflow_result_store): Use
17296 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
17297 expand_simple_binop.
17298
17299 PR middle-end/66867
17300 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
17301 expand_ifn_atomic_compare_exchange): New functions.
17302 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
17303 * tree.h (build_call_expr_internal_loc): Rename to ...
17304 (build_call_expr_internal_loc_array): ... this. Fix up type of
17305 last argument.
17306 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
17307 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
17308 ATOMIC_COMPARE_EXCHANGE result.
17309 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
17310 * gimple-fold.h (optimize_atomic_compare_exchange_p,
17311 fold_builtin_atomic_compare_exchange): New prototypes.
17312 * gimple-fold.c (optimize_atomic_compare_exchange_p,
17313 fold_builtin_atomic_compare_exchange): New functions..
17314 * tree-ssa.c (execute_update_addresses_taken): If
17315 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
17316 of call when finding addressable vars, and if such var becomes
17317 non-addressable, call fold_builtin_atomic_compare_exchange.
17318
17319 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
17320
17321 PR target/71670
17322 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
17323 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
17324
17325 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
17326
17327 * config/rs6000/rs6000.md ('type' attribute): Add
17328 veclogical,veccmpfx,vecexts,vecmove insn types.
17329 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
17330 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
17331 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
17332 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
17333 *nabs<mode>2_hw): Change type to vecmove.
17334 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
17335 *boolcc<mode>3_internal, *eqv<mode>3_internal,
17336 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
17337 *ieee_128bit_vsx_abs<mode>2_internal,
17338 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
17339 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
17340 *ieee128_mtvsrd_32bit): Change type to veclogical.
17341 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
17342 *movdi_internal32, *movdi_internal64): Update insn types.
17343 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
17344 vsx_extract_<mode>): Change type to veclogical.
17345 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
17346 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
17347 *vsx_sign_extend_si_v2di): Change type to vecexts.
17348 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
17349 type to veclogical.
17350 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
17351 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
17352 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
17353 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
17354 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
17355 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
17356 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
17357 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
17358 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
17359 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
17360 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
17361 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
17362 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
17363 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
17364 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
17365 (ppc7450-vecsimple): Add veclogical, vecmove.
17366 (ppc7450-veccmp): Add veccmpfx.
17367 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
17368 vecmove.
17369 (ppc8540_vector_compare): Add veccmpfx.
17370 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
17371 * config/rs6000/cell.md (cell-fp): Add fpsimple.
17372 (cell-vecsimple): Add veclogical, vecmove.
17373 (cell-veccmp): Add veccmpfx.
17374 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
17375 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
17376 veccmpfx.
17377 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
17378 * config/rs6000/power4.md (power4-fp): Add fpsimple.
17379 (power4-vecsimple): Add veclogical, vecmove.
17380 (power4-veccmp): Add veccmpfx.
17381 * config/rs6000/power5.md (power5-fp): Add fpsimple.
17382 * config/rs6000/power6.md (power6-fp): Add fpsimple.
17383 (power6-vecsimple): Add veclogical, vecmove.
17384 (power6-veccmp): Add veccmpfx.
17385 * config/rs6000/power7.md (power7-fp): Add fpsimple.
17386 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
17387 * config/rs6000/power8.md (power8-fp): Add fpsimple.
17388 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
17389 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
17390 * config/rs6000/titan.md (titan_fp): Add fpsimple.
17391 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
17392 fpsimple.
17393 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
17394
17395 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
17396
17397 PR target/71656
17398 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
17399 OPTION_MASK_P9_DFORM_VECTOR.
17400 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
17401 disable -mpower9-dform-vector when using reload.
17402 (quad_address_p): Remove 'gpr_p' argument and all associated code.
17403 New 'strict' argument. Update all callers. Add strict addressing
17404 support.
17405 (rs6000_legitimate_offset_address_p): Remove call to
17406 virtual_stack_registers_memory_p.
17407 (rs6000_legitimize_reload_address): Add quad address support.
17408 (rs6000_legitimate_address_p): Move call to quad_address_p above
17409 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
17410 to account for new strict usage.
17411 (rs6000_output_move_128bit): Adjust quad_address_p args to account
17412 for new strict usage.
17413 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
17414
17415 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
17416
17417 PR target/70902
17418 PR target/71453
17419 PR target/71555
17420 PR target/71596
17421 PR target/71657
17422 * config/i386/i386.c (ix86_spill_class): Disable condition to
17423 always return NO_REGS.
17424
17425 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
17426
17427 * predict.c: Include gimple-pretty-print.h
17428 (predicted_by_loop_heuristics_p): Check also
17429 PRED_LOOP_EXIT_WITH_RECURSION
17430 (predict_loops): Find self recursive calls and use special purpose
17431 predictors for them; dump log about decisions.
17432 (pass_profile::execute): Dump info about #of iterations.
17433 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
17434 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
17435
17436 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
17437
17438 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
17439 output_asm_insn calls and shorten long lines. Output .CALL
17440 argument descriptor using pa_output_arg_descriptor. Add various
17441 inline $$dyncall and other optimizations.
17442 (pa_attr_length_indirect_call): Adjust ordering and lengths.
17443
17444 2016-06-25 Jakub Jelinek <jakub@redhat.com>
17445
17446 PR tree-optimization/71643
17447 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
17448 EH preds.
17449
17450 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
17451 leak a bitmap if dep_bb is NULL.
17452
17453 PR tree-optimization/71631
17454 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
17455 to rewrite_expr_tree even if negate_result, move new_lhs var
17456 declaration and initialization earlier, for powi_result set afterwards
17457 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
17458 if new_lhs != lhs, and don't shadow gsi var.
17459
17460 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
17461
17462 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
17463 Add in_loop parameter.
17464 (predict_loops): Add loop guard heuristics.
17465 * predict.def (PRED_LOOP_GUARD): New heuristics.
17466
17467 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
17468
17469 * predict.c: Include ipa-utils.h
17470 (tree_bb_level_prediction): Predict recursive calls.
17471 (tree_estimate_probability_bb): Skip inexpensive calls for call
17472 predictor.
17473 * predict.def (PRED_RECURSIVE_CALL): New.
17474
17475 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17476
17477 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
17478 (BU_FLOAT128_1): Likewise.
17479 (FABSQ): Likewise.
17480 (COPYSIGNQ): Likewise.
17481 (RS6000_BUILTIN_NANQ): Likewise.
17482 (RS6000_BUILTIN_NANSQ): Likewise.
17483 (RS6000_BUILTIN_INFQ): Likewise.
17484 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
17485 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
17486 (TARGET_FOLD_BUILTIN): New #define.
17487 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
17488 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
17489 (rs6000_fold_builtin): New target hook implementation, handling
17490 folding of 128-bit NaNs and infinities.
17491 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
17492 entries are filled in to avoid problems during bootstrap
17493 self-test; define builtins for 128-bit NaNs and infinities.
17494 (rs6000_opt_mask): Add entry for float128.
17495 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
17496 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
17497 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
17498 (const_str_type_node): New #define.
17499 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
17500 to a define_expand that dispatches to either copysign<mode>3_soft
17501 or copysign<mode>3_hard.
17502 (copysign<mode>3_hard): Rename from copysign<mode>3.
17503 (copysign<mode>3_soft): New define_insn.
17504 * doc/extend.texi: Document new builtins.
17505
17506 2016-06-24 Jakub Jelinek <jakub@redhat.com>
17507
17508 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
17509 PRIu64 instead of lu.
17510
17511 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
17512
17513 PR debug/71642
17514 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
17515 copy the type name.
17516
17517 2016-06-24 Jakub Jelinek <jakub@redhat.com>
17518
17519 PR tree-optimization/71647
17520 * omp-low.c (lower_rec_input_clauses): Convert
17521 omp_clause_aligned_alignment (c) to size_type_node for the
17522 last argument of __builtin_assume_aligned.
17523
17524 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
17525
17526 * configure.ac (calling ___tls_get_addr via GOT): New
17527 assembler/linker check.
17528 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
17529 assembler and linker supports calling ___tls_get_addr via GOT.
17530 Otherise, defined to 0.
17531 * config.in: Regenerated.
17532 * configure: Likewise.
17533 * config/i386/constraints.md (Yb): New constraint.
17534 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
17535 (REG_CLASS_NAMES): Likewise.
17536 (REG_CLASS_CONTENTS): Likewise.
17537 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
17538 the b constraint with the Yb constraint. Call ___tls_get_addr
17539 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
17540 is 1.
17541 (*tls_local_dynamic_base_32_gnu): Likewise.
17542 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
17543 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
17544 (*tls_local_dynamic_base_64_<mode>): Likewise.
17545
17546 2016-06-24 Martin Liska <mliska@suse.cz>
17547
17548 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
17549 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
17550 few functions.
17551 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
17552 argument to true if the expected number of iterations is
17553 loop-based.
17554
17555 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
17556
17557 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
17558 assemble for 32bit target.
17559 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
17560 and $ld_ix86_gld_32_opt to link for 32bit target.
17561 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
17562 * configure: Regenerate.
17563
17564 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17565
17566 * config/arm/arm.c (int_log2): Delete definition and prototype.
17567 (shift_op): Use exact_log2 instead of int_log2.
17568 (vfp3_const_double_for_fract_bits): Likewise.
17569
17570 2016-06-24 Jakub Jelinek <jakub@redhat.com>
17571
17572 * internal-fn.c (expand_arith_set_overflow): New function.
17573 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
17574 Use it.
17575 (expand_arith_overflow_result_store): Likewise. Handle precision
17576 smaller than mode precision.
17577 * tree-vrp.c (extract_range_basic): For imag part, handle
17578 properly signed 1-bit precision result.
17579 * doc/extend.texi (__builtin_add_overflow): Document that last
17580 argument can't be pointer to enumerated or boolean type.
17581 (__builtin_add_overflow_p): Document that last argument can't
17582 have enumerated or boolean type.
17583
17584 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
17585 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17586
17587 * config/rs6000/predicates.md (splat_input_operand): Rework.
17588 Don't allow constants, since the insns that use this predicate
17589 don't support constants. Constants are handled by other insns
17590 that are created via combine. During and after register
17591 allocation, only allow indexed or indirect addresses, and not
17592 general addresses. Only allow modes supported by the hardware.
17593 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
17594 comment. Move check for using VSPLTIS<x> to a common location,
17595 instead of doing it in two different places.
17596
17597 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
17598
17599 * config/i386/driver-i386.c (host_detect_local_cpu): Set
17600 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
17601 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
17602 signature_CENTAUR_ebx.
17603
17604 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
17605
17606 PR target/66232
17607 PR target/67400
17608 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
17609 (as_ix86_gas_32_opt): This.
17610 (ld_ix86_tls_ldm_opt): Renamed to ...
17611 (ld_ix86_gld_32_opt): This.
17612 (R_386_TLS_LDM reloc): Updated.
17613 (R_386_GOT32X reloc): New assembler/linker check.
17614 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
17615 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
17616 defined to 0.
17617 * config.in: Regenerated.
17618 * configure: Likewise.
17619 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
17620 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
17621 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
17622 if ix86_force_load_from_GOT_p returns true.
17623 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
17624 ix86_force_load_from_GOT_p returns true.
17625 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
17626 the external function address via the GOT slot.
17627 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
17628 HAVE_AS_IX86_GOT32X before returning false.
17629 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
17630 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
17631
17632 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
17633
17634 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
17635
17636 2016-06-23 Andi Kleen <ak@linux.intel.com>
17637
17638 * Makefile.in: Regenerate.
17639 * doc/install.texi: Document autoprofiledbootstrap.
17640
17641 2016-06-23 Andi Kleen <ak@linux.intel.com>
17642
17643 * config/i386/gcc-auto-profile: New file.
17644
17645 2016-06-23 Martin Liska <mliska@suse.cz>
17646
17647 PR middle-end/71619
17648 * predict.c (predict_loops): Revert the hunk that was removed
17649 in r237103.
17650
17651 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
17652
17653 * config.gcc: Add support for arm*-*-phoenix* targets.
17654 * config/arm/t-phoenix: New.
17655 * config/phoenix.h: New.
17656
17657 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
17658 H.J. Lu <hongjiu.lu@intel.com>
17659
17660 PR target/67400
17661 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
17662 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
17663 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
17664 ix86_force_load_from_GOT_p returns true.
17665 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
17666 ix86_force_load_from_GOT_p returns true.
17667 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
17668 ix86_force_load_from_GOT_p returns true.
17669 (ix86_expand_move): Load the external function address via the
17670 GOT slot if ix86_force_load_from_GOT_p returns true.
17671 * config/i386/predicates.md (x86_64_immediate_operand): Return
17672 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
17673 (x86_64_zext_immediate_operand): Ditto.
17674
17675 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
17676
17677 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
17678
17679 2016-06-22 David Malcolm <dmalcolm@redhat.com>
17680
17681 PR c/70339
17682 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
17683 * diagnostic.c (pedwarn_at_rich_loc): New function.
17684 * spellcheck.h (best_match::best_match): Add a
17685 "best_distance_so_far" optional parameter.
17686 (best_match::set_best_so_far): New method.
17687 (best_match::get_best_distance): New accessor.
17688 (best_match::get_best_candidate_length): New accessor.
17689
17690 2016-06-22 Nick Clifton <nickc@redhat.com>
17691
17692 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
17693 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
17694 modes are accepted as well.
17695 (ucompare_loc_descriptor): Likewise.
17696 (minmax_loc_descriptor): Likewise.
17697 (clz_loc_descriptor): Likewise.
17698 (popcount_loc_descriptor): Likewise.
17699 (bswap_loc_descriptor): Likewise.
17700 (rotate_loc_descriptor): Likewise.
17701 (mem_loc_descriptor): Likewise.
17702 (loc_descriptor): Likewise.
17703
17704 2016-06-22 David Malcolm <dmalcolm@redhat.com>
17705
17706 * common.opt (fdiagnostics-parseable-fixits): New option.
17707 * diagnostic.c: Include "selftest.h".
17708 (print_escaped_string): New function.
17709 (print_parseable_fixits): New function.
17710 (diagnostic_report_diagnostic): Call print_parseable_fixits.
17711 (selftest::assert_print_escaped_string): New function.
17712 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
17713 (selftest::test_print_escaped_string): New function.
17714 (selftest::test_print_parseable_fixits_none): New function.
17715 (selftest::test_print_parseable_fixits_insert): New function.
17716 (selftest::test_print_parseable_fixits_remove): New function.
17717 (selftest::test_print_parseable_fixits_replace): New function.
17718 (selftest::diagnostic_c_tests): New function.
17719 * diagnostic.h (struct diagnostic_context): Add field
17720 "parseable_fixits_p".
17721 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
17722 -fdiagnostics-parseable-fixits.
17723 (-fdiagnostics-parseable-fixits): New option.
17724 * opts.c (common_handle_option): Handle
17725 -fdiagnostics-parseable-fixits.
17726 * selftest-run-tests.c (selftest::run_tests): Call
17727 selftest::diagnostic_c_tests.
17728 * selftest.h (selftest::diagnostic_c_tests): New prototype.
17729
17730 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
17731
17732 PR tree-optimization/71488
17733 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
17734 comparison of boolean vectors.
17735 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
17736 of boolean vectors using bitwise operations.
17737
17738 2016-06-22 Andreas Schwab <schwab@suse.de>
17739
17740 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
17741 Remove declaration.
17742
17743 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
17744
17745 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
17746
17747 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
17748
17749 * config/i386/i386.c (print_reg): Emit an error message on attempt to
17750 print FLAGS_REG.
17751
17752 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17753
17754 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
17755 * config/arm/arm-cores.def (cortex-a73): New entry.
17756 (cortex-a73.cortex-a35): Likewise.
17757 (cortex-a73.cortex-a53): Likewise.
17758 * config/arm/arm-tables.opt: Regenerate.
17759 * config/arm/arm-tune.md: Likewise.
17760 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
17761 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
17762 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
17763 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
17764 * doc/invoke.texi (ARM Options): Document cortex-a73,
17765 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
17766
17767 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17768
17769 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
17770 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
17771 (cortex-a73.cortex-a35): Likewise.
17772 (cortex-a73.cortex-a53): Likewise.
17773 * config/aarch64/aarch64-tune.md: Regenerate.
17774 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
17775 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
17776 -mcpu and -mtune.
17777
17778 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17779
17780 * configure.ac (gcc_cv_as_compress_debug): Remove
17781 --compress-debug-sections as extra as switch.
17782 Handle gas --compress-debug-sections=type.
17783 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
17784 Handle gld --compress-debug-sections=type.
17785 * configure: Regenerate.
17786
17787 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
17788
17789 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
17790
17791 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
17792
17793 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
17794 (do_rewrite): likewise.
17795
17796 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17797
17798 * common/config/mep/mep-common.c: Remove.
17799 * config.gcc: Remove mep-* support.
17800 * config/mep/constraints.md: Remove.
17801 * config/mep/default.h: Remove.
17802 * config/mep/intrinsics.h: Remove.
17803 * config/mep/intrinsics.md: Remove.
17804 * config/mep/ivc2-template.h: Remove.
17805 * config/mep/mep-c5.cpu: Remove.
17806 * config/mep/mep-core.cpu: Remove.
17807 * config/mep/mep-default.cpu: Remove.
17808 * config/mep/mep-ext-cop.cpu: Remove.
17809 * config/mep/mep-intrin.h: Remove.
17810 * config/mep/mep-ivc2.cpu: Remove.
17811 * config/mep/mep-pragma.c: Remove.
17812 * config/mep/mep-protos.h: Remove.
17813 * config/mep/mep.c: Remove.
17814 * config/mep/mep.cpu: Remove.
17815 * config/mep/mep.h: Remove.
17816 * config/mep/mep.md: Remove.
17817 * config/mep/mep.opt: Remove.
17818 * config/mep/predicates.md: Remove.
17819 * config/mep/t-mep: Remove.
17820 * doc/install.texi: Remove mep-* documentation.
17821 * doc/md.texi: Likewise.
17822
17823 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17824
17825 * config.gcc: Remove support for avr-rtems.
17826 * config/avr/gen-avr-mmcu-specs.c: Likewise.
17827 * config/avr/rtems.h: Remove.
17828 * config/avr/t-rtems: Remove.
17829
17830 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17831
17832 * config.gcc: Remove m32r-rtems support.
17833 * config/m32r/rtems.h: Remove.
17834
17835 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17836
17837 * config.gcc: Remove h8300-rtems support.
17838 * config/h8300/rtems.h: Remove.
17839 * config/h8300/t-rtems: Remove.
17840
17841 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17842
17843 * config.gcc: Remove support for knetbsd.
17844 * configure.ac: Likewise.
17845 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
17846 * config/knetbsd-gnu.h: Remove.
17847 * configure: Regenerate.
17848
17849 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17850
17851 * config.gcc: Remove support for openbsd 2 and 3.
17852 * config/openbsd-oldgas.h: Remove.
17853
17854 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17855
17856 * config.gcc: Remove interix support.
17857 * config/i386/i386-interix.h: Remove.
17858 * config/i386/interix.opt: Remove.
17859 * config/i386/t-interix: Remove.
17860 * configure: Regenerate.
17861 * configure.ac: Remove interix support.
17862 * doc/install.texi: Remove interix documentation.
17863
17864 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
17865
17866 * config/rs6000/rs6000.h: Add conditional preprocessing directives
17867 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
17868 not defined.
17869
17870 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
17871
17872 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
17873 they are both PLACEHOLDER_EXPRs.
17874
17875 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
17876
17877 * stor-layout.c (layout_type): Move setting complex MODE to
17878 layout_type, instead of setting it ahead of time by the caller.
17879 * tree.c (build_complex_type): Likewise.
17880
17881 2016-06-21 Martin Liska <mliska@suse.cz>
17882
17883 * predict.c (force_edge_cold): Replace imposisble with
17884 impossible.
17885
17886 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
17887
17888 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
17889 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
17890
17891 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
17892
17893 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
17894
17895 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
17896 Ilya Enkovich <ilya.enkovich@intel.com>
17897
17898 PR target/71549
17899 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
17900 New member function to convert V1TImode register to SUBREG
17901 TImode in debug insn.
17902 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
17903 after changing register mode to V1TImode.
17904
17905 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
17906
17907 * config/aarch64/aarch64-cores.def (vulcan): New core.
17908 * config/aarch64/aarch64-tune.md: Regenerate.
17909 * doc/invoke.texi: Document vulcan as an available option.
17910
17911 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
17912
17913 * cse.c (canon_asm_operands): New function extracted from...
17914 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
17915 either standalone or member of a PARALLEL.
17916
17917 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
17918
17919 PR target/30417
17920 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
17921 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
17922 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
17923
17924 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
17925
17926 PR target/71103
17927 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
17928 constant addresses if can_create_pseudo_p.
17929
17930 2016-06-21 Jakub Jelinek <jakub@redhat.com>
17931
17932 PR tree-optimization/71588
17933 * tree-ssa-strlen.c (valid_builtin_call): New function.
17934 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
17935 it.
17936
17937 2016-06-20 Jakub Jelinek <jakub@redhat.com>
17938
17939 PR middle-end/71581
17940 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
17941 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
17942 for conversion of scalar user var to complex type and use the
17943 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
17944 punt.
17945
17946 PR rtl-optimization/71591
17947 * toplev.c (toplev::run_self_tests): If no_backend, complain and
17948 don't run any tests.
17949
17950 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
17951
17952 PR target/71571
17953 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
17954 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
17955 space for PIC with non-v32 and the common non-PIC "jump".
17956
17957 2016-06-20 Jakub Jelinek <jakub@redhat.com>
17958
17959 PR target/71559
17960 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
17961 returned values and add UN*/LTGT/*ORDERED cases with values matching
17962 D operand modifier on vcmp for AVX.
17963
17964 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
17965
17966 * config/aarch64/aarch64.opt
17967 (mpc-relative-literal-loads): Rename internal option name.
17968 * config/aarch64/aarch64.c
17969 (aarch64_nopcrelative_literal_loads): Rename to
17970 aarch64_pcrelative_literal_loads.
17971 (aarch64_expand_mov_immediate): Likewise.
17972 (aarch64_secondary_reload): Likewise.
17973 (aarch64_can_use_per_function_literal_pools_p): Likewise.
17974 (aarch64_override_options_after_change_1): Rename and simplify logic.
17975 (aarch64_classify_symbol): Merge large model checks into switch,
17976 remove pc-relative load check.
17977
17978 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
17979
17980 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
17981 costs relative to the cost of a register move.
17982
17983 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
17984
17985 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
17986 (vcvt_n_f64_u64): Likewise.
17987 (vcvt_n_s64_f64): Likewise.
17988 (vcvt_n_u64_f64): Likewise.
17989 (vcvt_f64_s64): Likewise.
17990 (vrecpe_f64): Likewise.
17991 (vcvt_f64_u64): Likewise.
17992 (vrecps_f64): Likewise.
17993
17994 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
17995
17996 * config/aarch64/aarch64.md
17997 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
17998 iterators.
17999 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
18000 attributes.
18001 * config/aarch64/aarch64-builtins.c
18002 (aarch64_types_binop_uss_qualifiers): Delete.
18003 (TYPES_BINOP_USS): Likewise.
18004 (aarch64_types_binop_sus_qualifiers): Likewise.
18005 (TYPES_BINOP_SUS): Likewise.
18006 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
18007 (TYPES_FCVTIMM_SUS): Likewise.
18008 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
18009 rather than BINOP.
18010 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
18011 (fcvtzs): Use SHIFTIMM rather than BINOP.
18012 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
18013
18014 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
18015
18016 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
18017 costs relative to the cost of a register move.
18018
18019 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
18020
18021 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
18022 Allow scalar/single vector modes to be tieable.
18023
18024 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
18025
18026 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
18027
18028 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18029
18030 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
18031 "alignement".
18032 * tree.h (TYPE_ALIGN): Likewise.
18033
18034 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
18035
18036 PR target/71103
18037 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
18038
18039 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
18040
18041 * config/avr/avr.c (avr_print_operand): Fix "format not a string
18042 literal" build warnings.
18043 (avr_print_operand_address): Dito.
18044
18045 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
18046
18047 PR target/71375
18048 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
18049 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
18050
18051 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
18052
18053 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
18054
18055 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
18056
18057 PR bootstrap/71435
18058 * reload1.c (reload): Pass 0 to finish_spills when called because
18059 update_eliminables_and_spill returns true and remove did_spill.
18060 (finish_spills): Adjust comment and document GLOBAL parameter.
18061
18062 2016-06-17 DJ Delorie <dj@redhat.com>
18063
18064 PR target/71338
18065 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
18066 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
18067 (umulqihi3_virt): Likewise.
18068 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
18069 (umulqihi3_real): Likewise.
18070
18071 2016-06-17 Martin Liska <mliska@suse.cz>
18072
18073 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
18074
18075 2016-06-17 Martin Liska <mliska@suse.cz>
18076
18077 * predict.def: PRED_LOOP_EXIT from 92 to 85.
18078
18079 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
18080
18081 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
18082 __FAST_MATH__.
18083 (vaddq_f32): Likewise.
18084 (vmul_f32): Likewise.
18085 (vmulq_f32): Likewise.
18086 (vsub_f32): Likewise.
18087 (vsubq_f32): Likewise.
18088
18089 2016-06-17 Bin Cheng <bin.cheng@arm.com>
18090
18091 PR tree-optimization/71347
18092 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
18093 cost for all uses in group.
18094
18095 2016-06-17 Bin Cheng <bin.cheng@arm.com>
18096
18097 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
18098 insert gimple seq if it's not empty.
18099
18100 2016-06-17 Bin Cheng <bin.cheng@arm.com>
18101
18102 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
18103 member OFFSET.
18104 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
18105 rather than OFFSET.
18106 (comp_dr_with_seg_len_pair): Ditto.
18107 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
18108 struct dr_with_seg_len_pair against DR_OFFSET.
18109 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
18110 DR_OFFSET directly.
18111
18112 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
18113
18114 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
18115
18116 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
18117
18118 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
18119 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
18120 (pa_output_millicode_call): Likewise.
18121 (pa_output_call): Likewise.
18122 (pa_output_indirect_call): Likewise.
18123 (pa_asm_output_mi_thunk): Likewise.
18124
18125 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18126
18127 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
18128
18129 2016-06-16 Martin Liska <mliska@suse.cz>
18130
18131 * predict.c (combine_predictions_for_insn): When we find a first
18132 match predictor, we should consider just predictors with
18133 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
18134 DS theory predictor.
18135 (combine_predictions_for_bb): Likewise.
18136
18137 2016-06-16 Jakub Jelinek <jakub@redhat.com>
18138
18139 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
18140 with base of reference to struct.
18141
18142 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
18143
18144 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
18145
18146 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18147
18148 PR target/71151
18149 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
18150 progmem_swtable_section.
18151 (progmem_swtable_section): Remove.
18152 (avr_asm_function_rodata_section): Remove.
18153 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
18154 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
18155
18156 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
18157
18158 * config/i386/driver-i386.c (host_detect_local_cpu): Set
18159 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
18160 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
18161 signature_CENTAUR_ebx.
18162 * config/i386/i386.c (ix86_option_override_internal): Add
18163 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
18164 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
18165 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
18166
18167 2016-06-16 Martin Liska <mliska@suse.cz>
18168
18169 * predict.def: Add fortran loop preheader predictor.
18170 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
18171 fold IFN_BUILTIN_EXPECT with a known constant argument.
18172
18173 2016-06-16 Martin Liska <mliska@suse.cz>
18174
18175 * predict.def: Add 'Fortran' to display text of all
18176 PRED_FORTRAN_* predictors.
18177
18178 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
18179
18180 PR target/71242
18181 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
18182 [IA64_BUILTIN_NANSQ]: Ditto.
18183 (ia64_fold_builtin): New function.
18184 (TARGET_FOLD_BUILTIN): New define.
18185 (ia64_init_builtins) Declare const_string_type node.
18186 Add __builtin_nanq and __builtin_nansq builtin functions.
18187 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
18188
18189 2016-06-16 Nick Clifton <nickc@redhat.com>
18190
18191 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
18192 MSP430_HWMULT_ prefix to enum values.
18193 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
18194 * config/msp430/msp430.c: Update use of enum values.
18195 * config/msp430/msp430.md: Likewise.
18196 * config/msp430/msp430.opt: Likewise.
18197
18198 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
18199
18200 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
18201 of comparsions in the last iteration.
18202
18203 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
18204 Joern Rennecke <joern.rennecke@embecosm.com>
18205
18206 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
18207 addresses.
18208 (arc_needs_pcl_p): Add GOTOFFPC.
18209 (arc_legitimate_pic_addr_p): Likewise.
18210 (arc_output_pic_addr_const): Likewise.
18211 (arc_legitimize_pic_address): Generate a pc-relative address using
18212 GOTOFFPC.
18213 (arc_output_libcall): Use @pcl syntax.
18214 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
18215 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
18216 (*movsi_insn): Use @pcl syntax.
18217 (doloop_begin_i): Likewise.
18218
18219 2016-06-16 Martin Liska <mliska@suse.cz>
18220
18221 * predict.def: Define a new predictor.
18222
18223 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
18224
18225 * config/arc/arc.opt (mtp-regno): Update text.
18226
18227 2016-06-16 Renlin Li <renlin.li@arm.com>
18228
18229 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
18230
18231 2016-06-16 Jakub Jelinek <jakub@redhat.com>
18232
18233 PR target/71554
18234 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
18235 (setcc + and peephole2): Likewise.
18236
18237 PR rtl-optimization/71532
18238 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
18239 memory slots.
18240
18241 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
18242
18243 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
18244 DImode constants with XXSPLTIB in vector registers.
18245 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
18246 vsx_extract_<mode>_internal{1,2} into a single insn that handles
18247 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
18248 extraction of the element at the top of the register as a scalar
18249 value.
18250 (vsx_extract_<mode>_internal1): Likewise.
18251 (vsx_extract_<mode>_internal2): Likewise.
18252 * config/rs6000/constraints.md (wi constraint): Remove a comment
18253 about DImode not being allowed in Altivec registers.
18254 (wB constraint): New constraint for constants that can be
18255 generated in Altivec registers with VSPLTISW/VUPKHSW.
18256 * config/rs6000/predicates.md (xxspltib_constant_split): Update
18257 comments.
18258 (xxspltib_constant_nosplit): Likewise.
18259 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
18260 support for -mupper-regs-di to enable DImode to go into Altivec
18261 registers.
18262 (POWERPC_MASKS): Likewise.
18263 (power7 cpu): Likewise.
18264 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
18265 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
18266 for DImode being allowed in Altivec registers. Update wi/wj
18267 constraints. Set scalar_in_vmx_p flag.
18268 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
18269 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
18270 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
18271 (rs6000_opt_masks): Add -mupper-regs-di.
18272 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
18273 direct move to use wi and not wj.
18274 (lfiwzx): Likewise.
18275 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
18276 alternative.
18277 (floatunssi<mode>2_lfiwzx_mem): Likewise.
18278 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
18279 any VSX register, instead of just Altivec registers, to allow
18280 either operand to be an Altivec register or both.
18281 (fixuns_trunc<mode>di2_fctiduz): Likewise.
18282 (movdi_internal32): Add support for -mupper-regs-di. Add support
18283 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
18284 the alternatives and attributes to be lined up to be easier to
18285 read.
18286 (movdi_internal64): Likewise.
18287 (64-bit DImode splitters): Change predicates to only split loading
18288 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
18289 load constants in ISA 3.0 or ISA 2.07 respectively.
18290 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
18291 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
18292 mention -mcpu=power9 sets these options.
18293 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
18294 wB constraint.
18295
18296 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
18297
18298 PR target/67353
18299 * config/avr/avr.c (avr_set_current_function): Warn misspelled
18300 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
18301 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
18302 by default to warn misspelled interrupt/ signal handler.
18303 * doc/invoke.texi (AVR Options): Document it. Update description
18304 for -nodevicelib option.
18305
18306 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18307
18308 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
18309 up parentheses. Use GET_MODE_UNIT_BITSIZE.
18310 (aarch64_<sur>shll2_n<mode>): Likewise.
18311
18312 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
18313
18314 PR middle-end/71529
18315 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
18316 DECL_CONTEXT for copied arguments.
18317
18318 2016-06-15 Alan Hayward <alan.hayward@arm.com>
18319
18320 PR tree-optimization/71483
18321 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
18322 for slp
18323
18324 2016-06-15 Martin Liska <mliska@suse.cz>
18325
18326 * predict.c (tree_predict_by_opcode): Call predict_edge_def
18327 instead of predict_edge w/o a probability.
18328
18329 2016-06-15 Alan Hayward <alan.hayward@arm.com>
18330
18331 PR tree-optimization/71439
18332 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
18333 live PHIs.
18334
18335 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18336
18337 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
18338 register subregs in SET_SRC.
18339
18340 2016-06-15 Richard Biener <rguenther@suse.de>
18341
18342 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
18343 store restrictions.
18344
18345 2016-06-15 Richard Biener <rguenther@suse.de>
18346
18347 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
18348 not consider dependences between accesses that belong to the
18349 same group.
18350 (vect_analyze_data_ref_dependences): Do not analyze read-read
18351 or self-dependences.
18352
18353 2016-06-14 David Malcolm <dmalcolm@redhat.com>
18354
18355 * spellcheck-tree.c: Include spellcheck-tree.h rather than
18356 spellcheck.h.
18357 (find_closest_identifier): Reimplement in terms of
18358 best_match<tree,tree>.
18359 * spellcheck-tree.h: New file.
18360 * spellcheck.c (struct edit_distance_traits<const char *>): New
18361 struct.
18362 (find_closest_string): Reimplement in terms of
18363 best_match<const char *, const char *>.
18364 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
18365 overload to spellcheck-tree.h.
18366 (find_closest_identifier): Likewise.
18367 (struct edit_distance_traits<T>): New template.
18368 (class best_match): New class.
18369
18370 2016-06-14 David Malcolm <dmalcolm@redhat.com>
18371
18372 * selftest-run-tests.c (selftest::run_tests): Call
18373 selftest::spellcheck_tree_c_tests.
18374 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
18375 * spellcheck-tree.c: Include selftest.h and stringpool.h.
18376 (selftest::test_find_closest_identifier): New function.
18377 (selftest::spellcheck_tree_c_tests): New function.
18378 * spellcheck.c (selftest::test_find_closest_string): Verify that
18379 the order of the vec does not affect the results for this case.
18380 (selftest::test_data): New array.
18381 (selftest::test_metric_conditions): New function.
18382 (selftest::spellcheck_c_tests): Add a test of case-comparison.
18383 Call selftest::test_metric_conditions.
18384
18385 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18386
18387 * config/rs6000/rs6000-builtin.def (commentary): Typo.
18388 (BU_P9_MISC_1): Likewise.
18389 (BU_P9_64BIT_MISC_0): Likewise.
18390 (BU_P9_MISC_0): Likewise.
18391
18392 2016-06-14 David Malcolm <dmalcolm@redhat.com>
18393
18394 * gcc-rich-location.c
18395 (gcc_rich_location::add_fixit_misspelled_id): New method.
18396 * gcc-rich-location.h
18397 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
18398
18399 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
18400
18401 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
18402 FreeBSD 11 and above.
18403
18404 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
18405
18406 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
18407
18408 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18409
18410 * expmed.h: Close parenthesis in "at your option" in copyright
18411 boilerplate.
18412 * lower-subreg.h: Likewise.
18413
18414 2016-06-14 Richard Biener <rguenther@suse.de>
18415
18416 PR middle-end/71526
18417 * genmatch.c (expr::gen_transform): Use in_type for comparisons
18418 if available.
18419
18420 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18421
18422 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
18423 New function.
18424 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
18425 mask+shift version.
18426 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
18427 New prototype.
18428 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
18429 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
18430
18431 2016-06-14 Richard Biener <rguenther@suse.de>
18432
18433 PR tree-optimization/71522
18434 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
18435 copying into float copying.
18436
18437 2016-06-14 Jakub Jelinek <jakub@redhat.com>
18438
18439 PR tree-optimization/71520
18440 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
18441 (replace_block_by): Move user labels from bb1 to bb2.
18442
18443 2016-06-14 Richard Biener <rguenther@suse.de>
18444
18445 PR middle-end/71310
18446 PR bootstrap/71510
18447 * expr.h (get_bit_range): Declare.
18448 * expr.c (get_bit_range): Export.
18449 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
18450 word_mode again to constrain the bitfield access.
18451
18452 2016-06-14 Richard Biener <rguenther@suse.de>
18453
18454 PR tree-optimization/71521
18455 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
18456 division int_const_binop against zero divisor.
18457
18458 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
18459
18460 * config/i386/i386.md (signbittf2): New expander.
18461 * config/i386/sse.md (ptesttf2): New insn pattern.
18462
18463 2016-06-13 David Malcolm <dmalcolm@redhat.com>
18464
18465 PR bootstrap/71481
18466 * input.c (selftest::test_reading_source_line): Avoid reading from
18467 __FILE__ by creating a tempfile with known content and reading
18468 from that instead.
18469
18470 2016-06-13 David Malcolm <dmalcolm@redhat.com>
18471
18472 * pretty-print.c (assert_pp_format_colored): Skip the test if
18473 GCC_COLORS is set.
18474 (test_pp_format): Remove comment about GCC_COLORS.
18475
18476 2016-06-13 David Malcolm <dmalcolm@redhat.com>
18477
18478 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
18479 * pretty-print.c (assert_pp_format_va): Add location param and use
18480 it with ASSERT_STREQ_AT.
18481 (assert_pp_format): Add location param and pass it to
18482 assert_pp_format_va.
18483 (assert_pp_format_colored): Likewise.
18484 (ASSERT_PP_FORMAT_1): New.
18485 (ASSERT_PP_FORMAT_2): New.
18486 (ASSERT_PP_FORMAT_3): New.
18487 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
18488 explicitly, or implicitly via the above macros.
18489 * selftest.c (selftest::pass): Use a selftest::location rather
18490 than file and line.
18491 (selftest::fail): Likewise. Print the function name.
18492 (selftest::fail_formatted): Likewise.
18493 (selftest::assert_streq): Use a selftest::location rather than
18494 file and line.
18495 * selftest.h (selftest::location): New struct.
18496 (SELFTEST_LOCATION): New macro.
18497 (selftest::pass): Accept a const location & rather than file
18498 and line.
18499 (selftest::fail): Likewise.
18500 (selftest::fail_formatted): Likewise.
18501 (selftest::assert_streq): Likewise.
18502 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
18503 (ASSERT_FALSE): Likewise.
18504 (ASSERT_EQ): Likewise.
18505 (ASSERT_NE): Likewise.
18506 (ASSERT_STREQ): Likewise.
18507 (ASSERT_PRED1): Likewise.
18508 (ASSERT_STREQ_AT): New macro.
18509
18510 2016-06-13 David Malcolm <dmalcolm@redhat.com>
18511
18512 * selftest.c (selftest::fail_formatted): New function.
18513 (selftest::assert_streq): New function.
18514 * selftest.h (selftests::fail_formatted): New decl.
18515 (selftest::assert_streq): New decl.
18516 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
18517
18518 2016-06-13 Jeff Law <law@redhat.com>
18519
18520 PR tree-optimization/71403
18521 * tree-ssa-threadbackward.c
18522 (convert_and_register_jump_thread_path): No longer accept reference
18523 to path. Do not pop items off the path anymore.
18524 (fsm_find_control_statement_thread_paths): Do not allow threading
18525 to a deeper loop nest. Pop the last item off the path here rather
18526 than in convert_and_register_jump_thread_path.
18527
18528 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
18529 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
18530
18531 [AArch64] Emit division using the Newton series
18532
18533 * config/aarch64/aarch64-protos.h
18534 (cpu_approx_modes): Add new member "division".
18535 (aarch64_emit_approx_div): Declare new function.
18536 * config/aarch64/aarch64.c
18537 (generic_approx_modes): New member "division".
18538 (exynosm1_approx_modes): Likewise.
18539 (xgene1_approx_modes): Likewise.
18540 (aarch64_emit_approx_div): Define new function.
18541 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
18542 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
18543 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
18544 * doc/invoke.texi (-mlow-precision-div): Describe new option.
18545
18546 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
18547 Wilco Dijkstra <wilco.dijkstra@arm.com>
18548
18549 [AArch64] Emit square root using the Newton series
18550
18551 * config/aarch64/aarch64-protos.h
18552 (aarch64_emit_approx_rsqrt): Replace with new function
18553 "aarch64_emit_approx_sqrt".
18554 (cpu_approx_modes): New member "sqrt".
18555 * config/aarch64/aarch64.c
18556 (generic_approx_modes): New member "sqrt".
18557 (exynosm1_approx_modes): Likewise.
18558 (xgene1_approx_modes): Likewise.
18559 (aarch64_emit_approx_rsqrt): Replace with new function
18560 "aarch64_emit_approx_sqrt".
18561 (aarch64_override_options_after_change_1): Handle new option.
18562 * config/aarch64/aarch64-simd.md
18563 (rsqrt<mode>2): Use new function instead.
18564 (sqrt<mode>2): New expansion and insn definitions.
18565 * config/aarch64/aarch64.md: Likewise.
18566 * config/aarch64/aarch64.opt
18567 (mlow-precision-sqrt): Add new option description.
18568 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
18569
18570 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
18571
18572 [AArch64] Add more choices for the reciprocal square root approximation
18573
18574 Allow a target to prefer such operation depending on the operation mode.
18575
18576 * config/aarch64/aarch64-protos.h
18577 (AARCH64_APPROX_MODE): New macro.
18578 (AARCH64_APPROX_{NONE,ALL}): Likewise.
18579 (cpu_approx_modes): New structure.
18580 (tune_params): New member "approx_modes".
18581 * config/aarch64/aarch64-tuning-flags.def
18582 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
18583 * config/aarch64/aarch64.c
18584 (generic_approx_modes): New core "cpu_approx_modes" structure.
18585 (exynosm1_approx_modes): Likewise.
18586 (xgene1_approx_modes): Likewise.
18587 (generic_tunings): New member "approx_modes".
18588 (cortexa35_tunings): Likewise.
18589 (cortexa53_tunings): Likewise.
18590 (cortexa57_tunings): Likewise.
18591 (cortexa72_tunings): Likewise.
18592 (exynosm1_tunings): Likewise.
18593 (thunderx_tunings): Likewise.
18594 (xgene1_tunings): Likewise.
18595 (use_rsqrt_p): New argument for the mode and use new member from
18596 "tune_params".
18597 (aarch64_builtin_reciprocal): Devise mode from builtin.
18598 (aarch64_optab_supported_p): New argument for the mode.
18599 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
18600
18601 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
18602
18603 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
18604 RS6000_BTM_MODULO flag into the set of flags that are considered
18605 to be part of the common configuration.
18606
18607 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
18608
18609 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
18610 difference unsigned.
18611 (vec_absdb): New macro for vector absolute difference unsigned
18612 byte.
18613 (vec_absdh): New macro for vector absolute difference unsigned
18614 half-word.
18615 (vec_absdw): New macro for vector absolute difference unsigned word.
18616 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
18617 (vadu<mode>3): New insn.
18618 (*p9_vadu<mode>3): New insn.
18619 * config/rs6000/rs6000-builtin.def (vadub): New built-in
18620 definition.
18621 (vaduh): New built-in definition.
18622 (vaduw): New built-in definition.
18623 (vadu): New overloaded built-in definition.
18624 (vadub): New overloaded built-in definition.
18625 (vaduh): New overloaded built-in definition.
18626 (vaduw): New overloaded built-in definition.
18627 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
18628 overloaded vector absolute difference unsigned functions.
18629 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
18630 the ISA 3.0 vector absolute difference unsigned built-in functions.
18631
18632 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
18633
18634 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
18635 update shared_lookup_references only once after changing operands.
18636
18637 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
18638
18639 PR middle-end/71373
18640 * tree-nested.c (convert_nonlocal_omp_clauses)
18641 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
18642
18643 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
18644 * tree.def (CASE_LABEL_EXPR): Likewise.
18645
18646 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
18647
18648 PR bootstrap/71481
18649 * input.c (test_builtins): Fix an assertion.
18650
18651 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
18652
18653 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
18654 (paritysi2): Ditto.
18655 (isinfxf2): Ditto.
18656 (isinf<mode>2): Ditto.
18657
18658 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
18659
18660 * ggc-tests.c (test_finalization): Only test need_finalization_p
18661 for GCC_VERSION >= 4003.
18662
18663 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18664
18665 * config/s390/vecintrin.h: Fix file description in comment.
18666
18667 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18668
18669 * config/s390/s390-builtin-types.def: Change builtin type naming
18670 scheme to match builtin-types.def.
18671
18672 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
18673
18674 * fold-const.c (optimize_minmax_comparison): Remove.
18675 (fold_comparison): Remove call to the above.
18676 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
18677 New transformations.
18678
18679 2016-06-13 Alan Hayward <alan.hayward@arm.com>
18680
18681 PR tree-optimization/71416
18682 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
18683 multiple entries
18684
18685 2016-06-13 Martin Liska <mliska@suse.cz>
18686
18687 * predict.c (enum predictor_reason): Prefix enum with REASON_.
18688 (combine_predictions_for_insn): Likewise.
18689 (prune_predictions_for_bb): Likewise.
18690 (combine_predictions_for_bb): Likewise.
18691
18692 2016-06-13 Richard Biener <rguenther@suse.de>
18693
18694 PR tree-optimization/71505
18695 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
18696 assert match comment.
18697
18698 2016-06-13 Marek Polacek <polacek@redhat.com>
18699
18700 PR middle-end/71476
18701 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
18702 gimplify_switch_expr.
18703 (warn_switch_unreachable_r): New function.
18704
18705 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18706
18707 PR target/71379
18708 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
18709 one.
18710
18711 2016-06-13 Richard Biener <rguenther@suse.de>
18712
18713 PR middle-end/64516
18714 * fold-const.c (fold_unary_loc): Preserve alignment when
18715 folding a VIEW_CONVERT_EXPR into a MEM_REF.
18716
18717 2016-06-13 Martin Liska <mliska@suse.cz>
18718
18719 PR sanitizer/71458
18720 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
18721 w/ -fsanitize=bounds.
18722
18723 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
18724
18725 * config/i386/i386.c (ix86_init_builtins): Calculate
18726 FLOAT128_FTYPE_CONST_STRING function type only once.
18727 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
18728 built-in functions are available for x86-32 and x86-64 targets.
18729
18730 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
18731
18732 PR target/71241
18733 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
18734 New primitive type.
18735 (FLOAT128_FTYPE_CONST_STRING): New function type.
18736 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
18737 [IX86_BUILTIN_NANSQ]: Ditto.
18738 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
18739 (ix86_init_builtin_types): Declare const_string_type_node.
18740 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
18741 builtin functions.
18742 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
18743 * doc/extend.texi (x86 Built-in Functions): Document
18744 __builtin_nanq and __builtin_nansq.
18745
18746 2016-06-11 Jiong Wang <jiong.wang@arm.com>
18747
18748 PR target/71061
18749 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
18750 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
18751 length for pop patterns.
18752 (arm_attr_length_push_multi): Update comments.
18753 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
18754 attribute.
18755 (*pop_multiple_with_writeback_and_return): Likewise.
18756 (*pop_multiple_with_return): Likewise.
18757
18758 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
18759
18760 PR middle-end/71310
18761 * fold-const.c (optimize_bit_field_compare): Don't try to use
18762 word_mode unconditionally for reading the bit field, look at
18763 DECL_BIT_FIELD_REPRESENTATIVE instead.
18764
18765 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
18766
18767 PR middle-end/71478
18768 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
18769 vector integer type.
18770
18771 2016-06-10 Jakub Jelinek <jakub@redhat.com>
18772
18773 PR middle-end/71494
18774 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
18775 without LABEL_DECL, set *handled_ops_p to false instead of true.
18776
18777 2016-06-10 Martin Sebor <msebor@redhat.com>
18778
18779 PR c/71392
18780 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
18781 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
18782 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
18783 them.
18784 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
18785 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
18786 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
18787 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
18788 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
18789 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
18790 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
18791 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
18792
18793 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
18794
18795 * config/arm/arm.h (pool_vector_label,
18796 return_used_this_function): Remove.
18797
18798 2016-06-10 Jeff Law <law@redhat.com>
18799
18800 PR tree-optimization/71335
18801 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
18802 zero length paths here.
18803 (convert_and_register_jump_thread_path): Remove hacks related to
18804 duplicated blocks in the jump thread path.
18805 (fsm_find_control_statement_thread_paths): Avoid putting the same
18806 block on the thread path twice, but ensure the thread path is
18807 unchanged from the caller's point of view.
18808
18809 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
18810
18811 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
18812 * predict.def (PRED_LOOP_BRANCH): Remove.
18813
18814 2016-06-10 David Malcolm <dmalcolm@redhat.com>
18815
18816 * Makefile.in (OBJS): Add ggc-tests.o.
18817 (GTFILES): Add ggc-tests.c.
18818 * ggc-tests.c: New file.
18819 * selftest-run-tests.c (selftest::run_tests): Call
18820 selftest::ggc_tests_c_tests.
18821 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
18822
18823 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
18824
18825 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
18826
18827 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
18828
18829 PR sanitizer/71480
18830 * varasm.c (place_block_symbol): Adjust alignment for asan protected
18831 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
18832
18833 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
18834
18835 * profile.c: Include cfgloop.h.
18836 (branch_prob): Compute estimated number of iterations.
18837 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
18838 recompute estimate number of iterations from profile.
18839
18840 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
18841
18842 PR inline-asm/68843
18843 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
18844 must be grouped on top of stack. Don't force early clobber
18845 on ordinary reg outputs.
18846
18847 2016-06-10 Richard Biener <rguenther@suse.de>
18848
18849 * targhooks.c (default_builtin_vectorization_cost): Adjust
18850 vec_construct cost.
18851
18852 2016-06-10 Richard Biener <rguenther@suse.de>
18853
18854 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
18855 to fold the RHS to a constant if possible.
18856
18857 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
18858
18859 PR middle-end/71373
18860 * tree-nested.c (convert_nonlocal_omp_clauses)
18861 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
18862 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
18863 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
18864
18865 * gimplify.c (gimplify_adjust_omp_clauses): Discard
18866 OMP_CLAUSE_TILE.
18867 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
18868
18869 * omp-low.c (scan_sharing_clauses): Don't expect
18870 OMP_CLAUSE__CACHE_.
18871
18872 2016-06-10 Alan Hayward <alan.hayward@arm.com>
18873
18874 PR tree-optimization/71407
18875 PR tree-optimization/71416
18876 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
18877 BIT_FIELD_REF type.
18878
18879 2016-06-10 Richard Biener <rguenther@suse.de>
18880
18881 PR middle-end/71477
18882 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
18883
18884 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
18885
18886 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
18887
18888 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
18889 Jiong Wang <jiong.wang@arm.com>
18890
18891 PR rtl-optimization/70751
18892 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
18893 spilled into memory.
18894
18895 2016-06-09 Jonathan Yong <10walls@gmail.com>
18896
18897 Revert:
18898 2015-09-21 Jonathan Yong <10walls@gmail.com>
18899
18900 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
18901 sysroot/usr/lib/32api for additional win32 libraries,
18902 fixes failing Cygwin bootstrapping.
18903
18904 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
18905
18906 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
18907 Delete.
18908
18909 2016-06-09 David Malcolm <dmalcolm@redhat.com>
18910
18911 PR bootstrap/71471
18912 * pretty-print.c (pp_indent): Specify that %p is printed in a
18913 host-dependent manner.
18914 (test_pp_format): Remove the test for %p.
18915
18916 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
18917
18918 * config/mips/mips.c (mips_output_jump): Fix formatting.
18919
18920 2016-06-09 Richard Biener <rguenther@suse.de>
18921
18922 PR tree-optimization/71462
18923 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
18924 removed blocks.
18925
18926 2016-06-09 Martin Liska <mliska@suse.cz>
18927
18928 * predict.c (dump_prediction): Add new argument.
18929 (enum predictor_reason): New enum.
18930 (struct predictor_hash): New struct.
18931 (predictor_hash::hash): New function.
18932 (predictor_hash::equal): Likewise.
18933 (not_removed_prediction_p): New function.
18934 (prune_predictions_for_bb): Likewise.
18935 (combine_predictions_for_bb): Prune predictions.
18936
18937 2016-06-09 Martin Liska <mliska@suse.cz>
18938
18939 * predict.c (filter_predictions): New function.
18940 (remove_predictions_associated_with_edge): Use the filter
18941 function.
18942 (equal_edge_p): New function.
18943
18944 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
18945
18946 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
18947 Correct usage of @samp vs @option, add @samp where appropriate.
18948 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
18949 Add armv6s-m and document it, as it is no official ARM name.
18950
18951 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18952
18953 * ifcvt.c (struct noce_if_info): Add transform_name field.
18954 (noce_try_move): Set if_info->transform_name to the function name.
18955 (noce_try_ifelse_collapse): Likewise.
18956 (noce_try_store_flag): Likewise.
18957 (noce_try_inverse_constants): Likewise.
18958 (noce_try_store_flag_constants): Likewise.
18959 (noce_try_addcc): Likewise.
18960 (noce_try_store_flag_mask): Likewise.
18961 (noce_try_cmove): Likewise.
18962 (noce_try_cmove_arith): Likewise.
18963 (noce_try_minmax): Likewise.
18964 (noce_try_abs): Likewise.
18965 (noce_try_sign_mask): Likewise.
18966 (noce_try_bitop): Likewise.
18967 (noce_convert_multiple_sets): Likewise.
18968 (noce_process_if_block): Print if_info->transform_name to
18969 dump_file if transformation succeeded.
18970
18971 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18972
18973 * config/arm/cortex-a57.md (cortex_a57_alu):
18974 Handle csel type.
18975
18976 2016-06-08 Martin Sebor <msebor@redhat.com>
18977 Jakub Jelinek <jakub@redhat.com>
18978
18979 PR c++/70507
18980 PR c/68120
18981 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
18982 BUILT_IN_MUL_OVERFLOW_P): New builtins.
18983 * builtins.c: Include gimple-fold.h.
18984 (fold_builtin_arith_overflow): Handle
18985 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
18986 (fold_builtin_3): Likewise.
18987 * doc/extend.texi (Integer Overflow Builtins): Document
18988 __builtin_{add,sub,mul}_overflow_p.
18989
18990 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
18991
18992 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
18993 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
18994
18995 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
18996
18997 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
18998 Rewrite, looking one level down for records and arrays.
18999
19000 2016-06-08 David Malcolm <dmalcolm@redhat.com>
19001
19002 * pretty-print.c: Include "selftest.h".
19003 (pp_format): Fix comment.
19004 (identifier_to_locale): Likewise.
19005 (selftest::test_basic_printing): New function.
19006 (selftest::assert_pp_format): New function.
19007 (selftest::test_pp_format): New function.
19008 (selftest::pretty_print_c_tests): New function.
19009 * selftest-run-tests.c (selftest::run_tests): Call
19010 selftest::pretty_print_c_tests.
19011 * selftest.h (pretty_print_c_tests): New declaration.
19012
19013 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
19014
19015 * invoke.texi (max-loop-headers-insns): Document.
19016 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
19017 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
19018 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
19019
19020 2016-06-08 Richard Biener <rguenther@suse.de>
19021
19022 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
19023 on strided SLP loads and fall back to scalar loads in case
19024 we can't chunk them.
19025
19026 2016-06-08 Richard Biener <rguenther@suse.de>
19027
19028 PR tree-optimization/71452
19029 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
19030 type used for the SSA rewrite has enough precision to cover
19031 the dynamic type of the location.
19032
19033 2016-06-08 Jakub Jelinek <jakub@redhat.com>
19034 Richard Biener <rguenther@suse.de>
19035
19036 PR c++/71448
19037 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
19038 the same as DECL_P (base0) for indirect_base0. Use equality_code
19039 in one further place.
19040
19041 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
19042
19043 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
19044 to one word if the field is known to overlap other words.
19045 (extract_bit_field_1): Likewise.
19046 (store_split_bit_field): Remove compensating code.
19047 (extract_split_bit_field): Likewise.
19048
19049 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
19050
19051 PR debug/71432
19052 PR ada/71413
19053 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
19054
19055 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19056
19057 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
19058 VDQF.
19059 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
19060 (arch64_addpv4sf): Delete.
19061 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
19062 "gen_aarch64_addpv4sf".
19063 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
19064 builtin.
19065 (vpadds_f32): Likewise.
19066 (vpaddq_f32): Likewise.
19067 (vpaddq_f64): Likewise.
19068
19069 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19070
19071 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
19072 VALLF.
19073 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
19074 to VALLF. Rename to "fabd<mode>3".
19075 "*fabd_scalar<mode>3): Delete.
19076 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
19077 Use builtin.
19078 (vabdd_f64): Likewise.
19079 (vabd_f32): Likewise.
19080 (vabd_f64): Likewise.
19081 (vabdq_f32): Likewise.
19082 (vabdq_f64): Likewise.
19083
19084 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19085
19086 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
19087 VALLF.
19088 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
19089 "aarch64_rsqrts<mode>".
19090 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
19091 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
19092 builtin.
19093 (vrsqrtsd_f64): Likewise.
19094 (vrsqrts_f32): Likewise.
19095 (vrsqrts_f64): Likewise.
19096 (vrsqrtsq_f32): Likewise.
19097 (vrsqrtsq_f64): Likewise.
19098
19099 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19100
19101 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
19102 VALLF.
19103 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
19104 "aarch64_rsqrte<mode>".
19105 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
19106 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
19107 builtin.
19108 (vrsqrted_f64): Likewise.
19109 (vrsqrte_f32): Likewise.
19110 (vrsqrte_f64): Likewise.
19111 (vrsqrteq_f32): Likewise.
19112 (vrsqrteq_f64): Likewise.
19113
19114 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19115
19116 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
19117 (ucvtf): Likewise.
19118 (fcvtzs): Likewise.
19119 (fcvtzu): Likewise.
19120 * config/aarch64/aarch64-simd.md
19121 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
19122 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
19123 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
19124 Use builtin.
19125 (vcvt_n_f32_u32): Likewise.
19126 (vcvt_n_s32_f32): Likewise.
19127 (vcvt_n_u32_f32): Likewise.
19128 (vcvtq_n_f32_s32): Likewise.
19129 (vcvtq_n_f32_u32): Likewise.
19130 (vcvtq_n_f64_s64): Likewise.
19131 (vcvtq_n_f64_u64): Likewise.
19132 (vcvtq_n_s32_f32): Likewise.
19133 (vcvtq_n_s64_f64): Likewise.
19134 (vcvtq_n_u32_f32): Likewise.
19135 (vcvtq_n_u64_f64): Likewise.
19136 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
19137 (VSDQ_SDI): Likewise.
19138 (fcvt_target): Support V4DI, V4SI and V2SI.
19139 (FCVT_TARGET): Likewise.
19140
19141 2016-06-08 Jiong Wang <jiong.wang@arm.com>
19142
19143 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
19144 (TYPES_BINOP_SUS): Likewise.
19145 (aarch64_simd_builtin_data): Update include file name.
19146 (aarch64_builtins): Likewise.
19147 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
19148 for conversion between scalar float-point and fixed-point.
19149 (ucvtf): Likewise.
19150 (fcvtzs): Likewise.
19151 (fcvtzu): Likewise.
19152 * config/aarch64/aarch64.md
19153 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
19154 pattern for conversion between scalar float to fixed-pointer.
19155 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
19156 (UNSPEC_FCVTZS): New UNSPEC enumeration.
19157 (UNSPEC_FCVTZU): Likewise.
19158 (UNSPEC_SCVTF): Likewise.
19159 (UNSPEC_UCVTF): Likewise.
19160 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
19161 Use builtin.
19162 (vcvtd_n_f64_u64): Likewise.
19163 (vcvtd_n_s64_f64): Likewise.
19164 (vcvtd_n_u64_f64): Likewise.
19165 (vcvtd_n_f32_s32): Likewise.
19166 (vcvts_n_f32_u32): Likewise.
19167 (vcvtd_n_s32_f32): Likewise.
19168 (vcvts_n_u32_f32): Likewise.
19169 * config/aarch64/iterators.md (fcvt_target): Support integer to float
19170 mapping.
19171 (FCVT_TARGET): Likewise.
19172 (FCVT_FIXED2F): New iterator.
19173 (FCVT_F2FIXED): Likewise.
19174 (fcvt_fixed_insn): New define_int_attr.
19175
19176 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
19177
19178 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
19179 some statements was removed.
19180
19181 2016-06-08 Alan Hayward <alan.hayward@arm.com>
19182
19183 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
19184 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
19185 (vect_can_advance_ivs_p): likewise.
19186 (vect_update_ivs_after_vectorizer): likewise.
19187 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
19188 (vect_analyze_scalar_cycles_1): likewise.
19189 (vect_analyze_loop_operations): likewise.
19190 (report_vect_op): likewise.
19191 (vect_is_slp_reduction): likewise.
19192 (vect_is_simple_reduction): likewise.
19193 (get_initial_def_for_induction): likewise.
19194 (vect_transform_loop): likewise.
19195 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
19196 (vect_recog_sad_pattern): likewise.
19197 (vect_recog_widen_sum_pattern): likewise.
19198 (vect_recog_widening_pattern): likewise.
19199 (vect_recog_divmod_pattern): likewise.
19200 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
19201 (vect_analyze_slp_instance): likewise.
19202 (vect_transform_slp_perm_load): likewise.
19203 (vect_schedule_slp_instance): likewise.
19204
19205 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
19206
19207 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
19208 (return_prediction): PRED_CONST_RETURN predict return as not taken.
19209 * predict.def (PRED_CONTINUE): Change hitrate 50->67
19210 (PRED_LOOP_BRANCH): Document predictor as broken.
19211 (PRED_LOOP_EXIT): Change hitrate 91->92.
19212 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
19213 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
19214 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
19215 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
19216 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
19217 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
19218 (PRED_CALL): Chane hitrate 71->67.
19219 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
19220 (PRED_GOTO): Document as unused right now.
19221 (PRED_CONST_RETURN): Change hitrate 67->69
19222 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
19223 (PRED_NULL_RETURN): Change hitrate 91->90.
19224 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
19225 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
19226 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
19227
19228 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
19229
19230 * config/rs6000/altivec.h: Add __builtin_vec_mul.
19231 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
19232 special case Altivec builtin.
19233 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
19234 VSX_BUILTIN_VEC_MUL (replaced with special case code).
19235 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
19236 code for ALTIVEC_BUILTIN_VEC_MUL.
19237 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
19238 for __builtin_vec_mul.
19239
19240 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
19241
19242 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
19243 -mno-htm.
19244
19245 2016-06-07 David Malcolm <dmalcolm@redhat.com>
19246
19247 * spellcheck.c (selftest::test_find_closest_string): New function.
19248 (spellcheck_c_tests): Call the above.
19249
19250 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19251
19252 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
19253
19254 2016-06-07 Jakub Jelinek <jakub@redhat.com>
19255
19256 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
19257 Yv=Yv,C alternatives.
19258
19259 2016-06-07 Richard Biener <rguenther@suse.de>
19260
19261 PR c/61564
19262 * common.opt (ffast-math): Make Optimization.
19263
19264 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
19265 Prachi Godbole <prachi.godbole@imgtec.com>
19266
19267 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
19268 `fabs' and `fneg' type attributes.
19269 (p5600_fpu_fabs): Add `fmove' to the comment.
19270
19271 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
19272
19273 * gimple.c: Include builtins.h
19274 (gimple_inexpensive_call_p): New function.
19275 * gimple.h (gimple_inexpensive_call_p): Declare.
19276 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
19277 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
19278 fix formatting.
19279
19280 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
19281
19282 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
19283 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
19284 warning_at_rich_loc, warning_n, pedwarn, permerror,
19285 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
19286 sorry, fatal_error, internal_error, internal_error_no_backtrace):
19287 Use the above.
19288
19289 2016-06-07 Richard Biener <rguenther@suse.de>
19290
19291 PR tree-optimization/71428
19292 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
19293 BIT_FIELD_REF op vs. load.
19294
19295 2016-06-07 Richard Biener <rguenther@suse.de>
19296
19297 PR middle-end/71423
19298 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
19299 for signed ops.
19300
19301 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
19302
19303 * config/pa/pa.md (call): Generate indirect long calls to non-local
19304 functions on TARGET_64BIT.
19305 (call_value): Likewise.
19306
19307 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
19308
19309 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
19310 pattern and subsequent splitters.
19311 (call_val_reg_64bit_post_reload): Likewise.
19312
19313 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
19314
19315 PR middle-end/71408
19316 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
19317 propagate_op_to_single_use.
19318
19319 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
19320
19321 PR middle-end/71281
19322 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
19323
19324 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
19325
19326 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
19327 (enum x86_dirflag_state): New enum.
19328 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
19329 (machine_function): Remove needs_cld.
19330 (ix86_current_function_needs_cld): Remove.
19331 * config/i386/i386.c (ix86_set_func_type): Set
19332 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
19333 (ix86_expand_prologue): Do not emit CLD here.
19334 (ix86_dirflag_mode_needed): New function.
19335 (ix86_dirflag_mode_entry): Ditto.
19336 (ix86_mode_needed): Handle X86_DIRFLAG entity.
19337 (ix86_mode_after): Ditto.
19338 (ix86_mode_entry): Ditto.
19339 (ix86_mode_exit): Ditto.
19340 (ix86_emit_mode_set): Ditto.
19341 * config/i386/i386.md (strmov_singleop): Set
19342 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
19343 Do not set ix86_current_function_needs_cld.
19344 (rep_mov): Ditto.
19345 (strset_singleop): Ditto.
19346 (rep_stos): Ditto.
19347 (cmpstrnqi_nz_1): Ditto.
19348 (cmpstrnqi_1): Ditto.
19349 (strlenqi_1): Ditto.
19350
19351 2016-06-06 Jakub Jelinek <jakub@redhat.com>
19352
19353 PR tree-optimization/71259
19354 * tree-vect-slp.c (vect_get_constant_vectors): For
19355 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
19356 one for constant op, and use COND_EXPR for non-constant.
19357
19358 2016-06-06 David Malcolm <dmalcolm@redhat.com>
19359
19360 * Makefile.in (OBJS): Add function-tests.o,
19361 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
19362 selftest-run-tests.o.
19363 (OBJS-libcommon): Add selftest.o.
19364 (OBJS-libcommon-target): Add selftest.o.
19365 (all.internal): Add "selftest".
19366 (all.cross): Likewise.
19367 (selftest): New phony target.
19368 (s-selftest): New target.
19369 (selftest-gdb): New phony target.
19370 (COLLECT2_OBJS): Add selftest.o.
19371 * bitmap.c: Include "selftest.h".
19372 (selftest::test_gc_alloc): New function.
19373 (selftest::test_set_range): New function.
19374 (selftest::test_clear_bit_in_middle): New function.
19375 (selftest::test_copying): New function.
19376 (selftest::test_bitmap_single_bit_set_p): New function.
19377 (selftest::bitmap_c_tests): New function.
19378 * common.opt (fself-test): New.
19379 * diagnostic-show-locus.c: Include "selftest.h".
19380 (make_range): New function.
19381 (test_range_contains_point_for_single_point): New function.
19382 (test_range_contains_point_for_single_line): New function.
19383 (test_range_contains_point_for_multiple_lines): New function.
19384 (assert_eq): New function.
19385 (test_get_line_width_without_trailing_whitespace): New function.
19386 (selftest::diagnostic_show_locus_c_tests): New function.
19387 * et-forest.c: Include "selftest.h".
19388 (selftest::test_single_node): New function.
19389 (selftest::test_simple_tree): New function.
19390 (selftest::test_disconnected_nodes): New function.
19391 (selftest::et_forest_c_tests): New function.
19392 * fold-const.c: Include "selftest.h".
19393 (selftest::assert_binop_folds_to_const): New function.
19394 (selftest::assert_binop_folds_to_nonlvalue): New function.
19395 (selftest::test_arithmetic_folding): New function.
19396 (selftest::fold_const_c_tests): New function.
19397 * function-tests.c: New file.
19398 * gimple.c: Include "selftest.h".
19399 Include "gimple-pretty-print.h".
19400 (selftest::verify_gimple_pp): New function.
19401 (selftest::test_assign_single): New function.
19402 (selftest::test_assign_binop): New function.
19403 (selftest::test_nop_stmt): New function.
19404 (selftest::test_return_stmt): New function.
19405 (selftest::test_return_without_value): New function.
19406 (selftest::gimple_c_tests): New function.
19407 * hash-map-tests.c: New file.
19408 * hash-set-tests.c: New file.
19409 * input.c: Include "selftest.h".
19410 (selftest::assert_loceq): New function.
19411 (selftest::test_accessing_ordinary_linemaps): New function.
19412 (selftest::test_unknown_location): New function.
19413 (selftest::test_builtins): New function.
19414 (selftest::test_reading_source_line): New function.
19415 (selftest::input_c_tests): New function.
19416 * rtl-tests.c: New file.
19417 * selftest-run-tests.c: New file.
19418 * selftest.c: New file.
19419 * selftest.h: New file.
19420 * spellcheck.c: Include "selftest.h".
19421 (selftest::levenshtein_distance_unit_test_oneway): New function,
19422 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
19423 (selftest::levenshtein_distance_unit_test): Likewise.
19424 (selftest::spellcheck_c_tests): Likewise.
19425 * toplev.c: Include selftest.h.
19426 (toplev::run_self_tests): New.
19427 (toplev::main): Handle -fself-test.
19428 * toplev.h (toplev::run_self_tests): New.
19429 * tree.c: Include "selftest.h".
19430 (selftest::test_integer_constants): New function.
19431 (selftest::test_identifiers): New function.
19432 (selftest::test_labels): New function.
19433 (selftest::tree_c_tests): New function.
19434 * tree-cfg.c: Include "selftest.h".
19435 (selftest::push_fndecl): New function.
19436 (selftest::test_linear_chain): New function.
19437 (selftest::test_diamond): New function.
19438 (selftest::test_fully_connected): New function.
19439 (selftest::tree_cfg_c_tests): New function.
19440 * vec.c: Include "selftest.h".
19441 (selftest::safe_push_range): New function.
19442 (selftest::test_quick_push): New function.
19443 (selftest::test_safe_push): New function.
19444 (selftest::test_truncate): New function.
19445 (selftest::test_safe_grow_cleared): New function.
19446 (selftest::test_pop): New function.
19447 (selftest::test_safe_insert): New function.
19448 (selftest::test_ordered_remove): New function.
19449 (selftest::test_unordered_remove): New function.
19450 (selftest::test_block_remove): New function.
19451 (selftest::reverse_cmp): New function.
19452 (selftest::test_qsort): New function.
19453 (selftest::vec_c_tests): New function.c.
19454 * wide-int.cc: Include selftest.h and wide-int-print.h.
19455 (selftest::from_int <wide_int>): New function.
19456 (selftest::from_int <offset_int>): New function.
19457 (selftest::from_int <widest_int>): New function.
19458 (selftest::assert_deceq): New function.
19459 (selftest::assert_hexeq): New function.
19460 (selftest::test_printing <VALUE_TYPE>): New function template.
19461 (selftest::test_ops <VALUE_TYPE>): New function template.
19462 (selftest::test_comparisons <VALUE_TYPE>): New function template.
19463 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
19464 template.
19465 (selftest::wide_int_cc_tests): New function.
19466
19467 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19468
19469 PR middle-end/37780
19470 * ifcvt.c (noce_try_ifelse_collapse): New function.
19471 Declare prototype.
19472 (noce_process_if_block): Call noce_try_ifelse_collapse.
19473 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
19474 (simplify_ternary_operation): Use the above to simplify
19475 conditional CLZ/CTZ expressions.
19476
19477 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19478
19479 PR middle-end/37780
19480 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
19481 define_insn_and_split.
19482
19483 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19484
19485 PR middle-end/37780
19486 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
19487
19488 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
19489
19490 PR c/24414
19491 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
19492 Implicitly clobber memory for basic asm with non-empty assembler
19493 string. Use targetm.md_asm_adjust also here.
19494 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
19495 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
19496 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
19497 non-empty assembler string.
19498 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
19499 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
19500 (decode_asm_operands): Handle basic asm in PARALLEL block.
19501 (extract_insn): Handle basic asm in PARALLEL block.
19502 * doc/extend.texi: Mention new behavior of basic asm.
19503 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
19504 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
19505 branch_needs_nop_p): Use asm_noperands.
19506
19507 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
19508
19509 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
19510 Include the M7 SPARC DFA scheduler.
19511 New attribute v3pipe.
19512 Annotate insns with v3pipe where appropriate.
19513 Define cpu_feature vis4.
19514 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
19515 Add (V8QI "8") to vbits.
19516 Add insns {add,sub}v8qi3
19517 Add insns ss{add,sub}v8qi3
19518 Add insns us{add,sub}{v8qi,v4hi}3
19519 Add insns {min,max}{v8qi,v4hi,v2si}3
19520 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
19521 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
19522 * config/sparc/niagara4.md: Add a comment explaining the
19523 discrepancy between the documented latenty numbers and the
19524 implemented ones.
19525 * config/sparc/niagara7.md: New file.
19526 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
19527 supports SPARC5 and VIS 4.0 instructions.
19528 * configure: Regenerate.
19529 * config.in: Likewise.
19530 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
19531 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
19532 TARGET_CPU_niagara7.
19533 (ASM_CPU64_DEFAULT_SPEC): Likewise.
19534 (CPP_CPU_SPEC): Handle niagara7.
19535 (ASM_CPU_SPEC): Likewise.
19536 * config/sparc/sparc-opts.h (processor_type): Add
19537 PROCESSOR_NIAGARA7.
19538 (mvis4): New option.
19539 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
19540 (AS_NIAGARA7_FLAG): Define.
19541 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
19542 (CPP_CPU64_DEFAULT_SPEC): Likewise.
19543 (CPP_CPU_SPEC): Handle niagara7.
19544 (ASM_CPU_SPEC): Likewise.
19545 * config/sparc/sparc.c (niagara7_costs): Define.
19546 (sparc_option_override): Handle niagara7 and adjust cache-related
19547 parameters with better values for niagara cpus. Also support VIS4.
19548 (sparc32_initialize_trampoline): Likewise.
19549 (sparc_use_sched_lookahead): Likewise.
19550 (sparc_issue_rate): Likewise.
19551 (sparc_register_move_cost): Likewise.
19552 (dump_target_flag_bits): Support VIS4.
19553 (sparc_vis_init_builtins): Likewise.
19554 (sparc_builtins): Likewise.
19555 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
19556 VIS4 4.0.
19557 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
19558 UltraSparc M7.
19559 * config/sparc/sparc.opt (sparc_processor_type): New value
19560 niagara7.
19561 * config/sparc/visintrin.h (__attribute__): Prototypes for the
19562 VIS4 builtins.
19563 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
19564 -mvis4.
19565 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
19566 VIS4 builtins.
19567
19568 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
19569
19570 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
19571
19572 2016-06-06 Richard Biener <rguenther@suse.de>
19573
19574 PR tree-optimization/71398
19575 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
19576 remove edges.
19577
19578 2016-06-05 James Bowman <james.bowman@ftdichip.com>
19579
19580 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
19581 ft32_expand_prolog, ft32_expand_epilogue):
19582 Handle pretend_args.
19583 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
19584 * config/ft32/ft32.md: Add pretend_returner.
19585
19586 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
19587
19588 PR target/71389
19589 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
19590 Copy op1 RTX to avoid invalid sharing.
19591 (ix86_expand_vector_move_misalign): Ditto.
19592
19593 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
19594
19595 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
19596 ATTRIBUTE_UNUSED.
19597
19598 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
19599
19600 * predict.c (predicted_by_loop_heuristics_p): New function.
19601 (predict_iv_comparison): Use it.
19602 (predict_loops): Walk from innermost loops; do not predict edges
19603 leaving multiple loops multiple times; implement
19604 PRED_LOOP_ITERATIONS_MAX heuristics.
19605 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
19606
19607 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
19608
19609 * cfg.c (check_bb_profile): Do not report mismatched profiles when
19610 only edges out of BB are EH edges.
19611
19612 2016-06-04 Martin Sebor <msebor@redhat.com>
19613 Marcin Baczyński <marbacz@gmail.com>
19614
19615 PR c/48116
19616 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
19617 a void expression in a void function.
19618
19619 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
19620
19621 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
19622 aux; dump reasons of decisions.
19623 (should_duplicate_loop_header_p): Likewise.
19624 (do_while_loop_p): Likewise.
19625 (ch_base::copy_headers): Dump asi num insns duplicated.
19626
19627 2016-06-04 Jakub Jelinek <jakub@redhat.com>
19628
19629 PR tree-optimization/71405
19630 * tree-ssa.c (execute_update_addresses_taken): For clobber with
19631 incompatible type, build a new clobber with the right type instead
19632 of building a VIEW_CONVERT_EXPR around it.
19633
19634 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
19635
19636 PR tree-optimization/52171
19637 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
19638 by_pieces_ninsns instead of move_by_pieces_ninsns.
19639
19640 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
19641
19642 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
19643 for reg+reg addressing mode.
19644
19645 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19646
19647 * rs6000-c.c (c/c-tree.h): Add #include.
19648 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
19649 in C++ when found in the base position of vec_ld or vec_st.
19650
19651 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
19652
19653 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
19654 use of profile unless profile status is PROFILE_READ.
19655 * profile.c (compute_branch_probabilities): Set profile status
19656 only after reporting predictor hitrates.
19657
19658 2016-06-03 Joseph Myers <joseph@codesourcery.com>
19659
19660 PR target/71276
19661 PR target/71277
19662 * common.opt (ffp-int-builtin-inexact): New option.
19663 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
19664 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
19665 (ceil@var{m}2): Document dependence on this option.
19666 * ipa-inline-transform.c (inline_call): Handle
19667 flag_fp_int_builtin_inexact.
19668 * ipa-inline.c (can_inline_edge_p): Likewise.
19669 * config/i386/i386.md (rintxf2): Do not test
19670 flag_unsafe_math_optimizations.
19671 (rint<mode>2_frndint): New define_insn.
19672 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
19673 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
19674 for 387 instead of extending and truncating.
19675 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
19676 !flag_trapping_math instead of flag_unsafe_math_optimizations.
19677 Change to frndint<mode>2_<rounding>.
19678 (frndintxf2_<rounding>_i387): Likewise. Change to
19679 frndint<mode>2_<rounding>_i387.
19680 (<rounding_insn>xf2): Likewise.
19681 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
19682 !flag_trapping_math instead of flag_unsafe_math_optimizations for
19683 x87. Test TARGET_ROUND || !flag_trapping_math ||
19684 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
19685 SSE. Use ROUND_NO_EXC in constant operand of
19686 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
19687 for 387 instead of extending and truncating.
19688
19689 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
19690 Julia Koval <julia.koval@intel.com>
19691
19692 PR target/66960
19693 PR target/67630
19694 PR target/67634
19695 PR target/67841
19696 PR target/68037
19697 PR target/68618
19698 PR target/68661
19699 PR target/69575
19700 PR target/69596
19701 PR target/69734
19702 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
19703 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
19704 all registers, except for function return registers if there are
19705 no caller-saved registers.
19706 (ix86_set_func_type): New function.
19707 (ix86_set_current_function): Call ix86_set_func_type to set
19708 no_caller_saved_registers and func_type. Call reinit_regs if
19709 caller-saved registers are changed. Don't allow MPX, SSE, MMX
19710 nor x87 instructions in interrupt handler nor function with
19711 no_caller_saved_registers attribute.
19712 (ix86_function_ok_for_sibcall): Return false if there are no
19713 caller-saved registers.
19714 (type_natural_mode): Don't warn ABI change for MMX in interrupt
19715 handler.
19716 (ix86_function_arg_advance): Skip for callee in interrupt handler.
19717 (ix86_function_arg): Return special arguments in interrupt handler.
19718 (ix86_promote_function_mode): Promote pointer to word_mode only
19719 for normal functions.
19720 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
19721 interrupt handler.
19722 (ix86_epilogue_uses): New function.
19723 (ix86_hard_regno_scratch_ok): Likewise.
19724 (ix86_save_reg): Preserve all registers in interrupt handler
19725 after reload. Preserve all registers, except for function return
19726 registers, if there are no caller-saved registers after reload.
19727 (find_drap_reg): Always use callee-saved register if there are
19728 no caller-saved registers.
19729 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
19730 for interrupt handler.
19731 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
19732 Emit cld instruction if stringops are used in interrupt handler
19733 or interrupt handler isn't a leaf function.
19734 (ix86_expand_epilogue): Generate interrupt return for interrupt
19735 handler and pop the 'ERROR_CODE' off the stack before interrupt
19736 return in exception handler.
19737 (ix86_expand_call): Disallow calling interrupt handler directly.
19738 If there are no caller-saved registers, mark all registers that
19739 are clobbered by the call which returns as clobbered.
19740 (ix86_handle_no_caller_saved_registers_attribute): New function.
19741 (ix86_handle_interrupt_attribute): Likewise.
19742 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
19743 attributes.
19744 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
19745 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
19746 accumulation in interrupt function if stack may be realigned to
19747 avoid DRAP.
19748 (EPILOGUE_USES): New.
19749 (function_type): New enum.
19750 (machine_function): Add func_type and no_caller_saved_registers.
19751 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
19752 (interrupt_return): New pattern.
19753 * doc/extend.texi: Document x86 interrupt and
19754 no_caller_saved_registers attributes.
19755
19756 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
19757
19758 PR tree-optimization/52171
19759 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
19760 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
19761 Look for constant strings. Move some code to emit_block_cmp_hints
19762 and use it.
19763 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
19764 * defaults.h (COMPARE_MAX_PIECES): New macro.
19765 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
19766 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
19767 (clear_by_pieces_1): Don't declare. Move definition before use.
19768 (can_do_by_pieces): New static function.
19769 (can_move_by_pieces): Use it. Return bool.
19770 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
19771 OP. All callers changed. Handle COMPARE_BY_PIECES.
19772 (class pieces_addr); New.
19773 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
19774 pieces_addr::adjust, pieces_addr::increment_address,
19775 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
19776 functions for it.
19777 (class op_by_pieces_d): New.
19778 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
19779 functions for it.
19780 (class move_by_pieces_d, class compare_by_pieces_d,
19781 class store_by_pieces_d): New subclasses of op_by_pieces_d.
19782 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
19783 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
19784 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
19785 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
19786 compare_by_pieces_d::finish_mode): New member functions.
19787 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
19788 functions.
19789 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
19790 (emit_block_cmp_hints): New function.
19791 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
19792 use the newly defined classes.
19793 * expr.h (by_pieces_constfn): New typedef.
19794 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
19795 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
19796 (move_by_pieces_ninsns): Don't declare.
19797 (can_move_by_pieces): Change return value to bool.
19798 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
19799 (compare_by_pieces_branch_ratio): New hook.
19800 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
19801 (by_pieces_ninsns): Declare.
19802 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
19803 COMPARE_BY_PIECES.
19804 (default_compare_by_pieces_branch_ratio): New function.
19805 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
19806 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
19807 * doc/tm.texi: Regenerate.
19808 * tree-ssa-strlen.c: Include "builtins.h".
19809 (handle_builtin_memcmp): New static function.
19810 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
19811 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
19812
19813 2016-06-03 Alan Hayward <alan.hayward@arm.com>
19814
19815 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
19816 relevant stmts which are simple and invariant.
19817 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
19818 instead of simple and invariant
19819
19820 2016-06-03 Alan Hayward <alan.hayward@arm.com>
19821
19822 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
19823 (vectorizable_reduction): Check for new relevant state.
19824 (vectorizable_live_operation): vectorize live stmts using
19825 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
19826 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
19827 (vect_stmt_relevant_p): Check for stmts which are only used live.
19828 (process_use): Use of a stmt does not inherit it's live value.
19829 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
19830 (vect_analyze_stmt): Check for new relevant state.
19831 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
19832 outside the loop, but not inside it.
19833
19834 2016-06-03 Alan Hayward <alan.hayward@arm.com>
19835
19836 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
19837 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
19838 (vect_get_vec_def_for_operand): Split out code.
19839
19840 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
19841
19842 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
19843
19844 2016-06-03 Alan Hayward <alan.hayward@arm.com>
19845
19846 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
19847
19848 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19849
19850 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
19851
19852 2016-06-03 Jakub Jelinek <jakub@redhat.com>
19853
19854 PR middle-end/71387
19855 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
19856 to noreturn e->callee->decl that has void return type and void
19857 arguments, adjust gimple_call_fntype and remove lhs even if it had
19858 previously addressable type.
19859
19860 2016-06-02 Jeff Law <law@redhat.com>
19861
19862 PR tree-optimization/71328
19863 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
19864 error when checking for a jump back onto the copied path.
19865
19866 2016-06-02 David Malcolm <dmalcolm@redhat.com>
19867
19868 * config/microblaze/microblaze.c (get_branch_target): Add return
19869 NULL_RTX for the non-CALL_P case.
19870 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
19871 (insert_wic): Remove unused local "j".
19872
19873 2016-06-02 Martin Liska <mliska@suse.cz>
19874
19875 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
19876
19877 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
19878 Julia Koval <julia.koval@intel.com>
19879
19880 * function.c (assign_parm_setup_stack): Force source into a
19881 register if needed.
19882 * target.def (function_incoming_arg): Update documentation to
19883 allow arbitrary address computation based on hard register.
19884 * doc/tm.texi: Regenerated.
19885
19886 2016-06-02 Martin Liska <mliska@suse.cz>
19887
19888 * predict.c (combine_predictions_for_bb): Fix first match in
19889 cases where a first predictor contains more than one occurence
19890 in list of predictors. Take the best value in such case.
19891
19892 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19893
19894 PR rtl-optimization/71295
19895 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
19896 offset would go over the size of the inner mode reject it.
19897
19898 2016-06-02 Jakub Jelinek <jakub@redhat.com>
19899
19900 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
19901 x=x,x and v=v,m instead of x=x,m.
19902
19903 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
19904 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
19905 alternative to v=rm,C.
19906
19907 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
19908 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
19909 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
19910 instead of vex for the last two above mentioned alternatives.
19911
19912 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19913
19914 PR target/70830
19915 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
19916
19917 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
19918
19919 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
19920
19921 2016-06-01 David Malcolm <dmalcolm@redhat.com>
19922
19923 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
19924 from int to unsigned.
19925
19926 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
19927
19928 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
19929 alternatives, eliminating preferred register class. Add support
19930 for the MTVSRDD instruction in ISA 3.0.
19931 (vsx_splat_v4si_internal): Use splat_input_operand instead of
19932 reg_or_indexed_operand.
19933 (vsx_splat_v4sf_internal): Likewise.
19934
19935 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
19936
19937 PR target/71186
19938 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
19939 for loading up all 0's or all 1's.
19940
19941 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
19942
19943 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
19944
19945 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
19946
19947 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
19948 extension.
19949 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
19950 * gcc.c (set_source_date_epoch_envvar): New function, sets
19951 the SOURCE_DATE_EPOCH environment variable to the current time.
19952
19953 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
19954
19955 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
19956 the factor for live Phi nodes.
19957
19958 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
19959
19960 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
19961 * tree-parloops.c (parallelize_loops): likewise.
19962 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
19963 tree_unswitch_outer_loop): likewise.
19964
19965 2016-06-01 Jakub Jelinek <jakub@redhat.com>
19966
19967 PR middle-end/71371
19968 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
19969 around creation of the temporary.
19970
19971 2016-06-01 Richard Biener <rguenther@suse.de>
19972
19973 PR tree-optimization/71366
19974 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
19975 (unloop_loops): Move removing edges here ...
19976 (try_unroll_loop_completely): ... from here.
19977 (try_peel_loop): ... and here.
19978 (tree_unroll_loops_completely_1): Track parent loops via
19979 bitmap of header BBs.
19980 (tree_unroll_loops_completely): Adjust for that.
19981
19982 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
19983
19984 * config/rs6000/altivec.h (vec_slv): New macro.
19985 (vec_srv): New macro.
19986 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
19987 (UNSPEC_VSRV): New value.
19988 (vslv): New insn.
19989 (vsrv): New insn.
19990 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
19991 (vsrv): New builtin definition.
19992 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
19993 define argument types for new builtin.
19994 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
19995 new builtin.
19996 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
19997 functions.
19998
19999 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
20000 Jocelyn Mayer <l_indien@magic.fr>
20001
20002 PR target/67310
20003 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
20004 detect processor family for signature_CENTAUR_ebx.
20005 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
20006 signature_CENTAUR_ebx.
20007 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
20008 <default>: Pass x86-64 for has_longmode.
20009
20010 2016-06-01 Nathan Sidwell <nathan@acm.org>
20011
20012 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
20013 undefined weak.
20014
20015 2016-06-01 Richard Biener <rguenther@suse.de>
20016
20017 PR tree-optimization/71261
20018 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
20019 of stmts successfully put in the bool pattern. Remove
20020 single-use restriction.
20021 (adjust_bool_pattern_cast): Add cast at the use site via the
20022 pattern def sequence.
20023 (adjust_bool_pattern): Remove recursion, maintain a hash-map
20024 of patterned defs. Use the pattern def seqence instead of
20025 multiple independent patterns.
20026 (sort_after_uid): New qsort compare function.
20027 (adjust_bool_stmts): New function to process stmts in the bool
20028 pattern in IL order.
20029 (vect_recog_bool_pattern): Adjust.
20030 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
20031 (ifcvt_walk_pattern_tree): Likewise.
20032 (stmt_is_root_of_bool_pattern): Likewise.
20033 (ifcvt_repair_bool_pattern): Likewise.
20034 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
20035
20036 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
20037
20038 * loop-unroll.c (decide_unroll_constant_iterations,
20039 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
20040 likely upper bounds.
20041 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
20042
20043 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
20044
20045 * tree-core.h (enum omp_clause_code): Remove
20046 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
20047
20048 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20049
20050 * config/arm/sync.md (arm_store_exclusive<mode>):
20051 Use 'H' output modifier on operands[2] rather than creating a new
20052 entry in out-of-bounds memory of the operands array.
20053 (arm_store_release_exclusivedi): Likewise.
20054
20055 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20056
20057 * config/arm/arm.c (arm_fusion_enabled_p): New function.
20058 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
20059 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
20060 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
20061
20062 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
20063
20064 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
20065 into account live statements for mask producers.
20066
20067 2016-06-01 Richard Biener <rguenther@suse.de>
20068
20069 PR tree-optimization/71311
20070 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
20071 restrict to non-INTEGER_CST @0.
20072
20073 2016-06-01 Richard Biener <rguenther@suse.de>
20074
20075 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
20076 (relational patterns): Use :c to avoid pattern duplications.
20077
20078 2016-06-01 Richard Biener <rguenther@suse.de>
20079
20080 * genmatch.c (comparison_code_p): New predicate.
20081 (swap_tree_comparison): New function.
20082 (commutate): Add for_vec parameter to append new for entries.
20083 Support commutating relational operators by swapping it alongside
20084 operands.
20085 (lower_commutative): Adjust.
20086 (dt_simplify::gen): Do not pass artificial operators to gen
20087 functions.
20088 (decision_tree::gen): Do not add artificial operators as parameters.
20089 (parser::parse_expr): Verify operator commutativity when :c is
20090 applied. Allow :C to override this.
20091 * match.pd: Adjust patterns to use :C instead of :c where required.
20092
20093 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
20094
20095 PR tree-optimization/71077
20096 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
20097 the combining step, use boolean_false_node and boolean_true_node
20098 as the designated false/true return values.
20099
20100 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
20101
20102 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
20103 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
20104 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
20105 PRED_LOOP_EXIT.
20106
20107 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
20108
20109 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
20110 of flags impliying the register renaming.
20111 * toplev.c (process_options): Do not imply flag_rename_registers with
20112 loop peeling.
20113
20114 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
20115
20116 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
20117 default implementation.
20118
20119 2016-05-31 Nathan Sidwell <nathan@acm.org>
20120
20121 * dwarf2out.c (cur_line_info_table): Add GTY marker.
20122
20123 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
20124
20125 * config/sh/constraints.md (b): Remove constraint.
20126 * config/sh/predicates.md (arith_reg_operand): Remove
20127 TARGET_REGISTER_P.
20128 * config/sh/sh-modes.def (PDI): Remove.
20129 * config/sh/sh.c (sh_target_reg_class,
20130 sh_optimize_target_register_callee_saved): Remove functions.
20131 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
20132 (sh_expand_epilogue): Update comment.
20133 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
20134 sh_secondary_reload): Remove TARGET_REGS related code.
20135 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
20136 TARGET_REGISTER_P): Remove macros.
20137 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
20138 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
20139 TR1_REG, TR2_REG): Remove constants.
20140 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
20141
20142 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
20143
20144 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
20145 define_expand patterns.
20146 (adddi3_compact): Rename to adddi3.
20147 (subdi3_compact): Rename to subdi3.
20148 (*negdi2): Rename to negdi2.
20149 (*abs<mode>2): Rename to abs<mode>2.
20150
20151 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
20152
20153 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
20154 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
20155 (atomic_sub_fetchsi): ... this new pattern.
20156 (mvtc): Add CC_REG clobber.
20157
20158 2016-05-31 Marek Polacek <polacek@redhat.com>
20159
20160 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
20161
20162 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20163
20164 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
20165 aarch64_fusion_enabled_p to check for fusion capabilities.
20166
20167 2016-05-31 Richard Biener <rguenther@suse.de>
20168
20169 PR tree-optimization/71352
20170 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
20171 minus one and a negate.
20172
20173 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20174
20175 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
20176 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
20177 Delete prototype.
20178 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
20179 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
20180 Remove use of aarch64_simd_attr_length_move, set length attribute
20181 directly.
20182 (*aarch64_be_movoi): Likewise.
20183 (*aarch64_be_movci): Likewise.
20184 (*aarch64_be_movxi): Likewise.
20185
20186 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
20187
20188 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
20189 It no longer does that.
20190 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
20191
20192 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
20193
20194 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
20195 attribute __unused__.
20196
20197 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
20198
20199 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
20200 * config/arm/arm.c (arm_arch_thumb1): Define.
20201 (arm_option_override): Initialize arm_arch_thumb1.
20202 * config/arm/arm.h (arm_arch_thumb1): Declare.
20203 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
20204 support Thumb-1 ISA.
20205
20206 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
20207
20208 PR target/71346
20209 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
20210 `Yv' for scalar operand.
20211
20212 2016-05-31 Tom de Vries <tom@codesourcery.com>
20213
20214 PR tree-optimization/69068
20215 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
20216 phis with more than two args.
20217
20218 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
20219
20220 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
20221 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
20222 target.
20223
20224 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
20225
20226 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
20227 tune_64.
20228 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
20229 support on SPARC.
20230 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
20231 cpu_32, cpu_64, tune_32 and tune_64.
20232 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
20233
20234 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
20235
20236 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
20237
20238 2016-05-30 Andi Kleen <ak@linux.intel.com>
20239
20240 * auto-profile.c (read_profile): Replace asserts with errors
20241 when file does not exist.
20242 * gcov-io.c (gcov_read_words): Dito.
20243
20244 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20245
20246 * tree-cfg.c (print_loop): Print likely upper bounds.
20247
20248 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20249
20250 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
20251 * opts.c (default_options): Enable peel loops at -O3.
20252 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
20253 (try_peel_loop): Do not re-peel already peeled loops;
20254 use likely upper bounds; fix profile updating.
20255 (pass_complete_unroll::execute): Initialize peeled_loops.
20256
20257 2016-05-30 Martin Liska <mliska@suse.cz>
20258
20259 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
20260 computed costs by frequency of BB they belong to.
20261 (get_scaled_computation_cost_at): New function.
20262
20263 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
20264 Marc Glisse <marc.glisse@inria.fr>
20265
20266 PR tree-optimization/71289
20267 * match.pd (-1 / B < A, A > -1 / B): New transformations.
20268
20269 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20270
20271 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
20272
20273 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20274
20275 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
20276 for peeled copies; avoid underflow when updating estimates; correctly
20277 scale loop profile.
20278
20279 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
20280
20281 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
20282 r236875. Corrected oe3 to oe2 as obvious.
20283
20284 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
20285
20286 PR middle-end/71269
20287 PR middle-end/71252
20288 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
20289 that inserted stmt will not dominate stmts that defines its operand.
20290 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
20291 (rewrite_expr_tree_parallel): Likewise.
20292
20293 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
20294
20295 PR middle-end/71252
20296 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
20297 all fields including stmt_to_insert are swapped.
20298
20299 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20300
20301 * predict.h (force_edge_cold): Declare.
20302 * predict.c (force_edge_cold): New function.
20303 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
20304 updating.
20305 (canonicalize_loop_induction_variables): Fix formating.
20306
20307 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
20308
20309 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
20310 (visium_expand_copysign): Use gen_int_mode directly.
20311 (visium_compute_frame_size): Minor tweaks.
20312
20313 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
20314
20315 * tree-vect-loop.c (vect_analyze_loop_2): Use
20316 likely_max_stmt_executions_int.
20317
20318 2016-05-30 Tom de Vries <tom@codesourcery.com>
20319
20320 PR tree-optimization/69067
20321 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
20322
20323 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
20324
20325 PR target/71245
20326 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
20327 New peepholes to remove unneeded fild/fistp pairs.
20328 (define_peephole2 atomic_loaddi_fpu): Ditto.
20329
20330 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20331
20332 * predict.c (maybe_hot_frequency_p): Avoid division.
20333
20334 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
20335
20336 * doc/install.texi: Use https for shop.fsf.org.
20337
20338 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20339
20340 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
20341 likely_max_stmt_executions_int.
20342
20343 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20344
20345 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
20346 likely_max_stmt_executions_int.
20347
20348 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20349
20350 * profile.c (compute_branch_probabilities): Do not report hitrates
20351 here.
20352 (branch_prob): Report hitrates here.
20353 * predict.c (gimple_predict_edge): Do not assert profile status;
20354 fix formatting issues.
20355
20356 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20357
20358 * predict.c (edge_predicted_by_p): New function.
20359 (predict_paths_for_bb): Do not put multiple predictions of the same type
20360 on one edge.
20361
20362 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20363
20364 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
20365 commit.
20366
20367 2016-05-28 Alan Modra <amodra@gmail.com>
20368
20369 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
20370
20371 2016-05-28 Alan Modra <amodra@gmail.com>
20372
20373 PR rtl-optimization/71275
20374 * ira.c (ira): Free dominance info.
20375
20376 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
20377
20378 * doc/sourcebuild.texi: New address for upstream Go repository.
20379
20380 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
20381
20382 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
20383 (TARGET_ARM_V7M): Likewise.
20384
20385 2016-05-26 Jeff Law <law@redhat.com>
20386
20387 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
20388 (thread_across_edge): Remove calls to find_jump_threads_backwards.
20389 * passes.def: Add jump threading passes before DOM/VRP.
20390 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
20391 argument to a basic block from an edge. Remove tests which are
20392 handled elsewhere.
20393 (pass_data_thread_jumps, class pass_thread_jumps): New.
20394 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
20395 (make_pass_thread_jumps): Likewise.
20396 * tree-pass.h (make_pass_thread_jumps): Declare.
20397
20398 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
20399
20400 * config/visium/visium-protos.h (split_double_move): Rename into...
20401 (visium_split_double_move): ...this.
20402 (visium_split_double_add): Declare.
20403 * config/visium/visium.c (split_double_move): Rename into...
20404 (visium_split_double_move): ...this.
20405 (visium_split_double_add): New function.
20406 (visium_expand_copysign): Renumber operands for consistency.
20407 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
20408 (DFmode move splitter): Likewise.
20409 (*addi3_insn): Split by means of visium_split_double_add.
20410 (*adddi3_insn_flags): Delete.
20411 (*plus_plus_sltu<subst_arith>): New insn.
20412 (*subdi3_insn): Split by means of visium_split_double_add.
20413 (subdi3_insn_flags): Delete.
20414 (*minus_minus_sltu<subst_arith>): New insn.
20415 (*negdi2_insn): Split by means of visium_split_double_add.
20416 (*negdi2_insn_flags): Delete.
20417
20418 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
20419
20420 * configure.ac: Treat a --with-headers option without argument
20421 the same as the default (i.e. consult sys-include directory).
20422 * configure: Regenerate.
20423
20424 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20425
20426 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
20427 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
20428 prototype.
20429 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
20430 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
20431
20432 2016-05-27 Jiong Wang <jiong.wang@arm.com>
20433
20434 PR target/63596
20435 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
20436 tree-stdarg analysis results.
20437 (aarch64_setup_incoming_varargs): Likewise.
20438
20439 2016-05-27 Jiong Wang <jiong.wang@arm.com>
20440
20441 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
20442 va_list_gpr_counter_field and va_list_fpr_counter_field.
20443
20444 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
20445
20446 PR67609
20447 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
20448 * config/aarch64/aarch64.c
20449 (aarch64_cannot_change_mode_class): Remove function.
20450 * config/aarch64/aarch64-protos.h
20451 (aarch64_cannot_change_mode_class): Remove.
20452
20453 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
20454
20455 * cfgloop.c (record_niter_bound): Record likely upper bounds.
20456 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
20457 get_likely_max_loop_iterations_int): New.
20458 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
20459 any_likely_upper_bound.
20460 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
20461 Declare.
20462 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
20463 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
20464 upper bound.
20465 (unroll_loop_constant_iterations): Likewise.
20466 (unroll_loop_runtime_iterations): Likewise.
20467 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
20468 * lto-streamer-out.c (output_cfg): Likewise.
20469 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
20470 bounds.
20471 (canonicalize_loop_induction_variables): Dump likely upper bounds.
20472 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
20473 (likely_max_loop_iterations): New.
20474 (likely_max_loop_iterations_int): New.
20475 (likely_max_stmt_executions): New.
20476 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
20477 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
20478 likely_max_stmt_executions): Declare.
20479
20480 2016-05-27 Marek Polacek <polacek@redhat.com>
20481
20482 PR middle-end/71308
20483 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
20484
20485 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20486
20487 * config/s390/s390.md (2x risbg splitters): Use
20488 reg_overlap_mentioned_p instead of rtx_equal_p.
20489
20490 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
20491
20492 * combine.c (make_compound_operation): Take known zero bits into
20493 account when checking for possible zero_extend.
20494
20495 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20496
20497 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
20498 Use const_int_operand for operand 2 predicate. Simplify expand code
20499 as a result.
20500
20501 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
20502
20503 PR middle-end/71279
20504 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
20505 into comparison.
20506
20507 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20508
20509 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
20510 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
20511 that returns CC_SESWPmode and CC_ZESWPmode.
20512 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
20513 and CC_SESWPmode.
20514 (aarch64_rtx_costs): Likewise.
20515
20516 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
20517
20518 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
20519 for ISA 3.0 min/max support.
20520 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
20521 conditional move support.
20522 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
20523 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
20524 available.
20525 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
20526 conditional moves where the comparison type is different from move
20527 type.
20528 (fp_minmax): New code iterator for smin/smax.
20529 (minmax): New code attributes for min/max.
20530 (SMINMAX): Likewise.
20531 (smax<mode>3): Combine min, max insns into one insn using the
20532 fp_minmax code iterator. Add support for ISA 3.0 min/max
20533 instructions that don't need -ffast-math.
20534 (s<minmax><mode>3): Likewise.
20535 (smax<mode>3_vsx): Likewise.
20536 (smin<mode>3): Likewise.
20537 (s<minmax><mode>3_vsx): Likewise.
20538 (smin<mode>3_vsx): Likewise.
20539 (pre-VSX min/max splitters): Likewise.
20540 (s<minmax><mode>3_fpr): Likewise.
20541 (movsfcc): Rewrite floating point conditional moves to combine
20542 SFmode/DFmode into a single insn.
20543 (mov<mode>cc): Likewise.
20544 (movdfcc): Likewise.
20545 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
20546 SFDF2 iterators to handle all combinations.
20547 (fseldfsf4): Likewise.
20548 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
20549 (fseldfdf4): Likewise.
20550 (fselsfdf4): Likewise.
20551 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
20552 comparison instructions that set a 0/-1 mask, and use it for
20553 floating point conditional move via XXSEL.
20554 (fpmask<mode>): Likewise.
20555 (xxsel<mode>): Likewise.
20556 * config/rs6000/predicates.md (min_max_operator): Delete, no
20557 longer used.
20558 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
20559 instructions that generate a 0/-1 mask for use with XXSEL.
20560 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
20561 say whether floating point min/max is available, either through
20562 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
20563 (TARGET_MINMAX_DF): Likewise.
20564
20565 2016-05-27 Alan Modra <amodra@gmail.com>
20566
20567 PR rtl-optimization/71275
20568 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
20569 for update_equiv_regs and combine_and_move_insns.
20570
20571 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
20572
20573 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
20574 if_then_else or cond RTXes to calculate attribute value.
20575 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
20576 <attr "length_immediate>: Ditto.
20577 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
20578 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
20579 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
20580 <attr "type">: Ditto.
20581 <attr "prefix_data16">: Ditto.
20582 <attr "prefix_extra">: Ditto.
20583 <attr "length_immediate">: Ditto.
20584 <attr "prefix">: Ditto.
20585 (vec_set<mode>_0) <attr "isa">: Ditto.
20586 <attr "prefix_extra">: Ditto.
20587 <attr "length_immediate">: Ditto.
20588 <attr "prefix">: Ditto.
20589 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
20590 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
20591 (sse2_storelpd) <attr "prefix_data16">: Ditto.
20592 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
20593 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
20594 <attr "length_immediate">: Ditto.
20595 <attr "prefix">: Ditto.
20596 (sse2_movsd) <attr "length_immediate">: Ditto.
20597 <attr "prefix">: Ditto.
20598 (vec_concatv2df) <attr "isa">: Ditto.
20599 <attr "prefix">: Ditto.
20600 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
20601 (*vec_extractv2di_1) <attr "isa">: Ditto.
20602 <attr "type">: Ditto.
20603 <attr "length_immediate">: Ditto.
20604 <attr "prefix_rex">: Ditto.
20605 <attr "prefix_extra">: Ditto.
20606 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
20607 <attr "prefix_extra">: Ditto.
20608 <attr "length_immediate">: Ditto.
20609 (vec_concatv2di) <attr "isa">: Ditto.
20610 <attr "prefix_extra">: Ditto.
20611 <attr "length_immediate">: Ditto.
20612 <attr "prefix">: Ditto.
20613
20614 2016-05-26 Martin Liska <mliska@suse.cz>
20615
20616 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
20617 function.
20618 (operator+): Likewise.
20619 (operator-): Likewise.
20620 (comp_cost::operator+=): Likewise.
20621 (comp_cost::operator-=): Likewise.
20622 (comp_cost::operator/=): Likewise.
20623 (comp_cost::operator*=): Likewise.
20624 (operator<): Likewise.
20625 (operator==): Likewise.
20626 (operator<=): Likewise.
20627 (new_cost): Remove.
20628 (infinite_cost_p): Likewise.
20629 (add_costs): Likewise.
20630 (sub_costs): Likewise.
20631 (compare_costs): Likewise.
20632 (set_group_iv_cost): Use the newly introduced functions.
20633 (get_address_cost): Likewise.
20634 (get_shiftadd_cost): Likewise.
20635 (force_expr_to_var_cost): Likewise.
20636 (split_address_cost): Likewise.
20637 (ptr_difference_cost): Likewise.
20638 (difference_cost): Likewise.
20639 (get_computation_cost_at): Likewise.
20640 (determine_group_iv_cost_generic): Likewise.
20641 (determine_group_iv_cost_address): Likewise.
20642 (determine_group_iv_cost_cond): Likewise.
20643 (autoinc_possible_for_pair): Likewise.
20644 (determine_group_iv_costs): Likewise.
20645 (cheaper_cost_pair): Likewise.
20646 (iv_ca_recount_cost): Likewise.
20647 (iv_ca_set_no_cp): Likewise.
20648 (iv_ca_set_cp): Likewise.
20649 (iv_ca_cost): Likewise.
20650 (iv_ca_new): Likewise.
20651 (iv_ca_dump): Likewise.
20652 (iv_ca_narrow): Likewise.
20653 (iv_ca_prune): Likewise.
20654 (iv_ca_replace): Likewise.
20655 (try_add_cand_for): Likewise.
20656 (try_improve_iv_set): Likewise.
20657 (find_optimal_iv_set): Likewise.
20658
20659 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
20660
20661 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
20662 that internal functions will clobber all caller-saved registers.
20663
20664 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
20665
20666 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
20667 Return a better case_values_threshold when optimizing.
20668
20669 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
20670
20671 * config/aarch64/aarch64-simd.md (aarch64_combinez):
20672 Add ? to integer variant.
20673 (aarch64_combinez_be): Likewise.
20674
20675 2016-05-26 Jakub Jelinek <jakub@redhat.com>
20676
20677 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
20678 instead of x constraint.
20679 (vcvtps2ph256<mask_name>): Likewise.
20680
20681 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
20682 alternative. Formatting fix.
20683
20684 * config/i386/sse.md
20685 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
20686 to ...
20687 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
20688 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
20689 maybe_evex prefix instead of vex.
20690 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
20691 EXT_REX_SSE_REG_P (op0) case in the splitter.
20692
20693 2016-05-25 Jeff Law <law@redhat.com>
20694
20695 PR tree-optimization/71272
20696 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
20697 Update comments. Add test for empty path.
20698
20699 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
20700
20701 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
20702 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
20703 special case builtin.
20704 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
20705 code for ALTIVEC_BUILTIN_VEC_CMPNE.
20706 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
20707 for __builtin_vec_cmpne.
20708
20709 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
20710
20711 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
20712 redundant test and bail out if the type of the new operand is not
20713 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
20714
20715 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
20716
20717 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
20718 (x_ix86_target_flags_explicit): Remove.
20719 * config/i386/i386.c (ix86_function_specific_save): Do not copy
20720 x_ix86_target_flags_explicit.
20721 (ix86_function_specific_restore): Ditto.
20722
20723 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
20724 H.J. Lu <hongjiu.lu@intel.com>
20725
20726 PR target/70738
20727 * common/config/i386/i386-common.c
20728 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
20729 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
20730 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
20731 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
20732 (-mgeneral-regs-only): Add new option.
20733 * config/i386/i386.c (ix86_option_override_internal): Don't enable
20734 x87 instructions if only general registers are allowed.
20735 (ix86_target_string): Add ix86_flags argument. Handle additional
20736 flags options through ix86_flags argument. Update all callers.
20737 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
20738
20739 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20740
20741 PR rtl-optimization/66940
20742 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
20743 decrementing desired_val will not overflow before performing these
20744 operations.
20745
20746 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
20747
20748 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
20749 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
20750 * config/i386/i386.c (enum ix86_builtins): Add
20751 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
20752 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
20753 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
20754 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
20755 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
20756 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
20757 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
20758 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
20759 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
20760 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
20761 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
20762 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
20763 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
20764 __builtin_ia32_cvtps2dq512_mask.
20765 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
20766 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
20767 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
20768 * config/i386/sse.md
20769 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
20770 Rename to ...
20771 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
20772 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
20773 to ...
20774 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
20775 (avx512f_vec_pack_sfix_v8df): New define_expand.
20776 (avx512f_roundpd512): Rename to ...
20777 (avx512f_round<castmode>512): ... this. Change iterator.
20778 (avx512f_roundps512_sfix): New define_expand.
20779 (round<mode>2_sfix): Change iterator.
20780
20781 2016-05-25 Nick Clifton <nickc@redhat.com>
20782
20783 * config/msp430/msp430.c (msp430_attr): Produce an error if a
20784 static interrupt handler is detected.
20785 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
20786 default linker script.
20787 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
20788 the low part of a symbolic pointer.
20789
20790 2016-05-25 Richard Biener <rguenther@suse.de>
20791
20792 PR tree-optimization/71261
20793 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
20794 interesting stmt instead of immediate uses when looking
20795 for the use operand to replace.
20796
20797 2016-05-25 Martin Liska <mliska@suse.cz>
20798
20799 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
20800
20801 2016-05-25 Richard Biener <rguenther@suse.de>
20802
20803 PR tree-optimization/71264
20804 * tree-vect-stmts.c (vect_init_vector): Properly deal with
20805 vector type val.
20806
20807 2016-05-25 Martin Liska <mliska@suse.cz>
20808
20809 PR tree-optimization/71239
20810 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
20811 if DECL_SIZE is NULL.
20812
20813 2016-05-25 Richard Biener <rguenther@suse.de>
20814
20815 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
20816 * tree-if-conv.c (pass_data_if_conversion): Use it.
20817
20818 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
20819
20820 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
20821 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
20822 * varpool.c (varpool_node::get_availability): Likewise.
20823
20824 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
20825
20826 * config/rs6000/altivec.md (VNEG iterator): New iterator for
20827 VNEGW/VNEGD instructions.
20828 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
20829 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
20830 support for ISA 3.0 VNEGW/VNEGD instructions.
20831
20832 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
20833
20834 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
20835 pointers inside OACC_DATA regions.
20836 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
20837 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
20838 (gimplify_adjust_omp_clauses): Fix typo in comment.
20839
20840 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
20841
20842 * config/rs6000/altivec.md (VParity): New mode iterator for vector
20843 parity built-in functions.
20844 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
20845 zeros.
20846 (p9v_parity<mode>2): Likewise.
20847 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
20848 parity.
20849 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
20850 (parity<mode>2): ISA 3.0 expander for vector parity.
20851 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
20852 power9 built-ins.
20853 (BU_P9_64BIT_MISC_0): Likewise.
20854 (BU_P9_MISC_0): Likewise.
20855 (BU_P9V_AV_1): Likewise.
20856 (BU_P9V_AV_2): Likewise.
20857 (BU_P9V_AV_3): Likewise.
20858 (BU_P9V_AV_P): Likewise.
20859 (BU_P9V_VSX_1): Likewise.
20860 (BU_P9V_OVERLOAD_1): Likewise.
20861 (BU_P9V_OVERLOAD_2): Likewise.
20862 (BU_P9V_OVERLOAD_3): Likewise.
20863 (VCTZB): Add vector count trailing zeros support.
20864 (VCTZH): Likewise.
20865 (VCTZW): Likewise.
20866 (VCTZD): Likewise.
20867 (VPRTYBD): Add vector parity support.
20868 (VPRTYBQ): Likewise.
20869 (VPRTYBW): Likewise.
20870 (VCTZ): Add overloaded vector count trailing zeros support.
20871 (VPRTYB): Add overloaded vector parity support.
20872 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20873 overloaded vector count trailing zeros and parity instructions.
20874 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
20875 vector parity support.
20876 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
20877 trailing zeros support.
20878 (vec_cntlz): Likewise.
20879 (vec_vctzb): Likewise.
20880 (vec_vctzd): Likewise.
20881 (vec_vctzh): Likewise.
20882 (vec_vctzw): Likewise.
20883 (vec_vprtyb): Add ISA 3.0 vector parity support.
20884 (vec_vprtybd): Likewise.
20885 (vec_vprtybw): Likewise.
20886 (vec_vprtybq): Likewise.
20887 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
20888 the ISA 3.0 vector count trailing zeros and vector parity built-in
20889 functions.
20890
20891 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
20892
20893 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
20894 when there is stmt_to_insert.
20895
20896 2016-05-24 Martin Sebor <msebor@redhat.com>
20897
20898 PR c++/71147
20899 * tree.h (complete_or_array_type_p): New inline function.
20900
20901 2016-05-24 Jakub Jelinek <jakub@redhat.com>
20902
20903 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
20904 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
20905 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
20906
20907 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
20908 Limit 1st alternative to noavx isa, split 2nd alternative into one
20909 noavx and one avx alternative, use *x and Bm in the former and
20910 x and m in the latter.
20911
20912 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
20913 of sse4 for the first alternative, drop %v from the template
20914 and d operand modifier. Split second alternative into one sse4_noavx
20915 and one avx alternative, use *x instead of *v in the former and v
20916 instead of *v in the latter.
20917 (*sse4_1_extractps): Use noavx isa instead of * for the first
20918 alternative, drop %v from the template. Split second alternative into
20919 one noavx and one avx alternative, use *x instead of *v in the
20920 former and v instead of *v in the latter.
20921 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
20922 with noavx and the last one with avx.
20923 (sse4_1_phminposuw): Guard first alternative with noavx isa,
20924 split the second one into one noavx and one avx alternative,
20925 use *x and Bm in the former and x and m in the latter one.
20926 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
20927 alternatives.
20928
20929 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
20930 first two alternatives to noavx, use *x instead of *v in the second
20931 one, add avx alternative without *.
20932 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
20933 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
20934 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
20935
20936 2016-05-24 Jeff Law <law@redhat.com>
20937
20938 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
20939 New function, extracted from...
20940 (fsm_find_control_statement_thread_paths): Here. Use the new function.
20941 Allow simple copies and constant initializations in the SSA chain.
20942
20943 2016-05-24 Marek Polacek <polacek@redhat.com>
20944
20945 PR c/71249
20946 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
20947 scope.
20948
20949 2016-05-24 Jakub Jelinek <jakub@redhat.com>
20950
20951 PR c++/71257
20952 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
20953 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
20954 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
20955 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
20956 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
20957
20958 2016-05-24 Richard Biener <rguenther@suse.de>
20959
20960 PR tree-optimization/71240
20961 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
20962 has integral type.
20963
20964 2016-05-24 Richard Biener <rguenther@suse.de>
20965
20966 PR tree-optimization/71230
20967 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
20968
20969 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
20970
20971 * tree-vectorizer.h (vectorizable_comparison): Delete.
20972 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
20973 PURE_SLP_STMT check.
20974 * tree-vect-stmts.c (vectorizable_call): Likewise.
20975 (vectorizable_simd_clone_call): Likewise.
20976 (vectorizable_conversion): Likewise.
20977 (vectorizable_assignment): Likewise.
20978 (vectorizable_shift): Likewise.
20979 (vectorizable_operation): Likewise.
20980 (vectorizable_load): Likewise.
20981 (vectorizable_condition): Likewise.
20982 (vectorizable_store): Likewise. Assert that we don't have
20983 hybrid SLP.
20984 (vectorizable_comparison): Make static. Remove redundant
20985 PURE_SLP_STMT check.
20986 (vect_transform_stmt): Assert that we always have an slp_node
20987 if PURE_SLP_STMT.
20988
20989 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20990
20991 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
20992 operands[2] against 1 with comparison against CONST1_RTX.
20993 (<shift>di3_neon): Likewise.
20994 * config/arm/predicates.md (const0_operand): Replace with comparison
20995 against CONST0_RTX.
20996
20997 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20998
20999 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
21000 operands[2] against 1 with comparison against CONST1_RTX.
21001 (ashrdi3): Likewise.
21002 (lshrdi3): Likewise.
21003 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
21004 UINTVAL.
21005 (ashrsi3): Likewise.
21006 (lshrsi3): Likewise.
21007 (rotrsi3): Likewise.
21008 (define_split above *compareqi_eq0): Likewise.
21009 (define_split above "prologue"): Likewise.
21010 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
21011 * config/arm/predicates.md (shift_operator): Likewise.
21012 (shift_nomul_operator): Likewise.
21013 (sat_shift_operator): Likewise.
21014 (thumb1_cmp_operand): Likewise.
21015 (const_neon_scalar_shift_amount_operand): Replace manual range
21016 check with IN_RANGE.
21017 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
21018 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
21019
21020 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21021
21022 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
21023 with HOST_WIDE_INT_1.
21024 (insv): Likewise.
21025 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
21026 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
21027 (arm_canonicalize_comparison): Likewise.
21028 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
21029 HOST_WIDE_INT_1.
21030 (thumb1_size_rtx_costs): Likewise.
21031 (vfp_const_double_index): Replace cast of 1 to unsigned
21032 HOST_WIDE_INT with HOST_WIDE_INT_1U.
21033 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
21034 HOST_WIDE_INT_1.
21035 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
21036 HOST_WIDE_INT with HOST_WIDE_INT_1U.
21037 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
21038 HOST_WIDE_INT with HOST_WIDE_INT_1.
21039
21040 2016-05-24 Marek Polacek <polacek@redhat.com>
21041
21042 * tree-cfg.h (should_remove_lhs_p): New predicate.
21043 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
21044 * gimplify.c (gimplify_modify_expr): Likewise.
21045 * tree-cfg.c (verify_gimple_call): Likewise.
21046 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
21047 * gimple-fold.c: Include "tree-cfg.h".
21048 (gimple_fold_call): Use should_remove_lhs_p.
21049
21050 2016-05-24 Richard Biener <rguenther@suse.de>
21051
21052 PR tree-optimization/71253
21053 * cfganal.h (control_dependences): Make robust against edge
21054 and BB removal.
21055 (control_dependences::control_dependences): Remove edge_list argument.
21056 (control_dependences::get_edge): Remove.
21057 (control_dependences::get_edge_src): Add.
21058 (control_dependences::get_edge_dest): Likewise.
21059 (control_dependences::m_el): Make a vector of edge src/dest index.
21060 * cfganal.c (control_dependences::find_control_dependence): Adjust.
21061 (control_dependences::control_dependences): Likewise.
21062 (control_dependences::~control_dependence): Likewise.
21063 (control_dependences::get_edge): Remove.
21064 (control_dependences::get_edge_src): Add.
21065 (control_dependences::get_edge_dest): Likewise.
21066 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
21067 get_edge_src.
21068 (perform_tree_ssa_dce): Adjust.
21069 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
21070 get_edge_src.
21071 (pass_loop_distribution::execute): Adjust. Do loop destroying
21072 conditional on changed.
21073
21074 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21075
21076 PR target/69857
21077 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
21078 return. Reindent transformation comment and mention the ARM state
21079 behavior.
21080
21081 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
21082
21083 PR middle-end/71252
21084 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
21085 after build_and_add_sum creates new use stmt.
21086
21087 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
21088
21089 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
21090 load_lanes/grouped_load classification comes first. Don't check
21091 whether the vectorization factor is a multiple of the group size
21092 for load_lanes.
21093
21094 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
21095
21096 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
21097 GROUP_GAP for single-element interleaving.
21098 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
21099 variable.
21100
21101 2016-05-24 Richard Biener <rguenther@suse.de>
21102
21103 PR middle-end/70434
21104 PR c/69504
21105 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
21106 bases which are accessed with non-invariant indices.
21107 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
21108 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
21109
21110 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
21111
21112 PR middle-end/71170
21113 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
21114 (add_to_ops_vec): Add stmt_to_insert.
21115 (add_repeat_to_ops_vec): Init stmt_to_insert.
21116 (insert_stmt_before_use): New.
21117 (transform_add_to_multiply): Remove mult_stmt insertion and add it
21118 to ops vector.
21119 (get_ops): Init stmt_to_insert.
21120 (maybe_optimize_range_tests): Likewise.
21121 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
21122 (rewrite_expr_tree_parallel): Likewise.
21123 (reassociate_bb): Likewise.
21124
21125 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
21126
21127 PR target/71201
21128 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
21129 ISA 3.0 xxperm fusion alternative.
21130 (altivec_vperm_v8hiv16qi): Likewise.
21131 (altivec_vperm_<mode>_uns_internal): Likewise.
21132 (vperm_v8hiv4si): Likewise.
21133 (vperm_v16qiv8hi): Likewise.
21134
21135 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
21136 Kelvin Nilsen <kelvin@gcc.gnu.org>
21137
21138 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
21139 vpermr/xxpermr on ISA 3.0.
21140 (altivec_expand_vec_perm_le): Likewise.
21141 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
21142 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
21143 ISA 3.0.
21144
21145 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
21146
21147 * config/i386/i386.h (IS_STACK_MODE): Enable for
21148 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
21149 SSE_FLOAT_MODE_P macros.
21150 * config/i386/i386.c (ix86_preferred_reload_class): Use
21151 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
21152 Cleanup regclass processing for CONST_DOUBLE_P.
21153 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
21154 (ix86_rtx_costs): Remove redundant TARGET_80387 check
21155 with IS_STACK_MODE macro.
21156 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
21157 with TARGET_SSE2.
21158 (*movdf_internal): Use IS_STACK_MODE macro.
21159 (*movsf_internal): Ditto.
21160
21161 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
21162
21163 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
21164 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
21165
21166 2016-05-23 Jeff Law <law@redhat.com>
21167
21168 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
21169 extracted from ...
21170 (fsm_find_control_statement_thread_paths): Call it.
21171
21172 2016-05-23 Martin Jambor <mjambor@suse.cz>
21173
21174 PR ipa/71234
21175 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
21176 from_global_constant if t is not NULL.
21177
21178 2016-05-23 Marek Polacek <polacek@redhat.com>
21179
21180 PR c/49859
21181 * common.opt (Wswitch-unreachable): New option.
21182 * doc/invoke.texi: Document -Wswitch-unreachable.
21183 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
21184 warning.
21185
21186 2016-05-23 Bin Cheng <bin.cheng@arm.com>
21187
21188 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
21189 TMR_INDEX is non-NULL.
21190
21191 2016-05-23 Richard Biener <rguenther@suse.de>
21192
21193 PR tree-optimization/71230
21194 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
21195 (try_special_add_to_ops): ... here. Always test for single-use.
21196
21197 2016-05-23 Martin Jambor <mjambor@suse.cz>
21198
21199 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
21200 default block if a PHI node in the original one would be resized.
21201
21202 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21203
21204 PR tree-optimization/58135
21205 * tree-vect-slp.c: When group size is not multiple
21206 of vector size, allow splitting of store group at
21207 vector boundary.
21208
21209 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
21210
21211 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
21212
21213 2016-05-22 Jakub Jelinek <jakub@redhat.com>
21214
21215 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
21216 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
21217 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
21218 of 64x2.
21219
21220 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
21221 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
21222 v constraint instead of x and vinserti32x4 insn.
21223
21224 * config/i386/sse.md (i128vldq): New mode iterator.
21225 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
21226 avx512dq and avx512vl alternatives.
21227
21228 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
21229 constraint, use maybe_evex prefix instead of vex.
21230 (vec_dupv4sf): Use v constraint instead of x for output
21231 operand except for noavx alternative, use Yv constraint
21232 instead of x for input. Use maybe_evex prefix instead of vex.
21233 (*vec_dupv4si): Likewise.
21234 (*vec_dupv2di): Likewise.
21235
21236 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
21237
21238 PR middle-end/40921
21239 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
21240 (linearize_expr_tree): Call try_special_add_to_ops.
21241 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
21242
21243 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
21244
21245 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
21246 to computed stack_usage.
21247
21248 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
21249
21250 PR target/71103
21251 * config/avr/avr.md (define_expand "mov<mode>"): If the source
21252 operand is subreg (symbol_ref) then move the symbol ref to register.
21253
21254 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
21255
21256 * tree.c (array_at_struct_end_p): Look through MEM_REF.
21257
21258 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
21259
21260 PR middle-end/71179
21261 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
21262 VECTOR type.
21263
21264 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
21265
21266 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
21267 ranges by calling get_single_symbol and tidy up. Look more closely
21268 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
21269
21270 2016-05-20 Jeff Law <law@redhat.com>
21271
21272 * bitmap.c (bitmap_find_bit): Remove useless test.
21273
21274 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
21275
21276 * function.c (thread_prologue_and_epilogue_insns): Commit the
21277 insertion of the epilogue.
21278
21279 2016-05-20 Martin Jambor <mjambor@suse.cz>
21280
21281 PR tree-optimization/70884
21282 * tree-sra.c (initialize_constant_pool_replacements): Do not check
21283 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
21284 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
21285 of constant pool data as a reason for scalarization.
21286
21287 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
21288
21289 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
21290 for naked functions.
21291 (thumb1_expand_prologue): Likewise.
21292
21293 2016-05-20 Nathan Sidwell <nathan@acm.org>
21294
21295 * config/nvptx/nptx.c (nvptx_option_override): Only set
21296 flag_toplevel_reorder, if not explicitly specified. Set
21297 flag_no_common, unless explicitly specified.
21298
21299 2016-05-20 David Malcolm <dmalcolm@redhat.com>
21300
21301 * calls.c (can_implement_as_sibling_call_p): Mark param
21302 reg_parm_stack_space with ATTRIBUTE_UNUSED.
21303
21304 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
21305
21306 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
21307 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
21308 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
21309 constants.
21310 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
21311 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
21312 and CASE_CONST_ANY.
21313
21314 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
21315
21316 * config/nvptx/nvptx.md (sincossf3): New pattern.
21317
21318 2016-05-20 David Malcolm <dmalcolm@redhat.com>
21319
21320 * calls.c (maybe_complain_about_tail_call): New function.
21321 (initialize_argument_information): Call
21322 maybe_complain_about_tail_call when clearing *may_tailcall.
21323 (can_implement_as_sibling_call_p): Call
21324 maybe_complain_about_tail_call when returning false.
21325 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
21326 ensure try_tail_call is set. Call maybe_complain_about_tail_call
21327 if tail-call optimization fails.
21328 * cfgexpand.c (expand_call_stmt): Initialize
21329 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
21330 * gimple-pretty-print.c (dump_gimple_call): Dump
21331 gimple_call_must_tail_p.
21332 * gimple.c (gimple_build_call_from_tree): Call
21333 gimple_call_set_must_tail with the value of
21334 CALL_EXPR_MUST_TAIL_CALL.
21335 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
21336 (gimple_call_set_must_tail): New function.
21337 (gimple_call_must_tail_p): New function.
21338 * print-tree.c (print_node): Update printing of TREE_STATIC
21339 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
21340 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
21341 trailing comment listing applicable flags.
21342 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
21343
21344 2016-05-20 David Malcolm <dmalcolm@redhat.com>
21345
21346 * calls.c (expand_call): Move "Rest of purposes for tail call
21347 optimizations to fail" to...
21348 (can_implement_as_sibling_call_p): ...this new function, and
21349 split into multiple "if" statements.
21350
21351 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
21352
21353 * cfgloop.h (expected_loop_iterations_unbounded,
21354 expected_loop_iterations): Unconstify.
21355 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
21356 profile with known upper bound; return 3 when profile is absent.
21357 (expected_loop_iterations): Update.
21358
21359 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
21360
21361 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
21362 and get_max_loop_iterations_int.
21363
21364 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
21365
21366 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
21367 realistic upper bounds here.
21368
21369 2016-05-20 Jakub Jelinek <jakub@redhat.com>
21370
21371 PR c++/71210
21372 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
21373 calls if the LHS is variable length or has addressable type.
21374 If targets[0]->decl is a noreturn call with void return type and
21375 zero arguments, adjust fntype and remove lhs in that case.
21376
21377 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
21378
21379 PR tree-optimization/71079
21380 PR tree-optimization/71206
21381 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
21382
21383 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21384
21385 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
21386 (get_vec_alignment_for_array_decl): Likewise.
21387 (get_vec_alignment_for_record_decl): Likewise.
21388 (increase_alignment::execute): Move code to find alignment to
21389 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
21390 (type_align_map): New hash_map.
21391
21392 2016-05-20 Richard Guenther <rguenther@suse.de>
21393
21394 PR tree-optimization/29756
21395 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
21396 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
21397 * fold-const.c (operand_equal_p): Likewise.
21398 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
21399 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
21400 * tree-inline.c (estimate_operator_cost): Likewise.
21401 * tree-pretty-print.c (dump_generic_node): Likewise.
21402 * tree-ssa-operands.c (get_expr_operands): Likewise.
21403 * cfgexpand.c (expand_debug_expr): Likewise.
21404 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
21405 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
21406 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
21407 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
21408 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
21409 (execute_update_addresses_taken): Do it.
21410
21411 2016-05-20 Richard Biener <rguenther@suse.de>
21412
21413 PR tree-optimization/71185
21414 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
21415 register operations.
21416
21417 2016-05-20 Richard Biener <rguenther@suse.de>
21418
21419 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
21420 gimple_seq_add_seq_without_update.
21421 (release_bb_predicate): Assert we have no operands to free.
21422 (if_convertible_loop_p_1): Calculate post dominators later.
21423 Do not free BB predicates here.
21424 (combine_blocks): Do not recompute BB predicates.
21425 (version_loop_for_if_conversion): Save BB predicates around
21426 loop versioning.
21427
21428 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
21429
21430 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
21431 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
21432 code. Ignore sibcalls on EDGE_IGNORE edges.
21433 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
21434 on edges for sibcalls that run without prologue. The rest of the
21435 function is combined from...
21436 (fix_fake_fallthrough_edge): ... this, and ...
21437 (try_shrink_wrapping): ... a part of this. Remove the bb_with
21438 function argument, make it a local variable.
21439
21440 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
21441
21442 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
21443 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
21444 for 32-bit mode and SEH for 64-bit.
21445 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
21446 TARGET_64BIT_DEFAULT.
21447
21448 2016-05-19 Ryan Burn <contact@rnburn.com>
21449
21450 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
21451 * gengtype.c (open_base_files): Add cilk.h to ifiles.
21452
21453 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
21454
21455 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
21456 force pending loads from memory.
21457
21458 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
21459
21460 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
21461 (UNSPEC_DARN_32): New unspec constant.
21462 (UNSPEC_DARN_RAW): New unspec constant.
21463 (darn_32): New instruction.
21464 (darn_raw): New instruction.
21465 (darn): New instruction.
21466 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
21467 support and documentation for this macro.
21468 (BU_P9_MISC_1): New macro definition.
21469 (BU_P9_64BIT_MISC_0): New macro definition.
21470 (BU_P9_MISC_0): New macro definition.
21471 (darn_32): New builtin definition.
21472 (darn_raw): New builtin definition.
21473 (darn): New builtin definition.
21474 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
21475 RS6000_BUILTIN_0 directives to surround each occurrence of
21476 #include "rs6000-builtin.def".
21477 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
21478 RS6000_BTM_64BIT flags to the returned mask, depending on
21479 configuration.
21480 (def_builtin): Correct an error in the assignments made to the
21481 debugging variable attr_string.
21482 (rs6000_expand_builtin): Add support for no-operand built-in
21483 functions.
21484 (builtin_function_type): Remove fatal_error assertion that is no
21485 longer valid.
21486 (rs6000_common_init_builtins): Add support for no-operand built-in
21487 functions.
21488 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
21489 definition.
21490 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
21491 definition.
21492 (RS6000_BTM_64BIT): New macro definition.
21493 * doc/extend.texi: Document __builtin_darn (void),
21494 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
21495 functions.
21496
21497 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
21498
21499 * tree-vect-loop.c (vect_analyze_loop_2): Use also
21500 max_loop_iterations_int.
21501
21502 2016-05-19 Marek Polacek <polacek@redhat.com>
21503
21504 PR tree-optimization/71031
21505 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
21506 condition and adjust the code a bit.
21507
21508 2016-05-19 Martin Liska <mliska@suse.cz>
21509
21510 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
21511 auto_vec instead of vec.
21512
21513 2016-05-19 Martin Liska <mliska@suse.cz>
21514
21515 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
21516
21517 2016-05-19 Martin Liska <mliska@suse.cz>
21518
21519 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
21520
21521 2016-05-19 Martin Liska <mliska@suse.cz>
21522
21523 * ipa-pure-const.c (set_function_state): Remove an existing
21524 funct_state.
21525 (remove_node_data): Do not free it as it's released
21526 in set_function_state.
21527
21528 2016-05-19 Martin Liska <mliska@suse.cz>
21529
21530 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
21531 bitmap.
21532
21533 2016-05-19 Martin Liska <mliska@suse.cz>
21534
21535 * omp-simd-clone.c (simd_clone_adjust): Release vector.
21536
21537 2016-05-19 Martin Liska <mliska@suse.cz>
21538
21539 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
21540 an auto_vec instead of re-creating it.
21541
21542 2016-05-19 Martin Liska <mliska@suse.cz>
21543
21544 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
21545 auto_vec instead of vec.
21546
21547 2016-05-19 Martin Liska <mliska@suse.cz>
21548
21549 * lto-section-in.c (lto_get_section_data): Call
21550 lto_check_version with additional argument.
21551 * lto-streamer.c (lto_check_version): Add new argument.
21552 * lto-streamer.h (lto_check_version): Likewise.
21553
21554 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21555
21556 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
21557 Don't add cost of inner memory when handling sign-extended loads.
21558
21559 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
21560
21561 PR rtl-optimization/71148
21562 * cse.c (cse_main): Free dominance info.
21563 (rest_of_handle_cse): Don't free dominance info.
21564 (rest_of_handle_cse2): Likewise.
21565 (rest_of_handle_cse_after_global_opts): Likewise.
21566
21567 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21568
21569 PR target/71056
21570 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
21571 NULL_TREE early if NEON is not available. Remove now redundant check
21572 in ARM_CHECK_BUILTIN_MODE.
21573
21574 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
21575
21576 PR sanitizer/64354
21577 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
21578 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
21579 * doc/cpp.texi: Document new macros.
21580
21581 2016-05-19 Bin Cheng <bin.cheng@arm.com>
21582
21583 PR tree-optimization/69848
21584 * tree-vect-loop.c (vectorizable_reduction): Don't factor
21585 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
21586
21587 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
21588
21589 * function.c (thread_prologue_and_epilogue_insn): Move the
21590 "goto epilogue_done" one block later.
21591
21592 2016-05-19 Richard Biener <rguenther@suse.de>
21593
21594 PR tree-optimization/70729
21595 * passes.def: Move LIM pass before PRE. Remove no longer
21596 required copyprop and move first DCE out of the loop pipeline.
21597
21598 2016-05-18 David Malcolm <dmalcolm@redhat.com>
21599
21600 PR driver/69265
21601 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
21602 (OBJS-libcommon-target): ...here.
21603 * opts-common.c: Include spellcheck.h.
21604 (cmdline_handle_error): Build a vec of valid options and use it
21605 to suggest provide hints for misspelled arguments.
21606
21607 2016-05-18 Jakub Jelinek <jakub@redhat.com>
21608
21609 PR c++/71100
21610 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
21611 lhs if it has TREE_ADDRESSABLE type.
21612
21613 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
21614
21615 PR target/71145
21616 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
21617 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
21618
21619 2016-05-18 Martin Jambor <mjambor@suse.cz>
21620
21621 PR ipa/69708
21622 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
21623 input for NOP_EXPR pass-through functions.
21624 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
21625 aggregate global constant VAR_DECLs in constant jump functions.
21626
21627 2016-05-18 Martin Jambor <mjambor@suse.cz>
21628
21629 PR ipa/69708
21630 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
21631 from TREE_READONLY parameters.
21632
21633 2016-05-18 Martin Jambor <mjambor@suse.cz>
21634
21635 PR ipa/69708
21636 * cgraph.h (cgraph_indirect_call_info): New field
21637 guaranteed_unmodified.
21638 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
21639 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
21640 appropriate.
21641 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
21642 pass the parameter value to ipa_find_agg_cst_for_param.
21643 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
21644 guaranteed_unmodified, store AA results there instead of bailing out
21645 if present.
21646 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
21647 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
21648 (find_constructor_constant_at_offset): New function.
21649 (ipa_find_agg_cst_from_init): Likewise.
21650 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
21651 static initializers of contants, report back through a new paameter
21652 from_global_constant if that was the case.
21653 (try_make_edge_direct_simple_call): Also pass parameter value to
21654 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
21655 appropriate.
21656 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
21657 (ipa_read_indirect_edge_info): Likewise.
21658 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
21659 (ipa_load_from_parm_agg): Likewise.
21660
21661 2016-05-18 Jiong Wang <jiong.wang@arm.com>
21662
21663 PR rtl-optimization/71150
21664 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
21665 check.
21666
21667 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
21668
21669 PR target/70915
21670 * config/rs6000/constraints.md (wE constraint): New constraint
21671 for a vector constant that can be loaded with XXSPLTIB.
21672 (wM constraint): New constraint for a vector constant of a 1's.
21673 (wS constraint): New constraint for a vector constant that can be
21674 loaded with XXSPLTIB and a vector sign extend instruction.
21675 * config/rs6000/predicates.md (xxspltib_constant_split): New
21676 predicates for wE/wS constraints.
21677 (xxspltib_constant_nosplit): Likewise.
21678 (easy_vector_constant): Add support for constants that can be
21679 loaded via XXSPLTIB.
21680 (all_ones_constant): New predicate for vector constant with all
21681 1's set.
21682 (splat_input_operand): Add support for ISA 3.0 word splat operations.
21683 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
21684 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
21685 instruction and possibly with a sign extension.
21686 (output_vec_const_move): Add support for XXSPLTIB. If we are
21687 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
21688 instead of XXLXOR/XXLORC.
21689 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
21690 operations.
21691 (rs6000_legitimize_reload_address): Likewise.
21692 (rs6000_output_move_128bit): Use output_vec_const_move to emit
21693 constants.
21694 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
21695 combine VSX_M and VSX_M2 into one iterator.
21696 (VSX_M2): Likewise.
21697 (VSINT_84): New iterators for loading constants with XXSPLTIB.
21698 (VSINT_842): Likewise.
21699 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
21700 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
21701 XXSPLTIB instruction.
21702 (xxspltib_<mode>_nosplit): Likewise.
21703 (xxspltib_<mode>_split): New insn to load up constants with
21704 XXSPLTIB and a sign extend instruction.
21705 (vsx_mov<mode>): Replace single move that handled all vector types
21706 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
21707 moves (when -mvsx-timode is in effect) into the main vector
21708 moves. Eliminate separate moves for <VSr> <VSa>, where the
21709 preferred register class (<VSr>) is listed first, and the
21710 secondary register class (<VSa>) is listed second with a '?' to
21711 discourage use. Prefer loading 0/-1 in any VSX register for ISA
21712 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
21713 that if the register was involved in a slow operation, the
21714 clear/set operation does not wait for the slow operation to
21715 finish. Adjust the length attributes for 32-bit mode. Use
21716 rs6000_output_move_128bit and drop the use of the string
21717 instructions for 32-bit movti when -mvsx-timode is in effect. Use
21718 spacing so that the alternatives and attributes don't generate
21719 long lines, and put things in columns, so that it is easier to
21720 match up the operands and attributes with the insn alternatives.
21721 (vsx_mov<mode>_64bit): Likewise.
21722 (vsx_mov<mode>_32bit): Likewise.
21723 (vsx_movti_64bit): Fold movti into normal vector moves.
21724 (vsx_movti_32bit): Likewise.
21725 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
21726 splat instructions.
21727 (vsx_splat_v4si_internal): Likewise.
21728 (vsx_splat_v4sf_internal): Likewise.
21729 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
21730 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
21731 extend vector elements.
21732 (vsx_sign_extend_hi_<mode>): Likewise.
21733 (vsx_sign_extend_si_v2di): Likewise.
21734 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
21735 declaration.
21736 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
21737 constraints. Add trailing period to wL documentation.
21738
21739 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
21740
21741 PR middle-end/71020
21742 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
21743 * tree-dfa.c (replace_abnormal_ssa_names): New function.
21744 * tree-call-cdce.c: Include tree-dfa.h.
21745 (can_guard_call_p): New function, extracted from...
21746 (can_use_internal_fn): ...here.
21747 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
21748 and return void.
21749 (shrink_wrap_one_built_in_call): Likewise.
21750 (use_internal_fn): Likewise.
21751 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
21752 and return void. Call replace_abnormal_ssa_names.
21753 (pass_call_cdce::execute): Check can_guard_call_p during the
21754 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
21755 will always change something.
21756
21757 2016-05-18 Martin Jambor <mjambor@suse.cz>
21758
21759 PR ipa/70646
21760 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
21761 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
21762
21763 2016-05-18 Martin Jambor <mjambor@suse.cz>
21764
21765 PR ipa/70646
21766 * ipa-inline.h (condition): New field size.
21767 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
21768 for comaprison and store it into the new condition.
21769 (evaluate_conditions_for_known_args): Use condition size to check
21770 access sizes for all but CHANGED conditions.
21771 (unmodified_parm_1): New parameter size_p, store access size into it.
21772 (unmodified_parm): Likewise.
21773 (unmodified_parm_or_parm_agg_item): Likewise.
21774 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
21775 (set_cond_stmt_execution_predicate): Extract access sizes and store
21776 them to conditions.
21777 (set_switch_stmt_execution_predicate): Likewise.
21778 (will_be_nonconstant_expr_predicate): Likewise.
21779 (will_be_nonconstant_predicate): Likewise.
21780 (inline_read_section): Stream condition size.
21781 (inline_write_summary): Likewise.
21782
21783 2016-05-18 Richard Biener <rguenther@suse.de>
21784
21785 * tree-ssa-loop-im.c (determine_max_movement): Properly add
21786 condition cost to PHI cost instead of total_cost.
21787
21788 2016-05-18 Martin Liska <mliska@suse.cz>
21789
21790 PR fortran/70856
21791 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
21792 merged variables.
21793
21794 2016-05-18 Richard Biener <rguenther@suse.de>
21795
21796 * lto-streamer.h (LTO_major_version): Bump to 6.
21797
21798 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
21799
21800 * function.c (make_split_prologue_seq, make_prologue_seq,
21801 make_epilogue_seq): New functions, factored out from...
21802 (thread_prologue_and_epilogue_insns): Here.
21803
21804 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
21805
21806 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
21807 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
21808 of before. Add a comment.
21809
21810 2016-05-18 Bin Cheng <bin.cheng@arm.com>
21811
21812 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
21813 expression pointer, not pointer to the pointer.
21814
21815 2016-05-18 Jakub Jelinek <jakub@redhat.com>
21816
21817 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
21818 (avx2_pbroadcast<mode>): Add another alternative with v instead
21819 of x constraints in it, using <pbroadcast_evex_isa> isa.
21820 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
21821
21822 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
21823 constraint x instead of v in second alternative, add avx512bw
21824 alternative.
21825
21826 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
21827 constraint x instead of v in second alternative, add avx512bw
21828 alternative.
21829
21830 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
21831 constraint x instead of v in second alternative, add avx512bw
21832 alternative.
21833
21834 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
21835 avx512bw alternative.
21836
21837 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
21838
21839 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
21840 array to 128 chars.
21841 (define_insn "*andnottf3"): Ditto.
21842 (define_insn "*<code><mode>3"/any_logic): Ditto.
21843 (define_insn "*<code>tf3"/any_logic): Ditto.
21844 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
21845 operand to block AVX-512VL insn variant emit when it is not enabled.
21846
21847 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
21848
21849 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
21850 constraint fot SF mode.
21851
21852 2016-05-18 Petr Murzin <petr.murzin@intel.com>
21853 Kirill Yukhin <kirill.yukhin@intel.com>
21854
21855 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
21856 modifiers.
21857 (define_insn "rsqrt14<mode>"): Ditto.
21858 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
21859 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
21860 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
21861 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
21862 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
21863 Ditto.
21864 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
21865 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
21866 * config/i386/i386.c (ix86_print_operand): Expand check for size
21867 override codes for Intel syntax.
21868
21869 2016-05-18 Richard Biener <rguenther@suse.de>
21870
21871 PR tree-optimization/71168
21872 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
21873 initialization earlier.
21874
21875 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
21876
21877 * config/aarch64/aarch64-simd.md
21878 (aarch64_reduc_plus_internal<mode>): Rename to...
21879 (reduc_plus_scal): ...This, and remove previous implementation.
21880
21881 2016-05-18 Richard Biener <rguenther@suse.de>
21882
21883 * passes.def: Put late dse and cd_dce in canonical order.
21884
21885 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
21886
21887 * ipa-inline-transform.c (preserve_function_body_p): Look for
21888 first non-thunk clone.
21889 (save_function_body): Save into first non-thunk.
21890 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
21891 up call stmt id.
21892 (lto_output_node): Inline thunks don't need body in every
21893 partition.
21894 * lto-streamer-in.c: Do not fixup thunk clones.
21895 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
21896 thunks.
21897 * tree-inline.c (copy_bb): Be prepared for target node to be new after
21898 folding suceeds.
21899
21900 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
21901
21902 PR middle-end/63586
21903 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
21904 (reassociate_bb): Call transform_add_to_multiply.
21905
21906 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
21907
21908 * config/aarch64/aarch64.c (all_extensions): Removed unused
21909 static variable.
21910
21911 2016-05-17 Nathan Sidwell <nathan@acm.org>
21912
21913 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
21914 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
21915
21916 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
21917
21918 PR tree-optimization/54579
21919 PR middle-end/55299
21920 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
21921
21922 2016-05-17 Marek Polacek <polacek@redhat.com>
21923
21924 PR ipa/71146
21925 * tree-inline.c (expand_call_inline): Call
21926 maybe_remove_unused_call_args.
21927
21928 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
21929
21930 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
21931 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
21932 * doc/md.texi (fmin@var{m}3): Likewise.
21933
21934 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
21935
21936 * match.pd (X & C): New transformation.
21937
21938 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
21939
21940 * match.pd (~X & Y): New transformation.
21941
21942 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
21943
21944 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
21945 information for new SSA_NAME.
21946 (simplify_conversion_using_ranges): Get range through get_range_info
21947 instead of get_value_range.
21948
21949 2016-05-17 Jiong Wang <jiong.wang@arm.com>
21950
21951 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
21952 Remove inline assembly.
21953 (vmvn_s16): Likewise.
21954 (vmvn_s32): Likewise.
21955 (vmvn_u8): Likewise.
21956 (vmvn_u16): Likewise.
21957 (vmvn_u32): Likewise.
21958 (vmvnq_s8): Likewise.
21959 (vmvnq_s16): Likewise.
21960 (vmvnq_s32): Likewise.
21961 (vmvnq_u8): Likewise.
21962 (vmvnq_u16): Likewise.
21963 (vmvnq_u32): Likewise.
21964 (vmvn_p8): Likewise.
21965 (vmvnq_p16): Likewise.
21966
21967 2016-05-17 Jiong Wang <jiong.wang@arm.com>
21968
21969 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
21970 Use builtin.
21971 (vmul_n_s16): Likewise.
21972 (vmul_n_s32): Likewise.
21973 (vmul_n_u16): Likewise.
21974 (vmul_n_u32): Likewise.
21975 (vmulq_n_f32): Likewise.
21976 (vmulq_n_f64): Likewise.
21977 (vmulq_n_s16): Likewise.
21978 (vmulq_n_s32): Likewise.
21979 (vmulq_n_u16): Likewise.
21980 (vmulq_n_u32): Likewise.
21981
21982 2016-05-17 Jiong Wang <jiong.wang@arm.com>
21983
21984 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
21985 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
21986
21987 2016-05-17 Jiong Wang <jiong.wang@arm.com>
21988
21989 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
21990 to *aarch64_fma4_elt_from_dup<mode>.
21991 (*aarch64_fnma4_elt_to_128df): Rename to
21992 *aarch64_fnma4_elt_from_dup<mode>.
21993 * config/aarch64/arm_neon.h (vfma_n_f64): New.
21994 (vfms_n_f32): Likewise.
21995 (vfms_n_f64): Likewise.
21996 (vfmsq_n_f32): Likewise.
21997 (vfmsq_n_f64): Likewise.
21998
21999 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
22000
22001 * wide-int.h: Change fixed_wide_int_storage from class to struct.
22002
22003 2016-05-17 Richard Biener <rguenther@suse.de>
22004
22005 PR tree-optimization/71132
22006 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
22007 Only add control dependences for blocks in the loop.
22008 (build_rdg): Adjust.
22009 (generate_code_for_partition): Return whether loop should
22010 be destroyed and delay that.
22011 (distribute_loop): Likewise.
22012 (pass_loop_distribution::execute): Record loops to be destroyed
22013 and perform delayed destroying of loops.
22014
22015 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22016
22017 PR target/70809
22018 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
22019
22020 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
22021
22022 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
22023
22024 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
22025
22026 PR target/71114
22027 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
22028 insertion point for instructions generated by validize_mem.
22029
22030 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
22031
22032 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
22033 in brackets.
22034
22035 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
22036
22037 * config/aarch64/aarch64.c
22038 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
22039 rather than a macro.
22040
22041 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
22042
22043 * doc/invoke.texi (AArch64 Options): Various updates.
22044
22045 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22046
22047 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
22048 into instrumentation thunks.
22049 * cif-code.def (CIF_CHKP): New.
22050
22051 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
22052
22053 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
22054
22055 2016-05-16 Martin Jambor <mjambor@suse.cz>
22056
22057 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
22058 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
22059
22060 2016-05-16 Marek Polacek <polacek@redhat.com>
22061
22062 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
22063 commentary.
22064
22065 2016-05-16 Martin Jambor <mjambor@suse.cz>
22066
22067 PR hsa/70857
22068 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
22069 the outlined kernel function.
22070
22071 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
22072
22073 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
22074 (ISA_HAS_DLSA): Ditto.
22075
22076 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
22077
22078 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
22079
22080 2016-05-16 Nathan Sidwell <nathan@acm.org>
22081
22082 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
22083 (nvptx_name_replacement): Restore. Add comment.
22084 (write_fn_proto, write_fn_proto_from_insn,
22085 nvptx_output_call_insn): Restore
22086 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
22087
22088 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
22089
22090 * config/aarch64/aarch64.md
22091 (add<mode>3_compareC_cconly_imm): Remove use of %w.
22092 (add<mode>3_compareC_imm): Likewise.
22093 (<optab>si3_uxtw): Split into register and immediate variants.
22094 (andsi3_compare0_uxtw): Likewise.
22095 (and<mode>3_compare0): Likewise.
22096 (and<mode>3nr_compare0): Likewise.
22097 (stack_protect_test_<mode>): Don't use %x for memory operands.
22098
22099 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
22100
22101 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
22102
22103 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
22104
22105 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
22106 Split integer shifts into shift_reg and bfm.
22107 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
22108 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
22109 (ror<mode>3_insn): Likewise.
22110 (<optab>si3_insn_uxtw): Likewise.
22111 (<optab><mode>3_insn): Change to rotate_imm.
22112 (extr<mode>5_insn_alt): Likewise.
22113 (extrsi5_insn_uxtw): Likewise.
22114 (extrsi5_insn_uxtw_alt): Likewise.
22115
22116 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
22117
22118 * doc/tm.texi: Regenerate.
22119 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
22120 (TARGET_INVALID_RETURN_TYPE): Remove.
22121 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
22122 TARGET_INVALID_RETURN_TYPE.
22123 * target.def (invalid_parameter_type): Remove.
22124 (invalid_return_type): Remove.
22125
22126 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22127
22128 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
22129 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
22130 calls from thunk.
22131 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
22132 gimple body.
22133 (preserve_function_body_p): No need to preserve function body
22134 * cif-codes.def (CIF_THUNK): Remove.
22135 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
22136
22137 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22138
22139 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
22140
22141 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22142
22143 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
22144 for thunks.
22145
22146 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22147
22148 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
22149 (inline_small_functions): Do not look for function symbol when
22150 resetting caches.
22151
22152 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
22153
22154 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
22155 of inline thunks
22156
22157 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
22158 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22159 Jiong Wang <jiong.wang@arm.com>
22160
22161 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
22162 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
22163 Define __ARM_FP16_ARGS when appropriate.
22164 * config/arm/arm.c (arm_invalid_parameter_type): Remove
22165 declaration.
22166 (arm_invalid_return_type): Likewise.
22167 (TARGET_INVALID_PARAMETER_TYPE): Remove.
22168 (TARGET_INVALID_RETURN_TYPE): Remove.
22169 (aapcs_vfp_sub_candidate): Allow HFmode.
22170 (aapcs_vfp_allocate): Add comment. Support HFmode.
22171 (aapcs_vfp_allocate_return_reg): Likewise.
22172 (struct aapcs_cp_arg_layout): Slightly reword comments for
22173 is_return_candidate and allocate_return_reg.
22174 (output_mov_vfp): Update assert.
22175 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
22176 condition.
22177 (arm_invalid_parameter_type): Remove.
22178 (amr_invalid_return_type): Remove.
22179 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
22180 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
22181 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
22182
22183 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
22184
22185 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
22186 * config/aarch64/arch64-protos.h
22187 (aarch64_legitimize_reload_address): Remove.
22188 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
22189 Remove.
22190
22191 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
22192
22193 * configure.ac: Add ACX_NONCANONICAL_HOST.
22194 * configure: Regenerate.
22195 * Makefile.in: Set host_noncanonical.
22196
22197 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
22198
22199 PR target/71097
22200 * config/i386/i386.md (*movtf_internal): Before register allocation,
22201 do not allow FP constants for CM_MEDIUM memory model, allow only
22202 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
22203 (*movxf_internal): Ditto.
22204 (*movdf_internal): Ditto.
22205 (*movsf_internal): Ditto.
22206
22207 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
22208
22209 PR rtl-optimization/67483
22210 * combine.c (make_compound_operation): Don't call extract_left_shift
22211 with negative shift amounts.
22212
22213 2016-05-13 Jakub Jelinek <jakub@redhat.com>
22214
22215 PR bootstrap/71071
22216 * fold-const.c (fold_checksum_tree): Allow modification
22217 of TYPE_ALIAS_SET during folding.
22218
22219 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
22220 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
22221 (ix86_split_to_parts): Likewise. Fix up formatting.
22222
22223 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
22224
22225 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
22226 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
22227 printf format.
22228
22229 2016-05-13 Nathan Sidwell <nathan@acm.org>
22230
22231 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
22232 (nvptx_name_replacement): Delete.
22233 (write_fn_proto, write_fn_proto_from_insn,
22234 nvptx_output_call_insn): Remove nvptx_name_replacement call.
22235 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
22236 * langhooks.c (add_builtin_funcction_common): Call
22237 targetm.mangle_decl_assembler_name.
22238
22239 * config/nvptx/nvptx.c (write_fn_proto): Handle
22240 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
22241
22242 2016-05-13 Martin Liska <mliska@suse.cz>
22243
22244 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
22245 and PRIu64 in printf format.
22246
22247 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22248
22249 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
22250 comment.
22251
22252 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22253
22254 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
22255 Change --param max-completely-peeled-times to
22256 --param max-completely-peel-times in dump file printing.
22257
22258 2016-05-13 Richard Biener <rguenther@suse.de>
22259
22260 PR tree-optimization/42587
22261 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
22262 (find_bswap_or_nop_1): Likewise.
22263 (bswap_replace): Likewise.
22264
22265 2016-05-13 Martin Liska <mliska@suse.cz>
22266
22267 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
22268 Initialize a variable with default value.
22269
22270 2016-05-13 Martin Liska <mliska@suse.cz>
22271
22272 * doc/invoke.texi: Enhance explanation of error recovery
22273 of sanitizers.
22274
22275 2016-05-13 Martin Liska <mliska@suse.cz>
22276
22277 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
22278 (struct cost_pair): Change inv_expr_id (int) to inv_expr
22279 (iv_inv_expr_ent *).
22280 (struct iv_inv_expr_ent): Comment struct fields.
22281 (sort_iv_inv_expr_ent): New function.
22282 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
22283 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
22284 a hash_map between iv_inv_expr_ent and number of usages.
22285 (niter_for_exit): Fix coding style.
22286 (tree_ssa_iv_optimize_init): Use renamed variable.
22287 (determine_base_object): Fix coding style.
22288 (alloc_iv): Likewise.
22289 (find_interesting_uses_outside): Likewise.
22290 (add_candidate_1): Likewise.
22291 (add_standard_iv_candidates): Likewise.
22292 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
22293 (prepare_decl_rtl): Fix coding style.
22294 (get_address_cost): Likewise.
22295 (get_shiftadd_cost): Likewise.
22296 (force_expr_to_var_cost): Likewise.
22297 (compare_aff_trees): Likewise.
22298 (get_expr_id): Restructure the function.
22299 (get_loop_invariant_expr_id): Renamed to
22300 get_loop_invariant_expr.
22301 (get_computation_cost_at): Replace usage of inv_expr_id with
22302 inv_expr.
22303 (get_computation_cost): Likewise.
22304 (determine_group_iv_cost_generic): Likewise.
22305 (determine_group_iv_cost_address): Likewise.
22306 (iv_period): Fix coding style.
22307 (iv_elimination_compare_lt): Likewise.
22308 (may_eliminate_iv): Likewise.
22309 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
22310 inv_expr.
22311 (determine_group_iv_costs): Dump invariant expressions.
22312 (iv_ca_recount_cost): Use the newly added hash_map.
22313 (iv_ca_set_remove_invariants): Fix coding style.
22314 (iv_ca_set_add_invariants): Fix coding style.
22315 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
22316 invariants.
22317 (iv_ca_set_cp): Likewise.
22318 (iv_ca_new): Initialize the newly added hash_map and remove
22319 initialization of fields.
22320 (iv_ca_free): Delete the hash_map.
22321 (iv_ca_dump): Dump invariant expressions.
22322 (iv_ca_extend): Fix coding style.
22323 (try_add_cand_for): Likewise.
22324 (create_new_ivs): Dump information about # of avg iterations and
22325 # of used invariant expressions.
22326 (rewrite_use_compare): Fix coding style.
22327 (free_loop_data): Set default value for max_inv_expr_id.
22328
22329 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
22330
22331 * cse.c (rest_of_handle_cse): Use cleanup_cfg
22332 returned value cse_cfg_altered computation.
22333 (rest_of_handle_cse2): Likewise.
22334 (rest_of_handle_cse_after_global_opts): Likewise.
22335
22336 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22337
22338 PR target/53440
22339 * config/arm/arm.c (arm32_output_mi_thunk): New.
22340 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
22341 to split Thumb1 vs TARGET_32BIT functionality.
22342 (arm_thumb1_mi_thunk): New.
22343
22344 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22345
22346 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
22347 to true.
22348
22349 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22350
22351 PR target/71080
22352 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
22353
22354 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
22355
22356 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
22357 (expand_builtin_trap): Emit a regular call.
22358 (set_builtin_user_assembler_name): Remove obsolete cases.
22359 * dse.c (scan_insn): Adjust.
22360 * except.c: Include calls.h.
22361 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
22362 emit a regular call to setjmp.
22363 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
22364 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
22365 (emit_block_move_via_libcall): Delete.
22366 (block_move_fn): Delete.
22367 (init_block_move_fn): Likewise.
22368 (emit_block_move_libcall_fn): Likewise.
22369 (emit_block_op_via_libcall): New function.
22370 (set_storage_via_libcall): Tidy up and use memset builtin.
22371 (block_clear_fn): Delete.
22372 (init_block_clear_fn): Likewise.
22373 (clear_storage_libcall_fn): Likewise.
22374 (expand_assignment): Call emit_block_move_via_libcall.
22375 Do not include gt-expr.h.
22376 * expr.h (emit_block_op_via_libcall): Declare.
22377 (emit_block_copy_via_libcall): New inline function.
22378 (emit_block_move_via_libcall): Likewise.
22379 (emit_block_comp_via_libcall): Likewise.
22380 (block_clear_fn): Delete.
22381 (init_block_move_fn): Likewise.
22382 (init_block_clear_fn): Likewise.
22383 (emit_block_move_via_libcall): Likewise.
22384 (set_storage_via_libcall): Add default parameter value.
22385 * libfuncs.h (enum libfunc_index): Remove obsolete values.
22386 (abort_libfunc): Delete.
22387 (memcpy_libfunc): Likewise.
22388 (memmove_libfunc): Likewise.
22389 (memcmp_libfunc): Likewise.
22390 (memset_libfunc): Likewise.
22391 (setbits_libfunc): Likewise.
22392 (setjmp_libfunc): Likewise.
22393 (longjmp_libfunc): Likewise.
22394 (profile_function_entry_libfunc): Likewise.
22395 (profile_function_exit_libfunc): Likewise.
22396 (gcov_flush_libfunc): Likewise.
22397 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
22398 and DECL_VISIBILITY on the declaration.
22399 (init_optabs): Do not initialize obsolete libfuncs.
22400 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
22401 * tree-core.h (ECF_RET1): Define.
22402 (ECF_TM_PURE): Adjust.
22403 (ECF_TM_BUILTIN): Likewise.
22404 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
22405 (build_common_builtin_nodes): Initialize abort builtin.
22406 Add ECF_RET1 on memcpy, memmove and memset builtins.
22407 Pass final flags for alloca and alloca_with_align builtins.
22408 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
22409 obsolete builtins.
22410 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
22411 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
22412 set_storage_via_libcall and call emit_block_copy_via_libcall.
22413
22414 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
22415
22416 * config/i386/i386.md (*call_got_x32): Change operand 0 to
22417 DImode before it is passed to ix86_output_call_operand.
22418 (*call_value_got_x32): Ditto for operand 1.
22419
22420 2016-05-12 Jiong Wang <jiong.wang@arm.com>
22421
22422 PR rtl-optimization/70904
22423 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
22424 reload for wide mode.
22425
22426 2016-05-12 Marek Polacek <polacek@redhat.com>
22427
22428 PR c/70756
22429 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
22430 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
22431 * langhooks.h (incomplete_type_error): Likewise.
22432 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
22433 parameter, pass it down to incomplete_type_error.
22434 * tree.h (size_in_bytes): New inline overload.
22435 (size_in_bytes_loc): Renamed from size_in_bytes.
22436
22437 2016-05-12 Richard Biener <rguenther@suse.de>
22438
22439 PR tree-optimization/71059
22440 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
22441 nary before looking up or entering the expression into the VN
22442 hashes.
22443 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
22444 Make sure to re-use NARYs without result as inserted by
22445 phi-translation.
22446
22447 2016-05-12 Richard Biener <rguenther@suse.de>
22448
22449 PR tree-optimization/71062
22450 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
22451 field.
22452 * tree-ssa-structalias.c (set_uids_in_ptset): Set
22453 vars_contains_restrict if the var is a restrict tag.
22454 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
22455 do not disambiguate pointers against it.
22456 (dump_points_to_solution): Re-structure and adjust for new
22457 vars_contains_restrict flag.
22458 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
22459
22460 2016-05-12 Martin Liska <mliska@suse.cz>
22461
22462 * doc/invoke.texi: Explain connection between
22463 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
22464
22465 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
22466
22467 PR tree-optimization/71006
22468 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
22469 consider COND_EXPR as a mask producer.
22470
22471 2016-05-12 Marek Polacek <polacek@redhat.com>
22472
22473 PR driver/71063
22474 * opts.c (common_handle_option): Detect missing argument for --help^.
22475
22476 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22477
22478 PR target/70830
22479 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
22480 when popping the PC and within an interrupt handler routine.
22481 Add missing tab to output of "ldmfd".
22482 (output_return_instruction): Output LDMFD with SP update rather
22483 than POP when returning from interrupt handler.
22484
22485 2016-05-12 Jakub Jelinek <jakub@redhat.com>
22486
22487 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
22488 TARGET_64BIT && TARGET_AVX512DQ.
22489 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
22490 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
22491 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
22492 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
22493 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
22494 (*vec_extractv4si_zext): Add avx512dq alternative.
22495 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
22496 use v instead of x constraint in other alternatives where possible.
22497
22498 * config/i386/sse.md (sse2_loadld): Use v instead of x
22499 constraint in alternatives 0,1,4.
22500
22501 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
22502 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
22503 v constraints instead of x and <pinsr_evex_isa> isa attribute.
22504
22505 PR target/71019
22506 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
22507 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
22508 is not emitted unless TARGET_AVX512BW.
22509 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
22510 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
22511 for the result operand.
22512
22513 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
22514 constraint instead of x in avx alternatives. Use maybe_evex instead
22515 of vex prefix.
22516
22517 * config/i386/constraints.md (Yv): New constraint.
22518 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
22519 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
22520 * config/i386/i386.md (avx512fvecmode): New mode attr.
22521 (*pushtf): Use v constraint instead of x.
22522 (*movtf_internal): Likewise. For TARGET_AVX512VL and
22523 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
22524 (*absneg<mode>2): Use Yv constraint instead of x constraint.
22525 (*absnegtf2_sse): Likewise.
22526 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
22527 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
22528 avx512f alternatives.
22529 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
22530
22531 2016-05-12 Richard Biener <rguenther@suse.de>
22532
22533 PR tree-optimization/71060
22534 * tree-data-ref.c (initialize_data_dependence_relation): Do not
22535 require exact match of DR_BASE_OBJECT but only matching address and
22536 type.
22537
22538 2016-05-12 Richard Biener <rguenther@suse.de>
22539
22540 PR tree-optimization/70986
22541 * cfganal.c: Include cfgloop.h.
22542 (dfs_find_deadend): Prefer to take edges exiting loops.
22543
22544 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22545
22546 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
22547 compile and run time.
22548
22549 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
22550
22551 PR c/43651
22552 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
22553
22554 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
22555
22556 * config/i386/i386.c (legitimize_pic_address): Use
22557 copy_to_suggested_reg instead of gen_movsi.
22558
22559 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
22560
22561 * config/rs6000/predicates.md (quad_memory_operand): Move most of
22562 the code into quad_address_p and call it to share code with
22563 vsx_quad_dform_memory_operand.
22564 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
22565 d-form support.
22566 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
22567 bit instead of being a separate word. Split -mpower9-dform into
22568 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
22569 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
22570 for the register class supporting 128-bit quad word memory offsets.
22571 (mode_supports_vsx_dform_quad): Helper function to return if the
22572 register class uses quad word memory offsets.
22573 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
22574 (rs6000_debug_reg_global): Always print if we are using LRA or not.
22575 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
22576 instructions are enabled, set up the appropriate addr_masks for
22577 128-bit types.
22578 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
22579 -mpower9-dform-scalar, instead of -mpower9-dform.
22580 (rs6000_option_override_internal): Split -mpower9-dform into two
22581 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
22582 -mpower9-dform switch sets or clears both. If we are not using
22583 the LRA register allocator, do not enable -mpower9-dform-vector by
22584 default. If we are using LRA, enable -mpower9-dform-vector and
22585 -mvsx-timode if it is appropriate. Issue a warning if either
22586 -mpower9-dform-vector or -mvsx-timode are explicitly used without
22587 enabling LRA.
22588 (quad_address_offset_p): New helper function to return if the
22589 offset is legal for quad word memory instructions.
22590 (quad_address_p): New function to determin if GPR or vector
22591 register quad word memory addresses are legal.
22592 (mem_operand_gpr): Validate quad word address offsets.
22593 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
22594 d-form (register + offset) instructions.
22595 (offsettable_ok_by_alignment): Likewise.
22596 (rs6000_legitimate_offset_address_p): Likewise.
22597 (legitimate_lo_sum_address_p): Likewise.
22598 (rs6000_legitimize_address): Likewise.
22599 (rs6000_legitimize_reload_address): Add more debug statements for
22600 -mdebug=addr.
22601 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
22602 d-form instructions.
22603 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
22604 d-form instructions. Distinguish different cases in debug
22605 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
22606 d-form instructions.
22607 (rs6000_preferred_reload_class): Likewise.
22608 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
22609 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
22610 of the ISA 2.06 indexed memory instructions.
22611 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
22612 use them to save/restore the saved vector registers instead of
22613 using Altivec instructions.
22614 (rs6000_emit_epilogue): Likewise.
22615 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
22616 (rs6000_opt_masks): Split -mpower9-dform into
22617 -mpower9-dform-scalar and -mpower9-dform-vector.
22618 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
22619 was not selected.
22620 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
22621 ISA 3.0 vector indexed memory instructions, and fold the code into
22622 the normal mov<mode> patterns.
22623 (p9_vecstore_<mode>): Likewise.
22624 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
22625 instructions.
22626 (vsx_movti_64bit): Likewise.
22627 (vsx_movti_32bit): Likewise.
22628 * config/rs6000/constraints.md (wO constraint): New constraint for
22629 ISA 3.0 vector d-form support.
22630 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
22631 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
22632 include -mpower9-dform-vector until we switch over to LRA.
22633 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
22634 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
22635 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
22636 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
22637 for -mpower9-dform and -mlra.
22638 * doc/md.texi (wO constraint): Document wO constraint.
22639
22640 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
22641
22642 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
22643 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
22644 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
22645 Move handling of non-insn arguments inline into the sole user:
22646 (output_trans_func): ...here.
22647 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
22648 in emitted function prototype.
22649 (output_internal_insn_latency_func): Ditto. Simplify.
22650 (output_internal_maximal_insn_latency_func): Ditto. Delete
22651 always-unused argument.
22652 (output_insn_latency_func): Ditto.
22653 (output_maximal_insn_latency_func): Ditto.
22654
22655 2016-05-11 Richard Biener <rguenther@suse.de>
22656
22657 PR tree-optimization/71055
22658 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
22659 sth with precision not equal to access size verify we don't chop
22660 off bits.
22661
22662 2016-05-11 Richard Biener <rguenther@suse.de>
22663
22664 PR debug/71057
22665 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
22666 (dwarf2out_finish): Move retry_incomplete_types call ...
22667 (dwarf2out_early_finish): ... here.
22668
22669 2016-05-11 Richard Biener <rguenther@suse.de>
22670
22671 PR middle-end/71002
22672 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
22673 if the langhook insists on it.
22674 * fold-const.c (make_bit_field_ref): Add arg for the original
22675 reference and preserve its alias-set.
22676 (decode_field_reference): Take exp by reference and adjust it
22677 to the original memory reference.
22678 (optimize_bit_field_compare): Adjust callers.
22679 (fold_truth_andor_1): Likewise.
22680 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
22681
22682 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
22683
22684 PR middle-end/70807
22685 * cfgrtl.h (delete_insn_and_edges): Now return bool.
22686 * cfgrtl.c (delete_insn_and_edges): Likewise.
22687 * config/i386/i386.c (convert_scalars_to_vector): Remove
22688 redundant code.
22689 * cse.c (cse_insn): Compute cse_cfg_altered.
22690 (delete_trivially_dead_insns): Likewise.
22691 (cse_cc_succs): Likewise.
22692 (rest_of_handle_cse): Free dominance info if required.
22693 (rest_of_handle_cse2): Likewise.
22694 (rest_of_handle_cse_after_global_opts): Likewise.
22695
22696 2016-05-11 Alan Modra <amodra@gmail.com>
22697
22698 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
22699 abi_v4_pass_in_fpr): New functions.
22700 (rs6000_function_arg_boundary): Exclude complex IBM long double
22701 from 64-bit alignment when ABI_V4.
22702 (rs6000_function_arg, rs6000_function_arg_advance_1,
22703 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
22704
22705 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
22706
22707 PR rtl-optimization/71028
22708 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
22709 jump with just a return in the fallthrough block if the branch
22710 block contains just a return as well.
22711
22712 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
22713
22714 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
22715 * match.pd ((X & Y) ^ Y): ... this.
22716 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
22717 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
22718
22719 2016-05-10 David Malcolm <dmalcolm@redhat.com>
22720
22721 * read-md.c (require_char_ws): New function.
22722 (read_string): Simplify using require_char_ws.
22723 (handle_constants): Likewise.
22724 (handle_enum): Likewise.
22725 (handle_file): Likewise.
22726 * read-md.h (require_char_ws): New declaration.
22727 * read-rtl.c (read_conditions): Simplify using require_char_ws.
22728 (read_mapping): Likewise.
22729 (read_rtx_code): Likewise.
22730 (read_nested_rtx): Likewise.
22731
22732 2016-05-10 James Norris <jnorris@codesourcery.com>
22733
22734 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
22735 if offloading is enabled and -fopenacc or -fopenmp is specified.
22736 (CRTOFFLOADEND): Likewise.
22737 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
22738 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
22739
22740 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
22741
22742 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
22743 gotoff_operand code paths. Use copy_to_suggested_regs and
22744 expand_simple_binop where appropriate. Cleanup.
22745
22746 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
22747
22748 PR target/70799
22749 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
22750 integer constants.
22751 (dimode_scalar_chain::vector_const_cost): New.
22752 (dimode_scalar_chain::compute_convert_gain): Handle constants.
22753 (dimode_scalar_chain::convert_op): Likewise.
22754 (dimode_scalar_chain::convert_insn): Likewise.
22755
22756 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
22757
22758 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
22759 unary operation, not a binary one.
22760
22761 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
22762
22763 PR middle-end/70877
22764 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
22765 calls with type casted fndecl.
22766
22767 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
22768
22769 PR tree-optimization/70786
22770 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
22771 * calls.c (initialize_argument_information): Bind bounds
22772 with corresponding args passed by reference.
22773
22774 2016-05-10 Jakub Jelinek <jakub@redhat.com>
22775
22776 PR target/70927
22777 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
22778 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
22779 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
22780 accordingly.
22781
22782 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22783
22784 PR target/70963
22785 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
22786 code for a zero scale factor.
22787 (vsx_xvcvdpuxds_scale): Likewise.
22788
22789 2016-05-10 David Malcolm <dmalcolm@redhat.com>
22790
22791 * diagnostic-show-locus.c (layout::layout): Call show_ruler
22792 if show_ruler_p was set on the context.
22793 (layout::show_ruler): New method.
22794 * diagnostic.h (struct diagnostic_context): Add field
22795 "show_ruler_p".
22796
22797 2016-05-10 Richard Biener <rguenther@suse.de>
22798
22799 PR tree-optimization/71039
22800 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
22801 (chk_uses): New function.
22802 (propagate_with_phi): Verify we can safely replicate the lhs of an
22803 aggregate assignment on all incoming edges.
22804
22805 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
22806
22807 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
22808 Forward declare.
22809 (rx_atomic_sequence): New class.
22810 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
22811 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
22812 non-inline.
22813 (rx_atomic_sequence::rx_atomic_sequence,
22814 rx_atomic_sequence::~rx_atomic_sequence): New functions.
22815 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
22816 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
22817 CTRLREG_INTB): New constants.
22818 (FETCHOP): New code iterator.
22819 (fethcop_name, fetchop_name2): New iterator code attributes.
22820 (QIHI): New mode iterator.
22821 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
22822 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
22823 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
22824
22825 2016-05-10 Martin Liska <mliska@suse.cz>
22826
22827 * tree-inline.c (remap_dependence_clique): Do not remap
22828 debugging statements.
22829
22830 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22831
22832 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
22833 ("*fixuns_truncdfdi2_z13")
22834 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
22835 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
22836 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
22837
22838 2016-05-10 Richard Biener <rguenther@suse.de>
22839
22840 PR tree-optimization/70497
22841 PR tree-optimization/28367
22842 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
22843 split out from ...
22844 (visit_reference_op_load): ... here.
22845 (vn_reference_lookup_3): Use it to handle subreg-like accesses
22846 with simplified BIT_FIELD_REFs.
22847 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
22848 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
22849 correctly.
22850
22851 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
22852
22853 * dwarf2out.c (add_abstract_origin_attribute): Adjust
22854 documentation comment. For BLOCK nodes, add a
22855 DW_AT_abstract_origin attribute that points to the DIE generated
22856 for the origin BLOCK.
22857 (gen_lexical_block_die): Call add_abstract_origin_attribute for
22858 blocks from inlined functions.
22859
22860 2016-05-10 Alan Modra <amodra@gmail.com>
22861
22862 PR target/70947
22863 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
22864 regrename modifying insns saving lr before __morestack call.
22865 * config/rs6000/rs6000.md (split_stack_return): Similarly for
22866 insns restoring lr after __morestack call.
22867
22868 2016-05-09 Jakub Jelinek <jakub@redhat.com>
22869
22870 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
22871 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
22872 expanders.
22873 * config/i386/sse.md (vec_interleave_high<mode>,
22874 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
22875 <avx512>_vpermt2var<mode>3_maskz): Likewise.
22876
22877 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
22878
22879 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
22880 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
22881 parallel reassociation for power8 and forward.
22882
22883 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
22884
22885 * config/i386/i386.md (absneg splitters with general regs): Use
22886 general_reg_operand predicate.
22887 (btsq peephole2): Use x86_64_immediate_operand to check if new
22888 value is suitable for immediate operand. Generate emitted insn
22889 using RTL expressions.
22890 (btcq peephole2): Ditto.
22891 (btrq peephole2): Ditto. Generate correct immediate operand
22892 for AND masking.
22893
22894 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
22895
22896 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
22897 bitpos.
22898
22899 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
22900
22901 * tree-affine.c (wide_int_constant_multiple_p): Add missing
22902 pointer dereference.
22903
22904 2016-05-09 Richard Biener <rguenther@suse.de>
22905
22906 PR tree-optimization/70985
22907 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
22908 op0 isn't a gimple register.
22909
22910 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
22911
22912 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
22913 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
22914 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
22915 (i6400_fpu_mult): New cpu units.
22916 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
22917 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
22918 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
22919 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
22920 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
22921 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
22922 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
22923 (i6400_msa_long_float4, i6400_msa_long_float5)
22924 (i6400_msa_long_float8, i6400_msa_fdiv_df)
22925 (i6400_msa_fdiv_sf): New reservations.
22926 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
22927 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
22928 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
22929 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
22930 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
22931 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
22932 (msa_short_cmp, msa_short_float2, msa_short_logic3)
22933 (msa_short_store4, msa_long_load, msa_short_store)
22934 (msa_long_logic, msa_long_float2, msa_long_float4)
22935 (msa_long_float5, msa_long_float8, msa_long_mult)
22936 (msa_long_fdiv, msa_long_div): New reservations.
22937
22938 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
22939 Sameera Deshpande <sameera.deshpande@imgtec.com>
22940 Matthew Fortune <matthew.fortune@imgtec.com>
22941 Graham Stott <graham.stott@imgtec.com>
22942 Chao-ying Fu <chao-ying.fu@imgtec.com>
22943
22944 * config.gcc: Add MSA header file for mips*-*-* target.
22945 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
22946 (Ubv8i, Urv8): New constraints.
22947 * config/mips/mips-ftypes.def: Add function types for MSA
22948 builtins.
22949 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
22950 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
22951 * config/mips/mips-msa.md: New file.
22952 * config/mips/mips-protos.h
22953 (mips_split_128bit_const_insns): New prototype.
22954 (mips_msa_idiv_insns): Likewise.
22955 (mips_split_128bit_move): Likewise.
22956 (mips_split_128bit_move_p): Likewise.
22957 (mips_split_msa_copy_d): Likewise.
22958 (mips_split_msa_insert_d): Likewise.
22959 (mips_split_msa_fill_d): Likewise.
22960 (mips_expand_msa_branch): Likewise.
22961 (mips_const_vector_same_val_p): Likewise.
22962 (mips_const_vector_same_bytes_p): Likewise.
22963 (mips_const_vector_same_int_p): Likewise.
22964 (mips_const_vector_shuffle_set_p): Likewise.
22965 (mips_const_vector_bitimm_set_p): Likewise.
22966 (mips_const_vector_bitimm_clr_p): Likewise.
22967 (mips_msa_vec_parallel_const_half): Likewise.
22968 (mips_msa_output_division): Likewise.
22969 (mips_ldst_scaled_shift): Likewise.
22970 (mips_expand_vec_cond_expr): Likewise.
22971 * config/mips/mips.c (enum mips_builtin_type): Add
22972 MIPS_BUILTIN_MSA_TEST_BRANCH.
22973 (mips_gen_const_int_vector_shuffle): New prototype.
22974 (mips_const_vector_bitimm_set_p): New function.
22975 (mips_const_vector_bitimm_clr_p): Likewise.
22976 (mips_const_vector_same_val_p): Likewise.
22977 (mips_const_vector_same_bytes_p): Likewise.
22978 (mips_const_vector_same_int_p): Likewise.
22979 (mips_const_vector_shuffle_set_p): Likewise.
22980 (mips_symbol_insns): Forbid loading symbols via immediate for
22981 MSA.
22982 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
22983 stores.
22984 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
22985 MSA.
22986 (mips_lx_address_p): Add support load indexed address for MSA.
22987 (mips_address_insns): Add calculation of instructions needed for
22988 stores and loads for MSA.
22989 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
22990 CONST_VECTOR for MSA and let it fall through.
22991 (mips_ldst_scaled_shift): New function.
22992 (mips_subword_at_byte): Likewise.
22993 (mips_msa_idiv_insns): Likewise.
22994 (mips_legitimize_move): Validate MSA moves.
22995 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
22996 calculation of costs for MSA division.
22997 (mips_split_move_p): Check if MSA moves need splitting.
22998 (mips_split_move): Split MSA moves if necessary.
22999 (mips_split_128bit_move_p): New function.
23000 (mips_split_128bit_move): Likewise.
23001 (mips_split_msa_copy_d): Likewise.
23002 (mips_split_msa_insert_d): Likewise.
23003 (mips_split_msa_fill_d): Likewise.
23004 (mips_output_move): Handle MSA moves.
23005 (mips_expand_msa_branch): New function.
23006 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
23007 Reinstate 'y' modifier.
23008 (mips_file_start): Add MSA .gnu_attribute.
23009 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
23010 FPRs.
23011 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
23012 (mips_class_max_nregs): Add register size for MSA supported mode.
23013 (mips_cannot_change_mode_class): Allow conversion between MSA
23014 vector modes and TImode.
23015 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
23016 instruction.
23017 (mips_secondary_reload_class): Force MSA loads/stores via memory.
23018 (mips_preferred_simd_mode): Add preffered modes for MSA.
23019 (mips_vector_mode_supported_p): Add MSA supported modes.
23020 (mips_autovectorize_vector_sizes): New function.
23021 (mips_msa_output_division): Likewise.
23022 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
23023 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
23024 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
23025 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
23026 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
23027 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
23028 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
23029 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
23030 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
23031 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
23032 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
23033 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
23034 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
23035 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
23036 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
23037 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
23038 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
23039 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
23040 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
23041 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
23042 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
23043 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
23044 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
23045 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
23046 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
23047 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
23048 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
23049 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
23050 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
23051 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
23052 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
23053 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
23054 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
23055 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
23056 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
23057 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
23058 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
23059 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
23060 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
23061 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
23062 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
23063 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
23064 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
23065 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
23066 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
23067 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
23068 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
23069 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
23070 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
23071 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
23072 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
23073 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
23074 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
23075 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
23076 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
23077 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
23078 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
23079 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
23080 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
23081 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
23082 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
23083 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
23084 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
23085 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
23086 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
23087 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
23088 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
23089 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
23090 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
23091 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
23092 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
23093 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
23094 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
23095 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
23096 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
23097 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
23098 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
23099 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
23100 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
23101 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
23102 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
23103 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
23104 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
23105 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
23106 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
23107 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
23108 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
23109 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
23110 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
23111 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
23112 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
23113 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
23114 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
23115 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
23116 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
23117 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
23118 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
23119 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
23120 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
23121 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
23122 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
23123 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
23124 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
23125 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
23126 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
23127 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
23128 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
23129 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
23130 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
23131 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
23132 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
23133 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
23134 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
23135 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
23136 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
23137 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
23138 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
23139 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
23140 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
23141 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
23142 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
23143 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
23144 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
23145 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
23146 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
23147 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
23148 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
23149 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
23150 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
23151 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
23152 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
23153 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
23154 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
23155 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
23156 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
23157 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
23158 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
23159 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
23160 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
23161 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
23162 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
23163 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
23164 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
23165 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
23166 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
23167 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
23168 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
23169 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
23170 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
23171 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
23172 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
23173 move_v builtins.
23174 (mips_get_builtin_decl_index): New array.
23175 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
23176 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
23177 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
23178 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
23179 (mips_init_builtins): Initialize mips_get_builtin_decl_index
23180 array.
23181 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
23182 hook.
23183 (mips_expand_builtin_insn): Prepare operands for
23184 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
23185 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
23186 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
23187 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
23188 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
23189 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
23190 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
23191 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
23192 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
23193 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
23194 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
23195 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
23196 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
23197 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
23198 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
23199 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
23200 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
23201 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
23202 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
23203 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
23204 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
23205 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
23206 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
23207 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
23208 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
23209 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
23210 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
23211 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
23212 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
23213 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
23214 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
23215 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
23216 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
23217 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
23218 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
23219 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
23220 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
23221 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
23222 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
23223 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
23224 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
23225 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
23226 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
23227 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
23228 These are set implicitly and an error is reported if overridden.
23229 (mips_expand_builtin_msa_test_branch): New function.
23230 (mips_expand_msa_shuffle): Likewise.
23231 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
23232 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
23233 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
23234 (mips_expand_vec_unpack): Add support for MSA.
23235 (mips_expand_vector_init): Likewise.
23236 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
23237 instead of const0_rtx.
23238 (mips_msa_vec_parallel_const_half): New function.
23239 (mips_gen_const_int_vector): Likewise.
23240 (mips_gen_const_int_vector_shuffle): Likewise.
23241 (mips_expand_msa_cmp): Likewise.
23242 (mips_expand_vec_cond_expr): Likewise.
23243 * config/mips/mips.h
23244 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
23245 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
23246 specified.
23247 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
23248 (ISA_HAS_MSA): New macro.
23249 (UNITS_PER_MSA_REG): Likewise.
23250 (BITS_PER_MSA_REG): Likewise.
23251 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
23252 (MSA_REG_FIRST): New macro.
23253 (MSA_REG_LAST): Likewise.
23254 (MSA_REG_NUM): Likewise.
23255 (MSA_REG_P): Likewise.
23256 (MSA_REG_RTX_P): Likewise.
23257 (MSA_SUPPORTED_MODE_P): Likewise.
23258 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
23259 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
23260 * config/mips/mips.md: Include mips-msa.md.
23261 (alu_type): Add simd_add.
23262 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
23263 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
23264 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
23265 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
23266 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
23267 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
23268 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
23269 simd_move, simd_load, simd_store. Choose "multi" for moves
23270 for "qword_mode".
23271 (qword_mode): New attribute.
23272 (insn_count): Add instruction count for quad moves.
23273 Increase the count for MIPS SIMD division.
23274 (UNITMODE): Add UNITMODEs for vector types.
23275 (addsub): New code iterator.
23276 * config/mips/mips.opt (mmsa): New option.
23277 * config/mips/msa.h: New file.
23278 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
23279 specified.
23280 * config/mips/mti-linux.h: Likewise.
23281 * config/mips/predicates.md
23282 (const_msa_branch_operand): New constraint.
23283 (const_uimm3_operand): Likewise.
23284 (const_uimm4_operand): Likewise.
23285 (const_uimm5_operand): Likewise.
23286 (const_uimm8_operand): Likewise.
23287 (const_imm5_operand): Likewise.
23288 (aq10b_operand): Likewise.
23289 (aq10h_operand): Likewise.
23290 (aq10w_operand): Likewise.
23291 (aq10d_operand): Likewise.
23292 (const_m1_operand): Likewise.
23293 (reg_or_m1_operand): Likewise.
23294 (const_exp_2_operand): Likewise.
23295 (const_exp_4_operand): Likewise.
23296 (const_exp_8_operand): Likewise.
23297 (const_exp_16_operand): Likewise.
23298 (const_vector_same_val_operand): Likewise.
23299 (const_vector_same_simm5_operand): Likewise.
23300 (const_vector_same_uimm5_operand): Likewise.
23301 (const_vector_same_uimm6_operand): Likewise.
23302 (const_vector_same_uimm8_operand): Likewise.
23303 (par_const_vector_shf_set_operand): Likewise.
23304 (reg_or_vector_same_val_operand): Likewise.
23305 (reg_or_vector_same_simm5_operand): Likewise.
23306 (reg_or_vector_same_uimm6_operand): Likewise.
23307 * doc/extend.texi (MIPS SIMD Architecture Functions): New
23308 section.
23309 * doc/invoke.texi (-mmsa): Document new option.
23310
23311 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23312
23313 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
23314 * configure: Regenerate.
23315 * config.in: Regenerate.
23316 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
23317 on -fvtable-verify.
23318 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
23319 (ENDFILE_VTV_SPEC): Define.
23320
23321 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
23322
23323 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
23324 registers in all interrupt handlers if necessary.
23325 (rl78_option_override): Add warning.
23326 (MUST_SAVE_MDUC_REGISTERS): New macro.
23327 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
23328 * config/rl78/rl78.c (check_mduc_usage): New function.
23329 (mduc_regs): New structure to hold MDUC register data.
23330 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
23331 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
23332 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
23333 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
23334 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
23335 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
23336
23337 2016-05-09 Bin Cheng <bin.cheng@arm.com>
23338
23339 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
23340 (tree-ssa-loop-niter.h): Ditto.
23341 (idx_within_array_bound, ref_within_array_bound): New functions.
23342 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
23343 Factor out check on writable base object to ...
23344 (base_object_writable): ... here.
23345
23346 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23347
23348 * config/arm/arm.md (probe_stack): Add modes to set source
23349 and destination.
23350
23351 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
23352
23353 * regrename.c (base_reg_class_for_rename): New static function.
23354 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
23355
23356 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
23357
23358 * cgraph.c (thunk_adjust): Export.
23359 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
23360 * cgraphunit.c (thunk_adjust): Export.
23361 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
23362 thunks.
23363 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
23364 inlinable.
23365 * tree-inline.c (expand_call_inline): Expand thunks inline.
23366
23367 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
23368
23369 PR target/70998
23370 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
23371 (*sse2_vd_cvtss2sd): Ditto.
23372 * config/i386/i386.md
23373 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
23374 Generate *sse2_vd_cvtsd2ss pattern.
23375 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
23376 Generate *sse2_vd_cvtss2sd pattern.
23377
23378 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
23379
23380 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
23381 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
23382 users.
23383
23384 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
23385
23386 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
23387 * config/sh/sh.c: Define and declare variables on first use throughout
23388 the file.
23389 (current_function_interrupt): Change to bool type.
23390 (frame_insn): Rename to emit_frame_insn and update users.
23391 (push_regs): Use bool for 'interrupt_handler' argument.
23392 (save_schedule_s): Remove.
23393 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
23394 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
23395 targetm.asm_out.unaligned_op.di.
23396 (gen_far_branch): Remove redundant forward declaration.
23397 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
23398 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
23399 (sh_set_return_address, sh_function_ok_for_sibcall,
23400 scavenge_reg): Update comments.
23401 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
23402 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
23403 (sh_attr_renesas_p): Remove unnecessary parentheses.
23404 (branch_dest): Simplify.
23405 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
23406 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
23407 (CUMULATIVE_ARGS): Change macro to typedef.
23408 (current_function_interrupt): Change to bool type.
23409 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
23410 Surround with __cplusplus ifdef.
23411 (sh_compare_op0, sh_compare_op1): Remove.
23412 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
23413
23414 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
23415
23416 * config/arm/arm.md (arch): Add neon.
23417 (arch_enabled): Return yes for arch neon when TARGET_NEON.
23418 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
23419 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
23420 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
23421 attributes for alt renumbering. Mark alt 3 as non-predicable.
23422 (thumb2_movdf_vfp): Likewise.
23423
23424 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
23425
23426 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
23427 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
23428 (*andqi_1): Add preferred_for_speed attribute to disparage
23429 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
23430 (*<code>qi_1): Ditto.
23431 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
23432 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
23433 (*ashlqi3_1): Ditto.
23434 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
23435 Add preferred_for_size attribute to disparage alternative 0 and
23436 preferred_for_speed attribute to disparage alternative 1 for
23437 TARGET_PARTIAL_REG_STALL targets.
23438
23439 2016-05-07 Tom de Vries <tom@codesourcery.com>
23440
23441 PR tree-optimization/70956
23442 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
23443 def.
23444
23445 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
23446
23447 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
23448 * config/sh/sh.c (sh_cbranch_distance): Implement it.
23449 * config/sh/sh.md (branch_zero): Remove define_attr.
23450 (define_delay): Disable delay slot if branch distance is one insn.
23451
23452 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
23453
23454 * config/i386/i386.md (LEAMODE): New mode attribute.
23455 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
23456 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
23457 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
23458 operand 2 predicate.
23459 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
23460 (*lea<mode>_general_3): Ditto.
23461 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
23462
23463 2016-05-06 Jakub Jelinek <jakub@redhat.com>
23464
23465 * genmddump.c (main): Convert argv from char ** to const char **.
23466
23467 2016-05-06 David Malcolm <dmalcolm@redhat.com>
23468
23469 * coretypes.h (OVERRIDE): New macro.
23470 (FINAL): New macro.
23471
23472 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
23473
23474 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
23475 allow coalescing if the types are compatible.
23476
23477 2016-05-06 David Malcolm <dmalcolm@redhat.com>
23478
23479 * pass_manager.h (pass_manager::register_pass_name): New method.
23480 (pass_manager::get_pass_by_name): New method.
23481 (pass_manager::create_pass_tab): New method.
23482 (pass_manager::m_name_to_pass_map): New field.
23483 * passes.c (name_to_pass_map): Delete global in favor of field
23484 "m_name_to_pass_map" of pass_manager.
23485 (register_pass_name): Rename from a function to...
23486 (pass_manager::register_pass_name): ...this method, updating
23487 for renaming of global "name_to_pass_map" to field
23488 "m_name_to_pass_map".
23489 (create_pass_tab): Rename from a function to...
23490 (pass_manager::create_pass_tab): ...this method, updating
23491 for renaming of global "name_to_pass_map" to field.
23492 (get_pass_by_name): Rename from a function to...
23493 (pass_manager::get_pass_by_name): ...this method.
23494 (enable_disable_pass): Convert use of get_pass_by_name to
23495 a method call, locating the pass_manager singleton.
23496
23497 2016-05-06 David Malcolm <dmalcolm@redhat.com>
23498
23499 * genattr-common.c (main): Convert argv from char ** to const char **.
23500 * genattr.c (main): Likewise.
23501 * genattrtab.c (main): Likewise.
23502 * genautomata.c (initiate_automaton_gen): Likewise.
23503 (main): Likewise.
23504 * gencodes.c (main): Likewise.
23505 * genconditions.c (main): Likewise.
23506 * genconfig.c (main): Likewise.
23507 * genconstants.c (main): Likewise.
23508 * genemit.c (main): Likewise.
23509 * genenums.c (main): Likewise.
23510 * genextract.c (main): Likewise.
23511 * genflags.c (main): Likewise.
23512 * genmddeps.c (main): Likewise.
23513 * genopinit.c (main): Likewise.
23514 * genoutput.c (main): Likewise.
23515 * genpeep.c (main): Likewise.
23516 * genpreds.c (main): Likewise.
23517 * genrecog.c (main): Likewise.
23518 * gensupport.c (init_rtx_reader_args_cb): Likewise.
23519 (init_rtx_reader_args): Likewise.
23520 * gensupport.h (init_rtx_reader_args_cb): Likewise.
23521 (init_rtx_reader_args): Likewise.
23522 * gentarget-def.c (main): Likewise.
23523 * read-md.c (read_md_files): Likewise.
23524 * read-md.h (read_md_files): Likewise.
23525
23526 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
23527
23528 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
23529 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
23530 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
23531 Remove unused predicate.
23532 (register_and_not_fp_reg_operand): Ditto.
23533
23534 2016-05-06 Martin Liska <mliska@suse.cz>
23535
23536 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
23537 instead of vec as the vector is local to the function.
23538
23539 2016-05-06 Jakub Jelinek <jakub@redhat.com>
23540
23541 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
23542 avx512bw alternative.
23543
23544 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
23545 before the ashr<mode>3 pattern.
23546
23547 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
23548 v instead of x in vex or maybe_vex alternatives, use
23549 maybe_evex instead of vex in prefix.
23550
23551 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
23552 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
23553 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
23554 in vex or maybe_vex alternatives, use maybe_evex instead of vex
23555 in prefix.
23556
23557 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
23558 v instead of x in vex or maybe_vex alternatives, use
23559 maybe_evex instead of vex in prefix.
23560
23561 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
23562 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
23563 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
23564 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
23565 alternatives, use maybe_evex instead of vex in prefix.
23566
23567 * config/i386/sse.md (vec_interleave_lowv4sf,
23568 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
23569 v instead of x in vex or maybe_vex alternatives, use
23570 maybe_evex instead of vex in prefix.
23571
23572 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
23573 v instead of x in vex or maybe_vex alternatives, use
23574 maybe_evex instead of vex in prefix.
23575
23576 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
23577 v constraint instead of x.
23578
23579 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
23580
23581 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
23582 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
23583 equality first.
23584
23585 2016-05-06 Richard Biener <rguenther@suse.de>
23586
23587 PR tree-optimization/70948
23588 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
23589 Properly clobber all fields of va_list for __builtin_va_start.
23590
23591 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
23592
23593 PR debug/70935
23594 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
23595 loop latch destination.
23596
23597 2016-05-06 Martin Liska <mliska@suse.cz>
23598
23599 * tree-ssa-uninit.c: Apply manual changes
23600 to the GNU coding style.
23601 (prune_uninit_phi_opnds): Rename from
23602 prune_uninit_phi_opnds_in_unrealizable_paths.
23603
23604 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
23605
23606 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
23607 mspace): Remove deprecated options.
23608 * doc/invoke.texi (SH options): Remove -mspace.
23609
23610 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
23611
23612 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
23613
23614 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
23615
23616 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
23617 corresponding combine split pattern.
23618
23619 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
23620
23621 PR target/58219
23622 * config/sh/predicates.md (long_displacement_mem_operand): New.
23623 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
23624 Add movi20, movi20s alternatives. Adjust length attribute for
23625 alternatives.
23626 (movsi_ie): Allow for any FPU. Adjust length attribute for
23627 alternatives.
23628 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
23629 attribute for alternatives.
23630 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
23631 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
23632 length attribute for alternatives.
23633
23634 2016-05-06 Richard Biener <rguenther@suse.de>
23635
23636 PR tree-optimization/70960
23637 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
23638
23639 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
23640
23641 PR target/52933
23642 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
23643 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
23644
23645 2016-05-06 Marek Polacek <polacek@redhat.com>
23646
23647 PR sanitizer/70875
23648 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
23649
23650 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
23651
23652 PR target/54089
23653 * config/sh/sh.md (*rotcr): Add another variant.
23654
23655 2016-05-06 Richard Biener <rguenther@suse.de>
23656
23657 PR middle-end/70931
23658 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
23659
23660 2016-05-06 Richard Biener <rguenther@suse.de>
23661
23662 PR middle-end/70941
23663 * fold-const.c (split_tree): Always convert to the original type
23664 before negating.
23665
23666 2016-05-06 Richard Biener <rguenther@suse.de>
23667
23668 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
23669 (fwprop_addr): Likewise.
23670
23671 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
23672
23673 PR target/70873
23674 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
23675 New prototype.
23676 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
23677 * config/i386/i386.md (push mem splitter): Use find_constant_src in
23678 the splitter condition.
23679 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
23680 the splitter condition.
23681 (FP float_extend load splitter): Ditto.
23682
23683 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
23684
23685 * config/i386/i386.md (peehole2 patterns): Change true_regnum
23686 to REGNO in all peephole2 patterns.
23687 (post-reload splitters): Change true_regnum to REGNO in
23688 post-reload splitters.
23689 (zero_extend splitters): Use general_reg_operand and
23690 nonimmediate_gr_operand predicates.
23691
23692 2016-05-05 Jakub Jelinek <jakub@redhat.com>
23693
23694 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
23695 v constraint instead of x.
23696
23697 2016-05-05 Alan Modra <amodra@gmail.com>
23698
23699 PR target/68662
23700 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
23701 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
23702 TARGET_NO_FP_IN_TOC for -mrelocatable.
23703 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
23704 TARGET_RELOCATABLE test.
23705 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
23706 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
23707 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
23708 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
23709 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
23710 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
23711 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
23712 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
23713 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
23714 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
23715 Likewise.
23716 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
23717 (rs6000_stack_info): Likewise.
23718 (rs6000_elf_asm_out_constructor): Likewise.
23719 (rs6000_elf_asm_out_destructor): Likewise.
23720 (rs6000_elf_declare_function_name): Likewise.
23721 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
23722 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
23723 Don't define.
23724
23725 2016-05-05 Alan Modra <amodra@gmail.com>
23726
23727 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
23728
23729 2016-05-05 Alan Modra <amodra@gmail.com>
23730
23731 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
23732 out-of-line gpr restore for one or two regs if that would add
23733 a save of lr.
23734
23735 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
23736
23737 PR target/70873
23738 * config/i386/i386.md
23739 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
23740 Change to post-epilogue_completed late splitter. Use sse_reg_operand
23741 as operand 0 predicate.
23742 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
23743 Ditto.
23744 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
23745 Ditto. Emit the pattern using RTX.
23746
23747 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
23748 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
23749 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
23750 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
23751 Ditto.
23752 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
23753 sse_reg_operand as operand 0 predicate.
23754
23755 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
23756 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
23757 instead of gen_rtx_REG.
23758 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
23759 Ditto.
23760
23761 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
23762
23763 * function.c (emit_use_return_register_into_block): Delete.
23764 (gen_return_pattern): Delete.
23765 (emit_return_into_block): Delete.
23766 (active_insn_between): Delete.
23767 (convert_jumps_to_returns): Delete.
23768 (emit_return_for_exit): Delete.
23769 (thread_prologue_and_epilogue_insns): Delete all code dealing with
23770 simple_return for shrink-wrapped blocks.
23771 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
23772 end of blocks that need one.
23773 (get_unconverted_simple_return): Delete.
23774 (convert_to_simple_return): Delete.
23775 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
23776 (convert_to_simple_return): Ditto.
23777
23778 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
23779
23780 * cfgcleanup.c (bb_is_just_return): New function.
23781 (try_optimize_cfg): Simplify jumps to return, branches to return,
23782 and branches around return.
23783
23784 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
23785
23786 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
23787 branch to a return.
23788
23789 2016-05-04 Jakub Jelinek <jakub@redhat.com>
23790
23791 PR c++/70906
23792 PR c++/70933
23793 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
23794 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
23795 assert flags & OEP_HASH_CHECK, instead of asserting it
23796 never happens. Handle TARGET_EXPR.
23797 * fold-const.c (operand_equal_p): For hash verification,
23798 or in OEP_HASH_CHECK into flags.
23799
23800 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
23801
23802 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
23803 comment.
23804 (compute_samebase_partition_bases): Fix typo.
23805
23806 2016-05-04 Jakub Jelinek <jakub@redhat.com>
23807
23808 * config/i386/sse.md (vec_interleave_highv8sf,
23809 vec_interleave_lowv8sf, vec_interleave_highv4df,
23810 vec_interleave_lowv4df): Remove constraints from expanders.
23811
23812 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
23813
23814 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
23815
23816 * tree-inline.c (expand_call_inline): Fix path dealing with
23817 making lhs of call statement undefined.
23818
23819 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
23820
23821 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
23822 Check availability on NODE, too.
23823 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
23824 (cgraph_node::call_for_symbol_and_aliases): Likewise.
23825 (varpool_node::call_for_symbol_and_aliase): Likewise.
23826 * ipa-pure-const.c (add_new_function): Analyze all bodies.
23827 (propagate_pure_const): Propagate across interposable functions, too.
23828 (skip_function_for_local_pure_const): Do not skip interposable bodies
23829 with aliases.
23830 (pass_local_pure_const::execute): Update.
23831
23832 2016-05-04 Marek Polacek <polacek@redhat.com>
23833
23834 * doc/invoke.texi: Document -Wdangling-else.
23835
23836 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
23837
23838 * config.gcc: Error out when conflicting multilib is detected. Do not
23839 loop over multilibs since no combination is legal.
23840
23841 2016-05-04 Alan Modra <amodra@gmail.com>
23842
23843 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
23844 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
23845 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
23846 Align .toc.
23847
23848 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
23849
23850 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
23851 Clean up p5600 comments.
23852
23853 2016-05-04 Richard Biener <rguenther@suse.de>
23854
23855 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
23856 constructor simplifications.
23857 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
23858
23859 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
23860
23861 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
23862 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
23863 result.set_rtx is null instead of aborting.
23864 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
23865 Always enable.
23866 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
23867 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
23868 *mov<mode>_store_postinc): New patterns.
23869
23870 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
23871
23872 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
23873 as commutative. Check both conversions are NOP.
23874 ((A & B) OP (C & B)): Remove.
23875
23876 2016-05-04 Alan Modra <amodra@gmail.com>
23877
23878 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
23879
23880 2016-05-04 Alan Modra <amodra@gmail.com>
23881
23882 PR target/70866
23883 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
23884 when cr2,3,4 are all fixed regs.
23885
23886 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
23887
23888 PR rtl-optimization/57193
23889 * opts.c (default_options_table): Revert OPT_frename_registers change.
23890 * doc/invoke.texi (-frename-registers, -O2): Likewise.
23891
23892 2016-05-03 Martin Sebor <msebor@redhat.com>
23893
23894 PR c++/66561
23895 * builtins.c (fold_builtin_FILE): New function.
23896 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
23897 (fold_builtin_0): Call them.
23898 * gimplify.c (gimplify_call_expr): Remove the handling of
23899 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
23900
23901 PR c++/66561
23902 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
23903 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
23904 constants.
23905
23906 PR c++/66639
23907 * doc/extend.texi (Function Names as Strings): Update __func__,
23908 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
23909 constants.
23910
23911 2016-05-03 Jakub Jelinek <jakub@redhat.com>
23912 Richard Biener <rguenther@suse.de>
23913
23914 PR tree-optimization/70916
23915 * tree-if-conv.c: Include cfganal.h.
23916 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
23917 and remove_fake_exit_edges around the optimization pass.
23918
23919 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
23920
23921 * cgraph.c (symbol_table::create_edge): Set inline_failed.
23922 (cgraph_edge::make_direct): Likewise.
23923 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
23924 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
23925 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
23926 (CIF_THUNK): New code.
23927 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
23928 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
23929 (compute_inline_parameters): Set inline_failed for thunks.
23930 (inline_analyze_function): Cleanup.
23931 * ipa-inline.c (can_inline_edge_p): Do not deal with
23932 call_stmt_cannot_inline_p.
23933 (can_early_inline_edge_p): Likewise.
23934 (early_inliner): Initialize inline_failed.
23935 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
23936
23937 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
23938
23939 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
23940 from nonimm_ssenomem_operand.
23941 (nonimm_ssenomem_operand): New predicate.
23942 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
23943 as operand 0 predicate.
23944 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
23945 Disable unsupported alternatives using "enabled" attribute.
23946 Use register_ssemem_operand as operand 0 predicate.
23947 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
23948
23949 2016-05-03 Marek Polacek <polacek@redhat.com>
23950
23951 PR c/70859
23952 * input.c (expansion_point_location): New function.
23953 * input.h (expansion_point_location): Declare.
23954
23955 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
23956
23957 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
23958 occurence with frame_offset_ ones.
23959
23960 2016-05-03 Alan Modra <amodra@gmail.com>
23961
23962 PR rtl-optimization/70890
23963 * ira.c (combine_and_move_insns): When moving def_insn, remove
23964 equivs on use_insn.
23965
23966 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
23967
23968 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
23969 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
23970 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
23971 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
23972
23973 2016-05-03 Alan Modra <amodra@gmail.com>
23974
23975 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
23976 for SAVE_MULTIPLE/STORE_MULTIPLE.
23977
23978 2016-05-03 Jakub Jelinek <jakub@redhat.com>
23979
23980 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
23981 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
23982
23983 2016-05-03 Richard Biener <rguenther@suse.de>
23984
23985 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
23986 default true.
23987 (gimplify_arg): Likewise.
23988 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
23989 re-writing the result to a decl if required.
23990 (internal_get_tmp_var): Add allow_ssa parameter
23991 and override into_ssa with it.
23992 (get_formal_tmp_var): Adjust.
23993 (get_initialized_tmp_var): Add allow_ssa parameter.
23994 (gimplify_arg): Add allow_ssa parameter and avoid generating
23995 SSA names for the result false.
23996 (gimplify_call_expr): If the call may return twice do not
23997 gimplify parameters into SSA.
23998 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
23999 (gimplify_modify_expr): Adjust assert. For noreturn calls
24000 with a SSA name LHS adjust its def.
24001 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
24002 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
24003 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
24004 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
24005 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
24006 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
24007 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
24008 (optimize_target_teams): Do not allow SSA names for clause operands.
24009 (gimplify_expr): Likewise for where we mark the result addressable.
24010 * passes.def (pass_init_datastructures): Remove.
24011 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
24012 (rewrite_stmt): Likewise.
24013 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
24014 (replace_locals_op): Replace SSA names.
24015 (copy_gimple_seq_and_replace_locals): Init src_cfun.
24016 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
24017 * cgraph.c (release_function_body): Free CFG annotations only
24018 when we have a CFG. Simplify.
24019 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
24020 force_gimple_operand instead of get_initialized_tmp_var.
24021 * tree-pass.h (make_pass_init_datastructures): Remove.
24022 * tree-ssa.c (execute_init_datastructures): Remove.
24023 (pass_data_init_datastructures): Likewise.
24024 (class pass_init_datastructures): Likewise.
24025 (make_pass_init_datastructures): Likewise.
24026 * omp-low.c (create_omp_child_function): Init SSA data structures.
24027 (grid_expand_target_grid_body): Likewise.
24028 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
24029 name before adding it to names_to_release.
24030 (remove_bb): Always release SSA defs.
24031 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
24032 before dereferencing it.
24033 * cgraphunit.c (init_lowered_empty_function): Always
24034 int SSA data structures.
24035 * tree-ssanames.c (release_defs): Remove assert that we are in
24036 SSA form.
24037 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
24038
24039 2016-05-03 Jakub Jelinek <jakub@redhat.com>
24040 Uros Bizjak <ubizjak@gmail.com>
24041
24042 PR rtl-optimization/70467
24043 * config/i386/predicates.md (x86_64_hilo_int_operand,
24044 x86_64_hilo_general_operand): New predicates.
24045 * config/i386/constraints.md (Wd): New constraint.
24046 * config/i386/i386.md (mode attr di): Use Wd instead of e.
24047 (general_hilo_operand): New mode attr.
24048 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
24049 instead of <general_operand>.
24050 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
24051 x86_64_hilo_general_operand instead of <general_operand>.
24052
24053 2016-05-03 Jakub Jelinek <jakub@redhat.com>
24054
24055 PR tree-optimization/70916
24056 * tree-if-conv.c (constant_or_ssa_name): Removed.
24057 (fold_build_cond_expr): Use is_gimple_val instead of
24058 constant_or_ssa_name.
24059
24060 PR tree-optimization/70916
24061 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
24062 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
24063
24064 PR target/49244
24065 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
24066 (optimize_atomic_bit_test_and): New function.
24067 (pass_fold_builtins::execute): Use it.
24068 * optabs.def (atomic_bit_test_and_set_optab,
24069 atomic_bit_test_and_complement_optab,
24070 atomic_bit_test_and_reset_optab): New optabs.
24071 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
24072 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
24073 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
24074 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
24075 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
24076 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
24077 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
24078 * doc/md.texi (atomic_bit_test_and_set@var{mode},
24079 atomic_bit_test_and_complement@var{mode},
24080 atomic_bit_test_and_reset@var{mode}): Document.
24081 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
24082 atomic_bit_test_and_complement<mode>,
24083 atomic_bit_test_and_reset<mode>): New expanders.
24084 (atomic_bit_test_and_set<mode>_1,
24085 atomic_bit_test_and_complement<mode>_1,
24086 atomic_bit_test_and_reset<mode>_1): New insns.
24087
24088 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
24089
24090 PR rtl-optimization/70687
24091 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
24092 instead of unsigned HOST_WIDE_INT.
24093
24094 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
24095
24096 PR rtl-optimization/44281
24097 * hard-reg-set.h (struct target_hard_regs): New field
24098 x_fixed_nonglobal_reg_set.
24099 (fixed_nonglobal_reg_set): New macro.
24100 * reginfo.c (init_reg_sets_1): Initialize it.
24101 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
24102 of fixed_reg_set.
24103 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
24104
24105 2016-05-03 Bin Cheng <bin.cheng@arm.com>
24106
24107 PR tree-optimization/56541
24108 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
24109 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
24110 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
24111 (any_complicated_phi): new static variable.
24112 (aggressive_if_conv): delete.
24113 (if_convertible_phi_p): support phis with more than two arguments.
24114 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
24115 critical pred edges.
24116 (ifcvt_split_critical_edges): support phis with more than two
24117 arguments by checking new parameter. only split critical edges
24118 if needed.
24119 (tree_if_conversion): handle simd pragma marked loop using new
24120 local variable aggressive_if_conv. check any_complicated_phi.
24121
24122 2016-05-03 Bin Cheng <bin.cheng@arm.com>
24123
24124 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
24125 before using it.
24126
24127 2016-05-03 Bin Cheng <bin.cheng@arm.com>
24128
24129 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
24130 cbase.
24131
24132 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
24133
24134 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
24135 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
24136 define_insn_and_split.
24137 (mulsi3_i): New define_insn_and_split.
24138 (mulsi3_call): Convert to define_insn.
24139 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
24140 Remove constraints.
24141
24142 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
24143
24144 * machmode.h (mode_complex): Add support to give the complex mode
24145 for a given mode.
24146 (GET_MODE_COMPLEX_MODE): Likewise.
24147 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
24148 stored by build_complex_type and gfc_build_complex_type instead of
24149 trying to figure out the appropriate mode based on the size. Raise
24150 an assertion error, if the type was not set.
24151 * genmodes.c (struct mode_data): Add field for the complex type of
24152 the given type.
24153 (blank_mode): Likewise.
24154 (make_complex_modes): Remember the complex mode created in the
24155 base type.
24156 (emit_mode_complex): Write out the mode_complex array to map a
24157 type mode to the complex version.
24158 (emit_insn_modes_c): Likewise.
24159 * tree.c (build_complex_type): Set the complex type to use before
24160 calling layout_type.
24161 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
24162 support for __float128 complex datatypes.
24163 (rs6000_hard_regno_mode_ok): Likewise.
24164 (rs6000_setup_reg_addr_masks): Likewise.
24165 (rs6000_complex_function_value): Likewise.
24166 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
24167 __float128 and __ibm128 complex.
24168 (FLOAT128_IBM_P): Likewise.
24169 (ALTIVEC_ARG_MAX_RETURN): Likewise.
24170 * doc/extend.texi (Additional Floating Types): Document that
24171 -mfloat128 must be used to enable __float128. Document complex
24172 __float128 and __ibm128 support.
24173
24174 2016-05-02 Jakub Jelinek <jakub@redhat.com>
24175
24176 PR target/49244
24177 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
24178 char/short arguments promoted to int because of promote_prototypes.
24179
24180 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
24181
24182 * config/i386/predicates.md (register_ssemem_operand): New predicate.
24183 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
24184 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
24185 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
24186 alternatives using "enabled" attribute. Use register_ssemem_operand
24187 as operand 1 predicate.
24188 (*cmpi<unord>xf_i387): Split XFmode pattern from
24189 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
24190 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
24191 *absneg<mode>2_i387. Disable unsupported alternatives using
24192 "enabled" attribute.
24193 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
24194
24195 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
24196
24197 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
24198 marker.
24199 (oacc_loop_process): Check mask for loop termination.
24200
24201 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
24202
24203 * cif-code.def (CIF_THUNK): Add.
24204 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
24205 accidental change.
24206
24207 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
24208
24209 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
24210 (dump_inline_summary): Dump it.
24211 (fp_expression_p): New predicate.
24212 (estimate_function_body_sizes): Use it.
24213 (inline_merge_summary): Merge fp_expressions.
24214 (inline_read_section): Read fp_expressions.
24215 (inline_write_summary): Write fp_expressions.
24216 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
24217 codegen boundary if either caller or callee is !fp_expressions.
24218 * ipa-inline.h (inline_summary): Add fp_expressions.
24219 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
24220 to fp_expressions be sure the fp generation flags are updated.
24221
24222 2016-05-02 Jakub Jelinek <jakub@redhat.com>
24223
24224 PR rtl-optimization/70467
24225 * cse.c (cse_insn): Handle no-op MEM moves after folding.
24226
24227 PR rtl-optimization/70467
24228 * ipa-pure-const.c (check_call): Handle internal calls even in
24229 ipa mode like in local mode.
24230
24231 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
24232
24233 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
24234
24235 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
24236
24237 * match.pd (X u< X, X u> X): New transformations.
24238
24239 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
24240
24241 * flag-types.h (enum warn_strict_overflow_code): Move ...
24242 * coretypes.h: ... here.
24243 * fold-const.h (fold_overflow_warning): Declare.
24244 * fold-const.c (fold_overflow_warning): Make non-static.
24245 (fold_comparison): Move the transformation of X +- C1 CMP C2
24246 into X CMP C2 -+ C1 ...
24247 * match.pd: ... here.
24248 * gimple-fold.c (fold_stmt_1): Protect with
24249 fold_defer_overflow_warnings.
24250
24251 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
24252
24253 * omp-low.c (struct oacc_loop): Add 'inner' field.
24254 (new_oacc_loop_raw): Initialize it to zero.
24255 (oacc_loop_fixed_partitions): Initialize it.
24256 (oacc_loop_auto_partitions): Partition outermost loop to outermost
24257 available partitioning.
24258
24259 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
24260
24261 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
24262 register_operand.
24263 (umulsidi3): Likewise.
24264 (indirect_jump): Fix jump instruction assembly patterns.
24265
24266 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
24267
24268 PR target/70860
24269 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
24270 (nvptx_function_value): Assert non-NULL cfun.
24271
24272 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
24273
24274 PR rtl-optimization/70886
24275 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
24276
24277 * cselib.h (rtx_equal_for_cselib_1): Declare.
24278 (rtx_equal_for_cselib_p: New inline function.
24279 * cselib.c (rtx_equal_for_cselib_p): Delete.
24280 (rtx_equal_for_cselib_1): Make public.
24281
24282 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
24283
24284 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
24285 (register_mixssei387nonimm_operand): Remove predicate.
24286 * config/i386/i386.md (*fop_<mode>_comm): Merge from
24287 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
24288 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
24289 for TARGET_MIX_SSE_I387 alternatives.
24290 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
24291 Disable unsupported alternatives using "enabled" attribute. Use
24292 nonimm_ssenomem_operand as operand 1 predicate. Also check
24293 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
24294
24295 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
24296
24297 * tree.c (cst_and_fits_in_hwi): Simplify.
24298
24299 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
24300
24301 * tree.h (wi::to_wide): New function.
24302 * expr.c (expand_expr_real_1): Use wi::to_wide.
24303 * fold-const.c (int_const_binop_1): Likewise.
24304 (extract_muldiv_1): Likewise.
24305
24306 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
24307
24308 * wide-int.h: Update offset_int and widest_int documentation.
24309 (WI_SIGNED_SHIFT_RESULT): New macro.
24310 (wi::binary_shift): Define signed_shift_result_type for
24311 shifts on offset_int- and widest_int-like types.
24312 (generic_wide_int): Support <<= and >>= if << and >> are supported.
24313 * tree.h (int_bit_position): Use shift operators instead of wi::
24314 shifts.
24315 * alias.c (adjust_offset_for_component_ref): Likewise.
24316 * expr.c (get_inner_reference): Likewise.
24317 * fold-const.c (fold_comparison): Likewise.
24318 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
24319 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
24320 * tree-dfa.c (get_ref_base_and_extent): Likewise.
24321 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
24322 (stmt_kills_ref_p): Likewise.
24323 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
24324 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
24325 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
24326 (ao_ref_init_from_vn_reference): Likewise.
24327
24328 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
24329
24330 * wide-int.h: Update offset_int and widest_int documentation.
24331 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
24332 (wi::binary_traits): Allow ordered comparisons between offset_int and
24333 offset_int, between widest_int and widest_int, and between either
24334 of these types and basic C types.
24335 (operator <, <=, >, >=): Define for the same combinations.
24336 * tree.h (tree_int_cst_lt): Use comparison operators instead
24337 of wi:: comparisons.
24338 (tree_int_cst_le): Likewise.
24339 * gimple-fold.c (fold_array_ctor_reference): Likewise.
24340 (fold_nonarray_ctor_reference): Likewise.
24341 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
24342 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
24343 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
24344 * tree-sra.c (completely_scalarize): Likewise.
24345 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
24346 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
24347 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
24348 (check_for_binary_op_overflow): Likewise.
24349 (search_for_addr_array): Likewise.
24350 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
24351
24352 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
24353
24354 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
24355 (arc_save_restore): Likewise.
24356 (arc_dwarf_register_span): Likewise.
24357 (arc_output_pic_addr_const): Initialize suffix variable.
24358
24359 2016-05-02 Martin Liska <mliska@suse.cz>
24360
24361 * symbol-summary.h (function_summary::function_summary):
24362 Remove checking assert for all cgraph nodes.
24363 (function_summary::get): Check summary_uid.
24364 (symtab_insertion): Check summary_uid.
24365
24366 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
24367
24368 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
24369 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
24370 bmaskn instruction.
24371 (arc_dwarf_register_span): Remove enum keyword.
24372 (compact_memory_operand_p): New function.
24373 * config/arc/arc.h (reg_class): Add code density register classes.
24374 (REG_CLASS_NAMES): Likewise.
24375 (REG_CLASS_CONTENTS): Likewise.
24376 * config/arc/arc.md (*movqi_insn): Add code density instructions.
24377 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
24378 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
24379 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
24380 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
24381 constraints.
24382 (h, Rcd, Rsd, Rzd): New register constraints.
24383 (T): Use compact_memory_operand_p function.
24384 * config/arc/predicates.md (compact_load_memory_operand): Remove.
24385
24386 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
24387
24388 * config/sh/sh.md (*negnegt, *movtt): Remove.
24389
24390 2016-05-02 Marek Polacek <polacek@redhat.com>
24391 Tom de Vries <tom@codesourcery.com>
24392
24393 PR tree-optimization/70700
24394 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
24395 bigger than FIRST_REF_NODE.
24396
24397 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
24398
24399 PR target/52898
24400 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
24401 TARGET_CMPEQDI_T.
24402 (prepare_cbranch_operands): Don't use scratch register. Assume that
24403 function is used when pseudos can be created.
24404 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
24405 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
24406 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
24407 define_expand. Allow it only when pseudos can be created.
24408 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
24409
24410 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
24411
24412 * config/i386/constraints.md (BC): Only allow -1 operands.
24413 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
24414 Add "enabled" attribute. Update XI mode attribute calculation.
24415 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
24416 (*movoi_internal_avx): Update XI mode attribute calculation.
24417 (*movti_internal): Ditto.
24418
24419 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
24420
24421 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
24422 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
24423
24424 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
24425
24426 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
24427 statement on instruction code. Remove trailing spaces.
24428 (altivec_expand_stv_builtin): Likewise.
24429
24430 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
24431
24432 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
24433 (TARGET_FPU_DOUBLE): Simplify.
24434 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
24435 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
24436 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
24437 with 'TARGET_FPU_DOUBLE'.
24438 * config/sh/sh.md: Likewise.
24439
24440 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
24441
24442 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
24443 SH_DIV_STR_FOR_SIZE): Remove.
24444 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
24445 SH_DIV_STR_FOR_SIZE): Remove.
24446
24447 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
24448
24449 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
24450 logical_reg_operand): Delete.
24451 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
24452 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
24453 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
24454 match_operand and match_test.
24455 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
24456 variables on their first use. Return bool values.
24457 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
24458 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
24459 arith_reg_operand for input operand. Remove empty constraints.
24460 (xorsi3): Delete.
24461 (*xorsi3_compact): Rename to xorsi3.
24462 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
24463 (*zero_extend<mode>si2_disp_mem): Update comment.
24464 (mov_nop): Delete.
24465
24466 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
24467
24468 * config/sh/t-sh: Remove SH5 support.
24469 * config.gcc: Likewise.
24470 * configure: Likewise.
24471
24472 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24473
24474 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
24475
24476 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
24477
24478 * config/sh/sh.c (register_sh_passes, sh_option_override,
24479 sh_print_operand, prepare_move_operands,
24480 sh_can_follow_jump): Remove TARGET_SH1 checks.
24481 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
24482 PROMOTE_MODE): Likewise.
24483 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
24484 movdi): Likewise.
24485
24486 2016-04-30 Alan Modra <amodra@gmail.com>
24487
24488 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
24489 restoring when fixed_reg_p, but allow out-of-line or stmw save.
24490 Check for user regs later to avoid unnecessary looping over regs.
24491 Merge user reg check with non-saved reg check. Don't force
24492 inline VR restore when static chain used.
24493 (rs6000_frame_related): Omit eh_frame info for user regs when
24494 saving.
24495 (fixed_regs_p): Delete.
24496
24497 2016-04-30 Alan Modra <amodra@gmail.com>
24498
24499 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
24500 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
24501 Update all uses.
24502
24503 2016-04-30 Alan Modra <amodra@gmail.com>
24504
24505 PR target/69645
24506 * config/rs6000/rs6000.c (fixed_reg_p): New function.
24507 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
24508 Update all uses.
24509
24510 2016-04-30 Alan Modra <amodra@gmail.com>
24511
24512 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
24513 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
24514 flag_pic test for Darwin.
24515
24516 2016-04-30 Alan Modra <amodra@gmail.com>
24517
24518 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
24519 throw_calls_crossed.
24520 (REG_FREQ_CALLS_CROSSED): Delete.
24521 (REG_N_THROWING_CALLS_CROSSED): Delete.
24522 * regstat.c (regstat_bb_compute_ri): Don't calculate
24523 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
24524 (dump_reg_info): Don't print call cross frequency.
24525 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
24526 and REG_N_THROWING_CALLS_CROSSED.
24527
24528 2016-04-30 Alan Modra <amodra@gmail.com>
24529
24530 * regs.h (struct reg_info_t): Delete live_length.
24531 (REG_LIVE_LENGTH): Delete macro.
24532 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
24533 local_live, local_processed and local_live_last_luid params.
24534 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
24535 Formatting fixes.
24536 (regstat_compute_ri): Adjust for above. Don't set
24537 REG_LIVE_LENGTH.
24538 (dump_reg_info): Don't print live length.
24539 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
24540 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
24541 Localize loop_depth var.
24542
24543 2016-04-30 Alan Modra <amodra@gmail.com>
24544
24545 * ira.c (enum valid_equiv): New.
24546 (validate_equiv_mem): Return enum.
24547 (update_equiv_mem): Create replacement in more cases.
24548 (add_store_equivs): Update validate_equiv_mem call.
24549
24550 2016-04-30 Alan Modra <amodra@gmail.com>
24551
24552 * ira.c (combine_and_move_insns): Rather than scanning insns,
24553 use DF infrastucture to find use and def insns.
24554
24555 2016-04-30 Alan Modra <amodra@gmail.com>
24556
24557 ira.c (combine_and_move_insns): Move invariant conditions..
24558 (ira.c): ..to here. Call combine_and_move_insns before
24559 add_store_equivs. Call grow_reg_equivs later. Allocate
24560 req_equiv later using max_reg_num() rather than global max_regno.
24561 (contains_replace_regs): Delete.
24562 (add_store_equivs): Remove contains_replace_regs test.
24563
24564 2016-04-30 Alan Modra <amodra@gmail.com>
24565
24566 * ira.c (struct equiv_mem_data): New.
24567 (equiv_mem, equiv_mem_modified): Delete static vars.
24568 (validate_equiv_mem_from_store): Use "data" param to communicate..
24569 (validate_equiv_mem): ..from here.
24570
24571 2016-04-30 Alan Modra <amodra@gmail.com>
24572
24573 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
24574 split out from..
24575 (update_reg_equivs): ..here. Move allocation and freeing of
24576 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
24577 end_alias_analysis to..
24578 (ira): ..here.
24579
24580 2016-04-30 Alan Modra <amodra@gmail.com>
24581
24582 * ira.c (pdx_subregs): Delete.
24583 (struct equivalence): Add pdx_subregs field.
24584 (set_paradoxical_subreg): Remove pdx_subregs param. Update
24585 pdx_subregs access.
24586 (update_equiv_regs): Don't create or free pdx_subregs. Update
24587 pdx_subregs access.
24588
24589 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24590
24591 * config/rs6000/altivec.h: Change definitions of vec_xl and
24592 vec_xst.
24593 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
24594 (LD_ELEMREV_V2DI): New.
24595 (LD_ELEMREV_V4SF): New.
24596 (LD_ELEMREV_V4SI): New.
24597 (LD_ELEMREV_V8HI): New.
24598 (LD_ELEMREV_V16QI): New.
24599 (ST_ELEMREV_V2DF): New.
24600 (ST_ELEMREV_V2DI): New.
24601 (ST_ELEMREV_V4SF): New.
24602 (ST_ELEMREV_V4SI): New.
24603 (ST_ELEMREV_V8HI): New.
24604 (ST_ELEMREV_V16QI): New.
24605 (XL): New.
24606 (XST): New.
24607 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24608 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
24609 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
24610 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
24611 (altivec_expand_builtin): Add handling for
24612 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
24613 (rs6000_invalid_builtin): Add error-checking for
24614 RS6000_BTM_P9_VECTOR.
24615 (altivec_init_builtins): Define builtins used to implement vec_xl
24616 and vec_xst.
24617 (rs6000_builtin_mask_names): Define power9-vector.
24618 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
24619 (RS6000_BTM_P9_VECTOR): Define.
24620 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
24621 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
24622 (vsx_ld_elemrev_v2df): Likewise.
24623 (vsx_ld_elemrev_v4sf): Likewise.
24624 (vsx_ld_elemrev_v4si): Likewise.
24625 (vsx_ld_elemrev_v8hi): Likewise.
24626 (vsx_ld_elemrev_v16qi): Likewise.
24627 (vsx_st_elemrev_v2df): Likewise.
24628 (vsx_st_elemrev_v2di): Likewise.
24629 (vsx_st_elemrev_v4sf): Likewise.
24630 (vsx_st_elemrev_v4si): Likewise.
24631 (vsx_st_elemrev_v8hi): Likewise.
24632 (vsx_st_elemrev_v16qi): Likewise.
24633 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
24634 grammar.
24635
24636 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
24637
24638 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
24639 out into ...
24640 (simplify_control_stmt_condition_1): ... here. Recurse into
24641 BIT_AND_EXPRs and BIT_IOR_EXPRs.
24642
24643 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
24644
24645 PR target/69810
24646 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
24647 (zero_extendqi<mode>2_dot): Revert earlier conversion from
24648 define_insn_and_split to define_insn.
24649 (zero_extendqi<mode>2_dot2): Same.
24650 (extendqi<mode>2_dot): Same.
24651 (extendqi<mode>2_dot2): Same.
24652
24653 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
24654
24655 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
24656 (probe_stack): New expander.
24657 (probe_stack_<mode>): New insn pattern.
24658
24659 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
24660
24661 * config/i386/i386.md
24662 (operations with memory inputs setting flags peephole2):
24663 Remove uneeded REG_P checks. Cleanup pattern generation.
24664
24665 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
24666
24667 * tree-vect-loop.c (vect_transform_loop): Fix
24668 nb_iterations_upper_bound computation for vectorized loop.
24669
24670 2016-04-29 Marek Polacek <polacek@redhat.com>
24671 Jakub Jelinek <jakub@redhat.com>
24672
24673 PR sanitizer/70342
24674 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
24675 TARGET_EXPR_SLOT as a base.
24676
24677 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
24678
24679 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
24680 with 'rCm2' constraints to limit possible immediate size.
24681 (*load_zeroextendqisi_update): Likewise.
24682 (*load_signextendqisi_update): Likewise.
24683 (*loadhi_update): Likewise.
24684 (*load_zeroextendhisi_update): Likewise.
24685 (*load_signextendhisi_update): Likewise.
24686 (*loadsi_update): Likewise.
24687 (*loadsf_update): Likewise.
24688
24689 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
24690
24691 * config/i386/predicates.md (constm1_operand): Fix comparison.
24692
24693 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
24694
24695 * testsuite/gcc.target/arc/ieee_eq.c: New test.
24696
24697 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
24698
24699 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
24700 remaining SH5 related settings.
24701 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
24702 shmedia_prepare_call_address): Delete.
24703 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
24704 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
24705 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
24706 UNSUPPORTED_SH2A): Remove m5 checks.
24707 (sh_divide_strategy_e): Remove SH5 division strategies.
24708 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
24709 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
24710
24711 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
24712
24713 * config/s390/s390.c (s390_rtx_costs): Update documentation.
24714
24715 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24716
24717 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
24718 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
24719 Change lder to ldr.
24720 * config/s390/vector.md ("mov<mode>"): Likewise.
24721
24722 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
24723
24724 * config/s390/constraints.md ("U", "W"): Invoke
24725 s390_mem_constraint with "ZR" and "ZT".
24726 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
24727 addresses when using LRA. Accept also short displacements for S
24728 and T constraints. Do not check for long displacement target for
24729 S and T constraints.
24730 (s390_mem_constraint): Remove handling of U and W constraints.
24731 * config/s390/s390.md (various patterns): Remove the short
24732 displacement constraints (Q and R) if a long displacement
24733 constraint is present. Add longdisp as required CPU capability.
24734 * config/s390/vector.md: Likewise.
24735 * config/s390/vx-builtins.md: Likewise.
24736
24737 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
24738
24739 PR target/60040
24740 * reload1.c (reload): Call finish_spills before
24741 restarting reload loop. Skip select_reload_regs
24742 if update_eliminables_and_spill returns true.
24743
24744 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
24745
24746 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
24747 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
24748 (umulhisi3_imm): Update predicates and constraint letters.
24749 (umulhisi3_reg): Declare instruction as commutative.
24750 * config/arc/constraints.md (J12, J16): New constraints.
24751 * config/arc/predicates.md (short_unsigned_const_operand): New
24752 predicate.
24753 (arc_short_operand): Likewise.
24754 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
24755
24756 2016-04-29 Richard Biener <rguenther@suse.de>
24757
24758 PR tree-optimization/13962
24759 PR tree-optimization/65686
24760 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
24761 * tree-ssa-alias.c (ptrs_compare_unequal): New function
24762 using PTA to compare pointers.
24763 * match.pd: Add pattern for pointer equality compare simplification
24764 using ptrs_compare_unequal.
24765
24766 2016-04-29 Richard Biener <rguenther@suse.de>
24767
24768 * stor-layout.c (layout_type): Do not build a pointer-to-element
24769 type for arrays.
24770
24771 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
24772
24773 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
24774 Use SWI mode iterator. Use general_reg_operand predicate.
24775 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
24776 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
24777 predicates.
24778
24779 2016-04-29 Jakub Jelinek <jakub@redhat.com>
24780
24781 PR middle-end/70843
24782 * fold-const.c (operand_equal_p): Don't verify hash value equality
24783 if arg0 == arg1.
24784 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
24785 and OMP_CLAUSE.
24786
24787 2016-04-28 Jakub Jelinek <jakub@redhat.com>
24788
24789 PR target/70858
24790 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
24791 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
24792 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
24793 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
24794 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
24795
24796 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
24797
24798 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
24799 to info. Don't initialize separate fields to 0. Clean up
24800 formatting a bit.
24801
24802 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
24803
24804 * config/i386/i386.md (peephole2s for operations with memory inputs):
24805 Use SWI mode iterator.
24806 (peephole2s for operations with memory outputs): Ditto.
24807 Do not check for stack checking probe.
24808
24809 (probe_stack): Remove expander.
24810
24811 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
24812 Andrew Burgess <andrew.burgess@embecosm.com>
24813
24814 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
24815 operands as 32-bits.
24816
24817 2016-04-28 Jason Merrill <jason@redhat.com>
24818
24819 * gdbinit.in: Skip line-map.h.
24820
24821 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
24822 Andrew Burgess <andrew.burgess@embecosm.com>
24823
24824 * config/arc/arc.c (arc_conditional_register_usage): Take
24825 TARGET_RRQ_CLASS into account.
24826 (arc_print_operand): Support printing 'p' and 's' operands.
24827 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
24828 as 0.
24829 (TARGET_RRQ_CLASS): Define.
24830 (IS_POWEROF2_OR_0_P): Define.
24831 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
24832 alternatives.
24833 (*tst_movb): New define_insn.
24834 (*tst): Avoid recognition if it could prevent '*tst_movb'
24835 combination; replace c/CnL with c/Chs alternative.
24836 (*tst_bitfield_tst): New define_insn.
24837 (*tst_bitfield_asr): New define_insn.
24838 (*tst_bitfield): New define_insn.
24839 (andsi3_i): Add Rrq variant.
24840 (extzv): New define_expand.
24841 (insv): New define_expand.
24842 (*insv_i): New define_insn.
24843 (*movb): New define_insn.
24844 (*movb_signed): New define_insn.
24845 (*movb_high): New define_insn.
24846 (*movb_high_signed): New define_insn.
24847 (*movb_high_signed + 1): New define_split pattern.
24848 (*mrgb): New define_insn.
24849 (*mrgb + 1): New define_peephole2 pattern.
24850 (*mrgb + 2): New define_peephole2 pattern.
24851 * config/arc/arc.opt (mbitops): New option for nps400, uses
24852 TARGET_NPS_BITOPS_DEFAULT.
24853 * config/arc/constraints.md (q): Make register class conditional.
24854 (Rrq): New register constraint.
24855 (Chs): New constraint.
24856 (Clo): New constraint.
24857 (Chi): New constraint.
24858 (Cbf): New constraint.
24859 (Cbn): New constraint.
24860 (C18): New constraint.
24861 (Cbi): New constraint.
24862
24863 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
24864
24865 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
24866 dst->popcount.
24867 (bitmap_intersection_of_preds): Ditto.
24868 (bitmap_union_of_succs): Ditto.
24869 (bitmap_union_of_preds): Ditto.
24870 * sbitmap.c (do_popcount): Delete.
24871 (BITMAP_DEBUGGING): Delete.
24872 (sbitmap_verify_popcount): Delete.
24873 (sbitmap_alloc): Don't initialize the popcount field.
24874 (sbitmap_alloc_with_popcount): Delete.
24875 (sbitmap_resize): Don't resize the popcount array.
24876 (sbitmap_vector_alloc): Don't initialize the popcount field.
24877 (bitmap_copy): Don't copy the popcount array.
24878 (bitmap_clear): Don't clear the popcount array.
24879 (bitmap_clear): Delete the popcount array handling.
24880 (bitmap_ior_and_compl): Delete the popcount assert.
24881 (bitmap_not): Ditto.
24882 (bitmap_and_compl): Ditto.
24883 (bitmap_and): Delete the popcount array handling.
24884 (bitmap_xor): Ditto.
24885 (bitmap_ior): Ditto.
24886 (bitmap_or_and): Delete the popcount assert.
24887 (bitmap_and_or): Ditto.
24888 (popcount_table): Delete.
24889 (sbitmap_elt_popcount): Delete.
24890 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
24891 (bitmap_set_bit): Delete the popcount assert.
24892 (bitmap_clear_bit): Ditto.
24893 (sbitmap_free): Don't free the popcount array.
24894 (sbitmap_alloc_with_popcount): Delete declaration.
24895 (sbitmap_popcount): Ditto.
24896
24897 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
24898 Andrew Burgess <andrew.burgess@embecosm.com>
24899
24900 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
24901 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
24902 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
24903 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
24904 * config/arc/arc.opt (mcmem): New option.
24905 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
24906 supply length for r/m alternative.
24907 (*extendqisi2_ac): Likewise.
24908 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
24909 r/Uex alternative.
24910 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
24911 (movhi_insn): Likewise.
24912 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
24913 (*zero_extendqihi2_i): Add r/Ucm alternative.
24914 (*zero_extendqisi2_ac): Likewise.
24915 (*zero_extendhisi2_i): Likewise.
24916 * config/arc/constraints.md (Uex): New memory constraint.
24917 (Ucm): New define_constraint.
24918 * config/arc/predicates.md (long_immediate_loadstore_operand):
24919 Return 0 for MEM with cmem_address address.
24920 (cmem_address_0): New predicates.
24921 (cmem_address_1): Likewise.
24922 (cmem_address_2): Likewise.
24923 (cmem_address): Likewise.
24924
24925 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
24926
24927 * config/rs6000/rs6000.c (machine_function): Rename
24928 insn_chain_scanned_p to spe_insn_chain_scanned_p.
24929 (rs6000_stack_info): Adjust.
24930
24931 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
24932 Andrew Burgess <andrew.burgess@embecosm.com>
24933
24934 * config/arc/constraints.md (Usd): Convert to define_constraint.
24935 (Us<): Likewise.
24936 (Us>): Likewise.
24937
24938 2016-04-28 Jakub Jelinek <jakub@redhat.com>
24939
24940 PR target/70821
24941 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
24942 Add new peephole2 where the first insn is *mov<mode>_or instead of
24943 *mov<mode>_internal.
24944
24945 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
24946
24947 * tracer.c (bb_seen): Make static.
24948
24949 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
24950
24951 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
24952 support, setup defaults.
24953 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
24954 * config/arc/arc.c (arc_init): Add NPS400 support.
24955 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
24956 (TARGET_ARC700): NPS400 is also an ARC700.
24957 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
24958
24959 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
24960
24961 PR target/70668
24962 * config/nds32/nds32.md (casesi): Don't access the operands array
24963 out of bounds.
24964
24965 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
24966
24967 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
24968 (or $-1,reg peephole2): Ditto.
24969 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
24970
24971 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
24972
24973 * doc/extend.texi (Common Function Attributes) [optimize]:
24974 Discourage use of the optimize attribute.
24975
24976 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
24977
24978 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
24979 special case builtin.
24980 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
24981 ALTIVEC_BUILTIN_VEC_ADDE.
24982 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
24983 support for ALTIVEC_BUILTIN_VEC_ADDE.
24984 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
24985 for __builtin_vec_adde.
24986
24987 2016-04-28 Jakub Jelinek <jakub@redhat.com>
24988
24989 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
24990 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
24991
24992 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24993
24994 PR testsuite/70595
24995 * doc/sourcebuild.texi (Effective-Target Keywords, Other
24996 attributes): Document cilkplus_runtime.
24997
24998 2016-04-28 Martin Jambor <mjambor@suse.cz>
24999
25000 * tree-cfg.c (verify_expr): Verify that local declarations belong to
25001 this function. Call verify_expr on MEM_REFs and bases of other
25002 handled_components.
25003
25004 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25005
25006 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
25007 for WORD_REGISTER_OPERATIONS to runtime check.
25008
25009 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
25010
25011 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
25012
25013 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
25014
25015 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
25016 big-endian compilation.
25017 * config/arc/arc.md (addf3): Likewise.
25018 (subdf3): Likewise.
25019 (muldf3): Likewise.
25020
25021 2016-04-28 Richard Biener <rguenther@suse.de>
25022
25023 PR tree-optimization/70840
25024 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
25025 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
25026 Mark x * pow(x,c) -> pow(x,c+1) commutative.
25027 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
25028
25029 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25030
25031 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
25032 and explain why in a comment.
25033
25034 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
25035
25036 * config/arc/arc.md (cpu_facility): Add fpx variant.
25037 (subdf3): Prohibit use reverse sub when assist operations option
25038 is enabled.
25039 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
25040 instructions only when FPX is enabled.
25041 * testsuite/gcc.target/arc/trsub.c: New test.
25042
25043 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
25044
25045 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
25046 mult_operator when calculating "type" attribute.
25047 (*fop_<mode>_1_i387): Ditto.
25048 (*fop_xf_1_i387): Ditto.
25049 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
25050 Use std::swap to swap operands. Use RTL expressions to generate
25051 converted pattern.
25052
25053 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
25054 Joern Rennecke <joern.rennecke@embecosm.com>
25055
25056 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
25057 declaration.
25058 (emit_pic_move): Remove.
25059 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
25060 * config/arc/arc.c (emit_pic_move): Removed.
25061 (TARGET_HAVE_TLS): Define.
25062 (arc_conditional_register_usage): Test for arc_tp_regno.
25063 (arc_print_operand, arc_print_operand_address): Handle TLS
25064 unspecs.
25065 (arc_needs_pcl_p): New function.
25066 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
25067 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
25068 (arc_raw_symbolic_reference_mentioned_p): Likewise.
25069 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
25070 (arc_legitimize_tls_address): Likewise.
25071 (DTPOFF_ZERO_SYM): Define.
25072 (arc_legitimize_pic_address): Make it static, handle TLS cases.
25073 (arc_output_pic_addr_const): Print TLS unspecs.
25074 (prepare_pic_move): New function, replaces emit_pic_move.
25075 (arc_legitimate_constant_p): Handle TLS unspecs.
25076 (arc_legitimate_address_p): Likewise.
25077 (arc_rewrite_small_data_p): Use assert for TLS constants.
25078 (prepare_move_operands): Use prepare_pic_move.
25079 (arc_legitimize_address): Legitimize tls addresses.
25080 (arc_epilogue_uses): Check for arc_tp_regno.
25081 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
25082 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
25083 Define.
25084 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
25085 Likewise.
25086 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
25087 %(arc_tls_extra_start_spec).
25088 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
25089 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
25090 (EH_USES): Define.
25091 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
25092 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
25093 (UNSPEC_TLS_OFF): Add.
25094 (R10_REG): Define.
25095 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
25096 (get_thread_pointersi): New patterns.
25097 * config/arc/arc.opt (mtp-regno): New option.
25098 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
25099 (move_dest_operand): Likewise.
25100 * configure: Regenerate.
25101 * configure.ac: Add arc*-*-* case to test for tls.
25102 * doc/invoke.texi (ARC options): Document mtp-regno.
25103
25104 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
25105
25106 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
25107 the new ARC HS SIMD instructions.
25108 (arc_preferred_simd_mode): New function.
25109 (arc_autovectorize_vector_sizes): Likewise.
25110 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
25111 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
25112 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
25113 (arc_init_builtins): Add new SIMD builtin types.
25114 (arc_split_move): Handle 64 bit vector moves.
25115 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
25116 (TARGET_PLUS_QMACW): Define.
25117 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
25118 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
25119 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
25120 (VSUBADD4H): New builtins.
25121 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
25122 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
25123
25124 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
25125 Matthias Klose <doko@debian.org>
25126
25127 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
25128
25129 2016-04-28 Richard Biener <rguenther@suse.de>
25130
25131 PR middle-end/70777
25132 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
25133 canonicalization.
25134
25135 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
25136
25137 * common/config/sh/sh-common.c: Remove SH5 support.
25138 * config/sh/constraints.md: Likewise.
25139 * config/sh/config/sh/elf.h: Likewise.
25140 * config/sh/linux.h: Likewise.
25141 * config/sh/netbsd-elf.h: Likewise.
25142 * config/sh/predicates.md: Likewise.
25143 * config/sh/sh-c.c: Likewise.
25144 * config/sh/sh-protos.h: Likewise.
25145 * config/sh/sh.c: Likewise.
25146 * config/sh/sh.h: Likewise.
25147 * config/sh/sh.md: Likewise.
25148 * config/sh/sh.opt: Likewise.
25149 * config/sh/sync.md: Likewise.
25150 * config/sh/sh64.h: Delete.
25151 * config/sh/shmedia.h: Likewise.
25152 * config/sh/shmedia.md: Likewise.
25153 * config/sh/sshmedia.h: Likewise.
25154 * config/sh/t-netbsd-sh5-64: Likewise.
25155 * config/sh/t-sh64: Likewise.
25156 * config/sh/ushmedia.h: Likewise.
25157
25158 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
25159
25160 * config/i386/i386.md (sign_extend to memory peephole2s): Use
25161 general_reg_operand instead of register_operand predicate.
25162
25163 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
25164
25165 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
25166
25167 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
25168
25169 * match.pd (A - B > A, A + B < A): New transformations.
25170
25171 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
25172
25173 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
25174 which defaults to true. Emit an outer pair of parentheses only if
25175 EMIT_PARENS. When continuing a chain of && or || (or & or |),
25176 don't emit parentheses for the right-hand operand.
25177
25178 2016-04-27 Jeff Law <law@redhat.com>
25179
25180 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
25181
25182 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25183
25184 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
25185 (altivec_lvx_<mode>_internal): Document.
25186 (altivec_lvx_<mode>_2op): New define_insn.
25187 (altivec_lvx_<mode>_1op): Likewise.
25188 (altivec_lvx_<mode>_2op_si): Likewise.
25189 (altivec_lvx_<mode>_1op_si): Likewise.
25190 (altivec_stvx_<mode>): Remove.
25191 (altivec_stvx_<mode>_internal): Document.
25192 (altivec_stvx_<mode>_2op): New define_insn.
25193 (altivec_stvx_<mode>_1op): Likewise.
25194 (altivec_stvx_<mode>_2op_si): Likewise.
25195 (altivec_stvx_<mode>_1op_si): Likewise.
25196 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
25197 Expand vec_ld and vec_st during parsing.
25198 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
25199 changes.
25200 (altivec_expand_stvx_be): Likewise.
25201 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
25202 address-masking behavior in RTL.
25203 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
25204 address-masking behavior in RTL.
25205 (altivec_expand_builtin): Change builtin code arguments for calls
25206 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
25207 (insn_is_swappable_p): Avoid incorrect swap optimization in the
25208 presence of lvx/stvx patterns.
25209 (alignment_with_canonical_addr): New function.
25210 (alignment_mask): Likewise.
25211 (find_alignment_op): Likewise.
25212 (recombine_lvx_pattern): Likewise.
25213 (recombine_stvx_pattern): Likewise.
25214 (recombine_lvx_stvx_patterns): Likewise.
25215 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
25216 stvx patterns from expand.
25217 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
25218 expansions.
25219 (vector_altivec_store_<mode>): Likewise.
25220
25221 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
25222
25223 * config/aarch64/aarch64.md
25224 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
25225 remove the "fp" attributes.
25226 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
25227 add the "simd" attributes.
25228 (*movdf_aarch64): Likewise.
25229 (*movtf_aarch64): Remove the "fp" attributes.
25230 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
25231 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
25232
25233 2016-04-27 David Malcolm <dmalcolm@redhat.com>
25234
25235 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
25236 rtx to rtx_code_label *.
25237 * rtl.h (maybe_set_first_label_num): Likewise.
25238
25239 2016-04-27 David Malcolm <dmalcolm@redhat.com>
25240
25241 * df-core.c (df_add_problem): Make the problem param be const.
25242 (df_remove_problem): Make local "problem" be const.
25243 * df-problems.c (problem_RD): Make const.
25244 (problem_LR): Likewise.
25245 (problem_LIVE): Likewise.
25246 (problem_MIR): Likewise.
25247 (problem_CHAIN): Likewise.
25248 (problem_WORD_LR): Likewise.
25249 (problem_NOTE): Likewise.
25250 (problem_MD): Likewise.
25251 * df-scan.c (problem_SCAN): Likewise.
25252 * df.h (struct df_problem): Make field "dependent_problem" be
25253 const.
25254 (struct dataflow): Likewise for field "problem".
25255 (df_add_problem): Make param const.
25256
25257 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
25258
25259 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
25260 inter-unit moves to/from vector registers are enabled. Do not disable
25261 for TARGET_MMX.
25262
25263 2016-04-27 David Malcolm <dmalcolm@redhat.com>
25264
25265 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
25266 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
25267 #define to...
25268 (enum df_problem_id): ...this new enum.
25269 (struct df_problem): Convert field "id" from "int" to
25270 enum df_problem_id.
25271
25272 2016-04-27 David Malcolm <dmalcolm@redhat.com>
25273
25274 * rtl.def: Update comment for "things in the instruction chain" to
25275 reflect the removal of the leading "i" field for INSN_UID in
25276 r210360. Fix bogus apostrophe.
25277
25278 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
25279
25280 * config/i386/i386.md
25281 (lea arith with mem operand + setcc peephole2): Set operator mode.
25282
25283 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
25284
25285 PR target/70155
25286 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
25287 (dimode_scalar_to_vector_candidate_p): This.
25288 (timode_scalar_to_vector_candidate_p): New function.
25289 (scalar_to_vector_candidate_p): Likewise.
25290 (timode_check_non_convertible_regs): Likewise.
25291 (timode_remove_non_convertible_regs): Likewise.
25292 (remove_non_convertible_regs): Likewise.
25293 (remove_non_convertible_regs): Renamed to ...
25294 (dimode_remove_non_convertible_regs): This.
25295 (scalar_chain::~scalar_chain): Make it virtual.
25296 (scalar_chain::compute_convert_gain): Make it pure virtual.
25297 (scalar_chain::mark_dual_mode_def): Likewise.
25298 (scalar_chain::convert_insn): Likewise.
25299 (scalar_chain::convert_registers): Likewise.
25300 (scalar_chain::add_to_queue): Make it protected.
25301 (scalar_chain::emit_conversion_insns): Likewise.
25302 (scalar_chain::replace_with_subreg): Likewise.
25303 (scalar_chain::replace_with_subreg_in_insn): Likewise.
25304 (scalar_chain::convert_op): Likewise.
25305 (scalar_chain::convert_reg): Likewise.
25306 (scalar_chain::make_vector_copies): Likewise.
25307 (scalar_chain::convert_registers): New pure virtual function.
25308 (class dimode_scalar_chain): New class.
25309 (class timode_scalar_chain): Likewise.
25310 (scalar_chain::mark_dual_mode_def): Renamed to ...
25311 (dimode_scalar_chain::mark_dual_mode_def): This.
25312 (timode_scalar_chain::mark_dual_mode_def): New function.
25313 (timode_scalar_chain::convert_insn): Likewise.
25314 (dimode_scalar_chain::convert_registers): Likewise.
25315 (scalar_chain::compute_convert_gain): Renamed to ...
25316 (dimode_scalar_chain::compute_convert_gain): This.
25317 (scalar_chain::replace_with_subreg): Renamed to ...
25318 (dimode_scalar_chain::replace_with_subreg): This.
25319 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
25320 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
25321 (scalar_chain::make_vector_copies): Renamed to ...
25322 (dimode_scalar_chain::make_vector_copies): This.
25323 (scalar_chain::convert_reg): Renamed to ...
25324 (dimode_scalar_chain::convert_reg ): This.
25325 (scalar_chain::convert_op): Renamed to ...
25326 (dimode_scalar_chain::convert_op): This.
25327 (scalar_chain::convert_insn): Renamed to ...
25328 (dimode_scalar_chain::convert_insn): This.
25329 (scalar_chain::convert): Call convert_registers.
25330 (convert_scalars_to_vector): Change to scalar_chain pointer to
25331 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
25332 in 32-bit mode. Delete scalar_chain pointer. Call
25333 free_dominance_info in 64-bit mode.
25334 (pass_stv::gate): Remove TARGET_64BIT check.
25335 (ix86_option_override): Put the 64-bit STV pass before the CSE
25336 pass.
25337
25338 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
25339
25340 * dwarf2out.h (struct dw_loc_descr_node): Remove the
25341 dw_loc_frame_offset field.
25342 * dwarf2out.c (new_loc_descr): Likewise.
25343 (resolve_args_picking_1): Turn the VISITED hash set into a
25344 FRAME_OFFSET hash map. Use it to associate a frame offset to
25345 visited nodes. Remove uses of the CHECKING_P macro.
25346 (resolve_args_picking): Update call to resolve_args_picking_1.
25347
25348 2016-04-27 Martin Liska <mliska@suse.cz>
25349
25350 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
25351 (free_loop_data): Release vuses of groups.
25352
25353 2016-04-27 Bin Cheng <bin.cheng@arm.com>
25354
25355 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
25356 instead of redundant use_id and boolean have_use_for.
25357 (struct iv_use): Change sub_id into group_id. Remove field next.
25358 Move fields: related_cands, n_map_members, cost_map and selected
25359 to ...
25360 (struct iv_group): ... here. New structure.
25361 (struct iv_common_cand): Use structure declaration directly.
25362 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
25363 (MAX_CONSIDERED_USES): Rename macro to ...
25364 (MAX_CONSIDERED_GROUPS): ... here.
25365 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
25366 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
25367 (dump_uses): Rename to ...
25368 (dump_groups): ... here. Update all uses.
25369 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
25370 (find_induction_variables): Refactor format of dump information.
25371 (record_sub_use): Delete.
25372 (record_use): Update all uses.
25373 (record_group): New function.
25374 (record_group_use, find_interesting_uses_op): Call above functions.
25375 Update all uses.
25376 (find_interesting_uses_cond): Ditto.
25377 (group_compare_offset): New function.
25378 (split_all_small_groups): Rename to ...
25379 (split_small_address_groups_p): ... here. Update all uses.
25380 (split_address_groups): Update all uses.
25381 (find_interesting_uses): Refactor format of dump information.
25382 (add_candidate_1): Update all uses. Remove redundant check on iv,
25383 base and step.
25384 (add_candidate, record_common_cand): Remove redundant assert.
25385 (add_iv_candidate_for_biv): Update use.
25386 (add_iv_candidate_derived_from_uses): Update all uses.
25387 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
25388 (alloc_use_cost_map): Ditto.
25389 (set_use_iv_cost, get_use_iv_cost): Rename to ...
25390 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
25391 (determine_use_iv_cost_generic): Ditto.
25392 (determine_group_iv_cost_generic): Ditto.
25393 (determine_use_iv_cost_address): Ditto.
25394 (determine_group_iv_cost_address): Ditto.
25395 (determine_use_iv_cost_condition): Ditto.
25396 (determine_group_iv_cost_cond): Ditto.
25397 (determine_use_iv_cost): Ditto.
25398 (determine_group_iv_cost): Ditto.
25399 (set_autoinc_for_original_candidates): Update all uses.
25400 (find_iv_candidates): Update all uses. Refactor dump information.
25401 (determine_use_iv_costs): Ditto.
25402 (determine_iv_costs): Ditto.
25403 (iv_ca_cand_for_use): Rename to ...
25404 (iv_ca_cand_for_group): ... here. Update all uses.
25405 (iv_ca_add_use, iv_ca_add_group): Ditto.
25406 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
25407 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
25408 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
25409 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
25410 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
25411 (create_new_iv, adjust_iv_update_pos): Ditto.
25412 (rewrite_use_address): Delete.
25413 (rewrite_use_address_1): Rename to ...
25414 (rewrite_use_address): ... here.
25415 (rewrite_use_compare): Update all uses.
25416 (rewrite_use): Delete.
25417 (rewrite_uses): Rename to ...
25418 (rewrite_groups): ... here. Update all uses.
25419 (remove_unused_ivs, free_loop_data): Update all uses.
25420 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
25421
25422 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25423
25424 * rtlanal.c (nonzero_bits1): Convert preprocessor check
25425 for WORD_REGISTER_OPERATIONS to runtime check.
25426
25427 2016-04-27 Richard Biener <rguenther@suse.de>
25428
25429 PR ipa/70760
25430 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
25431 aggregate_value_p to determine if a function result is
25432 returned by reference.
25433 (ipa_pta_execute): Functions having their address taken are
25434 not automatically nonlocal.
25435
25436 2016-04-27 Jakub Jelinek <jakub@redhat.com>
25437
25438 PR sanitizer/70683
25439 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
25440 * fold-const.c (operand_equal_p): If flag_checking and
25441 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
25442 and if it returns non-zero, assert iterative_hash_expr on both
25443 args is the same.
25444
25445 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
25446
25447 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
25448
25449 2016-04-27 Nick Clifton <nickc@redhat.com>
25450
25451 PR middle-end/49889
25452 * varasm.c (merge_weak): Generate an error if an attempt is made
25453 to convert a non-weak static function into a weak, public function.
25454
25455 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
25456
25457 * params.def (MAX_PARTITION_SIZE): New param.
25458 * doc/invoke.texi: Document lto-max-partition.
25459
25460 2016-04-27 Richard Biener <rguenther@suse.de>
25461
25462 PR ipa/70785
25463 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
25464 function cummulating used_from_other_partition, externally_visible
25465 and force_output from aliases.
25466 (refered_from_nonlocal_var): Likewise.
25467 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
25468 node flags properly.
25469
25470 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
25471
25472 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
25473 (-Wmemset-elt-size): New item.
25474
25475 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
25476
25477 PR ada/70759
25478 * stor-layout.h (internal_reference_types): Delete.
25479 * stor-layout.c (reference_types_internal): Likewise.
25480 (internal_reference_types): Likewise.
25481 (layout_type) <REFERENCE_TYPE>: Adjust.
25482
25483 2016-04-27 Jakub Jelinek <jakub@redhat.com>
25484
25485 PR sanitizer/70683
25486 * tree.h (inchash::add_expr): Add FLAGS argument.
25487 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
25488 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
25489 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
25490 Formatting fix. Adjust recursive calls. For tcc_comparison,
25491 if swap_tree_comparison (code) is smaller than code, hash that
25492 and arguments in the other order. Hash CONVERT_EXPR the same
25493 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
25494 of ADDR_EXPR of decl as the decl itself. Add or remove
25495 OEP_ADDRESS_OF from recursive flags as needed. For
25496 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
25497 operands commutatively and only the third one normally.
25498 For internal CALL_EXPR hash in CALL_EXPR_IFN.
25499
25500 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
25501
25502 * config/rtems.h (LIB_SPEC): Add -latomic.
25503
25504 2016-04-27 Joel Sherrill <joel@rtems.org>
25505
25506 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
25507 xilink.ld and flags not relevant to RTEMS.
25508
25509 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
25510
25511 * toplev.c (backend_init_target): Avoid calling init_reload when using
25512 LRA.
25513
25514 2016-04-26 Jakub Jelinek <jakub@redhat.com>
25515
25516 * reorg.c (try_merge_delay_insns): Declare i and j inside the
25517 for loops rather than one for the whole function.
25518
25519 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
25520
25521 * match.pd (X + CST CMP X): New transformation.
25522
25523 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
25524
25525 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
25526 * fold-const.c (fold_binary_loc): Remove 2 transformations
25527 superseded by match.pd.
25528 * match.pd (x+x -> x*2): Generalize to integers.
25529
25530 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
25531
25532 * config/i386/i386.md (operation on memory peephole): Duplicate an
25533 existing peephole and adapt it to match lea rather than an operation
25534 that clobbers CC.
25535
25536 PR rtl-optimization/57193
25537 * opts.c (default_options_table): Add OPT_frename_registers at -O2
25538 and above.
25539 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
25540
25541 2016-04-26 Bin Cheng <bin.cheng@arm.com>
25542
25543 * tree-if-conv.c (any_pred_load_store): New static variable.
25544 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
25545 any_pred_load_store instead of and_mask_load_store.
25546 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
25547 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
25548 (combine_blocks, tree_if_conversion): Ditto.
25549
25550 2016-04-26 Bin Cheng <bin.cheng@arm.com>
25551
25552 PR tree-optimization/70771
25553 PR tree-optimization/70775
25554 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
25555 virtual PHI nodes. Delete parameter.
25556 (if_convertible_loop_p_1): Delete argument to above function.
25557 (predicate_all_scalar_phis): Delete code handling single-argument
25558 PHIs.
25559 (tree_if_conversion): Mark and update virtual SSA.
25560
25561 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25562
25563 PR target/61821
25564 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
25565 (x86_elf_aligned_common): Rename to ...
25566 (x86_elf_aligned_decl_common): ... this.
25567 Add decl arg. Switch to .lbss for largecomm object. Use
25568 LARGECOMM_SECTION_ASM_OP.
25569 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
25570 renaming.
25571 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
25572 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
25573 Pass new decl arg.
25574 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
25575 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
25576
25577 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25578
25579 PR target/59407
25580 * config/i386/i386.c (SECTION_LARGE): Define.
25581 (x86_64_elf_select_section): Set it for large data/bss sections.
25582 Only clear SECTION_WRITE for .lrodata.
25583 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
25584 data/bss sections.
25585 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
25586 * varasm.c (default_elf_asm_named_section): Grow flagchars.
25587 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
25588 SECTION_MACH_DEP.
25589 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
25590 * doc/tm.texi: Regenerate.
25591
25592 2016-04-26 Jakub Jelinek <jakub@redhat.com>
25593
25594 PR bootstrap/70704
25595 * configure.ac (--enable-checking): Document extra flag, for
25596 non-release builds default to --enable-checking=yes,extra.
25597 If misc checking and extra checking, define CHECKING_P to 2 instead
25598 of 1.
25599 * common.opt (fchecking=): Add.
25600 * doc/invoke.texi (-fchecking=): Document.
25601 * doc/install.texi: Document --enable-checking changes.
25602 * configure: Regenerated.
25603 * config.in: Regenerated.
25604
25605 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
25606
25607 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
25608 attribute instead of which_alternative.
25609 * config/i386/sse.md (*mov<mode>_internal): Ditto.
25610 Use EXT_REX_SSE_REG_P where appropriate.
25611
25612 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
25613
25614 * config/i386/predicates.md (const0_operand): Do not match
25615 const_wide_int code.
25616 (const1_operand): Ditto.
25617
25618 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
25619
25620 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
25621 for SSE constm1 operands and TARGET_AVX512VL.
25622 (*movti_internal): Ditto.
25623 (*mov<mode>_or): Use constm1_operand predicate.
25624 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
25625 for SSE vector_all_ones operands and TARGET_AVX512VL.
25626 * config/i386/predicates.md (constm1_operand): New predicate.
25627 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
25628 emission of constant -1 load.
25629
25630 2016-04-25 Jason Merrill <jason@redhat.com>
25631
25632 * gdbinit.in: Skip is-a.h.
25633
25634 * attribs.c (register_scoped_attributes): Fix logic.
25635 * attribs.h: Declare register_scoped_attributes.
25636
25637 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25638
25639 * config/rs6000/rs6000-builtin.def: Correct pasto error for
25640 stxvd2x and stxvw4x built-in functions.
25641
25642 2016-04-25 DJ Delorie <dj@redhat.com>
25643
25644 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
25645 (ashrhi3): Likewise.
25646 (lshrhi3): Likewise.
25647
25648 2016-04-25 Richard Biener <rguenther@suse.de>
25649
25650 PR tree-optimization/70780
25651 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
25652 wasn't visited yet.
25653 (compute_antic): Mark blocks with abnormal preds as visited as
25654 they have a final empty antic-in solution already.
25655
25656 2016-04-25 Michael Collison <michael.collison@linaro.org>
25657
25658 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
25659
25660 2016-04-25 Michael Collison <michael.collison@linaro.org>
25661
25662 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
25663 mode is VQI to improve mixed mode vectorization.
25664 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
25665 define_insn to match low half of signed vaddw.
25666 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
25667 define_insn to match high half of signed vaddw.
25668 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
25669 define_insn to match low half of unsigned vaddw.
25670 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
25671 define_insn to match high half of unsigned vaddw.
25672 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
25673 (arm_simd_check_vect_par_cnst_half_p): Likewise.
25674 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
25675 for new function.
25676 (arm_simd_check_vect_par_cnst_half_p): Likewise.
25677 * config/arm/predicates.md (vect_par_constant_high): Support
25678 big endian and simplify by calling
25679 arm_simd_check_vect_par_cnst_half
25680 (vect_par_constant_low): Likewise.
25681
25682 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
25683
25684 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
25685 predicate for operand 2.
25686
25687 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
25688 H.J. Lu <hongjiu.lu@intel.com>
25689
25690 * config/i386/i386-protos.h (standard_sse_constant_p): Add
25691 machine_mode argument.
25692 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
25693 constm1_rtx operands. For VOIDmode constants, get mode from
25694 pred_mode. Check mode size if the mode is supported by ABI.
25695 (standard_sse_constant_opcode): Do not use standard_constant_p.
25696 Strictly check ABI support for all-ones operands.
25697 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
25698 immediates. Update calls to standard_sse_constant_p.
25699 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
25700 (ix86_rtx_costs): Ditto.
25701 * config/i386/i386.md (*movxi_internal_avx512f): Use
25702 nonimmediate_or_sse_const_operand instead of vector_move_operand.
25703 Use (v,BC) alternative instead of (v,C). Use register_operand
25704 checks instead of MEM_P.
25705 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
25706 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
25707 isa attribute. Use register_operand checks instead of MEM_P.
25708 (*movti_internal): Use nonimmediate_or_sse_const_operand for
25709 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
25710 alternative and corresponding sse2 isa attribute.
25711 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
25712 to standard_sse_constant_p.
25713 (FP constant splitters): Ditto.
25714 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
25715 (C): Ditto.
25716 * config/i386/predicates.md (constm1_operand): Remove.
25717 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
25718 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
25719 vector_all_ones_operand instead of constm1_operand.
25720
25721 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25722
25723 * print-rtl.c (print_rtx_insn_vec): New function.
25724 * print-rtl.h: New prototype.
25725 * store-motion.c (struct st_expr): Make avail_stores a vector.
25726 (st_expr_entry): Adjust.
25727 (free_st_expr_entry): Likewise.
25728 (print_store_motion_mems): Likewise.
25729 (find_moveable_store): Likewise.
25730 (compute_store_table): Likewise.
25731 (delete_store): Likewise.
25732 (build_store_vectors): Likewise.
25733
25734 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25735
25736 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
25737
25738 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25739
25740 * vec.h (vec_safe_contains): New function.
25741 (vec::contains): Likewise.
25742 (vec::begin): Likewise.
25743 (vec::end): Likewise.
25744
25745 2016-04-23 Jakub Jelinek <jakub@redhat.com>
25746
25747 PR sanitizer/70712
25748 * cfgexpand.c (expand_stack_vars): Fix typo.
25749
25750 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
25751
25752 * system.h (list, map, set, vector): Include conditionally.
25753 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
25754 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
25755 * ipa-icf.c (INCLUDE_LIST): Define.
25756 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
25757 * config/sh/sh.c (INCLUDE_VECTOR): Define.
25758 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
25759 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
25760 * cp/logic.cc (INCLUDE_LIST): Define.
25761 * fortran/trans-common.c (INCLUDE_MAP): Define.
25762
25763 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
25764
25765 * auto-profile.c: Remove <string.h> include.
25766 * ipa-icf-gimple.c: Remove <list> include.
25767 * diagnostic.c: Remove <new> include.
25768 * genmatch.c: Likewise.
25769 * pretty-print.c: Likewise.
25770 * toplev.c: Likewise
25771 * c/c-objc-common.c: Likewise.
25772 * cp/error.c: Likewise.
25773 * fortran/error.c: Likewise.
25774
25775 2016-04-22 Richard Biener <rguenther@suse.de>
25776
25777 * lto-streamer-in.c (input_ssa_names): Do not allocate
25778 GIMPLE_NOP for all SSA names.
25779 * lto-streamer-out.c (output_ssa_names): Do not output
25780 SSA names that should have been released.
25781
25782 2016-04-22 Richard Biener <rguenther@suse.de>
25783
25784 PR tree-optimization/70740
25785 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
25786 VDEF.
25787
25788 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
25789
25790 PR target/70750
25791 * config/i386/predicates.md (call_insn_operand): Replace
25792 sibcall_memory_operand with memory_operand.
25793
25794 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
25795
25796 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
25797 has_single_use() tests.
25798 (register_edge_assert_for_1): Likewise.
25799 (find_assert_locations_1): Check the liveness bitmap instead of
25800 checking has_single_use().
25801
25802 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
25803
25804 PR target/70728
25805 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
25806 Extract AVX-512BW constraint from AVX.
25807
25808 2016-04-21 Richard Biener <rguenther@suse.de>
25809
25810 PR tree-optimization/70725
25811 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
25812 for phi_convertible_by_degenerating_args.
25813 (predicate_all_scalar_phis): Handle single-argument PHIs.
25814
25815 2016-04-21 Richard Biener <rguenther@suse.de>
25816
25817 PR middle-end/70747
25818 * fold-const.c (fold_comparison): Return properly typed
25819 constant boolean.
25820
25821 2016-04-21 Bin Cheng <bin.cheng@arm.com>
25822
25823 PR tree-optimization/70715
25824 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
25825 after expanding BASE using expand_simple_operations.
25826
25827 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
25828
25829 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
25830 New transformations.
25831
25832 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
25833
25834 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
25835
25836 2016-04-20 Jan Hubicka <jh@suse.cz>
25837
25838 * ipa-inline.c (can_inline_edge_p): Pass caller info to
25839 ultiimate_alias_target.
25840 (update_callee_keys): Likewise.
25841 (lookup_recursive_calls): Likewise.
25842 (speculation_useful_p): Likewise.
25843
25844 2016-04-20 Jan Hubicka <jh@suse.cz>
25845
25846 PR ipa/70018
25847 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
25848 (set_nothrow_flag_1): ... this; handle interposition correctly;
25849 recurse on aliases and thunks.
25850 (cgraph_node::set_nothrow_flag): New.
25851 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
25852 functions compiled with non-call exceptions that binds to current
25853 def.
25854 (propagate_nothrow): Be safe WRT interposition.
25855 * cgraph.h (set_nothrow_flag): Update prototype.
25856
25857 2016-04-18 Jan Hubicka <jh@suse.cz>
25858
25859 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
25860 max_loop_iterations_int.
25861 (tree_unswitch_outer_loop): Likewise.
25862
25863 2016-04-20 Bin Cheng <bin.cheng@arm.com>
25864
25865 PR tree-optimization/69489
25866 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
25867 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
25868 Revise dump message.
25869 (if_convertible_bb_p): Remove check on edge count of basic block's
25870 predecessors.
25871
25872 2016-04-20 Bin Cheng <bin.cheng@arm.com>
25873
25874 PR tree-optimization/56625
25875 PR tree-optimization/69489
25876 * tree-data-ref.h (DR_INNERMOST): New macro.
25877 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
25878 hashing struct innermost_loop_behavior.
25879 (ref_DR_map): Remove.
25880 (innermost_DR_map): New map.
25881 (baseref_DR_map): Revise comment.
25882 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
25883 to innermost_DR_map accroding to its innermost loop behavior.
25884 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
25885 to its innermost loop behavior.
25886 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
25887 Add initialization for innermost_DR_map. Record memory reference
25888 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
25889 have innermost loop behavior.
25890 (if_convertible_loop_p): Remove release for ref_DR_map. Release
25891 innermost_DR_map.
25892
25893 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
25894
25895 * config/i386/i386.md (*lea<mode>_general_1): Rename from
25896 *lea_general_1. Use explicit SWI12 mode interator.
25897 (*lea<mode>_general_2): Rename from *lea_general_2.
25898 Use explicit SWI12 mode interator.
25899 (*lea<mode>_general_3): Rename from *lea_general_3.
25900 Use explicit SWI12 mode interator.
25901 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
25902 Use explicit SWI12 mode interator.
25903 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
25904 Use explicit SWI48 mode interator.
25905
25906 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
25907
25908 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
25909 Short-cut unaligned load and store cases. Handle all integer
25910 vector modes.
25911 (ix86_expand_vector_move_misalign): Short-cut unaligned load
25912 and store cases. Call ix86_avx256_split_vector_move_misalign
25913 directly without checking mode class.
25914
25915 2016-04-20 Andrew Pinski <apinski@cavium.com>
25916 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25917
25918 PR target/64971
25919 * config/aarch64/aarch64.md (sibcall): Force call
25920 address to be DImode for ILP32.
25921 (sibcall_value): Likewise.
25922
25923 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
25924
25925 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
25926
25927 2016-04-20 Richard Biener <rguenther@suse.de>
25928
25929 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
25930 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
25931 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
25932 (maybe_push_res_to_seq): Adjust.
25933 * gimple-fold.c (maybe_build_generic_op): Likewise.
25934
25935 2016-04-20 Marek Polacek <polacek@redhat.com>
25936
25937 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
25938 rather than true.
25939
25940 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
25941
25942 * config/i386/sse.md (vec_unpacks_lo_hi): Always
25943 use kmovw to support AVX512F target.
25944
25945 2016-04-20 Bin Cheng <bin.cheng@arm.com>
25946
25947 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
25948
25949 2016-04-20 Marek Polacek <polacek@redhat.com>
25950
25951 PR tree-optimization/70725
25952 * tree-if-conv.c (is_false_predicate): New function.
25953 (predicate_mem_writes): Use it.
25954
25955 2016-04-20 Richard Biener <rguenther@suse.de>
25956
25957 PR tree-optimization/70726
25958 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
25959 shift amounts from a pattern stmt operand.
25960
25961 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25962
25963 PR target/70674
25964 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
25965 stack_restore_from_fpr pattern when restoring r15.
25966 (s390_optimize_prologue): Strip away the memory barrier in the
25967 parallel when trying to get rid of restore insns.
25968 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
25969 definition for loading the stack pointer from an FPR. Compared to
25970 the normal move insn this pattern includes a full memory barrier.
25971
25972 2016-04-19 Jakub Jelinek <jakub@redhat.com>
25973
25974 PR middle-end/70680
25975 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
25976 implicitly linear or lastprivate iterator on the outer context.
25977
25978 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
25979
25980 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
25981 alignment check.
25982 * config/i386/i386.md (ssememalign): Removed.
25983 * config/i386/sse.md: Remove ssememalign attribute from patterns.
25984
25985 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
25986
25987 PR target/69201
25988 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
25989 const short * to __builtin_ia32_loaddquhi512_mask.
25990 (_mm512_maskz_loadu_epi16): Likewise.
25991 (_mm512_mask_storeu_epi16): Pass short * to
25992 __builtin_ia32_storedquhi512_mask.
25993 (_mm512_mask_loadu_epi8): Pass const char * to
25994 __builtin_ia32_loaddquqi512_mask.
25995 (_mm512_maskz_loadu_epi8): Likewise.
25996 (_mm512_mask_storeu_epi8): Pass char * to
25997 __builtin_ia32_storedquqi512_mask.
25998 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
25999 const double * to __builtin_ia32_loadupd512_mask.
26000 (_mm512_mask_loadu_pd): Likewise.
26001 (_mm512_maskz_loadu_pd): Likewise.
26002 (_mm512_storeu_pd): Pass double * to
26003 __builtin_ia32_storeupd512_mask.
26004 (_mm512_mask_storeu_pd): Likewise.
26005 (_mm512_loadu_ps): Pass const float * to
26006 __builtin_ia32_loadups512_mask.
26007 (_mm512_mask_loadu_ps): Likewise.
26008 (_mm512_maskz_loadu_ps): Likewise.
26009 (_mm512_storeu_ps): Pass float * to
26010 __builtin_ia32_storeups512_mask.
26011 (_mm512_mask_storeu_ps): Likewise.
26012 (_mm512_mask_loadu_epi64): Pass const long long * to
26013 __builtin_ia32_loaddqudi512_mask.
26014 (_mm512_maskz_loadu_epi64): Likewise.
26015 (_mm512_mask_storeu_epi64): Pass long long *
26016 to __builtin_ia32_storedqudi512_mask.
26017 (_mm512_loadu_si512): Pass const int * to
26018 __builtin_ia32_loaddqusi512_mask.
26019 (_mm512_mask_loadu_epi32): Likewise.
26020 (_mm512_maskz_loadu_epi32): Likewise.
26021 (_mm512_storeu_si512): Pass int * to
26022 __builtin_ia32_storedqusi512_mask.
26023 (_mm512_mask_storeu_epi32): Likewise.
26024 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
26025 char * to __builtin_ia32_storedquqi256_mask.
26026 (_mm_mask_storeu_epi8): Likewise.
26027 (_mm256_mask_loadu_epi16): Pass const short * to
26028 __builtin_ia32_loaddquhi256_mask.
26029 (_mm256_maskz_loadu_epi16): Likewise.
26030 (_mm_mask_loadu_epi16): Pass const short * to
26031 __builtin_ia32_loaddquhi128_mask.
26032 (_mm_maskz_loadu_epi16): Likewise.
26033 (_mm256_mask_loadu_epi8): Pass const char * to
26034 __builtin_ia32_loaddquqi256_mask.
26035 (_mm256_maskz_loadu_epi8): Likewise.
26036 (_mm_mask_loadu_epi8): Pass const char * to
26037 __builtin_ia32_loaddquqi128_mask.
26038 (_mm_maskz_loadu_epi8): Likewise.
26039 (_mm256_mask_storeu_epi16): Pass short * to.
26040 __builtin_ia32_storedquhi256_mask.
26041 (_mm_mask_storeu_epi16): Pass short * to.
26042 __builtin_ia32_storedquhi128_mask.
26043 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
26044 const double * to __builtin_ia32_loadupd256_mask.
26045 (_mm256_maskz_loadu_pd): Likewise.
26046 (_mm_mask_loadu_pd): Pass onst double * to
26047 __builtin_ia32_loadupd128_mask.
26048 (_mm_maskz_loadu_pd): Likewise.
26049 (_mm256_mask_storeu_pd): Pass double * to
26050 __builtin_ia32_storeupd256_mask.
26051 (_mm_mask_storeu_pd): Pass double * to
26052 __builtin_ia32_storeupd128_mask.
26053 (_mm256_mask_loadu_ps): Pass const float * to
26054 __builtin_ia32_loadups256_mask.
26055 (_mm256_maskz_loadu_ps): Likewise.
26056 (_mm_mask_loadu_ps): Pass const float * to
26057 __builtin_ia32_loadups128_mask.
26058 (_mm_maskz_loadu_ps): Likewise.
26059 (_mm256_mask_storeu_ps): Pass float * to
26060 __builtin_ia32_storeups256_mask.
26061 (_mm_mask_storeu_ps): ass float * to
26062 __builtin_ia32_storeups128_mask.
26063 (_mm256_mask_loadu_epi64): Pass const long long * to
26064 __builtin_ia32_loaddqudi256_mask.
26065 (_mm256_maskz_loadu_epi64): Likewise.
26066 (_mm_mask_loadu_epi64): Pass const long long * to
26067 __builtin_ia32_loaddqudi128_mask.
26068 (_mm_maskz_loadu_epi64): Likewise.
26069 (_mm256_mask_storeu_epi64): Pass long long * to
26070 __builtin_ia32_storedqudi256_mask.
26071 (_mm_mask_storeu_epi64): Pass long long * to
26072 __builtin_ia32_storedqudi128_mask.
26073 (_mm256_mask_loadu_epi32): Pass const int * to
26074 __builtin_ia32_loaddqusi256_mask.
26075 (_mm256_maskz_loadu_epi32): Likewise.
26076 (_mm_mask_loadu_epi32): Pass const int * to
26077 __builtin_ia32_loaddqusi128_mask.
26078 (_mm_maskz_loadu_epi32): Likewise.
26079 (_mm256_mask_storeu_epi32): Pass int * to
26080 __builtin_ia32_storedqusi256_mask.
26081 (_mm_mask_storeu_epi32): Pass int * to
26082 __builtin_ia32_storedqusi128_mask.
26083 * config/i386/i386-builtin-types.def (PCSHORT): New.
26084 (PINT64): Likewise.
26085 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
26086 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
26087 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
26088 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
26089 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
26090 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
26091 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
26092 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
26093 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
26094 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
26095 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
26096 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
26097 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
26098 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
26099 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
26100 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
26101 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
26102 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
26103 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
26104 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
26105 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
26106 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
26107 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
26108 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
26109 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
26110 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
26111 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
26112 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
26113 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
26114 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
26115 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
26116 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
26117 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
26118 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
26119 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
26120 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
26121 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
26122 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
26123 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
26124 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
26125 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
26126 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
26127 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
26128 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
26129 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
26130 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
26131 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
26132 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
26133 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
26134 use UNSPEC_STOREU.
26135 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
26136 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
26137 load nor store.
26138 (ix86_expand_vector_move_misalign): Likewise.
26139 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
26140 to scalar function prototype for unaligned load/store builtins.
26141 (ix86_expand_special_args_builtin): Updated.
26142 * config/i386/sse.md (UNSPEC_LOADU): Removed.
26143 (UNSPEC_STOREU): Likewise.
26144 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
26145 (VI_ULOADSTORE_F_AVX512VL): Likewise.
26146 (ssescalarsize): Handle V4TI, V2TI and V1TI.
26147 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
26148 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
26149 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
26150 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
26151 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
26152 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
26153 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
26154 (<avx512>_storedqu<mode>_mask): Likewise.
26155 (*sse4_2_pcmpestr_unaligned): Likewise.
26156 (*sse4_2_pcmpistr_unaligned): Likewise.
26157 (*mov<mode>_internal): Renamed to ...
26158 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
26159 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
26160 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
26161 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
26162
26163 2016-04-19 Richard Biener <rguenther@suse.de>
26164
26165 PR tree-optimization/70171
26166 * tree-ssa-phiprop.c: Include stor-layout.h.
26167 (phiprop_insert_phi): Handle the aggregate copy case.
26168 (propagate_with_phi): Likewise.
26169
26170 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
26171
26172 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
26173 instead of simplify_gen_subreg (... , 0).
26174 (ix86_delegitimize_address): Ditto.
26175 (ix86_split_divmod): Ditto.
26176 (ix86_split_copysign_const): Ditto.
26177 (ix86_split_copysign_var): Ditto.
26178 (ix86_expand_args_builtin): Ditto.
26179 (ix86_expand_round_builtin): Ditto.
26180 (ix86_expand_special_args_builtin): Ditto.
26181 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
26182 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
26183 (udivmodqi4): Ditto.
26184 (absneg splitters): Ditto.
26185 (*jcc_bt<mode>_1): Ditto.
26186
26187 2016-04-19 Richard Biener <rguenther@suse.de>
26188
26189 PR tree-optimization/70724
26190 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
26191 restoring out from ...
26192 (free_scc_vn): ... here.
26193 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
26194 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
26195 tail merging.
26196 (pass_fre::execute): Restore SSA info.
26197
26198 2016-04-19 Richard Biener <rguenther@suse.de>
26199
26200 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
26201 * gimple-walk.c (walk_gimple_op): Initialize it.
26202 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
26203 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
26204 remapping SSA names of defs.
26205 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
26206 adjustment.
26207
26208 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
26209
26210 PR middle-end/70689
26211 * lra-constraints.c (equiv_substition_p): New.
26212 (process_alt_operands): Use it.
26213 (swap_operands): Swap it.
26214 (curr_insn_transform): Update it.
26215
26216 2016-04-18 Michael Matz <matz@suse.de>
26217
26218 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
26219 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
26220 * tree-core.h (tree_type_common.align): Use bit-field.
26221 (tree_type_common.spare): New.
26222 (tree_decl_common.off_align): Make smaller.
26223 (tree_decl_common.align): Use bit-field.
26224
26225 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
26226 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
26227 (scan_sharing_clauses): Ditto.
26228 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
26229 (omp_finish_file): Ditto.
26230 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
26231 (layout_decl): Ditto.
26232 (relayout_decl): Ditto.
26233 (finalize_record_size): Use SET_TYPE_ALIGN.
26234 (finalize_type_size): Ditto.
26235 (finish_builtin_struct): Ditto.
26236 (layout_type): Ditto.
26237 (initialize_sizetypes): Ditto.
26238 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
26239 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
26240 (lookup_field_for_decl): Use SET_DECL_ALIGN.
26241 (get_chain_field): Ditto.
26242 (get_trampoline_type): Ditto.
26243 (get_nl_goto_field): Ditto.
26244 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
26245 SET_DECL_ALIGN.
26246 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
26247 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
26248 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
26249 (build_qualified_type): Use SET_TYPE_ALIGN.
26250 (build_aligned_type, build_range_type_1): Ditto.
26251 (build_atomic_base): Ditto.
26252 (build_common_tree_nodes): Ditto.
26253 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
26254 (expand_one_stack_var_at): Ditto.
26255 * coverage.c (build_var): Use SET_DECL_ALIGN.
26256 * except.c (init_eh): Ditto.
26257 * function.c (assign_parm_setup_block): Ditto.
26258 * symtab.c (increase_alignment_1): Ditto.
26259 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
26260 * tree-vect-stmts.c (ensure_base_align): Ditto.
26261 * varasm.c (align_variable): Ditto.
26262 (assemble_variable): Ditto.
26263 (build_constant_desc): Ditto.
26264 (output_constant_def_contents): Ditto.
26265
26266 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
26267 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
26268 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
26269 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
26270 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
26271
26272 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
26273
26274 PR target/70708
26275 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
26276 replace %vmovsd with "%vmovq".
26277 (vec_concatv2df): Likewise.
26278
26279 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
26280
26281 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
26282 (*vec_extractv2si_0): Ditto.
26283 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
26284 (zero_extended_scalar_load_operand splitters): Ditto.
26285 (vec_extract splitters): Ditto.
26286 (*vec_extractv4si_0_zext): Ditto.
26287 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
26288 and lowpart_subreg.
26289 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
26290 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
26291 (*sse4_1_extractps): Use lowpart_subreg.
26292 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
26293
26294 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26295
26296 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
26297 gld requirements.
26298 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
26299 Mention Solaris 11 packaging changes.
26300 Update gas and gld requirements.
26301 Remove reference to pre-Solaris 10 bug.
26302 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
26303 systems and bugs.
26304 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
26305 with cc.
26306
26307 2016-04-17 Jan Hubicka <jh@suse.cz>
26308
26309 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
26310 max_loop_iterations_int.
26311
26312 2016-04-18 Richard Biener <rguenther@suse.de>
26313
26314 PR tree-optimization/43434
26315 * tree-ssa-structalias.c (struct vls_data): New.
26316 (visit_loadstore): Handle all pointer-based accesses.
26317 (compute_dependence_clique): Compute a bitmap of restrict tags
26318 assigned bases and pass it to visit_loadstore.
26319
26320 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
26321
26322 PR target/70711
26323 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
26324 armv8.1-a and armv8.1-a+crc.
26325
26326 2016-04-18 Richard Biener <rguenther@suse.de>
26327
26328 PR tree-optimization/70701
26329 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
26330 references after translating through a memcpy.
26331
26332 2016-04-18 Richard Biener <rguenther@suse.de>
26333
26334 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
26335 (compute_antic): ... here. For partial antic use regular
26336 postorder and scrap iteration.
26337 (compute_partial_antic_aux): Remove unused return value.
26338 (init_pre): Do not allocate postorder.
26339 (fini_pre): Do not free postorder.
26340
26341 2016-04-18 Richard Biener <rguenther@suse.de>
26342
26343 PR middle-end/37870
26344 * expmed.c (extract_bit_field_1): Remove broken case
26345 using a wider MODE_INT mode.
26346
26347 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
26348
26349 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
26350 unless compiling with at least GCC-4.8.
26351
26352 2016-04-17 Jan Hubicka <jh@suse.cz>
26353
26354 PR bootstrap/70706
26355 * graphite.c (graphite_finalize): Update call to
26356 tree_estimate_probability.
26357 * predict.h (tree_estimate_probability): Update prototype.
26358
26359 2016-04-17 Jan Hubicka <jh@suse.cz>
26360
26361 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
26362 (tree_estimate_probability): Likewise.
26363 (pass_profile::execute): Update.
26364 (report_predictor_hitrates): New function.
26365 * profile.c (compute_branch_probabilities): Use it.
26366 * predict.h (report_predictor_hitrates): Declare.
26367
26368 2016-04-17 Jan Hubicka <jh@suse.cz>
26369
26370 PR ipa/70018
26371 * cgraph.h (cgraph_node::set_const_flag,
26372 cgraph_node::set_pure_flag): Update prototype to return bool;
26373 update comment.
26374 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
26375 of interposable symbol are interposable, too.
26376 (cgraph_set_const_flag_1): Rename to ...
26377 (set_const_flag_1): ... this one; change to self recursive function
26378 instead of call_for_symbol_thunks_and_aliases. Handle correctly
26379 clearnig the flag in all variants and also virtual thunks of const
26380 functions are pure; track if any change was done.
26381 (cgraph_node::set_const_flag): Update.
26382 (struct set_pure_flag_info): New struct.
26383 (cgraph_set_pure_flag_1): Rename to ...
26384 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
26385 rather than pointer encoded flags; track if any changes was done;
26386 handle correctly clearning flag and setting flag of aliases already
26387 declared const.
26388 (cgraph_node::set_pure_flag): Update.
26389 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
26390
26391 2016-04-17 Tom de Vries <tom@codesourcery.com>
26392
26393 PR other/70433
26394 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
26395 backslash in label.
26396
26397 2016-04-17 Tom de Vries <tom@codesourcery.com>
26398
26399 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
26400 '{}<> ' as escape-for-record.
26401
26402 2016-04-17 Tom de Vries <tom@codesourcery.com>
26403
26404 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
26405 structure.
26406
26407 2016-04-17 Tom de Vries <tom@codesourcery.com>
26408
26409 PR other/70185
26410 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
26411 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
26412 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
26413 * passes.c (finish_optimization_passes): Only call
26414 finish_graph_dump_file if dfi->graph_dump_initialized.
26415 (execute_function_dump, pass_init_dump_file): Use
26416 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
26417
26418 2016-04-17 Tom de Vries <tom@codesourcery.com>
26419
26420 PR tree-optimization/70256
26421 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
26422 (debug_varmap): New function.
26423
26424 2016-04-17 Tom de Vries <tom@codesourcery.com>
26425
26426 PR other/70183
26427 * passes.c (pass_manager::register_pass): Propagate pflags.
26428
26429 2016-04-17 Tom de Vries <tom@codesourcery.com>
26430
26431 PR other/68875
26432 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
26433 * passes.c (pass_manager::pass_manager): Declare and init p_start in
26434 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
26435 check if it's equal to p_start.
26436 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
26437
26438 2016-04-15 Jan Hubicka <jh@suse.cz>
26439
26440 PR ipa/70018
26441 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
26442 function does not bind to current def.
26443 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
26444 handle conservatively calls to functions that does not need to bind
26445 to current def.
26446 (check_call): Update call of worse_state.
26447 (ignore_edge_for_nothrow): Update.
26448 (ignore_edge_for_pure_const): Likewise.
26449 (propagate_pure_const): Update calls to worse_state.
26450 (skip_function_for_local_pure_const): Reformat comments.
26451
26452 2016-04-15 Jan Hubicka <jh@suse.cz>
26453
26454 PR ipa/70018
26455 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
26456 (cgraph_node::function_symbol): Likewise.
26457 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
26458 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
26459 (symtab_node::ultimate_alias_target): Add REF parameter.
26460 (symtab_node::binds_to_current_def_p): Declare.
26461 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
26462 (cgraph_node::function_symbol): Likewise.
26463 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
26464 (cgraph_node::get_availability): Likewise.
26465 (cgraph_edge::binds_to_current_def_p): New inline function.
26466 (varpool_node::get_availability): Add REF parameter.
26467 (varpool_node::ultimate_alias_target): Likewise.
26468 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
26469 (symtab_node::binds_to_current_def_p): Likewise.
26470 * varpool.c (varpool_node::get_availability): Likewise.
26471
26472 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
26473
26474 PR target/70662
26475 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
26476 Fix mode size check.
26477
26478 2016-04-15 Jakub Jelinek <jakub@redhat.com>
26479
26480 * BASE-VER: Set to 7.0.0.
26481
26482 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
26483
26484 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
26485
26486 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26487
26488 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
26489 architecture revisions.
26490
26491 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
26492
26493 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
26494 * config/i386/i386.c (ix86_using_red_zone): No longer static.
26495 * config/i386/i386.md (stack decrement to push peepholes): Guard
26496 with !x86_using_red_zone ().
26497
26498 2016-04-15 Jakub Jelinek <jakub@redhat.com>
26499
26500 PR c++/70675
26501 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
26502 to dump_generic_node.
26503 (NIY): Pass also flags to do_niy.
26504
26505 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
26506
26507 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
26508 (simd_clone_vector_of_formal_parm_types)
26509 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
26510 (simd_clone_mangle, simd_clone_create)
26511 (simd_clone_adjust_return_type, create_tmp_simd_array)
26512 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
26513 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
26514 (ipa_simd_modify_function_body, simd_clone_linear_addend)
26515 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
26516 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
26517 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
26518 * omp-simd-clone.c: ... this new file.
26519 (simd_clone_vector_of_formal_parm_types): Make it static.
26520 * Makefile.in (OBJS): Add omp-simd-clone.o.
26521
26522 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
26523
26524 PR target/70662
26525 * config/i386/sse.md: Use proper memory operand modifiers.
26526
26527
26528 2016-04-15 Richard Biener <rguenther@suse.de>
26529 Alan Modra <amodra@gmail.com>
26530
26531 PR tree-optimization/70130
26532 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
26533 when alignment stays not the same and no not use the realign
26534 scheme then.
26535
26536 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
26537
26538 PR target/70669
26539 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
26540 direct move handlers for KFmode. Change TFmode handlers test from
26541 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
26542
26543 2016-04-14 Jakub Jelinek <jakub@redhat.com>
26544
26545 PR c++/70594
26546 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
26547 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
26548 (inlined_polymorphic_ctor_dtor_block_p): Use it.
26549 * tree-ssa-live.c (remove_unused_scope_block_p): When
26550 in_ctor_dtor_block, avoid discarding not just BLOCKs with
26551 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
26552 block_ultimate_origin is FUNCTION_DECL.
26553 (remove_unused_locals): If current_function_decl is
26554 polymorphic_ctor_dtor_p, pass initial true to
26555 remove_unused_scope_block_p' is_ctor_dtor_block.
26556
26557 2016-04-14 Martin Sebor <msebor@redhat.com>
26558
26559 PR c++/69517
26560 PR c++/70019
26561 PR c++/70588
26562 * doc/extend.texi (Variable Length): Revert.
26563
26564 2016-04-14 Marek Polacek <polacek@redhat.com>
26565 Jan Hubicka <hubicka@ucw.cz>
26566
26567 PR c++/70029
26568 * tree.c (verify_type): Disable the canonical type of main variant
26569 check.
26570
26571 2016-04-14 Jason Merrill <jason@redhat.com>
26572
26573 * cfgexpand.c, expr.c: Revert previous change.
26574
26575 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
26576
26577 PR middle-end/70643
26578 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
26579 when building a mem ref for the incoming reduction variable.
26580
26581 2016-04-14 Richard Biener <rguenther@suse.de>
26582
26583 PR tree-optimization/70614
26584 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
26585 loop if the evolution dropped to chrec_dont_know.
26586 (interpret_condition_phi): Likewise.
26587
26588 2016-04-14 Richard Biener <rguenther@suse.de>
26589
26590 PR tree-optimization/70623
26591 * tree-ssa-pre.c (changed_blocks): Make global ...
26592 (compute_antic): ... local here. Move and fix worklist
26593 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
26594 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
26595 worklist handling, dump when ANTIC_IN changed.
26596 (compute_partial_antic_aux): Remove worklist handling.
26597 (init_pre): Do not compute post dominators. Add a comment about
26598 the CFG order chosen.
26599 (fini_pre): Do not free post dominators.
26600
26601 2016-04-13 Martin Sebor <msebor@redhat.com>
26602
26603 PR c++/69517
26604 PR c++/70019
26605 PR c++/70588
26606 * doc/extend.texi (Variable Length): Document C++ specifics.
26607
26608 2016-04-13 Jakub Jelinek <jakub@redhat.com>
26609
26610 PR c++/70641
26611 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
26612 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
26613 eh edges have been purged.
26614
26615 PR c++/70594
26616 * tree-sra.c (create_access_replacement,
26617 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
26618 gets fancy name.
26619 * tree-pretty-print.c (dump_fancy_name): New function.
26620 (dump_decl_name, dump_generic_node): Use it.
26621
26622 2016-04-13 Jason Merrill <jason@redhat.com>
26623
26624 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
26625 * expr.c (expand_expr_real_1): Likewise.
26626
26627 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
26628
26629 * config/i386/i386.md (kunpckhi): Swap operands.
26630 (kunpcksi): Likewise.
26631 (kunpckdi): Likewise.
26632 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
26633 (vec_pack_trunc_<mode>): Likewise.
26634
26635 2016-04-13 Jakub Jelinek <jakub@redhat.com>
26636
26637 PR debug/70628
26638 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
26639
26640 PR middle-end/70633
26641 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
26642 gimplification turns some element into non-constant.
26643
26644 PR debug/70628
26645 * rtl.h (convert_memory_address_addr_space_1): New prototype.
26646 * explow.c (convert_memory_address_addr_space_1): No longer static,
26647 add NO_EMIT argument and don't call convert_modes if true, pass
26648 it down recursively, remove break after return.
26649 (convert_memory_address_addr_space): Adjust caller.
26650 * simplify-rtx.c (simplify_unary_operation_1): Call
26651 convert_memory_address_addr_space_1 instead of convert_memory_address,
26652 if it returns NULL, don't simplify.
26653
26654 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
26655
26656 PR target/70630
26657 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
26658
26659 2016-04-12 Jakub Jelinek <jakub@redhat.com>
26660
26661 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
26662 Bump the upper SIMDLEN limits, so that if the return type or
26663 characteristic type if the return type is void can be passed in
26664 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
26665 allowed.
26666
26667 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
26668
26669 PR target/70640
26670 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
26671 Do not use "=" constraint on an input constraint.
26672 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
26673 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
26674 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
26675 generates (neg (abs ...)) instead of (abs ...).
26676
26677 2016-04-12 Jakub Jelinek <jakub@redhat.com>
26678
26679 PR rtl-optimization/70596
26680 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
26681 just invalidate LRA data and reset them. Adjust dump wording.
26682
26683 2016-04-12 Martin Liska <mliska@suse.cz>
26684
26685 Revert
26686 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
26687
26688 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
26689 estimates here.
26690 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
26691 max_loop_iterations_int.
26692 (tree_unswitch_outer_loop): Likewise.
26693 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
26694 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
26695
26696 2016-04-12 Tom de Vries <tom@codesourcery.com>
26697
26698 PR tree-optimization/68756
26699 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
26700 instead of new_name.
26701
26702 2016-04-12 Jakub Jelinek <jakub@redhat.com>
26703
26704 PR tree-optimization/70602
26705 * tree-sra.c (generate_subtree_copies): Don't write anything into
26706 constant pool decls.
26707
26708 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
26709 regardless whether there are depend clauses or not.
26710
26711 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
26712
26713 PR target/70381
26714 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
26715 target attribute and pragma from changing the -mfloat128
26716 and -mfloat128-hardware options.
26717
26718 * doc/extend.texi (Additional Floating Types): Document PowerPC
26719 __float128 restrictions.
26720
26721 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
26722
26723 PR target/70133
26724 * config/aarch64/driver-aarch64.c
26725 (aarch64_get_extension_string_for_isa_flags): New.
26726 (arch_extension): Rename to...
26727 (aarch64_arch_extension): ...This.
26728 (ext_to_feat_string): Rename to...
26729 (aarch64_extensions): ...This.
26730 (aarch64_core_data): Keep track of architecture extension flags.
26731 (cpu_data): Rename to...
26732 (aarch64_cpu_data): ...This.
26733 (aarch64_arch_driver_info): Keep track of architecture extension
26734 flags.
26735 (get_arch_name_from_id): Rename to...
26736 (get_arch_from_id): ...This, change return type.
26737 (host_detect_local_cpu): Update and reformat for renames, handle
26738 extensions through common infrastructure.
26739
26740 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
26741
26742 PR target/70133
26743 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
26744 track of a canonical flag name.
26745 (all_extensions): Likewise.
26746 (arch_to_arch_name): Also track extension flags enabled by the arch.
26747 (all_architectures): Likewise.
26748 (aarch64_parse_extension): Move to here.
26749 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
26750 rework.
26751 (aarch64_rewrite_selected_cpu): Update for above change.
26752 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
26753 are handled, such that the single explicit value enabled by an
26754 extension is kept seperate from the implicit values it also enables.
26755 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
26756 to here.
26757 (aarch64_parse_extension): New.
26758 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
26759 here to config/aarch64/aarch64-protos.h.
26760 (aarch64_parse_extension): Move from here to
26761 common/config/aarch64/aarch64-common.c.
26762 (aarch64_option_print): Update.
26763 (aarch64_declare_function_name): Likewise.
26764 (aarch64_start_file): Likewise.
26765 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
26766 the canonical flag for extensions.
26767 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
26768 flags.
26769
26770 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
26771
26772 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
26773 AARCH64_FL_CRC.
26774
26775 2016-04-09 Tom de Vries <tom@codesourcery.com>
26776
26777 PR tree-optimization/68953
26778 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
26779 first to last subscript.
26780
26781 2016-04-09 Jakub Jelinek <jakub@redhat.com>
26782
26783 PR tree-optimization/70586
26784 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
26785 for any calls.
26786
26787 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
26788
26789 PR lto/70289
26790 PR ipa/70348
26791 PR tree-optimization/70373
26792 PR middle-end/70533
26793 PR middle-end/70534
26794 PR middle-end/70535
26795 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
26796 clauses for acc parallel reductions as necessary. Error on those
26797 that are private.
26798 * omp-low.c (scan_sharing_clauses): Don't install variables which
26799 are used in acc parallel reductions.
26800 (lower_rec_input_clauses): Remove dead code.
26801 (lower_oacc_reductions): Add support for reference reductions.
26802 (lower_reduction_clauses): Remove dead code.
26803 (lower_omp_target): Don't remap variables appearing in acc parallel
26804 reductions.
26805 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
26806
26807 2016-04-08 Jakub Jelinek <jakub@redhat.com>
26808
26809 PR middle-end/70593
26810 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
26811 with multiple SSA_NAME defs, force the outputs other than first
26812 to be live before calling live_track_process_def on each output.
26813
26814 PR rtl-optimization/70574
26815 * fwprop.c (forward_propagate_and_simplify): Don't add
26816 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
26817 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
26818 paradoxical subregs within *loc.
26819
26820 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
26821
26822 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
26823 -ftree-parallelize-loops={0,1}.
26824 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
26825 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
26826 * config/ia64/hpux.h (LIB_SPEC): Likewise.
26827 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
26828 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
26829
26830 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
26831
26832 PR sanitizer/70541
26833 * asan.c (instrument_derefs): If we get unknown location, extract it
26834 with EXPR_LOCATION.
26835 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
26836
26837 2016-04-08 Tom de Vries <tom@codesourcery.com>
26838
26839 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
26840 implicit firstprivate clause.
26841
26842 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26843
26844 PR target/70566
26845 * config/arm/thumb2.md (tst + branch-> lsls + branch
26846 peephole below *orsi_not_shiftsi_si): Require that condition
26847 register is dead after the peephole.
26848 (second peephole after the above): Likewise.
26849
26850 2016-04-08 Alan Modra <amodra@gmail.com>
26851
26852 PR target/70117
26853 * builtins.c (fold_builtin_classify): For IBM extended precision,
26854 look at just the high-order double to test for NaN.
26855 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
26856 test just the high double for Inf but both doubles for subnormal
26857 limit.
26858
26859 2016-04-07 Jakub Jelinek <jakub@redhat.com>
26860
26861 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
26862 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
26863 node->simdclone->mask_mode != VOIDmode masks.
26864 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
26865 earlier, use it instead of node->simdclone.
26866 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
26867 Set clonei->mask_mode.
26868
26869 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
26870
26871 PR c/70436
26872 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
26873 Pass it through to cp_parser_already_scoped_statement.
26874 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
26875 it through to cp_parser_statement.
26876 (cp_parser_statement): Pass IF_P through to
26877 cp_parser_iteration_statement.
26878 (cp_parser_pragma): Adjust call to
26879 cp_parser_iteration_statement.
26880
26881 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
26882
26883 PR c/70436
26884 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
26885 resolve a future -Wparentheses warning.
26886 * omp-low.c (scan_sharing_clauses): Likewise.
26887 * tree-parloops.c (eliminate_local_variables): Likewise.
26888
26889 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
26890
26891 PR rtl-optimization/70398
26892 * lra-constraints.c (process_address_1): Check zero scale and code
26893 for reloading with zero scale.
26894
26895 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
26896
26897 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
26898 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
26899
26900 2016-04-06 Jakub Jelinek <jakub@redhat.com>
26901
26902 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
26903 Add support for AVX512F clones, include them by default for
26904 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
26905 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
26906 up to 128.
26907
26908 PR middle-end/70550
26909 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
26910 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
26911 firstprivate clauses.
26912 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
26913 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
26914 (lower_omp_target): Set TREE_NO_WARNING for
26915 non-addressable possibly uninitialized vars which are copied into
26916 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
26917
26918 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
26919
26920 * config/pa/predicates.md (integer_store_memory_operand): Accept
26921 REG+D operands with a large offset when reload_in_progress is true.
26922 (floating_point_store_memory_operand): Likewise.
26923
26924 2016-04-05 Jakub Jelinek <jakub@redhat.com>
26925
26926 PR c++/70336
26927 * match.pd (nested int casts): Limit to GIMPLE.
26928
26929 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
26930
26931 PR ipa/66223
26932 * ipa-devirt.c (maybe_record_node): Fix comment; use
26933 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
26934
26935 2016-04-05 Jakub Jelinek <jakub@redhat.com>
26936
26937 PR rtl-optimization/70542
26938 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
26939 if there are any uses other than insn or debug insns.
26940
26941 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
26942 Jakub Jelinek <jakub@redhat.com>
26943
26944 PR tree-optimization/70509
26945 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
26946 Shift HOST_WIDE_INT_1U instead of 1.
26947
26948 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
26949
26950 PR tree-optimization/70509
26951 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
26952 of the vector base type for index.
26953
26954 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
26955
26956 PR target/70510
26957 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
26958
26959 2016-04-05 Richard Biener <rguenther@suse.de>
26960
26961 PR tree-optimization/70526
26962 * tree-sra.c (build_ref_for_offset): Use prev_base to
26963 extract the alias pointer type.
26964
26965 2016-04-05 Richard Biener <rguenther@suse.de>
26966
26967 * dse.c (struct store_info): Remove alias_set member.
26968 (struct read_info_type): Likewise.
26969 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
26970 spill_deleted, clear_alias_set_lookup): Remove.
26971 (get_group_info): Remove dead base == NULL_RTX case.
26972 (dse_step0): Remove initialization of removed variables.
26973 (delete_dead_store_insn): Reomve alias set dumping.
26974 (free_read_records): Remove alias_set handling.
26975 (canon_address): Remove alias_set_out parameter.
26976 (record_store): Remove spill_alias_set, it's always zero.
26977 (check_mem_read_rtx): Likewise.
26978 (dse_step2): Rename from ...
26979 (dse_step2_nospill): ... this. Adjust.
26980 (scan_stores): Rename from ...
26981 (scan_stores_nospill): ... this.
26982 (scan_reads): Rename from ...
26983 (scan_reads_nospill): ... this.
26984 (scan_stores_spill, scan_reads_spill): Remove.
26985 (dse_step3_scan): Remove for_spills argument which is always false.
26986 (dse_step3): Likewise.
26987 (dse_step5): Rename from ...
26988 (dse_step5_nospill): ... this. Remove alias_set handling.
26989 (rest_of_handle_dse): Adjust.
26990
26991 2016-04-05 Jakub Jelinek <jakub@redhat.com>
26992
26993 PR target/70525
26994 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
26995 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
26996 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
26997 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
26998
26999 2016-04-05 Richard Biener <rguenther@suse.de>
27000
27001 PR middle-end/70499
27002 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
27003 non-register type temporaries into SSA.
27004
27005 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
27006
27007 PR ipa/66223
27008 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
27009 calls when sanitizing.
27010 (possible_polymorphic_call_target_p): Fix formatting.
27011
27012 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27013 Jakub Jelinek <jakub@redhat.com>
27014
27015 PR middle-end/70457
27016 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
27017 to ensure a call statement is compatible with a built-in's
27018 prototype.
27019 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
27020 Likewise.
27021
27022 2016-04-04 Richard Biener <rguenther@suse.de>
27023
27024 PR rtl-optimization/70484
27025 * rtl.h (canon_output_dependence): Declare.
27026 * alias.c (canon_output_dependence): New function.
27027 * dse.c (record_store): Use canon_output_dependence rather
27028 than canon_true_dependence.
27029
27030 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
27031
27032 PR ipa/68881
27033 * cgraph.h (symtab_node::copy_visibility_from): New function.
27034 * symtab.c (symtab_node::copy_visibility_from): New function.
27035 * ipa-visibility.c (optimize_weakref): New function.
27036 (function_and_variable_visibility): Use it.
27037
27038 2016-04-04 Martin Liska <mliska@suse.cz>
27039
27040 PR hsa/70402
27041 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
27042 value that is really in range handled by SBR instruction.
27043 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
27044 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
27045 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
27046
27047 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
27048
27049 PR target/70416
27050 PR target/67391
27051 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
27052 set, but not for SP_REG operands.
27053
27054 2016-04-02 Martin Sebor <msebor@redhat.com>
27055
27056 PR c++/67376
27057 * fold-const.c (maybe_nonzero_address): New function.
27058 (fold_comparison): Call it. Fold equality and relational
27059 expressions involving null pointers.
27060 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
27061
27062 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
27063
27064 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
27065 the "Y" constraint (scalar FP 0.0 immediate).
27066
27067 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
27068 Add the "const_double" to the list of operand constraints.
27069
27070 2016-04-01 Jakub Jelinek <jakub@redhat.com>
27071
27072 PR rtl-optimization/70467
27073 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
27074 If low word of the last operand is 0, just emit addition/subtraction
27075 for the high word.
27076
27077 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27078
27079 PR target/70404
27080 * config/s390/s390.c (s390_expand_insv): Check for everything
27081 constant instead of just VOIDmode stuff.
27082
27083 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27084
27085 PR target/70496
27086 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
27087
27088 2016-04-01 Nathan Sidwell <nathan@acm.org>
27089
27090 * tree.def (TRY_CATCH_EXPR): Correct documentation.
27091
27092 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
27093
27094 PR rtl-optimization/70461
27095 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
27096 is necessary.
27097
27098 2016-03-31 Martin Liska <mliska@suse.cz>
27099
27100 PR hsa/70399
27101 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
27102 a tree value or an immediate integer value to a buffer
27103 that is eventually copied to a BRIG section.
27104 (emit_immediate_operand): Call the function here.
27105 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
27106 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
27107 of class' fields that are removed.
27108 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
27109 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
27110 m_brig_repr_size fields.
27111
27112 2016-03-31 Martin Liska <mliska@suse.cz>
27113
27114 PR hsa/70391
27115 * hsa-gen.c (hsa_function_representation::update_dominance): New
27116 function.
27117 (convert_addr_to_flat_segment): Likewise.
27118 (gen_hsa_memory_set): New alignment argument.
27119 (gen_hsa_ctor_assignment): Likewise.
27120 (gen_hsa_insns_for_single_assignment): Provide alignment
27121 to gen_hsa_ctor_assignment.
27122 (gen_hsa_insns_for_direct_call): Add new argument.
27123 (expand_lhs_of_string_op): New function.
27124 (expand_string_operation_builtin): Likewise.
27125 (expand_memory_copy): New function.
27126 (expand_memory_set): New function.
27127 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
27128 (convert_switch_statements): Change signature.
27129 (generate_hsa): Use a return value of the function.
27130 (pass_gen_hsail::execute): Do not call
27131 convert_switch_statements here.
27132 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
27133 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
27134 (hsa_function_representation::update_dominance): New function.
27135
27136 2016-03-31 Martin Liska <mliska@suse.cz>
27137
27138 PR hsa/70391
27139 * hsa-brig.c (emit_directive_variable): Emit alignment
27140 according to hsa_symbol::m_align.
27141 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
27142 (dump_hsa_symbol): Dump alignment of HSA symbols.
27143 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
27144 (gen_hsa_addr_with_align): New function.
27145 (hsa_bitmemref_alignment): Use newly added function.
27146 (gen_hsa_insns_for_load): Likewise.
27147 (gen_hsa_insns_for_store): Likewise.
27148 (gen_hsa_memory_copy): New argument added.
27149 (gen_hsa_insns_for_single_assignment): Respect
27150 alignment for assignments processed via gen_hsa_memory_copy.
27151 (gen_hsa_insns_for_direct_call): Likewise.
27152 (gen_hsa_insns_for_return): Likewise.
27153 (gen_function_def_parameters): Set default alignment.
27154 * hsa.c (hsa_object_alignment): New function.
27155 (hsa_byte_alignment): Pasted function.
27156 * hsa.h (hsa_symbol::m_align): New field.
27157
27158 2016-03-31 Bin Cheng <bin.cheng@arm.com>
27159
27160 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
27161 scratch field for goto case.
27162
27163 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
27164
27165 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
27166
27167 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
27168
27169 PR target/70442
27170 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
27171 (scalar_chain::convert_insn): Call convert_op for reg
27172 moves to handle undefined registers.
27173
27174 2016-03-31 Nathan Sidwell <nathan@acm.org>
27175
27176 PR c++/70393
27177 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
27178 Assert we don't want to move backwards.
27179
27180 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
27181
27182 PR target/70453
27183 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
27184
27185 2016-03-31 Jakub Jelinek <jakub@redhat.com>
27186
27187 PR rtl-optimization/70460
27188 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
27189 with operand from REG_LABEL_OPERAND, instead substitute
27190 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
27191 Don't do anything for REG_NON_LOCAL_GOTO jumps.
27192
27193 2016-03-31 Martin Liska <mliska@suse.cz>
27194
27195 * passes.c (execute_one_pass): Do not call
27196 todo_after for a discarded function.
27197
27198 2016-03-31 Bin Cheng <bin.cheng@arm.com>
27199
27200 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
27201 (no_cost, infinite_cost): Initialize the new field.
27202 (get_computation_cost_at): Record setup cost.
27203 (determine_use_iv_cost_address): Skip cost computation for sub
27204 uses if we can estimate it without losing accuracy.
27205
27206 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
27207
27208 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
27209 estimates here.
27210 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
27211 max_loop_iterations_int.
27212 (tree_unswitch_outer_loop): Likewise.
27213 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
27214 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
27215
27216 2016-03-30 Richard Biener <rguenther@suse.de>
27217
27218 PR middle-end/70450
27219 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
27220
27221 2016-03-30 Jakub Jelinek <jakub@redhat.com>
27222
27223 PR target/70421
27224 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
27225 in gen_blendm expander.
27226
27227 2016-03-30 Nick Clifton <nickc@redhat.com>
27228
27229 PR target/62254
27230 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
27231 case where we are already provided with an SImode SUBREG.
27232
27233 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
27234
27235 PR target/70439
27236 * config/i386/i386.c (ix86_expand_epilogue): Properly check
27237 conflict between DRAP register and __builtin_eh_return.
27238
27239 2016-03-30 Michael Matz <matz@suse.de>
27240 Richard Biener <rguenther@suse.de>
27241
27242 PR ipa/12392
27243 * ipa-polymorphic-call.c (struct type_change_info): Change
27244 speculative to an unsigned allowing to limit the work we do.
27245 (csftc_abort_walking_p): New inline function..
27246 (check_stmt_for_type_change): Limit the number of may-defs
27247 skipped for speculative devirtualization to
27248 max-speculative-devirt-maydefs.
27249 * params.def (max-speculative-devirt-maydefs): New param.
27250 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
27251
27252 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
27253
27254 PR target/63890
27255 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
27256 and TARGET_MACHO.
27257
27258 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
27259
27260 PR tree-optimization/59124
27261 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
27262 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
27263
27264 2016-03-29 Jeff Law <law@redhat.com>
27265
27266 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
27267
27268 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
27269
27270 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
27271 to HOST_WIDE_INT.
27272
27273 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
27274
27275 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
27276 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
27277 gcrt0.o if linking dynamically.
27278
27279 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
27280
27281 PR ipa/70283
27282 * ipa-devirt.c (methods_equal_p): New function.
27283 (compare_virtual_tables): Use it.
27284 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
27285 * cgraphclones.c (clone_function_name_1): Use
27286 symbol_table::symbol_suffix_separator.
27287 * coverage.c (build_var): Likewise.
27288 * symtab.c (symbol_table::symbol_suffix_separator): New.
27289
27290 2016-03-29 Jakub Jelinek <jakub@redhat.com>
27291
27292 PR rtl-optimization/70429
27293 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
27294 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
27295 mode != result_mode.
27296
27297 PR c++/70353
27298 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
27299
27300 PR tree-optimization/70405
27301 * ssa-iterators.h (num_imm_uses): Add missing braces.
27302
27303 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
27304
27305 PR rtl-optimization/68695
27306 * ira-color.c (allocno_copy_cost_saving): New.
27307 (improve_allocation): Use it.
27308
27309 2016-03-29 Richard Henderson <rth@redhat.com>
27310
27311 PR middle-end/70355
27312 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
27313
27314 2016-03-29 Richard Biener <rguenther@suse.de>
27315
27316 PR middle-end/70424
27317 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
27318 use alignment returned by get_pointer_alignment_1 if it is
27319 bigger than BITS_PER_UNIT.
27320 * builtins.c (get_pointer_alignment_1): Do not return true
27321 for alignment extracted from SSA info.
27322
27323 2016-03-28 James Bowman <james.bowman@ftdichip.com>
27324
27325 * config/ft32/ft32.opt (mnodiv): New.
27326 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
27327 * doc/invoke.texi (FT32 Options -mnodiv): New.
27328
27329 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
27330
27331 PR target/70406
27332 * config/i386/i386.md (define_split, andn): Fix modes.
27333
27334 2016-03-26 Richard Biener <rguenther@suse.de>
27335 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
27336
27337 PR ipa/70366
27338 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
27339 instead of
27340 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
27341 as 2nd argument to cl_optimization_restore().
27342
27343 2016-03-25 Richard Henderson <rth@redhat.com>
27344
27345 PR target/70120
27346 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
27347 * config/aarch64/aarch64-protos.h: Declare it.
27348 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
27349
27350 2016-03-25 Alan Modra <amodra@gmail.com>
27351
27352 PR target/70052
27353 * config/rs6000/constraints.md (j): Simplify.
27354 * config/rs6000/predicates.md (easy_fp_constant): Exclude
27355 decimal float 0.D.
27356 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
27357 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
27358 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
27359 in all constraint alternatives.
27360 (movtd_64bit_nodm): Delete "j" constraint alternative.
27361
27362 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
27363
27364 * tree-ssa-propagate.c: Enhance docs for
27365 SSA_PROP_NOT_INTERESTING.
27366
27367 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
27368
27369 * doc/extend.texi: Fix typo in documentation to pure attribute.
27370
27371 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
27372
27373 PR target/70319
27374 * config/pa/pa.md (bswapdi2): Use a scratch register.
27375
27376 2016-03-24 Richard Henderson <rth@redhat.com>
27377
27378 PR middle-end/69845
27379 * fold-const.c (extract_muldiv_1): Correct test for multiplication
27380 overflow.
27381
27382 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
27383
27384 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
27385 using ix86_expand_binary_operator instead of gen_andsi3.
27386
27387 2016-03-24 Richard Biener <rguenther@suse.de>
27388
27389 PR tree-optimization/70396
27390 * tree-vect-stmts.c (vectorizable_comparison): Use
27391 get_vectype_for_scalar_type.
27392
27393 2016-03-24 Richard Biener <rguenther@suse.de>
27394
27395 PR middle-end/70370
27396 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
27397 with register bases.
27398
27399 2016-03-24 Richard Biener <rguenther@suse.de>
27400
27401 PR tree-optimization/70372
27402 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
27403 build_all_ones_cst to also handle vector types correctly.
27404
27405 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
27406
27407 PR target/70381
27408 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
27409 -mfloat128 here.
27410
27411 2016-03-23 Marek Polacek <polacek@redhat.com>
27412
27413 PR c++/69884
27414 * doc/invoke.texi: Document -Wignored-attributes.
27415
27416 2016-03-23 Bin Cheng <bin.cheng@arm.com>
27417
27418 PR tree-optimization/69042
27419 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
27420 parameter from 30 to 40.
27421
27422 2016-03-23 Bin Cheng <bin.cheng@arm.com>
27423
27424 PR tree-optimization/69042
27425 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
27426 for use with constant offset stripped in base.
27427
27428 2016-03-23 Richard Biener <rguenther@suse.de>
27429
27430 PR middle-end/70251
27431 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
27432 mode compatibility check.
27433 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
27434
27435 2016-03-23 Jeff Law <law@redhat.com>
27436
27437 PR tree-optimization/64058
27438 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
27439 CONFLICT_COUNT.
27440 (struct ssa_conflicts): Move up earlier in the file.
27441 (conflicts_, var_map_): New static variables.
27442 (initialize_conflict_count): New function to initialize the
27443 CONFLICT_COUNT field for each conflict pair.
27444 (compare_pairs): Lazily initialize the conflict count and use it
27445 as the first tie-breaker.
27446 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
27447 and wipe conflicts_ and map_ around the call to qsort. Remove
27448 special case for 2 coalesce pairs.
27449 * bitmap.c (bitmap_count_unique_bits): New function.
27450 (bitmap_count_bits_in_word): New function, extracted from
27451 bitmap_count_bits.
27452 (bitmap_count_bits): Use bitmap_count_bits_in_word.
27453 * bitmap.h (bitmap_count_unique_bits): Declare it.
27454
27455 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
27456
27457 PR target/69917
27458 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
27459 transparent alias chain for decl assembler name.
27460 * config/sol2.c (solaris_assemble_visibility): Likewise.
27461
27462 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27463
27464 * config/arm/arm1020e.md (1020call_op): Reduce reservation
27465 duration.
27466 (v10_fdivs): Likewise.
27467 (v10_fdivd): Likewise.
27468
27469 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27470
27471 PR driver/70132
27472 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
27473 to not call fclose twice on file.
27474
27475 2016-03-23 Jakub Jelinek <jakub@redhat.com>
27476
27477 PR tree-optimization/70354
27478 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
27479 oprnd0 is wider than oprnd1 and there is a cast from the wider
27480 type to oprnd1, mask it with the mask of the narrower type.
27481
27482 PR target/70321
27483 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
27484 Optimize TARGET_STV splitters, if high or low word of last argument
27485 is 0 or -1.
27486
27487 2016-03-22 Jeff Law <law@redhat.com>
27488
27489 PR target/70232
27490 tree-ssa-threadbackward.c
27491 (fsm_find_control_statement_thread_paths): Correctly distinguish
27492 between old style jump threads vs FSM jump threads.
27493
27494 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
27495
27496 PR target/70302
27497 * config/i386/i386.c (scalar_chain::convert_op): Support
27498 uninitialized register usage case.
27499
27500 2016-03-22 Richard Biener <rguenther@suse.de>
27501
27502 PR middle-end/70251
27503 * genmatch.c (gen_transform): Adjust last parameter to a three-state
27504 int...
27505 (capture::gen_transform): ... to change behavior when substituting
27506 a condition into cond or not-cond expr context.
27507 (dt_simplify::gen_1): Adjust.
27508 * gimple-match-head.c: Include gimplify.h for unshare_expr.
27509 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
27510 last change and instead change to
27511 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
27512 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
27513
27514 2016-03-22 Anthony Green <green@moxielogic.com>
27515
27516 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
27517 issue for moxiebox targets.
27518 (CC1PLUS_SPEC): Ditto.
27519
27520 2016-03-22 Richard Biener <rguenther@suse.de>
27521
27522 PR middle-end/70333
27523 * fold-const.c (extract_muldiv_1): Properly perform multiplication
27524 in the wide type.
27525
27526 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
27527
27528 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
27529
27530 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
27531
27532 PR target/70325
27533 * config/i386/i386.c (def_builtin): Handle
27534 OPTION_MASK_ISA_AVX512VL to be and-ed with other
27535 bits.
27536 (const struct builtin_description bdesc_special_args[]):
27537 Remove duplicate ISA bits.
27538
27539 2016-03-22 Jakub Jelinek <jakub@redhat.com>
27540
27541 PR target/70329
27542 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
27543 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
27544 in a way that works also for AVX512BW.
27545
27546 PR target/70300
27547 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
27548 instead of source if operands[1] is xmm16 and above and
27549 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
27550 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
27551
27552 PR c++/70295
27553 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
27554 on assign if (*from_p) is a comparison, set it to
27555 TREE_NO_WARNING (*from_p).
27556
27557 2016-03-21 Jakub Jelinek <jakub@redhat.com>
27558
27559 PR middle-end/70326
27560 * lra.c (restore_scratches): Ignore deleted insns.
27561
27562 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
27563 Jakub Jelinek <jakub@redhat.com>
27564
27565 PR tree-optimization/70317
27566 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
27567 to HONOR_NANS.
27568
27569 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
27570
27571 PR target/70327
27572 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
27573 of ix86_expand_move.
27574 (movoi): Ditto.
27575 (movti): Use general_operand for operand 1 predicate.
27576
27577 2016-03-21 Martin Liska <mliska@suse.cz>
27578
27579 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
27580 insns.
27581 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
27582
27583 2016-03-21 Martin Liska <mliska@suse.cz>
27584
27585 PR ipa/70306
27586 * ipa-icf.c (sem_function::parse): Skip static
27587 constructors and destructors.
27588
27589 2016-03-21 Jakub Jelinek <jakub@redhat.com>
27590
27591 PR target/70296
27592 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
27593 function-like macro, peek following token(s) if it is followed
27594 by CPP_OPEN_PAREN token with optional padding in between, and
27595 if not, don't treat it like a macro.
27596
27597 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
27598 Alexander Monakov <amonakov@ispras.ru>
27599
27600 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
27601 for the stabs debug format.
27602
27603 2016-03-21 Richard Biener <rguenther@suse.de>
27604
27605 PR tree-optimization/70310
27606 * tree-vect-generic.c (expand_vector_condition): Fold the built
27607 condition.
27608
27609 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
27610
27611 PR target/70293
27612 * config/i386/sse.md (define_insn "*vec_dup<mode>"/AVX2):
27613 Block third alternative for AVX-512VL target,
27614
27615 2016-03-21 Martin Liska <mliska@suse.cz>
27616
27617 PR hsa/70234
27618 * hsa-brig.c (emit_function_directives): Mark unemitted
27619 global variables for emission.
27620 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
27621 (get_symbol_for_decl): Likewise.
27622 * hsa.h (struct hsa_symbol): New flag.
27623
27624 2016-03-21 Richard Biener <rguenther@suse.de>
27625
27626 PR tree-optimization/70288
27627 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
27628 we do not estimate unsimplified all-constant conditionals or
27629 switches as optimized away.
27630
27631 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
27632
27633 PR rtl-optimization/69102
27634 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
27635 when we have a readonly dependency context.
27636
27637 2016-03-18 Jeff Law <law@redhat.com>
27638
27639 PR rtl-optimization/70263
27640 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
27641 (update_equiv_regs): When trying to move a store to after the insn
27642 that sets the source of the store, make sure the store occurs after
27643 the insn that sets the source of the store. When successful note
27644 the REG_EQUIV note created in the dump file.
27645
27646 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
27647 Bernd Schmidt <bschmidt@redhat.com>
27648
27649 * doc/extend.texi: Document more potential problems with basic asms.
27650
27651 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
27652
27653 PR rtl-optimization/70278
27654 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
27655 VOIDmode.
27656
27657 2016-03-18 Jason Merrill <jason@redhat.com>
27658
27659 * calls.c (load_register_parameters): Fix zero size sibcall logic.
27660
27661 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
27662
27663 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
27664 values to 128b regs.
27665
27666 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
27667
27668 PR tree-optimization/70252
27669 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
27670 boolean vector has a proper number of elements.
27671 (supportable_narrowing_operation): Likewise.
27672
27673 2016-03-18 Tom de Vries <tom@codesourcery.com>
27674
27675 PR ipa/70269
27676 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
27677
27678 2016-03-18 Jakub Jelinek <jakub@redhat.com>
27679
27680 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
27681 instead of replace_rtx for DEBUG_INSNs.
27682
27683 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
27684
27685 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
27686 load type reservations.
27687
27688 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
27689
27690 PR target/70188
27691 * config/pa/constraints.md: Revert 2015-02-13 change. Use
27692 define_constraint for "Q" and "T" constraints.
27693
27694 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
27695
27696 Tweak the pipeline model for Exynos M1
27697
27698 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
27699 model.
27700
27701 2016-03-17 David Malcolm <dmalcolm@redhat.com>
27702
27703 PR c/70264
27704 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
27705 where one or both locations aren't within a line_map.
27706
27707 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
27708
27709 PR driver/70192
27710 * opts.c (finish_options): Don't set flag_pie to the default if
27711 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
27712 if it is -1.
27713
27714 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
27715
27716 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
27717 true as ALL_REGS argument to replace_rtx.
27718
27719 2016-03-17 Richard Biener <rguenther@suse.de>
27720
27721 PR debug/70271
27722 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
27723 last.
27724
27725 2016-03-17 Jakub Jelinek <jakub@redhat.com>
27726
27727 PR target/70245
27728 * rtl.h (replace_rtx): Add ALL_REGS argument.
27729 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
27730 equality and assert mode is the same, instead of just rtx pointer
27731 equality.
27732 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
27733 true as ALL_REGS argument to replace_rtx.
27734
27735 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
27736
27737 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
27738 for boolean vector with vector mode only.
27739 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
27740
27741 2016-03-17 Nick Clifton <nickc@redhat.com>
27742
27743 PR target/70162
27744 * config/rx/rx.c (rx_print_integer): Print negative constants in
27745 decimal.
27746
27747 2016-03-17 Jakub Jelinek <jakub@redhat.com>
27748
27749 PR target/70261
27750 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
27751
27752 2016-03-16 Richard Henderson <rth@redhat.com>
27753 Richard Biener <rguenth@suse.de>
27754
27755 PR middle-end/70240
27756 PR middle-end/68215
27757 PR tree-opt/68714
27758 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
27759 first operand as is_gimple_condexpr.
27760
27761 PR middle-end/70240
27762 PR middle-end/68215
27763 Revert r231575
27764 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
27765 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
27766 Do not gimplify the result.
27767 (do_unop): Adjust call to tree_vec_extract.
27768 (do_binop): Likewise.
27769 (do_compare): Likewise.
27770 (do_plus_minus): Likewise.
27771 (do_negate): Likewise.
27772 (expand_vector_condition): Likewise.
27773 (do_cond): Likewise.
27774
27775 2016-03-16 Richard Henderson <rth@redhat.com>
27776
27777 PR target/70048
27778 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
27779 (aarch64_classify_address): Use it.
27780 (aarch64_legitimize_address): Force all subexpressions of PLUS
27781 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
27782
27783 2016-03-16 Jakub Jelinek <jakub@redhat.com>
27784 Richard Biener <rguenth@suse.de>
27785
27786 PR target/70245
27787 * rtlanal.c (replace_rtx): For REG, if from is a REG,
27788 return to even if only REGNO is equal, and assert
27789 mode is the same.
27790
27791 2016-03-11 Jeff Law <law@redhat.com>
27792
27793 PR rtl-optimization/70224
27794 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
27795
27796 2016-03-16 Richard Henderson <rth@redhat.com>
27797
27798 PR middle-end/70199
27799 * function.h (struct function): Add has_forced_label_in_static.
27800 * gimplify.c (force_labels_r): Set it.
27801 * lto-streamer-in.c (input_struct_function_base): Read it.
27802 * lto-streamer-out.c (output_struct_function_base): Write it.
27803 * tree-inline.c (has_label_address_in_static_1): Remove.
27804 (copy_forbidden): Remove fndecl parameter; test
27805 has_forced_label_in_static.
27806 (inline_forbidden_p): Update call to copy_forbidden.
27807 (tree_versionable_function_p): Likewise.
27808 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
27809 (chkp_versioning): Likewise.
27810 * tree-inline.h (copy_forbidden): Update decl.
27811
27812 2016-03-16 Marek Polacek <polacek@redhat.com>
27813
27814 PR c/70093
27815 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
27816 function being thunked if the result type doesn't have fixed size.
27817 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
27818 doesn't have fixed size.
27819
27820 2016-03-16 Bin Cheng <bin.cheng@arm.com>
27821
27822 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
27823 reporting malformed loop nest.
27824
27825 2016-03-16 Tom de Vries <tom@codesourcery.com>
27826
27827 PR lto/70187
27828 * ipa-devirt.c (possible_polymorphic_call_targets): Move
27829 nodes.length () == 1 test to before first nodes[0] access.
27830
27831 2016-03-16 Tom de Vries <tom@codesourcery.com>
27832
27833 PR tree-optimization/68715
27834 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
27835 single_pred_p test.
27836
27837 2016-03-16 Tom de Vries <tom@codesourcery.com>
27838
27839 PR tree-optimization/68809
27840 * graphite-scop-detection.c (same_close_phi_node): Test if result types
27841 are the same.
27842
27843 2016-03-16 Carlos O'Donell <carlos@redhat.com>
27844 Sandra Loosemore <sandra@codesourcery.com>
27845
27846 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
27847 on leaf attribute. Mention ELF interposition problems.
27848
27849 2016-03-16 Alan Modra <amodra@gmail.com>
27850
27851 PR rtl-optimization/69195
27852 PR rtl-optimization/47992
27853 * ira.c (indirect_jump_optimize): Ignore artificial defs.
27854 Add comments.
27855
27856 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
27857
27858 PR bootstrap/69513
27859 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
27860
27861 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
27862
27863 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
27864
27865 2016-03-15 Jakub Jelinek <jakub@redhat.com>
27866
27867 PR rtl-optimization/70222
27868 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
27869 optimization if mode is different from result_mode, queue up masking
27870 of the result in outer_op. Formatting fix.
27871
27872 PR middle-end/70239
27873 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
27874 of safe_grow.
27875
27876 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
27877
27878 PR rtl-optimization/69032
27879 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
27880 looping backwards over basic block insns.
27881
27882 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
27883
27884 PR target/66660
27885 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
27886 to non-speculative when propagating trap bits.
27887
27888 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
27889
27890 PR rtl-optimization/63384
27891 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
27892 DEBUG_INSN_P insns.
27893
27894 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
27895
27896 PR target/64411
27897 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
27898 factored out from ...
27899 (sched_analyze_insn): ... here.
27900 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
27901 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
27902 get_implicit_reg_pending_clobbers in it.
27903 (setup_id_reg_sets): Use setup_id_implicit_regs.
27904 (deps_init_id): Ditto.
27905
27906 2016-03-15 Tom de Vries <tom@codesourcery.com>
27907
27908 PR ipa/70161
27909 * cgraph.c (cgraph_node::get_body): Save, reset and restore
27910 dump_file_name.
27911 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
27912 execute_function_dump.
27913 (execute_one_pass): Don't dump function if it will be dumped after ipa
27914 transform.
27915
27916 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
27917
27918 * genrecog.c (match_pattern_2): If pred is NULL don't call
27919 safe_predicate_mode on it.
27920
27921 2016-03-14 Jakub Jelinek <jakub@redhat.com>
27922
27923 PR middle-end/70219
27924 * lra-constraints.c (delete_move_and_clobber): Change assertion
27925 to also allow dregno == 0.
27926
27927 2016-03-14 Richard Henderson <rth@redhat.com>
27928
27929 PR tree-opt/68714
27930 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
27931 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
27932 (reassociate_bb): Use optimize_vec_cond_expr; avoid
27933 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
27934 on vectors.
27935
27936 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
27937
27938 PR target/70083
27939 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
27940 regs.
27941 (lra_create_live_ranges_1): initialize hard register biggest_mode to
27942 VOIDmode.
27943 * lra-constraints.c (split_reg): For hard regs, try to find the
27944 biggest single-register mode used in the function.
27945
27946 2016-03-14 Richard Biener <rguenther@suse.de>
27947
27948 PR tree-optimization/56365
27949 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
27950 constants to compare against.
27951
27952 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
27953
27954 PR target/70098
27955 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
27956 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
27957 (define_split for the GPR case): Use int_reg_operand instead of
27958 gpc_reg_operand for the output.
27959
27960 2016-03-14 Tom de Vries <tom@codesourcery.com>
27961
27962 PR tree-optimization/70045
27963 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
27964 create_empty_if_region_on_edge argument.
27965
27966 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
27967
27968 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
27969 (STACK_CHECK_PROTECT): Likewise.
27970 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
27971 (STACK_CHECK_PROTECT): Likewise.
27972 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
27973 (STACK_CHECK_PROTECT): Likewise.
27974 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
27975 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
27976 (STACK_CHECK_PROTECT): Likewise.
27977
27978 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
27979
27980 PR rtl-optimization/69307
27981 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
27982 registers in modes that span more than one register.
27983
27984 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
27985
27986 PR target/69614
27987 * lra-constraints.c (delete_move_and_clobber): New.
27988 (remove_inheritance_pseudos): Use it.
27989
27990 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
27991
27992 PR ada/70017
27993 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
27994 the libcall is LCT_THROW.
27995 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
27996 for the checking routine.
27997
27998 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
27999
28000 PR target/70131
28001 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
28002 optimization if we have direct move.
28003 (roundu32<mode>2_fprs): Likewise.
28004
28005 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
28006
28007 PR target/70123
28008 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
28009 be rematerialized.
28010 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
28011 Arguments swapped. All callers changed. Take reg_renumber into
28012 account, and Calculate and compare register ranges for hard regs.
28013
28014 2016-03-11 Jeff Law <law@redhat.com>
28015
28016 PR tree-optimization/70190
28017 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
28018 Handle cases where we can not extract the taken edge, even though we
28019 found a constant value.
28020
28021 PR tree-optimization/64058
28022 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
28023 (num_coalesce_pairs): Move up earlier in file.
28024 (find_coalesce_pair): Initialize the INDEX field for each pair
28025 discovered.
28026 (compare_pairs): No longer sort on the elements in each pair.
28027 Instead break ties with the index of the coalesce pair.
28028
28029 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28030
28031 PR target/70002
28032 * config/aarch64/aarch64-protos.h
28033 (aarch64_save_restore_target_globals): New prototype.
28034 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
28035 Call the above when popping pragma.
28036 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
28037 New function.
28038 (aarch64_set_current_function): Rewrite using the above.
28039
28040 2016-03-11 Jakub Jelinek <jakub@redhat.com>
28041
28042 PR tree-optimization/70177
28043 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
28044 (extract_ops_from_tree): ... this. In the 2 argument
28045 overload remove _1 suffix.
28046 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
28047 (extract_ops_from_tree): ... this.
28048 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
28049 Adjust callers.
28050 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
28051 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
28052 extract_ops_from_tree instead of 2 operand one.
28053
28054 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
28055
28056 PR tree-optimization/70013
28057 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
28058 for constant-pool entries.
28059
28060 2016-03-11 Jakub Jelinek <jakub@redhat.com>
28061
28062 PR rtl-optimization/70174
28063 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
28064 followed by gen_lowpart on force_reg instead of just gen_lowpart.
28065
28066 PR tree-optimization/70169
28067 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
28068 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
28069 for unknown codes.
28070
28071 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
28072 Jakub Jelinek <jakub@redhat.com>
28073
28074 PR target/70160
28075 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
28076 of uninitialized values.
28077
28078 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28079
28080 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
28081 define_expand.
28082 ("*trunctddd2"): New pattern definition.
28083 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
28084 TD->DD truncation.
28085
28086 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28087
28088 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
28089 definitions for BFP and DFP rounding modes.
28090 ("fixuns_truncdddi2", "fixuns_trunctddi2")
28091 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
28092 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
28093 ("fix_trunctf<mode>2"): Use the new constants instead of magic
28094 numbers.
28095
28096 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28097
28098 * config/s390/constraints.md: Adjust comment.
28099 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
28100 s390_decompose_addrstyle_without_index.
28101 * config/s390/predicates.md (shift_count_or_setmem_operand):
28102 Rename to setmem_operand.
28103 * config/s390/s390-protos.h
28104 (s390_decompose_shift_count): Rename to
28105 s390_decompose_addrstyle_without_index.
28106 * config/s390/s390.c (s390_decompose_shift_count)
28107 (s390_mem_constraint, print_shift_count_operand)
28108 (print_operand_address, print_operand): Rename
28109 s390_decompose_shift_count to
28110 s390_decompose_addrstyle_without_index and rename
28111 print_shift_count_operand to print_addrstyle_operand troughout the
28112 file.
28113 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
28114 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
28115 Rename shift_count_or_setmem_operand to setmem_operand.
28116 * config/s390/vx-builtins.md ("vec_insert<mode>")
28117 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
28118 nonmemory_operand.
28119
28120 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28121
28122 PR target/70168
28123 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
28124 Handle overlapping retval and newval.
28125
28126 2016-03-10 Nick Clifton <nickc@redhat.com>
28127
28128 PR target/7044
28129 * config/aarch64/aarch64.c
28130 (aarch64_override_options_after_change_1): When forcing
28131 flag_omit_frame_pointer to be true, use a special value that can
28132 be detected if this function is called again, thus preventing
28133 flag_omit_leaf_frame_pointer from being forced to be false.
28134
28135 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28136
28137 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
28138 Set x_flag_omit_leaf_frame_pointer when handling
28139 -momit-leaf-frame-pointer.
28140
28141 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
28142
28143 PR lto/69589
28144 * cgraph.c (cgraph_node::dump): Dump split_part and
28145 indirect_call_target.
28146 * cgraph.h (cgraph_node): Add indirect_call_target flag.
28147 * ipa.c (has_addr_references_p): Cleanup.
28148 (is_indirect_call_target_p): New.
28149 (walk_polymorphic_call_targets): Do not mark virtuals that may be
28150 called indirectly as local.
28151 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
28152
28153 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
28154
28155 PR ipa/69630
28156 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
28157 on cxa_pure_virtual.
28158
28159 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
28160
28161 PR lto/69589
28162 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
28163
28164 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
28165
28166 PR lto/69589
28167 * tree.c (need_assembler_name_p): Only record main variant type names.
28168
28169 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
28170
28171 PR target/70113.
28172 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
28173 Always define to 0 or 1.
28174 (TARGET_FIX_ERR_A53_843419): New macro.
28175 * config/aarch64/aarch64-elf-raw.h
28176 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
28177 * config/aarch64/aarch64-linux.h: Likewise.
28178 * config/aarch64/aarch64.c
28179 (aarch64_override_options_after_change_1): Do not default
28180 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
28181 843419 is on.
28182 (aarch64_attributes): Handle fix-cortex-a53-843419.
28183 (aarch64_can_inline_p): Likewise.
28184 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
28185
28186 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
28187 Jakub Jelinek <jakub@redhat.com>
28188
28189 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
28190 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
28191 DECL_COMMONS if flag_unconstrained_commons is set.
28192 * tree-dfa.c (get_ref_base_and_extent): Likewise.
28193 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
28194 (funconstrained-commons): Document.
28195
28196 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
28197
28198 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
28199 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
28200
28201 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
28202
28203 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
28204 has a proper number of elements.
28205
28206 2016-03-10 Alan Modra <amodra@gmail.com>
28207
28208 PR rtl-optimization/69195
28209 PR rtl-optimization/47992
28210 * ira.c (recorded_label_ref): Delete.
28211 (update_equiv_regs): Return void.
28212 (indirect_jump_optimize): New function.
28213 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
28214 before regstat_compute_ri. Don't rebuild_jump_labels here.
28215 Delete update_regstat.
28216
28217 2016-03-10 Richard Biener <rguenther@suse.de>
28218
28219 PR tree-optimization/70128
28220 * tree-ssa-structalias.c (set_uids_in_ptset): Set
28221 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
28222
28223 2016-03-09 Jakub Jelinek <jakub@redhat.com>
28224
28225 PR tree-optimization/70152
28226 * tree-sra.c (replace_removed_params_ssa_names): Copy over
28227 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
28228
28229 PR target/70086
28230 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
28231 instead of gen_sse2_loadlpd.
28232 * config/i386/sse.md (*vec_concatv2df): Rename to...
28233 (vec_concatv2df): ... this.
28234
28235 PR tree-optimization/70127
28236 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
28237
28238 2016-03-09 David Malcolm <dmalcolm@redhat.com>
28239
28240 PR c/68473
28241 PR c++/70105
28242 * diagnostic-show-locus.c (compatible_locations_p): New function.
28243 (layout::layout): Sanitize ranges using compatible_locations_p.
28244
28245 2016-03-09 David Malcolm <dmalcolm@redhat.com>
28246
28247 PR c/68473
28248 PR c++/70105
28249 * diagnostic-show-locus.c (layout_range::layout_range): Replace
28250 location_range param with three const expanded_locations * and a
28251 bool.
28252 (layout::layout): Replace call to
28253 rich_location::lazily_expand_location with get_expanded_location.
28254 Extract the range and perform location expansion here, passing
28255 the results to the layout_range ctor.
28256 * diagnostic.c (source_range::debug): Delete.
28257 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
28258 of rich_location::get_expanded_location.
28259 * gcc-rich-location.c (get_range_for_expr): Delete.
28260 (gcc_rich_location::add_expr): Reimplement to avoid the
28261 rich_location::add_range overload that took a location_range,
28262 passing a location_t instead.
28263
28264 2016-03-09 Richard Biener <rguenther@suse.de>
28265 Jakub Jelinek <jakub@redhat.com>
28266
28267 PR tree-optimization/70138
28268 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
28269 Also skip vect_double_reduction_def.
28270
28271 2016-03-09 Jakub Jelinek <jakub@redhat.com>
28272
28273 PR target/70049
28274 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
28275 if the operand is "m".
28276
28277 2016-03-09 Nathan Sidwell <nathan@acm.org>
28278
28279 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
28280
28281 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
28282
28283 * config/i386/i386.c (processor_target_table): Fix cost table
28284 intialization order for znver1.
28285
28286 2016-03-08 Jakub Jelinek <jakub@redhat.com>
28287
28288 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
28289 - becuase -> because.
28290 * ipa-reference.c (ignore_module_statics): Likewise.
28291 * cgraph.c (cgraph_node::get_body): Likewise.
28292 * ipa-inline.c (early_inliner): Likewise.
28293 * ipa-devirt.c (types_same_for_odr): Likewise.
28294 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
28295 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
28296
28297 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28298
28299 * tree-ssa-math-opts.c: Fix typo in comment.
28300
28301 2016-03-08 Jakub Jelinek <jakub@redhat.com>
28302
28303 PR target/70110
28304 * config/i386/i386.c (scalar_chain::make_vector_copies,
28305 scalar_chain::convert_reg): Call end_sequence in between
28306 get_insns and emit_conversion_insns rather than after both
28307 calls.
28308
28309 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
28310
28311 PR target/70064
28312 * config/i386/i386.h (machine_function): Add
28313 pc_thunk_call_expanded flag.
28314 (ix86_pc_thunk_call_expanded): New define.
28315 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
28316 (*set_got): Rename insn pattern from set_got.
28317 (*set_got_labelled): Rename inst pattern from set_got_labelled.
28318 * config/i386/i386.c (ix86_compute_frame_layout): Use
28319 ix86_pc_thunk_call_expanded to prevent red-zone.
28320
28321 2016-03-07 Martin Jambor <mjambor@suse.cz>
28322
28323 * hsa.h (hsa_get_ctor_statements): Declare.
28324 (hsa_get_dtor_statements): Likewise.
28325 (hsa_get_kernel_dispatch_type): Likewise.
28326 * hsa.c (hsa_get_ctor_statements): New function.
28327 (hsa_get_dtor_statements): Likewise.
28328 (hsa_get_kernel_dispatch_type): Likewise.
28329 * hsa-brig.c (hsa_cdtor_statements): Removed.
28330 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
28331 hsa_get_dtor_statements.
28332 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
28333 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
28334
28335 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
28336
28337 * config/arm/arm-cores.def (cortex-r8): New.
28338 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
28339 * config/arm/arm-tune.md: Likewise.
28340 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
28341
28342 2016-03-07 Martin Sebor <msebor@redhat.com>
28343
28344 PR rtl-optimization/19705
28345 * doc/invoke.texi (Options That Control Optimization): Clarify
28346 -fno-branch-count-reg.
28347
28348 2016-02-26 Richard Biener <rguenther@suse.de>
28349 Jeff Law <law@redhat.com>
28350
28351 PR tree-optimization/69740
28352 * cfghooks.c (remove_edge): Request loop fixups if we delete
28353 an edge that might turn an irreducible loop into a natural
28354 loop.
28355 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
28356 Move after definition of loops_state_clear.
28357
28358 2016-03-07 Bin Cheng <bin.cheng@arm.com>
28359
28360 PR rtl-optimization/69052
28361 * rtlanal.c (commutative_operand_precedence): Set higher precedence
28362 to CONST_WIDE_INT.
28363
28364 2016-03-07 Tom de Vries <tom@codesourcery.com>
28365
28366 PR tree-optimization/70116
28367 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
28368 is_tm_ending stmts and ubsan/asan internal functions.
28369 (find_duplicate): Use it. Don't test is_tm_ending here.
28370
28371 2016-03-07 Richard Biener <rguenther@suse.de>
28372
28373 PR tree-optimization/70115
28374 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
28375 (propagate_constants_for_unrolling): Use replace_uses_by.
28376
28377 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
28378
28379 PR middle-end/69916
28380 * omp-low.c (struct oacc_loop): Add ifns.
28381 (new_oacc_loop_raw): Initialize it.
28382 (finish_oacc_loop): Clear mask & flags if no ifns.
28383 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
28384 (oacc_loop_xform_loop): Add ifns arg & adjust.
28385 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
28386
28387 2016-03-07 Richard Henderson <rth@redhat.com>
28388
28389 PR rtl-opt/70061
28390 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
28391 (insert_value_copy_on_edge): Likewise.
28392
28393 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28394
28395 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
28396
28397 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28398
28399 PR target/62281
28400 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
28401
28402 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
28403
28404 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
28405
28406 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
28407
28408 Fix sseimul type attribute.
28409 * config/i386/znver1.md
28410 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
28411 znver1_sseimul_avx256_load) : Fix the type attribute.
28412 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
28413 pipe usage and latency.
28414
28415 2016-03-05 Jakub Jelinek <jakub@redhat.com>
28416
28417 PR c++/70084
28418 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
28419 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
28420 to the right type.
28421
28422 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
28423
28424 PR c/69973
28425 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
28426
28427 PR rtl-optimization/69941
28428 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
28429 the reg share its mode.
28430
28431 2016-03-04 Jeff Law <law@redhat.com>
28432
28433 PR tree-optimization/69196
28434 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
28435 If the both SSA_NAMEs are anonymous, then consider them unassociated
28436 and include the PHI in the statement count.
28437
28438 2016-03-05 Tom de Vries <tom@codesourcery.com>
28439
28440 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
28441 construct in oacc routine. Check for oacc region in oacc routine.
28442
28443 2016-03-04 Jakub Jelinek <jakub@redhat.com>
28444
28445 PR target/70062
28446 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
28447 2016-02-22 changes, instead don't recurse if RECUR is already true.
28448 Don't change *dynamic_check if RECUR. Adjust recursive caller
28449 to pass true to the new argument.
28450 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
28451
28452 PR target/70059
28453 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
28454 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
28455 fixes.
28456 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
28457
28458 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
28459
28460 PR rtl-optimization/57676
28461 * lra-assigns.c (lra_assign): Guard test for maximum iterations
28462 with flag_checking.
28463
28464 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
28465
28466 * tree-vect-patterns.c (search_type_for_mask): Handle
28467 comparison of booleans.
28468
28469 2016-03-04 Jakub Jelinek <jakub@redhat.com>
28470
28471 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
28472 Fix @xref usage.
28473
28474 PR debug/69947
28475 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
28476 all other ops that have dw_val_class_die_ref operands,
28477 and DW_OP_GNU_entry_value.
28478
28479 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28480
28481 PR rtl-optimization/69904
28482 * config/arm/arm.c (arm_cannot_copy_insn_p):
28483 Return true for load-exclusive instructions.
28484
28485 2016-03-03 Jakub Jelinek <jakub@redhat.com>
28486
28487 PR target/70021
28488 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
28489 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
28490 the pattern no matter if it is used just by non-pattern, pattern
28491 or mix thereof.
28492 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
28493 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
28494 oprnd1 def_stmt is in pattern, don't look through it.
28495
28496 2016-03-03 Marek Polacek <polacek@redhat.com>
28497
28498 PR middle-end/70050
28499 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
28500
28501 2016-03-03 Martin Liska <mliska@suse.cz>
28502
28503 PR tree-optimization/70043
28504 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
28505 previous statement if we see a debug statement.
28506
28507 2016-03-03 Richard Biener <rguenther@suse.de>
28508
28509 PR tree-optimization/55936
28510 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
28511 parameter and guard unsafe equivalence use.
28512 (vrp_evaluate_conditional_warnv_with_ops): Always use
28513 safe equivalences but not via the quadratic compare_names
28514 helper.
28515
28516 2016-03-03 Michael Collison <michael.collison@linaro.org>
28517
28518 PR target/70014
28519 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
28520 for operand 1 to s_register_operand. Change predicate for operand
28521 2 to arm_not_immediate_operand.
28522
28523 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
28524
28525 * doc/tm.texi: Regenerated.
28526
28527 2016-03-02 Richard Henderson <rth@redhat.com>
28528
28529 PR rtl-opt/67145
28530 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
28531 simplification when all args are positive non-fixed registers.
28532
28533 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
28534
28535 * target.def (lra_p): Specify that new ports should use LRA.
28536
28537 2016-03-02 Jakub Jelinek <jakub@redhat.com>
28538
28539 PR libgomp/69555
28540 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
28541 gimplify_type_sizes the type they refer to.
28542 (omp_notice_variable): Handle reference vars to VLAs.
28543 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
28544 reference to VLA decls in the second pass instead of first pass.
28545
28546 2016-03-02 Tom de Vries <tom@codesourcery.com>
28547
28548 PR tree-optimization/68659
28549 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
28550 new_expr == NULL_TREE.
28551 (get_new_name): Handle ADDR_EXPR.
28552
28553 2016-03-02 Bin Cheng <bin.cheng@arm.com>
28554
28555 PR rtl-optimization/69052
28556 * loop-invariant.c (canonicalize_address): New function.
28557 (inv_can_prop_to_addr_use): Check validity of address expression
28558 which is canonicalized by above function.
28559
28560 2016-03-02 Alan Modra <amodra@gmail.com>
28561
28562 PR ipa/69990
28563 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
28564 larger alignment.
28565
28566 2016-03-02 Jakub Jelinek <jakub@redhat.com>
28567
28568 PR target/70028
28569 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
28570 (*movhi_internal): Put mask moves from and to memory separately
28571 from moves from/to GPRs.
28572
28573 2016-03-02 Richard Biener <rguenther@suse.de>
28574
28575 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
28576 GENERIC expressions in GIMPLE.
28577
28578 2016-03-02 Richard Biener <rguenther@suse.de>
28579
28580 * config/i386/i386.c (type_natural_mode): Fix typo.
28581
28582 2016-03-02 Nick Clifton <nickc@redhat.com>
28583
28584 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
28585
28586 2016-03-02 Richard Biener <rguenther@suse.de>
28587 Uros Bizjak <ubizjak@gmail.com>
28588
28589 PR target/67278
28590 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
28591
28592 2016-03-02 Richard Biener <rguenther@suse.de>
28593
28594 PR middle-end/67278
28595 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
28596
28597 2016-03-02 Marek Polacek <polacek@redhat.com>
28598
28599 PR c/67854
28600 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
28601 "is promoted to" warning.
28602
28603 2016-03-01 DJ Delorie <dj@redhat.com>
28604
28605 * config.gcc: Deprecate mep-*.
28606
28607 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
28608
28609 PR middle-end/70025
28610 * lra-constraints.c (regno_val_use_in): New.
28611 (match_reload): Use it instead of regno_use_in.
28612
28613 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
28614
28615 PR rtl-optimization/70007
28616 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
28617 references present in REG_EQUAL notes attached to non-SET patterns.
28618
28619 2016-03-01 Jeff Law <law@redhat.com>
28620
28621 PR tree-optimization/69196
28622 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
28623 Appropriately clamp the number of statements to copy when the
28624 thread path does not traverse a loop backedge.
28625
28626 PR tree-optimization/69196
28627 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
28628 Do count some PHIs in the thread path against the insn count. Decrease
28629 final statement count by one as the control statement in the last
28630 block will get removed. Remove special cased code for handling PHIs
28631 in the last block.
28632
28633 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
28634
28635 PR target/70027
28636 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
28637 asm dialect alternatives to explicit GOTPCREL calls.
28638
28639 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
28640
28641 PR ada/70017
28642 * ira.c (do_reload): Issue warning for generic stack checking here...
28643 * reload1.c (reload): ...instead of here and streamline it.
28644
28645 2016-03-01 Nick Clifton <nickc@redhat.com>
28646
28647 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
28648
28649 2016-03-01 Richard Biener <rguenther@suse.de>
28650
28651 PR tree-optimization/69983
28652 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
28653 types and fall back to operand_equal_p.
28654
28655 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28656
28657 Revert
28658 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28659
28660 * config/s390/constraints.md ("jm8"): New constraint.
28661 * config/s390/predicates.md ("const_int_8bitset_operand"): New
28662 predicate.
28663 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
28664 into ...
28665 ("*setmem_long<setmem_and>"): New pattern.
28666 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
28667 into ...
28668 ("*setmem_long_31z<setmem_and>"): New pattern.
28669 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
28670 New substitution rules with the required attributes.
28671
28672
28673 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28674
28675 Revert
28676 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28677
28678 * gensupport.c (process_substs_on_one_elem): Split loop to
28679 complete mark_operands_used_in_match_dup on all expressions in the
28680 vector first.
28681 (adjust_operands_numbers): Inline into process_substs_on_one_elem
28682 and remove function.
28683
28684 2016-03-01 Richard Biener <rguenther@suse.de>
28685
28686 PR middle-end/70022
28687 * fold-const.c (fold_indirect_ref_1): Fix range checking for
28688 vector BIT_FIELD_REF extract.
28689
28690 2016-03-01 Richard Biener <rguenther@suse.de>
28691
28692 PR tree-optimization/69994
28693 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
28694
28695 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
28696
28697 PR tree-optimization/69956
28698 * tree-vect-stmts.c (supportable_widening_operation): Support
28699 multi-step conversion of boolean vectors.
28700 (supportable_narrowing_operation): Likewise.
28701
28702 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28703
28704 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
28705 anymore.
28706
28707 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28708
28709 * config/s390/subst.md (DSI_VI): New mode iterator.
28710 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
28711 * config/s390/vector.md ("vec_set<mode>"): Move expander before
28712 the insn definition.
28713 ("*vec_set<mode>"): Change predicate and add alternative to
28714 support only either register or const_int operands as element
28715 selector.
28716 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
28717 operands.
28718 ("vec_extract<mode>"): New expander.
28719 ("*vec_extract<mode>"): New insn definition supporting reg and
28720 const_int element selectors.
28721 ("*vec_extract<mode>_plus"): New insn definition supporting
28722 reg+const_int element selectors.
28723 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
28724 following expander+insn definition.
28725 ("<vec_shifts_name><mode>3"): New expander.
28726 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
28727
28728 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28729
28730 * config/s390/s390.md ("*tabort_1"): Change predicate to
28731 nonmemory_operand. Add a second alternative to cover
28732 register as well as const int operands.
28733 ("*tabort_1_plus"): New pattern definition.
28734
28735 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28736
28737 * config/s390/s390.md ("*ashrdi3_cc_31")
28738 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
28739 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
28740 Merge insn definitions into ...
28741 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
28742 New pattern definition.
28743 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
28744 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
28745 ("*ashr<mode>3_and"): Merge insn definitions into ...
28746 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
28747 New pattern definition.
28748 * config/s390/subst.md ("addr_style_op_cc_subst")
28749 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
28750 substitutions patterns plus attributes.
28751 Add ashiftrt to SUBST iterator.
28752
28753 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28754
28755 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
28756 op2 to nonmemory_operand.
28757 ("*<shift>di3_31", "*<shift>di3_31_and"):
28758 Merge into single pattern definition ...
28759 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
28760 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
28761 pattern definition ...
28762 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
28763 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
28764 iterator.
28765
28766 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28767
28768 * config/s390/predicates.md (const_int_6bitset_operand): New
28769 predicate.
28770 * config/s390/s390.md: Include subst.md.
28771 ("rotl<mode>3"): New expander.
28772 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
28773 ...
28774 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
28775 * config/s390/subst.md: New file.
28776
28777 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28778
28779 * config/s390/s390.md ("op_type", "atype", "length" attributes):
28780 Remove RRR type. It doesn't really exist.
28781 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
28782 attributes.
28783 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
28784 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
28785 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
28786 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
28787 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
28788 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
28789 `enabled' attribute.
28790
28791 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28792
28793 * gensupport.c (process_substs_on_one_elem): Split loop to
28794 complete mark_operands_used_in_match_dup on all expressions in the
28795 vector first.
28796 (adjust_operands_numbers): Inline into process_substs_on_one_elem
28797 and remove function.
28798
28799 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
28800
28801 PR target/69706
28802 * config/sparc/sparc.c (NWORDS_UP): Rename to...
28803 (CEIL_NWORDS): ...this. Use CEIL macro.
28804 (compute_fp_layout): Adjust to above renaming.
28805 (function_arg_union_value): Likewise.
28806 (sparc_arg_partial_bytes): Likewise.
28807 (sparc_function_arg_advance): Likewise.
28808
28809 2016-02-29 Jeff Law <law@redhat.com>
28810
28811 PR tree-optimization/70005
28812 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
28813 where an object with a boolean range is compared against a value
28814 outside [0..1].
28815
28816 PR tree-optimization/69999
28817 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
28818 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
28819 loop cleanups.
28820
28821 2016-02-29 Richard Biener <rguenther@suse.de>
28822
28823 PR tree-optimization/69994
28824 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
28825 (get_unary_op): Look through nop conversions.
28826 (ops_equal_values_p): New function, look for equality diregarding
28827 nop conversions.
28828 (eliminate_plus_minus_pair): Use ops_equal_values_p
28829 (repropagate_negates): Do not use get_unary_op here.
28830
28831 2016-02-29 Martin Liska <mliska@suse.cz>
28832
28833 * system.h: Poison ENABLE_CHECKING macro.
28834
28835 2016-02-29 Martin Liska <mliska@suse.cz>
28836
28837 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
28838 is presented in dump flags.
28839 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
28840 (hsa_regalloc): Likewise.
28841
28842 2016-02-19 Richard Biener <rguenther@suse.de>
28843
28844 PR tree-optimization/69980
28845 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
28846 permutation of those we need to keep.
28847
28848 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
28849
28850 PR target/69706
28851 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
28852 (NWORDS_UP): ...this
28853 (init_cumulative_args): Minor tweaks.
28854 (sparc_promote_function_mode): Likewise.
28855 (scan_record_type): Delete.
28856 (traverse_record_type): New function template.
28857 (classify_data_t): New structure type.
28858 (classify_registers): New inline function.
28859 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
28860 exhausted. Instantiate traverse_record_type on classify_registers and
28861 deal with the case of a structure passed in slot #15 with no FP field
28862 in the first word.
28863 (assign_data_t): New structure type.
28864 (compute_int_layout): New static function.
28865 (compute_fp_layout): Likewise.
28866 (count_registers): New inline function.
28867 (assign_int_registers): New static function.
28868 (assign_fp_registers): Likewise.
28869 (assign_registers): New inline function.
28870 (function_arg_record_value_1): Delete.
28871 (function_arg_record_value_2): Likewise.
28872 (function_arg_record_value_3): Likewise.
28873 (function_arg_record_value): Adjust to above changes. Instantiate
28874 traverse_record_type on count_registers to first count the number of
28875 registers to be used and then on assign_registers to assign them.
28876 (function_arg_union_value): Adjust to above renaming.
28877 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
28878 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
28879 case of a structure passed in slot #15
28880 (sparc_function_arg_advance): Likewise.
28881 (function_arg_padding): Minor tweak.
28882
28883 2016-02-29 Richard Biener <rguenther@suse.de>
28884
28885 PR tree-optimization/69720
28886 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
28887 the adjustment_def path for possibly vectorized defs.
28888 (vect_create_epilog_for_reduction): Handle vectorized initial
28889 defs properly.
28890
28891 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
28892
28893 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
28894
28895 2016-02-27 Jeff Law <law@redhat.com>
28896
28897 Revert
28898 2016-02-26 Richard Biener <rguenther@suse.de>
28899 Jeff Law <law@redhat.com>
28900
28901 PR tree-optimization/69740
28902 * cfghooks.c (remove_edge): Request loop fixups if we delete
28903 an edge that might turn an irreducible loop into a natural
28904 loop.
28905
28906 2016-02-27 Jakub Jelinek <jakub@redhat.com>
28907
28908 PR rtl-optimization/69896
28909 * tree-vect-generic.c (get_compute_type): Avoid single element
28910 vector types.
28911
28912 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
28913
28914 Rename the AArch64 tuning option and related functions to enable the
28915 Newton series for the reciprocal square root to reflect its
28916 approximative characteristic.
28917
28918 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
28919 function to "aarch64_emit_approx_rsqrt".
28920 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
28921 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
28922 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
28923 (xgene1_tunings): Likewise.
28924 (use_rsqrt_p): Likewise.
28925 (aarch64_emit_swrsqrt): Use new function name.
28926 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
28927 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
28928 text explaining this option.
28929 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
28930
28931 2016-02-26 Jakub Jelinek <jakub@redhat.com>
28932
28933 PR target/69969
28934 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
28935 complain about -mallow-movmisalign without -mvsx if
28936 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
28937
28938 2016-02-26 Joel Sherrill <joel@rtems.org>
28939
28940 * config.gcc: Add x86_64-*-rtems*.
28941 * config/i386/rtems-64.h: New file.
28942
28943 2016-02-26 Joel Sherrill <joel@rtems.org>
28944
28945 * config.gcc: Add aarch64-*-rtems*.
28946 * config/aarch64/rtems.h: New file.
28947
28948 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
28949
28950 PR target/69946
28951 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
28952 shift amount using %h. Add comment.
28953
28954 2016-02-26 Richard Biener <rguenther@suse.de>
28955 Jeff Law <law@redhat.com>
28956
28957 PR tree-optimization/69740
28958 * cfghooks.c (remove_edge): Request loop fixups if we delete
28959 an edge that might turn an irreducible loop into a natural
28960 loop.
28961
28962 2016-02-26 Martin Jambor <mjambor@suse.cz>
28963
28964 PR middle-end/69920
28965 * tree-sra.c (sra_modify_assign): Do not remove loads of
28966 uninitialized aggregates to SSA_NAMEs.
28967
28968 2016-02-26 Richard Henderson <rth@redhat.com>
28969
28970 PR target/69709
28971 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
28972 pseudo in case the target rtx matches the source of the left
28973 shift.
28974
28975 2016-02-26 Martin Jambor <mjambor@suse.cz>
28976
28977 PR hsa/69568
28978 * hsa.h (hsa_type_packed_p): Declare.
28979 * hsa.c (hsa_type_packed_p): New function.
28980 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
28981 loads.
28982 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
28983 * hsa-brig.c (emit_basic_insn): Likewise.
28984
28985 2016-02-26 Martin Jambor <mjambor@suse.cz>
28986
28987 pr hsa/69674
28988 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
28989 pointers.
28990 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
28991
28992 2016-02-26 Martin Jambor <mjambor@suse.cz>
28993
28994 * hsa.h (is_a_helper): New overload for hsa_op_immed for
28995 hsa_op_with_type operands.
28996 (hsa_unsigned_type_for_type): Declare.
28997 * hsa.c (hsa_unsigned_type_for_type): New function.
28998 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
28999 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
29000 the finalizer. Do not emit extra move.
29001
29002 2016-02-26 Martin Jambor <mjambor@suse.cz>
29003
29004 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
29005 atomic operations in private segment.
29006
29007 2016-02-26 Martin Jambor <mjambor@suse.cz>
29008
29009 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
29010 statements to wi->info. Also disallow omp simd constructs.
29011 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
29012 for not gridifying. Dump special string for omp_for.
29013
29014 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29015
29016 PR target/69245
29017 * config/aarch64/aarch64.c (aarch64_set_current_function):
29018 Save/restore target globals when switching to
29019 target_option_default_node.
29020
29021 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29022
29023 PR target/69613
29024 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
29025 Return 0 if !SHIFT_COUNT_TRUNCATED.
29026
29027 2016-02-26 Jakub Jelinek <jakub@redhat.com>
29028 Eric Botcazou <ebotcazou@adacore.com>
29029
29030 PR rtl-optimization/69891
29031 * dse.c (scan_insn): If we can't figure out memset arguments
29032 or they are non-constant, call clear_rhs_from_active_local_stores.
29033
29034 2016-02-26 Martin Liska <mliska@suse.cz>
29035
29036 * doc/extend.texi: Mention clog10, clog10f an clog10l
29037 in Builtins section.
29038
29039 2016-02-26 Martin Liska <mliska@suse.cz>
29040
29041 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
29042 CHECKING_P.
29043 (resolve_args_picking_1): Likewise.
29044 * dwarf2out.h (struct GTY): Likewise.
29045
29046 2016-02-26 Martin Liska <mliska@suse.cz>
29047
29048 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
29049 with flag_checking.
29050 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
29051
29052 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
29053 Martin Liska <mliska@suse.cz>
29054
29055 * doc/install.texi: Mention --enable-valgrind-annotations.
29056
29057 2016-02-26 Richard Biener <rguenther@suse.de>
29058
29059 PR tree-optimization/69551
29060 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
29061 looking through aliases adjust DECL_PT_UID to refer to the
29062 ultimate alias target.
29063
29064 2016-02-25 Martin Liska <mliska@suse.cz>
29065
29066 PR middle-end/69919
29067 * alloc-pool.c (after_memory_report): New variable.
29068 * alloc-pool.h (base_pool_allocator ::release): Do not use
29069 the infrastructure if after_memory_report.
29070 * toplev.c (toplev::main): Mark after memory report.
29071
29072 2016-02-25 Richard Biener <rguenther@suse.de>
29073
29074 PR tree-optimization/48795
29075 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
29076
29077 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
29078
29079 PR driver/68463
29080 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
29081 offloading is enabled and -fopenacc or -fopenmp is specified.
29082 (CRTOFFLOADEND): Likewise.
29083 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
29084 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
29085 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
29086 (offload_objects_file_name): New static var.
29087 (tool_cleanup): Remove offload_objects_file_name file.
29088 (find_offloadbeginend): Replace with ...
29089 (find_crtoffloadtable): ... this.
29090 (run_gcc): Remove offload_argc and offload_argv.
29091 Get offload_objects_file_name from -foffload-objects=... option.
29092 Read names of object files with offload from this file, pass them to
29093 compile_images_for_offload_targets. Don't call find_offloadbeginend and
29094 don't pass offloadbegin and offloadend to the linker. Don't pass
29095 offload non-LTO files to the linker, because now they're not claimed.
29096
29097 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
29098
29099 PR ipa/69630
29100 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
29101 on builtin_unreachable.
29102
29103 2016-02-25 Jakub Jelinek <jakub@redhat.com>
29104
29105 PR rtl-optimization/69896
29106 * regcprop.c: Include cfgrtl.h.
29107 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
29108 than remembered mode, either delete it (if noop_move_p), or
29109 treat like copy_p but not noop_p instruction.
29110
29111 2016-02-24 Jakub Jelinek <jakub@redhat.com>
29112
29113 PR debug/69705
29114 * dwarf2out.c (gen_variable_die): Work around buggy LTO
29115 - allow NULL decl for Fortran DW_TAG_common_block variables.
29116
29117 2016-02-24 Jason Merrill <jason@redhat.com>
29118
29119 * common.opt (flifetime-dse): Add -flifetime-dse=1.
29120
29121 2016-02-24 Richard Biener <rguenther@suse.de>
29122 Jakub Jelinek <jakub@redhat.com>
29123
29124 PR middle-end/69760
29125 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
29126 conditionally executed ops to well-defined overflow behavior.
29127
29128 2016-02-24 Jakub Jelinek <jakub@redhat.com>
29129
29130 PR middle-end/69915
29131 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
29132 elements.
29133
29134 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29135
29136 PR rtl-optimization/69886
29137 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
29138 argument. Use it when checking validity of set instructions.
29139 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
29140 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
29141 callsite.
29142 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
29143 * store-motion.c (find_moveable_store): Update
29144 can_assign_to_reg_without_clobbers_p callsite.
29145
29146 2016-02-24 Richard Biener <rguenther@suse.de>
29147
29148 PR middle-end/68963
29149 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
29150 bogus check.
29151 (record_nonwrapping_iv): Do not fall back to the low/high bound
29152 for non-constant IV bases if the stmt is not always executed.
29153
29154 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29155
29156 * config/arm/arm-cores.def (cortex-a32): New entry.
29157 * config/arm/arm-tables.opt: Regenerate.
29158 * config/arm/arm-tune.md: Regenerate.
29159 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
29160 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
29161 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
29162 for -mcpu and -mtune.
29163
29164 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29165
29166 PR target/69875
29167 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
29168 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
29169 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
29170 (atomic_loaddi_1): Delete.
29171 (atomic_loaddi): Rewrite expander using the above changes.
29172
29173 2016-02-24 Jakub Jelinek <jakub@redhat.com>
29174
29175 PR c/69918
29176 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
29177 2 to 3.
29178
29179 2016-02-24 Jakub Jelinek <jakub@redhat.com>
29180 Richard Biener <rguenth@suse.de>
29181
29182 PR middle-end/69909
29183 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
29184 set_mem_attributes if tem is SSA_NAME which got expanded
29185 as a MEM.
29186
29187 2016-02-24 Richard Biener <rguenther@suse.de>
29188
29189 PR tree-optimization/69907
29190 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
29191 end of permutations for BB vectorization.
29192
29193 2016-02-24 Christian Bruel <christian.bruel@st.com>
29194
29195 * config/arm/arm-c.c (arm_option_override): Initialize
29196 target_option_current_node.
29197 * config/arm/arm.c (arm_pragma_target_parse): Replace
29198 build_target_option_node call by target_option_current_node.
29199 Set target_option_current_node.
29200 Fix comments.
29201
29202 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
29203
29204 PR target/69810
29205 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
29206 define_insn_and_split to define_insn.
29207 (zero_extendqi<mode>2_dot2): Same.
29208 (extendqi<mode>2_dot): Same.
29209 (extendqi<mode>2_dot2): Same.
29210
29211 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
29212
29213 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
29214 and add bypass for AES{D,E} and AESMC pairs.
29215 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
29216 and AESMC pairs.
29217
29218 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
29219
29220 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
29221 series for reciprocal square root in Exynos M1.
29222
29223 2016-02-23 Martin Sebor <msebor@redhat.com>
29224
29225 PR c/69759
29226 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
29227 __builtin_alloca_with_align.
29228
29229 2016-02-23 Richard Henderson <rth@redhat.com>
29230
29231 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
29232 (ix86_register_pragmas): Remove __seg_tls.
29233 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
29234 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
29235 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
29236 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
29237 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
29238 * doc/extend.texi (__seg_tls): Remove item.
29239
29240 2016-02-23 Richard Biener <rguenther@suse.de>
29241
29242 * alloc-pool.h (struct allocation_object): Make id member
29243 conditional on CHECKING_P again.
29244 (get_instance): Adjust.
29245 (base_pool_allocator): Likewise.
29246
29247 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
29248
29249 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
29250 (parallelize_loops): In OpenACC kernels mode, set n_threads to
29251 zero.
29252 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
29253 flag_openacc.
29254 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
29255
29256 2016-02-23 Richard Biener <rguenther@suse.de>
29257
29258 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
29259 * bitmap.h (struct bitmap_usage): Likewise.
29260 (bitmap_move): Declare.
29261 * bitmap.c (register_overhead): Take size_t argument.
29262 (bitmap_move): New function.
29263 * df-problems.c (df_rd_transfer_function): Use bitmap_move
29264 to properly account overhead.
29265 * tree.c (free_node): Use tree_size.
29266
29267 2016-02-23 Jakub Jelinek <jakub@redhat.com>
29268
29269 PR c++/69902
29270 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
29271 when inverting comparison.
29272
29273 PR c/69900
29274 * common.opt (Wunreachable-code): Add Warning flag.
29275
29276 2016-02-23 Mark Wielaard <mjw@redhat.com>
29277 Jakub Jelinek <jakub@redhat.com>
29278
29279 PR c/69911
29280 * cgraphunit.c (check_global_declaration): Check main_input_filename
29281 and DECL_SOURCE_FILE are not NULL.
29282
29283 2016-02-23 Martin Jambor <mjambor@suse.cz>
29284
29285 PR tree-optimization/69666
29286 * tree-sra.c (sra_modify_assign): Do not attempt to create
29287 default_def replacements for unscalarizable regions.
29288
29289 2016-02-20 Mark Wielaard <mjw@redhat.com>
29290
29291 PR c/28901
29292 * cgraphunit.c (check_global_declaration): Check level of
29293 warn_unused_const_variable and main_input_filename.
29294 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
29295 (-Wunused-variable): For C implies -Wunused-const-variable=1.
29296 (-Wunused-const-variable): Explain levels 1 and 2.
29297
29298 2016-02-22 Jakub Jelinek <jakub@redhat.com>
29299
29300 PR target/69888
29301 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
29302 identical arguments. Formatting and spelling fixes.
29303
29304 PR target/69885
29305 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
29306 be specified.
29307
29308 PR target/69894
29309 PR target/69895
29310 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
29311 and m68k-devices.def.
29312 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
29313 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
29314
29315 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
29316
29317 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
29318 and HImode registers.
29319
29320 2016-02-22 Richard Biener <rguenther@suse.de>
29321
29322 PR tree-optimization/69882
29323 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
29324 preserve permutations present because of gaps.
29325 (vect_supported_load_permutation_p): Always continue checking
29326 permutations after vect_attempt_slp_rearrange_stmts.
29327
29328 2016-02-22 Bin Cheng <bin.cheng@arm.com>
29329
29330 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
29331 min_profitable_estimate, rather than min_profitable_iters.
29332
29333 2016-02-22 Jakub Jelinek <jakub@redhat.com>
29334
29335 PR target/69885
29336 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
29337 SImode for last match_operand.
29338
29339 2016-02-22 Martin Liska <mliska@suse.cz>
29340
29341 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
29342 return bitsize - 1 as the return value.
29343
29344 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
29345
29346 PR target/69806
29347 PR target/54089
29348 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
29349 Handle negative shift counts.
29350 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
29351 force_reg on the shift constant.
29352 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
29353 (lshrsi3_d): Handle negative shift counts.
29354
29355 2016-02-22 Richard Biener <rguenther@suse.de>
29356 Tom de Vries <tom@codesourcery.com>
29357
29358 * graph.c: Include dumpfile.h.
29359 (print_graph_cfg): Split into three overloads.
29360 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
29361
29362 2016-02-22 Tom de Vries <tom@codesourcery.com>
29363
29364 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
29365 dump-fn.
29366
29367 2016-02-22 Richard Biener <rguenther@suse.de>
29368
29369 PR ipa/37448
29370 * ipa-inline-transform.c (inline_call): When not updating
29371 overall summaries adjust self size by the growth estimate.
29372 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
29373 hash-set, do not update overall summaries here. Renamed from ...
29374 (inline_to_all_callers): ... this which is now wrapping the
29375 above and performing delayed overall summary update.
29376 (early_inline_small_functions): Delay updating of the overall
29377 summary.
29378
29379 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
29380
29381 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
29382 variable.
29383
29384 2016-02-19 Jakub Jelinek <jakub@redhat.com>
29385
29386 PR driver/69805
29387 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
29388 :%* in %:gt() argument.
29389 (greater_than_spec_func): Adjust for expecting only numbers,
29390 if there are more than two numbers, compare the last two.
29391
29392 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
29393
29394 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
29395 -Wnarrowing with -std.
29396
29397 2016-02-19 Jakub Jelinek <jakub@redhat.com>
29398
29399 PR c++/69851
29400 * expr.c (store_field): Don't use bit-field path if exp is
29401 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
29402 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
29403 and the assignment can be performed by bitwise copy. Formatting
29404 fix.
29405
29406 PR middle-end/69838
29407 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
29408 call copy_reg_eh_region_note_forward on before and/or after sequences
29409 and remove note from insn if it no longer can throw.
29410
29411 PR target/69820
29412 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
29413 if TARGET_AVX512BW.
29414
29415 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29416
29417 * config/s390/vector.md: Add missing commutative operand markers
29418 to the patterns which qualify for one.
29419 * config/s390/vx-builtins.md: Likewise.
29420
29421 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29422
29423 * config/s390/vector.md (VI, VI_QHS): Add single element vector
29424 types to mode iterators.
29425 (vec_double): ... and mode attribute.
29426 * config/s390/vx-builtins.md (non_vec_int): Likewise.
29427
29428 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29429
29430 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
29431 Change the predicate of op2 from nonimmediate to general and let
29432 reload fix it if necessary.
29433
29434 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29435
29436 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
29437
29438 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29439
29440 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
29441 mode.
29442
29443 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29444
29445 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
29446 * config/s390/s390.c (s390_expand_vec_movstr): New function.
29447 * config/s390/s390.md ("movstr<P:mode>"): Call
29448 s390_expand_vec_movstr.
29449
29450 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29451
29452 * config/s390/s390.md: Add missing output modifier for operand 1
29453 to print it as address properly.
29454
29455 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29456
29457 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
29458 * config/s390/2964.md: New file.
29459 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
29460 of insn grouping attributes depending on the CPU level.
29461 (s390_get_unit_mask): New function.
29462 (s390_sched_score): Remove the OOO from the scheduling macros.
29463 Add loop to calculate a score for the instruction mix.
29464 (s390_sched_reorder): Likewise plus improve debug output.
29465 (s390_sched_variable_issue): Rename macros as above. Calculate
29466 the unit distances after actually scheduling an insn. Improve
29467 debug output.
29468 (s390_sched_init): Clear last_scheduled_unit_distance array.
29469 * config/s390/s390.md: Include 2964.md.
29470
29471 2016-02-18 Jakub Jelinek <jakub@redhat.com>
29472
29473 PR target/69671
29474 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
29475 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
29476 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
29477 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
29478 *avx512f_<code>v8div16qi2_mask_1): New insns.
29479
29480 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
29481
29482 PR target/68404
29483 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
29484 2016-02-09 change.
29485
29486 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
29487 earlyclobber from target. Use wF constraint for fused memory
29488 address.
29489 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
29490
29491 2016-02-18 Jakub Jelinek <jakub@redhat.com>
29492 Martin Liska <mliska@suse.cz>
29493
29494 PR sanitizer/69863
29495 * cfgexpand.c (asan_sanitize_stack_p): New function.
29496 (partition_stack_vars): Use the function.
29497 (expand_stack_vars): Likewise.
29498 (defer_stack_allocation): Likewise.
29499 (expand_used_vars): Likewise.
29500
29501 2016-02-18 Richard Biener <rguenther@suse.de>
29502
29503 PR middle-end/69553
29504 * fold-const.c (operand_equal_p): Properly compare offsets for
29505 IMAGPART_EXPR and ARRAY_REF.
29506
29507 2016-02-18 Nick Clifton <nickc@redhat.com>
29508
29509 PR target/62254
29510 PR target/69610
29511 * config/arm/arm.c (arm_option_override_internal): Disable
29512 interworking if the target does not support thumb instructions.
29513 (arm_reload_in_hi): Handle the case where a register to register
29514 move needs reloading because there is no simple pattern to handle
29515 it.
29516 (arm_reload_out_hi): Likewise.
29517
29518 2016-02-18 Richard Biener <rguenther@suse.de>
29519
29520 PR middle-end/69854
29521 * match.pd: Don't use fold_binary or fold_unary for folding
29522 constants.
29523
29524 2016-02-17 Jakub Jelinek <jakub@redhat.com>
29525
29526 PR c++/69850
29527 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
29528 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
29529 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
29530 warn on gimple_no_warning_p statements.
29531
29532 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
29533
29534 * doc/extend.texi (C++ Attributes): Correct description of
29535 warn_unused type attribute.
29536
29537 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29538
29539 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
29540 correct instruction.
29541
29542 2016-02-17 Richard Biener <rguenther@suse.de>
29543
29544 PR rtl-optimization/69609
29545 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
29546 (find_traces_1_round): When ending a trace update cached priority
29547 of successors.
29548 (bb_to_key): Use cached priority when available.
29549 (copy_bb): Initialize cached priority.
29550 (reorder_basic_blocks_software_trace_cache): Likewise.
29551
29552 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29553
29554 PR target/69161
29555 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
29556 New predicate.
29557 (aarch64_comparison_operator): Break overly long line into two.
29558 (aarch64_comparison_operation): Likewise.
29559 * config/aarch64/aarch64.md (cstorecc4): Use
29560 aarch64_comparison_operator_mode instead of
29561 aarch64_comparison_operator.
29562 (cstore<mode>4): Likewise.
29563 (aarch64_cstore<mode>): Likewise.
29564 (*cstoresi_insn_uxtw): Likewise.
29565 (cstore<mode>_neg): Likewise.
29566 (*cstoresi_neg_uxtw): Likewise.
29567
29568 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29569
29570 PR target/69161
29571 * config/arm/predicates.md (arm_comparison_operator_mode):
29572 New predicate.
29573 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
29574 instead of arm_comparison_operator.
29575 (*mov_negscc): Likewise.
29576 (*mov_notscc): Likewise.
29577 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
29578 (*thumb2_mov_negscc): Likewise.
29579 (*thumb2_mov_negscc_strict_it): Likewise.
29580 (*thumb2_mov_notscc): Likewise.
29581 (*thumb2_mov_notscc_strict_it): Likewise.
29582
29583 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
29584
29585 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
29586 Add missing return.
29587
29588 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
29589
29590 * config/visium/visium.c (machine_libfunc_index): New enum.
29591 (machine_libfuncs): New structure.
29592 (visium_libfuncs): New static variable.
29593 (TARGET_INIT_LIBFUNCS): Define to...
29594 (visium_init_libfuncs): ...this. New function.
29595 (expand_block_move_4): Use the appropriate libfunc.
29596 (expand_block_move_2): Likewise.
29597 (expand_block_move_1): Likewise.
29598 (expand_block_set_4): Likewise.
29599 (expand_block_set_2): Likewise.
29600 (expand_block_set_1): Likewise.
29601 (visium_trampoline_init): Likewise.
29602
29603 2016-02-17 Nick Clifton <nickc@redhat.com>
29604
29605 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
29606 TI's devices.csv file as of March 2016.
29607
29608 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
29609
29610 PR Target/48344
29611 * opts-global.c (handle_common_deferred_options): Introduce and
29612 initialize two global variables to remember command-line options
29613 specifying a stack-limiting register.
29614 * opts.h: Add extern declarations of the two new global variables.
29615 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
29616 variable based on the values of the two new global variables.
29617
29618 2016-02-16 Jakub Jelinek <jakub@redhat.com>
29619
29620 PR c/69835
29621 * common.opt (Wnonnull-compare): New warning.
29622 * doc/invoke.texi (-Wnonnull): Remove text about comparison
29623 of arguments against NULL.
29624 (-Wnonnull-compare): Document.
29625 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
29626 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
29627 * passes.def (pass_warn_nonnull_compare): Add.
29628 * gimple-ssa-nonnull-compare.c: New file.
29629
29630 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
29631
29632 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
29633 AARCH64_EXTRA_TUNE_RECIP_SQRT.
29634
29635 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
29636
29637 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
29638 reciprocal sqrt for -mlow-precision-recip-sqrt.
29639
29640 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
29641 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29642
29643 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
29644 always use lane loads to construct non-constant vectors.
29645
29646 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
29647
29648 * config/aarch64/aarch64.md
29649 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
29650 constraints for operand 3.
29651 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
29652
29653 2016-02-16 Jakub Jelinek <jakub@redhat.com>
29654 Richard Biener <rguenther@suse.de>
29655
29656 PR tree-optimization/69820
29657 * tree-vect-patterns.c (type_conversion_p): Return false if
29658 *orig_type is unsigned single precision or boolean.
29659 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
29660 Formatting fix.
29661
29662 2016-02-16 Jakub Jelinek <jakub@redhat.com>
29663
29664 PR rtl-optimization/69764
29665 PR rtl-optimization/69771
29666 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
29667 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
29668
29669 2016-02-16 Richard Biener <rguenther@suse.de>
29670
29671 PR tree-optimization/69776
29672 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
29673 sets from caller.
29674 (indirect_refs_may_alias_p): Likewise.
29675 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
29676 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
29677 according to tbaa_p.
29678 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
29679 (optimize_stmt): For redundant store discovery do not allow tbaa.
29680
29681 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
29682
29683 PR tree-optimization/69714
29684 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
29685 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
29686
29687 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
29688
29689 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
29690 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
29691 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
29692 * config/arc/arc.c (arc_init): Check FPU options.
29693 (get_arc_condition_code): Handle new CC_FPU* modes.
29694 (arc_select_cc_mode): Likewise.
29695 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
29696 register pair only. Allow access for ARCv2 accumulator.
29697 (gen_compare_reg): Whenever we have FPU support use FPU compare
29698 instructions.
29699 (arc_reorg): Don't generate brcc insns when FPU compare
29700 instructions are involved.
29701 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
29702 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
29703 floating point emulation.
29704 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
29705 (REVERSE_CONDITION): Add new CC_FPU* modes.
29706 (TARGET_FP_SP_BASE): Define.
29707 (TARGET_FP_DP_BASE): Likewise.
29708 (TARGET_FP_SP_FUSED): Likewise.
29709 (TARGET_FP_DP_FUSED): Likewise.
29710 (TARGET_FP_SP_CONV): Likewise.
29711 (TARGET_FP_DP_CONV): Likewise.
29712 (TARGET_FP_SP_SQRT): Likewise.
29713 (TARGET_FP_DP_SQRT): Likewise.
29714 (TARGET_FP_DP_AX): Likewise.
29715 * config/arc/arc.md (ARCV2_ACC): New constant.
29716 (type): New fpu type attribute.
29717 (SDF): Conditional iterator.
29718 (cstore<mode>, cbranch<mode>): Change expand condition.
29719 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
29720 handles FPU/FPX cases as well.
29721 * config/arc/arc.opt (mfpu): New option.
29722 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
29723 Renamed.
29724 (adddf3, muldf3, subdf3): Removed.
29725 * config/arc/predicates.md (proper_comparison_operator): Recognize
29726 CC_FPU* modes.
29727 * config/arc/fpu.md: New file.
29728 * doc/invoke.texi (ARC Options): Document mfpu option.
29729
29730 2016-02-16 Richard Biener <rguenther@suse.de>
29731
29732 PR rtl-optimization/69291
29733 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
29734 noce_operand_ok check.
29735
29736 2016-02-16 Tom de Vries <tom@codesourcery.com>
29737
29738 PR lto/67709
29739 * omp-low.c (simd_clone_create): Remove call to
29740 symtab->call_cgraph_insertion_hooks.
29741
29742 2016-02-16 Jakub Jelinek <jakub@redhat.com>
29743
29744 PR tree-optimization/69802
29745 * tree-ssa-reassoc.c (update_range_test): If op is
29746 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
29747 op == 1 test of precision 1 integral op, otherwise handle
29748 that case as op itself. Fix up formatting.
29749 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
29750 up formatting.
29751
29752 2016-02-16 Richard Biener <rguenther@suse.de>
29753
29754 PR tree-optimization/69586
29755 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
29756 types for conversion sources.
29757
29758 2016-02-16 Richard Biener <rguenther@suse.de>
29759
29760 PR middle-end/69801
29761 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
29762 mask OEP_ADDRESS_OF.
29763
29764 2016-02-16 Alan Modra <amodra@gmail.com>
29765
29766 PR target/68973
29767 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
29768 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
29769 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
29770 (p8_mtvsrwz): New.
29771 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
29772 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
29773 (p8_fmrgow_<mode>): Likewise.
29774 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
29775 changes.
29776 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
29777 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
29778 to use movdi_internal64. Remove op0_di.
29779 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
29780
29781 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
29782
29783 Add support for the FCCMP insn types
29784
29785 * config/aarch64/aarch64.md (fccmp): Change insn type.
29786 (fccmpe): Likewise.
29787 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
29788 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
29789 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
29790 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
29791 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
29792 * config/arm/types.md (fccmps): Add new insn type.
29793 (fccmpd): Likewise.
29794
29795 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
29796
29797 * alias.c (get_alias_set): Fix a typo in comment.
29798
29799 2016-02-15 Richard Biener <rguenther@suse.de>
29800
29801 PR tree-optimization/69595
29802 * match.pd: Complete range test simplification to true.
29803
29804 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
29805
29806 PR rtl-optimization/69648
29807 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
29808 pic_offset_table_rtx.
29809
29810 PR rtl-optimization/69752
29811 * ira.c (update_equiv_regs): When looking for more than a single SET,
29812 also take other side effects into account.
29813
29814 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
29815
29816 * config/s390/s390.c (s390_function_profiler): Add a new sequence
29817 for z900+ CPUs in 31-bit mode.
29818
29819 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
29820
29821 * common/config/s390/s390-common.c (s390_supports_split_stack):
29822 New function.
29823 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
29824 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
29825 * config/s390/s390.c (struct machine_function): New field
29826 split_stack_varargs_pointer.
29827 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
29828 in s390_emit_prologue.
29829 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
29830 vararg pointer.
29831 (morestack_ref): New global.
29832 (SPLIT_STACK_AVAILABLE): New macro.
29833 (s390_expand_split_stack_prologue): New function.
29834 (s390_live_on_entry): New function.
29835 (s390_va_start): Use split-stack vararg pointer if appropriate.
29836 (s390_asm_file_end): Emit the split-stack note sections.
29837 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
29838 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
29839 (UNSPECV_SPLIT_STACK_CALL): New unspec.
29840 (UNSPECV_SPLIT_STACK_DATA): New unspec.
29841 (split_stack_prologue): New expand.
29842 (split_stack_space_check): New expand.
29843 (split_stack_data): New insn.
29844 (split_stack_call): New expand.
29845 (split_stack_call_*): New insn.
29846 (split_stack_cond_call): New expand.
29847 (split_stack_cond_call_*): New insn.
29848
29849 2016-02-15 Richard Biener <rguenther@suse.de>
29850
29851 PR tree-optimization/69783
29852 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
29853 Add trivially correct cases.
29854
29855 2016-02-15 Tom de Vries <tom@codesourcery.com>
29856
29857 PR lto/69655
29858 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
29859 do_force_output.
29860 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
29861
29862 2016-02-15 Richard Biener <rguenther@suse.de>
29863
29864 PR tree-optimization/69776
29865 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
29866 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
29867 indicate whether we can use TBAA to disambiguate against stores.
29868 Use alias-set zero if not.
29869 (visit_reference_op_store): Do not use TBAA when looking up
29870 redundant stores.
29871 * tree-ssa-pre.c (compute_avail): Use TBAA here.
29872 (eliminate_dom_walker::before_dom_children): But not when looking
29873 up redundant stores.
29874
29875 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
29876
29877 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
29878
29879 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
29880
29881 * config/i386/znver1.md
29882 (znver1_pop, znver1_pop_mem,
29883 znver1_load_imov_double_store,
29884 znver1_load_imov_direct_store,
29885 znver1_load_imov_direct_load,
29886 znver1_load_imov_double_load): Add new.
29887 (znver1_insn, znver1_insn_load): Add icmov type.
29888 (znver1_sseavx_fma,
29889 znver1_sseavx_fma_load,
29890 znver1_avx256_fma,
29891 znver1_avx256_fma_load): Fix pipe usage.
29892
29893 2016-02-14 Alan Modra <amodra@gmail.com>
29894
29895 PR target/68973
29896 * reload.c (find_reloads_address_1): For pre/post-inc/dec
29897 with an invalid hard reg, reload just the reg not the entire
29898 pre/post-inc/dec address expression.
29899
29900 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
29901
29902 PR target/67260
29903 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
29904 fixed R1_REG scratch reg.
29905 (sibcall_value_pcrel_fdpic): Likewise.
29906
29907 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
29908
29909 PR target/67636
29910 PR target/64345
29911 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
29912
29913 2016-02-12 Walter Lee <walt@tilera.com>
29914
29915 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
29916 * config/tilegx/t-tilegx: Likewise.
29917
29918 2016-02-12 David Malcolm <dmalcolm@redhat.com>
29919
29920 PR other/69554
29921 * diagnostic-show-locus.c (struct line_span): New struct.
29922 (layout::get_first_line): Delete.
29923 (layout::get_last_line): Delete.
29924 (layout::get_num_line_spans): New member function.
29925 (layout::get_line_span): Likewise.
29926 (layout::print_heading_for_line_span_index_p): Likewise.
29927 (layout::get_expanded_location): Likewise.
29928 (layout::calculate_line_spans): Likewise.
29929 (layout::m_first_line): Delete.
29930 (layout::m_last_line): Delete.
29931 (layout::m_line_spans): New field.
29932 (layout::layout): Update comment. Replace m_first_line and
29933 m_last_line with m_line_spans, replacing their initialization
29934 with a call to calculate_line_spans.
29935 (diagnostic_show_locus): When printing source lines and
29936 annotations, rather than looping over a single span
29937 of lines, instead loop over each line_span within
29938 the layout, with an inner loop over the lines within them.
29939 Call the context's start_span callback when changing line spans.
29940 * diagnostic.c (diagnostic_initialize): Initialize start_span.
29941 (diagnostic_build_prefix): Break out the building of the location
29942 part of the string into...
29943 (diagnostic_get_location_text): ...this new function, rewriting
29944 it from nested ternary expressions to a sequence of "if"
29945 statements.
29946 (default_diagnostic_start_span_fn): New function.
29947 * diagnostic.h (diagnostic_start_span_fn): New typedef.
29948 (diagnostic_context::start_span): New field.
29949 (default_diagnostic_start_span_fn): New prototype.
29950
29951 2016-02-12 David Malcolm <dmalcolm@redhat.com>
29952
29953 PR driver/69779
29954 * gcc.c (driver::finalize): Fix cleanup of "specs".
29955
29956 2016-02-12 David Malcolm <dmalcolm@redhat.com>
29957
29958 PR driver/69265
29959 PR driver/69453
29960 * gcc.c (driver::driver): Initialize m_option_suggestions.
29961 (driver::~driver): Clean up m_option_suggestions.
29962 (suggest_option): Convert to...
29963 (driver::suggest_option): ...this, and split out into
29964 driver::build_option_suggestions and find_closest_string.
29965 (driver::build_option_suggestions): New function, from
29966 first half of suggest_option. Special-case
29967 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
29968 the sanitizer_opts array. For options of enum types, add the
29969 various enum values to the candidate strings.
29970 (driver::handle_unrecognized_options): Remove "const".
29971 * gcc.h (driver::handle_unrecognized_options): Likewise.
29972 (driver::build_option_suggestions): New decl.
29973 (driver::suggest_option): New decl.
29974 (driver::m_option_suggestions): New field.
29975 * opts-common.c (add_misspelling_candidates): New function.
29976 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
29977 and make non-static.
29978 * opts.h (sanitizer_opts): New array decl.
29979 (add_misspelling_candidates): New function decl.
29980 * spellcheck.c (find_closest_string): New function.
29981 * spellcheck.h (find_closest_string): New function decl.
29982
29983 2016-02-12 Jakub Jelinek <jakub@redhat.com>
29984
29985 PR rtl-optimization/69764
29986 PR rtl-optimization/69771
29987 * optabs.c (expand_binop_directly): For shift_optab_p, force
29988 convert_modes with VOIDmode if xop1 has VOIDmode.
29989
29990 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
29991
29992 PR target/69729
29993 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
29994 to correctly determine instrumentation thunks.
29995
29996 2016-02-12 Jakub Jelinek <jakub@redhat.com>
29997
29998 PR ipa/69241
29999 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
30000 type by reference, force lhs on the call.
30001
30002 PR ipa/68672
30003 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
30004 Compute retval and retbnd early in all cases if split_part_return_p
30005 and return_bb is not EXIT. Remove all clobber stmts and reset
30006 all debug stmts that refer to SSA_NAMEs defined in split part,
30007 except if it is retval, in that case replace the old retval with the
30008 lhs of the call to the split part.
30009
30010 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
30011
30012 revert:
30013 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
30014
30015 PR middle-end/66726
30016 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
30017 whose result is used in PHI.
30018 (maybe_optimize_range_tests): Likewise.
30019 (final_range_test_p): Likweise.
30020
30021 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
30022
30023 PR middle-end/66726
30024 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
30025 whose result is used in PHI.
30026 (maybe_optimize_range_tests): Likewise.
30027 (final_range_test_p): Likweise.
30028
30029 2016-02-12 Jakub Jelinek <jakub@redhat.com>
30030
30031 * cgraph.c: Spelling fixes - behaviour -> behavior and
30032 neighbour -> neighbor.
30033 * target.def: Likewise.
30034 * sel-sched.c: Likewise.
30035 * config/mips/mips.c: Likewise.
30036 * config/arc/arc.md: Likewise.
30037 * config/arm/cortex-a57.md: Likewise.
30038 * config/arm/arm.c: Likewise.
30039 * config/arm/neon.md: Likewise.
30040 * config/arm/arm-c.c: Likewise.
30041 * config/vms/vms-c.c: Likewise.
30042 * config/s390/s390.c: Likewise.
30043 * config/i386/znver1.md: Likewise.
30044 * config/i386/i386.c: Likewise.
30045 * config/ia64/hpux-unix2003.h: Likewise.
30046 * config/msp430/msp430.md: Likewise.
30047 * config/rx/rx.c: Likewise.
30048 * config/rx/rx.md: Likewise.
30049 * config/aarch64/aarch64-simd.md: Likewise.
30050 * config/aarch64/aarch64.c: Likewise.
30051 * config/nvptx/nvptx.c: Likewise.
30052 * config/bfin/bfin.c: Likewise.
30053 * config/cris/cris.opt: Likewise.
30054 * config/rs6000/rs6000.c: Likewise.
30055 * target.h: Likewise.
30056 * spellcheck.c: Likewise.
30057 * ira-build.c: Likewise.
30058 * tree-inline.c: Likewise.
30059 * builtins.c: Likewise.
30060 * lra-constraints.c: Likewise.
30061 * explow.c: Likewise.
30062 * hwint.h: Likewise.
30063 * targhooks.c: Likewise.
30064 * tree-vect-data-refs.c: Likewise.
30065 * expr.c: Likewise.
30066 * doc/tm.texi: Likewise.
30067 * doc/extend.texi: Likewise.
30068 * doc/install.texi: Likewise.
30069 * doc/md.texi: Likewise.
30070 * tree-ssa-tail-merge.c: Likewise.
30071 * sched-int.h: Likewise.
30072 * match.pd: Likewise.
30073 * sched-ebb.c: Likewise.
30074 * target.def (omit_struct_return_reg): Likewise.
30075 * gimple-ssa-isolate-paths.c: Likewise.
30076 (find_implicit_erroneous_behaviour): Renamed to...
30077 (find_implicit_erroneous_behavior): ... this.
30078 (find_explicit_erroneous_behaviour): Renamed to...
30079 (find_explicit_erroneous_behavior): ... this.
30080 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
30081
30082 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
30083
30084 PR rtl-optimization/64682
30085 PR rtl-optimization/69567
30086 PR rtl-optimization/69737
30087 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
30088 in I2 as well, just lose it.
30089
30090 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30091
30092 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
30093 New variable.
30094 (aarch64_last_printed_tune_string): Likewise.
30095 (aarch64_declare_function_name): Only output .arch assembler
30096 directive if it will be different from the previously output
30097 directive. Same for .tune comment but only if -dA is set.
30098 (aarch64_start_file): New function.
30099 (TARGET_ASM_FILE_START): Define.
30100
30101 2016-02-11 David Malcolm <dmalcolm@redhat.com>
30102
30103 PR plugins/69758
30104 * Makefile.in (PLUGIN_HEADERS): Add params.list.
30105
30106 2016-02-11 Jakub Jelinek <jakub@redhat.com>
30107
30108 PR target/65313
30109 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
30110 -Wmaybe-uninitialized warning.
30111
30112 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
30113
30114 PR target/69713
30115 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
30116
30117 2016-02-11 Richard Biener <rguenther@suse.de>
30118
30119 PR rtl-optimization/69291
30120 * ifcvt.c (noce_try_store_flag_constants): Do not allow
30121 subexpressions affected by changing the result.
30122
30123 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
30124
30125 PR target/69148
30126 * lra-constraints.c (curr_insn_transform): Find in/out operands
30127 for secondary memory moves. Update dups.
30128
30129 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
30130
30131 PR tree-optimization/69652
30132 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
30133 to nested loop, did source re-formatting, skip debug statements,
30134 add check on statement with volatile operand, remove dead scalar
30135 statements.
30136
30137 2016-02-10 Jakub Jelinek <jakub@redhat.com>
30138 Patrick Palka <ppalka@gcc.gnu.org>
30139
30140 PR ipa/69241
30141 PR c++/69649
30142 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
30143 calls if the return type is TREE_ADDRESSABLE.
30144 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
30145 * ipa-split.c (split_function): Fix doubled "we" in comment.
30146 Use void return type for the split part even if
30147 !split_point->split_part_set_retval.
30148
30149 2016-02-10 Bin Cheng <bin.cheng@arm.com>
30150
30151 PR tree-optimization/68021
30152 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
30153 when computing the value of biv cand by itself.
30154
30155 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
30156
30157 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
30158 (cortexa57_tunings): Likewise.
30159 (cortexa72_tunings): Likewise.
30160 (arch_macro_fusion_pair_p): Add support for AES fusion.
30161 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
30162 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
30163 Allow virtual registers before reload so early scheduling works.
30164 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
30165 correct latency and pipeline.
30166 (cortex_a57_crypto_complex): Likewise.
30167 (cortex_a57_crypto_xor): Likewise.
30168 (define_bypass): Add AES bypass.
30169
30170 2016-02-10 Richard Biener <rguenther@suse.de>
30171
30172 PR tree-optimization/69726
30173 * passes.def: Add DCE pass before late uninit.
30174 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
30175 really fixup if-conversions job.
30176
30177 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
30178
30179 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
30180 (arm_cortex_a57_tune): Likewise.
30181 (aarch_macro_fusion_pair_p): Add support for AES fusion.
30182 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
30183
30184 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
30185
30186 * timevar.def (TV_PHASE_DBGINFO): Delete.
30187 (TV_PHASE_CHECK_DBGINFO): Likewise.
30188 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
30189
30190 2016-02-10 Richard Biener <rguenther@suse.de>
30191
30192 PR tree-optimization/69719
30193 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
30194 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
30195
30196 2016-02-09 Andrew Pinski <apinski@cavium.com>
30197
30198 PR tree-opt/69282
30199 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
30200 get_vcond_mask_icode returns false.
30201
30202 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
30203
30204 PR target/68404
30205 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
30206 an ADDIS that adds a pointer to a large constant that sets the
30207 upper16 bits with a load operation.
30208
30209 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
30210
30211 PR target/68532
30212 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
30213 order.
30214 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
30215 endian.
30216 (vzipq_s16): Likewise.
30217 (vzipq_s32): Likewise.
30218 (vzipq_f32): Likewise.
30219 (vzipq_u8): Likewise.
30220 (vzipq_u16): Likewise.
30221 (vzipq_u32): Likewise.
30222 (vzipq_p8): Likewise.
30223 (vzipq_p16): Likewise.
30224
30225 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
30226
30227 PR target/68532
30228 * config/arm/arm.c (neon_endian_lane_map): New function.
30229 (neon_vector_pair_endian_lane_map): New function.
30230 (arm_evpc_neon_vuzp): Allow for big endian lane order.
30231 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
30232 endian.
30233 (vuzpq_s16): Likewise.
30234 (vuzpq_s32): Likewise.
30235 (vuzpq_f32): Likewise.
30236 (vuzpq_u8): Likewise.
30237 (vuzpq_u16): Likewise.
30238 (vuzpq_u32): Likewise.
30239 (vuzpq_p8): Likewise.
30240 (vuzpq_p16): Likewise.
30241
30242 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
30243
30244 PR target/69634
30245 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
30246 debug insns.
30247
30248 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
30249
30250 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
30251 truncate const_int operand 1 to QImode.
30252
30253 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
30254
30255 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
30256 corresponding to an abnormal edge.
30257
30258 2016-02-09 Tom de Vries <tom@codesourcery.com>
30259
30260 PR tree-optimization/69599
30261 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
30262 function.
30263 (find_func_aliases_for_builtin_call, find_func_clobbers)
30264 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
30265 partition.
30266
30267 2016-02-09 Richard Biener <rguenther@suse.de>
30268
30269 PR tree-optimization/69715
30270 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
30271 LHS on calls as non-rewritable.
30272
30273 2016-02-09 Tom de Vries <tom@codesourcery.com>
30274
30275 PR lto/69707
30276 * lto-wrapper.c (append_diag_options): New function.
30277 (compile_offload_image): Call append_diag_options.
30278
30279 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
30280
30281 PR other/69722
30282 * doc/extend.texi (Flag Output Operands): Correct sectioning.
30283 Minor copy-edit to fix verb tenses.
30284
30285 2016-02-08 Jakub Jelinek <jakub@redhat.com>
30286
30287 PR tree-optimization/69209
30288 * ipa-split.c (split_function): If split part is not
30289 returning retval, retval has gimple type but is not
30290 gimple value, force it into a SSA_NAME first.
30291
30292 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
30293
30294 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
30295 outdated section.
30296
30297 2016-02-08 Jason Merrill <jason@redhat.com>
30298
30299 PR c++/69631
30300 * convert.c (convert_to_integer_1): Check dofold on truncation
30301 distribution.
30302 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
30303 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
30304 Rename from *_nofold.
30305 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
30306 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
30307
30308 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
30309
30310 PR target/60410
30311 * tree.c (build_common_tree_nodes): Remove short_double argument.
30312 All callers changed.
30313 * tree.h (build_common_tree_nodes): Adjust declaration.
30314 * doc/invoke.texi (-fshort-double): Remove documentation.
30315 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
30316 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
30317 * lto-wrapper.c (merge_and_complain, append_compiler_options)
30318 (append_linker_options): Don't handle OPT_fshort_double.
30319
30320 PR rtl-optimization/68730
30321 * lra-remat.c (insn_to_cand_activation): New static variable.
30322 (lra_remat): Allocate and free it.
30323 (create_cand): New arg activation. Initialize a field in
30324 insn_to_cand_activation if it is nonnull.
30325 (create_cands): Pass the activation insn to create_cand when making
30326 a candidate involving an output reload. Reorganize code a little.
30327 (do_remat): Keep track of active status of candidates in a separate
30328 bitmap.
30329
30330 2016-02-08 Richard Biener <rguenther@suse.de>
30331
30332 PR tree-optimization/69719
30333 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
30334 Properly use absolute of the difference of the two offsets to
30335 compare or adjust the segment length.
30336
30337 2016-02-08 Richard Biener <rguenther@suse.de>
30338 Jeff Law <law@redhat.com>
30339
30340 PR target/68273
30341 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
30342 types for anonymous SSA names.
30343
30344 2016-02-08 Richard Biener <rguenther@suse.de>
30345
30346 PR rtl-optimization/69274
30347 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
30348
30349 2016-02-08 Jeff Law <law@redhat.com>
30350
30351 PR tree-optimization/65917
30352 * tree-ssa-dom.c (record_temporary_equivalences): Record both
30353 equivalences from if (x == y) style conditionals.
30354 (loop_depth_of_name): Remove.
30355 (record_equality): Remove loop depth check.
30356 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
30357 (const_and_copies::record_const_or_copy_raw): New member function.
30358 * tree-ssa-scopedtables.c
30359 (const_and_copies::record_const_or_copy_raw): New, factored out of
30360 (const_and_copies::record_const_or_copy): Call new member function.
30361
30362 2016-02-05 Jeff Law <law@redhat.com>
30363
30364 PR tree-optimization/68541
30365 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
30366 (count_stmts_in_block): New function.
30367 (poor_ifcvt_candidate_code): Likewise.
30368 (is_feasible_trace): Add some heuristics to determine when path
30369 splitting is profitable.
30370 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
30371 is a diamond with a single exit.
30372
30373 2016-02-05 Martin Sebor <msebor@redhat.com>
30374
30375 PR c++/69662
30376 * doc/invoke.texi: Update -Wplacement-new to take an optional
30377 argument.
30378
30379 2016-02-06 Richard Henderson <rth@redhat.com>
30380
30381 PR c/69643
30382 * tree.c (tree_nop_conversion_p): Do not strip casts into or
30383 out of non-standard address spaces.
30384
30385 2016-02-05 Jakub Jelinek <jakub@redhat.com>
30386
30387 PR rtl-optimization/69691
30388 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
30389
30390 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
30391
30392 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
30393 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
30394 (*ieee128_mfvsrd_64bit): Likewise.
30395 (*ieee128_mfvsrd_32bit): Likewise.
30396
30397 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
30398
30399 PR target/69369
30400 Revert r232560:
30401 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
30402
30403 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
30404 instrumented_version.
30405
30406 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
30407
30408 * doc/invoke.texi (Optimize Options): In table of --param options
30409 rename second occurrence of tracer-min-branch-ratio to
30410 tracer-min-branch-probability, rename
30411 tracer-min-branch-ratio-feedback to
30412 tracer-min-branch-probability-feedback and clarify description,
30413 rename sched-spec-state-edge-prob-cutoff to
30414 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
30415 to selsched-insns-to-rename, rename lto-minpartition to
30416 lto-min-partition, delete reorder-blocks-duplicate and
30417 reorder-blocks-duplicate-feedback.
30418
30419 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30420
30421 * config/s390/s390.c (s390_register_info_set_ranges): Remove
30422 superfluous loops.
30423
30424 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
30425
30426 * doc/extend.texi: S/390: Correct some typos.
30427
30428 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30429
30430 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
30431
30432 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30433
30434 PR target/69625
30435 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
30436 (s390_register_info_gprtofpr): Use new macros above.
30437 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
30438 its name.
30439 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
30440 its name. Adjust restore and save gpr ranges.
30441 (s390_register_info_set_ranges): New function.
30442 (s390_register_info): Use new macros above. Call
30443 s390_register_info_set_ranges.
30444 (s390_optimize_register_info): Likewise.
30445 (s390_hard_regno_rename_ok): Use new macros.
30446 (s390_hard_regno_scratch_ok): Likewise.
30447 (s390_emit_epilogue): Likewise.
30448 (s390_can_use_return_insn): Likewise.
30449 (s390_optimize_prologue): Likewise.
30450 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
30451
30452 2016-02-05 Jakub Jelinek <jakub@redhat.com>
30453
30454 PR bootstrap/69677
30455 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
30456 alignment fixes.
30457 (ix86_option_override_internal): Disable TARGET_STV even for
30458 -m{incoming,preferred}-stack-boundary=3.
30459
30460 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
30461
30462 * config.gcc: Mark deprecated rtems targets as obsolete.
30463
30464 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
30465
30466 PR rtl-optimization/64682
30467 PR rtl-optimization/69567
30468 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
30469 before I2 only if the register is both used and set in I2.
30470
30471 2016-02-04 DJ Delorie <dj@redhat.com>
30472
30473 * config/msp430/msp430.c (msp430_start_function): Add function type.
30474
30475 2016-02-04 Jakub Jelinek <jakub@redhat.com>
30476
30477 PR fortran/69368
30478 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
30479
30480 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
30481
30482 PR rtl-optimization/69577
30483 Revert:
30484 2015-10-29 Richard Henderson <rth@redhat.com>
30485
30486 PR target/68124
30487 PR rtl-opt/67609
30488 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
30489 sse check to the exact conditions of PR 67609.
30490
30491 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
30492
30493 PR target/69667
30494 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
30495 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
30496 not allowed into the traditional Altivec registers.
30497 (movtd_64bit_nodm): Likewise.
30498 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
30499
30500 2016-02-04 David Malcolm <dmalcolm@redhat.com>
30501
30502 * config/aarch64/cortex-a57-fma-steering.c
30503 (aarch64_register_fma_steering): Remove "static" from arguments
30504 to register_pass.
30505
30506 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
30507
30508 PR target/69619
30509 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
30510 twice when complex.
30511
30512 2016-02-04 Mike Frysinger <vapier@gentoo.org>
30513
30514 * doc/invoke.texi: Delete -mno-fma4.
30515
30516 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
30517
30518 PR rtl-optimization/69577
30519 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
30520 (find_subregs_of_mode): Update accordingly. Iterate over partial
30521 definitions.
30522
30523 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
30524
30525 * config/arm/arm-protos.h (neon_reinterpret): Remove.
30526 * config/arm/arm.c (neon_reinterpret): Remove.
30527 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
30528 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
30529 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
30530 vreinterpretti): Remove.
30531 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
30532 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
30533 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
30534 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
30535 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
30536 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
30537 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
30538 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
30539 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
30540 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
30541 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
30542 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
30543 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
30544 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
30545 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
30546 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
30547 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
30548 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
30549 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
30550 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
30551 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
30552 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
30553 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
30554 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
30555 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
30556 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
30557 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
30558 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
30559 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
30560 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
30561 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
30562 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
30563 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
30564 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
30565 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
30566 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
30567 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
30568 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
30569 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
30570 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
30571 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
30572 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
30573 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
30574 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
30575 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
30576 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
30577 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
30578 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
30579 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
30580 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
30581 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
30582 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
30583 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
30584 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
30585 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
30586 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
30587 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
30588 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
30589 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
30590 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
30591 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
30592 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
30593 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
30594 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
30595 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
30596 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
30597 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
30598 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
30599 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
30600 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
30601 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
30602 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
30603 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
30604 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
30605 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
30606 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
30607 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
30608 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
30609 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
30610 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
30611 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
30612 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
30613 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
30614 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
30615 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
30616 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
30617 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
30618 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
30619 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
30620 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
30621 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
30622 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
30623 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
30624 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
30625 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
30626 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
30627 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
30628 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
30629 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
30630 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
30631 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
30632 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
30633 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
30634
30635 2016-02-04 Martin Liska <mliska@suse.cz>
30636
30637 PR sanitizer/69276
30638 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
30639 that are gimple_store_p.
30640 (maybe_instrument_call): Likewise.
30641
30642 2016-02-04 Bin Cheng <bin.cheng@arm.com>
30643
30644 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
30645 register scaling out of memory reference and comment why.
30646
30647 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30648
30649 PR target/65932
30650 PR target/67714
30651 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
30652 folding the source of a SET.
30653
30654 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30655
30656 PR target/65932
30657 PR target/67714
30658 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
30659 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
30660
30661 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
30662
30663 PR target/65932
30664 PR target/67714
30665 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
30666 HImode.
30667
30668 2016-02-04 Christian Bruel <christian.bruel@st.com>
30669
30670 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
30671 * config/arm/arm.c (arm_set_current_function): Likewise.
30672
30673 2016-02-04 Jakub Jelinek <jakub@redhat.com>
30674 Ilya Enkovich <enkovich.gnu@gmail.com>
30675 H.J. Lu <hongjiu.lu@intel.com>
30676
30677 PR target/69454
30678 * config/i386/i386.c (convert_scalars_to_vector): Remove
30679 stack alignment fixes.
30680 (ix86_option_override_internal): Disable TARGET_STV if stack
30681 might not be aligned enough.
30682 (ix86_minimum_alignment): Assert that TARGET_STV is false.
30683
30684 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
30685
30686 * config/i386/x86-tune.def: Disable default prefetching
30687 for -march=znver1.
30688
30689 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
30690 Vladimir Makarov <vmakarov@redhat.com>
30691
30692 PR target/69461
30693 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
30694 in validating fused toc addresses.
30695
30696 2016-02-03 Jakub Jelinek <jakub@redhat.com>
30697
30698 PR c/69627
30699 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
30700 range->m_caret fields if range->m_show_caret_p is false.
30701
30702 PR target/69644
30703 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
30704 Force oldval into register if it does not satisfy reg_or_short_operand
30705 predicate. Fix up formatting.
30706
30707 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
30708 Alexandre Oliva <aoliva@redhat.com>
30709
30710 PR target/69461
30711 * lra-constraints.c (simplify_operand_subreg): Check additionally
30712 address validity after potential reloading.
30713 (process_address_1): Check insns validity. In case of failure do
30714 nothing.
30715
30716 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
30717
30718 PR target/69118
30719 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
30720 Fix target.
30721
30722 2016-02-02 Jakub Jelinek <jakub@redhat.com>
30723
30724 * wide-int.cc (canonize_uhwi): New function.
30725 (wi::divmod_internal): Use it.
30726
30727 2016-02-02 James Norris <jnorris@codesourcery.com>
30728
30729 * gimplify.c (omp_notice_variable): Add usage check.
30730
30731 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
30732
30733 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
30734 like LE, GE, LT, GT when emitting relational operator.
30735
30736 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
30737
30738 * ira-costs.c (find_costs_and_classes): Add extra argument.
30739 * target.def (ira_change_pseudo_allocno_class): Add parameter.
30740 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
30741 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
30742 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
30743 Add best_class parameter, and return it if not ALL_REGS.
30744 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
30745 Add parameter.
30746 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
30747 Update target hook.
30748
30749 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
30750
30751 * config/aarch64/aarch64.c
30752 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
30753 (aarch64_ira_change_pseudo_allocno_class): New function.
30754
30755 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
30756
30757 PR target/67032
30758 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
30759
30760 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
30761
30762 * config/avr/avr.c (avr_option_override): Set
30763 PARAM_ALLOW_STORE_DATA_RACES to 1.
30764
30765 2016-02-02 Richard Biener <rguenther@suse.de>
30766
30767 PR tree-optimization/69595
30768 * match.pd: Add range test simplifications to true/false.
30769
30770 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
30771
30772 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
30773 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
30774 instead.
30775
30776 2016-02-02 Richard Biener <rguenther@suse.de>
30777
30778 PR tree-optimization/69606
30779 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
30780 info on the result before moving a stmt.
30781
30782 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
30783
30784 PR middle-end/68542
30785 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
30786 branch with vector comparison.
30787 * config/i386/sse.md (VI48_AVX): New mode iterator.
30788 (define_expand "cbranch<mode>4): Add support for conditional branch
30789 with vector comparison.
30790 * tree-vect-loop.c (optimize_mask_stores): New function.
30791 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
30792 has_mask_store field of vect_info.
30793 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
30794 vectorized loops having masked stores after vec_info destroy.
30795 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
30796 correspondent macros.
30797 (optimize_mask_stores): Add prototype.
30798
30799 2016-02-02 Alan Modra <amodra@gmail.com>
30800
30801 PR target/69548
30802 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
30803 allow subregs.
30804
30805 2016-02-02 Alan Modra <amodra@gmail.com>
30806
30807 PR target/68662
30808 * config/rs6000/rs6000.c (need_toc_init): New var, set it
30809 whenever toc_label_name used.
30810 (rs6000_file_start): Don't set up toc section here,
30811 (rs6000_output_function_epilogue): do so here instead,
30812 (rs6000_xcoff_file_start): and here.
30813 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
30814 (load_toc_aix_di): Likewise.
30815
30816 2016-02-01 Jakub Jelinek <jakub@redhat.com>
30817
30818 PR rtl-optimization/69592
30819 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
30820 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
30821 (num_sign_bit_copies_binary_arith_p): New inline function.
30822 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
30823
30824 2016-02-01 Jeff Law <law@redhat.com>
30825
30826 PR tree-optimization/69580
30827 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
30828 * tree-ssa-threadbackward.c
30829 (fsm_find_control_statement_thread_paths): Do not try to walk
30830 through large PHI nodes.
30831
30832 2016-02-01 Jakub Jelinek <jakub@redhat.com>
30833
30834 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
30835 when count is incremented above limit, don't analyze further
30836 insns afterwards.
30837
30838 * omp-low.c (oacc_parse_default_dims): Avoid
30839 -Wsign-compare warning, make sure value fits into int
30840 rather than just unsigned int.
30841
30842 2016-02-01 Bin Cheng <bin.cheng@arm.com>
30843
30844 PR tree-optimization/67921
30845 * fold-const.c (split_tree): New parameters. Convert pointer
30846 type variable part to proper type before negating.
30847 (fold_binary_loc): Pass new arguments to split_tree.
30848
30849 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
30850
30851 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
30852 (nvptx_goacc_validate_dims): Extend to handle global defaults.
30853 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
30854 * doc/tm.texti: Rebuilt.
30855 * doc/invoke.texi (fopenacc-dim): Document.
30856 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
30857 (append_compiler_options): Likewise.
30858 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
30859 (oacc_parse_default_dims): New.
30860 (oacc_validate_dims): Add USED arg. Select non-unity default when
30861 possible.
30862 (oacc_loop_fixed_partitions): Return mask of used partitions.
30863 (oacc_loop_auto_partitions): Emit dump info.
30864 (oacc_loop_partition): Return mask of used partitions.
30865 (execute_oacc_device_lower): Parse default dimension arg. Adjust
30866 loop partitioning and validation calls.
30867
30868 2016-02-01 Richard Biener <rguenther@suse.de>
30869
30870 PR middle-end/69556
30871 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
30872
30873 2016-02-01 Richard Biener <rguenther@suse.de>
30874
30875 PR tree-optimization/69574
30876 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
30877 of asserting return chrec_dont_know.
30878
30879 2016-02-01 Martin Liska <mliska@suse.cz>
30880
30881 * mem-stats-traits.h: Add copyright header.
30882 * mem-stats.h: Likewise.
30883
30884 2016-02-01 Richard Biener <rguenther@suse.de>
30885
30886 PR tree-optimization/69579
30887 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
30888 Do not propagate through abnormal PHI results.
30889
30890 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
30891
30892 * postreload.c (reload_cse_simplify): Remove dead code.
30893
30894 2016-02-01 Jakub Jelinek <jakub@redhat.com>
30895
30896 PR rtl-optimization/69570
30897 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
30898 if there is more than one set, not if there is a single set.
30899
30900 2016-02-01 Richard Henderson <rth@redhat.com>
30901
30902 PR rtl-opt/69535
30903 * combine.c (make_compound_operation): When looking through a
30904 subreg, make sure to re-extend to the width of the outer mode.
30905
30906 2016-01-30 Jakub Jelinek <jakub@redhat.com>
30907
30908 PR tree-optimization/69546
30909 * wide-int.cc (wi::divmod_internal): For unsigned division
30910 where both operands fit into uhwi, if o1 is 1 and o0 has
30911 msb set, if divident_prec is larger than bits per hwi,
30912 clear another quotient word and return 2 instead of 1.
30913 Similarly for remainder with msb in HWI set, if dividend_prec
30914 is larger than bits per hwi.
30915
30916 2016-01-29 Martin Jambor <mjambor@suse.cz>
30917
30918 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
30919 Use short lowercase names.
30920 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
30921 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
30922 acq_rel one. Protect warning agains segfaults if
30923 get_memory_order_name returns NULL.
30924 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
30925 with release semantics. Do not warn if get_memory_order already did.
30926 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
30927 semantics. Fix check for relaxed or acquire semantics. Do not warn
30928 if get_memory_order already did.
30929
30930 2016-01-29 Sebastian Pop <s.pop@samsung.com>
30931
30932 * doc/install.texi: Document that isl-0.16 is supported.
30933
30934 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
30935
30936 PR target/69299
30937 * config/i386/constraints.md (Bm): Describe as special memory
30938 constraint.
30939 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
30940 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
30941 * genpreds.c (struct constraint_data): Add is_special_memory.
30942 (have_special_memory_constraints, special_memory_start): New
30943 static vars.
30944 (special_memory_end): Ditto.
30945 (add_constraint): Add new arg is_special_memory. Add code to
30946 process its true value. Update have_special_memory_constraints.
30947 (process_define_constraint): Pass the new arg.
30948 (process_define_register_constraint): Ditto.
30949 (choose_enum_order): Process special memory.
30950 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
30951 function insn_extra_special_memory_constraint.
30952 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
30953 * gensupport.c (process_rtx): Process
30954 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
30955 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
30956 * ira-lives.c (single_reg_class): Use
30957 insn_extra_special_memory_constraint.
30958 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
30959 * lra-constraints.c (process_alt_operands): Ditto.
30960 (curr_insn_transform): Use insn_extra_special_memory_constraint.
30961 * recog.c (asm_operand_ok, preprocess_constraints): Process
30962 CT_SPECIAL_MEMORY.
30963 * reload.c (find_reloads): Ditto.
30964 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
30965 * stmt.c (parse_input_constraint): Use
30966 insn_extra_special_memory_constraint.
30967
30968 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
30969
30970 PR target/69530
30971 * lra-splill.c (lra_final_code_change): Revert r229087 by
30972 removing all sub-registers.
30973
30974 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
30975
30976 PR target/65604
30977 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
30978
30979 2016-01-29 Jakub Jelinek <jakub@redhat.com>
30980
30981 PR target/69551
30982 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
30983 SSE1, copy target into the temporary reg first before recursing
30984 on it.
30985
30986 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
30987
30988 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
30989 with vm.
30990
30991 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
30992
30993 * ginclude/stdarg.h: Test __cplusplus instead of
30994 __GXX_EXPERIMENTAL_CXX0X__.
30995
30996 2016-01-29 Richard Biener <rguenther@suse.de>
30997
30998 PR tree-optimization/69547
30999 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
31000 Do not mark clobbers necessary.
31001 (mark_all_reaching_defs_necessary_1): Likewise.
31002
31003 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
31004
31005 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
31006 declaration name with %qs and print it in both error messages.
31007 Also fix indentation.
31008
31009 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
31010
31011 PR other/69006
31012 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
31013 trailing blank line from error message.
31014
31015 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
31016
31017 PR c++/69462
31018 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
31019 for C++-11.
31020
31021 2016-01-29 Richard Biener <rguenther@suse.de>
31022
31023 PR middle-end/69537
31024 * match.pd: Allow all integral types when simplifying a
31025 widening or sign-changing conversion.
31026
31027 2016-01-28 Sebastian Pop <s.pop@samsung.com>
31028
31029 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
31030 back to setting codegen_error to fail codegen.
31031
31032 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
31033
31034 PR target/69459
31035 * config/i386/constraints.md (C): Only accept constant zero operand.
31036 (BC): New constraint.
31037 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
31038 instead of C constraint.
31039 * doc/md.texi (Machine Constraints): Update description
31040 of C constraint.
31041
31042 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
31043
31044 PR target/68400
31045 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
31046
31047 2016-01-28 Jakub Jelinek <jakub@redhat.com>
31048
31049 PR middle-end/69542
31050 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
31051 non-debug insns.
31052
31053 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
31054
31055 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
31056 branches if using guessed profile.
31057
31058 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
31059
31060 * graphite-optimize-isl.c (optimize_isl): Fix dump.
31061
31062 2016-01-28 Richard Henderson <rth@redhat.com>
31063
31064 PR target/69305
31065 * config/aarch64/aarch64-modes.def (CC_Cmode): New
31066 * config/aarch64/aarch64-protos.h: Update.
31067 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
31068 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
31069 (aarch64_get_condition_code_1): Handle CC_Cmode.
31070 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
31071 (*add<mode>3_compareC_cconly_imm): New.
31072 (*add<mode>3_compareC_cconly): New.
31073 (*add<mode>3_compareC_imm): New.
31074 (add<mode>3_compareC): New.
31075 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
31076 to be first. Use aarch64_carry_operation.
31077 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
31078 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
31079 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
31080 (subti3): Use subdi3_compare1.
31081 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
31082 (sub<mode>3_compare1): New.
31083 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
31084 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
31085 (*subsi3_carryin_uxtw): Likewise.
31086 (*ngc<mode>, *ngcsi_uxtw): Likewise.
31087 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
31088 * config/aarch64/iterators.md (DWI): New.
31089 * config/aarch64/predicates.md (aarch64_carry_operation): New.
31090 (aarch64_borrow_operation): New.
31091
31092 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
31093
31094 * graphite-optimize-isl.c (optimize_isl): Print a different debug
31095 message when isl does not return a valid schedule.
31096
31097 2016-01-28 Sebastian Pop <s.pop@samsung.com>
31098
31099 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
31100 Remove comments from class declarations: they are already in the code
31101 close by the defs.
31102
31103 2016-01-28 Sebastian Pop <s.pop@samsung.com>
31104
31105 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
31106 codegen_error_p.
31107 (ternary_op_to_tree): Same.
31108 (unary_op_to_tree): Same.
31109 (nary_op_to_tree): Same.
31110 (gcc_expression_from_isl_expr_op): Same.
31111 (gcc_expression_from_isl_expression): Same.
31112 (graphite_create_new_loop): Same.
31113 (graphite_create_new_loop_guard): Same.
31114 (build_iv_mapping): Same.
31115 (graphite_create_new_guard): Same.
31116 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
31117 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
31118
31119 2016-01-28 Sebastian Pop <s.pop@samsung.com>
31120
31121 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
31122 instead of setting codegen_error to fail codegen.
31123
31124 2016-01-28 Jason Merrill <jason@redhat.com>
31125
31126 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
31127
31128 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
31129
31130 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
31131 Remove CONST_INT_P check in CCMP cost calculation.
31132
31133 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
31134
31135 * config/aarch64/aarch64.c (generic_vector_cost):
31136 Set vec_permute_cost.
31137 (cortexa57_vector_cost): Likewise.
31138 (exynosm1_vector_cost): Likewise.
31139 (xgene1_vector_cost): Likewise.
31140 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
31141 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
31142 Add vec_permute_cost entry.
31143
31144 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
31145
31146 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
31147 immediate as %1.
31148 (add<mode>3_compare0): Likewise.
31149 (addsi3_compare0_uxtw): Likewise.
31150 (add<mode>3nr_compare0): Likewise.
31151 (compare_neg<mode>): Likewise.
31152 (<optab><mode>3): Likewise.
31153
31154 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
31155
31156 * tree-vect-stmts.c (vectorizable_comparison): Add
31157 NULL check for vectype.
31158
31159 2016-01-28 Richard Biener <rguenther@suse.de>
31160
31161 PR tree-optimization/69466
31162 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
31163 Account for PHIs we couldn't duplicate.
31164
31165 2016-01-28 Martin Liska <mliska@suse.cz>
31166
31167 PR pch/68758
31168 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
31169 instead of ENABLE_VALGRIND_CHECKING.
31170
31171 2016-01-27 Richard Henderson <rth@redhat.com>
31172
31173 PR rtl-opt/69447
31174 * lra-remat.c (subreg_regs): New.
31175 (dump_candidates_and_remat_bb_data): Dump it.
31176 (operand_to_remat): Reject if operand in subreg_regs.
31177 (set_bb_regs): Collect subreg_regs.
31178 (lra_remat): Init and free subreg_regs. Compute
31179 calculate_local_reg_remat_bb_data before create_cands.
31180
31181 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
31182
31183 PR target/68986
31184 * config/i386/i386.c (ix86_update_stack_boundary): Don't
31185 change stack_alignment_needed for __tls_get_addr call.
31186
31187 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
31188
31189 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
31190
31191 2016-01-27 Jeff Law <law@redhat.com>
31192
31193 PR tree-optimization/68398
31194 PR tree-optimization/69196
31195 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
31196 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
31197 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
31198 Only count PHIs in the last block in the path. The others will
31199 const/copy propagate away. Add heuristic to allow more irreducible
31200 subloops to be created when it is likely profitable to do so.
31201
31202 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
31203 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
31204 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
31205
31206 2016-01-27 Jakub Jelinek <jakub@redhat.com>
31207
31208 PR lto/69254
31209 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
31210 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
31211 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
31212 * tree-streamer-in.c: Include asan.h.
31213 (streamer_get_builtin_tree): For builtins in sanitizer
31214 range call initialize_sanitizer_builtins and retry.
31215
31216 2016-01-27 Ian Lance Taylor <iant@google.com>
31217
31218 * common.opt (fkeep-gc-roots-live): New undocumented option.
31219 * tree-ssa-loop-ivopts.c (add_candidate_1): If
31220 -fkeep-gc-roots-live, skip pointers.
31221 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
31222 NULL.
31223
31224 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
31225
31226 PR target/69512
31227 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
31228 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
31229
31230 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
31231
31232 PR target/68380
31233 * configure.ac: NetBSD provides SSP in its C library.
31234 * configure: Updated.
31235
31236 2016-01-27 Richard Biener <rguenther@suse.de>
31237
31238 PR tree-optimization/69166
31239 * tree-vect-loop.c (vect_is_simple_reduction): Always check
31240 reduction code for commutativity / associativity.
31241
31242 2016-01-27 Martin Jambor <mjambor@suse.cz>
31243
31244 PR tree-optimization/69355
31245 * tree-sra.c (analyze_access_subtree): Correct hole detection when
31246 total_scalarization fails.
31247
31248 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
31249
31250 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
31251 power9.
31252
31253 2016-01-27 Christian Bruel <christian.bruel@st.com>
31254
31255 PR target/69245
31256 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
31257 Move arm_reset_previous_fndecl and set_target_option_current_node in
31258 the conditional part. Call save_restore_target_globals.
31259 * config/arm/arm.c (arm_set_current_function):
31260 Refactor to better support #pragma target and attribute mix.
31261 Call save_restore_target_globals.
31262 * config/arm/arm-protos.h (save_restore_target_globals): New function.
31263
31264 2016-01-27 Martin Liska <mliska@suse.cz>
31265
31266 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
31267 reference for an HSA kernel and its host function.
31268
31269 2016-01-27 Jakub Jelinek <jakub@redhat.com>
31270
31271 PR tree-optimization/69399
31272 * wide-int.h (wi::lrshift): For larger precisions, only
31273 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
31274
31275 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
31276
31277 * config/arc/predicates.md (proper_comparison_operator): Reject
31278 constant-constant comparison.
31279
31280 2016-01-26 Tom de Vries <tom@codesourcery.com>
31281
31282 PR tree-optimization/69110
31283 * tree-data-ref.c (initialize_data_dependence_relation): Handle
31284 DR_NUM_DIMENSIONS == 0.
31285
31286 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
31287 Sebastian Pop <s.pop@samsung.com>
31288
31289 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
31290 isl_ast_op_cond and isl_ast_op_select.
31291 (gcc_expression_from_isl_expr_op): Same.
31292
31293 2016-01-26 Jason Merrill <jason@redhat.com>
31294
31295 PR c++/68782
31296 * tree.c (recompute_constructor_flags): Split out from
31297 build_constructor.
31298 (verify_constructor_flags): New.
31299 * tree.h: Declare them.
31300
31301 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
31302
31303 PR rtl-optimization/69217
31304 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
31305 are no TYPE_FIELDS set for the record type.
31306
31307 2016-01-26 Jakub Jelinek <jakub@redhat.com>
31308
31309 PR target/68662
31310 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
31311 toc_label_name unconditionally.
31312 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
31313 SYMBOL_REF string. Use toc_label_name instead of constructing
31314 LCTOC1.
31315 (rs6000_elf_declare_function_name): Use toc_label_name instead of
31316 constructing LCTOC1.
31317
31318 2016-01-26 Martin Sebor <msebor@redhat.com>
31319
31320 PR other/69477
31321 * doc/extend.texi (Common Type Attributes): Move text that talks about
31322 attribute packed from attribute aligned to the section discussing
31323 the former attribute for clarity.
31324
31325 2016-01-26 Richard Henderson <rth@redhat.com>
31326
31327 PR middle-end/60908
31328 * trans-mem.c (tm_region_init): Mark entry block as visited.
31329
31330 2016-01-26 David Malcolm <dmalcolm@redhat.com>
31331
31332 PR other/69006
31333 * diagnostic-show-locus.c (layout::print_source_line): Replace
31334 call to pp_newline with call to layout::print_newline.
31335 (layout::print_annotation_line): Likewise.
31336 (layout::move_to_column): Likewise.
31337 (layout::print_any_fixits): After printing any fixits, print a
31338 trailing newline, if necessary.
31339 (layout::print_newline): New method, resetting any colorization
31340 before a newline.
31341 (diagnostic_show_locus): Move the pp_newline to before the
31342 early bailout. Remove dummy block enclosing the layout instance.
31343 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
31344 of pp_newline_and_flush with pp_flush.
31345 (diagnostic_append_note): Delete use of pp_newline.
31346 (diagnostic_append_note_at_rich_loc): Delete.
31347 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
31348 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
31349 when newline characters are added to the buffer.
31350
31351 2016-01-26 Michael Matz <matz@suse.de>
31352
31353 * configure.ac (ac_cv_std_swap_in_utility): New test.
31354 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
31355 * configure: Regenerate.
31356 * config.in: Regenerate.
31357
31358 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
31359
31360 * config/arc/arc.md (cstoresi4): Force operand into register.
31361 (arcset<code>): Fix predicate.
31362 (arcsetltu): Likewise.
31363 (arcsetgeu): Likewise.
31364 (arcsethi): Likewise.
31365 (arcsetls): Likewise.
31366
31367 2016-01-26 Jakub Jelinek <jakub@redhat.com>
31368
31369 PR tree-optimization/69483
31370 * gimple-fold.c (canonicalize_constructor_val): Return NULL
31371 if base has error_mark_node type.
31372
31373 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
31374
31375 PR target/68620
31376 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
31377 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
31378 New helper macros.
31379 (vget_lane_f16): Handle big-endian.
31380 (vgetq_lane_f16): Likewise.
31381 (vset_lane_f16): Likewise.
31382 (vsetq_lane_f16): Likewise.
31383 * config/arm/iterators.md (VQXMOV): Add V8HF.
31384 (VDQ): Add V4HF and V8HF.
31385 (V_reg): Handle V4HF and V8HF.
31386 (Is_float_mode): Likewise.
31387 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
31388 neon_vdup_nv8hf): New patterns.
31389 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
31390 Use VD_LANE iterator.
31391 (neon_vld1_dup<mode>): Use VQ2 iterator.
31392
31393 2016-01-26 Nathan Sidwell <nathan@acm.org>
31394
31395 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
31396 (set_oacc_fn_attrib): Add IS_KERNEL arg.
31397 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
31398 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
31399 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
31400 (oacc_validate_dims): Add LEVEL arg, don't return level.
31401 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
31402 oacc_validate_dims.
31403 (execute_oacc_device_lower): Adjust, add more dump output.
31404 * tree-ssa-loop.c (gate_oacc_kernels): Use
31405 oacc_fn_attrib_kernels_p.
31406 * tree-parloops.c (create_parallel_loop): Adjust
31407 set_oacc_fn_attrib call.
31408
31409 2016-01-26 Jakub Jelinek <jakub@redhat.com>
31410
31411 PR lto/69254
31412 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
31413 (append_compiler_options): Handle -fcilkplus.
31414 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
31415
31416 2016-01-26 Nick Clifton <nickc@redhat.com>
31417
31418 PR target/66655
31419 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
31420 been marked as DECL_ONE_ONLY but we do not the means to make it
31421 so, then do not allow it to bind locally.
31422
31423 2016-01-26 Jakub Jelinek <jakub@redhat.com>
31424
31425 PR lto/69254
31426 * opts.h (parse_sanitizer_options): New prototype.
31427 * opts.c (sanitizer_opts): New array.
31428 (parse_sanitizer_options): New function.
31429 (common_handle_option): Use parse_sanitizer_options.
31430
31431 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
31432
31433 PR target/68986
31434 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
31435 alignment adjustment to ...
31436 (ix86_update_stack_boundary): Here. Don't over-align stack for
31437 __tls_get_addr.
31438 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
31439 if __tls_get_addr is called.
31440
31441 2016-01-26 Christian Bruel <christian.bruel@st.com>
31442
31443 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
31444
31445 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
31446
31447 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
31448
31449 2016-01-26 Richard Biener <rguenther@suse.de>
31450
31451 PR middle-end/69467
31452 * match.pd: Guard X * CST CMP 0 pattern with single_use.
31453
31454 2016-01-26 Richard Biener <rguenther@suse.de>
31455
31456 PR tree-optimization/69452
31457 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
31458 (move_computations_dom_walker::before_dom_children): Rename
31459 to ...
31460 (move_computations_worker): This.
31461 (move_computations): Perform an RPO rather than a DOM walk.
31462
31463 2016-01-26 Jakub Jelinek <jakub@redhat.com>
31464
31465 PR target/69442
31466 * combine.c (combine_instructions): For REG_EQUAL note with
31467 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
31468 to the underlying register.
31469 * doc/rtl.texi (REG_EQUAL): Document the behavior of
31470 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
31471
31472 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
31473
31474 PR target/67896
31475 * config/aarch64/aarch64-builtins.c
31476 (aarch64_init_simd_builtin_types): Do not set structural
31477 equality to __Poly{8,16,64,128}_t types.
31478
31479 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
31480
31481 PR tree-optimization/69400
31482 * wide-int.cc (wi_pack): Take the precision as argument and
31483 perform canonicalization here rather than in the callers.
31484 Use the main loop to handle all full-width HWIs. Add a
31485 zero HWI if in_len isn't a full result.
31486 (wi::divmod_internal): Update accordingly.
31487 (wi::mul_internal): Likewise. Simplify.
31488
31489 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
31490 Sebastian Pop <s.pop@samsung.com>
31491
31492 * graphite-poly.c (apply_poly_transforms): Simplify.
31493 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
31494 (print_isl_map): Same.
31495 (print_isl_union_map): Same.
31496 (print_isl_schedule): New.
31497 (debug_isl_schedule): New.
31498 * graphite-dependences.c (scop_get_reads): Do not call
31499 isl_union_map_add_map that is undocumented isl functionality.
31500 (scop_get_must_writes): Same.
31501 (scop_get_may_writes): Same.
31502 (scop_get_original_schedule): Remove.
31503 (scop_get_dependences): Do not call isl_union_map_compute_flow that
31504 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
31505 (compute_deps): Remove.
31506 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
31507 (debug_schedule_ast): New.
31508 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
31509 set_separate_option.
31510 (graphite_regenerate_ast_isl): Add dump.
31511 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
31512 from scop->transformed_schedule.
31513 (graphite_regenerate_ast_isl): Add more dump.
31514 * graphite-optimize-isl.c (optimize_isl): Set
31515 scop->transformed_schedule. Check whether schedules are equal.
31516 (apply_poly_transforms): Move here.
31517 * graphite-poly.c (apply_poly_transforms): ... from here.
31518 (free_poly_bb): Static.
31519 (free_scop): Static.
31520 (pbb_number_of_iterations_at_time): Remove.
31521 (print_isl_ast): New.
31522 (debug_isl_ast): New.
31523 (debug_scop_pbb): New.
31524 * graphite-scop-detection.c (print_edge): Move.
31525 (print_sese): Move.
31526 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
31527 (build_scop_scattering): Remove.
31528 (create_pw_aff_from_tree): Assert instead of bailing out.
31529 (add_condition_to_pbb): Remove unused code, do not fail.
31530 (add_conditions_to_domain): Same.
31531 (add_conditions_to_constraints): Remove.
31532 (build_scop_context): New.
31533 (add_iter_domain_dimension): New.
31534 (build_iteration_domains): Initialize pbb->iterators.
31535 Call add_conditions_to_domain.
31536 (nested_in): New.
31537 (loop_at): New.
31538 (index_outermost_in_loop): New.
31539 (index_pbb_in_loop): New.
31540 (outermost_pbb_in): New.
31541 (add_in_sequence): New.
31542 (add_outer_projection): New.
31543 (outer_projection_mupa): New.
31544 (add_loop_schedule): New.
31545 (build_schedule_pbb): New.
31546 (build_schedule_loop): New.
31547 (embed_in_surrounding_loops): New.
31548 (build_schedule_loop_nest): New.
31549 (build_original_schedule): New.
31550 (build_poly_scop): Call build_original_schedule.
31551 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
31552 (free_poly_dr): Remove.
31553 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
31554 (free_poly_bb): Remove.
31555 (debug_loop_vec): Remove.
31556 (print_isl_ast): Declare.
31557 (debug_isl_ast): Declare.
31558 (scop_do_interchange): Remove.
31559 (scop_do_strip_mine): Remove.
31560 (scop_do_block): Remove.
31561 (flatten_all_loops): Remove.
31562 (optimize_isl): Remove.
31563 (pbb_number_of_iterations_at_time): Remove.
31564 (debug_scop_pbb): Declare.
31565 (print_schedule_ast): Declare.
31566 (debug_schedule_ast): Declare.
31567 (struct scop): Remove schedule. Add original_schedule,
31568 transformed_schedule.
31569 (free_gimple_poly_bb): Remove.
31570 (print_generated_program): Remove.
31571 (debug_generated_program): Remove.
31572 (unify_scattering_dimensions): Remove.
31573 * sese.c (print_edge): ... here.
31574 (print_sese): ... here.
31575 (debug_edge): ... here.
31576 (debug_sese): ... here.
31577 * sese.h (print_edge): Declare.
31578 (print_sese): Declare.
31579 (dump_edge): Declare.
31580 (dump_sese): Declare.
31581
31582 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
31583 Sebastian Pop <s.pop@samsung.com>
31584
31585 * Makefile.in: Set ISLVER in site.exp.
31586
31587 2016-01-25 Jakub Jelinek <jakub@redhat.com>
31588
31589 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
31590 DECL_VALUE_EXPR of new_var even for the non-array case. Look
31591 through DECL_VALUE_EXPR for expansion.
31592
31593 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
31594
31595 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
31596 the frame info after reload completed.
31597
31598 2016-01-25 Jeff Law <law@redhat.com>
31599
31600 PR tree-optimization/69196
31601 PR tree-optimization/68398
31602 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
31603 tree-ssa-threadupdate.c.
31604 (determine_bb_domination_status): Prototype
31605 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
31606 (determine_bb_domination_status): No longer static.
31607 (valid_jump_thread_path): Remove code to detect characteristics
31608 of the jump thread path not associated with correctness.
31609 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
31610 Correct test for thread path length. Count PHIs for real operands as
31611 statements that need to be copied. Do not count ASSERT_EXPRs.
31612 Look at all the blocks in the thread path. Compute and selectively
31613 filter thread paths based on threading through the latch, threading
31614 a multiway branch or crossing a multiway branch.
31615
31616 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31617
31618 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
31619 decl with __attribute__ ((unused)) annotation.
31620
31621 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
31622
31623 PR target/69421
31624 * tree-vect-stmts.c (vectorizable_condition): Check vectype
31625 of operands is compatible with a statement vectype.
31626
31627 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
31628
31629 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
31630 improve wording for mixed storage order support.
31631
31632 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
31633
31634 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
31635 (vcvt_u64_f64): Likewise.
31636 (vcvta_s64_f64): Likewise.
31637 (vcvta_u64_f64): Likewise.
31638 (vcvtm_s64_f64): Likewise.
31639 (vcvtm_u64_f64): Likewise.
31640 (vcvtn_s64_f64): Likewise.
31641 (vcvtn_u64_f64): Likewise.
31642 (vcvtp_s64_f64): Likewise.
31643 (vcvtp_u64_f64): Likewise.
31644
31645 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
31646
31647 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
31648 (arc_init): Check validity mll64 option.
31649 (arc_save_restore): Use double load/store instruction.
31650 (arc_expand_movmem): Likewise.
31651 (arc_split_move): Don't split if we have double load/store
31652 instructions. Returns a boolean.
31653 (arc_process_double_reg_moves): Change function to return boolean
31654 instead of a sequence of instructions.
31655 (arc_dwarf_register_span): New function.
31656 * config/arc/arc-protos.h (arc_split_move): Change prototype.
31657 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
31658 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
31659 (*movdf_insn): Likewise.
31660 * config/arc/arc.opt (mll64): New option.
31661 * config/arc/predicates.md (even_register_operand): New predicate.
31662 * doc/invoke.texi (ARC Options): Add mll64 documentation.
31663
31664 2016-01-25 Richard Biener <rguenther@suse.de>
31665
31666 PR lto/69393
31667 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
31668 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
31669 DECL_NAMELESS.
31670 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
31671
31672 2016-01-25 Richard Biener <rguenther@suse.de>
31673
31674 PR tree-optimization/69376
31675 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
31676 flag.
31677 (VN_INFO_ANTI_RANGE_P): New inline.
31678 (VN_INFO_RANGE_TYPE): Likewise.
31679 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
31680 SSA_NAME_ANTI_RANGE_P.
31681 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
31682 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
31683 Properly query VN_INFO_RANGE_TYPE.
31684
31685 2016-01-25 Nick Clifton <nickc@redhat.com>
31686
31687 PR target/66655
31688 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
31689
31690 2016-01-23 Tom de Vries <tom@codesourcery.com>
31691
31692 PR tree-optimization/69426
31693 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
31694 removed clobber.
31695
31696 2016-01-23 Jakub Jelinek <jakub@redhat.com>
31697
31698 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
31699 "the the" with "the" in the comments.
31700 * ipa-devirt.c (build_type_inheritance_graph,
31701 update_type_inheritance_graph): Likewise.
31702 * tree.c (build_function_type_list_1): Likewise.
31703 * cfgloopmanip.c (scale_loop_profile): Likewise.
31704 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
31705 * gimple-ssa-split-paths.c
31706 (find_block_to_duplicate_for_splitting_paths): Likewise.
31707 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
31708 * expr.c (convert_move): Likewise.
31709 * var-tracking.c (vt_stack_adjustments): Likewise.
31710 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
31711 * tree-vrp.c (test_for_singularity): Likewise.
31712
31713 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
31714 directly instead of building a temporary tree.
31715
31716 PR bootstrap/69434
31717 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
31718 remove <algorithm> include.
31719
31720 2016-01-22 Jakub Jelinek <jakub@redhat.com>
31721
31722 PR target/69432
31723 * config/i386/i386.c: Include dojump.h.
31724 (expand_small_movmem_or_setmem,
31725 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
31726 fixes.
31727 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
31728 if dynamic_check != -1.
31729
31730 2016-01-21 Jeff Law <law@redhat.com>
31731
31732 PR middle-end/69347
31733 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
31734 record_temporary_equivalences. Rewritten to avoid unnecessary calls
31735 into dominated_by_p.
31736 (cprop_into_successor_phis): Avoid unnecessary tests.
31737
31738 2016-01-22 Richard Henderson <rth@redhat.com>
31739
31740 PR target/69416
31741 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
31742 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
31743
31744 2016-01-22 Michael Matz <matz@suse.de>
31745
31746 * system.h (string, algorithm): Include only conditionally.
31747 (new): Include always under C++.
31748 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
31749 * final.c (toplevel): Ditto.
31750 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
31751 * genconditions.c (write_header): Make gencondmd.c define
31752 INCLUDE_STRING.
31753 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
31754
31755 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
31756 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
31757
31758 2016-01-22 Christian Bruel <christian.bruel@st.com>
31759
31760 PR target/68674
31761 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
31762
31763 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31764
31765 PR target/69403
31766 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
31767 define_insn_and_split. Ensure operands[1] and operands[0] do not
31768 get assigned the same register.
31769
31770 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
31771
31772 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
31773
31774 2016-01-22 Christian Bruel <christian.bruel@st.com>
31775
31776 * config/arm/arm-c.c (arm_pragma_target_parse):
31777 Remove warn_builtin_macro_redefined overwrite.
31778
31779 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
31780
31781 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
31782 flag_non_call_exceptions compatibility.
31783
31784 2016-01-22 Jakub Jelinek <jakub@redhat.com>
31785
31786 PR debug/66668
31787 * dwarf2out.c (add_child_die_after): New function.
31788 (dwarf_qual_info_t): New type.
31789 (dwarf_qual_info): New variable.
31790 (qualified_die_p): New function.
31791 (modified_type_die): For -fdebug-types-section, ensure
31792 canonical order of qualifiers. Put qualified DIEs adjacent
31793 to the corresponding non-qualified type DIE and search there
31794 for existing qualified DIEs.
31795
31796 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
31797
31798 * doc/extend.texi (scalar_storage_order type attribute): Document
31799 restriction on type punning and aliasing, and remove future tense.
31800
31801 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
31802
31803 PR target/69252
31804 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
31805 first stage.
31806
31807 2016-01-21 Jeff Law <law@redhat.com>
31808
31809 PR middle-end/69347
31810 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
31811 useless call to record_temporary_equivalences.
31812 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
31813 allocate 10 slots in the bb_path vector and let it grow as needed.
31814 (fsm_find_control_statement_thread_paths): Similarly for the next_path
31815 vector.
31816
31817 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
31818
31819 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
31820 Detangle.
31821 * configure: Regenerate.
31822
31823 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
31824
31825 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
31826 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
31827
31828 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
31829
31830 PR middle-end/66178
31831 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
31832 drop EXPAND_INITIALIZER.
31833 * rtl.h (contains_symbolic_reference_p): Declare.
31834 * rtlanal.c (contains_symbolic_reference_p): New function.
31835 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
31836 a subtraction into a NOT if symbolic constants are involved.
31837
31838 2016-01-21 Anton Blanchard <anton@samba.org>
31839 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31840
31841 PR target/63354
31842 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
31843 #define.
31844 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
31845 function.
31846
31847 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
31848
31849 * config/microblaze/microblaze.c
31850 (get_branch_target): New.
31851 (insert_wic_for_ilb_runout): New.
31852 (insert_wic): New.
31853 (microblaze_machine_dependent_reorg): New.
31854 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
31855 * config/microblaze/microblaze.md
31856 (UNSPEC_IPREFETCH): Define.
31857 (iprefetch): New pattern
31858 * config/microblaze/microblaze.opt
31859 (mxl-prefetch): New flag.
31860
31861 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
31862
31863 * config/microblaze/microblaze.h
31864 (FIXED_REGISTERS): Update in macro.
31865 (CALL_USED_REGISTERS): Update in macro.
31866
31867 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
31868
31869 PR rtl-optimization/68920
31870 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
31871 moves.
31872
31873 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
31874
31875 PR rtl-optimization/68990
31876 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
31877 pseudo instead of inheritance ones.
31878
31879 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
31880 Nick Clifton <nickc@redhat.com>
31881
31882 PR target/69129
31883 PR target/69012
31884 * config/mips/mips.c (mips_compute_frame_info): Initialise
31885 args_size and hard_frame_pointer_offset fields of the frame
31886 structure before calling mips_global_pointer.
31887
31888 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
31889
31890 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
31891 label reference.
31892 * configure: Regenerate.
31893
31894 2016-01-21 Richard Biener <rguenther@suse.de>
31895
31896 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
31897
31898 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
31899
31900 * config/s390/s390.c (s390_asm_declare_function_size): Add code
31901 to actually emit the .size directive.
31902
31903 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
31904 Jakub Jelinek <jakub@redhat.com>
31905
31906 PR target/69187
31907 PR target/65624
31908 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
31909 args array size by one to avoid buffer overflow.
31910
31911 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
31912
31913 * config/s390/s390.md (pool_section_start): Use switch_to_section
31914 to select proper read-only data section instead of hardcoding
31915 .rodata.
31916 (pool_section_end): Use switch_to_section to match the above.
31917
31918 2016-01-21 Richard Biener <rguenther@suse.de>
31919
31920 PR tree-optimization/69378
31921 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
31922 (set_ssa_val_to): Use it for dominance checks taking into
31923 account not executable edges.
31924
31925 2016-01-21 Jakub Jelinek <jakub@redhat.com>
31926
31927 PR c++/69355
31928 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
31929 for bitsize instead of GET_MODE_PRECISION (mode).
31930
31931 2016-01-20 Martin Sebor <msebor@redhat.com>
31932
31933 PR c/52291
31934 * extend.texi (__sync Builtins): Clarify the semantics of
31935 __sync_fetch_and_OP built-ins on pointers.
31936 (__atomic Builtins): Same.
31937
31938 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
31939 Sebastian Pop <s.pop@samsung.com>
31940
31941 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
31942 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
31943 (is_valid_rename): Same.
31944 (translate_isl_ast_to_gimple::get_rename): Same.
31945 (translate_isl_ast_to_gimple::rename_all_uses): Same.
31946 (translate_isl_ast_to_gimple::rename_uses): Same.
31947 (get_new_name): Check for close_phi nodes.
31948 (copy_loop_phi_args): Use phi_node_kind.
31949 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
31950 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
31951
31952 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
31953 Sebastian Pop <s.pop@samsung.com>
31954
31955 Revert commit r229783.
31956 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
31957 Remove use of parameter_rename_map.
31958 (copy_def): Remove.
31959 (copy_internal_parameters): Remove.
31960 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
31961 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
31962 (free_sese_info): Do not free parameter_rename_map.
31963 (set_rename): Do not use parameter_rename_map.
31964 (rename_uses): Update call to set_rename.
31965 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
31966 * sese.h (parameter_rename_map_t): Remove.
31967 (struct sese_info_t): Remove field parameter_rename_map.
31968
31969 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
31970 Sebastian Pop <s.pop@samsung.com>
31971
31972 * graphite-isl-ast-to-gimple.c: Fix comment.
31973 * graphite-scop-detection.c (defined_in_loop_p): New.
31974 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
31975 names defined in loop.
31976
31977 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
31978 Sebastian Pop <s.pop@samsung.com>
31979
31980 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
31981 Discard unstructured if-then-else regions.
31982
31983 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
31984 Sebastian Pop <s.pop@samsung.com>
31985
31986 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
31987 (cleanup_loop_iter_dom): Remove.
31988 (build_loop_iteration_domains): Remove.
31989 (build_scop_context): Remove.
31990 (build_scop_iteration_domain): Remove.
31991 (add_loop_constraints): New.
31992 (build_iteration_domains): New.
31993 (build_poly_scop): Call build_iteration_domains.
31994
31995 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
31996 Sebastian Pop <s.pop@samsung.com>
31997
31998 * graphite-scop-detection.c
31999 (scop_detection::harmful_loop_in_region): Free dom and loops.
32000 (scop_detection::loop_body_is_valid_scop): Free bbs.
32001
32002 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32003 Sebastian Pop <s.pop@samsung.com>
32004
32005 * graphite-scop-detection.c (record_loop_in_sese): New.
32006 (gather_bbs::before_dom_children): Call record_loop_in_sese.
32007 (build_scops): Remove call to build_sese_loop_nests.
32008 * sese.c (sese_record_loop): Remove.
32009 (build_sese_loop_nests): Remove.
32010 (new_sese_info): Remove region->loops.
32011 (free_sese_info): Same.
32012 * sese.h (sese_contains_loop): Same.
32013 (build_sese_loop_nests): Remove.
32014 (sese_contains_loop): Remove.
32015
32016 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32017 Sebastian Pop <s.pop@samsung.com>
32018
32019 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
32020 loop_is_valid_in_scop.
32021 (scop_detection::harmful_stmt_in_region): Renamed
32022 harmful_loop_in_region.
32023 Call loop_is_valid_in_scop.
32024
32025 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32026 Sebastian Pop <s.pop@samsung.com>
32027
32028 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
32029 isl_ast_node_mark.
32030
32031 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32032 Sebastian Pop <s.pop@samsung.com>
32033
32034 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
32035 * graphite.h (struct poly_bb): Remove field is_reduction.
32036 (PBB_IS_REDUCTION): Remove.
32037
32038 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
32039 Sebastian Pop <s.pop@samsung.com>
32040
32041 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
32042 (add_pdr_constraints): Same.
32043 (scop_get_reads): Same.
32044 (scop_get_must_writes): Same.
32045 (scop_get_may_writes): Same.
32046 (scop_get_original_schedule): Same.
32047 (extend_schedule): Same.
32048 (apply_schedule_on_deps): Same.
32049 (carries_deps): Same.
32050 (compute_deps): Same.
32051 (scop_get_dependences): Same.
32052 * graphite-isl-ast-to-gimple.c
32053 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
32054 * graphite-optimize-isl.c (get_schedule_for_band): Same.
32055 (get_schedule_for_band_list): Same.
32056 (get_schedule_map): Same.
32057 (apply_schedule_map_to_scop): Same.
32058 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
32059 (build_loop_iteration_domains): Same.
32060 (add_condition_to_pbb): Same.
32061 (add_param_constraints): Same.
32062 (pdr_add_memory_accesses): Same.
32063 (pdr_add_data_dimensions): Same.
32064
32065 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
32066
32067 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
32068 requirements.
32069
32070 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
32071
32072 * common.opt (feliminate-dwarf2-dups): Replace references to
32073 "DWARF 2" with just "DWARF".
32074 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
32075 * doc/extend.texi: Likewise.
32076 * doc/cpp.texi: Likewise.
32077 * doc/invoke.texi: Likewise.
32078 (Option Summary): Add -gdwarf to list of Debugging Options.
32079 (Debugging Options): Document -gdwarf.
32080 * doc/contrib.texi: Spell "DWARF" like that.
32081
32082 2016-01-21 Jakub Jelinek <jakub@redhat.com>
32083
32084 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
32085 warning. Fix up formatting.
32086
32087 PR middle-end/67653
32088 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
32089 attempt to mark memory input operand addressable and
32090 call prepare_gimple_addressable in that case. Don't adjust
32091 input_location for diagnostics, use error_at instead.
32092
32093 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
32094
32095 * config/rs6000/ppc-auxv.h: New file.
32096 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
32097 (cpu_is): Likewise.
32098 (cpu_supports): Likewise.
32099 * config/rs6000/rs6000.c: include "ppc-auxv.h".
32100 (cpu_is_info): New variable.
32101 (cpu_supports_info): Likewise.
32102 (tcb_verification_symbol): Likewise.
32103 (cpu_builtin_p): Likewise.
32104 (cpu_expand_builtin): New function.
32105 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
32106 (rs6000_init_builtins): Likewise.
32107 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
32108 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
32109 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
32110 * configure: Regenerate.
32111 * config.in: Likewise.
32112 * doc/extend.texi (PowerPC Built-in Functions): Document
32113 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
32114
32115 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
32116
32117 PR target/68609
32118 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
32119 domain check.
32120 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
32121 for V4SFmode.
32122
32123 2016-01-20 Richard Henderson <rth@redhat.com>
32124
32125 PR bootstrap/69343
32126 PR bootstrap/69339
32127 PR tree-opt/68964
32128 Revert:
32129 * tree.c (tm_define_builtin): New.
32130 (find_tm_vector_type): New.
32131 (build_tm_vector_builtins): New.
32132 (build_common_builtin_nodes): Call it.
32133
32134 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
32135
32136 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
32137 (arm_fp_ok): Likewise.
32138 (arm_fp): Likewise.
32139 (arm_crypto): Likewise.
32140
32141 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
32142 Richard Biener <rguenther@suse.de>
32143
32144 PR tree-optimization/69328
32145 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
32146 vectors have same number of elements.
32147 (vectorizable_condition): Fix masked version recognition.
32148
32149 2016-01-20 Richard Biener <rguenther@suse.de>
32150
32151 PR tree-optimization/69345
32152 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
32153 (VN_INFO_PTR_INFO): Likewise.
32154 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
32155 info when it is equal between non-dominating SSA names.
32156 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
32157 Make sure to look at original SSA infos.
32158
32159 2016-01-20 Jeff Law <law@redhat.com>
32160
32161 PR target/25114
32162 * config/m68k/predicates.md (pow2_m1_operand): New predicate
32163 extracted from ...
32164 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
32165 (pc_or_label_operand): New predicate.
32166 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
32167 tests for small integers that are 2^n - 1.
32168
32169 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
32170
32171 * doc/invoke.texi (Options Summary): Add '.' after @xref.
32172
32173 2016-01-19 Jeff Law <law@redhat.com>
32174
32175 PR middle-end/69347
32176 * tree-ssa-threadbackwards.c
32177 (fsm_find_control_statement_thread_paths): Do not try to lookup
32178 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
32179
32180 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
32181
32182 * doc/lto.texi: Remove text that says only Gold has linker plugin
32183 support.
32184
32185 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
32186
32187 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
32188 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
32189 the DIE accordingly.
32190 (modified_type_die): Add REVERSE parameter and pass it recursively,
32191 as well as to base_type_die. Adjust presence check accordingly.
32192 (base_type_for_mode): Adjust call to modified_type_die.
32193 (add_type_attribute): Add REVERSE parameter and pass it to
32194 modified_type_die.
32195 (generic_parameter_die): Adjust call to add_type_attribute.
32196 (add_scalar_info): Likewise.
32197 (add_subscript_info): Likewise.
32198 (gen_array_type_die): Likewise.
32199 (gen_descr_array_type_die): Likewise.
32200 (gen_entry_point_die): Likewise.
32201 (gen_enumeration_type_die): Likewise.
32202 (gen_formal_parameter_die): Likewise.
32203 (gen_subprogram_die): Likewise.
32204 (gen_variable_die ): Likewise.
32205 (gen_const_die): Likewise.
32206 (gen_field_die): Likewise.
32207 (gen_pointer_type_die): Likewise.
32208 (gen_reference_type_die): Likewise.
32209 (gen_ptr_to_mbr_type_die): Likewise.
32210 (gen_inheritance_die): Likewise.
32211 (gen_subroutine_type_die): Likewise.
32212 (gen_typedef_die): Likewise.
32213 (force_type_die): Adjust call to modified_type_die.
32214
32215 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
32216
32217 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
32218 flow throughout the file. Fix broken link to Objective-C 2.0
32219 documentation.
32220 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
32221 errors.
32222
32223 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
32224
32225 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
32226
32227 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32228
32229 PR ipa/66223
32230 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
32231 (maybe_record_node): Record cxa_pure_virtual as the only possible
32232 target if there are not ohter candidates.
32233 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
32234
32235 2016-01-19 Richard Biener <rguenther@suse.de>
32236
32237 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
32238 (get_memory_order): Likewise.
32239
32240 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
32241
32242 * tree-vect-stmts.c (vectorizable_store): Check
32243 rhs vectype.
32244
32245 2016-01-19 David Malcolm <dmalcolm@redhat.com>
32246
32247 PR jit/68446
32248 * gcc.c (driver::decode_argv): Add call to
32249 init_opts_obstack before init_options_struct.
32250 * opts.c (init_opts_obstack): Remove idempotency.
32251 (init_options_struct): Replace call to init_opts_obstack
32252 with a gcc_assert to verify that it has already been called.
32253 * toplev.c (toplev::main): Add call to init_opts_obstack before
32254 calls to init_options_struct.
32255 (toplev::finalize): Move cleanup of opts_obstack next to
32256 cleanup of save_decoded_options, clearing the latter, and
32257 save_decoded_options_count.
32258
32259 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32260
32261 PR target/69135
32262 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
32263 attribute to unconditional. Remove %? from output template.
32264
32265 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
32266 Jiong Wang <jiong.wang@arm.com>
32267
32268 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
32269 generated from different expand order.
32270
32271 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
32272
32273 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
32274 Add support for CCMP costing.
32275
32276 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
32277
32278 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
32279 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
32280 (fccmpe<mode>): Likewise.
32281 (fcmp): Rename to fcmp and globalize pattern.
32282 (fcmpe): Likewise.
32283 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
32284 (aarch64_gen_ccmp_next): Add FP support.
32285
32286 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
32287
32288 * target.def (gen_ccmp_first): Update documentation.
32289 (gen_ccmp_next): Likewise.
32290 * doc/tm.texi (gen_ccmp_first): Update documentation.
32291 (gen_ccmp_next): Likewise.
32292 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
32293 expand_ccmp_expr_1. Improve comments.
32294 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
32295 (ccmp_ior<mode>): Remove pattern.
32296 (cmp<mode>): Remove expand.
32297 (cmp): Globalize pattern.
32298 (cstorecc4): Use cc_register.
32299 (mov<mode>cc): Remove ccmp_cc_register check.
32300 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
32301 Simplify after removal of CC_DNE/* modes.
32302 (aarch64_ccmp_mode_to_code): Remove.
32303 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
32304 In 'k' case use integer as condition.
32305 (aarch64_nzcv_codes): Remove inverted cases.
32306 (aarch64_code_to_ccmode): Remove.
32307 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
32308 comparison with CC register to be used in folowing CCMP/branch/CSEL.
32309 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
32310 pattern. Return the comparison with CC register. Invert conditions
32311 when bitcode is OR.
32312 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
32313 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
32314
32315 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32316
32317 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
32318 instrumented_version.
32319
32320 2016-01-19 Richard Biener <rguenther@suse.de>
32321
32322 PR tree-optimization/69336
32323 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
32324 handled components with get_ref_base_and_extent.
32325 (equal_mem_array_ref_p): Adjust.
32326
32327 2016-01-19 Jakub Jelinek <jakub@redhat.com>
32328
32329 PR debug/65779
32330 * shrink-wrap.c: Include valtrack.h.
32331 (move_insn_for_shrink_wrap): Add DEBUG argument. If
32332 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
32333 in between insn and where it will be moved to. Call
32334 dead_debug_insert_temp.
32335 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
32336 first and dead_debug_local_finish at the end.
32337 For uses and defs bitmap, handle all regs in between REGNO and
32338 END_REGNO, not just the first one.
32339
32340 2016-01-19 Richard Biener <rguenther@suse.de>
32341
32342 PR tree-optimization/69352
32343 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
32344 (equal_mem_array_ref_p): Constrain size and max size properly.
32345 Compare the reverse flag.
32346
32347 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
32348
32349 * ira.c (ira): Update regstat data if we deleted insns.
32350
32351 2016-01-19 Jakub Jelinek <jakub@redhat.com>
32352
32353 PR rtl-optimization/68955
32354 PR rtl-optimization/64557
32355 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
32356 here. Fix up formatting.
32357 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
32358
32359 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32360
32361 PR lto/69133
32362 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
32363 assume that the node has body.
32364 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
32365 check.
32366
32367 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32368
32369 * lto-streamer-out.c (lto_output): Do not stream instrumentation
32370 thunks.
32371
32372 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32373
32374 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
32375 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
32376
32377 2016-01-19 Martin Jambor <mjambor@suse.cz>
32378 Martin Liska <mliska@suse.cz>
32379 Michael Matz <matz@suse.de>
32380
32381 * Makefile.in (OBJS): Add new source files.
32382 (GTFILES): Add hsa.c.
32383 * common.opt (disable_hsa): New variable.
32384 (-Whsa): New warning.
32385 * config.in (ENABLE_HSA): New.
32386 * configure.ac: Treat hsa differently from other accelerators.
32387 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
32388 $enable_offloading.
32389 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
32390 * doc/install.texi (Configuration): Document --with-hsa-runtime,
32391 --with-hsa-runtime-include, --with-hsa-runtime-lib and
32392 --with-hsa-kmt-lib.
32393 * doc/invoke.texi (-Whsa): Document.
32394 (hsa-gen-debug-stores): Likewise.
32395 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
32396 to invoke offload compiler for hsa acclerator.
32397 * opts.c (common_handle_option): Determine whether HSA offloading
32398 should be performed.
32399 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
32400 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
32401 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
32402 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
32403 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
32404 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
32405 GF_OMP_FOR_KIND_GRID_LOOP.
32406 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
32407 (pp_gimple_stmt_1): Likewise.
32408 * gimple-walk.c (walk_gimple_stmt): Likewise.
32409 * gimple.c (gimple_build_omp_grid_body): New function.
32410 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
32411 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
32412 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
32413 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
32414 GF_OMP_TEAMS_GRID_PHONY.
32415 (gimple_statement_omp_single_layout): Updated comments.
32416 (gimple_build_omp_grid_body): New function.
32417 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
32418 (gimple_omp_for_grid_phony): New function.
32419 (gimple_omp_for_set_grid_phony): Likewise.
32420 (gimple_omp_parallel_grid_phony): Likewise.
32421 (gimple_omp_parallel_set_grid_phony): Likewise.
32422 (gimple_omp_teams_grid_phony): Likewise.
32423 (gimple_omp_teams_set_grid_phony): Likewise.
32424 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
32425 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
32426 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
32427 (BUILT_IN_GOMP_TARGET): Updated type.
32428 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
32429 (adjust_for_condition): New function.
32430 (get_omp_for_step_from_incr): Likewise.
32431 (extract_omp_for_data): Moved parts to adjust_for_condition and
32432 get_omp_for_step_from_incr.
32433 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
32434 (fixup_child_record_type): Bail out if receiver_decl is NULL.
32435 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
32436 (scan_omp_parallel): Do not create child functions for phony
32437 constructs.
32438 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
32439 (scan_omp_1_op): Checking assert we are not remapping to
32440 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
32441 (parallel_needs_hsa_kernel_p): New function.
32442 (expand_parallel_call): Register apprpriate parallel child
32443 functions as HSA kernels.
32444 (grid_launch_attributes_trees): New type.
32445 (grid_attr_trees): New variable.
32446 (grid_create_kernel_launch_attr_types): New function.
32447 (grid_insert_store_range_dim): Likewise.
32448 (grid_get_kernel_launch_attributes): Likewise.
32449 (get_target_argument_identifier_1): Likewise.
32450 (get_target_argument_identifier): Likewise.
32451 (get_target_argument_value): Likewise.
32452 (push_target_argument_according_to_value): Likewise.
32453 (get_target_arguments): Likewise.
32454 (expand_omp_target): Call get_target_arguments instead of looking
32455 up for teams and thread limit.
32456 (grid_expand_omp_for_loop): New function.
32457 (grid_arg_decl_map): New type.
32458 (grid_remap_kernel_arg_accesses): New function.
32459 (grid_expand_target_kernel_body): New function.
32460 (expand_omp): Call it.
32461 (lower_omp_for): Do not emit phony constructs.
32462 (lower_omp_taskreg): Do not emit phony constructs but create for them
32463 a temporary variable receiver_decl.
32464 (lower_omp_taskreg): Do not emit phony constructs.
32465 (lower_omp_teams): Likewise.
32466 (lower_omp_grid_body): New function.
32467 (lower_omp_1): Call it.
32468 (grid_reg_assignment_to_local_var_p): New function.
32469 (grid_seq_only_contains_local_assignments): Likewise.
32470 (grid_find_single_omp_among_assignments_1): Likewise.
32471 (grid_find_single_omp_among_assignments): Likewise.
32472 (grid_find_ungridifiable_statement): Likewise.
32473 (grid_target_follows_gridifiable_pattern): Likewise.
32474 (grid_remap_prebody_decls): Likewise.
32475 (grid_copy_leading_local_assignments): Likewise.
32476 (grid_process_kernel_body_copy): Likewise.
32477 (grid_attempt_target_gridification): Likewise.
32478 (grid_gridify_all_targets_stmt): Likewise.
32479 (grid_gridify_all_targets): Likewise.
32480 (execute_lower_omp): Call grid_gridify_all_targets.
32481 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
32482 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
32483 (tree_omp_clause): Added union field dimension.
32484 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
32485 * tree.c (omp_clause_num_ops): Added number of arguments of
32486 OMP_CLAUSE__GRIDDIM_.
32487 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
32488 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
32489 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
32490 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
32491 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
32492 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
32493 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
32494 * tree-pass.h (make_pass_gen_hsail): Declare.
32495 (make_pass_ipa_hsa): Likewise.
32496 * ipa-hsa.c: New file.
32497 * lto-section-in.c (lto_section_name): Add hsa section name.
32498 * lto-streamer.h (lto_section_type): Add hsa section.
32499 * timevar.def (TV_IPA_HSA): New.
32500 * hsa-brig-format.h: New file.
32501 * hsa-brig.c: New file.
32502 * hsa-dump.c: Likewise.
32503 * hsa-gen.c: Likewise.
32504 * hsa.c: Likewise.
32505 * hsa.h: Likewise.
32506 * toplev.c (compile_file): Call hsa_output_brig.
32507 * hsa-regalloc.c: New file.
32508
32509 2016-01-18 Jeff Law <law@redhat.com>
32510
32511 PR tree-optimization/69320
32512 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
32513 ranged object, do nothing if the RHS constant is not [0..1].
32514 (optimize_stmt): Comparing a boolean ranged object against a
32515 constant outside [0..1] results in a compile-time constant.
32516
32517 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
32518 test.
32519
32520 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
32521
32522 * doc/invoke.texi (Invoking GCC): Add new section to menu.
32523 (Option Summary): Update to reflect new section and moved options.
32524 (C++ Dialect Options): Move -fstats to new section.
32525 (Debugging Options): Move all dump, statistics, and other GCC
32526 developer options to new section. Rewrite section introduction
32527 and re-order remaining options to put the more basic ones first.
32528 (Optimization Options): Move -fira-verbose and -flto-report* to
32529 new section.
32530 (Developer Options): New section incorporating moved options.
32531 * doc/cppopts.texi (-dM): Update cross-reference.
32532
32533 2016-01-18 Richard Henderson <rth@redhat.com>
32534
32535 PR target/69176
32536 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
32537 operands to pseudo only if CSE is expected. Split long immediate
32538 operands only after reload, and for the stack pointer.
32539 (*add<GPI>3_pluslong): Remove.
32540 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
32541 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
32542 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
32543 (*add<GPI>3 peepholes): New.
32544 (*add<GPI>3 splitters): New.
32545 * config/aarch64/constraints.md (Upl): New.
32546 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
32547
32548 2016-01-18 Richard Biener <rguenther@suse.de>
32549
32550 PR tree-optimization/69297
32551 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
32552 stmt at most once.
32553 (vect_bb_vectorization_profitable_p): Clear visited flag again.
32554
32555 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
32556
32557 PR middle-end/68542
32558 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
32559 of mixind vector and scalar types.
32560 (fold_relational_const): Add handling of vector
32561 comparison with boolean result.
32562 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
32563 comparison of vector operands with boolean result for EQ/NE only.
32564 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
32565 (verify_gimple_cond): Likewise.
32566 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
32567 valid type of VAL.
32568
32569 2016-01-18 Joseph Myers <joseph@codesourcery.com>
32570
32571 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
32572 !TARGET_OCTEON.
32573
32574 2016-01-18 Richard Biener <rguenther@suse.de>
32575
32576 PR middle-end/69308
32577 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
32578
32579 2016-01-18 Tom de Vries <tom@codesourcery.com>
32580
32581 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
32582
32583 2016-01-18 Tom de Vries <tom@codesourcery.com>
32584
32585 * omp-low.c (set_oacc_fn_attrib): Make extern.
32586 * omp-low.h (set_oacc_fn_attrib): Declare.
32587 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
32588 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
32589 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
32590 Add and handle function parameter oacc_kernels_p.
32591 (find_reduc_addr, get_omp_data_i_param): New function.
32592 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
32593 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
32594 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
32595 Calculate dominance info. Skip loops that are not in a kernels region
32596 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
32597 (pass_parallelize_loops::execute): Call parallelize_loops with
32598 oacc_kernels_p argument.
32599 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
32600 New member function.
32601 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
32602 * passes.def: Add argument to pass_parallelize_loops instantation.
32603
32604 2016-01-18 Tom de Vries <tom@codesourcery.com>
32605
32606 * tree-parloops.c (pass_parallelize_loops::execute): Allow
32607 pass_parallelize_loops to be run outside the loop pipeline.
32608
32609 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
32610
32611 * tree-scalar-evolution.c (follow_copies_to_constant): New.
32612 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
32613
32614 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
32615
32616 PR target/63679
32617 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
32618 using get_ref_base_and_extent.
32619 (equal_mem_array_ref_p): New.
32620 (hashable_expr_equal_p): Add call to previous.
32621
32622 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
32623
32624 PR target/63679
32625 * tree-sra.c (disqualified_constants, constant_decl_p): New.
32626 (sra_initialize): Allocate disqualified_constants.
32627 (sra_deinitialize): Free disqualified_constants.
32628 (disqualify_candidate): Update disqualified_constants when appropriate.
32629 (create_access): Scan for constant-pool entries as we go along.
32630 (scalarizable_type_p): Add check against type_contains_placeholder_p.
32631 (maybe_add_sra_candidate): Allow constant-pool entries.
32632 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
32633 (initialize_constant_pool_replacements): New.
32634 (sra_modify_assign): Avoid mangling assignments created by previous,
32635 and don't generate writes into constant pool.
32636 (sra_modify_function_body): Call initialize_constant_pool_replacements.
32637
32638 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
32639
32640 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
32641 andnot instruction.
32642 (scalar_chain::convert_op): Likewise.
32643 * config/i386/i386.md (*andndi3_doubleword): New.
32644
32645 2016-01-18 Richard Biener <rguenther@suse.de>
32646
32647 PR tree-optimization/69170
32648 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
32649 building a vector from scalar results of a pattern stmt.
32650
32651 2016-01-18 Jakub Jelinek <jakub@redhat.com>
32652
32653 * haifa-sched.c (autopref_multipass_init): Work around
32654 -Wmaybe-uninitialized warning.
32655
32656 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
32657
32658 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
32659 against the constant 0.
32660
32661 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32662
32663 PR tree-optimization/68799
32664 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
32665 look up phi candidates in the statement-candidate map.
32666 (phi_add_costs): Likewise.
32667 (record_phi_increments): Likewise.
32668 (phi_incr_cost): Likewise.
32669 (ncd_with_phi): Likewise.
32670 (all_phi_incrs_profitable): Likewise.
32671
32672 2016-01-17 Jakub Jelinek <jakub@redhat.com>
32673
32674 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
32675 -Wmaybe-uninitialized warning.
32676
32677 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
32678
32679 * doc/invoke.texi (Invoking GCC): Add new section to menu.
32680 (Option Summary): Update to reflect new section and moved options.
32681 (C++ Dialect Options): Move -fvtable-verify and related options.
32682 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
32683 and profiling-related options.
32684 (Optimization Options): Move profile generation options and
32685 -fstack-protector and related options.
32686 (Instrumentation Options): New section incorporating moved options.
32687 (Code Generation Options): Move -finstrument-functions and
32688 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
32689
32690 2016-01-16 Tom de Vries <tom@codesourcery.com>
32691
32692 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
32693
32694 2016-01-16 Tom de Vries <tom@codesourcery.com>
32695
32696 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
32697
32698 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
32699
32700 * hash-table.h (hash_table::empty): Turn into an inline wrapper
32701 that checks whether the table is already empty. Rename the
32702 original implementation to...
32703 (hash_table::empty_slot): ...this new private function.
32704
32705 2016-01-15 David Malcolm <dmalcolm@redhat.com>
32706
32707 PR diagnostic/68899
32708 * diagnostic-show-locus.c (layout::print_source_line): Move x
32709 offset of line until after call to
32710 get_line_width_without_trailing_whitespace.
32711
32712 2016-01-15 Jeff Law <law@redhat.com>
32713
32714 PR tree-optimization/69270
32715 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
32716 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
32717 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
32718 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
32719 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
32720 ssa_name_has_boolean_range and constant_boolean_node.
32721
32722 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
32723
32724 PR rtl-optimization/69030
32725 * lra-spills.c (remove_pseudos): Check nrefs and make the function
32726 returning bool.
32727 (spill_pseudos): Delete debug insn for dead pseudo.
32728 (lra_spill): Initiate spill_hard_reg and slots memory separately.
32729
32730 2016-01-15 Jiong Wang <jiong.wang@arm.com>
32731
32732 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
32733 New.
32734 (TYPES_UNOPUS): Likewise.
32735 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
32736 builtin type, from UNOP to UNOPUS.
32737 (lbtruncuv4sf): Likewise.
32738 (lbtruncuv2df): Likewise.
32739 (lrounduv2sf): Likewise.
32740 (lrounduv4sf): Likewise.
32741 (lrounduv2df): Likewise.
32742 (lroundusf): Likewise.
32743 (lroundusf): Likewise.
32744 (lceiluv2sf): Likewise.
32745 (lceiluv4sf): Likewise.
32746 (lceiluv2df): Likewise.
32747 (lceilusf): Likewise.
32748 (lceiludf): Likewise.
32749 (lflooruv2sf): Likewise.
32750 (lflooruv4sf): Likewise.
32751 (lflooruv2df): Likewise.
32752 (lfloorusf): Likewise.
32753 (lfloorudf): Likewise.
32754 (lfrintnuv2sf): Likewise.
32755 (lfrintnuv4sf): Likewise.
32756 (lfrintnuv2df): Likewise.
32757 (lfrintnusf): Likewise.
32758 (lfrintnudf): Likewise.
32759 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
32760 conversion.
32761 (vcvtq_u32_f32): Likewise.
32762 (vcvtq_u64_f64): Likewise.
32763 (vcvta_u32_f32): Likewise.
32764 (vcvtaq_u32_f32): Likewise.
32765 (vcvtaq_u64_f64): Likewise.
32766 (vcvtm_u32_f32): Likewise.
32767 (vcvtmq_u32_f32): Likewise.
32768 (vcvtmq_u64_f64): Likewise.
32769 (vcvtn_u32_f32): Likwise.
32770 (vcvtnq_u32_f32): Likewise.
32771 (vcvtnq_u64_f64): Likewise.
32772 (vcvtp_u32_f32): Likewise.
32773 (vcvtpq_u32_f32): Likewise.
32774 (vcvtpq_u64_f64): Likewise.
32775 (vcvtmd_u64_f64): Likewise.
32776 (vcvtms_u32_f32): Likewise.
32777 (vcvtad_u64_f64): Likewise.
32778 (vcvtas_u32_f32): Likewise.
32779 (vcvtnd_u64_f64): Likewise.
32780 (vcvtns_u32_f32): Likewise.
32781 (vcvtpd_u64_f64): Likewise.
32782 (vcvtps_u32_f32): Likewise.
32783
32784 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32785
32786 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
32787 CSEL of zero_extended registers.
32788
32789 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32790
32791 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
32792 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
32793
32794 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32795
32796 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
32797 false when argument string is not found in the attributes table
32798 at all.
32799
32800 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
32801
32802 PR target/68609
32803 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
32804 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
32805 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
32806 precision estimate.
32807
32808 2016-01-15 Richard Biener <rguenther@suse.de>
32809
32810 PR tree-optimization/66856
32811 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
32812 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
32813 (vect_create_new_slp_node): Increment stmt reference count.
32814 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
32815 an SLP tree before swapping operands.
32816 (vect_build_slp_tree): Likewise.
32817 (destroy_bb_vec_info): Free stmt info after SLP instances.
32818 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
32819 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
32820 (STMT_VINFO_NUM_SLP_USES): New macro.
32821
32822 2016-01-15 Richard Biener <rguenther@suse.de>
32823
32824 PR debug/69137
32825 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
32826 (add_linkage_name): ... here.
32827 (gen_typedef_die): Use add_linkage_name_raw instead of
32828 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
32829 if necessary.
32830
32831 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
32832
32833 * gimplify.c (oacc_default_clause): Decode reference and pointer
32834 types for both kernels and parallel regions.
32835
32836 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
32837
32838 PR middle-end/69246
32839 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
32840
32841 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
32842
32843 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
32844 (convert_scalars_to_vector): Likewise.
32845
32846 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
32847
32848 * doc/extend.texi (Type Traits): Fix grammar.
32849
32850 2016-01-15 Martin Jambor <mjambor@suse.cz>
32851
32852 * tree-inline.c (remap_decl): Use existing dclarations if
32853 remapping a type and prevent_decl_creation_for_types.
32854 (replace_locals_stmt): Do an initial remapping of non-VLA typed
32855 decls first. Do real remapping with
32856 prevent_decl_creation_for_types set.
32857 * tree-inline.h (copy_body_data): New field
32858 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
32859 padding.
32860
32861 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
32862
32863 * config/s390/s390.opt (mmvcle): More verbose help text.
32864
32865 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
32866
32867 * config/s390/s390.opt: Add period to -mzvector option text.
32868
32869 2016-01-15 Richard Biener <rguenther@suse.de>
32870
32871 PR tree-optimization/68961
32872 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
32873 of invariants in stores again.
32874
32875 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
32876
32877 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
32878
32879 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
32880
32881 * config/i386/i386.c (ix86_expand_branch): Don't split
32882 DI mode xor instruction to SI mode.
32883
32884 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
32885
32886 PR ipa/68148
32887 * ipa-icf.c (sem_function::merge): Virtual functions may become
32888 reachable even if they address is not taken and there are no
32889 idrect calls.
32890
32891 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
32892
32893 * lto-streamer-out.c (subtract_estimated_size): New function.
32894 (get_symbol_initial_value): Use it.
32895
32896 2016-01-15 Christian Bruel <christian.bruel@st.com>
32897
32898 PR target/65837
32899 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
32900 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
32901 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
32902 use add_builtin_function_ext_scope instead of add_builtin_function.
32903 (neon_set_p, neon_crypto_set_p): Remove.
32904 (arm_init_builtins): Always call arm_init_neon_builtins and
32905 arm_init_crypto_builtins.
32906 (arm_expand_builtin): Check that builtins are allowed for the arch.
32907 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
32908 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
32909 arm_init_neon_builtins call.
32910
32911 2016-01-15 Richard Biener <rguenther@suse.de>
32912
32913 PR tree-optimization/69117
32914 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
32915 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
32916 of the leader conservatively.
32917 (free_scc_vn): Restore original SSA name infos.
32918
32919 2016-01-14 Jeff Law <law@redhat.com>
32920
32921 PR tree-optimization/69270
32922 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
32923 single bit of precision, verify it's also unsigned.
32924 (record_edge_info): Use constant_boolean_node rather than fold_convert
32925 to convert boolean_true/boolean_false to the right type.
32926
32927 2016-01-14 Richard Henderson <rth@redhat.com>
32928
32929 PR rtl-opt/69014
32930 * loop-doloop.c (record_reg_sets): New.
32931 (doloop_optimize): Reject the transform if the sequence
32932 clobbers registers live at the end of the loop block.
32933 (doloop_optimize_loops): Enable df_live if needed.
32934
32935 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
32936
32937 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
32938 * config/rs6000/rs6000.c: Likewise.
32939 * config/rs6000/rs6000.h: Likewise.
32940 * config/rs6000/rs6000.md: Likewise.
32941 * doc/extend.texi: Likewsie.
32942
32943 2016-01-14 Jeff Law <law@redhat.com>
32944
32945 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
32946 typo.
32947
32948 2016-01-14 Richard Henderson <rth@redhat.com>
32949
32950 PR c/69272
32951 PR tree-opt/68964
32952 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
32953 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
32954 instead of builtin_decl_declared_p to test for declaration.
32955
32956 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
32957
32958 * doc/loop.texi (Loop Analysis and Representation): Document
32959 loop_depth function.
32960
32961 2016-01-14 Tom de Vries <tom@codesourcery.com>
32962
32963 PR tree-optimization/68773
32964 * omp-low.c (expand_omp_target): Don't set force_output.
32965 * varpool.c (varpool_node::get_create): Same.
32966 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
32967 offload_funcs with force_output.
32968
32969 2016-01-14 Jakub Jelinek <jakub@redhat.com>
32970
32971 PR debug/69244
32972 * lra-eliminations.c (move_plus_up): Don't change anything if either
32973 the outer or inner subreg mode is not MODE_INT.
32974 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
32975 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
32976
32977 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
32978
32979 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
32980 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
32981 reduc_uplus_@var{m}): Remove.
32982 * expr.c (expand_expr_real_2): Remove expansion path for
32983 reduc_[us](min|max|plus) optabs.
32984 * optabs-tree.c (scalar_reduc_to_vector): Remove.
32985 * optabs-tree.h (scalar_reduc_to_vector): Remove.
32986 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
32987 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
32988 * tree-vect-loop.c (vectorizable_reduction): Remove test for
32989 reduc_[us](min|max|plus) optabs.
32990
32991 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
32992
32993 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
32994 (reduc_plus_scal_v2sf): New.
32995 (reduc_smax_v2sf): Rename to...
32996 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
32997 (reduc_smin_v2sf): Rename to...
32998 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
32999
33000 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
33001
33002 * alias.c (compare_base_symbol_refs): New function.
33003 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
33004 it.
33005
33006 2016-01-14 Jakub Jelinek <jakub@redhat.com>
33007
33008 PR middle-end/68146
33009 PR tree-optimization/69155
33010 * tree-complex.c: Include cfganal.h.
33011 (phis_to_revisit): New variable.
33012 (extract_component): Add phiarg_p argument. Assert that returned
33013 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
33014 (update_phi_components): Partly rewrite to use loop over real/imag
33015 components instead of code duplication. If extract_component returns
33016 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
33017 create_tmp_reg into the PHI node instead, and mention the phi triplet
33018 in phis_to_revisit.
33019 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
33020 in phis_to_revisit at the end.
33021
33022 2016-01-14 Richard Biener <rguenther@suse.de>
33023
33024 PR tree-optimization/68060
33025 * tree-vect-loop.c (vect_is_simple_reduction): Check the
33026 outer loop reduction is only used in the inner loop before
33027 detecting a double reduction.
33028
33029 2016-01-14 Jakub Jelinek <jakub@redhat.com>
33030
33031 PR target/68269
33032 * combine.c (expand_field_assignment): Punt if compute_mode is
33033 unsupported scalar mode.
33034
33035 2016-01-14 Richard Biener <rguenther@suse.de>
33036
33037 PR tree-optimization/66856
33038 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
33039 SLP node only if it built successfully.
33040 (vect_analyze_slp_instance): Adjust.
33041
33042 2016-01-14 Jeff Law <law@redhat.com>
33043
33044 PR tree-optimization/69270
33045 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
33046 (record_edge_info): Use it. Convert boolean_{true,false}_node
33047 to the type of op0.
33048
33049 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
33050
33051 PR ipa/66487
33052 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
33053 use block_ultimate_origin
33054 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
33055
33056 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
33057
33058 * doc/invoke.texi (Submodel Options): Rename section to
33059 "Machine-Dependent Options" to better reflect its content.
33060 Rewrite introductory text to remove archaic CPU names.
33061 Update references.
33062
33063 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
33064
33065 * doc/invoke.texi (Code Gen Options): Move section up in file,
33066 before target-specific options. Update menu and option summary
33067 to reflect the new section ordering.
33068
33069 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
33070
33071 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
33072 (C++ Dialect Options): Add cross-reference to -std option.
33073 * doc/standards.texi (C++ Language): Document C++14 support.
33074
33075 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
33076
33077 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
33078 for pack/unpack functions for __ibm128.
33079 (PACK_IF): Likewise.
33080 (UNPACK_IF): Likewise.
33081
33082 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
33083 support for __ibm128 pack/unpack functions.
33084 (rs6000_invalid_builtin): Likewise.
33085 (rs6000_init_builtins): Likewise.
33086 (rs6000_opt_masks): Likewise.
33087
33088 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
33089 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
33090 functions
33091 (RS6000_BTM_COMMON): Likewise.
33092
33093 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
33094 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
33095 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
33096 128-bit floating point. Add support for the double values to be
33097 in Altivec registers for TF/IF packing and unpacking, but restrict
33098 TD packing sub-fields to be FPR registers. Don't allow overlapped
33099 register support for packing. Allow pack inputs to be memory
33100 locations. Don't build generator functions for unpack<mode>_dm
33101 and unpack<mode>_nodm.
33102 (unpack<mode>_dm): Likewise.
33103 (unpack<mode>_nodm): Likewise.
33104 (pack<mode>): Likewise.
33105
33106 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
33107 built-in functions to pack/unpack explicit __ibm128 values.
33108 (__builtin_unpack_ibm128): Likewise.
33109
33110 * doc/extend.texi (PowerPC Built-in Functions): Document
33111 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
33112
33113 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
33114
33115 PR c/66208
33116 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
33117 Add new arg loc and pass it down as context.
33118 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
33119 to the location to use for the warning.
33120 (check_function_arguments): New arg loc. All callers changed. Pass
33121 it to check_function_nonnull.
33122 * c-common.h (check_function_arguments): Adjust declaration.
33123
33124 2016-01-13 Jakub Jelinek <jakub@redhat.com>
33125
33126 PR tree-optimization/69156
33127 * gimple.c (validate_type): Removed.
33128 (gimple_builtin_call_types_compatible_p): Use
33129 useless_type_conversion_p instead of validate_type.
33130 * value-prof.c (gimple_stringop_fixed_value): Fold
33131 icall_size to correct type.
33132
33133 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
33134
33135 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
33136 effects.
33137
33138 2016-01-13 Richard Henderson <rth@redhat.com>
33139
33140 PR tree-opt/68964
33141 * target.def (builtin_tm_load, builtin_tm_store): Remove.
33142 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
33143 (ix86_builtin_tm_store): Remove.
33144 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
33145 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
33146 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
33147 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
33148 * doc/tm.texi: Rebuild.
33149
33150 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
33151 (BUILT_IN_TM_MEMCPY_RTWN): New.
33152 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
33153 fallback from vector to integer helpers.
33154 (build_tm_load): Handle vector types directly, instead of
33155 via target hook.
33156 (build_tm_store): Likewise.
33157 (expand_assign_tm): Prepare for register types not handled by
33158 the above. Copy them to memory and use memcpy.
33159 * tree.c (tm_define_builtin): New.
33160 (find_tm_vector_type): New.
33161 (build_tm_vector_builtins): New.
33162 (build_common_builtin_nodes): Call it.
33163
33164 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
33165
33166 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
33167 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
33168
33169 2016-01-13 Tom de Vries <tom@codesourcery.com>
33170
33171 PR tree-optimization/69169
33172 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
33173 handled_struct_type param.
33174 (create_variable_info_for, intra_create_variable_infos): Call
33175 create_variable_info_for_1 with extra arg.
33176
33177 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
33178
33179 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
33180 and "armv8.1-a+crc" entries.
33181
33182 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
33183
33184 PR target/69228
33185 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
33186 Change first operand predicate from register_or_constm1_operand
33187 to register_operand.
33188 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
33189 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
33190 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
33191 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
33192 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
33193 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
33194 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
33195 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
33196 comparison with constm1_rtx from vec_prefetch_gen part.
33197
33198 2016-01-13 Richard Biener <rguenther@suse.de>
33199
33200 PR tree-optimization/69013
33201 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
33202 Exchange assert for a test.
33203
33204 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
33205
33206 PR target/69247
33207 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
33208
33209 2016-01-13 Richard Biener <rguenther@suse.de>
33210
33211 PR tree-optimization/69242
33212 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
33213 assert with a check.
33214
33215 2016-01-13 Richard Biener <rguenther@suse.de>
33216
33217 PR tree-optimization/69186
33218 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
33219 Properly guard vect_update_misalignment_for_peel call.
33220
33221 2016-01-12 Jeff Law <law@redhat.com>
33222
33223 PR tree-optimization/pr67755
33224 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
33225 "need_profile_correction".
33226 (thread_block_1): Initialize new field to false by default. If we
33227 have multiple thread paths through a common joiner to different
33228 final targets, then set new field to true.
33229 (compute_path_counts): Only do count adjustment when it's really
33230 needed.
33231
33232 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
33233
33234 * doc/invoke.texi (Spec Files): Move section down in file, past
33235 all command-line option descriptions.
33236
33237 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33238
33239 PR middle-end/54809
33240 * doc/gty.texi: Remove documentation of mark_hook.
33241 * gengtype.c (struct write_types_data): Remove code to support
33242 mark_hook attribute.
33243 (walk_type): Likewise.
33244 (write_func_for_structure): Likewise.
33245
33246 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
33247
33248 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
33249 Directory Options, and -specs= to Overall Options.
33250 (Overall Options): Adjust similarly. Reorder to group related
33251 options together. Make -specs= cross-reference the spec file details.
33252 (Directory Options): Adjust similarly.
33253
33254 2016-01-12 Jeff Law <law@redhat.com>
33255
33256 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
33257
33258 2016-01-12 Olivier Hainque <hainque@adacore.com>
33259
33260 * gcc.c (spec_undefvar_allowed): New global.
33261 (process_command): Set to true when running for --version or --help,
33262 alone or together.
33263 (getenv_spec_function): When the variable is not defined, use the
33264 variable name as the variable value if we're allowed not to issue
33265 a fatal error.
33266
33267 2016-01-12 Bin Cheng <bin.cheng@arm.com>
33268
33269 PR tree-optimization/68911
33270 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
33271 information computed for expression "init + nit * step".
33272
33273 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
33274
33275 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
33276 about name of GCC executable. Remove deleted node from menu.
33277 (Directory Options) <-B>: Remove cross-reference to deleted node.
33278 (Target Options): Delete section.
33279
33280 2016-01-12 Christian Bruel <christian.bruel@st.com>
33281
33282 PR target/69180
33283 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
33284 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
33285
33286 2016-01-12 Jakub Jelinek <jakub@redhat.com>
33287
33288 PR target/69198
33289 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
33290 aligned_mem is properly set for AVX512-VL floating point masked
33291 stores.
33292
33293 PR target/69175
33294 * ifcvt.c (cond_exec_process_if_block): When removing the last
33295 insn from then_bb, remove also any possible barriers that follow it.
33296
33297 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
33298
33299 PR target/68456
33300 PR target/69226
33301 * config/i386/iamcu.h (SIZE_TYPE): New macro.
33302 (PTRDIFF_TYPE): Likewise.
33303 (WCHAR_TYPE): Likewise.
33304 (WCHAR_TYPE_SIZE): Likewise.
33305 (STDINT_LONG32): Likewise.
33306
33307 2016-01-12 Richard Biener <rguenther@suse.de>
33308
33309 PR tree-optimization/69053
33310 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
33311 convert initial value for cond reductions.
33312
33313 2016-01-12 Richard Biener <rguenther@suse.de>
33314
33315 PR tree-optimization/69007
33316 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
33317 widen_sum after dot_prod and sad.
33318
33319 2016-01-12 Richard Biener <rguenther@suse.de>
33320
33321 PR tree-optimization/69168
33322 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
33323 pattern stmt SLP type.
33324 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
33325 end up unused so cope with that case.
33326
33327 2016-01-12 Richard Biener <rguenther@suse.de>
33328
33329 PR tree-optimization/69157
33330 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
33331 stmts def type only during analyze phase.
33332 (vectorizable_call): Likewise.
33333 (vectorizable_simd_clone_call): Likewise.
33334 (vectorizable_conversion): Likewise.
33335 (vectorizable_assignment): Likewise.
33336 (vectorizable_shift): Likewise.
33337 (vectorizable_operation): Likewise.
33338 (vectorizable_store): Likewise.
33339 (vectorizable_load): Likewise.
33340
33341 2016-01-12 Richard Biener <rguenther@suse.de>
33342
33343 PR tree-optimization/69174
33344 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
33345 space.
33346 (vectorizable_load): Properly compute the number of loads needed
33347 for permuted strided SLP loads and do not spuriously assign
33348 to SLP_TREE_VEC_STMTS.
33349
33350 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
33351
33352 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
33353 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
33354 (MD_EXEC_PREFIX): Remove.
33355 (MD_STARTFILE_PREFIX) Removee.
33356 (FILE_NAME_ABSOLUTE_P): Remove.
33357 (CPP_SPEC): Do not read macros from sys/version.h.
33358 (LINK_COMMAND_SPEC): Remove.
33359 (LOCAL_INCLUDE_DIR): Remove.
33360 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
33361 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
33362 (POST_LINK_SPEC): Define to invoke stubify after linker
33363 (LIBSTDCXX): Remove define
33364 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
33365 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
33366 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
33367 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
33368 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
33369 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
33370 (i386_djgpp_asm_named_section): Add propotype of new procedure
33371
33372 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
33373 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
33374 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
33375 in config/i386/djgpp.h).
33376 (STANDARD_STARTFILE_PREFIX_2): Define identical to
33377 STANDARD_STARTFILE_PREFIX_1.
33378 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
33379 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
33380 installation errors.
33381 (MAX_OFILE_ALIGNMENT): Define to 128.
33382 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
33383
33384 * config/i386/djgpp.c: New file. Add implementation of
33385 i386_djgpp_asm_named_section.
33386
33387 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
33388
33389 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
33390 Add rule for building djgpp.o.
33391
33392 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33393
33394 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
33395 (rtx_is_swappable_p): Reductions are swappable.
33396 (insn_is_swappable_p): V2DF reductions are swappable.
33397
33398 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
33399
33400 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
33401 reloads for other unsupported memory operands.
33402
33403 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
33404 Jim Wilson <jim.wilson@linaro.org>
33405
33406 PR target/69194
33407 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
33408 copy_to_mode_reg instead of force_reg.
33409
33410 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
33411
33412 PR target/69225
33413 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
33414 TARGET_80387 is true.
33415
33416 2016-01-11 Jakub Jelinek <jakub@redhat.com>
33417
33418 PR target/69071
33419 * lra-eliminations.c (move_plus_up): Only move plus up
33420 if subreg of the constant can be simplified into constant
33421 and use the simplified subreg of the constant instead of
33422 the original constant.
33423
33424 * fold-const.c (fold_convertible_p): Don't return true
33425 for conversion of VECTOR_TYPE to same sized integral type.
33426 (fold_convert_loc): Fix up formatting. Fold conversion of
33427 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
33428 instead of NOP_EXPR.
33429
33430 PR tree-optimization/69214
33431 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
33432 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
33433 Formatting fix.
33434
33435 PR tree-optimization/69207
33436 * tree-vect-slp.c (vect_get_constant_vectors): For
33437 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
33438 fold_convertible_p to vector_type's element type, and always
33439 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
33440
33441 2016-01-11 Richard Biener <rguenther@suse.de>
33442
33443 PR tree-optimization/69173
33444 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
33445 fixup the cycle if all stmts are in a pattern.
33446
33447 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
33448
33449 PR middle-end/68999
33450 * alias.c (base_alias_check): Move check for addresses with
33451 alignment ANDs before the call for compare_base_decls.
33452 (memrefs_conflict_p): Return -1 for different decls
33453 that went through alignment adjustments.
33454
33455 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33456
33457 PR rtl-optimization/68796
33458 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
33459 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
33460 and QImode comparisons against zero with CC_NZmode.
33461 * config/aarch64/iterators.md (short_mask): New mode_attr.
33462
33463 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
33464
33465 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
33466 (<avx512>_store<mode>_mask): Likewise.
33467
33468 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
33469 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33470
33471 PR rtl-optimization/68841
33472 * ifcvt.c (struct noce_if_info): Add orig_x field.
33473 (bbs_ok_for_cmove_arith): Add to_rename parameter.
33474 Don't record conflicts on to_rename if it's present.
33475 Allow memory destinations in sets.
33476 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
33477 blocks, passing orig_x to the checks.
33478 (noce_process_if_block): Set if_info->orig_x appropriately.
33479
33480 2016-01-11 Tom de Vries <tom@codesourcery.com>
33481
33482 PR tree-optimization/69069
33483 * tree-parloops.c (create_parallel_loop): Add missing phi args.
33484
33485 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
33486
33487 PR rtl-optimization/68920
33488 * config/i386/i386.c (ix86_option_override_internal): Restrict number
33489 of conditional moves for RTL if-conversion to 1 for
33490 TARGET_ONE_IF_CONV_INSN.
33491 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
33492 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
33493 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
33494 parameter to restirct number of conditional moves for
33495 RTL if-conversion.
33496 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
33497 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
33498 conditionl moves.
33499
33500 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
33501
33502 PR bootstrap/69123
33503 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
33504 onepart vars. Fix typo in comment. Fix reversed condition in
33505 unshare test.
33506 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
33507
33508 PR bootstrap/69123
33509 * var-tracking.c (dump_onepart_variable_differences): New.
33510 (dataflow_set_different): If a detailed dump is requested,
33511 delay early returns and dump differences between onepart
33512 variables present before and after, and added variables.
33513
33514 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
33515
33516 PR target/69010
33517 * expr.c (expand_expr_real_1): For boolean vector constants
33518 with a scalar mode use const_scalar_mask_from_tree.
33519 (const_scalar_mask_from_tree): New.
33520 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
33521 assigned to a mask type to handle constants.
33522
33523 2016-01-11 Martin Jambor <mjambor@suse.cz>
33524
33525 PR ipa/69044
33526 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
33527 useless parameters if we cannot change function signature.
33528
33529 2016-01-11 Martin Jambor <mjambor@suse.cz>
33530
33531 PR ipa/66616
33532 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
33533 flag.
33534
33535 2016-01-11 Tom de Vries <tom@codesourcery.com>
33536
33537 PR tree-optimization/69109
33538 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
33539 latch with phi.
33540
33541 2016-01-11 Tom de Vries <tom@codesourcery.com>
33542
33543 PR tree-optimization/69108
33544 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
33545 res is not used in a phi.
33546
33547 2016-01-11 Yury Gribov <y.gribov@samsung.com>
33548
33549 PR 67425
33550 * common.opt (frandom-seed): Fix parameter name.
33551 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
33552
33553 2016-01-11 Tom de Vries <tom@codesourcery.com>
33554
33555 PR tree-optimization/69058
33556 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
33557 not supported.
33558
33559 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
33560
33561 * config/arc/arc.opt (mdiv-rem): Add period to the end.
33562 (mcode-density): Likewise.
33563
33564 2016-01-10 Tom de Vries <tom@codesourcery.com>
33565
33566 PR tree-optimization/69062
33567 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
33568 (parallelize_loops): Don't paralelize loop that has phi with address
33569 arg.
33570
33571 2016-01-10 Tom de Vries <tom@codesourcery.com>
33572
33573 PR tree-optimization/69039
33574 * tree-parloops.c (try_create_reduction_list): Only allow single exit
33575 phi for reduction.
33576
33577 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
33578
33579 PR middle-end/68743
33580 * match.pd: Require target has function_c99_misc before doing
33581 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
33582
33583 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
33584
33585 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
33586 use GMPINC.
33587 * configure: Regenerate.
33588
33589 2016-01-09 Jakub Jelinek <jakub@redhat.com>
33590
33591 PR middle-end/50865
33592 PR tree-optimization/69097
33593 * fold-const.h (expr_not_equal_to): New prototype.
33594 * fold-const.c: Include stringpool.h and tree-ssanames.h.
33595 (expr_not_equal_to): New function.
33596 * match.pd (X % -Y is the same as X % Y): Don't optimize
33597 unless X is known not to be equal to minimum or Y is known
33598 not to be equal to -1.
33599 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
33600 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
33601 (simplify_stmt_using_ranges): Adjust caller.
33602 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
33603 substitute_and_fold.
33604
33605 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
33606
33607 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
33608 w/o DECL_NAME.
33609
33610 2016-01-08 Jakub Jelinek <jakub@redhat.com>
33611
33612 PR tree-optimization/69167
33613 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
33614 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
33615 ops[0] comparison.
33616 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
33617
33618 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
33619 Richard Biener <rguenther@suse.de>
33620
33621 PR tree-optimization/68707
33622 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
33623 instances that can be handled via vect_load_lanes.
33624
33625 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
33626
33627 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
33628 if we can't determine address equivalence.
33629 * alias.c (compare_base_decl): Update for changed return value of
33630 symtab_node::equal_address_to.
33631
33632 2016-01-08 Jason Merrill <jason@redhat.com>
33633
33634 PR c++/68983
33635 PR c++/67557
33636 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
33637 * expr.c (store_field): Not here.
33638 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
33639 call with TREE_ADDRESSABLE type.
33640 * tree-cfg.c (verify_gimple_call): Adjust.
33641
33642 2016-01-08 Olivier Hainque <hainque@adacore.com>
33643
33644 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
33645 libc_internal.
33646
33647 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
33648
33649 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
33650 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
33651 (reduc_smin_v2sf): Rename to...
33652 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
33653 (reduc_splus_v2sf): Rename to...
33654 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
33655
33656 2016-01-08 Jakub Jelinek <jakub@redhat.com>
33657
33658 PR tree-optimization/69162
33659 * gimplify.c (gimplify_va_arg_expr): Encode original type of
33660 valist argument in another argument.
33661 (gimplify_modify_expr): Adjust for the above change. Cleanup.
33662 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
33663 to determine the va_list type, build a MEM_REF instead of
33664 build_fold_indirect_ref.
33665
33666 PR tree-optimization/69172
33667 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
33668 gimple_build.
33669
33670 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
33671
33672 PR tree-optimization/67781
33673 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
33674 and cmpnop in two steps: first the ones not accessed in original
33675 gimple expression in a endian independent way and then the ones not
33676 accessed in the final result in an endian-specific way.
33677
33678 2016-01-08 Jakub Jelinek <jakub@redhat.com>
33679
33680 PR tree-optimization/69083
33681 * tree-vect-slp.c (vect_get_constant_vectors): For
33682 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
33683 element type. If op is fold_convertible_p to vector_type's element
33684 type, use NOP_EXPR instead of VCE.
33685
33686 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
33687
33688 PR rtl-optimization/67778
33689 PR rtl-optimization/68634
33690 PR rtl-optimization/68909
33691 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
33692 block from the stack until done with it. Remove a superfluous
33693 bitmap set. Remove a superfluous bitmap test.
33694
33695 2016-01-07 Martin Sebor <msebor@redhat.com>
33696
33697 PR c/68966
33698 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
33699 constraint on the type of arguments.
33700
33701 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
33702
33703 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
33704 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
33705 unaligned_access on the gcc_options set.
33706 * config/arm/arm.c (arm_option_override_internal): Use
33707 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
33708
33709 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
33710
33711 PR target/69140
33712 * config/i386/i386.c (ix86_frame_pointer_required): Enable
33713 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
33714
33715 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
33716
33717 Revert
33718 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
33719
33720 PR target/69140
33721 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
33722 depending on frame_pointer_needed before remaining integer and SSE
33723 registers are saved.
33724
33725 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
33726
33727 PR 1078
33728 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
33729
33730 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
33731
33732 PR target/69171
33733 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
33734 Use the "xBm" constraint.
33735 (float<sseintvecmodelower><mode>2<mask_name><round_name):
33736 Likewise.
33737 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
33738 (sse_cvtsi2ssq<round_name>): Likewise.
33739 (sse_cvtss2si<round_name>): Likewise.
33740 (sse_cvtss2siq<round_name>): Likewise.
33741 (sse2_cvtsi2sdq<round_name>): Likewise.
33742 (sse2_cvtsd2si<round_name>): Likewise.
33743 (sse2_cvtsd2siq<round_name>): Likewise.
33744 * config/i386/subst.md (round_nimm_scalar_predicate): New
33745 predicate.
33746
33747 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
33748
33749 PR middle-end/67639
33750 * varasm.c (make_decl_rtl): Mark invalid register vars as
33751 DECL_EXTERNAL.
33752
33753 PR rtl-optimization/66206
33754 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
33755 All callers changed.
33756
33757 2016-01-07 Jakub Jelinek <jakub@redhat.com>
33758
33759 PR tree-optimization/69141
33760 * tree-ssa-pre.c: Include langhooks.h.
33761 (eliminate_dom_walker::before_dom_children): Use
33762 lang_hooks.decl_printable_name instead of
33763 cgraph_node::get ()->name ().
33764
33765 PR middle-end/68960
33766 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
33767 it and DECL_ALIGN too.
33768
33769 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
33770
33771 * config/mips/mips-ftypes.def: Sort to lexicographical order.
33772
33773 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
33774
33775 PR target/69140
33776 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
33777 depending on frame_pointer_needed before remaining integer and SSE
33778 registers are saved.
33779
33780 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33781
33782 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
33783 mode iterator with VSX_M2.
33784 (*p9_vecstore_<mode>): Likewise.
33785 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
33786 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
33787 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
33788 (define_split for VSX_LE128 stores): Likewise.
33789 (define_peephole2 for TImode LE swaps): Likewise.
33790 (define_split for VSX_LE128 post-reload stores): Likewise.
33791
33792 2016-01-06 Marek Polacek <polacek@redhat.com>
33793
33794 PR sanitizer/69099
33795 * convert.c (convert_to_integer_1): Adjust call to
33796 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
33797 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
33798 EXPR instead of ARG.
33799 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
33800
33801 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
33802
33803 PR 1078
33804 * doc/extend.texi (RL78 Variable Attributes): New section.
33805
33806 2016-01-05 Marek Polacek <polacek@redhat.com>
33807
33808 PR c/69104
33809 * builtins.c (get_memmodel): Use expansion point location rather than
33810 the input location. Call warning_at rather than warning.
33811 (expand_builtin_atomic_compare_exchange): Likewise.
33812 (expand_builtin_atomic_load): Likewise.
33813 (expand_builtin_atomic_store): Likewise.
33814 (expand_builtin_atomic_clear): Likewise.
33815
33816 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
33817
33818 PR target/68991
33819 * config/i386/i386.c (ix86_expand_vector_logical_operator):
33820 Replace nonimmediate_operand with vector_operand.
33821 * config/i386/predicates.md (vector_operand): New predicate.
33822 (general_vector_operand): Replace nonimmediate_operand with
33823 vector_operand.
33824 * config/i386/sse.md: Replace nonimmediate_operand with
33825 vector_operand and m constraint with Bm constraint on SSE
33826 patterns with 16-byte memory operand.
33827 * config/i386/subst.md (round_nimm_predicate): Replace
33828 nonimmediate_operand with vector_operand.
33829 (round_saeonly_nimm_predicate): Likewise.
33830 (round_saeonly_nimm_scalar_predicate): New.
33831
33832 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
33833
33834 PR target/68991
33835 * config/i386/constraints.md (Bm): New constraint.
33836 * config/i386/predicates.md (vector_memory_operand): New
33837 predicate.
33838 * config/i386/sse.md: Replace xm with xBm in plusminus and
33839 any_logic patterns.
33840
33841 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
33842
33843 PR 1078
33844 * doc/extend.texi (V850 Function Attributes): New section.
33845 (V850 Variable Attributes): New section.
33846
33847 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
33848
33849 PR 1078
33850 * doc/extend.texi (MicroBlaze Function Attributes): Document
33851 interrupt_handler and fast_interrupt attributes.
33852
33853 2016-01-05 Sergei Trofimovich <siarheit@google.com>
33854
33855 PR other/60465
33856 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
33857 for local symbolic operands.
33858 * config/ia64/predicates.md (local_symbolic_operand64): New
33859 predicate.
33860
33861 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33862
33863 PR rtl-optimization/68651
33864 * combine.c (combine_simplify_rtx): Canonicalize x + x into
33865 x << 1.
33866
33867 2016-01-05 Nathan Sidwell <nathan@acm.org>
33868
33869 * alias.c (compare_base_decls): Use symtab_node::get.
33870
33871 2016-01-05 Nick Clifton <nickc@redhat.com>
33872
33873 PR target/68770
33874 * ira-costs.c (copy_cost): Initialise the t_icode field of the
33875 secondary_reload_info structure.
33876
33877 PR target/66655
33878 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
33879 decls if weak support is available.
33880
33881 2016-01-04 Martin Sebor <msebor@redhat.com>
33882
33883 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
33884
33885 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
33886
33887 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
33888 OPTION_MASK_P9_DFORM.
33889
33890 * config/rs6000/constraints.md (wo constraint): New constraint for
33891 ISA 3.0 (power9).
33892
33893 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
33894 for wo constraint.
33895 (rs6000_init_hard_regno_mode_ok): Likewise.
33896
33897 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
33898 wo constraint.
33899
33900 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
33901 expanders not to have constraints. Add support for ISA 3.0 xxperm
33902 instruction. Add support for fusing xxlor with xxperm.
33903 (altivec_vperm_<mode>_internal): Likewise.
33904 (altivec_vperm_v8hiv16qi): Likewise.
33905 (altivec_vperm_<mode>v16q): Likewise.
33906 (altivec_vperm_<mode>_uns): Likewise.
33907 (vperm_v8hiv4si): Likewise.
33908 (vperm_v16qiv8hi): Likewise.
33909
33910 * doc/md.texi (RS/6000 constraints): Document wo constraint.
33911
33912 2016-01-04 Jakub Jelinek <jakub@redhat.com>
33913
33914 Update copyright years.
33915
33916 * gcc.c (process_command): Update copyright notice dates.
33917 * gcov-dump.c (print_version): Ditto.
33918 * gcov.c (print_version): Ditto.
33919 * gcov-tool.c (print_version): Ditto.
33920 * gengtype.c (create_file): Ditto.
33921 * doc/cpp.texi: Bump @copying's copyright year.
33922 * doc/cppinternals.texi: Ditto.
33923 * doc/gcc.texi: Ditto.
33924 * doc/gccint.texi: Ditto.
33925 * doc/gcov.texi: Ditto.
33926 * doc/install.texi: Ditto.
33927 * doc/invoke.texi: Ditto.
33928
33929 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
33930
33931 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
33932 modes larger than TImode as TImode if NEON is not enabled.
33933
33934 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
33935
33936 PR target/69100
33937 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
33938 mode for %f0-%f31 only if TARGET_FPU.
33939
33940 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
33941
33942 PR target/69072
33943 * config/sparc/sparc.c (scan_record_type): Take into account subfields
33944 to compute the PACKED_P predicate.
33945 (function_arg_record_value): Minor tweaks.
33946
33947 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
33948
33949 * doc/install.texi (--with-multilib-list): Describe the meaning of the
33950 option for arm*-*-* targets.
33951
33952 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
33953
33954 * doc/extend.texi (Common Function Attributes): Move docs for
33955 MSP430-specific attributes to....
33956 (MSP430 Function Attributes): ...here. Delete the redundant
33957 entries and copy-edit the remaining text.
33958 (MSP430 Variable Attributes): Use uniform format for index
33959 entries and add a cross-reference to the corresponding function
33960 attribute docs.
33961
33962 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
33963
33964 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
33965 -finite-math typo.
33966 (x86 Options): Likewise.
33967
33968 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
33969
33970 PR 1078
33971
33972 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
33973 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
33974 to corresponding attribute.
33975
33976 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
33977
33978 * doc/extend.texi (Common Function Attributes) <noplt>: Move
33979 to correct alphabetization of table. Copy-edit and correct
33980 markup.
33981 <stack_protect>: Likewise.
33982 <target_clones>: Likewise.
33983 <simd>: Likewise.
33984 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
33985 Correct punctuation.
33986 (Code Gen Options) <-fno-plt>: Copy-edit.
33987
33988 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
33989
33990 PR target/68917
33991 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
33992 SI values. Explicitly convert SI to DI and vice-versa.
33993
33994 2016-01-01 Jakub Jelinek <jakub@redhat.com>
33995
33996 PR tree-optimization/69070
33997 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
33998 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
33999
34000 PR sanitizer/69055
34001 * ubsan.c (ubsan_instrument_float_cast): Call
34002 initialize_sanitizer_builtins.
34003
34004 PR target/69015
34005 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
34006 \f
34007 Copyright (C) 2016 Free Software Foundation, Inc.
34008
34009 Copying and distribution of this file, with or without modification,
34010 are permitted in any medium without royalty provided the copyright
34011 notice and this notice are preserved.