sparc.c (sparc_expand_vector_init): Only accept literal constants in CONST_VECTORs.
[gcc.git] / gcc / ChangeLog
1 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
2
3 * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
4 constants in CONST_VECTORs.
5
6 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
7
8 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
9 register as destination of bmask.
10 (vector_init_bshuffle): Likewise.
11 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
12 (bmaskdi_vis): Enable only in 64-bit mode.
13
14 2016-10-15 Segher Boessenkool <segher@kernel.crashing.org>
15
16 * config/rs6000/rs6000.c (rs6000_get_separate_components): Do not
17 make LR a separately shrink-wrapped component unless savres_strategy
18 contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}. Do not wrap
19 GPRs unless both {SAVE,REST}_INLINE_GPRS. Do not disallow all
20 wrapping when not both {SAVE,REST}_INLINE_GPRS.
21
22 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
23
24 * optabs.c (expand_parity): Fix mode mismatch, add final conversion
25 and keep looping on failure.
26
27 2016-10-14 David Malcolm <dmalcolm@redhat.com>
28
29 * print-rtl-function.c (print_edge): Omit "(flags)" when none are
30 set.
31 (print_rtx_function): Update example in comment for...
32 * print-rtl.c (print_rtx_operand_code_r): In compact mode, print
33 non-virtual pseudos with a '%' sigil followed by the regno, offset
34 by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual
35 pseudo is dumped as "%0".
36
37 2016-10-14 Jakub Jelinek <jakub@redhat.com>
38
39 PR middle-end/77959
40 * expr.c (expand_expr_real_1) <case CONST_DECL>: For EXPAND_WRITE
41 return a MEM.
42
43 2016-10-14 Eric Botcazou <ebotcazou@adacore.com>
44
45 * config/sparc/sparc-passes.def: New file.
46 * config/sparc/t-sparc (PASSES_EXTRA): Add sparc-passes.def.
47 * config/sparc/sparc-protos.h (make_pass_work_around_errata): New.
48 * config/sparc/sparc.c (sparc_option_override): Don't register passes.
49
50 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
51
52 * loop-unroll.c (unroll_loop_runtime_iterations): Condition initial
53 loop peel to loops with exit test at the beginning.
54
55 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
56
57 PR rtl-optimization/68212
58 * cfgloopmanip.c (duplicate_loop_to_header_edge): Use preheader edge
59 frequency when computing scale factor for peeled copies.
60 * loop-unroll.c (unroll_loop_runtime_iterations): Fix freq/count
61 values for switch/peel blocks/edges.
62
63 2016-10-14 Pedro Alves <palves@redhat.com>
64
65 * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h.
66
67 2016-10-14 Catherine Moore <clm@codesourcery.com>
68
69 * gcc/config/mips/mips.c (mips_prepare_pch_save): Initialize
70 micromips_globals to zero.
71
72 2016-10-14 Richard Biener <rguenther@suse.de>
73
74 PR tree-optimization/77979
75 * tree-vrp.c (compare_name_with_value): Handle released SSA names
76 in the equivalency sets.
77 (compare_names): Likewise.
78
79 2016-10-14 Martin Liska <mliska@suse.cz>
80
81 * builtins.h(target_char_cst_p): Declare the function.
82 * builtins.c (fold_builtin_memchr): Remove.
83 (target_char_cst_p): Move the function from gimple-fold.c.
84 (fold_builtin_3): Do not call the function.
85 * gimple-fold.c (gimple_fold_builtin_memchr): New function.
86 (gimple_fold_builtin): Call the function.
87 * fold-const-call.c (fold_const_call_1): Handle CFN_BUILT_IN_MEMCHR.
88
89 2016-10-14 Martin Liska <mliska@suse.cz>
90
91 * builtins.c (fold_builtin_strcmp): Remove function.
92 (fold_builtin_strncmp): Likewise.
93 (fold_builtin_2): Remove call of the function.
94 (fold_builtin_3): Likewise.
95 * fold-const-call.c (fold_const_call): Add constant folding
96 for CFN_BUILT_IN_STRCASECMP and CFN_BUILT_IN_STRNCASECMP.
97 * fold-const-call.h (build_cmp_result): Declare the function.
98 * gimple-fold.c (gimple_load_first_char): New function.
99 (gimple_fold_builtin_string_compare): Likewise.
100 (gimple_fold_builtin): Call the function.
101
102 2016-10-14 Nathan Sidwell <nathan@acm.org>
103
104 * gcov-io.c (gcov_open): Deconstify 'mode'.
105
106 2016-10-14 Martin Liska <mliska@suse.cz>
107
108 * fold-const.c (c_getstr): Support of properly \0-terminated
109 string constants. New argument is added.
110 * fold-const.h: New argument is added.
111
112 2016-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
113
114 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
115 New function.
116 (aarch64_print_hint_for_core): Likewise.
117 (aarch64_print_hint_for_arch): Likewise.
118 (aarch64_validate_march): Use it. Fix indentation in type signature.
119 (aarch64_validate_mcpu): Use aarch64_print_hint_for_core_or_arch.
120 (aarch64_validate_mtune): Likewise.
121 (aarch64_handle_attr_arch): Likewise.
122 (aarch64_handle_attr_cpu): Likewise.
123 (aarch64_handle_attr_tune): Likewise.
124
125 2016-10-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
126
127 * optabs.def: Remove optab function gen_int_libfunc for sdivmod_optab
128 and udivmod_optab.
129
130 2016-10-13 Andreas Schwab <schwab@linux-m68k.org>
131
132 * config/m68k/m68k.c (m68k_option_override): Check
133 opt_fstack_limit_symbol_arg and opt_fstack_limit_register_no
134 instead of stack_limit_rtx.
135
136 2016-10-13 Jakub Jelinek <jakub@redhat.com>
137
138 * dwarf2out.c (gen_member_die): Handle inline static data member
139 definitions.
140
141 2016-10-13 Nathan Sidwell <nathan@acm.org>
142
143 * gcov-io.c (gcov_open): Fix documentation. Simplify setting
144 gcov_var.mode. Remove unnecessary fstat.
145
146 2016-10-13 Segher Boessenkool <segher@kernel.crashing.org>
147
148 PR bootstrap/77962
149 * function.c (thread_prologue_and_epilogue_insns): Call all
150 make_*logue_seq in the same order as traditional. Call them
151 all a second time if shrink_wrapped_separate.
152
153 2016-10-13 Marek Polacek <polacek@redhat.com>
154
155 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
156 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Don't
157 use -Wno-error.
158
159 2016-10-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
160
161 PR tree-optimization/77937
162 * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
163 to infinite when we have a pointer with an increment of -1.
164
165 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
166
167 * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
168 into ...
169 * memmodel.h: This file.
170 * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
171 caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
172 cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
173 combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
174 common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
175 common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
176 common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
177 compare-elim.c, config/aarch64/aarch64-builtins.c,
178 config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
179 config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
180 config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
181 config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
182 config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
183 config/darwin.c, config/epiphany/epiphany.c,
184 config/epiphany/mode-switch-use.c,
185 config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
186 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
187 config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
188 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
189 config/m68k/m68k.c, config/mcore/mcore.c,
190 config/microblaze/microblaze.c, config/mmix/mmix.c,
191 config/mn10300/mn10300.c, config/moxie/moxie.c,
192 config/msp430/msp430.c, config/nds32/nds32-cost.c,
193 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
194 config/nds32/nds32-memory-manipulation.c,
195 config/nds32/nds32-predicates.c, config/nds32/nds32.c,
196 config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
197 config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
198 config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
199 config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
200 config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
201 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
202 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
203 config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
204 coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
205 df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
206 dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
207 expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
208 ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
209 ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
210 ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
211 loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
212 lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
213 lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
214 lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
215 postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
216 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
217 reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
218 rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
219 sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
220 stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
221 targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
222 tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
223 tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
224 tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
225 var-tracking.c, varasm.c: Include memmodel.h.
226 * genattrtab.c (write_header): Include memmodel.h in generated file.
227 * genautomata.c (main): Likewise.
228 * gengtype.c (open_base_files): Likewise.
229 * genopinit.c (main): Likewise.
230 * genconditions.c (write_header): Include memmodel.h earlier in
231 generated file.
232 * genemit.c (main): Likewise.
233 * genoutput.c (output_prologue): Likewise.
234 * genpeep.c (main): Likewise.
235 * genpreds.c (write_insn_preds_c): Likewise.
236 * genrecog.c (write_header): Likewise.
237 * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
238
239 2016-10-13 David Malcolm <dmalcolm@redhat.com>
240
241 * function-tests.c (selftest::test_expansion_to_rtl): Add "true"
242 for new "compact" param of print_rtx_function. Check for "cinsn"
243 rather than "insn".
244 * print-rtl-function.c (flag_compact): New decl.
245 (print_rtx_function): Add param "compact" and use it to set
246 flag_compact, adding a description of the effect to the leading
247 comment, and updating the example output.
248 * print-rtl.c (flag_compact): New variable.
249 (print_rtx_operand_code_0): Omit the JUMP_LABEL reference in compact
250 mode.
251 (print_rtx_operand_code_i): When printing source locations, wrap
252 xloc.file in quotes. Don't print INSN_CODEs in compact mode.
253 (print_rtx_operand_code_r): Don't print regnos for hard regs and
254 virtuals in compact mode.
255 (print_rtx_operand_code_u): Don't print insn UIDs in compact mode,
256 apart from in LABEL_REFs.
257 (print_rtx_operand): In case 'w', don't print in hex in compact mode.
258 Don't print basic block ids in compact mode.
259 (print_rtx): In compact mode, prefix the code of insns with "c",
260 only print the INSN_UID of CODE_LABELs, and omit their LABEL_NUSES.
261 * print-rtl.h (print_rtx_function): Add "compact" param.
262
263 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
264
265 * arm.h (TARGET_VFP): Delete.
266 (TARGET_VFPD32): Remove references to TARGET_VFP.
267 (TARGET_VFP3, TARGET_VFP5): Likewise.
268 (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise.
269 (TARGET_NEON_FP16): Likewise.
270 (TARGET_FMA): Likewise.
271 (TARGET_CRYPTO): Likewise.
272 (TARGET_NEON): Likewise.
273 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
274 (FUNCTION_ARG_REGNO_P): Likewise.
275 * arm.c (arm_option_check_internal): Likewise.
276 (arm_option_override): Likewise.
277 (use_return_insn): Likewise.
278 (arm_function_value_regno_p): Likewise.
279 (arm_apply_result_size): Likewise.
280 (use_vfp_abi): Likewise.
281 (arm_legitimate_address_outer_p): Likewise.
282 (thumb2_legitimate_address_p): Likewise.
283 (arm_legitimate_index_p): Likewise.
284 (thumb2_legitimate_index_p): Likewise.
285 (arm_legitimate_address): Likewise.
286 (arm_get_vfp_saved_size): Likewise.
287 (arm_emit_vfp_multi_reg_pop): Likewise.
288 (arm_get_frame_offsets): Likewise.
289 (arm_save_coproc_regs): Likewise.
290 (arm_hard_regno_mode_ok): Likewise.
291 (arm_expand_epilogue_apcs_frame): Likewise.
292 (arm_expand_epilogue): Likewise.
293 (arm_file_start): Likewise.
294 (arm_conditional_register_usage): Likewise.
295 (arm_validize_comparison): Use vfp_compare_operand directly.
296 * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP.
297 (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting
298 unsupported usage.
299 (arm_atomic_assign_expand_fenv): Likewise.
300 * arm.md (divsf3): Likewise.
301 (arm_negsi2): Likewise.
302 (absdf2): Likewise.
303 (arm_movdi): Likewise.
304 (arm_movt): Likewise.
305 (cbranchsf4): Change predicate to vfp_compare_operand.
306 (cbranchdf4): Change predicate to vfp_compare_operand.
307 (cstorehf4): Change predicate to vfp_compare_operand.
308 (cstoresf4): Change predicate to vfp_compare_operand.
309 (cstoredf4): Change predicate to vfp_compare_operand.
310 (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP.
311 (movhi_insn_arch4, movhi_bytes): Likewise.
312 * constraints.md (Dt): Likewise.
313 (Dp): Likewise.
314 * iterators.md (SDF): Likewise.
315 * predicates.md (arm_float_compare_operand): Delete.
316 (const_double_vcvt_power_of_two_reciprocal): Remove references to
317 TARGET_VFP.
318 (const_double_vcvt_power_of_two): Likewise.
319 * thumb2.md thumb2_movsi_insn): Likewise.
320 * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise.
321 (movhf_vfp): Likewise.
322 (arm_movsi_vfp, thumb2_movsi_vfp): Likewise.
323 (movdi_vfp, movdi_vfp_cortexa8): Likewise.
324 (movsf_vfp, thumb2_movsf_vfp): Likewise.
325 (movdf_vfp, thumb2_movdf_vfp): Likewise.
326 (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise.
327 (subsf3_vfp, divsf3_vfp): Likewise.
328 (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise.
329 (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise.
330 (mulsf3negsfsubsf_vfp): Likewise.
331 (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise.
332 (floatunssisf2, sqrtsf2_vfp): Likewise.
333 (movcc_vfp): Likewise.
334 (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise.
335 (cmpsf_vfp, cmpsf_trap_vfp): Likewise.
336 (push_multi_vfp): Likewise.
337 (set_fpscr, get_fpscr): Likewise.
338 * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__.
339
340 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
341
342 * arm.h (TARGET_VFP): Unconditionally define to 1.
343 (arm_fpu_desc): Remove 'model' field.
344 (TARGET_FPU_MODEL): Delete.
345 * arm.c (all_fpus): Don't initialize the model field.
346 (arm_can_inline_p): Don't check the FPU model.
347 * arm-fpus.def: Remove redundant model field from all FPU
348 descriptions.
349
350 2016-10-13 Richard Biener <rguenther@suse.de>
351
352 PR middle-end/77826
353 * genmatch.c (struct capture): Add value_match member.
354 (commutate): Preserve value_match.
355 (lower_opt_convert): Likewise.
356 (lower_cond): Likewise.
357 (replace_id): Likewise.
358 (struct dt_operand): Add value_match member.
359 (decision_tree::cmp_node): Compare it.
360 (decision_tree::insert_operand): Honor it when finding and
361 when appending a DT_MATCH.
362 (dt_operand::gen_match_op): Generate a type check after
363 operand_equal_p if ! value_match for both GENERIC and GIMPLE.
364 (parser::get_internal_capture_id): New helper.
365 (parser::finish_match_operand): New function lowering @@<id>.
366 (parser::parse_capture): Parse @@<id> as value-match.
367 (parser::parse_expr): Use get_internal_capture_id.
368 (parser::parse_simplify): Call finish_match_operand.
369 (walk_captures): New helper.
370 * match.pd (X - (X / Y) * Y -> X % Y): Use value-matching instead
371 of operand_equal_p.
372 ((X /[ex] A) * A -> X): Likewise.
373 ((X | Y) ^ X -> Y & ~ X): Handle constants properly by using
374 convert[12] and value-matching.
375 ((A | B) & (A | C) -> A | (B & C)): Likewise.
376 ((X | Y) | Y -> X | Y): Likewise.
377 ((X ^ Y) ^ Y -> X): Likewise.
378 (A - (A & B) -> ~B & A): Likewise.
379 ((T)(P + A) - (T)P -> (T) A): Likewise.
380 ((T)P - (T)(P + A) -> -(T) A): Likewise.
381 ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Likewise.
382 * doc/match-and-simplify.texi: Amend capture section.
383
384 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
385
386 * config/arc/arc.md (umul_600): Remove predicated variant.
387 (umul64_600): Likewise.
388
389 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
390
391 * config/arc/arc.h (INSN_LENGTH_ALIGNMENT): Change.
392
393 2016-10-13 Bin Cheng <bin.cheng@arm.com>
394
395 * tree-vect-loop.c (loop_niters_no_overflow): New func.
396 (vect_transform_loop): Call loop_niters_no_overflow. Pass the
397 no-overflow information to vect_do_peeling_for_loop_bound and
398 vect_gen_vector_loop_niters.
399
400 2016-10-13 Bin Cheng <bin.cheng@arm.com>
401
402 * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only
403 iterates 1 time.
404
405 2016-10-13 Bin Cheng <bin.cheng@arm.com>
406
407 * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release
408 adjust_vec automatically.
409 (slpeel_add_loop_guard): Remove param cond_expr_stmt_list. Rename
410 param exit_bb to guard_to.
411 (slpeel_checking_verify_cfg_after_peeling):
412 (set_prologue_iterations):
413 (create_lcssa_for_virtual_phi): New func which is factored out from
414 slpeel_tree_peel_loop_to_edge.
415 (slpeel_tree_peel_loop_to_edge):
416 (iv_phi_p): New func.
417 (vect_can_advance_ivs_p): Call iv_phi_p.
418 (vect_update_ivs_after_vectorizer): Call iv_phi_p. Directly insert
419 new gimple stmts in basic block.
420 (vect_do_peeling_for_loop_bound):
421 (vect_do_peeling_for_alignment):
422 (vect_gen_niters_for_prolog_loop): Rename to...
423 (vect_gen_prolog_loop_niters): ...Rename from. Change parameters and
424 adjust implementation.
425 (vect_update_inits_of_drs): Fix code style issue. Convert niters to
426 sizetype if necessary.
427 (vect_build_loop_niters): Move to here from tree-vect-loop.c. Change
428 it to external function.
429 (vect_gen_scalar_loop_niters, vect_gen_vector_loop_niters): New.
430 (vect_gen_vector_loop_niters_mult_vf): New.
431 (slpeel_update_phi_nodes_for_loops): New.
432 (slpeel_update_phi_nodes_for_guard1): Reimplement.
433 (find_guard_arg, slpeel_update_phi_nodes_for_guard2): Reimplement.
434 (slpeel_update_phi_nodes_for_lcssa, vect_do_peeling): New.
435 * tree-vect-loop.c (vect_build_loop_niters): Move to file
436 tree-vect-loop-manip.c
437 (vect_generate_tmps_on_preheader): Delete.
438 (vect_transform_loop): Rename vectorization_factor to vf. Call
439 vect_do_peeling instead of vect_do_peeling-* functions.
440 * tree-vectorizer.h (vect_do_peeling): New decl.
441 (vect_build_loop_niters, vect_gen_vector_loop_niters): New decls.
442 (vect_do_peeling_for_loop_bound): Delete.
443 (vect_do_peeling_for_alignment): Delete.
444
445 2016-10-13 Bin Cheng <bin.cheng@arm.com>
446
447 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Put
448 duplicated loop after its preheader and after the original loop.
449
450 2016-10-13 Bin Cheng <bin.cheng@arm.com>
451
452 * tree-vect-loop.c (vect_analyze_loop_2): Check and skip loop if it
453 has no enough iterations for LOOP_VINFO_PEELING_FOR_GAPS.
454
455 2016-10-13 Bin Cheng <bin.cheng@arm.com>
456
457 * tree-vect-loop.c (vectorizable_live_operation): Support handling
458 for live variable outside loop but not in lcssa form.
459
460 2016-10-13 Bin Cheng <bin.cheng@arm.com>
461
462 * cfg.c (reset_original_copy_tables): New func.
463 * cfg.h (reset_original_copy_tables): New decl.
464
465 2016-10-13 Jakub Jelinek <jakub@redhat.com>
466
467 PR c/77946
468 * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of
469 public_flag.
470 * varasm.c (default_binds_local_p_3): Formatting fix.
471
472 2016-10-13 Bin Cheng <bin.cheng@arm.com>
473
474 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code
475 style issue.
476 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
477 Remove useless code.
478
479 2016-10-13 Martin Liska <mliska@suse.cz>
480
481 PR tree-optimization/77943
482 * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
483 a different EH landing pads.
484
485 2016-10-13 Jakub Jelinek <jakub@redhat.com>
486
487 PR target/77957
488 * hooks.h (hook_tree_void_null): Declare.
489 * hooks.c (hook_tree_void_null): New function.
490 * langhooks.c (lhd_return_null_tree_v): Remove.
491 * langhooks-def.h (lhd_return_null_tree_v): Remove.
492 * cfgexpand.c (stack_protect_prologue): If guard_decl is NULL,
493 set y to const0_rtx.
494 * function.c (stack_protect_epilogue): Likewise.
495 * config/tilepro/tilepro.c (TARGET_STACK_PROTECT_GUARD): Redefine
496 if TARGET_THREAD_SSP_OFFSET is defined.
497 * config/s390/s390.c (TARGET_STACK_PROTECT_GUARD): Likewise.
498 * config/sparc/sparc.c (TARGET_STACK_PROTECT_GUARD): Likewise.
499 * config/tilegx/tilegx.c (TARGET_STACK_PROTECT_GUARD): Likewise.
500 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Likewise.
501 * config/i386/i386.c (TARGET_STACK_PROTECT_GUARD): Likewise.
502 (ix86_stack_protect_guard): New function.
503
504 2016-10-13 Richard Biener <rguenther@suse.de>
505
506 * dwarf2out.c (tree_add_const_value_attribute): Do not try
507 rtl_for_decl_init during early phase.
508 (gen_variable_die): Do not create locations during early phase.
509 (gen_label_die): Likewise.
510 (decls_for_scope): Do not waste time handling BLOCK_NONLOCALIZED_VARs
511 twice.
512
513 2016-10-12 Richard Biener <rguenther@suse.de>
514
515 * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from
516 try_add_new_range and made to eturn new range.
517 (evrp_dom_walker::before_dom_children): Push op1 value range before
518 pushing op0 value range.
519
520 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
521
522 PR tree-optimization/77937
523 * gimple-ssa-strength-reduction.c (analyze_increments): Use
524 POINTER_TYPE_P on the candidate type to determine whether
525 candidates in this chain require pointer arithmetic.
526
527 2016-10-12 Eric Botcazou <ebotcazou@adacore.com>
528
529 * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
530 correction if the type is smaller than a word.
531 (visium_select_cc_mode): Add ... fall through ... comment.
532
533 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
534
535 * config/rs6000/rs6000.c (machine_function): Add new fields
536 gpr_is_wrapped_separately and lr_is_wrapped_separately.
537 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
538 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
539 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
540 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
541 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
542 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
543 (rs6000_get_separate_components): New function.
544 (rs6000_components_for_bb): New function.
545 (rs6000_disqualify_components): New function.
546 (rs6000_emit_prologue_components): New function.
547 (rs6000_emit_epilogue_components): New function.
548 (rs6000_set_handled_components): New function.
549 (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
550 Don't emit GPR saves if gpr_is_wrapped_separately for that register.
551 (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
552 (rs6000_emit_epilogue): Don't emit GPR restores if
553 gpr_is_wrapped_separately for that register. Don't make a
554 REG_CFA_RESTORE note for registers we did not restore, either.
555
556 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
557
558 * function.c (thread_prologue_and_epilogue_insns): Call
559 try_shrink_wrapping_separate. Compute the prologue_seq afterwards,
560 if it has possibly changed. Compute the split_prologue_seq and
561 epilogue_seq later, too.
562 * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
563 (dump_components): New function.
564 (struct sw): New struct.
565 (SW): New function.
566 (init_separate_shrink_wrap): New function.
567 (fini_separate_shrink_wrap): New function.
568 (place_prologue_for_one_component): New function.
569 (spread_components): New function.
570 (disqualify_problematic_components): New function.
571 (emit_common_heads_for_components): New function.
572 (emit_common_tails_for_components): New function.
573 (insert_prologue_epilogue_for_components): New function.
574 (try_shrink_wrapping_separate): New function.
575 * shrink-wrap.h: Declare try_shrink_wrapping_separate.
576
577 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
578
579 * regrename.c (build_def_use): Invalidate chains that have a
580 REG_CFA_RESTORE on some instruction.
581
582 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
583
584 * dce.c (delete_unmarked_insns): Don't delete instructions with
585 a REG_CFA_RESTORE note.
586
587 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
588
589 * common.opt (-fshrink-wrap-separate): New flag.
590 * doc/invoke.texi: Document it.
591 * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
592 * doc/tm.texi: Regenerate.
593 * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
594 * target.def (shrink_wrap): New hook vector.
595 (get_separate_components, components_for_bb, disqualify_components,
596 emit_prologue_components, emit_epilogue_components,
597 set_handled_components): New hooks.
598
599 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
600
601 * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
602 vector return by reference only if -Wpsabi.
603 (rs6000_pass_by_reference): Similarly, for argument passing.
604
605 2016-10-12 David Malcolm <dmalcolm@redhat.com>
606
607 * function-tests.c: Include "print-rtl.h".
608 (selftest::test_expansion_to_rtl): Call print_rtx_function on the
609 function, and verify what is dumped.
610 * print-rtl-function.c (print_edge): New function.
611 (begin_any_block): New function.
612 (end_any_block): New function.
613 (can_have_basic_block_p): New function.
614 (print_rtx_function): Track the basic blocks of insns in the
615 chain, wrapping those that are within blocks within "(block)"
616 directives. Remove the "(cfg)" directive.
617
618 2016-10-12 David Malcolm <dmalcolm@redhat.com>
619
620 * selftest.c (selftest::read_file): New function.
621 (selftest::test_read_file): New function.
622 (selftest::selftest_c_tests): Call test_read_file.
623 * selftest.h (selftest::read_file): New decl.
624
625 2016-10-12 Richard Biener <rguenther@suse.de>
626
627 PR debug/77947
628 * cgraphunit.c (analyze_functions): Preserve cgraph nodes
629 function context.
630
631 2016-10-12 Thomas Schwinge <thomas@codesourcery.com>
632
633 * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
634
635 * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
636 dwarf2out_assembly_start.
637
638 * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
639
640 * Makefile.in (SELFTEST_FLAGS): New variable.
641 (s-selftest, selftest-gdb, selftest-valgrind): Use it.
642
643 * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
644 early_finish hook.
645
646 2016-10-12 Georg-Johann Lay <avr@gjlay.de>
647
648 * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
649 dumped in RTL dumps.
650
651 2016-10-12 Martin Liska <mliska@suse.cz>
652
653 * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
654 (gimple_fold_builtin_memory_op): Use the function.
655 (gimple_fold_builtin_strchr): Likewise.
656 (gimple_fold_builtin_strcat): Likewise.
657 (gimple_build): Likewise.
658
659 2016-10-12 Nathan Sidwell <nathan@acm.org>
660
661 * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
662
663 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
664
665 * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
666 equivalent 32-bit constant (modulo 2**32) when that yields
667 smaller instructions.
668 (size_of_int_loc_descriptor): Update accordingly.
669
670 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
671
672 * dwarf2out.c (dwarf2out_early_global_decl): For nested
673 functions, call dwarf2out_decl on the parent function first.
674
675 2016-10-12 Richard Biener <rguenther@suse.de>
676
677 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
678 on the conversion.
679
680 2016-10-12 Richard Biener <rguenther@suse.de>
681
682 * tree-ssa-propagate.c
683 (substitute_and_fold_dom_walker::before_dom_children): Do not
684 ignore ASSERT_EXPRs but only preserve them.
685 * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
686 that have been propagated into.
687 (vrp_finalize): Enable DCE for substitute_and_fold.
688
689 2016-10-12 Richard Biener <rguenther@suse.de>
690
691 PR tree-optimization/77920
692 * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
693 (simplify_min_or_max_using_ranges): Pass in gsi and use it.
694 (simplify_abs_using_ranges): Likewise.
695 (simplify_conversion_using_ranges): Likewise.
696 (simplify_stmt_using_ranges): Adjust.
697
698 2016-10-12 Jakub Jelinek <jakub@redhat.com>
699
700 PR tree-optimization/77929
701 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
702 (*ops)[ranges[i].idx]->op != ranges[i].exp case.
703
704 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
705
706 PR target/77934
707 * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
708 needs a base register for arg 1.
709
710 2016-10-12 Jakub Jelinek <jakub@redhat.com>
711
712 * common.opt (Wimplicit-fallthrough) Turn into alias to
713 -Wimplicit-fallthrough=3. Remove EnabledBy.
714 (Wimplicit-fallthrough=): New option.
715 * gimplify.c (warn_implicit_fallthrough_r): Use
716 OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
717 * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
718 to -Wimplicit-fallthrough=3.
719 (-Wimplicit-fallthrough=): Document.
720
721 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
722
723 * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
724 and GEU in DImode if TARGET_SUBXC.
725 * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
726 (seqdi<W:mode>_zero_subxc): Delete.
727 (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
728 (neg_seqdi<W:mode>_zero_vis3): Delete.
729 (plus_seqdi<W:mode>_zero): Likewise.
730 (minus_seqdi<W:mode>_zero): Likewise.
731 (plus_plus_sltu<W:mode>): Accept only register.
732 (addx<W:mode>): Likewise.
733 (plus_sltu<W:mode>_vis3): Likewise.
734 (plus_plus_sltu<W:mode>_vis3): Likewise.
735 (neg_sgeu<W:mode>_vis3): Delete.
736 (minus_sgeu<W:mode>_vis3): Likewise.
737 (addxc<W:mode>): Accept only registers.
738 (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
739 (minus_neg_sltu<W:mode>_subxc): Accept only register.
740 (neg_plus_sltu<W:mode>_subxc): Likewise.
741 (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
742 (minus_minus_sltu<W:mode>_subxc): Accept only register.
743 (sgeu<W:mode>_insn_subxc): Delete.
744 (plus_sgeu<W:mode>_subxc): Likewise.
745 (subxc<W:mode>): Accept only register.
746 (scc splitter): Split always GEU again.
747
748 2016-10-11 Jeff Law <law@redhat.com>
749
750 PR tree-optimization/77424
751 * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
752 dead conditionals. Assert that all e->aux fields are NULL.
753
754 2016-10-11 David Malcolm <dmalcolm@redhat.com>
755
756 * print-rtl.c (print_rtx): Rename "i" to "idx". Split out the
757 operand-printing "switch" statement into...
758 (print_rtx_operand_code_0): ...this new function, ...
759 (print_rtx_operand_code_e): ...this new function, ...
760 (print_rtx_operand_codes_E_and_V): ...this new function, ...
761 (print_rtx_operand_code_i): ...this new function, ...
762 (print_rtx_operand_code_r): ...this new function, ...
763 (print_rtx_operand_code_u): ...this new function, ...
764 (print_rtx_operand): ...and this new function.
765
766 2016-10-11 Uros Bizjak <ubizjak@gmail.com>
767
768 * config/alpha/alpha-passes.def: New file.
769 * config/alpha/t-alpha: New file.
770 * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
771 (make_pass_handle_trap_shadows): New prototype.
772 (make_pass_align_insns): Ditto.
773 * config/alpha/alpha.c (alpha_option_override): Don't register
774 passes here.
775 * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
776
777 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
778
779 PR target/77924
780 * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
781 distinct __ibm128 IBM extended double type if long doubles are
782 128-bits and the default format for long double is IEEE 128-bit.
783
784 2016-10-11 Richard Biener <rguenther@suse.de>
785
786 * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
787 (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
788 (verify_die): New function.
789 (dwarf2out_finish): Call it.
790 (output_line_info): Handle case of -gsplit-dwarf without
791 DWARF2_ASM_LINE_DEBUG_INFO.
792
793 2016-10-11 Richard Biener <rguenther@suse.de>
794
795 PR debug/77931
796 * gimple-low.c (lower_gimple_bind): Handle arbitrary common
797 sub-chains of BLOCK_VARS and gimple_bind_vars.
798
799 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
800
801 * config/i386/znver1.md : Fix imov/imovx load type reservations.
802
803 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
804
805 * config/sparc/sparc.opt (msubxc): New option.
806 * doc/invoke.texi (SPARC options): Document it and tidy up.
807 * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
808 * doc/tm.texi: Regenerate.
809 * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
810 (CCNZ): ...this.
811 (CCX_NOOV): Rename into...
812 (CCXNZ): ...this.
813 (CCC): New.
814 (CCXC): Likewise.
815 * config/sparc/predicates.m (fcc_register_operand): Simplify.
816 (fcc0_register_operand): Likewise.
817 (icc_register_operand): New.
818 (icc_or_fcc_register_operand): Simplify.
819 (nz_comparison_operator): New.
820 (c_comparison_operator): Likewise.
821 (noov_compare_operator): Rename into...
822 (icc_comparison_operator): ...this. Use above predicates.
823 (noov_compare64_operator): Rename into...
824 (v9_comparison_operator): ...this and tidy up.
825 (fcc_comparison_operator): New.
826 (icc_or_fcc_comparison_operator): Likewise.
827 (v9_register_compare_operator): Rename info...
828 (v9_register_comparison_operator): ...this.
829 * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
830 (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
831 for Niagara-7.
832 (sparc_fixed_condition_code_regs): New function.
833 (select_cc_mode): Remove ATTRIBUTE_UNUSED. Adjust for CCNZ/CCXNZ
834 renaming and add support for CCC/CCXC.
835 (output_cbranch): Likewise.
836 (sparc_print_operand): Likewise.
837 (gen_v9_scc): Remove obsolete assertion.
838 (emit_scc_insn): Emit RTL directly for EQ and NE. Add direct support
839 for EQ in DImode if TARGET_SUBXC. Remove test on TARGET_VIS3 for GEU.
840 (output_cbcond): Remove bogus handling of CC modes.
841 (sparc_register_move_cost): Return 100 for NO_REGS.
842 * config/sparc/sparc.md (W): New mode iterator.
843 (length): Adjust for noov_compare64_operator renaming.
844 (cmpsi_sne): New instruction.
845 (cmpdi_sne): Likewise.
846 (seqdi_special): Delete.
847 (seqdi_special): Likewise.
848 (snesi<P:mode>_special): Likewise.
849 (snedi_special): Likewise.
850 (snedi_special_vis3): Likewise.
851 (snesi patterns): Use W iterator.
852 (snedi patterns): Likewise. Add TARGET_SUBXC patterns.
853 (sltu patterns): Likewise.
854 (sgeu patterns): Likewise.
855 (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
856 (normal_branch): Use icc_comparison_operator predicate.
857 (inverted_branch): Likewise.
858 (cbcond_sp32): Use comparison_operator predicate.
859 (cbcond_sp64): Likewise.
860 (normal_int_branch_sp64): Adjust for renaming
861 (inverted_int_branch_sp64): Likewise.
862 (mov<I:mode>_cc_reg_sp64): Likewise.
863 (movsf_cc_reg_sp6): Likewise.
864 (movdf_cc_reg_sp64): Likewise.
865 (movtf_cc_reg_hq_sp64): Likewise.
866 (movtf_cc_reg_sp64): Likewise.
867 (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
868 (movsf_cc_v9): Likewise.
869 (movdf_cc_v9): Likewise.
870 (movtf_cc_hq_v9): Likewise.
871 (movtf_cc_v9): Likewise.
872 (adddi3): Call gen_adddi3_sp32.
873 (adddi3_insn_sp32): Rename to...
874 (adddi3_sp32): ...this. Accept only register_operand as operand #1
875 and use CCCmode for the carry.
876 (addx_extend_sp32): Use CCCmode for the carry.
877 (addx_extend_sp64): Delete.
878 (adddi3_extend_sp32): Use CCCmode for the carry.
879 (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
880 (subdi3): Call gen_subdi3_sp32.
881 (subdi3_insn_sp32): Rename to...
882 (subdi3_sp32): ...this and use CCmode for the carry.
883 (subx_extend_sp32): Use CCCmode for the carry.
884 (subx_extend_sp64): Delete.
885 (subdi3_extend_sp32): Use CCmode for the carry.
886 (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
887 (negdi3): Call gen_negdi3_sp32.
888 (negdi3_sp32): Use CCCmode for the carry.
889 (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
890 (cmp_nz_ashift_1): Use CCNZ mode.
891 (cmp_nz_set_ashift_1): Likewise.
892 (ctrapsi4): Use comparison_operator predicate.
893 (ctrapdi4): Likewise.
894 (trapsi_insn): Use icc_comparison_operator predicate.
895 (trapdi_insn): Likewise.
896 (edge8 patterns): Use CCNZmode.
897 (edge16 patterns): Likewise.
898 (edge32 patterns): Likewise.
899
900 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
901
902 * config/visium/visium-modes.def (CC_NOOV): Rename into...
903 (CCNZ): ...this.
904 (CC_BTST): Rename into...
905 (CCC): ...this.
906 * config/visium/predicates.md (real_add_operand): New.
907 (visium_btst_operator): Rename into...
908 (visium_equality_comparison_operator): ...this.
909 (visium_noov_operator): Rename into...
910 (visium_nz_comparison_operator): ...this.
911 (visium_c_comparison_operator): New.
912 (visium_branch_operator): Adjust and deal with all CC modes.
913 * config/visium/visium.c (visium_adjust_cost): Adjust.
914 (visium_split_double_add): Use the *_set_carry patterns.
915 (visium_select_cc_mode): Add support for CCC mode and adjust.
916 (output_cbranch): Adjust and use the carry-based operators for
917 floating-point comparisons.
918 * config/visium/visium.md (flags_subst_arith): Adjust.
919 (addsi3_insn_set_carry): New instruction.
920 (subsi3_insn_set_carry): Likewise.
921 (negsi2_insn_set_carry): Likewise.
922 (btst): Adjust.
923 (cmp<mode>_sne): Likewise.
924 (cbranch<mode>4): Use ordered_comparison_operator.
925 (cbranch<mode>4_insn): Likewise.
926 (cbranchsi4_btst_insn): Adjust.
927
928 2016-10-11 Tom de Vries <tom@codesourcery.com>
929
930 PR middle-end/77558
931 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
932 special-casing.
933
934 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
935
936 * tree.h (build_complex_type): Add second parameter with default.
937 * tree.c (build_complex_type): Add NAMED second parameter and adjust
938 recursive call. Create a TYPE_DECL only if NAMED is true.
939 (build_common_tree_nodes): Pass true in calls to build_complex_type.
940
941 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
942
943 New avr-passes.def to register AVR specific passes.
944
945 * config/avr/avr-passes.def: New file.
946 * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
947 * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
948 (make_avr_pass_recompute_note): New proto.
949 * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
950 (avr_pass_recompute_notes): Use anonymous namespace.
951 (avr_register_passes): Remove function...
952 (avr_option_override): ...and its call.
953
954 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
955
956 * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
957 PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
958 PTF_AVOID_BRANCHLIKELY_SPEED for others.
959 (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
960 flags.
961 * config/mips/mips.c (mips_option_override): Enable the branch
962 likely depending on the tune flags and optimization level.
963 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
964 (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
965 (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
966 (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
967
968 2016-10-11 Richard Biener <rguenther@suse.de>
969
970 * lto-streamer-out.c (collect_block_tree_leafs): New helper.
971 (output_function): Properly stream the whole block tree.
972 * lto-streamer-in.c (input_function): Likewise.
973
974 2016-10-11 Marek Polacek <polacek@redhat.com>
975
976 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
977
978 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
979
980 * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
981 (evrp_dom_walker::before_dom_children): Infer and push new value
982 ranges for x in y < x.
983
984 2016-10-10 Joseph Myers <joseph@codesourcery.com>
985
986 PR target/77586
987 * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
988 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
989 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
990 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
991 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
992 (IA64_NO_LIBGCC_TFMODE): Likewise.
993
994 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
995
996 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
997 copying.
998
999 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
1000
1001 * config.gcc: Add aarch64-*-freebsd* support.
1002 * config.host: Likewise.
1003 * config/aarch64/aarch64-freebsd.h: New file.
1004 * config/aarch64/t-aarch64-freebsd: Ditto.
1005
1006 2016-10-10 Jeff Law <law@redhat.com>
1007
1008 PR tree-optimization/71947
1009 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
1010 B with A within a single statement.
1011
1012 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1013
1014 PR tree-optimization/77824
1015 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
1016 zero cost for copies.
1017 (find_candidates_dom_walker::before_dom_children): Replace
1018 MODIFY_EXPR with SSA_NAME.
1019 (replace_mult_candidate): Likewise.
1020 (replace_profitable_candidates): Likewise.
1021
1022 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1023
1024 * config/s390/s390.h: Wrap more macros args in brackets and fix
1025
1026 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
1027
1028 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
1029
1030 2016-10-10 Andreas Schwab <schwab@suse.de>
1031
1032 PR target/77738
1033 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
1034 pseudo is not DImode.
1035
1036 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
1037
1038 * common/config/arc/arc-common.c (arc_option_optimization_table):
1039 Remove compact casesi option.
1040 * config/arc/arc.c (arc_override_options): Use compact casesi
1041 option only for pre-ARCv2 cores.
1042 * doc/invoke.texi (mcompact-casesi): Update text.
1043
1044 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1045
1046 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
1047 Add macro to say we can efficiently handle overlapping unaligned
1048 loads.
1049 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
1050 poor code for processors older than p8.
1051
1052 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
1053
1054 * gen-pass-instances.awk: Remove GNUism.
1055
1056 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1057
1058 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
1059 NULL of (*ipcp_transformations)][node->uid].
1060
1061 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
1062
1063 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
1064 (MALLOC_ABI_ALIGNMENT): Define.
1065
1066 2016-10-09 Jakub Jelinek <jakub@redhat.com>
1067
1068 * tree-ssa.c (target_for_debug_bind, verify_phi_args,
1069 ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
1070 VAR_OR_FUNCTION_DECL_P macros.
1071 * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
1072 chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
1073 chkp_find_bounds_1): Likewise.
1074 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
1075 * hsa-gen.c (get_symbol_for_decl): Likewise.
1076 * cgraphunit.c (check_global_declaration, analyze_functions,
1077 handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
1078 Likewise.
1079 * gimple-fold.c (can_refer_decl_in_current_unit_p,
1080 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
1081 Likewise.
1082 * tree.c (set_decl_section_name, copy_node_stat,
1083 need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
1084 merge_dllimport_decl_attributes, handle_dll_attribute,
1085 decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
1086 verify_type): Likewise.
1087 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
1088 find_explicit_erroneous_behavior): Likewise.
1089 * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
1090 * ipa.c (process_references): Likewise.
1091 * tree-chkp-opt.c (chkp_get_check_result): Likewise.
1092 * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
1093 notice_global_symbol, assemble_variable, mark_decl_referenced,
1094 build_constant_desc, output_constant_def_contents, do_assemble_alias,
1095 make_decl_one_only, default_section_type_flags,
1096 categorize_decl_for_section, default_encode_section_info): Likewise.
1097 * trans-mem.c (requires_barrier): Likewise.
1098 * gimple-expr.c (mark_addressable): Likewise.
1099 * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
1100 expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
1101 expand_debug_expr): Likewise.
1102 * tree-dump.c (dequeue_and_dump): Likewise.
1103 * ubsan.c (instrument_bool_enum_load): Likewise.
1104 * tree-pretty-print.c (print_declaration): Likewise.
1105 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1106 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
1107 * asan.c (asan_protect_global, instrument_derefs): Likewise.
1108 * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
1109 pass_build_ssa::execute): Likewise.
1110 * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
1111 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
1112 Likewise.
1113 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
1114 Likewise.
1115 * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
1116 can_be_nonlocal, remap_decls, copy_debug_stmt,
1117 initialize_inlined_parameters, add_local_variables,
1118 reset_debug_binding, replace_locals_op): Likewise.
1119 * dse.c (can_escape): Likewise.
1120 * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
1121 Likewise.
1122 * tree-diagnostic.c (default_tree_printer): Likewise.
1123 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
1124 unpack_ts_decl_with_vis_value_fields,
1125 lto_input_ts_decl_common_tree_pointers): Likewise.
1126 * builtins.c (builtin_save_expr, fold_builtin_expect,
1127 readonly_data_expr): Likewise.
1128 * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
1129 create_variable_info_for, set_uids_in_ptset, visit_loadstore):
1130 Likewise.
1131 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
1132 * gimplify.c (force_constant_size, gimplify_bind_expr,
1133 gimplify_decl_expr, gimplify_var_or_parm_decl,
1134 gimplify_compound_lval, gimplify_init_constructor,
1135 gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
1136 gimplify_type_sizes): Likewise.
1137 * cgraphbuild.c (record_reference, record_type_list, mark_address,
1138 mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
1139 * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
1140 remove_unused_locals): Likewise.
1141 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
1142 ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
1143 * function.c (instantiate_expr, instantiate_decls_1,
1144 setjmp_vars_warning, add_local_decl): Likewise.
1145 * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
1146 Likewise.
1147 * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
1148 va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
1149 optimize_va_list_gpr_fpr_size): Likewise.
1150 * tree-nrv.c (pass_nrv::execute): Likewise.
1151 * tsan.c (instrument_expr): Likewise.
1152 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
1153 * vtable-verify.c (verify_bb_vtables): Likewise.
1154 * tree-dfa.c (ssa_default_def, set_ssa_default_def,
1155 get_ref_base_and_extent): Likewise.
1156 * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
1157 Likewise.
1158 * tree-sra.c (static bool constant_decl_p, find_var_candidates,
1159 analyze_all_variable_accesses): Likewise.
1160 * tree-nested.c (get_nonlocal_debug_decl,
1161 convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
1162 note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
1163 get_local_debug_decl, convert_local_omp_clauses,
1164 convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
1165 Likewise.
1166 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
1167 * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
1168 * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
1169 dbxout_symbol, dbxout_common_check): Likewise.
1170 * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
1171 string_constant): Likewise.
1172 * hsa.c (hsa_get_declaration_name): Likewise.
1173 * passes.c (rest_of_decl_compilation): Likewise.
1174 * tree-ssanames.c (make_ssa_name_fn): Likewise.
1175 * tree-streamer-out.c (pack_ts_decl_common_value_fields,
1176 pack_ts_decl_with_vis_value_fields,
1177 write_ts_decl_common_tree_pointers): Likewise.
1178 * stor-layout.c (place_field): Likewise.
1179 * symtab.c (symtab_node::maybe_create_reference,
1180 symtab_node::verify_base, symtab_node::make_decl_local,
1181 symtab_node::copy_visibility_from,
1182 symtab_node::can_increase_alignment_p): Likewise.
1183 * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
1184 decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
1185 fortran_common, add_location_or_const_value_attribute,
1186 add_scalar_info, add_linkage_name, set_block_abstract_flags,
1187 local_function_static, gen_variable_die, dwarf2out_late_global_decl,
1188 optimize_one_addr_into_implicit_ptr,
1189 optimize_location_into_implicit_ptr): Likewise.
1190 * gimple-low.c (record_vars_into): Likewise.
1191 * ipa-visibility.c (update_vtable_references): Likewise.
1192 * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
1193 Likewise.
1194 * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
1195 DFS::DFS_write_tree_body, write_symbol): Likewise.
1196 * langhooks.c (lhd_warn_unused_global_decl,
1197 lhd_set_decl_assembler_name): Likewise.
1198 * attribs.c (decl_attributes): Likewise.
1199 * except.c (output_ttype): Likewise.
1200 * varpool.c (varpool_node::get_create, ctor_for_folding,
1201 varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
1202 * fold-const.c (fold_unary_loc): Likewise.
1203 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
1204 ipa_find_agg_cst_from_init): Likewise.
1205 * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
1206 expand_omp_target, lower_omp_regimplify_p,
1207 grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
1208 find_link_var_op): Likewise.
1209 * tree-chrec.c (chrec_contains_symbols): Likewise.
1210 * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
1211 gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
1212 execute_fixup_cfg): Likewise.
1213
1214 PR tree-optimization/77901
1215 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
1216 if ranges[i].exp is SSA_NAME when looking for >= and only when
1217 ranges[i].exp is NULL or SSA_NAME when looking for the other
1218 comparison.
1219
1220 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1221
1222 * ipa-cp.c (ipcp_alignment_lattice): Remove.
1223 (ipcp_param_lattices): Remove field alignment.
1224 (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
1225 (set_all_contains_variable): Remove call to
1226 ipcp_alignment_lattice::set_to_bottom.
1227 (initialize_node_lattices): Likewise.
1228 (propagate_alignment_accross_jump_function): Remove.
1229 (propagate_constants_accross_call): Remove call to
1230 propagate_alignment_accross_jump_function.
1231 (ipcp_store_alignment_results): Remove.
1232 (ipcp_driver): Remove call to ipcp_store_alignment_results.
1233 (propagate_bits_accross_jump_function): Handle ancestor jump function.
1234 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
1235 pretty-printing of alignment jump function.
1236 (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
1237 (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
1238 alignments and remove computing ipa_alignment jump function.
1239 (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
1240 (ipa_write_jump_functions): Remove streaming for ipa_alignment.
1241 (ipa_read_jump_function): Remove reading of ipa_alignment.
1242 (write_ipcp_transformation_info): Remove streaming for alignment
1243 propagation summary.
1244 (read_ipcp_transformation_info): Remove reading of alignment
1245 propagation summary.
1246 (ipcp_update_alignments): Remove.
1247 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
1248 type.
1249 (ipcp_transform_function): Remove call to ipcp_update_alignments()
1250 and remove assignment to (*ipcp_transformations)[node->uid].alignments.
1251 * ipa-prop.h (ipa_alignment): Remove.
1252 (ipa_jump_func): Remove field alignment.
1253 (ipcp_transformation_summary): Remove field alignments.
1254 * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
1255 * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
1256 (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
1257
1258 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
1259
1260 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
1261
1262 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
1263 change.
1264 (visium_expand_fp_cstore): Likewise.
1265
1266 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1267
1268 * diagnostic-core.h (warning_at_rich_loc_n): Declare.
1269 * diagnostic.c (warning_at_rich_loc_n): New function.
1270 (diagnostic_n_impl_richloc): Likewise.
1271 (diagnostic_n_impl): Move most of the function to
1272 diagnostic_n_impl_richloc and call it.
1273
1274 2016-10-08 Jakub Jelinek <jakub@redhat.com>
1275
1276 * gen-pass-instances.awk: Rewritten.
1277 * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
1278 $(PASSES_EXTRA) after passes.def to the script.
1279 * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
1280 * config/i386/i386-passes.def: New file.
1281 * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
1282 make_pass_stv): Declare.
1283 * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
1284 false.
1285 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
1286 or !TARGET_64BIT.
1287 (pass_stv::clone, pass_stv::set_pass_param): New methods.
1288 (pass_stv::timode_p): New non-static data member.
1289 (ix86_option_override): Don't register passes here.
1290
1291 * doc/invoke.texi: Document accepting Else, fallthrough.
1292
1293 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
1294 style changes.
1295
1296 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
1297 FALLTHRU comment styles.
1298
1299 2016-10-07 Andrew Pinski <apinski@cavium.com>
1300
1301 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
1302 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
1303 * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
1304 Likewise.
1305 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
1306 Likewise.
1307 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
1308 Likewise.
1309 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
1310 (AARCH64_ARCH): Likewise.
1311 * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
1312 Likewise.
1313 (AARCH64_CORE): Likewise.
1314 (AARCH64_ARCH): Likewise.
1315 * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
1316 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
1317 * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
1318 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
1319 (AARCH64_ARCH): Likewise.
1320 (AARCH64_CORE): Likewise.
1321 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
1322 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
1323 (AARCH64_CORE): Likewise.
1324 (AARCH64_ARCH): Likewise.
1325
1326 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
1327
1328 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
1329 -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
1330 floating point type infrastructre, and -mfloat128 that enables the
1331 keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
1332 if -mfloat128-type. Define __ibm128 to be long double by default.
1333 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
1334 the IEEE 128-bit floating point type infrastructure should
1335 automatically be enabled.
1336 (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
1337 instead of -mfloat128 to enable KFmode.
1338 (rs6000_option_override_internal): Split the option -mfloat128
1339 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit
1340 systems, automatically set -mfloat128-type, but don't enable it on
1341 other operating systems. Move setting the long double size and
1342 IEEE quad support before the IEEE 128-bit floating point changes.
1343 (rs6000_init_builtins): Do not create a unique type for __ibm128
1344 if long double is IBM extended double, instead rely on __ibm128
1345 being defined as 'long double'. If -mfloat128-type and not
1346 -mfloat128, create the KFmode type with an undocumented __ieee128
1347 keyword.
1348 (rs6000_init_libfuncs): Use -mfloat128-type instead of
1349 -mfloat128 for tests about the types, but keep tests for
1350 -mfloat128 to enable the keyword support.
1351 (rs6000_complex_function_value): Likewise.
1352 (rs6000_scalar_mode_supported_p): Likewise.
1353 (rs6000_floatn_mode): Likewise.
1354 (rs6000_c_mode_for_suffix): Likewise.
1355 (rs6000_opt_masks): Add -mfloat128-type.
1356 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
1357 -mfloat128-type being split from -mfloat128. Add
1358 -mfloat128-hardware, which was missing.
1359 * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
1360 -mfloat128 and -mfloat128-type:
1361 (-mfloat128-type): Likewise.
1362 * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
1363 that 64-bit Linux systems with enable -mfloat128-type by default
1364 on VSX systems.
1365 * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
1366 (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
1367 -mfloat128-type instead of -mfloat128.
1368 (FLOAT128_2REG_P): Likewise.
1369 (MASK_FLOAT128_TYPE): Likewise.
1370 (ALTIVEC_ARG_MAX_RETURN): Likewise.
1371 (RS6000_BTM_FLOAT128): Likewise.
1372 (TARGET_FLOAT128): Poison old identifiers.
1373 (OPTION_MASK_FLOAT128): Likewise.
1374 (MASK_FLOAT128): Likewise.
1375 * config/rs6000/rs6000.md (FP): Likewise.
1376 (FLOAT128): Likewise.
1377 (fix_trunc<mode>di2): Likewise.
1378 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
1379 (floatdi<mode>2): Likewise.
1380 (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
1381 (neg<mode>2, FLOAT128 iterator): Likewise.
1382 (abs<mode>2, FLOAT128 iterator): Likewise.
1383 (ieee_128bit_negative_zero): Likewise.
1384 (ieee_128bit_vsx_neg<mode>2): Likewise.
1385 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
1386 (ieee_128bit_vsx_abs<mode>2): Likewise.
1387 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
1388 (ieee_128bit_vsx_nabs<mode>2): Likewise.
1389 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
1390 (extendiftf2): Likewise.
1391 (extendifkf2): Likewise.
1392 (extendtfkf2): Likewise.
1393 (trunciftf2): Likewise.
1394 (truncifkf2): Likewise.
1395 (trunckftf2): Likewise.
1396 (trunctfif2): Likewise.
1397 (extendkftf2): Likewise.
1398 (trunctfkf2): Likewise.
1399
1400 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1401
1402 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
1403 before merging in bytes to pass down to real_from_target.
1404
1405 2016-10-07 Richard Biener <rguenther@suse.de>
1406
1407 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
1408 required hack.
1409 (substitute_and_fold_dom_walker::before_dom_children):
1410 Substitute and fold before pass specific folding to avoid
1411 feeding that with SSA names that will be later released.
1412 * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
1413 introduced by folding and visited by evaluate_stmt called during
1414 ccp_fold_stmt.
1415 (likely_value): Likewise.
1416 (evaluate_stmt): Likewise.
1417 * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
1418 (simplify_div_or_mod_using_ranges): Likewise.
1419 (simplify_min_or_max_using_ranges): Likewise.
1420 (simplify_abs_using_ranges): Likewise.
1421 (simplify_conversion_using_ranges): Likewise.
1422 (simplify_float_conversion_using_ranges): Likewise.
1423 (simplify_stmt_using_ranges): Likewise.
1424
1425 2016-10-07 Marek Polacek <polacek@redhat.com>
1426
1427 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
1428 FALLTHROUGH_LABEL_P here...
1429 (warn_implicit_fallthrough_r): ...not here.
1430
1431 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
1432
1433 PR tree-optimization/77880
1434 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
1435 necessary.
1436
1437 2016-10-07 Marek Polacek <polacek@redhat.com>
1438
1439 PR c++/77803
1440 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
1441
1442 2016-10-07 Richard Biener <rguenther@suse.de>
1443
1444 * bitmap.h: Document constraints on bitmap modification while
1445 iterating over it.
1446
1447 2016-10-07 Richard Biener <rguenther@suse.de>
1448
1449 * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
1450 * bitmap.h (bmp_iter_set): When advancing to the next element
1451 check that we didn't remove the current one.
1452 (bmp_iter_and): Likewise.
1453 (bmp_iter_and_compl): Likewise.
1454 * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
1455 we currently iterate on but keep a one-level queue.
1456 * sched-deps.c (remove_from_deps): Do not clear current bit
1457 but keep a one-level queue.
1458
1459 2016-10-07 Jakub Jelinek <jakub@redhat.com>
1460
1461 PR tree-optimization/77664
1462 * tree-ssa-reassoc.c (update_range_test): Also clear low and high
1463 for the other ranges.
1464 (optimize_range_tests_diff): Fix up formatting.
1465 (optimize_range_tests_var_bound): New function.
1466 (optimize_range_tests): Use it.
1467
1468 2016-10-07 Martin Liska <mliska@suse.cz>
1469
1470 * coverage.c (build_gcov_exit_decl): Fix priority what
1471 should be really 99.
1472
1473 2016-10-07 Richard Biener <rguenther@suse.de>
1474
1475 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
1476 vars in gimple_bind_vars but not in BLOCK_VARS.
1477
1478 2016-10-07 Richard Biener <rguenther@suse.de>
1479
1480 PR tree-optimization/77879
1481 * tree-ssa-structalias.c (handle_const_call): Properly handle
1482 NRV return slots.
1483 (handle_pure_call): Likewise.
1484
1485 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1486
1487 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
1488 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
1489 possible overflow.
1490
1491 2016-10-06 Andrew Pinski <apinski@cavium.com>
1492
1493 * config/aarch64/aarch64-cores.def: Add a comment before each
1494 set of cores.
1495
1496 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
1497
1498 PR tree-optimization/77862
1499 * tree-vrp.c (add_equivalence): Use get_value_range so that
1500 num_vr_values is checked before accessing vr_values.
1501
1502 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
1503
1504 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
1505 POINTER_TYPE_P.
1506
1507 2016-10-05 Jeff Law <law@redhat.com>
1508
1509 PR tree-optimization/71661
1510 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
1511 removal of a forwarder exposes a new natural loop.
1512
1513 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
1514
1515 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
1516 Introduce ssesuffix variable.
1517 (<mask_codefor><code><mode>3<mask_name>): Ditto.
1518 (*<code><mode>3): Ditto.
1519
1520 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
1521
1522 * postreload.c (reload_cse_simplify): Skip also USE when detecting
1523 noop move.
1524
1525 2016-10-06 Richard Biener <rguenther@suse.de>
1526
1527 PR tree-optimization/77855
1528 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
1529 instead of removing the current item while iterating over the set
1530 which is not safe.
1531
1532 2016-10-06 James Clarke <jrtc27@jrtc27.com>
1533 Eric Botcazou <ebotcazou@adacore.com>
1534
1535 PR target/77759
1536 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
1537 (classify_registers): Don't set it
1538 (function_arg_slotno): Don't initialize and test it. Tidy up.
1539
1540 2016-10-06 Richard Biener <rguenther@suse.de>
1541
1542 PR tree-optimization/77839
1543 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
1544 lattice transition.
1545
1546 2016-10-06 Martin Liska <mliska@suse.cz>
1547
1548 * gcc.c: Set -fprofile-update=atomic when profiling is
1549 enabled and -pthread is set. Warn when one combines
1550 -pthread and -fprofile-update=single for an app using
1551 profiling code.
1552
1553 2016-10-06 Martin Liska <mliska@suse.cz>
1554
1555 PR bootstrap/77788
1556 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
1557 * gimple-ssa-strength-reduction.c (slsr_process_cast):
1558 Initialize a pointer to NULL.
1559 (slsr_process_copy): Likewise.
1560 * input.c (location_get_source_line): Likewise.
1561 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
1562
1563 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
1564
1565 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
1566 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
1567 (ix86_handle_option): Deleted handle of OPT_mpcommit.
1568 * config.gcc: Deleted pcommitintrin.h
1569 * config/i386/pcommitintrin.h: Deleted file.
1570 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
1571 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
1572 detection.
1573 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
1574 __PCOMMIT__.
1575 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
1576 (PTA_PCOMMIT): Deleted define.
1577 (ix86_option_override_internal): Deleted handle of option.
1578 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
1579 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
1580 __builtin_ia32_pcommit): Deleted.
1581 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
1582 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
1583 (pcommit): Deleted instruction.
1584 * config/i386/i386.opt: Mention -mpcommit deprecation.
1585 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
1586
1587 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
1588
1589 PR target/77874
1590 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
1591 Remove wrong assert.
1592 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
1593 Use <round_constraint> as operand 1 constraint.
1594
1595 2016-10-05 Jakub Jelinek <jakub@redhat.com>
1596
1597 PR sanitizer/66343
1598 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
1599 (ubsan_instrument_float_cast): And not here.
1600
1601 PR sanitizer/66343
1602 * ubsan.c (ubsan_ids): New GTY(()) array.
1603 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
1604 instead of static local counters.
1605
1606 2016-10-05 Martin Sebor <msebor@redhat.com>
1607
1608 PR bootstrap/77819
1609 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
1610 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
1611 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
1612 (default_printf_pointer_format): Define function.
1613 * targhooks.c (linux_printf_pointer_format): Define new function.
1614 * targhooks.h (linux_printf_pointer_format): Declare.
1615 (gnu_libc_printf_pointer_format): Remove declaration.
1616
1617 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1618
1619 * fold-const.c (native_encode_real): Fix logic for selecting offset
1620 to write to when BYTES_BIG_ENDIAN.
1621
1622 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
1623
1624 * builtins.c (fold_builtin_strchr): Remove function.
1625 (fold_builtin_strrchr): Likewise.
1626 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
1627 * gimple-fold.c (target_char_cst_p): New function.
1628 (gimple_fold_builtin_strchr) Add more foldings.
1629 (gimple_fold_builtin): Add index, strrchr, rindex cases.
1630
1631 2016-10-05 Richard Biener <rguenther@suse.de>
1632
1633 PR middle-end/77863
1634 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
1635 capture ids in c-exprs.
1636
1637 2016-10-05 Richard Biener <rguenther@suse.de>
1638
1639 PR middle-end/77826
1640 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
1641 with types_match for GIMPLE code gen to handle type mismatched
1642 constants properly.
1643 (dt_operand::gen): Adjust.
1644 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
1645 and constant A.
1646
1647 2016-10-05 Richard Biener <rguenther@suse.de>
1648
1649 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
1650
1651 2016-10-05 Richard Biener <rguenther@suse.de>
1652
1653 PR middle-end/77842
1654 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
1655
1656 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
1657
1658 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
1659 version check to protect only DW_TAG_imported_module generation.
1660
1661 2016-10-05 Richard Biener <rguenther@suse.de>
1662
1663 PR middle-end/55152
1664 * match.pd (min(a,-a) -> -abs(a)): New pattern.
1665
1666 2016-10-04 Ian Lance Taylor <iant@golang.org>
1667
1668 * explow.c (allocate_dynamic_stack_space): Call
1669 do_pending_stack_adjust before handling flag_split_stack.
1670
1671 2016-10-04 David Malcolm <dmalcolm@redhat.com>
1672
1673 * genattrtab.c (make_internal_attr): Supply dummy column number to
1674 file_location ctor.
1675 (main): Likewise.
1676 * genoutput.c (init_insn_for_nothing): Likewise.
1677 * gensupport.c (add_define_attr): Likewise.
1678 * read-md.c (message_at_1): Print column number.
1679 (fatal_with_file_and_line): Likewise.
1680 (rtx_reader::read_char): Track column numbers.
1681 (rtx_reader::unread_char): Likewise.
1682 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
1683 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
1684 (rtx_reader::handle_file): Initialize m_read_md_colno.
1685 (rtx_reader::get_current_location): Supply column number to
1686 file_location ctor.
1687 * read-md.h (struct file_location): Add field "colno".
1688 (file_location::file_location): Likewise.
1689 (rtx_reader::get_colno): New accessor.
1690 (rtx_reader::m_read_md_colno): New field.
1691 (rtx_reader::m_last_line_colno): New field.
1692
1693 2016-10-04 Jakub Jelinek <jakub@redhat.com>
1694
1695 * doc/extend.texi (Java Exceptions): Remove.
1696 (java_interface): Remove.
1697
1698 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
1699
1700 PR tree-optimization/77808
1701 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
1702 and addr are different before copying points-to information.
1703
1704 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
1705
1706 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
1707 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
1708 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
1709 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
1710
1711 2016-10-04 Richard Biener <rguenther@suse.de>
1712
1713 PR tree-optimization/77399
1714 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
1715 verify the target can convert.
1716
1717 2016-10-04 Richard Biener <rguenther@suse.de>
1718
1719 PR middle-end/77833
1720 * explow.c (plus_constant): Verify the mode of the constant
1721 pool offset before calling plus_constant.
1722
1723 2016-10-04 Richard Biener <rguenther@suse.de>
1724
1725 PR middle-end/77407
1726 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
1727 type support, mark with :C.
1728 (X / -X -> -1): Mark with :C.
1729
1730 2016-10-04 Jakub Jelinek <jakub@redhat.com>
1731
1732 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
1733 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
1734 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
1735 * doc/tm.texi: Regenerated.
1736 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
1737 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
1738 * config/darwin.h (JCR_SECTION_NAME): Remove.
1739 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
1740 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
1741 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
1742 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
1743 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
1744 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
1745
1746 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1747
1748 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
1749 between "because" and "param" in dump message in call to fprintf.
1750
1751 2016-10-03 Jeff Law <law@redhat.com>
1752
1753 PR tree-optimization/71550
1754 PR tree-optimization/71403
1755 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
1756 (profitable_jump_thread_path): Also return boolean indicating if
1757 the realized path will create an irreducible loop.
1758 Remove loop depth tests from 71403.
1759 (fsm_find_control_statement_thread_paths): Remove loop depth tests
1760 from 71403. If threading will create an irreducible loop, then
1761 throw away loop iteration and related information.
1762
1763 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
1764
1765 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
1766 -Woverloaded-virtual checks for warning options.
1767 * configure: Regenerate.
1768
1769 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
1770
1771 PR preprocessor/77699
1772 * input.c (maybe_grow): Don't allocate one byte extra headroom.
1773 (get_next_line): Return false on error.
1774 (read_next_line): Removed, use get_next_line instead.
1775 (read_line_num): Don't copy the line.
1776 (location_get_source_line): Don't use static data.
1777 (selftest::test_reading_source_line): Add more test cases.
1778
1779 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1780
1781 Revert
1782 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1783
1784 * ifcvt.c (noce_try_avoid_const_materialization): New function.
1785 (noce_process_if_block): Use it.
1786
1787 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
1788
1789 * doc/invoke.texi: Update -Wint-in-bool-context.
1790
1791 2016-10-02 Jakub Jelinek <jakub@redhat.com>
1792
1793 * dwarf2out.c (output_fde, output_call_frame_info,
1794 dwarf2out_do_cfi_startproc, set_indirect_string,
1795 gen_internal_sym, output_die, output_line_info): Use
1796 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
1797 ASM_GENERATE_INTERNAL_LABEL output.
1798
1799 2016-10-01 Richard Biener <rguenther@suse.de>
1800
1801 PR middle-end/77798
1802 * genmatch.c (get_operand_type): Add operand position arg
1803 and handle COND_EXPR comparison operand with fixed boolean_type_node.
1804 (expr::gen_transform): Adjust.
1805 (dt_simplify::gen_1): Likewise.
1806
1807 2016-10-01 Jakub Jelinek <jakub@redhat.com>
1808
1809 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
1810 comments. Simplify asserts, remove unnecessary conditions.
1811 Formatting fixes.
1812 (*<code><mode>3): Likewise.
1813
1814 2016-09-30 Jakub Jelinek <jakub@redhat.com>
1815
1816 * doc/invoke.texi (-Wregister): Document.
1817
1818 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
1819
1820 * configure.ac: Split CHECKING_P into CHECKING_P and
1821 ENABLE_EXTRA_CHECKING.
1822 * configure: Regenerated.
1823 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
1824 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
1825
1826 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
1827
1828 PR other/31566
1829 * gcc.c (process_command): For @filename handling, output
1830 the correct name if the file does not exist.
1831
1832 2016-09-30 Marek Polacek <polacek@redhat.com>
1833
1834 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
1835 * config/alpha/predicates.md: Likewise.
1836
1837 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1838
1839 * ifcvt.c (noce_try_avoid_const_materialization): New function.
1840 (noce_process_if_block): Use it.
1841
1842 2016-09-30 Martin Liska <mliska@suse.cz>
1843
1844 * doc/invoke.texi: Document asan-use-after-return that
1845 it's disabled by default in runtime.
1846
1847 2016-09-30 Richard Biener <rguenther@suse.de>
1848
1849 * tree-vrp.c (intersect_ranges): If we failed to handle
1850 the intersection choose a constant singleton range if available.
1851
1852 2016-09-30 Richard Biener <rguenther@suse.de>
1853
1854 PR tree-optimization/77399
1855 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
1856 float <-> int conversions.
1857
1858 2016-09-30 Alan Modra <amodra@gmail.com>
1859
1860 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
1861
1862 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
1863
1864 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
1865 ext_level before calling CPUID with 0x80000008.
1866 Simplify xgetbv checks.
1867
1868 2016-09-29 David Malcolm <dmalcolm@redhat.com>
1869
1870 * Makefile.in (OBJS): Add print-rtl-function.o.
1871 * print-rtl-function.c: New file.
1872 * print-rtl.h (print_rtx_function): New decl.
1873
1874 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
1875
1876 PR target/77756
1877 * config/i386/cpuid.h (__get_cpuid_count): New.
1878 (__get_cpuid): Rename __level to __leaf.
1879
1880 2016-09-29 Marek Polacek <polacek@redhat.com>
1881
1882 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
1883
1884 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
1885
1886 * builtins.c (expand_builtin_memcmp): don't swap args unless
1887 result is only being compared with zero.
1888
1889 2016-09-29 Marek Polacek <polacek@redhat.com>
1890
1891 * dwarf2out.c (loc_descriptor): Add fall through comment.
1892 (add_const_value_attribute): Likewise.
1893
1894 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
1895
1896 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
1897 with "v6t2". Move "arch" attribute above "pool_range".
1898 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
1899 with "v6t2".
1900 (*thumb2_movhi_vfp): Likewise.
1901 (*arm_movhi_fp16): Likewise.
1902 (*thumb2_movhi_fp16): Likewise.
1903 (*arm_movsi_vfp): Remove "arch" attribute.
1904 (*thumb2_movsi_vfp): Likewise.
1905
1906 2016-09-29 Martin Liska <mliska@suse.cz>
1907
1908 * doc/extend.texi: Remove limitation of Objective C for
1909 __attribute__((constructor)) and __attribute__((destructor)).
1910
1911 2016-09-29 Richard Biener <rguenther@suse.de>
1912
1913 PR tree-optimization/77768
1914 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1915 Handle stores to readonly memory when removing redundant stores.
1916
1917 2016-09-29 Richard Biener <rguenther@suse.de>
1918
1919 PR middle-end/77407
1920 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
1921 X / -X -> -1 simplifications.
1922
1923 2016-09-29 Richard Biener <rguenther@suse.de>
1924
1925 PR middle-end/55152
1926 * match.pd: Add max(a,-a) -> abs(a) pattern.
1927 * tree-ssa-phiopt.c (minmax_replacement): Disable for
1928 HONOR_SIGNED_ZEROS types.
1929
1930 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
1931
1932 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
1933 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
1934
1935 2016-09-29 Richard Biener <rguenther@suse.de>
1936
1937 * tree-vrp.c (set_defs_to_varying): New helper avoiding
1938 writing to vr_const_varying.
1939 (vrp_initialize): Call it.
1940 (vrp_visit_stmt): Likewise.
1941 (evrp_dom_walker::before_dom_children): Likewise.
1942
1943 2016-09-29 Richard Biener <rguenther@suse.de>
1944
1945 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
1946 constructors with vector elements.
1947
1948 2016-09-29 Richard Biener <rguenther@suse.de>
1949
1950 PR tree-optimization/77768
1951 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
1952 with stores to a place we know has a constant value.
1953
1954 2016-09-29 Alan Modra <amodra@gmail.com>
1955
1956 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
1957 * doc/invoke.texi: Document it.
1958 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
1959 (rs6000_passes_float): Comment.
1960 (rs6000_passes_long_double): New static var.
1961 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
1962 (init_cumulative_args): Set up to emit fp .gnu_attribute for
1963 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
1964 to include fp values returned in vectors.
1965 Set rs6000_passes_long_double.
1966 (rs6000_function_arg_advance_1): Likewise for function args.
1967 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
1968 and SPE. Emit long double tag value too.
1969 (rs6000_opt_vars): Add gnu-attr.
1970 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
1971 * configure: Regenerate.
1972 * config.in: Regenerate.
1973
1974 2016-09-28 Jakub Jelinek <jakub@redhat.com>
1975
1976 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
1977 of 0 < x.
1978 (format_floating, format_string, format_directive,
1979 get_destination_size, pass_sprintf_length::handle_gimple_call):
1980 Likewise.
1981
1982 2016-09-28 Jakub Jelinek <jakub@redhat.com>
1983
1984 * gimple-ssa-sprintf.c: Fix comment formatting.
1985 (format_integer): Use is_gimple_assign.
1986 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
1987 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
1988 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
1989 (pass_sprintf_length::execute): Use is_gimple_call.
1990
1991 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
1992
1993 * gimple-fold.c (gimple_fold_builtin): After failing to fold
1994 strchr, also try the generic folding.
1995
1996 2016-09-28 Martin Sebor <msebor@redhat.com>
1997
1998 PR c/77762
1999 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
2000 Fix typos.
2001
2002 2016-09-28 Martin Sebor <msebor@redhat.com>
2003
2004 PR middle-end/77683
2005 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
2006 length modifier is not expected.
2007 (format_floating): Ignore l length modifier and fail gracefuly
2008 when it isn't one of the other expected ones.
2009
2010 2016-09-28 Martin Sebor <msebor@redhat.com>
2011
2012 PR bootstrap/77753
2013 * varasm.c (assemble_addr_to_section): Increase local buffer size.
2014
2015 2016-09-27 Richard Biener <rguenther@suse.de>
2016
2017 * dwarf2out.c (cu_die_list): New global.
2018 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
2019 main_comp_unit_die to cu_die_list if we created it.
2020 Move break_out_includes ...
2021 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
2022 the cu_die_list.
2023
2024 2016-09-28 Richard Biener <rguenther@suse.de>
2025
2026 * dwarf2out.c (struct die_struct): Add removed flag.
2027 (lookup_type_die): If the DIE is marked as removed, clear
2028 TYPE_SYMTAB_DIE and return NULL.
2029 (lookup_decl_die): If the DIE is marked as removed, remove it
2030 from the hash and return NULL.
2031 (mark_removed): New helper.
2032 (prune_unused_types_prune): Call it for removed DIEs.
2033 (gen_subprogram_die): Move the premark_used_types call to after
2034 DIEs for the functions scopes are generated.
2035 (process_scope_var): Do not re-create pruned types or type decls.
2036 Make sure to also re-parent type decls.
2037 (dwarf2out_finish): Move unused type pruning and debug_types
2038 handling ...
2039 (dwarf2out_early_finish): ... here.
2040
2041 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
2042
2043 * config/arc/arc-c.c: New file.
2044 * config/arc/arc-c.def: Likewise.
2045 * config/arc/t-arc: Likewise.
2046 * config.gcc: Include arc-c.o as c and cpp object.
2047 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
2048 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
2049 arc_cpu_cpp_builtins.
2050
2051 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
2052
2053 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
2054 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
2055
2056 2016-09-28 Nathan Sidwell <nathan@acm.org>
2057
2058 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
2059 printing.
2060
2061 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
2062
2063 PR tree-optimization/61056
2064 * gimple-fold.c (gimple_fold_builtin_strchr):
2065 New function to optimize strchr (s, 0) to strlen.
2066 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
2067
2068 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
2069
2070 PR tree-optimization/77724
2071 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
2072 Add tree_fits_shwi_p check.
2073
2074 2016-09-27 Jakub Jelinek <jakub@redhat.com>
2075
2076 * auto-inc-dec.c (try_merge): Remove break after return.
2077 * cselib.c (autoinc_split): Likewise.
2078 * explow.c (promote_mode): Likewise.
2079 * fixed-value.c (fixed_arithmetic): Likewise.
2080 * hsa.c (hsa_internal_fn::get_arity): Likewise.
2081 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
2082 * trans-mem.c (get_attrs_for): Likewise.
2083 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
2084 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
2085 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
2086 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
2087 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
2088 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
2089 * config/cris/cris.c (cris_op_str): Likewise.
2090 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
2091 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
2092
2093 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
2094
2095 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
2096 IFN_GOACC_REDUCTION_CODES): New.
2097 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
2098 ifn_goacc_reduction_kind): Use them.
2099 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
2100 of internal functions, when applicable.
2101
2102 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
2103
2104 * config/mips/constraints.md (d): Fix documentation.
2105 * doc/md.texi (Machine Constraints): Update accordingly.
2106
2107 2016-09-27 Richard Biener <rguenther@suse.de>
2108
2109 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
2110 cur_line_info_table initialization ...
2111 (dwarf2out_assembly_start): ... here.
2112
2113 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
2114
2115 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
2116 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
2117 (*thumb2_movhi_vfp): Likewise.
2118 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
2119 template. Expand predicable attribute to mark VMOV.F16 as not
2120 predicable. Add "arch" attribute.
2121 (*thumb2_movhi_fp16): Likewise.
2122 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
2123 (*thumb2_movsi_vfp): Add "arch" attribute.
2124
2125 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
2126
2127 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
2128 VAR_DECL string.
2129
2130 2016-09-27 Marek Polacek <polacek@redhat.com>
2131
2132 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
2133 comment.
2134
2135 * config/c6x/c6x.h: Adjust fall through comment.
2136 * config/sh/sh.c (final_prescan_insn): Likewise.
2137 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
2138 (visium_expand_fp_cstore): Likewise.
2139
2140 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2141
2142 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
2143 expected by -Wimplicit-fallthrough.
2144 (thumb1_size_rtx_costs): Likewise.
2145 (thumb2_reorg): Likewise.
2146 (tls_mentioned_p): Add "Fall through" comment.
2147 (thumb2_reorg): Likewise.
2148 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
2149 comment form expected by -Wimplicit-fallthrough.
2150
2151 2016-09-27 Martin Liska <mliska@suse.cz>
2152
2153 PR gcov-profile/46266
2154 * input.h (RESERVED_LOCATION_P): New macro.
2155 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
2156 instread of comparison with UNKNOWN_LOCATION.
2157
2158 2016-09-27 Richard Biener <rguenther@suse.de>
2159
2160 PR tree-optimization/77745
2161 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2162 When removing redundant stores make sure to check compatibility
2163 of the TBAA state for downstream accesses.
2164 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
2165 value-numbering virtual operands for store matches.
2166
2167 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
2168
2169 PR target/51244
2170 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
2171 movrt patterns. Match them before anything else in the SET case.
2172
2173 2016-09-27 Martin Liska <mliska@suse.cz>
2174
2175 PR gcov-profile/7970
2176 PR gcov-profile/16855
2177 PR gcov-profile/44779
2178 * coverage.c (build_gcov_exit_decl): New function.
2179 (coverage_obj_init): Call the function and generate __gcov_exit
2180 destructor.
2181 * doc/gcov.texi: Document when __gcov_exit function is called.
2182
2183 2016-09-27 Marek Polacek <polacek@redhat.com>
2184
2185 PR bootstrap/77751
2186 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
2187 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
2188 -Wno-error instead of -Wno-implicit-fallthrough.
2189
2190 2016-09-27 Martin Liska <mliska@suse.cz>
2191
2192 PR bootstrap/77749
2193 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
2194
2195 2016-09-27 Jakub Jelinek <jakub@redhat.com>
2196
2197 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
2198 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
2199 comments. Remove break after return.
2200 (ix86_fp_compare_code_to_integer, has_dispatch,
2201 ix86_simd_clone_usable): Remove break after return.
2202
2203 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
2204
2205 PR rlt-optimization/77714
2206 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
2207 REG_EQUAL note.
2208
2209 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
2210
2211 PR ipa/77677
2212 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
2213 extract_range_from_unary_expr to convert value_range.
2214 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
2215 (extract_range_from_unary_expr): This.
2216 * tree-vrp.h (extract_range_from_unary_expr): Declare.
2217
2218 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
2219
2220 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
2221
2222 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2223
2224 * config/i386/i386.c (ix86_print_operand)
2225 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
2226 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
2227 (epilogue_renumber): Likewise.
2228
2229 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
2230
2231 PR middle-end/77719
2232 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
2233 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
2234
2235 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
2236
2237 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
2238 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
2239 is_mm_seq_cst, is_mm_sync): Move to ...
2240 * memmodel.h: This. New file.
2241 * builtins.c: Include memmodel.h.
2242 * optabs.c: Likewise.
2243 * tsan.c: Likewise.
2244 * config/aarch64/aarch64.c: Likewise.
2245 * config/alpha/alpha.c: Likewise.
2246 * config/arm/arm.c: Likewise.
2247 * config/i386/i386.c: Likewise.
2248 * config/ia64/ia64.c: Likewise.
2249 * config/mips/mips.c: Likewise.
2250 * config/rs6000/rs6000.c: Likewise.
2251 * config/sparc/sparc.c: Likewise.
2252 * genconditions.c: Include memmodel.h in generated file.
2253 * genemit.c: Likewise.
2254 * genoutput.c: Likewise.
2255 * genpeep.c: Likewise.
2256 * genpreds.c: Likewise.
2257 * genrecog.c: Likewise.
2258
2259 2016-09-26 David Malcolm <dmalcolm@redhat.com>
2260
2261 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
2262 "c" instead when parsing characters. Move operand parsing into...
2263 (read_rtx_operand): ...this new function, renaming "i" to "idx",
2264 and tightening the scope of various locals.
2265
2266 2016-09-26 Liu Hao <lh_mouse@126.com>
2267
2268 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
2269
2270 2016-09-26 Marek Polacek <polacek@redhat.com>
2271
2272 * system.h: Use __has_attribute to check whether the fallthrough
2273 attribute is supported.
2274
2275 2016-09-26 Marek Polacek <polacek@redhat.com>
2276
2277 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
2278 gimple_call_internal_p.
2279 * ipa-split.c (find_return_bb): Likewise.
2280 (execute_split_functions): Likewise.
2281 * omp-low.c (dump_oacc_loop_part): Likewise.
2282 (oacc_loop_xform_head_tail): Likewise.
2283 * predict.c (predict_loops): Likewise.
2284 * sanopt.c (pass_sanopt::execute): Likewise.
2285 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
2286 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
2287 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
2288 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
2289 (expand_ifn_va_arg): Likewise.
2290 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
2291 (optimize_mask_stores): Likewise.
2292 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
2293 (vect_transform_stmt): Likewise.
2294 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
2295 * tsan.c (instrument_memory_accesses): Likewise.
2296
2297 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2298 Alexander Monakov <amonakov@ispras.ru>
2299
2300 * regrename.c (rename_chains): Check
2301 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
2302 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
2303 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2304
2305 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2306
2307 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
2308 (s390_sched_score): Likewise.
2309
2310 2016-09-26 Martin Liska <mliska@suse.cz>
2311
2312 * doc/gcov.texi: Update program output of gcov tool.
2313
2314 2016-09-26 Martin Liska <mliska@suse.cz>
2315
2316 PR gcov-profile/23332
2317 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
2318 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
2319 * value-prof.c (dump_histogram_value): Do not handle
2320 HIST_TYPE_CONST_DELTA.
2321 (stream_in_histogram_value): Likewise.
2322 (gimple_find_values_to_profile): Likewise.
2323 * value-prof.h (enum hist_type): Likewise.
2324
2325 2016-09-26 Martin Liska <mliska@suse.cz>
2326
2327 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
2328 from default sanitize recover values.
2329 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
2330 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
2331 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
2332 consistent.
2333 * opts.c (finish_options): Do a generic loop over options
2334 that can be recovered.
2335 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
2336 SANITIZE_RETURN.
2337 (common_handle_option): Likewise.
2338 * opts.h: Declare can_recover to sanitizer_opts_s.
2339
2340 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
2341
2342 * target.def(elf_flags_numeric): Change documentation to present tense.
2343 * doc/tm.texi: Regenerate.
2344
2345 2016-09-26 Marek Polacek <polacek@redhat.com>
2346
2347 PR c/7652
2348 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
2349 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
2350 -Wno-switch-fallthrough.
2351 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
2352 (expand_builtin): Likewise.
2353 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
2354 * convert.c (convert_to_real_1): Likewise.
2355 (convert_to_integer_1): Likewise.
2356 * final.c (output_alternate_entry_point): Likewise.
2357 * genattrtab.c (make_canonical): Likewise.
2358 (write_test_expr): Likewise.
2359 * genpreds.c (validate_exp): Likewise.
2360 * gimple-ssa-strength-reduction.c
2361 (find_candidates_dom_walker::before_dom_children): Likewise.
2362 * godump.c (go_format_type): Likewise.
2363 * reload1.c (elimination_effects): Likewise.
2364 * resource.c (mark_referenced_resources): Likewise.
2365 (mark_set_resources): Likewise.
2366 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
2367 * varasm.c (output_addressed_constants): Likewise.
2368
2369 2016-09-26 Marek Polacek <polacek@redhat.com>
2370
2371 PR c/7652
2372 * common.opt (Wimplicit-fallthrough): New option.
2373 * doc/extend.texi: Document statement attributes and the fallthrough
2374 attribute.
2375 * doc/invoke.texi: Document -Wimplicit-fallthrough.
2376 * gimple.h (gimple_call_internal_p): New function.
2377 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
2378 (struct label_entry): New struct.
2379 (find_label_entry): New function.
2380 (case_label_p): New function.
2381 (collect_fallthrough_labels): New function.
2382 (last_stmt_in_scope): New function.
2383 (should_warn_for_implicit_fallthrough): New function.
2384 (warn_implicit_fallthrough_r): New function.
2385 (maybe_warn_implicit_fallthrough): New function.
2386 (expand_FALLTHROUGH_r): New function.
2387 (expand_FALLTHROUGH): New function.
2388 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
2389 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
2390 (gimplify_label_expr): New function.
2391 (gimplify_case_label_expr): Set location.
2392 (gimplify_expr): Call gimplify_label_expr.
2393 * internal-fn.c (expand_FALLTHROUGH): New function.
2394 * internal-fn.def (FALLTHROUGH): New internal function.
2395 * langhooks.c (lang_GNU_OBJC): New function.
2396 * langhooks.h (lang_GNU_OBJC): Declare.
2397 * system.h (gcc_fallthrough): Define.
2398 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
2399 * tree.h (FALLTHROUGH_LABEL_P): Define.
2400
2401 2016-09-26 Richard Biener <rguenther@suse.de>
2402
2403 * dwarf2out.c (stripattributes): Remove unused function.
2404 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
2405 Push dwarf_split_debug_info handling into init_sections_and_labels.
2406 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
2407 (DEBUG_MACRO_SECTION_FLAGS): Remove.
2408 (debug_macinfo_section_name): New global.
2409 (output_macinfo): Use debug_macinfo_section_name.
2410 (init_sections_and_labels): Split out section and label generation
2411 from dwarf2out_init. Set debug_macinfo_section_name.
2412 (dwarf2out_init): Move text section label generation and emission
2413 to ...
2414 (dwarf2out_assembly_start): ... here.
2415 (dwarf2out_finish): Call init_sections_and_labels before DWARF
2416 output starts.
2417
2418 2016-09-26 Richard Biener <rguenther@suse.de>
2419
2420 PR debug/77692
2421 * cgraphunit.c (analyze_functions): Before early removing
2422 global vars calls the late_global_decl debug handler mark
2423 the variable as readonly.
2424
2425 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
2426
2427 PR target/51244
2428 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
2429 (sh_rtx_costs): Handle SET of movt and movrt patterns.
2430 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
2431 declare new overloads.
2432 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
2433 operand.
2434
2435 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2436
2437 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
2438 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
2439
2440 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
2441
2442 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
2443 * configure: Regenerate.
2444
2445 2016-09-24 Marek Polacek <polacek@redhat.com>
2446
2447 PR c/77490
2448 * doc/invoke.texi: Document -Wbool-operation.
2449
2450 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2451
2452 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
2453 * config/rs6000/rs6000.c (expand_block_compare): New function used by
2454 cmpmemsi pattern to do builtin expansion of memcmp ().
2455 (compute_current_alignment): Add helper function for
2456 expand_block_compare used to compute alignment as the compare proceeds.
2457 (select_block_compare_mode): Used by expand_block_compare to select
2458 the mode used for reading the next chunk of bytes in the compare.
2459 (do_load_for_compare): Used by expand_block_compare to emit the load
2460 insns for the compare.
2461 (rs6000_emit_dot_insn): Moved this function to avoid a forward
2462 reference from expand_block_compare ().
2463 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
2464 prototype for this function.
2465 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
2466 target option for controlling how much code inline expansion of
2467 memcmp() will be allowed to generate.
2468
2469 2016-09-23 Jakub Jelinek <jakub@redhat.com>
2470
2471 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
2472 hook_bool_mode_false, hook_bool_mode_true,
2473 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
2474 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
2475 hook_bool_const_rtx_insn_const_rtx_insn_true,
2476 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
2477 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
2478 hook_bool_const_tree_hwi_hwi_const_tree_false,
2479 hook_bool_const_tree_hwi_hwi_const_tree_true,
2480 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
2481 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2482 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
2483 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
2484 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
2485 hook_bool_const_tree_true, hook_bool_tree_tree_false,
2486 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
2487 hook_bool_rtx_insn_true, hook_bool_rtx_false,
2488 hook_bool_uintp_uintp_false,
2489 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
2490 hook_rtx_tree_int_null, hook_uint_mode_0,
2491 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
2492 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
2493 hook_constcharptr_const_rtx_insn_null,
2494 hook_constcharptr_const_tree_const_tree_null,
2495 hook_constcharptr_int_const_tree_null,
2496 hook_constcharptr_int_const_tree_const_tree_null,
2497 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
2498 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
2499 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
2500
2501 * vec.h (vNULL): Extend comment to say = vNULL initialization
2502 isn't needed for static vars.
2503
2504 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
2505 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
2506 = vNULL initialization of file scope vec.
2507 * passes.c (pass_tab, enabled_pass_uid_range_tab,
2508 disabled_pass_uid_range_tab): Likewise.
2509 * haifa-sched.c (sched_luids, h_i_d): Likewise.
2510 * tree-chkp-opt.c (check_infos): Likewise.
2511 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
2512
2513 * vec.h (vnull::operator vec): Add constexpr keyword for
2514 C++11 and later.
2515
2516 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
2517
2518 PR tree-optimization/77654
2519 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
2520 to duplicate_ssa_name_ptr_info.
2521
2522 2016-09-23 David Malcolm <dmalcolm@redhat.com>
2523
2524 PR preprocessor/77672
2525 * input.c (selftest::test_lexer_string_locations_simple): Update
2526 test to expect location information of the terminator character
2527 at the location of the final closing quote.
2528 (selftest::test_lexer_string_locations_hex): Likewise.
2529 (selftest::test_lexer_string_locations_oct): Likewise.
2530 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
2531 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
2532 (selftest::test_lexer_string_locations_ucn4): Likewise.
2533 (selftest::test_lexer_string_locations_ucn8): Likewise.
2534 (selftest::test_lexer_string_locations_u8): Likewise.
2535 (selftest::test_lexer_string_locations_utf8_source): Likewise.
2536 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
2537 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
2538 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
2539 (selftest::test_lexer_string_locations_macro): Likewise.
2540 (selftest::test_lexer_string_locations_long_line): Likewise.
2541
2542 2016-09-23 Richard Biener <rguenther@suse.de>
2543
2544 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
2545 virtual definition to virtual use if the call devirtualizes
2546 to a const or pure function.
2547 (visit_use): Also visit calls we can devirtualize to a
2548 const or pure function.
2549
2550 2016-09-23 Richard Biener <rguenther@suse.de>
2551
2552 PR tree-optimization/77697
2553 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
2554 signal error if we have sth ternary or unhandled.
2555
2556 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2557
2558 * config/arm/arm_neon.h (vabd_f16): New.
2559 (vabdq_f16): New.
2560 (vabs_f16): New.
2561 (vabsq_f16): New.
2562 (vadd_f16): New.
2563 (vaddq_f16): New.
2564 (vcage_f16): New.
2565 (vcageq_f16): New.
2566 (vcagt_f16): New.
2567 (vcagtq_f16): New.
2568 (vcale_f16): New.
2569 (vcaleq_f16): New.
2570 (vcalt_f16): New.
2571 (vcaltq_f16): New.
2572 (vceq_f16): New.
2573 (vceqq_f16): New.
2574 (vceqz_f16): New.
2575 (vceqzq_f16): New.
2576 (vcge_f16): New.
2577 (vcgeq_f16): New.
2578 (vcgez_f16): New.
2579 (vcgezq_f16): New.
2580 (vcgt_f16): New.
2581 (vcgtq_f16): New.
2582 (vcgtz_f16): New.
2583 (vcgtzq_f16): New.
2584 (vcle_f16): New.
2585 (vcleq_f16): New.
2586 (vclez_f16): New.
2587 (vclezq_f16): New.
2588 (vclt_f16): New.
2589 (vcltq_f16): New.
2590 (vcltz_f16): New.
2591 (vcltzq_f16): New.
2592 (vcvt_f16_s16): New.
2593 (vcvt_f16_u16): New.
2594 (vcvt_s16_f16): New.
2595 (vcvt_u16_f16): New.
2596 (vcvtq_f16_s16): New.
2597 (vcvtq_f16_u16): New.
2598 (vcvtq_s16_f16): New.
2599 (vcvtq_u16_f16): New.
2600 (vcvta_s16_f16): New.
2601 (vcvta_u16_f16): New.
2602 (vcvtaq_s16_f16): New.
2603 (vcvtaq_u16_f16): New.
2604 (vcvtm_s16_f16): New.
2605 (vcvtm_u16_f16): New.
2606 (vcvtmq_s16_f16): New.
2607 (vcvtmq_u16_f16): New.
2608 (vcvtn_s16_f16): New.
2609 (vcvtn_u16_f16): New.
2610 (vcvtnq_s16_f16): New.
2611 (vcvtnq_u16_f16): New.
2612 (vcvtp_s16_f16): New.
2613 (vcvtp_u16_f16): New.
2614 (vcvtpq_s16_f16): New.
2615 (vcvtpq_u16_f16): New.
2616 (vcvt_n_f16_s16): New.
2617 (vcvt_n_f16_u16): New.
2618 (vcvtq_n_f16_s16): New.
2619 (vcvtq_n_f16_u16): New.
2620 (vcvt_n_s16_f16): New.
2621 (vcvt_n_u16_f16): New.
2622 (vcvtq_n_s16_f16): New.
2623 (vcvtq_n_u16_f16): New.
2624 (vfma_f16): New.
2625 (vfmaq_f16): New.
2626 (vfms_f16): New.
2627 (vfmsq_f16): New.
2628 (vmax_f16): New.
2629 (vmaxq_f16): New.
2630 (vmaxnm_f16): New.
2631 (vmaxnmq_f16): New.
2632 (vmin_f16): New.
2633 (vminq_f16): New.
2634 (vminnm_f16): New.
2635 (vminnmq_f16): New.
2636 (vmul_f16): New.
2637 (vmul_lane_f16): New.
2638 (vmul_n_f16): New.
2639 (vmulq_f16): New.
2640 (vmulq_lane_f16): New.
2641 (vmulq_n_f16): New.
2642 (vneg_f16): New.
2643 (vnegq_f16): New.
2644 (vpadd_f16): New.
2645 (vpmax_f16): New.
2646 (vpmin_f16): New.
2647 (vrecpe_f16): New.
2648 (vrecpeq_f16): New.
2649 (vrnd_f16): New.
2650 (vrndq_f16): New.
2651 (vrnda_f16): New.
2652 (vrndaq_f16): New.
2653 (vrndm_f16): New.
2654 (vrndmq_f16): New.
2655 (vrndn_f16): New.
2656 (vrndnq_f16): New.
2657 (vrndp_f16): New.
2658 (vrndpq_f16): New.
2659 (vrndx_f16): New.
2660 (vrndxq_f16): New.
2661 (vrsqrte_f16): New.
2662 (vrsqrteq_f16): New.
2663 (vrecps_f16): New.
2664 (vrecpsq_f16): New.
2665 (vrsqrts_f16): New.
2666 (vrsqrtsq_f16): New.
2667 (vsub_f16): New.
2668 (vsubq_f16): New.
2669
2670 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2671
2672 * config.gcc (extra_headers): Add arm_fp16.h
2673 * config/arm/arm_fp16.h: New.
2674 * config/arm/arm_neon.h: Include "arm_fp16.h".
2675
2676 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2677
2678 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
2679 variants).
2680 (vmulf): New (v8hf, v4hf variants).
2681 (vfma): New (v8hf, v4hf variants).
2682 (vfms): New (v8hf, v4hf variants).
2683 (vsub): New (v8hf, v4hf variants).
2684 (vcage): New (v8hf, v4hf variants).
2685 (vcagt): New (v8hf, v4hf variants).
2686 (vcale): New (v8hf, v4hf variants).
2687 (vcalt): New (v8hf, v4hf variants).
2688 (vceq): New (v8hf, v4hf variants).
2689 (vcgt): New (v8hf, v4hf variants).
2690 (vcge): New (v8hf, v4hf variants).
2691 (vcle): New (v8hf, v4hf variants).
2692 (vclt): New (v8hf, v4hf variants).
2693 (vceqz): New (v8hf, v4hf variants).
2694 (vcgez): New (v8hf, v4hf variants).
2695 (vcgtz): New (v8hf, v4hf variants).
2696 (vcltz): New (v8hf, v4hf variants).
2697 (vclez): New (v8hf, v4hf variants).
2698 (vabd): New (v8hf, v4hf variants).
2699 (vmaxf): New (v8hf, v4hf variants).
2700 (vmaxnm): New (v8hf, v4hf variants).
2701 (vminf): New (v8hf, v4hf variants).
2702 (vminnm): New (v8hf, v4hf variants).
2703 (vpmaxf): New (v4hf variant).
2704 (vpminf): New (v4hf variant).
2705 (vpadd): New (v4hf variant).
2706 (vrecps): New (v8hf, v4hf variants).
2707 (vrsqrts): New (v8hf, v4hf variants).
2708 (vabs): New (v8hf, v4hf variants).
2709 (vneg): New (v8hf, v4hf variants).
2710 (vrecpe): New (v8hf, v4hf variants).
2711 (vrnd): New (v8hf, v4hf variants).
2712 (vrnda): New (v8hf, v4hf variants).
2713 (vrndm): New (v8hf, v4hf variants).
2714 (vrndn): New (v8hf, v4hf variants).
2715 (vrndp): New (v8hf, v4hf variants).
2716 (vrndx): New (v8hf, v4hf variants).
2717 (vrsqrte): New (v8hf, v4hf variants).
2718 (vmul_lane): Add v4hf and v8hf variants.
2719 (vmul_n): Add v4hf and v8hf variants.
2720 (vext): New (v8hf, v4hf variants).
2721 (vcvts): New (v8hi, v4hi variants).
2722 (vcvts): New (v8hf, v4hf variants).
2723 (vcvtu): New (v8hi, v4hi variants).
2724 (vcvtu): New (v8hf, v4hf variants).
2725 (vcvts_n): New (v8hf, v4hf variants).
2726 (vcvtu_n): New (v8hi, v4hi variants).
2727 (vcvts_n): New (v8hi, v4hi variants).
2728 (vcvtu_n): New (v8hf, v4hf variants).
2729 (vbsl): New (v8hf, v4hf variants).
2730 (vcvtas): New (v8hf, v4hf variants).
2731 (vcvtau): New (v8hf, v4hf variants).
2732 (vcvtms): New (v8hf, v4hf variants).
2733 (vcvtmu): New (v8hf, v4hf variants).
2734 (vcvtns): New (v8hf, v4hf variants).
2735 (vcvtnu): New (v8hf, v4hf variants).
2736 (vcvtps): New (v8hf, v4hf variants).
2737 (vcvtpu): New (v8hf, v4hf variants).
2738
2739 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2740
2741 * config/arm/arm-builtins.c (hf_UP): New.
2742 (si_UP): New.
2743 (vfp_builtin_data): New. Update comment.
2744 (enum arm_builtins): Include "arm_vfp_builtins.def".
2745 (ARM_BUILTIN_VFP_PATTERN_START): New.
2746 (arm_init_vfp_builtins): New.
2747 (arm_init_builtins): Add arm_init_vfp_builtins.
2748 (arm_expand_vfp_builtin): New.
2749 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
2750 long line.
2751 * config/arm/arm_vfp_builtins.def: New file.
2752 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
2753 (arm-builtins.o): Likewise.
2754
2755 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
2756
2757 PR ipa/77677
2758 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
2759 from constant while creating value range.
2760
2761 2016-09-23 Renlin Li <renlin.li@arm.com>
2762
2763 * ira.c (ira): Move ira_use_lra_p initialization code to ...
2764 (ira_init_once): Here.
2765
2766 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
2767 Jakub Jelinek <jakub@redhat.com>
2768
2769 * hooks.h (hook_uint_uintp_false): Rename to...
2770 (hook_bool_uint_uintp_false): ... this.
2771 * hooks.c (hook_uint_uintp_false): Rename to...
2772 (hook_bool_uint_uintp_false): ... this.
2773 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
2774 instead of hook_uint_uintp_false.
2775
2776 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2777
2778 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
2779 (arm_init_builtins): Move body of a loop to the standalone
2780 function arm_init_neon_builtin.
2781 (arm_expand_neon_builtin_1): New. Update comment. Function body
2782 moved from arm_neon_builtin with some white-space fixes.
2783 (arm_expand_neon_builtin): Move code into the standalone function
2784 arm_expand_neon_builtin_1.
2785
2786 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2787
2788 * config/arm/iterators.md (VCVTHI): New.
2789 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
2790 (NEON_VAGLTE): New.
2791 (VFM_LANE_AS): New.
2792 (VH_CVTTO): New.
2793 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
2794 (V_HALF): Add V4HF. Fix white-space.
2795 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
2796 (V_s_elem): Likewise.
2797 (V_sz_elem): Fix white-space.
2798 (V_elem_ch): Likewise.
2799 (VH_elem_ch): New.
2800 (scalar_mul_constraint): Add V8HF and V4HF.
2801 (Is_float_mode): Fix white-space.
2802 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
2803 (q): Add HF. Fix white-space.
2804 (float_sup): New.
2805 (float_SUP): New.
2806 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
2807 (neon_vfm_lane_as): New.
2808 * config/arm/neon.md (add<mode>3_fp16): New.
2809 (sub<mode>3_fp16): New.
2810 (mul<mode>3add<mode>_neon): New.
2811 (fma<VH:mode>4_intrinsic): New.
2812 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
2813 (fmsub<VH:mode>4_intrinsic): New.
2814 (<absneg_str><mode>2): New.
2815 (neon_v<absneg_str><mode>): New.
2816 (neon_v<fp16_rnd_str><mode>): New.
2817 (neon_vrsqrte<mode>): New.
2818 (neon_vpaddv4hf): New.
2819 (neon_vadd<mode>): New.
2820 (neon_vsub<mode>): New.
2821 (neon_vmulf<mode>): New.
2822 (neon_vfma<VH:mode>): New.
2823 (neon_vfms<VH:mode>): New.
2824 (neon_vc<cmp_op><mode>): New.
2825 (neon_vc<cmp_op><mode>_fp16insn): New
2826 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
2827 (neon_vca<cmp_op><mode>): New.
2828 (neon_vca<cmp_op><mode>_fp16insn): New.
2829 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
2830 (neon_vc<cmp_op>z<mode>): New.
2831 (neon_vabd<mode>): New.
2832 (neon_v<maxmin>f<mode>): New.
2833 (neon_vp<maxmin>fv4hf: New.
2834 (neon_<fmaxmin_op><mode>): New.
2835 (neon_vrecps<mode>): New.
2836 (neon_vrsqrts<mode>): New.
2837 (neon_vrecpe<mode>): New (VH variant).
2838 (neon_vdup_lane<mode>_internal): New.
2839 (neon_vdup_lane<mode>): New.
2840 (neon_vcvt<sup><mode>): New (VCVTHI variant).
2841 (neon_vcvt<sup><mode>): New (VH variant).
2842 (neon_vcvt<sup>_n<mode>): New (VH variant).
2843 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
2844 (neon_vcvt<vcvth_op><sup><mode>): New.
2845 (neon_vmul_lane<mode>): New.
2846 (neon_vmul_n<mode>): New.
2847 * config/arm/unspecs.md (UNSPEC_VCALE): New
2848 (UNSPEC_VCALT): New.
2849 (UNSPEC_VFMA_LANE): New.
2850 (UNSPECS_VFMS_LANE): New.
2851
2852 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2853
2854 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
2855 ("*extzv<mode><clobbercc_or_nocc>"):
2856 Correct a typo in a comment.
2857 Merged patterns.
2858 ("*insv<mode>_zEC12", "*insv<mode>_z10")
2859 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
2860 ("*insv<mode>_zEC12_appendbitsleft")
2861 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
2862 ("*insv<mode>_z10_appendbitsleft"): Ditto.
2863 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
2864 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
2865 Provide pattern with operands switched.
2866 ("*pre_z10_extv<mode>"):
2867 Use new subst patterns.
2868 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
2869 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
2870 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
2871 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
2872 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
2873 ("*<risbg_n>_sidi_ior_and_lshiftrt")
2874 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
2875 New patterns.
2876 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
2877 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
2878 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
2879 on zEC12.
2880 ("SINT"): New mode_iterator with SI, HI, QI.
2881 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
2882 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
2883 duplication.
2884
2885 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2886
2887 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
2888 new interface of s390_contiguous_bitmask_p.
2889 ("contiguous_bitmask_nowrap_operand"): New predicate.
2890 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
2891 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
2892 of s390_contiguous_bitmask_p.
2893 ("NxxDw"): Rename NxxDq constraint to NxxDw.
2894 ("NxxSw"): New constraint.
2895 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
2896 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
2897 interface.
2898 (s390_contiguous_bitmask_nowrap_p): Export.
2899 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
2900 former s390_contiguous_bitmask_p.
2901 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
2902 detect contiguous bit ranges with wraparound. Change signature to
2903 return START and END position instead of POS and LENGTH.
2904 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
2905 ranges with wraparound.
2906 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
2907 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
2908 Adapt to new signature of s390_contiguous_bitmask_p.
2909
2910 2016-09-23 Bin Cheng <bin.cheng@arm.com>
2911
2912 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
2913 (create_intersect_range_checks): New.
2914 (vect_create_cond_for_alias_checks): Call above function.
2915
2916 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2917
2918 * config/arm/iterators.md (Code iterators): Fix some white-space
2919 in the comments.
2920 (GLTE): New.
2921 (ABSNEG): New
2922 (FCVT): Moved from vfp.md.
2923 (VCVT_HF_US_N): New.
2924 (VCVT_SI_US_N): New.
2925 (VCVT_HF_US): New.
2926 (VCVTH_US): New.
2927 (FP16_RND): New.
2928 (absneg_str): New.
2929 (FCVTI32typename): Moved from vfp.md.
2930 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
2931 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
2932 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
2933 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
2934 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
2935 (vcvth_op): New.
2936 (fp16_rnd_str): New.
2937 (fp16_rnd_insn): New.
2938 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
2939 (UNSPEC_VCVT_HF_U_N): New.
2940 (UNSPEC_VCVT_SI_S_N): New.
2941 (UNSPEC_VCVT_SI_U_N): New.
2942 (UNSPEC_VCVTH_S): New.
2943 (UNSPEC_VCVTH_U): New.
2944 (UNSPEC_VCVTA_S): New.
2945 (UNSPEC_VCVTA_U): New.
2946 (UNSPEC_VCVTM_S): New.
2947 (UNSPEC_VCVTM_U): New.
2948 (UNSPEC_VCVTN_S): New.
2949 (UNSPEC_VCVTN_U): New.
2950 (UNSPEC_VCVTP_S): New.
2951 (UNSPEC_VCVTP_U): New.
2952 (UNSPEC_VCVTP_S): New.
2953 (UNSPEC_VCVTP_U): New.
2954 (UNSPEC_VRND): New.
2955 (UNSPEC_VRNDA): New.
2956 (UNSPEC_VRNDI): New.
2957 (UNSPEC_VRNDM): New.
2958 (UNSPEC_VRNDN): New.
2959 (UNSPEC_VRNDP): New.
2960 (UNSPEC_VRNDX): New.
2961 * config/arm/vfp.md (<absneg_str>hf2): New.
2962 (neon_vabshf): New.
2963 (neon_v<fp16_rnd_str>hf): New.
2964 (neon_vrndihf): New.
2965 (addhf3): New.
2966 (subhf3): New.
2967 (divhf3): New.
2968 (mulhf3): New.
2969 (*mulsf3neghf_vfp): New.
2970 (*negmulhf3_vfp): New.
2971 (*mulsf3addhf_vfp): New.
2972 (*mulhf3subhf_vfp): New.
2973 (*mulhf3neghfaddhf_vfp): New.
2974 (*mulhf3neghfsubhf_vfp): New.
2975 (fmahf4): New.
2976 (neon_vfmahf): New.
2977 (fmsubhf4_fp16): New.
2978 (neon_vfmshf): New.
2979 (*fnmsubhf4): New.
2980 (*fnmaddhf4): New.
2981 (neon_vsqrthf): New.
2982 (neon_vrsqrtshf): New.
2983 (FCVT): Move to iterators.md.
2984 (FCVTI32typename): Likewise.
2985 (neon_vcvth<sup>hf): New.
2986 (neon_vcvth<sup>si): New.
2987 (neon_vcvth<sup>_nhf_unspec): New.
2988 (neon_vcvth<sup>_nhf): New.
2989 (neon_vcvth<sup>_nsi_unspec): New.
2990 (neon_vcvth<sup>_nsi): New.
2991 (neon_vcvt<vcvth_op>h<sup>si): New.
2992 (neon_<fmaxmin_op>hf): New.
2993
2994 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2995
2996 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
2997 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
2998 ("*insv<mode>_zEC12_appendbitsleft")
2999 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
3000 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
3001
3002 2016-09-23 Jakub Jelinek <jakub@redhat.com>
3003
3004 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
3005 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
3006 construct values without normalization.
3007 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
3008 static local lhs_ops to vNULL.
3009
3010 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3011 Jiong Wang <jiong.wang@arm.com>
3012
3013 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
3014 available when FP16 instructions are available.
3015 (output_move_vfp): Add support for 16-bit data moves.
3016 (arm_validize_comparison): Fix some white-space. Support HFmode
3017 by conversion to SFmode.
3018 * config/arm/arm.md (truncdfhf2): Fix a comment.
3019 (extendhfdf2): Likewise.
3020 (cstorehf4): New.
3021 (movsicc): Fix some white-space.
3022 (movhfcc): New.
3023 (movsfcc): Fix some white-space.
3024 (*cmovhf): New.
3025 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
3026 instructions are available.
3027 (*thumb2_movhi_vfp): Likewise.
3028 (*arm_movhi_fp16): New.
3029 (*thumb2_movhi_fp16): New.
3030 (*movhf_vfp_fp16): New.
3031 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
3032 (*movhf_vfp): Likewise.
3033 (extendhfsf2): Enable when VFP FP16 instructions are available.
3034 (truncsfhf2): Enable when VFP FP16 instructions are available.
3035
3036 2016-09-23 Martin Liska <mliska@suse.cz>
3037
3038 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
3039
3040 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3041
3042 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
3043 V4HF modes.
3044 (arm_evpc_neon_vtrn): Likewise.
3045 (arm_evpc_neon_vrev): Likewise.
3046 (arm_evpc_neon_vext): Likewise.
3047 * config/arm/arm_neon.h (vbsl_f16): New.
3048 (vbslq_f16): New.
3049 (vdup_n_f16): New.
3050 (vdupq_n_f16): New.
3051 (vdup_lane_f16): New.
3052 (vdupq_lane_f16): New.
3053 (vext_f16): New.
3054 (vextq_f16): New.
3055 (vmov_n_f16): New.
3056 (vmovq_n_f16): New.
3057 (vrev64_f16): New.
3058 (vrev64q_f16): New.
3059 (vtrn_f16): New.
3060 (vtrnq_f16): New.
3061 (vuzp_f16): New.
3062 (vuzpq_f16): New.
3063 (vzip_f16): New.
3064 (vzipq_f16): New.
3065 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
3066 (vdup_lane): New (v8hf, v4hf variants).
3067 (vext): New (v8hf, v4hf variants).
3068 (vbsl): New (v8hf, v4hf variants).
3069 * config/arm/iterators.md (VDQWH): New.
3070 (VH): New.
3071 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
3072 (Scalar_mul_8_16): Fix white-space.
3073 (Is_d_reg): Add V4HF and V8HF.
3074 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
3075 (neon_vdup_lane<mode>): New.
3076 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
3077 (*neon_vtrn<mode>_insn): Likewise.
3078 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
3079 (*neon_vzip<mode>_insn): Likewise
3080 (neon_vuzp<mode>_internal): Likewise.
3081 (*neon_vuzp<mode>_insn): Likewise
3082 * config/arm/vec-common.md (vec_perm_const<mode>): New.
3083
3084 2016-09-23 Jiong Wang <jiong.wang@arm.com>
3085 Matthew Wahab <matthew.wahab@arm.com>
3086
3087 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
3088 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
3089 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
3090 available. Also fix some white-space.
3091 * config/arm/vfp.md (*arm_movhi_vfp): New.
3092 (*thumb2_movhi_vfp): New.
3093
3094 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3095
3096 * config/arm/arm-c.c (arm_cpu_builtins): Define
3097 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
3098 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
3099
3100 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3101
3102 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
3103 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
3104 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
3105 arm_v8_2a_fp16_neon_hw.
3106 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
3107 arm_v8_2a_neon.
3108
3109 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3110
3111 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
3112 arm_fp16_alternative_ok and arm_fp16_none_ok.
3113
3114 2016-09-23 Martin Liska <mliska@suse.cz>
3115
3116 * ipa-icf.c (sem_variable::merge): Replace adress with address.
3117
3118 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3119
3120 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
3121 ("armv8.2-a"): New.
3122 ("armv8.2-a+fp16"): New.
3123 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
3124 (FL2_FP16INST): New.
3125 (FL2_FOR_ARCH8_2A): New.
3126 * config/arm/arm-tables.opt: Regenerate.
3127 * config/arm/arm.c (arm_arch8_2): New.
3128 (arm_fp16_inst): New.
3129 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
3130 for incompatible fp16-format settings.
3131 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
3132 (TARGET_NEON_FP16INST): New.
3133 (arm_arch8_2): Declare.
3134 (arm_fp16_inst): Declare.
3135 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
3136 march=armv8.2-a and march=armv8.2-a+fp16.
3137 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
3138 and armv8.2-a+fp16.
3139 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
3140 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
3141
3142 2016-09-23 Martin Liska <mliska@suse.cz>
3143
3144 * doc/extend.texi: Remove fused-madd from i386 target options.
3145
3146 2016-09-23 Martin Liska <mliska@suse.cz>
3147
3148 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
3149 Handle movbe.
3150
3151 2016-09-23 Martin Liska <mliska@suse.cz>
3152
3153 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
3154 Handle crc32.
3155
3156 2016-09-23 Martin Liska <mliska@suse.cz>
3157
3158 PR target/71652
3159 * config/i386/i386.c (ix86_option_override_internal): Change
3160 signature and return false when there's an error related to
3161 arch string.
3162 (release_options_strings): New function.
3163 (ix86_valid_target_attribute_tree): Call the function.
3164
3165 2016-09-23 Jakub Jelinek <jakub@redhat.com>
3166
3167 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
3168 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
3169 (gen_hsa_ctor_assignment): Likewise.
3170 * print-tree.c (print_node): Likewise.
3171 * tree-dump.c (dequeue_and_dump): Likewise.
3172 * tree-sra.c (sra_modify_constructor_assign): Likewise.
3173 * expr.c (store_constructor): Likewise.
3174 * fold-const.c (operand_equal_p): Likewise.
3175 * tree-pretty-print.c (dump_generic_node): Likewise.
3176 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
3177 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
3178
3179 2016-09-23 Richard Biener <rguenther@suse.de>
3180
3181 * hooks.h (hook_uint_uintp_false): Declare.
3182
3183 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3184
3185 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
3186 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
3187
3188 2016-09-22 Martin Sebor <msebor@redhat.com>
3189
3190 PR target/77676
3191 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
3192 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
3193 (target_int_min): Correct computation.
3194 (format_integer): Use long long as the argument for the ll length
3195 modifier.
3196 (format_floating): Use target_int_max().
3197 (get_string_length): Same.
3198 (format_string): Avoid setting the bounded flag for strings
3199 of unknown length.
3200 (try_substitute_return_value): Avoid setting range info when
3201 the result isn't bounded.
3202 * varasm.c (assemble_name): Increase buffer size.
3203
3204 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
3205 Terry Guo <terry.guo@arm.com>
3206
3207 * target.def (elf_flags_numeric): New target hook.
3208 * targhooks.h (default_asm_elf_flags_numeric): New.
3209 * varasm.c (default_asm_elf_flags_numeric): New.
3210 (default_elf_asm_named_section): Use new target hook.
3211 * config/arm/arm.opt (mpure-code): New.
3212 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
3213 * config/arm/arm.c (arm_asm_init_sections): Add section
3214 attribute to default text section if -mpure-code.
3215 (arm_option_check_internal): Diagnose use of option with
3216 non supported targets and/or options.
3217 (arm_asm_elf_flags_numeric): New.
3218 (arm_function_section): New.
3219 (arm_elf_section_type_flags): New.
3220 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
3221 for -mpure-code.
3222 * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
3223 * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
3224
3225 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
3226
3227 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
3228
3229 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3230
3231 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
3232 * rtl.h: Adjust prototype.
3233
3234 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3235
3236 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
3237 (prev_active_insn): Likewise.
3238 (active_insn_p): Likewise.
3239 * rtl.h: Adjust prototypes.
3240 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
3241 * config/arc/arc.md: Likewise.
3242 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
3243 (branch_needs_nop_p): Likewise.
3244 (use_skip_p): Likewise.
3245 * config/sh/sh.c (gen_block_redirect): Likewise.
3246 (split_branches): Likewise.
3247 * reorg.c (optimize_skip): Likewise.
3248 (fill_simple_delay_slots): Likewise.
3249 (fill_slots_from_thread): Likewise.
3250 (relax_delay_slots): Likewise.
3251 * resource.c (mark_target_live_regs): Likewise.
3252
3253 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3254
3255 * config/cris/cris.c (cris_asm_output_case_end): Change argument
3256 type to rtx_insn *.
3257 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
3258 (prev_nonnote_nondebug_insn): Likewise.
3259 * config/cris/cris-protos.h: Adjust prototype.
3260 * rtl.h: Likewise.
3261 * jump.c (rtx_renumbered_equal_p): Adjust.
3262
3263 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3264
3265 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
3266 * rtl.h: Adjust prototype.
3267 * config/sh/sh.md: Adjust.
3268 * dwarf2out.c (add_var_loc_to_decl): Likewise.
3269
3270 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3271
3272 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
3273 (prev_nondebug_insn): Likewise.
3274 * loop-doloop.c (doloop_condition_get): Likewise.
3275 * rtl.h: Adjust prototype.
3276 * cfgloop.h: Likewise.
3277
3278 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3279
3280 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
3281 (prev_nonnote_insn): Likewise.
3282 * jump.c (reversed_comparison_code_parts): Likewise.
3283 (reversed_comparison): Likewise.
3284 * rtl.h: Adjust prototypes.
3285 * config/arc/arc.md: Adjust.
3286 * cse.c (find_comparison_args): Likewise.
3287 * reorg.c (redundant_insn): Change return type to rtx_insn *.
3288 (fix_reg_dead_note): Change argument type to rtx_insn *.
3289 (delete_prior_computation): Likewise.
3290 (delete_computation): Likewise.
3291 (fill_slots_from_thread): Adjust.
3292 (relax_delay_slots): Likewise.
3293 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3294 (simplify_relational_operation_1): Likewise.
3295 (simplify_ternary_operation): Likewise.
3296
3297 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3298
3299 * config/arc/arc-protos.h (arc_label_align): Change type of
3300 variables from rtx to rtx_insn *.
3301 * config/arc/arc.c (arc_label_align): Likewise.
3302 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
3303 * config/bfin/bfin.c (workaround_speculation): Likewise.
3304 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
3305 (find_last_same_clock): Likewise.
3306 (reorg_split_calls): Likewise.
3307 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
3308 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
3309 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
3310 (same_cmp_following_p): Likewise.
3311 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
3312 (same_cmp_following_p): Likwise.
3313 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
3314 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
3315 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
3316 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
3317 (rl78_alloc_physical_registers_cmp): Likewise.
3318 (rl78_alloc_physical_registers_umul): Likewise.
3319 (rl78_calculate_death_notes): Likewise.
3320 * config/s390/s390-protos.h (s390_label_align): Likewise.
3321 * config/s390/s390.c (s390_label_align): Likewise.
3322 * config/sh/sh.c (barrier_align): Likewise.
3323 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
3324 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
3325 (emit_cbcond_nop): Likewise.
3326
3327 2016-09-22 Martin Liska <mliska@suse.cz>
3328
3329 PR ipa/77653
3330 * ipa-icf.c (sem_variable::merge): Yield merge operation if
3331 alias address matters, not necessarily address of original.
3332
3333 2016-09-22 Richard Biener <rguenther@suse.de>
3334
3335 PR middle-end/77697
3336 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
3337 fold fails.
3338
3339 2016-09-22 Richard Biener <rguenther@suse.de>
3340
3341 PR middle-end/77677
3342 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
3343 from constant folding results.
3344 (gimple_resimplify2): Likewise.
3345 (gimple_resimplify3): Likewise.
3346
3347 2016-09-22 Richard Biener <rguenther@suse.de>
3348
3349 PR middle-end/77678
3350 * expr.c (expand_expr_real_1): Guard array access against negative
3351 offset.
3352
3353 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3354
3355 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
3356 of MPFR_RNDN.
3357 (format_floating): Likewise.
3358
3359 2016-09-22 Jakub Jelinek <jakub@redhat.com>
3360
3361 PR fortran/77665
3362 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
3363 for all IFN_GOMP_SIMD_* internal fns, not just for
3364 IFN_GOMP_SIMD_ORDERED_*.
3365
3366 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3367
3368 PR target/77670
3369 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
3370 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
3371 instructions when you want to invert the test.
3372 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
3373 correct order for XXSEL.
3374 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
3375 for using XSCMP{EQ,GT,GE}DP.
3376
3377 2016-09-21 David Malcolm <dmalcolm@redhat.com>
3378
3379 * genconstants.c (main): Introduce noop_reader and convert call
3380 to read_md_files to a method call.
3381 * genenums.c (main): Likewise.
3382 * genmddeps.c (main): Likewise.
3383 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
3384 rtx_reader_ptr->get_top_level_filename ().
3385 (write_tm_preds_h): Likewise.
3386 (write_insn_preds_c): Likewise.
3387 * gensupport.c (class gen_reader): New subclass of rtx_reader.
3388 (rtx_handle_directive): Convert to...
3389 (gen_reader::handle_unknown_directive): ...this.
3390 (init_rtx_reader_args_cb): Convert return type from bool to
3391 rtx_reader *. Create a gen_reader instance, using it for the
3392 call to read_md_files. Return it if no errors occur.
3393 (init_rtx_reader_args): Convert return type from bool to
3394 rtx_reader *.
3395 * gensupport.h (init_rtx_reader_args_cb): Likewise.
3396 (init_rtx_reader_args_cb): Likewise.
3397 * read-md.c (struct file_name_list): Move to class rtx_reader.
3398 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
3399 (read_md_filename): Delete in favor of
3400 rtx_reader::m_read_md_filename.
3401 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
3402 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
3403 (base_dir): Delete in favor of rtx_reader::m_base_dir.
3404 (first_dir_md_include): Delete in favor of
3405 rtx_reader::m_first_dir_md_include.
3406 (last_dir_md_include_ptr): Delete in favor of
3407 rtx_reader::m_last_dir_md_include_ptr.
3408 (max_include_len): Delete.
3409 (rtx_reader_ptr): New.
3410 (fatal_with_file_and_line): Use get_filename and get_lineno
3411 accessors of rtx_reader_ptr.
3412 (require_char_ws): Likewise.
3413 (rtx_reader::read_char): New method, based on ::read_char.
3414 (rtx_reader::unread_char): New method, based on ::unread_char.
3415 (read_escape): Use get_filename and get_lineno accessors of
3416 rtx_reader_ptr.
3417 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
3418 (read_string): Use get_filename and get_lineno accessors of
3419 rtx_reader_ptr.
3420 (rtx_reader::rtx_reader): New ctor.
3421 (rtx_reader::~rtx_reader): New dtor.
3422 (handle_include): Convert from a function to...
3423 (rtx_reader::handle_include): ...this method, converting
3424 handle_directive from a callback to a virtual function.
3425 (handle_file): Likewise, converting to...
3426 (rtx_reader::handle_file): ...this method.
3427 (handle_toplevel_file): Likewise, converting to...
3428 (rtx_reader::handle_toplevel_file): ...this method.
3429 (rtx_reader::get_current_location): New method.
3430 (parse_include): Convert from a function to...
3431 (rtx_reader::add_include_path): ...this method, dropping redundant
3432 update to unused max_include_len.
3433 (read_md_files): Convert from a function to...
3434 (rtx_reader::read_md_files): ...this method, converting
3435 handle_directive from a callback to a virtual function.
3436 (noop_reader::handle_unknown_directive): New method.
3437 * read-md.h (directive_handler_t): Delete this typedef.
3438 (in_fname): Delete.
3439 (read_md_file): Delete.
3440 (read_md_lineno): Delete.
3441 (read_md_filename): Delete.
3442 (class rtx_reader): New class.
3443 (rtx_reader_ptr): New decl.
3444 (class noop_reader): New subclass of rtx_reader.
3445 (read_char): Reimplement in terms of rtx_reader::read_char.
3446 (unread_char): Reimplement in terms of rtx_reader::unread_char.
3447 (read_md_files): Delete.
3448 * read-rtl.c (read_rtx_code): Update for deletion of globals
3449 read_md_filename and read_md_lineno.
3450
3451 2016-09-21 Jason Merrill <jason@redhat.com>
3452
3453 * input.h (from_macro_definition_at): New.
3454
3455 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
3456
3457 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
3458
3459 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
3460
3461 PR tree-optimization/77550
3462 * tree-vect-stmts.c (create_array_ref): Change parameters.
3463 (get_group_alias_ptr_type): New function.
3464 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
3465
3466 2016-09-21 Marek Polacek <polacek@redhat.com>
3467
3468 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
3469 Add falls through comment.
3470
3471 2016-09-21 Richard Biener <rguenther@suse.de>
3472
3473 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
3474 (replace_child): Likewise.
3475 (remove_child_TAG): Adjust.
3476 (move_marked_base_types): Likewise.
3477 (prune_unused_types_prune): Clear die_sib of removed children.
3478
3479 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
3480
3481 PR target/77326
3482 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
3483 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
3484
3485 2016-09-21 Richard Biener <rguenther@suse.de>
3486
3487 PR tree-optimization/77648
3488 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
3489 with complex RHS.
3490 (make_transitive_closure_constraints): Adjust comment.
3491 (make_any_offset_constraints): New function.
3492 (handle_rhs_call): Make sure to first expand a pointer to all
3493 subfields before transitively closing it.
3494 (handle_const_call): Likewise. Properly expand returned
3495 pointers as well.
3496 (handle_pure_call): Likewise.
3497
3498 2016-09-21 Richard Biener <rguenther@suse.de>
3499 Jakub Jelinek <jakub@redhat.com>
3500
3501 PR tree-optimization/77621
3502 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
3503 group at non-vectorizable stmts.
3504
3505 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3506
3507 PR tree-optimization/72835
3508 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
3509 (make_new_ssa_for_all_defs): Likewise.
3510 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
3511
3512 2016-09-20 Martin Sebor <msebor@redhat.com>
3513
3514 PR middle-end/49905
3515 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
3516 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
3517 * config/linux.c (gnu_libc_printf_pointer_format): New function.
3518 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
3519 * config/sol2.c (solaris_printf_pointer_format): New function.
3520 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
3521 options.
3522 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
3523 * doc/tm.texi: Regenerate.
3524 * gimple-fold.h (get_range_strlen): New function.
3525 (get_maxval_strlen): Declare existing function.
3526 * gimple-fold.c (get_range_strlen): Add arguments and compute both
3527 maximum and minimum.
3528 (get_range_strlen): Define overload.
3529 (get_maxval_strlen): Adjust.
3530 * gimple-ssa-sprintf.c: New file and pass.
3531 * passes.def (pass_sprintf_length): Add new pass.
3532 * targhooks.h (default_printf_pointer_format): Declare new function.
3533 (gnu_libc_printf_pointer_format): Same.
3534 (solaris_libc_printf_pointer_format): Same.
3535 * targhooks.c (default_printf_pointer_format): Define new function.
3536 * tree-pass.h (make_pass_sprintf_length): Declare new function.
3537 * print-tree.c: Increase buffer size.
3538
3539 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3540
3541 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
3542
3543 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3544
3545 * common.opt: New option -fipa-vrp.
3546 * ipa-cp.c (ipa_get_vr_lat): New.
3547 (ipcp_vr_lattice::print): Likewise.
3548 (print_all_lattices): Call ipcp_vr_lattice::print.
3549 (ipcp_vr_lattice::meet_with): New.
3550 (ipcp_vr_lattice::meet_with_1): Likewise.
3551 (ipcp_vr_lattice::top_p): Likewise.
3552 (ipcp_vr_lattice::bottom_p): Likewsie.
3553 (ipcp_vr_lattice::set_to_bottom): Likewise.
3554 (set_all_contains_variable): Call VR set_to_bottom.
3555 (initialize_node_lattices): Init VR lattices.
3556 (propagate_vr_accross_jump_function): New.
3557 (propagate_constants_accross_call): Call
3558 propagate_vr_accross_jump_function.
3559 (ipcp_store_vr_results): New.
3560 (ipcp_driver): Handle VR.
3561 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
3562 (ipa_set_jf_unknown): Likewise.
3563 (ipa_compute_jump_functions_for_edge): Likewise.
3564 (ipa_node_params_t::duplicate): Likewise.
3565 (ipa_write_jump_function): Likewise.
3566 (ipa_read_jump_function): Likewise.
3567 (write_ipcp_transformation_info): Likewise.
3568 (read_ipcp_transformation_info): Likewise.
3569 (ipcp_update_vr): New.
3570 (ipcp_transform_function): Handle VR.
3571 * ipa-prop.h (struct ipa_vr): New.
3572 * cgraph.c: Include tree-vrp.h.
3573 * cgraphunit.c: Likewise.
3574 * ipa-utils.c: Likewise.
3575 * ipa.c: Likewise.
3576 * opts.c: Likewise.
3577 * toplev.c: Likewise.
3578 * ipa-devirt.c: Likewise.
3579 * ipa-inline-transform.c: Likewise.
3580 * ipa-inline.c: Likewise.
3581 * ipa-profile.c: Likewise.
3582
3583 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3584
3585 * doc/invoke.texi: Document -fdump-tree-evrp.
3586 * passes.def: Define new pass_early_vrp.
3587 * timevar.def: Define new TV_TREE_EARLY_VRP.
3588 * tree-pass.h (make_pass_early_vrp): New.
3589 * tree-ssa-propagate.c: Make replace_uses_in non static.
3590 * tree-ssa-propagate.h: Export replace_uses_in.
3591 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
3592 (extract_range_from_assert): Factor out
3593 extract_range_for_var_from_comparison_expr.
3594 (vrp_initialize_lattice): New.
3595 (vrp_initialize): Factor out vrp_initialize_lattice.
3596 (vrp_valueize): Fix it to reject complex value ranges.
3597 (vrp_free_lattice): New.
3598 (evrp_dom_walker::before_dom_children): Likewise.
3599 (evrp_dom_walker::after_dom_children): Likewise.
3600 (evrp_dom_walker::push_value_range): Likewise.
3601 (evrp_dom_walker::pop_value_range): Likewise.
3602 (execute_early_vrp): Likewise.
3603 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
3604 (make_pass_early_vrp): New.
3605
3606 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
3607
3608 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
3609 instead of exact_log2.
3610
3611 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
3612
3613 PR target/77621
3614 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
3615 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
3616 (ix86_add_stmt_cost): Penalize DFmode vector operations
3617 for !TARGET_VECTORIZE_DOUBLE.
3618
3619 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
3620
3621 * doc/invoke.texi (Warning Options): Simplify language.
3622 (Optimize Options): Complete sentence.
3623
3624 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
3625
3626 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
3627 early_finish hook.
3628
3629 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
3630
3631 PR target/71395
3632 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
3633 inits on power8 and above, use the VMRGEW instruction instead of a
3634 permute.
3635
3636 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
3637 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
3638 initialization.
3639
3640 2016-09-20 Tamar Christina <tamar.christina@arm.com>
3641
3642 * config/aarch64/arm_neon.h
3643 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
3644 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
3645 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
3646
3647 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
3648
3649 * config/var/vax.h (ELIMINABLE_REGS): Define.
3650 (INITIAL_ELIMINATION_OFFSET): Define.
3651
3652 2016-09-20 Jakub Jelinek <jakub@redhat.com>
3653
3654 PR middle-end/77624
3655 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
3656 cast to void * if the cast is from some other pointer type.
3657
3658 2016-09-20 Richard Biener <rguenther@suse.de>
3659
3660 PR tree-optimization/77646
3661 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
3662 a VDEF.
3663
3664 2016-09-20 Tamar Christina <tamar.christina@arm.com>
3665
3666 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
3667 attributes to all inlined functions and make them extern.
3668
3669 2016-09-20 Richard Biener <rguenther@suse.de>
3670
3671 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
3672 hook.
3673 * debug.c (do_nothing_debug_hooks): Adjust.
3674 * dbxout.c (dbx_debug_hooks): Likewise.
3675 * sdbout.c (sdb_debug_hooks): Likewise.
3676 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
3677 (dwarf2out_finish): Move producer, filename and
3678 path annotation ...
3679 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
3680 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
3681
3682 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
3683
3684 PR c++/77434
3685 * doc/invoke.texi: Document -Wint-in-bool-context.
3686
3687 PR middle-end/77421
3688 * dwarf2out.c (output_loc_operands): Fix an assertion.
3689
3690 2016-09-19 Joseph Myers <joseph@codesourcery.com>
3691
3692 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
3693 (CR_DECIMAL_DIG): New macro.
3694
3695 2016-09-19 Joseph Myers <joseph@codesourcery.com>
3696
3697 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
3698 element.
3699
3700 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
3701
3702 PR rtl-optimization/77416
3703 * lra-remat.c (operand_to_remat): Process hard coded insn
3704 registers.
3705
3706 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3707
3708 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
3709 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
3710
3711 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
3712
3713 * target.def (lra_p): Wordsmithing.
3714 * doc/tm.texi: Regenerate.
3715
3716 2016-09-19 Jakub Jelinek <jakub@redhat.com>
3717 Jan Hubicka <jh@suse.cz>
3718
3719 PR target/77587
3720 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
3721 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
3722 Call ultimate_alias_target just once, not up to 4 times.
3723
3724 2016-09-19 Richard Biener <rguenther@suse.de>
3725
3726 * dwarf2out.c (early_dwarf_finished): New global.
3727 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
3728 is false.
3729 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
3730 if called from LTO exit early.
3731 (dwarf2out_late_global_decl): When being during the early
3732 debug phase do not add locations but only const value attributes.
3733 Adjust the way we generate early DIEs for LTO.
3734
3735 2016-09-19 Richard Biener <rguenther@suse.de>
3736
3737 PR middle-end/77605
3738 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
3739 proper niter to bound the loops.
3740
3741 2016-09-19 Richard Biener <rguenther@suse.de>
3742
3743 PR tree-optimization/77514
3744 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
3745 search for folded stmt.
3746
3747 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
3748
3749 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
3750 * tree-pass.h (make_pass_early_thread_jumps): Declare.
3751 * tree-ssa-threadbackward.c (fsm_find_thread_path,
3752 fsm_find_thread_path, profitable_jump_thread_path,
3753 fsm_find_control_statement_thread_paths,
3754 find_jump_threads_backwards): Add speed_p parameter.
3755 (pass_data_early_thread_jumps): New pass.
3756 (make_pass_early_thread_jumps): New function.
3757
3758 2016-09-17 Andreas Schwab <schwab@suse.de>
3759
3760 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
3761 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3762
3763 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
3764
3765 * recog.c (rest_of_handle_split_after_reload): Delete.
3766 (pass_split_after_reload::gate): New method.
3767 (pass_split_after_reload::execute): Call split_all_insns directly.
3768
3769 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
3770
3771 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
3772 parameters for functions taking long long arguments.
3773
3774 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3775
3776 PR target/77613
3777 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
3778 splat with truncate.
3779
3780 2016-09-16 Jason Merrill <jason@redhat.com>
3781
3782 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
3783 New.
3784 * hwint.c (exact_log2): Use pow2p_hwi.
3785 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
3786 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
3787 * builtins.c (get_object_alignment_2, get_object_alignment)
3788 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
3789 least_bit_hwi.
3790 * calls.c (compute_argument_addresses, store_one_arg): Use
3791 least_bit_hwi.
3792 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
3793 * combine.c (force_to_mode): Use least_bit_hwi.
3794 (contains_muldiv, find_split_point, combine_simplify_rtx)
3795 (simplify_if_then_else, simplify_set, force_to_mode)
3796 (if_then_else_cond, simplify_and_const_int_1)
3797 (simplify_compare_const): Use pow2p_hwi.
3798 * cse.c (fold_rtx): Use pow2p_hwi.
3799 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
3800 Use least_bit_hwi.
3801 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
3802 (init_expmed_one_conv): Use pow2p_hwi.
3803 * expr.c (is_aligning_offset): Use pow2p_hwi.
3804 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
3805 (fold_binary_loc): Use pow2p_hwi.
3806 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
3807 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
3808 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
3809 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
3810 Use least_bit_hwi.
3811 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
3812 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
3813 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
3814 * omp-low.c (oacc_loop_fixed_partitions)
3815 (oacc_loop_auto_partitions): Use least_bit_hwi.
3816 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
3817 * stor-layout.c (place_field): Use least_bit_hwi.
3818 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
3819 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
3820 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
3821 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
3822 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
3823 * tree-vect-data-refs.c (vect_analyze_group_access_1)
3824 (vect_grouped_store_supported, vect_grouped_load_supported)
3825 (vect_permute_load_chain, vect_shift_permute_load_chain)
3826 (vect_transform_grouped_load): Use pow2p_hwi.
3827 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
3828 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
3829 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
3830 least_bit_hwi.
3831 * tsan.c (instrument_expr): Use least_bit_hwi.
3832 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
3833
3834 2016-09-16 Andreas Schwab <schwab@suse.de>
3835
3836 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
3837 OFFSET, not offset.
3838 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3839
3840 2016-09-16 Jakub Jelinek <jakub@redhat.com>
3841
3842 PR target/77526
3843 * combine.c (rest_of_handle_combine): If any edges have been purged,
3844 free dominators if available.
3845
3846 2016-09-16 Jakub Jelinek <jakub@redhat.com>
3847 Eric Botcazou <ebotcazou@adacore.com>
3848
3849 PR middle-end/77594
3850 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
3851 through into expand_addsub_overflow after expand_neg_overflow.
3852
3853 2016-09-15 David Malcolm <dmalcolm@redhat.com>
3854
3855 * diagnostic-show-locus.c
3856 (selftest::test_fixit_insert_containing_newline): New function.
3857 (selftest::test_fixit_replace_containing_newline): New function.
3858 (selftest::diagnostic_show_locus_c_tests): Call the above.
3859
3860 2016-09-15 Bin Cheng <bin.cheng@arm.com>
3861
3862 PR tree-optimization/77503
3863 * tree-vect-loop.c (vectorizable_reduction): Record reduction
3864 code for CONST_COND_REDUCTION at analysis stage and use it at
3865 transform stage.
3866 * tree-vectorizer.h (struct _stmt_vec_info): New field.
3867 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
3868 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
3869 field.
3870
3871 2016-09-15 Richard Biener <rguenther@suse.de>
3872
3873 PR middle-end/77544
3874 * fold-const.c (split_tree): Do not split constant ~X.
3875
3876 2016-09-15 Jakub Jelinek <jakub@redhat.com>
3877
3878 PR rtl-optimization/77425
3879 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
3880 is NULL.
3881
3882 PR middle-end/77475
3883 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
3884 use %qs instead of %s where desirable, use argument instead of arg in
3885 the diagnostic wording, add list of supported strategies and
3886 spellcheck hint.
3887 (ix86_option_override_internal): Emit target("m...") instead of
3888 option("m...") in the diagnostic. Use %qs instead of %s in invalid
3889 -march/-mtune option diagnostic. Add list of supported arches/tunings
3890 and spellcheck hint. Remove prefix, suffix and sw variables, use
3891 main_args_p ? "..." : "..." in diagnostics to make translation
3892 possible.
3893
3894 2016-09-15 Richard Biener <rguenther@suse.de>
3895
3896 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
3897 extra offset argument.
3898 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
3899 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
3900 to reflect new offset parameter.
3901 * doc/tm.texi: Regenerate.
3902 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
3903 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
3904 offset argument.
3905 (darwin_asm_output_dwarf_offset): Likewise.
3906 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
3907 argument.
3908 (darwin_asm_output_dwarf_offset): Pass offset argument through.
3909 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
3910 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3911
3912 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
3913
3914 PR fortran/72743
3915 * ipa-icf.c (set_alias_uids): New function.
3916 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
3917 all the merged variable's referring aliases.
3918
3919 2016-09-15 Richard Biener <rguenther@suse.de>
3920
3921 PR tree-optimization/77514
3922 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
3923 only forced_stmts sequence.
3924
3925 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
3926
3927 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
3928 * cfgexpand.c (update_alias_info_with_stack_vars): Use
3929 FOR_EACH_SSA_NAME to iterate over SSA variables.
3930 (pass_expand::execute): Likewise.
3931 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
3932 * tree-cfg.c (dump_function_to_file): Likewise.
3933 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
3934 (update_ssa): Likewise.
3935 * tree-ssa-alias.c (dump_alias_info): Likewise.
3936 * tree-ssa-ccp.c (ccp_finalize): Likewise.
3937 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
3938 (create_outofssa_var_map): Likewise.
3939 (coalesce_ssa_name): Likewise.
3940 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
3941 * tree-ssa-pre.c (compute_avail): Likewise.
3942 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
3943 (scc_vn_restore_ssa_info): Likewise.
3944 (free_scc_vn): Likwise.
3945 (run_scc_vn): Likewise.
3946 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
3947 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
3948 * tree-ssa-copy.c (fini_copy_prop): Likewise.
3949 * tree-ssa.c (verify_ssa): Likewise.
3950
3951 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
3952
3953 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
3954 and mips64r2 as default 32-bit and 64-bit architectures.
3955 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
3956 as default 32-bit and 64-bit architectures.
3957
3958 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
3959
3960 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
3961 of succ edge.
3962
3963 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3964
3965 * target.def (lra_p): Change commentary (for the manual) for the
3966 new default.
3967 * doc/tm.texi: Regenerate.
3968
3969 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3970
3971 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
3972 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
3973 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
3974 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
3975
3976 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3977
3978 * targhooks.c (default_lra_p): Return true instead of false.
3979
3980 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3981
3982 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
3983 hook_bool_void_false.
3984 * config/avr/avr.c: Ditto.
3985 * config/bfin/bfin.c: Ditto.
3986 * config/c6x/c6x.c: Ditto.
3987 * config/cr16/cr16.c: Ditto.
3988 * config/cris/cris.c: Ditto.
3989 * config/epiphany/epiphany.c: Ditto.
3990 * config/fr30/fr30.c: Ditto.
3991 * config/frv/frv.c: Ditto.
3992 * config/h8300/h8300.c: Ditto.
3993 * config/ia64/ia64.c: Ditto.
3994 * config/iq2000/iq2000.c: Ditto.
3995 * config/lm32/lm32.c: Ditto.
3996 * config/m32c/m32c.c: Ditto.
3997 * config/m32r/m32r.c: Ditto.
3998 * config/m68k/m68k.c: Ditto.
3999 * config/mcore/mcore.c: Ditto.
4000 * config/microblaze/microblaze.c: Ditto.
4001 * config/mmix/mmix.c: Ditto.
4002 * config/mn10300/mn10300.c: Ditto.
4003 * config/moxie/moxie.c: Ditto.
4004 * config/msp430/msp430.c: Ditto.
4005 * config/nios2/nios2.c: Ditto.
4006 * config/nvptx/nvptx.c: Ditto.
4007 * config/pa/pa.c: Ditto.
4008 * config/pdp11/pdp11.c: Ditto.
4009 * config/rl78/rl78.c: Ditto.
4010 * config/sparc/sparc.c: Ditto.
4011 * config/spu/spu.c: Ditto.
4012 * config/stormy16/stormy16.c: Ditto.
4013 * config/tilegx/tilegx.c: Ditto.
4014 * config/tilepro/tilepro.c: Ditto.
4015 * config/v850/v850.c: Ditto.
4016 * config/vax/vax.c: Ditto.
4017 * config/visium/visium.c: Ditto.
4018 * config/xtensa/xtensa.c: Ditto.
4019
4020 2016-09-14 Jakub Jelinek <jakub@redhat.com>
4021
4022 PR sanitizer/68260
4023 * tsan.c: Include target.h.
4024 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
4025 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
4026 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
4027 BUILT_IN_ATOMIC_TEST_AND_SET entries.
4028 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
4029
4030 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
4031 Martin Liska <mliska@suse.cz>
4032
4033 PR middle-end/77574
4034 * predict.c (force_edge_cold): Add braces to a condition.
4035
4036 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
4037
4038 PR rtl-optimization/77289
4039 * lra-constraints.c (get_final_hard_regno): Removed.
4040 (get_hard_regno): Add new parameter final_p.
4041 (get_reg_class): Directly call lra_get_elimination_hard_regno.
4042 (operands_match_p): Adjust call to get_hard_regno.
4043 (uses_hard_regs_p): Likewise.
4044 (process_alt_operands): Likewise.
4045
4046 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
4047
4048 PR target/70713
4049 * config/msp430/msp430.c (msp430_start_function): Emit an error
4050 if a function is both weak and specifies an interrupt number.
4051
4052 2016-09-13 Jakub Jelinek <jakub@redhat.com>
4053
4054 PR tree-optimization/77454
4055 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
4056 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
4057 Formatting fix.
4058
4059 2016-09-13 Tamar Christina <tamar.christina@arm.com>
4060
4061 * config/aarch64/aarch64-builtins.c
4062 (aarch64_init_simd_builtins): Fix builtin type signature printing.
4063
4064 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
4065
4066 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
4067 SFmode and SCmode arguments by reference.
4068
4069 2016-09-13 David Malcolm <dmalcolm@redhat.com>
4070
4071 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
4072 Rename to...
4073 (selftest::test_one_liner_fixit_insert_before): ...this, and update
4074 for renaming of add_fixit_insert to add_fixit_insert_before.
4075 (selftest::test_one_liner_fixit_insert_after): New function.
4076 (selftest::test_one_liner_fixit_validation_adhoc_locations):
4077 Update for renaming of add_fixit_insert to add_fixit_insert_before.
4078 (selftest::test_one_liner_many_fixits): Likewise.
4079 (selftest::test_diagnostic_show_locus_one_liner): Update for
4080 renaming, call new test function.
4081 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
4082 renaming of add_fixit_insert to add_fixit_insert_before.
4083 (selftest::test_fixit_consolidation): Likewise.
4084 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
4085 Likewise.
4086 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
4087 (selftest::test_applying_fixits_insert_before): ...this.
4088 (selftest::test_applying_fixits_insert): Update for renaming of
4089 add_fixit_insert to add_fixit_insert_before.
4090 (selftest::test_applying_fixits_insert_after): New function.
4091 (selftest::test_applying_fixits_insert_after_at_line_end): New
4092 function.
4093 (selftest::test_applying_fixits_insert_after_failure): New function.
4094 (selftest::test_applying_fixits_multiple): Update for renaming of
4095 add_fixit_insert to add_fixit_insert_before.
4096 (selftest::change_line): Likewise.
4097 (selftest::test_applying_fixits_unreadable_file): Likewise.
4098 (selftest::test_applying_fixits_line_out_of_range): Likewise.
4099 (selftest::test_applying_fixits_column_validation): Likewise.
4100 (selftest::test_applying_fixits_column_validation): Likewise.
4101 (selftest::edit_context_c_tests): Update for renamed test function;
4102 call new test functions.
4103
4104 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
4105
4106 PR tree-optimization/77536
4107 PR rtl-optimization/68212
4108 * config/rs6000/rs6000.md (div->recip splitter): Remove
4109 optimize_insn_for_speed_p condition.
4110
4111 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
4112
4113 * optabs.c (prepare_cmp_insn): Update documentation comment.
4114
4115 2016-09-13 Jakub Jelinek <jakub@redhat.com>
4116 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4117
4118 PR middle-end/77475
4119 * opts.h (candidates_list_and_hint): Declare.
4120 * opts-common.c (candidates_list_and_hint): New function.
4121 (cmdline_handle_error): Use it.
4122
4123 2016-09-12 David Malcolm <dmalcolm@redhat.com>
4124
4125 * edit-context.c (edited_line::get_len): New accessor.
4126 (edited_file::print_diff): Split out hunk-printing into...
4127 (edited_file::print_diff_hunk): New method.
4128 (edited_file::print_diff_line): New method.
4129
4130 2016-09-12 Andrew Pinski <apinski@cavium.com>
4131
4132 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
4133 New tuning option.
4134 * config/aarch64/aarch64.c (thunderx_tunings): Enable
4135 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
4136 (aarch64_operands_ok_for_ldpstp): Return false if
4137 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
4138 was SImode and the alignment is less than 8 byte.
4139 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
4140
4141 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
4142
4143 PR target/77570
4144 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
4145
4146 2016-09-12 Marek Polacek <polacek@redhat.com>
4147
4148 * doc/extend.texi: Use lowercase "boolean".
4149 * doc/invoke.texi: Likewise.
4150 * doc/md.texi: Likewise.
4151 * target.def: Likewise.
4152 * doc/tm.texi: Regenerated.
4153
4154 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4155
4156 PR middle-end/77426
4157 * expmed.c (synth_mult): Delete duplicate mode check.
4158
4159 2016-09-10 Tom de Vries <tom@codesourcery.com>
4160
4161 PR C/71602
4162 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
4163 va_list type only.
4164 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
4165 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
4166
4167 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
4168
4169 PR rtl-optimization/77289
4170 * lra-constraints.c (get_final_hard_regno): Add support for non hard
4171 register numbers. Remove support for subregs.
4172 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
4173 (get_reg_class): Delete removed get_final_hard_regno() argument.
4174 (uses_hard_regs_p): Call get_final_hard_regno().
4175
4176 2016-09-09 Martin Sebor <msebor@redhat.com>
4177
4178 PR c/77520
4179 PR c/77521
4180 * pretty-print.c (pp_quoted_string): New function.
4181 (pp_format): Call it for %c and %s directives.
4182
4183 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
4184
4185 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
4186 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
4187 INITIAL_ELIMINATION_OFFSET) : Update documentation.
4188 * target.def (frame_pointer_required, can_eliminate): Likewise.
4189 * doc/tm.texi: Regenerated.
4190 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
4191 ELIMINABLE_REGS.
4192 * df-scan.c (df_hard_reg_init): Likewise.
4193 * ira.c (ira_setup_eliminable_regset): Likewise.
4194 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
4195 init_elim_table): Likewise.
4196 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
4197 set_initial_elim_offsets, update_eliminables,
4198 init_elim_table): Likewise.
4199 * rtlanal.c (get_initial_register_offset): Likewise.
4200 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
4201 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
4202 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
4203 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
4204 * config/fr30/fr30.h: Fix comment.
4205 * config/frv/frv.c: Likewise.
4206 * config/frv/frv.h: Likewise.
4207 * config/ft32/ft32.h: Likewise.
4208 * config/visium/visium.h: Likewise.
4209 * config/pa/pa64-linux.h: Likewise.
4210 * config/v850/v850.h: Likewise.
4211 * config/cris/cris.c: Likewise.
4212 * config/ia64/ia64.h: Likewise.
4213 * config/moxie/moxie.h: Likewise.
4214 * config/m32r/m32r.h: Likewise.
4215
4216 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
4217
4218 PR target/77267
4219 * config.in: Regenerate.
4220 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
4221 New macro.
4222 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
4223 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
4224 static-libmpxwrappers case.
4225 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
4226 MPX_LD_AS_NEEDED_GUARD_POP.
4227 * configure: Regenerate.
4228 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
4229 defined if linker support "--push-state"/"--pop-state".
4230
4231 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
4232
4233 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
4234
4235 2016-09-09 Joseph Myers <joseph@codesourcery.com>
4236
4237 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
4238 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
4239 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
4240 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
4241 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
4242 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
4243 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
4244 Document.
4245 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
4246 width macros from TS 18661-1.
4247 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
4248
4249 2016-09-08 Jakub Jelinek <jakub@redhat.com>
4250
4251 PR fortran/77516
4252 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
4253 OMP_CLAUSE_SAFELEN_EXPR.
4254
4255 2016-09-07 David Malcolm <dmalcolm@redhat.com>
4256
4257 * Makefile.in (OBJS): Add substring-locations.o.
4258 * langhooks-def.h (class substring_loc): New forward decl.
4259 (lhd_get_substring_location): New decl.
4260 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
4261 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
4262 * langhooks.c (lhd_get_substring_location): New function.
4263 * langhooks.h (class substring_loc): New forward decl.
4264 (struct lang_hooks): Add field get_substring_location.
4265 * substring-locations.c: New file, taking definition of
4266 format_warning_va and format_warning_at_substring from
4267 c-family/c-format.c, making them non-static.
4268 * substring-locations.h (class substring_loc): Move class here
4269 from c-family/c-common.h. Add and rewrite comments.
4270 (format_warning_va): New decl.
4271 (format_warning_at_substring): New decl.
4272 (get_source_location_for_substring): Add comment.
4273
4274 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
4275
4276 * config/i386/i386.c: Add 'U' suffix to processor feature bits
4277 to avoid -Wnarrowing warning.
4278 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
4279 * opts.c: Likewise for SANITIZER_OPT bitmasks.
4280
4281 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
4282
4283 * config/aarch64/aarch64.c (aarch64_legitimize_address):
4284 Avoid use of base_offset if offset already in range.
4285
4286 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
4287
4288 * config/sh/sh-protos.h (struct sh_atomic_model,
4289 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
4290 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
4291 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
4292 * config/sh/sh.h (struct sh_atomic_model,
4293 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
4294 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
4295 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
4296 Guard with __cplusplus.
4297
4298 2016-09-06 Jakub Jelinek <jakub@redhat.com>
4299
4300 PR target/69255
4301 * config/i386/i386.c (ix86_expand_builtin): For builtin with
4302 unsupported or unknown ISA, use expand_call.
4303
4304 2016-09-06 Martin Liska <mliska@suse.cz>
4305
4306 PR gcov-profile/77378
4307 PR gcov-profile/77466
4308 * tree-profile.c (tree_profiling): Detect whether target can use
4309 -fprofile-update=atomic.
4310
4311 2016-09-06 Richard Biener <rguenther@suse.de>
4312
4313 PR tree-optimization/77479
4314 * tree-vrp.c (update_value_range): Extend overflow handling to
4315 VARYING.
4316
4317 2016-09-05 Jakub Jelinek <jakub@redhat.com>
4318
4319 PR target/77476
4320 * config/i386/i386.md (isa): Add x64_avx512bw.
4321 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
4322 (kmov_isa): New mode attr.
4323 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
4324 (*zero_extend<mode>si2): Likewise.
4325 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
4326
4327 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
4328
4329 * doc/invoke.texi (SPU Options): nops -> NOPs.
4330 (x86 Options): Ditto.
4331
4332 2016-09-05 Jakub Jelinek <jakub@redhat.com>
4333
4334 PR middle-end/77475
4335 * toplev.c (process_options): Temporarily set input_location
4336 to UNKNOWN_LOCATION around targetm.target_option.override () call.
4337
4338 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
4339
4340 PR rtl-optimization/77452
4341 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
4342 inner-mode reference to a CONST_VECTOR constant in the constant pool.
4343
4344 2016-09-05 Marek Polacek <polacek@redhat.com>
4345
4346 PR c/77423
4347 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
4348
4349 2016-09-05 Jakub Jelinek <jakub@redhat.com>
4350
4351 PR other/77421
4352 * gensupport.c (alter_output_for_subst_insn): Remove redundant
4353 *insn_out == '*' test. Don't copy unnecessary to yet another
4354 memory buffer, and don't leak it.
4355
4356 PR rtl-optimization/77425
4357 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
4358
4359 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
4360
4361 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
4362
4363 2016-09-02 David Malcolm <dmalcolm@redhat.com>
4364
4365 * common.opt (fdiagnostics-generate-patch): New option.
4366 * diagnostic.c: Include "edit-context.h".
4367 (diagnostic_initialize): Initialize context->edit_context_ptr.
4368 (diagnostic_finish): Delete context->edit_context_ptr.
4369 (diagnostic_report_diagnostic): Add fix-it hints from the
4370 diagnostic to context->edit_context_ptr, if any.
4371 * diagnostic.h (class edit_context): Add forward decl.
4372 (struct diagnostic_context): Add field "edit_context_ptr".
4373 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
4374 -fdiagnostics-generate-patch.
4375 (-fdiagnostics-generate-patch): New item.
4376 * toplev.c: Include "edit-context.h".
4377 (process_options): Set global_dc->edit_context_ptr to a new
4378 edit_context if the options need one.
4379 (toplev::main): Handle -fdiagnostics-generate-patch by using
4380 global_dc->edit_context_ptr.
4381
4382 2016-09-02 Jakub Jelinek <jakub@redhat.com>
4383
4384 PR c/65467
4385 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
4386 map and firstprivate clauses on target construct for _Atomic
4387 qualified decls.
4388 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
4389 on target construct for _Atomic qualified decls.
4390 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
4391 decls.
4392 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
4393 _Atomic qualified arguments not mentioned in uniform clause.
4394
4395 2016-09-02 David Malcolm <dmalcolm@redhat.com>
4396
4397 * Makefile.in (OBJS-libcommon): Add edit-context.o.
4398 * diagnostic-color.c (color_dict): Add "diff-filename",
4399 "diff-hunk", "diff-delete", and "diff-insert".
4400 (parse_gcc_colors): Update default value of GCC_COLORS in comment
4401 to reflect above changes.
4402 * doc/invoke.texi (-fdiagnostics-color): Update description of
4403 default GCC_COLORS, and of the supported capabilities.
4404 * edit-context.c: New file.
4405 * edit-context.h: New file.
4406 * input.c (struct fcache): Add field "missing_trailing_newline".
4407 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
4408 true.
4409 (add_file_to_cache_tab): Likewise.
4410 (fcache::fcache): Likewise.
4411 (get_next_line): Update c->missing_trailing_newline.
4412 (location_missing_trailing_newline): New function.
4413 * input.h (location_missing_trailing_newline): New decl.
4414 * selftest-run-tests.c (selftest::run_tests): Call
4415 edit_context_c_tests.
4416 * selftest.h (edit_context_c_tests): New decl.
4417
4418 2016-09-02 Jakub Jelinek <jakub@redhat.com>
4419 Richard Biener <rguenth@suse.de>
4420
4421 PR tree-optimization/77444
4422 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
4423 as steptype, remove redundant initialization.
4424
4425 2016-09-02 Jakub Jelinek <jakub@redhat.com>
4426
4427 PR sanitizer/77396
4428 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
4429 (sanopt_optimize_walker): Optimize away
4430 __asan_before_dynamic_init (...) followed by
4431 __asan_after_dynamic_init () without intervening memory loads/stores.
4432 * ipa-pure-const.c (special_builtin_state): Handle
4433 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
4434 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
4435
4436 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4437
4438 * cfg.c (free_original_copy_tables): Replace second assignment of
4439 bb_copy = NULL by bb_original = NULL.
4440
4441 2016-09-02 Jakub Jelinek <jakub@redhat.com>
4442
4443 PR other/77421
4444 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
4445 assignment added in r216794.
4446
4447 2016-09-02 David Malcolm <dmalcolm@redhat.com>
4448
4449 * Makefile.in (OBJS): Add typed-splay-tree.o.
4450 * selftest-run-tests.c (selftest::run_tests): Call
4451 typed_splay_tree_c_tests.
4452 * selftest.h (typed_splay_tree_c_tests): New decl.
4453 * typed-splay-tree.c: New file.
4454 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
4455 (typed_splay_tree::max): New method.
4456 (typed_splay_tree::min): New method.
4457 (typed_splay_tree::foreach): New method.
4458 (typed_splay_tree::closure): New struct.
4459 (typed_splay_tree::inner_foreach_fn): New function.
4460
4461 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4462
4463 * ipa-cp.c (ipcp_store_bits_results): Change option name from
4464 -fipa-cp-bit to -fipa-bit-cp.
4465
4466 2016-09-01 Martin Sebor <msebor@redhat.com>
4467
4468 PR tree-optimization/71831
4469 * tree-object-size.h: Return bool instead of the size and add
4470 argument for the size.
4471 * tree-object-size.c (compute_object_offset): Update signature.
4472 (addr_object_size): Same.
4473 (compute_builtin_object_size): Return bool instead of the size
4474 and add argument for the size. Handle POINTER_PLUS_EXPR when
4475 optimization is disabled.
4476 (expr_object_size): Adjust.
4477 (plus_stmt_object_size): Adjust.
4478 (pass_object_sizes::execute): Adjust.
4479 * builtins.c (fold_builtin_object_size): Adjust.
4480 * doc/extend.texi (Object Size Checking): Update.
4481 * ubsan.c (instrument_object_size): Adjust.
4482
4483 2016-09-01 Martin Sebor <msebor@redhat.com>
4484
4485 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
4486 it fits the output of the formatted function regardless of its
4487 arguments.
4488 * gcc/genmodes.c (parser::parse_expr): Same.
4489 * gimplify.c (gimplify_asm_expr): Same.
4490 * passes.c (pass_manager::register_one_dump_file): Same.
4491 * print-tree.c (print_node): Same.
4492
4493 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4494
4495 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
4496
4497 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4498
4499 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
4500
4501 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4502
4503 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
4504 * config/rs6000/vector.md: Ditto.
4505 * config/rs6000/vsx.md: Ditto.
4506
4507 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
4508
4509 * ipa-inline-analysis.c (param_change_prob): Get to the base object
4510 first in all cases.
4511
4512 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4513
4514 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
4515 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
4516 *return_and_restore_gpregs_<mode>_r11,
4517 *return_and_restore_gpregs_<mode>_r12,
4518 *return_and_restore_gpregs_<mode>_r1,
4519 *return_and_restore_fpregs_<mode>_r11,
4520 *return_and_restore_fpregs_<mode>_r12,
4521 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
4522 directly instead of via the "l" constraint. Renumber operands.
4523 Fix whitespace.
4524
4525 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4526
4527 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
4528 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
4529 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
4530 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
4531 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
4532 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
4533 *call_value_nonlocal_darwin64, reload_macho_picbase,
4534 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
4535 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
4536 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
4537 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
4538 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
4539 *save_fpregs_<mode>_r1): Ditto.
4540 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
4541 *return_and_restore_gpregs_spe): Ditto.
4542
4543 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4544
4545 * config/rs6000/rs6000.md
4546 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
4547 the use of the link register.
4548 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
4549
4550 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4551 Michael Meissner <meissner@linux.vnet.ibm.com>
4552
4553 PR target/72827
4554 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
4555 reg+reg addressing for TImode.
4556 (rs6000_legitimate_address_p): Only allow register indirect
4557 addressing for TImode, even without TARGET_QUAD_MEMORY.
4558
4559 2016-09-01 Richard Biener <rguenther@suse.de>
4560
4561 PR middle-end/77436
4562 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
4563 check whether the result fits the desired result type.
4564
4565 2016-09-01 Nathan Sidwell <nathan@acm.org>
4566
4567 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
4568
4569 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
4570
4571 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
4572 New function.
4573 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
4574
4575 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4576
4577 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
4578 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
4579 for comparisons of integer ZERO_EXTEND against zero.
4580
4581 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
4582
4583 * config/i386/i386.c (ix86_option_override_internal): Also disable the
4584 STV pass if -mstackrealign is enabled.
4585
4586 2016-08-31 Ilya Verbin <iverbin@gmail.com>
4587
4588 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
4589 AVX512IFMA.
4590
4591 2016-08-31 David Malcolm <dmalcolm@redhat.com>
4592
4593 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
4594 (layout_range::intersects_line_p): New method.
4595 (test_range_contains_point_for_single_point): Rename to...
4596 (test_layout_range_for_single_point): ...this, and add testing
4597 for layout_range::intersects_line_p.
4598 (test_range_contains_point_for_single_line): Rename to...
4599 (test_layout_range_for_single_line): ...this, and add testing
4600 for layout_range::intersects_line_p.
4601 (test_range_contains_point_for_multiple_lines): Rename to...
4602 (test_layout_range_for_multiple_lines): ...this, and add testing
4603 for layout_range::intersects_line_p.
4604 (layout::layout): Populate m_fixit_hints.
4605 (layout::get_expanded_location): Handle the case of a line-span
4606 for a fix-it hint.
4607 (layout::validate_fixit_hint_p): New method.
4608 (get_line_span_for_fixit_hint): New function.
4609 (layout::calculate_line_spans): Add spans for fixit-hints.
4610 (layout::should_print_annotation_line_p): New method.
4611 (layout::print_any_fixits): Drop param "richloc", instead using
4612 validated fixits in m_fixit_hints. Add "const" to hint pointers.
4613 (diagnostic_show_locus): Avoid printing blank annotation lines.
4614 (selftest::test_diagnostic_context::test_diagnostic_context):
4615 Initialize show_column and start_span.
4616 (selftest::test_diagnostic_context::start_span_cb): New static
4617 function.
4618 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
4619 (selftest::diagnostic_show_locus_c_tests): Update for function
4620 renamings. Call test_diagnostic_show_locus_fixit_lines.
4621
4622 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
4623
4624 PR tree-optimization/73714
4625 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
4626
4627 2016-08-31 David Malcolm <dmalcolm@redhat.com>
4628
4629 * selftest.c: Move "namespace selftest {" to top of file,
4630 removing explicit "selftest::" qualifiers throughout.
4631
4632 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
4633
4634 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
4635 New types.
4636 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
4637 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
4638 Replace builtin with vector extension.
4639 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
4640 New types.
4641 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
4642 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
4643 Replace builtin with vector extension.
4644 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
4645 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
4646 Replace builtin with vector extension.
4647 * config/i386/xmmintrin.h (__m128_u): New type.
4648 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
4649 (_mm_load_ps, _mm_store_ps): Simplify.
4650
4651 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
4652
4653 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
4654
4655 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4656
4657 * diagnostic-show-locus.c (colorizer::begin_state): Support more
4658 than 3 ranges per diagnostic by alternating between color 1 and
4659 color 2.
4660 (layout::layout): Replace use of rich_location::MAX_RANGES
4661 with richloc->get_num_locations ().
4662 (layout::calculate_line_spans): Replace use of
4663 rich_location::MAX_RANGES with m_layout_ranges.length ().
4664 (layout::print_annotation_line): Handle arbitrary numbers of
4665 ranges in caret-printing by defaulting to '^'.
4666 (selftest::test_one_liner_many_fixits): New function.
4667 (test_diagnostic_show_locus_one_liner): Call it.
4668 * diagnostic.c (diagnostic_initialize): Update for renaming
4669 of rich_location::MAX_RANGES to
4670 rich_location::STATICALLY_ALLOCATED_RANGES.
4671 * diagnostic.h (struct diagnostic_context): Likewise.
4672
4673 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4674
4675 * selftest.c (selftest::named_temp_file::named_temp_file): New
4676 ctor.
4677 (selftest::temp_source_file::~temp_source_file): Move to...
4678 (selftest::named_temp_file::~named_temp_file): ...here.
4679 (selftest::test_named_temp_file): New function.
4680 (selftest::selftest_c_tests): Call test_named_temp_file.
4681 * selftest.h (class named_temp_file): New class.
4682 (class temp_source_file): Convert to a subclass of named_temp_file.
4683
4684 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
4685
4686 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
4687 USEs of LR_REGNO in returns and sibcalls.
4688 (rs6000_output_mi_thunk): Similar.
4689 (rs6000_sibcall_aix): Similar.
4690 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
4691 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
4692 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
4693 Remove the USE of LR_REGNO from the patterns as well. Delete an
4694 obsolete comment.
4695 (return_internal_<mode>): Delete.
4696
4697 2016-08-30 Tamar Christina <tamar.christina@arm.com>
4698
4699 * gcc/config/aarch64/aarch64-simd.md
4700 (aarch64_ld2<mode>_dreg_le): New.
4701 (aarch64_ld2<mode>_dreg_be): New.
4702 (aarch64_ld2<mode>_dreg): Removed.
4703 (aarch64_ld3<mode>_dreg_le): New.
4704 (aarch64_ld3<mode>_dreg_be): New.
4705 (aarch64_ld3<mode>_dreg): Removed.
4706 (aarch64_ld4<mode>_dreg_le): New.
4707 (aarch64_ld4<mode>_dreg_be): New.
4708 (aarch64_ld4<mode>_dreg): Removed.
4709 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
4710
4711 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4712
4713 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
4714 redundant location param.
4715 (test_one_liner_fixit_remove): Likewise.
4716 (test_one_liner_fixit_replace): Likewise.
4717 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
4718 * gcc-rich-location.c
4719 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
4720 get_range_from_loc. Drop overload taking a const char *.
4721 * gcc-rich-location.h
4722 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
4723 a const char *.
4724
4725 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
4726
4727 * config/linux.c (linux_libc_has_function): Return true on musl.
4728
4729 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
4730
4731 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
4732
4733 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
4734
4735 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
4736 used for abnormal egdes.
4737
4738 2016-08-30 Jakub Jelinek <jakub@redhat.com>
4739
4740 PR tree-optimization/72866
4741 * tree-vect-patterns.c (search_type_for_mask): Turn into
4742 a small wrapper, move all code to ...
4743 (search_type_for_mask_1): ... this new function. Add caching
4744 and adjust recursive calls.
4745
4746 PR debug/77363
4747 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
4748 instead of lookup_type_die (type_main_variant (type)) even for array
4749 types.
4750
4751 PR middle-end/77377
4752 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
4753 constant pool reference return x instead of c.
4754
4755 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
4756
4757 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
4758 include MQ.
4759
4760 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4761
4762 * input.c
4763 (selftest::test_make_location_nonpure_range_endpoints): Fix
4764 header comment.
4765
4766 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4767
4768 * diagnostic-show-locus.c
4769 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
4770 function.
4771 (selftest::test_diagnostic_show_locus_one_liner): Call it.
4772 * input.c (get_pure_location): Move to libcpp/line-map.c.
4773 * input.h (get_pure_location): Convert decl to an inline function
4774 calling implementation in libcpp.
4775
4776 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
4777
4778 PR target/77403
4779 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
4780 template for intel asm dialect.
4781 (vec_set_hi_<mode><mask_name>): Ditto.
4782
4783 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4784
4785 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
4786 (selftest::fail_formatted): Likewise.
4787
4788 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4789
4790 * input.c (make_location): Call get_start and get_finish
4791 on the endpoints to avoid storing packed ranges or ad-hoc
4792 ranges in them.
4793 (selftest::test_make_location_nonpure_range_endpoints): New function.
4794 (selftest::input_c_tests): Call it.
4795 * input.h (get_start): New inline function.
4796
4797 2016-08-29 Tom de Vries <tom@codesourcery.com>
4798
4799 PR c/77398
4800 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
4801 with assert.
4802
4803 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
4804
4805 * Makefile.in (gcov-iov.h): Add dummy recipe.
4806
4807 2016-08-29 Nathan Sidwell <nathan@acm.org>
4808
4809 * config/nvptx/nvptx.c: #include tree-vrp.h.
4810
4811 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
4812
4813 PR target/77324
4814 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
4815 HIGH+LO construct during reload.
4816
4817 2016-08-28 Tom de Vries <tom@codesourcery.com>
4818
4819 PR lto/70955
4820 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
4821 'sysv_abi va_list' attribute.
4822 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
4823 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
4824 attributes.
4825
4826 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4827
4828 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
4829 * emit-rtl.c (unshare_all_rtl_1): Adjust.
4830 (unshare_all_rtl_again): Likewise.
4831 * function.c (assign_stack_local_1): Likewise.
4832 (assign_stack_temp_for_type): Likewise.
4833
4834 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4835
4836 * cfgbuild.c (make_edges): Adjust.
4837 * cfgrtl.c (can_delete_label_p): Likewise.
4838 * dwarf2cfi.c (create_trace_edges): Likewise.
4839 * except.c (sjlj_emit_dispatch_table): Likewise.
4840 * function.h (struct expr_status): make x_forced_labels a vector.
4841 * jump.c (rebuild_jump_labels_1): Adjust.
4842 * reload1.c (set_initial_label_offsets): Likewise.
4843 * stmt.c (force_label_rtx): Likewise.
4844 (expand_label): Likewise.
4845
4846 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4847
4848 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
4849
4850 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
4851
4852 PR tree-optimization/71077
4853 PR tree-optimization/68542
4854 * fold-const.c (fold_relational_const): Fix folding of
4855 VECTOR_CST comparisons that have a scalar boolean result type.
4856 (selftest::test_vector_folding): New static function.
4857 (selftest::fold_const_c_tests): Call it.
4858
4859 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
4860
4861 * doc/extend.texi (SPU Built-in Functions): Remove stale
4862 references to material formerly at IBM and Sony.
4863
4864 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
4865
4866 PR target/77349
4867 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
4868
4869 2016-08-26 David Malcolm <dmalcolm@redhat.com>
4870
4871 * diagnostic-show-locus.c
4872 (selftest::test_fixit_consolidation): New function.
4873 (selftest::diagnostic_show_locus_c_tests): Call it.
4874 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
4875 constructor based on source_range.
4876
4877 2016-08-26 David Malcolm <dmalcolm@redhat.com>
4878
4879 * diagnostic-color.c (color_dict): Add "fixit-insert" and
4880 "fixit-delete".
4881 (parse_gcc_colors): Update description of default GCC_COLORS.
4882 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
4883 (colorizer::set_fixit_insert): New method.
4884 (colorizer::set_fixit_delete): New method.
4885 (colorizer::get_color_by_name): New method.
4886 (colorizer::STATE_FIXIT_INSERT): New constant.
4887 (colorizer::STATE_FIXIT_DELETE): New constant.
4888 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
4889 fields in favor of new field "m_stop_color". Add fields
4890 "m_fixit_insert" and "m_fixit_delete".
4891 (colorizer::colorizer): Update for above changes. Replace
4892 colorize_start calls with calls to get_color_by_name.
4893 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
4894 STATE_FIXIT_DELETE. Update for field renamings.
4895 (colorizer::finish_state): Simplify by using m_stop_color,
4896 rather than multiple identical "*_ce" fields.
4897 (colorizer::get_color_by_name): New method.
4898 (layout::print_any_fixits): Print insertions and replacements
4899 using the "fixit-insert" color, and deletions using the
4900 "fixit-delete" color.
4901 * doc/invoke.texi (-fdiagnostics-color): Update description of
4902 default GCC_COLORS, and of the supported capabilities.
4903
4904 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
4905
4906 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
4907 current_function_static_stack_size variable with the static
4908 stack frame size of the current function when
4909 flag_stack_usage_info is enabled.
4910
4911 2016-08-26 Nathan Sidwell <nathan@acm.org>
4912
4913 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
4914 assignment inside if condition.
4915
4916 2016-08-26 Richard Biener <rguenther@suse.de>
4917
4918 PR tree-optimization/69047
4919 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
4920 extracts similar to what FRE does.
4921 (non_rewritable_mem_ref_base): Likewise.
4922
4923 2016-08-26 Joseph Myers <joseph@codesourcery.com>
4924
4925 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
4926 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
4927 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4928 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4929 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
4930 Likewise.
4931 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4932 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4933 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4934 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
4935 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4936
4937 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4938
4939 PR target/70473
4940 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
4941 reservation duration to 15 cycles.
4942 (cortex_a8_vfp_macs): Likewise.
4943 (cortex_a8_vfp_macd): Likewise.
4944 (cortex_a8_vfp_divs): Likewise.
4945 (cortex_a8_vfp_divd): Likewise.
4946
4947 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4948
4949 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
4950 (aarch_macro_fusion_pair_p): Use above to avoid early return.
4951
4952 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4953 Martin Jambhor <mjambor@suse.cz>
4954
4955 * common.opt: New option -fipa-bit-cp.
4956 * doc/invoke.texi: Document -fipa-bit-cp.
4957 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
4958 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
4959 * tree-ssa-ccp.h: New header file.
4960 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
4961 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
4962 Replace all occurences of tree parameter by two new params: signop, int.
4963 (bit_value_unop_1): Change to bit_value_unop and export it.
4964 Replace all occurences of tree parameter by two new params: signop,
4965 int.
4966 (bit_value_binop): Change call from bit_value_binop_1 to
4967 bit_value_binop.
4968 (bit_value_assume_aligned): Likewise.
4969 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
4970 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
4971 to ccp_finalize.
4972 (ccp_finalize): Skip processing if val->mask == 0.
4973 * ipa-cp.c: Include tree-ssa-ccp.h
4974 (ipcp_bits_lattice): New class.
4975 (ipcp_param_lattice (bits_lattice): New member.
4976 (print_all_lattices): Call ipcp_bits_lattice::print.
4977 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
4978 (initialize_node_lattices): Likewise.
4979 (propagate_bits_accross_jump_function): New function.
4980 (propagate_constants_accross_call): Call
4981 propagate_bits_accross_jump_function.
4982 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
4983 (ipcp_store_bits_results): New function.
4984 (ipcp_driver): Call ipcp_store_bits_results.
4985 * ipa-prop.h (ipa_bits): New struct.
4986 (ipa_jump_func): Add new member bits of type ipa_bits.
4987 (ipa_param_descriptor): Change decl to decl_or_type.
4988 (ipa_get_param): Change decl to decl_or_type and assert on
4989 PARM_DECL.
4990 (ipa_get_type): New function.
4991 (ipcp_transformation_summary): New member bits.
4992 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
4993 (ipa_populate_param_decls): Likewise.
4994 (ipa_dump_param): Likewise.
4995 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
4996 function.
4997 (ipa_set_jf_unknown): Set ipa_bits::known to false.
4998 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
4999 propagation.
5000 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
5001 (ipa_write_jump_function): Add streaming for ipa_bits.
5002 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
5003 (write_ipcp_transformation_info): Add streaming for ipa_bits
5004 summary for ltrans.
5005 (read_ipcp_transfomration_info): Add support for reading streamed
5006 ipa_bits.
5007 (ipcp_update_bits): New function.
5008 (ipcp_transform_function): Call ipcp_update_bits.
5009
5010 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
5011
5012 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
5013 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
5014
5015 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
5016
5017 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
5018
5019 2016-08-25 Richard Biener <rguenther@suse.de>
5020
5021 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
5022 Only add locations in late dwarf.
5023 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
5024 (dwarf2out_early_finish): But do it here.
5025
5026 2016-08-24 Michael Collison <michael.collison@linaro.org>
5027 Michael Collison <michael.collison@arm.com>
5028
5029 * config/arm/arm-modes.def: Add new condition code mode CC_V
5030 to represent the overflow bit.
5031 * config/arm/arm.c (maybe_get_arm_condition_code):
5032 Add support for CC_Vmode.
5033 (arm_gen_unlikely_cbranch): New function to generate common
5034 rtl conditional branches for overflow patterns.
5035 * config/arm/arm-protos.h: Add prototype for
5036 arm_gen_unlikely_cbranch.
5037 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
5038 addsi3_compareV_upper): New patterns to support signed
5039 builtin overflow add operations.
5040 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
5041 New patterns to support unsigned builtin add overflow operations.
5042 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
5043 builtin overflow subtract operations,
5044 (usubv<mode>4): New patterns to support unsigned builtin subtract
5045 overflow operations.
5046 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
5047 to support builtin overflow negate operations.
5048
5049 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5050
5051 Revert
5052 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5053
5054 * explow.c (get_dynamic_stack_size): Take known alignment of stack
5055 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
5056 needed.
5057
5058 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
5059
5060 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
5061 MULTILIB_OPTIONS should be used. Small wording fixes.
5062 * genmultilib: Memorize set of all option combinations in
5063 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
5064 found in MULTILIB_OPTIONS by checking if option set is listed in
5065 combination_space. Output new and existing error message to stderr.
5066
5067 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
5068
5069 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
5070 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
5071 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
5072 (MULTILIB_REUSE): Remove reuse rules for option set including
5073 -mfpu=fp-armv8 and -mfpu=vfpv4
5074
5075 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
5076
5077 * config/arm/t-rtems: Add vfp multilib.
5078
5079 2016-08-23 Ian Lance Taylor <iant@golang.org>
5080
5081 * config/s390/s390.c (s390_asm_file_start): Call
5082 default_file_start.
5083
5084 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
5085
5086 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
5087 initialization of all 0's to the 0 constant, instead of directly
5088 generating XOR. Add support for V4SImode vector initialization on
5089 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
5090 initialization. Change variables used in V4SFmode vector
5091 intialization. For V4SFmode vector splat on ISA 3.0, make sure
5092 any memory addresses are in index form. Add support for using
5093 VSPLTH/VSPLTB to initialize vector short and vector char vectors
5094 with all of the same element.
5095 (regno_or_subregno): New helper function to return a register
5096 number for either REG or SUBREG.
5097 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
5098 Use regno_or_subregno where possible.
5099 (rs6000_split_v4si_init_di_reg): New helper function to build up a
5100 DImode value from two SImode values in order to generate V4SImode
5101 vector initialization on 64-bit systems with direct move.
5102 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
5103 initialization.
5104 (rtx_is_swappable_p): V4SImode vector initialization insn is not
5105 swappable.
5106 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
5107 declaration.
5108 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
5109 attributes to initialize V8HImode and V16QImode vectors with the
5110 same element.
5111 (VSX_SPLAT_COUNT): Likewise.
5112 (VSX_SPLAT_SUFFIX): Likewise.
5113 (UNSPEC_VSX_VEC_INIT): New unspec.
5114 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
5115 Allow SFmode values to come from Altivec registers.
5116 (vsx_init_v4si): New insn/split for V4SImode vector initialization
5117 on 64-bit systems with direct move.
5118 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
5119 vector initializations, to allow V4SImode vector initializations
5120 on 64-bit systems with direct move.
5121 (vsx_splat_v4si): Likewise.
5122 (vsx_splat_v4si_di): Likewise.
5123 (vsx_splat_v4sf): Likewise.
5124 (vsx_splat_v4sf_internal): Likewise.
5125 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
5126 register classes.
5127 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
5128 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
5129 initializing V8HImode and V16QImode vectors with the same
5130 element.
5131 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
5132 optimization if -maltivec=be.
5133
5134 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
5135
5136 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
5137 attribute for alternatives 3 and 4.
5138
5139 2016-08-23 David Malcolm <dmalcolm@redhat.com>
5140
5141 * selftest.c (selftest::assert_str_contains): New function.
5142 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
5143 * selftest.h (selftest::assert_str_contains): New decl.
5144 (ASSERT_STR_CONTAINS): New macro.
5145
5146 2016-08-23 Richard Biener <rguenther@suse.de>
5147
5148 PR tree-optimization/77286
5149 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
5150 the CFG here.
5151 (vect_transform_loop): Split exit edges of loop and scalar
5152 loop if required and at the appropriate time.
5153
5154 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5155
5156 * explow.c (get_dynamic_stack_size): Take known alignment of stack
5157 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
5158 needed.
5159 Correct a typo in a comment.
5160
5161 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5162
5163 * config/s390/s390.md ("*andc_split"): New splitter for and with
5164 complement.
5165
5166 2016-08-23 Richard Biener <rguenther@suse.de>
5167
5168 PR tree-optimization/27336
5169 * tree-vrp.c (infer_value_range): Handle stmts that can throw
5170 by looking for a non-EH edge.
5171 (process_assert_insertions_for): Likewise.
5172
5173 2016-08-23 Richard Biener <rguenther@suse.de>
5174
5175 PR middle-end/77305
5176 * statistics.c (statistics_counter_event): Robustify against
5177 NULL current_pass.
5178
5179 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
5180
5181 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
5182 for targets amdfam10 and barcelona.
5183
5184 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
5185
5186 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
5187 (zero_extend<mode>di2): Ditto.
5188 (*zero_extend<mode>si2): Ditto.
5189 (*zero_extendqihi2): Ditto.
5190
5191 2016-08-22 Joseph Myers <joseph@codesourcery.com>
5192
5193 PR middle-end/77269
5194 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
5195 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
5196
5197 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
5198
5199 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
5200 identical consecutive elements.
5201 [SSA_NAME]: Print the name's def stmt on its own line. When printing
5202 the node's def stmt, avoid printing an unwanted trailing newline by
5203 replacing the call to print_gimple_stmt() with its inlined body and
5204 adjusting it to not set pp_needs_newline and to call pp_flush()
5205 instead of pp_newline_and_flush().
5206
5207 2016-08-22 Joseph Myers <joseph@codesourcery.com>
5208
5209 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
5210 (float32_type_node, float64_type_node, float32x_type_node)
5211 (float128x_type_node): New macros.
5212 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
5213 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
5214 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
5215 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
5216 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
5217 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
5218 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
5219 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
5220 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
5221 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
5222 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
5223 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
5224 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
5225 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
5226 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
5227 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
5228 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
5229 (copysign, fabs, huge_val, inf, nan, nans): Use it.
5230 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
5231 and copysign.
5232 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
5233 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
5234 * doc/extend.texi (Other Builtins): Document these built-in
5235 functions.
5236 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
5237 for nan and nans.
5238
5239 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
5240
5241 * doc/install.texi (Binaries): www.opencsw.org now uses https.
5242
5243 2016-08-22 Richard Biener <rguenther@suse.de>
5244
5245 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
5246
5247 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
5248
5249 PR target/77270
5250 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
5251 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
5252 non-SSE2 athlons only, otherwise prefer SSE prefetches.
5253
5254 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
5255
5256 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
5257 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
5258 (vrp_visit_switch_stmt): Likewise.
5259 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
5260 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
5261 (vrp_visit_stmt): Use extract_range_from_stmt.
5262 (vrp_visit_phi_node): Use extract_range_from_phi_node.
5263
5264 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
5265
5266 * Makefile.in: Add tree-vrp.h to GTFILES.
5267 * gengtype.c (open_base_files): Add tree-vrp.h.
5268 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
5269 * builtins.c: Likewise.
5270 * fold-const.c: Likewise.
5271 * gimple-builder.c: Likewise.
5272 * gimple-laddress.c: Likewise.
5273 * hsa-gen.c: Likewise.
5274 * internal-fn.c: Likewise.
5275 * ssa.h: Likewise.
5276 * targhooks.c: Liewise,
5277 * tree-ssa-address.c: Likewise.
5278 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
5279 * tree-vrp.c (struct value_range): Move to tree-vrp.h
5280 * tree-vrp.h: New file.
5281
5282 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
5283
5284 PR tree-optimization/61839
5285 * tree-vrp.c (two_valued_val_range_p): New.
5286 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
5287 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
5288 Also Convert VAR BINOP CST where VAR is two-valued to
5289 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
5290
5291 2016-08-19 David Malcolm <dmalcolm@redhat.com>
5292
5293 * diagnostic-show-locus.c
5294 (layout::annotation_line_showed_range_p): New method.
5295 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
5296 Reimplement case fixit_hint::REPLACE to cover removals, and
5297 replacements where the range of the replacement isn't one
5298 of the ranges in the rich_location.
5299 (test_one_liner_fixit_replace): Likewise.
5300 (selftest::test_one_liner_fixit_replace_non_equal_range): New
5301 function.
5302 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
5303 New function.
5304 (selftest::test_diagnostic_show_locus_one_liner): Call the new
5305 functions.
5306 * diagnostic.c (print_parseable_fixits): Remove case
5307 fixit_hint::REMOVE.
5308
5309 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
5310
5311 PR target/77270
5312 * config/i386/i386.c (ix86_option_override_internal): Remove
5313 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
5314 Enable SSE prefetch also for TARGET_PREFETCHWT1.
5315 Do not try to enable TARGET_PRFCHW ISA flag here.
5316 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
5317 Rewrite expander function body.
5318 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
5319
5320 2016-08-19 Joseph Myers <joseph@codesourcery.com>
5321
5322 PR c/32187
5323 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
5324 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
5325 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
5326 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
5327 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
5328 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
5329 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
5330 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
5331 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
5332 tree_index values.
5333 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
5334 macros.
5335 (struct floatn_type_info): New structure type.
5336 (floatn_nx_types): New variable declaration.
5337 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
5338 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
5339 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
5340 * tree.c (floatn_nx_types): New variable.
5341 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
5342 corresponding complex types.
5343 * target.def (floatn_mode): New hook.
5344 * targhooks.c: Include "real.h".
5345 (default_floatn_mode): New function.
5346 * targhooks.h (default_floatn_mode): New prototype.
5347 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
5348 types.
5349 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
5350 effective-target and dg-add-options keywords.
5351 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
5352 Document new effective-target keywords.
5353 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
5354 * doc/tm.texi: Regenerate.
5355 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
5356 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
5357 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
5358 18661-3.
5359 * real.h (struct real_format): Add field ieee_bits.
5360 * real.c (ieee_single_format, mips_single_format)
5361 (motorola_single_format, spu_single_format, ieee_double_format)
5362 (mips_double_format, motorola_double_format)
5363 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
5364 (ieee_extended_intel_128_format)
5365 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
5366 (mips_extended_format, ieee_quad_format, mips_quad_format)
5367 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
5368 (decimal_double_format, decimal_quad_format, ieee_half_format)
5369 (arm_half_format, real_internal_format: Initialize ieee_bits
5370 field.
5371 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
5372 float128_type_node. Set float80_type_node to float64x_type_node
5373 if appropriate and long_double_type_node not appropriate.
5374 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
5375 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
5376 Initialize ieee_bits field.
5377 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
5378 (rs6000_init_builtins): Set ieee128_float_type_node to
5379 float128_type_node.
5380 (rs6000_floatn_mode): New function.
5381
5382 2016-08-19 Jakub Jelinek <jakub@redhat.com>
5383
5384 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
5385 _rdseed64_step): Uglify argument names and/or local variable names
5386 in inline functions.
5387 * config/i386/rtmintrin.h (_xabort): Likewise.
5388 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
5389 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
5390 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
5391 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
5392 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
5393 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
5394 _mm_maskz_ternarylogic_epi32): Likewise.
5395 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
5396 __lwpins32, __lwpins64): Likewise.
5397 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
5398 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
5399 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
5400 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
5401 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
5402 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
5403 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
5404 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
5405 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
5406 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
5407 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
5408 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
5409 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
5410 _mm256_mask_i64gather_epi32): Likewise.
5411 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
5412 * config/i386/ia32intrin.h (__writeeflags): Likewise.
5413 * config/i386/pkuintrin.h (_wrpkru): Likewise.
5414 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
5415 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
5416 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
5417 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
5418 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
5419 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
5420 _mm512_mask_prefetch_i64scatter_ps): Likewise.
5421 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
5422 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
5423 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
5424 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
5425 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
5426 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
5427 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
5428 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
5429
5430 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
5431 returning void.
5432 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
5433 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
5434 Likewise.
5435 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
5436 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
5437 function name.
5438 (_rdpkru_u32): Add space after function name.
5439
5440 * config/i386/t-i386 (i386-c.o): Don't depend on
5441 i386-builtin-types.inc.
5442 (i386.o): Depend on i386-builtin-types.inc.
5443
5444 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
5445
5446 PR target/77281
5447 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
5448 Use const_vec_duplicate to check for duplicated elements.
5449
5450 2016-08-19 Richard Biener <rguenther@suse.de>
5451
5452 PR tree-optimization/77290
5453 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5454 Fix flag_tree_parallelize_loops check.
5455
5456 2016-08-19 Richard Biener <rguenther@suse.de>
5457
5458 * match.pd (x | 0 -> x): Add.
5459
5460 2016-08-19 Richard Biener <rguenther@suse.de>
5461
5462 PR tree-optimization/77286
5463 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
5464 Deal with virtual PHIs being out-of-order.
5465
5466 2016-08-18 David Malcolm <dmalcolm@redhat.com>
5467
5468 * doc/invoke.texi (fverbose-asm): Note that source code lines
5469 are emitted, and provide an example.
5470 * final.c (asm_show_source): New function.
5471 (final_scan_insn): Call asm_show_source.
5472
5473 2016-08-18 David Malcolm <dmalcolm@redhat.com>
5474
5475 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
5476 param with diagnostic_kind.
5477 (class colorizer): Similarly replace field m_diagnostic with
5478 m_diagnostic_kind.
5479 (colorizer::colorizer): Replace diagnostic
5480 param with diagnostic_kind.
5481 (colorizer::begin_state): Update for above field change.
5482 (layout::layout): Replace diagnostic param with rich_location *
5483 and diagnostic_kind.
5484 (diagnostic_show_locus): Replace diagnostic param with richloc
5485 and diagnostic_kind.
5486 (class selftest::test_diagnostic_context): New class.
5487 (selftest::test_diagnostic_show_locus_unknown_location): New
5488 function.
5489 (selftest::test_one_liner_simple_caret): New function.
5490 (selftest::test_one_liner_caret_and_range): New function.
5491 (selftest::test_one_liner_multiple_carets_and_ranges): New
5492 function.
5493 (selftest::test_one_liner_fixit_remove): New function.
5494 (selftest::test_one_liner_fixit_replace): New function.
5495 (selftest::test_diagnostic_show_locus_one_liner): New function.
5496 (selftest::diagnostic_show_locus_c_tests): Call the new test
5497 functions.
5498 * diagnostic.c (diagnostic_initialize): Initialize
5499 colorize_source_p, show_ruler_p and parseable_fixits_p.
5500 (default_diagnostic_finalizer): Update for change to
5501 diagnostic_show_locus.
5502 (diagnostic_append_note): Likewise.
5503 * diagnostic.h (diagnostic_show_locus): Replace
5504 const diagnostic_info * param with location * and diagnostic_t.
5505
5506 2016-08-18 David Malcolm <dmalcolm@redhat.com>
5507
5508 * input.c (saved_line_table): New global.
5509 (class selftest::temp_line_table): Rename to line_table_test and
5510 move declaration to selftest.h, and drop field m_old_line_table.
5511 (selftest::temp_line_table::temp_line_table): Rename ctor to...
5512 (selftest::line_table_test::line_table_test): ...this. Add a
5513 default ctor. Store current value of line_table within
5514 saved_line_table.
5515 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
5516 (selftest::line_table_test::~line_table_test): ...this, and
5517 restore line_table from the saved_line_table, rather than
5518 m_old_line_table.
5519 (selftest::test_accessing_ordinary_linemaps): Update for above
5520 renaming.
5521 (selftest::test_lexer): Likewise.
5522 (struct selftest::lexer_test): Likewise.
5523 (selftest::lexer_test::lexer_test): Likewise.
5524 (selftest::input_c_tests): Move the looping over test cases from
5525 here into...
5526 (selftest::for_each_line_table_case): New function.
5527 * input.h (saved_line_table): New decl.
5528 * selftest.h (struct selftest::line_table_case): New forward decl.
5529 (class selftest::line_table_test): New class, moved here from
5530 selftest::temp_line_table in input.c, and renamed.
5531 (selftest::for_each_line_table_case): New decl.
5532
5533 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
5534
5535 PR target/72839
5536 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
5537
5538 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
5539
5540 PR middle-end/70895
5541 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
5542 enclosing parallel construct for reduction variables on OpenACC loop
5543 directives.
5544
5545 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
5546
5547 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
5548 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
5549 -gdwarf-3.
5550 (function_to_dwarf_procedure): Update comment.
5551
5552 2016-08-18 David Malcolm <dmalcolm@redhat.com>
5553
5554 * input.c (diagnostics_file_cache_forcibly_evict_file): New
5555 function.
5556 * input.h (diagnostics_file_cache_forcibly_evict_file): New
5557 declaration.
5558 * selftest.c (selftest::temp_source_file::~temp_source_file):
5559 Evict m_filename from the diagnostic file cache.
5560
5561 2016-08-18 Richard Biener <rguenther@suse.de>
5562
5563 * tree-pass.h (make_pass_materialize_all_clones): Declare.
5564 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
5565 make_pass_materialize_all_clones): New simple IPA pass encapsulating
5566 clone materialization.
5567 * passes.def (all_late_ipa_passes): Start with
5568 pass_materialize_all_clones.
5569 * cgraphunit.c (symbol_table::compile): Remove call to
5570 materialize_all_clones.
5571 * tree-into-ssa.c: Include statistics.h.
5572 (update_ssa): Count number of times we do incremental/rewrite
5573 SSA update.
5574
5575 2016-08-18 Richard Biener <rguenther@suse.de>
5576
5577 PR tree-optimization/77282
5578 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5579 When doing auto-parallelizing also prevent use of PHIs that
5580 carry dependences across loop backedges.
5581
5582 2016-08-18 Tamar Christina <tamar.christina@arm.com>
5583 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5584
5585 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
5586
5587 2016-08-18 Richard Biener <rguenther@suse.de>
5588
5589 * ssa-iterators.h (ssa_vuse_operand): New inline.
5590 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
5591 (predicate_all_scalar_phis): Use remove_phi_node to remove
5592 phi nodes predicated. Delay removing virtual PHIs.
5593 (predicate_mem_writes): Update virtual operands.
5594 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
5595 (tree_if_conversion): Do not rewrite virtual SSA form.
5596 * tree-phinodes.c (release_phi_node): Make static.
5597 * tree-phinodes.h (release_phi_node): Remove.
5598
5599 2016-08-18 Jakub Jelinek <jakub@redhat.com>
5600
5601 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
5602 codes that appear in bdesc_* arrays, instead include i386-builtin.def
5603 twice to define those.
5604 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
5605 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
5606 bdesc_multi_arg): Define by including i386-builtin.def the third time.
5607 * config/i386/i386-builtin.def: New file.
5608
5609 2016-08-17 David Malcolm <dmalcolm@redhat.com>
5610
5611 * input.c (get_source_range_for_char): Rename to...
5612 (selftest::get_source_range_for_char): ...this, and move within
5613 the #if CHECKING_P guard.
5614 (get_num_source_ranges_for_substring): Rename to...
5615 (selftest::get_num_source_ranges_for_substring): ...this, move
5616 within the #if CHECKING_P guard, and make static.
5617 (selftest::assert_num_substring_ranges): Initialize
5618 actual_num_ranges.
5619
5620 2016-08-18 Alan Modra <amodra@gmail.com>
5621
5622 PR rtl-optimization/72771
5623 * reload.c (find_reloads): Don't assume that a subreg mem is OK
5624 when find_reloads_toplev returns address_reloaded==-1.
5625 (alternative_allows_const_pool_ref): Update comment.
5626
5627 2015-08-17 Alan Hayward <alan.hayward@arm.com>
5628
5629 PR tree-optimization/71752
5630 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
5631 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
5632
5633 2016-08-17 Jakub Jelinek <jakub@redhat.com>
5634
5635 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
5636 instead of testing ECF_NORETURN bit in gimple_call_flags.
5637 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
5638 * predict.c (tree_bb_level_predictions): Likewise.
5639 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
5640
5641 PR middle-end/77259
5642 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
5643 turning a call into __builtin_unreachable-like noreturn call, adjust
5644 gimple_call_set_fntype.
5645 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
5646 gimple_call_fntype has void return type.
5647
5648 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
5649
5650 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
5651 maybe_lookup_decl, to handle nested acc loop directives.
5652
5653 2016-08-17 Richard Biener <rguenther@suse.de>
5654
5655 PR tree-optimization/76490
5656 * tree-vrp.c (update_value_range): Preserve overflow infinities
5657 when intersecting with ranges from get_range_info.
5658 (operand_less_p): Handle overflow infinities correctly.
5659 (value_range_constant_singleton): Use vrp_operand_equal_p
5660 to handle overflow max/min correctly.
5661 (vrp_valueize): Likewise.
5662 (union_ranges): Likewise.
5663 (intersect_ranges): Likewise.
5664 (vrp_visit_phi_node): Improve iteration limitation to only
5665 apply when we'll possibly re-visit the PHI via a changed argument
5666 on the backedge.
5667
5668 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
5669
5670 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
5671 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
5672 rather than those that should not be built.
5673
5674 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
5675
5676 PR target/66488
5677 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
5678
5679 2016-08-17 Richard Biener <rguenther@suse.de>
5680
5681 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
5682 (verify_vssa): New function verifying virtual SSA form.
5683 (verify_ssa): Call it.
5684 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
5685 Do not apply loop-closed SSA handling to virtuals.
5686 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
5687 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
5688 when rewriting their symbol.
5689 (prepare_def_site_for): Likewise.
5690 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
5691 operands of moved stmts.
5692
5693 2016-08-17 Richard Biener <rguenther@suse.de>
5694
5695 PR tree-optimization/23855
5696 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
5697 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
5698 find guards to hoist. Do not update SSA form but rewrite virtuals
5699 into loop closed SSA.
5700 (find_loop_guard): Adjust to skip already hoisted guards. Do
5701 not mark virtuals for renaming or update SSA form.
5702
5703 2016-08-17 Martin Liska <mliska@suse.cz>
5704
5705 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
5706 a LONG_LONG_TYPE_SIZE comparison.
5707 * gcov-io.h: Remove macro definitions.
5708 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
5709 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
5710 comparison.
5711
5712 2016-08-16 Jakub Jelinek <jakub@redhat.com>
5713
5714 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
5715 that builtins not mentioned in bdesc_* arrays come first, then
5716 the ones mentioned in bdesc_* arrays in the order they appear in
5717 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
5718 IX86_BUILTIN__BDESC_*_LAST enumerator.
5719 (bdesc_mpx): Fix up a comment typo.
5720 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
5721 __builtin_ia32_vpcomneu[bwdq] builtins.
5722 (BDESC_VERIFY, BDESC_VERIFYS): Define.
5723 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
5724 enum ix86_builtins ordering.
5725 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
5726 for direct bdesc_* array member access instead of searching all the
5727 arrays until an fcode match is found.
5728
5729 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
5730
5731 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
5732 pattern as define_insn_and_split. Split insn before reload to
5733 ashl<mode>3_1.
5734 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
5735 <shift_insn><mode>3_1.
5736 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
5737 <rotate_insn><mode>3_1.
5738
5739 2016-08-16 David Malcolm <dmalcolm@redhat.com>
5740
5741 PR c/72857
5742 * input.c (get_source_range_for_substring): Rename to...
5743 (get_source_location_for_substring): ...this, adding param
5744 "caret_idx", and converting output param from source_range * to
5745 location_t *.
5746 (get_source_range_for_char): New function.
5747 (get_num_source_ranges_for_substring): Update comment to reflect
5748 above renaming.
5749 (assert_char_at_range): Update to use get_source_range_for_char
5750 rather than get_source_range_for_substring.
5751 (test_lexer_string_locations_concatenation_2): Likewise.
5752 * substring-locations.h (get_source_range_for_substring): Rename
5753 to...
5754 (get_source_location_for_substring): ...this, and adding param
5755 "caret_idx", and converting output param from source_range * to
5756 location_t *.
5757
5758 2016-08-16 David Malcolm <dmalcolm@redhat.com>
5759
5760 * input.c (class selftest::temp_source_file): Move to
5761 selftest.h.
5762 (selftest::temp_source_file::temp_source_file): Move to
5763 selftest.c.
5764 (selftest::temp_source_file::~temp_source_file): Likewise.
5765 * selftest.c (selftest::temp_source_file::temp_source_file): Move
5766 here from input.c.
5767 (selftest::temp_source_file::~temp_source_file): Likewise.
5768 * selftest.h (class selftest::temp_source_file): Move here from
5769 input.c
5770
5771 2016-08-16 Jakub Jelinek <jakub@redhat.com>
5772
5773 PR target/71910
5774 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
5775 inlining, add cgraph edge for the added __builtin_unreachable call.
5776
5777 PR middle-end/67485
5778 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
5779 only cast it to SHWI for the final comparison.
5780
5781 2016-08-16 Martin Liska <mliska@suse.cz>
5782
5783 PR gcov-profile/36412
5784 * doc/gcov.texi: Document --hash-filenames(-x).
5785 * gcov.c (print_usage): Add the option.
5786 (process_args): Process the option, sort options alphabetically.
5787 (md5sum_to_hex): New function.
5788 (make_gcov_file_name): Do the md5sum and append it to a
5789 filename.
5790
5791 2016-08-16 Bin Cheng <bin.cheng@arm.com>
5792
5793 PR tree-optimization/69848
5794 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
5795 and swtich operands to avoid additional NOT instruction.
5796 (vcond<v_cmp_mixed><mode>): Ditto.
5797 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
5798
5799 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
5800
5801 * doc/install.texi (*-*-solaris2*): Adjust latest change.
5802
5803 2016-08-16 Richard Biener <rguenther@suse.de>
5804
5805 PR tree-optimization/76783
5806 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
5807 BB visited flags at start.
5808
5809 2016-08-16 Bin Cheng <bin.cheng@arm.com>
5810
5811 PR tree-optimization/72817
5812 PR tree-optimization/73450
5813 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
5814 multiple_of_p for adjusted IV.base.
5815
5816 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
5817
5818 PR target/72867
5819 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
5820 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
5821 for !flag_finite_math_only or flag_signed_zeros.
5822 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
5823 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
5824 depend on flag_finite_math_only.
5825 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
5826 New insn pattern.
5827 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
5828 (*ieee_smin<mode>3): Ditto.
5829 (*ieee_smax<mode>3): Ditto.
5830 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
5831 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
5832 flag_signed_zeros.
5833 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
5834 depend on flag_finite_math_only.
5835 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
5836 (*mmx_<code>v2sf3): Remove.
5837 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
5838 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
5839 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
5840
5841 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
5842
5843 PR rtl-optimization/73650
5844 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
5845 it is not a simple move.
5846
5847 2016-08-15 Martin Liska <mliska@suse.cz>
5848
5849 PR driver/72765
5850 * gcc.c (do_spec_1): Call save_string with the right size.
5851 (save_string): Do an assert about string we copy.
5852
5853 2016-08-15 Richard Biener <rguenther@suse.de>
5854
5855 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
5856 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
5857 TV_MACH_DEP.
5858 (pass_data_stv): Likewise.
5859
5860 2016-08-15 Richard Biener <rguenther@suse.de>
5861
5862 PR tree-optimization/73434
5863 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
5864 TBAA info on the base when forwarding a non-invariant address.
5865
5866 2016-08-15 Jakub Jelinek <jakub@redhat.com>
5867
5868 * dwarf2out.c (struct checksum_attributes): Add
5869 at_string_length_bit_size and at_string_length_byte_size fields.
5870 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
5871 and DW_AT_string_length_byte_size.
5872 (die_checksum_ordered): Handle at_string_length_bit_size and
5873 at_string_length_byte_size.
5874 (gen_array_type_die): For dwarf_version >= 5 emit
5875 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
5876 (adjust_string_types): For dwarf_version >= 5 remove
5877 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
5878 (resolve_addr): Likewise.
5879
5880 PR debug/71906
5881 * dwarf2out.c (string_types): New variable.
5882 (gen_array_type_die): Change early_dwarf handling of
5883 DW_AT_string_length, create DW_OP_call4 referencing the
5884 length var temporarily. Handle parameters that are pointers
5885 to string length.
5886 (adjust_string_types): New function.
5887 (gen_subprogram_die): Temporarily set string_types to local var,
5888 call adjust_string_types if needed.
5889 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
5890 New functions.
5891 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
5892
5893 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
5894
5895 * doc/install.texi (*-*-solaris2*): Fix version number and document
5896 requirement on GNU make for building libjava with the Solaris linker.
5897
5898 2016-08-15 Martin Liska <mliska@suse.cz>
5899 Jakub Jelinek <jakub@redhat.com>
5900
5901 PR tree-optimization/72824
5902 * tree-loop-distribution.c (const_with_all_bytes_same)
5903 <case VECTOR_CST>: Fix a typo.
5904
5905 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
5906
5907 PR target/76342
5908 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
5909 Renamed from _mm512_undefined_si512.
5910 (_mm_undefined_si512): New definition.
5911
5912 2016-08-13 Richard Biener <rguenther@suse.de>
5913
5914 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
5915 into PHIs and update the lattice for its def.
5916
5917 2016-08-12 Jakub Jelinek <jakub@redhat.com>
5918
5919 PR c/71512
5920 * ubsan.c (instrument_si_overflow): Pass true instead of false
5921 to gsi_replace.
5922 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
5923 of bbs. Return TODO_cleanup_cfg if any returned true.
5924
5925 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5926
5927 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
5928 ISA 3.0 MTVSRDD instruction.
5929 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
5930 vecperm.
5931
5932 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
5933
5934 PR tree-optimization/71083
5935 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
5936 bitfield access when possible.
5937
5938 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
5939
5940 PR middle-end/71654
5941 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
5942 sign-changing cast from a shorter unsigned type to a wider
5943 signed type.
5944
5945 2016-08-12 Jakub Jelinek <jakub@redhat.com>
5946
5947 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
5948 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
5949 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
5950
5951 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5952
5953 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
5954 Correct costs for vec_construct.
5955
5956 2016-08-12 Bin Cheng <bin.cheng@arm.com>
5957
5958 PR tree-optimization/69848
5959 * tree-vectorizer.h (enum vect_def_type): New condition reduction
5960 type CONST_COND_REDUCTION.
5961 * tree-vect-loop.c (vectorizable_reduction): Support new condition
5962 reudction type CONST_COND_REDUCTION.
5963
5964 2016-08-12 Richard Biener <rguenther@suse.de>
5965
5966 PR tree-optimization/57326
5967 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
5968 returning an SSA name.
5969 (phi_translate_1): When fully_constant_expression returns a NAME
5970 make sure we have a leader for it.
5971
5972 2016-08-12 Martin Liska <mliska@suse.cz>
5973 Adam Fineman <afineman@afineman.com>
5974
5975 * gcov.c (process_file): Create .gcov file when .gcda
5976 file is missing.
5977
5978 2016-08-12 Marek Polacek <polacek@redhat.com>
5979
5980 PR c/7652
5981 * alias.c (find_base_value): Adjust fall through comment.
5982 * cfgexpand.c (expand_debug_expr): Likewise.
5983 * combine.c (find_split_point): Likewise.
5984 (expand_compound_operation): Likewise. Add FALLTHRU.
5985 (make_compound_operation): Adjust fall through comment.
5986 (canon_reg_for_combine): Add FALLTHRU.
5987 (force_to_mode): Adjust fall through comment.
5988 (simplify_shift_const_1): Likewise.
5989 (simplify_comparison): Likewise.
5990 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
5991 FALLTHRU.
5992 * config/aarch64/predicates.md: Likewise.
5993 * config/i386/i386.c (function_arg_advance_32): Likewise.
5994 (ix86_gimplify_va_arg): Likewise.
5995 (print_reg): Likewise.
5996 (ix86_print_operand): Likewise.
5997 (ix86_build_const_vector): Likewise.
5998 (ix86_expand_branch): Likewise.
5999 (ix86_sched_init_global): Adjust fall through comment.
6000 (ix86_expand_args_builtin): Add FALLTHRU.
6001 (ix86_expand_builtin): Likewise.
6002 (ix86_expand_vector_init_one_var): Likewise.
6003 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
6004 (rs6000_adjust_cost): Likewise.
6005 (insn_must_be_first_in_group): Likewise.
6006 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
6007 * dbxout.c (dbxout_symbol): Adjust fall through comment.
6008 * df-scan.c (df_uses_record): Likewise.
6009 * dojump.c (do_jump): Add FALLTHRU.
6010 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
6011 comment.
6012 (resolve_args_picking_1): Adjust fall through comment.
6013 (loc_list_from_tree_1): Likewise.
6014 * expmed.c (make_tree): Likewise.
6015 * expr.c (expand_expr_real_2): Add FALLTHRU.
6016 (expand_expr_real_1): Likewise. Adjust fall through comment.
6017 * fold-const.c (const_binop): Adjust fall through comment.
6018 (fold_truth_not_expr): Likewise.
6019 (fold_cond_expr_with_comparison): Add FALLTHRU.
6020 (fold_binary_loc): Likewise.
6021 (contains_label_1): Adjust fall through comment.
6022 (multiple_of_p): Likewise.
6023 * gcov-tool.c (process_args): Add FALLTHRU.
6024 * genattrtab.c (check_attr_test): Likewise.
6025 (write_test_expr): Likewise.
6026 * genconfig.c (walk_insn_part): Likewise.
6027 * genpreds.c (validate_exp): Adjust fall through comment.
6028 (needs_variable): Likewise.
6029 * gensupport.c (get_alternatives_number): Add FALLTHRU.
6030 (subst_dup): Likewise.
6031 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
6032 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
6033 (gimplify_scan_omp_clauses): Add FALLTHRU.
6034 (goa_stabilize_expr): Likewise.
6035 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
6036 through comment.
6037 * hsa-gen.c (get_address_from_value): Likewise.
6038 * ipa-icf.c (sem_function::hash_stmt): Likewise.
6039 * ira.c (ira_setup_alts): Add FALLTHRU.
6040 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
6041 comment.
6042 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
6043 * opts.c (common_handle_option): Likewise.
6044 * read-rtl.c (read_rtx_code): Likewise.
6045 * real.c (round_for_format): Likewise.
6046 * recog.c (asm_operand_ok): Likewise.
6047 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
6048 * reload1.c (set_label_offsets): Likewise.
6049 (eliminate_regs_1): Likewise.
6050 (reload_reg_reaches_end_p): Likewise.
6051 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
6052 (rtx_cost): Likewise.
6053 * sched-rgn.c (is_exception_free): Likewise.
6054 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
6055 * stor-layout.c (int_mode_for_mode): Likewise.
6056 * toplev.c (print_to_asm_out_file): Likewise.
6057 (print_to_stderr): Likewise.
6058 * tree-cfg.c (gimple_verify_flow_info): Likewise.
6059 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
6060 (chrec_fold_multiply): Likewise.
6061 (evolution_function_is_invariant_rec_p): Likewise.
6062 (for_each_scev_op): Likewise.
6063 * tree-data-ref.c (siv_subscript_p): Likewise.
6064 (get_references_in_stmt): Likewise.
6065 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
6066 (substitute_in_expr): Likewise.
6067 (type_cache_hasher::equal): Likewise.
6068 (walk_type_fields): Likewise.
6069 * var-tracking.c (adjust_mems): Add FALLTHRU.
6070 (set_dv_changed): Adjust fall through comment.
6071 * varasm.c (default_function_section): Add FALLTHRU.
6072
6073 2016-08-12 Marek Polacek <polacek@redhat.com>
6074
6075 PR c/7652
6076 * tree-complex.c (expand_complex_division): Add missing break.
6077
6078 2016-08-12 Richard Biener <rguenther@suse.de>
6079
6080 * passes.c (execute_todo): Do not push/pop TV_TODO.
6081 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
6082 (execute_one_pass): Likewise.
6083 * common.opt (ftime-report-details): New switch.
6084 * doc/invoke.texi (ftime-report-details): Document.
6085 * timevar.h (timer::print_row): Adjust signature.
6086 (timer::all_zero): New static helper.
6087 (timer::child_map_t): New typedef.
6088 (timer::time_var_def): Add children field.
6089 * timevar.c (timer::named_items::print): Adjust.
6090 (timer::~timer): Free timevar recorded children.
6091 (timer::pop_internal): When -ftime-report-details record
6092 time spent in sub-timevars.
6093 (timer::print_row): Adjust.
6094 (timer::print): Print sub-timevar stats, use all_zero.
6095 * timevar.def (TV_TODO): Remove.
6096
6097 2016-08-12 Richard Biener <rguenther@suse.de>
6098
6099 PR tree-optimization/72851
6100 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
6101 worklists to use bitmaps indexed in execution order.
6102 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
6103 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
6104 (cfg_blocks): Make a bitmap.
6105 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
6106 New globals.
6107 (cfg_blocks_empty_p): Adjust.
6108 (cfg_blocks_add): Likewise.
6109 (cfg_blocks_get): Likewise.
6110 (add_ssa_edge): Likewise.
6111 (add_control_edge): Likewise.
6112 (simulate_stmt): Likewise.
6113 (process_ssa_edge_worklist): Likewise.
6114 (simulate_block): Likewise.
6115 (ssa_prop_init): Compute PRE order and stmt UIDs.
6116 (ssa_prop_fini): Adjust.
6117 (ssa_propagate): Adjust.
6118
6119 2016-08-12 Richard Biener <rguenther@suse.de>
6120
6121 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
6122 the currently executable edges have fixed ranges. Always
6123 go through update_value_range.
6124
6125 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
6126
6127 PR debug/63240
6128 * langhooks-def.h
6129 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
6130 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
6131 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
6132 (LANG_HOOKS_DECLS): Add it.
6133 * langhooks.h (struct lang_hooks_for_decls): Add
6134 function_decl_defaulted. Const_tree-ify
6135 function_decl_explicit_p and function_decl_deleted_p.
6136 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
6137 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
6138 also at strict DWARF v5.
6139
6140 PR debug/55641
6141 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
6142 TYPE_QUAL_CONST in reference-typed decls.
6143
6144 PR debug/49366
6145 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
6146 in DW_OP_pieces, just enough to handle pointers to member
6147 functions.
6148 (gen_remaining_tmpl_value_param_die_attribute): Use a location
6149 expression on DWARFv5 if a constant value doesn't work.
6150
6151 2016-08-11 David Malcolm <dmalcolm@redhat.com>
6152
6153 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
6154 * selftest.c (selftest::test_assertions): New function.
6155 (selftest::selftest_c_tests): New function.
6156 * selftest.h (selftest::selftest_c_tests): New declaration.
6157
6158 2016-08-11 Richard Biener <rguenther@suse.de>
6159 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6160
6161 PR rtl-optimization/72855
6162 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
6163
6164 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6165
6166 PR target/72863
6167 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
6168 (vsx_store_<mode>): Likewise.
6169
6170 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
6171
6172 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
6173 TImode CONST_WIDE_INT store.
6174 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
6175
6176 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
6177
6178 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
6179 mode if unaligned SSE load and store are optimal.
6180
6181 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
6182
6183 PR tree-optimization/71083
6184 * tree-predcom.c (ref_at_iteration): Correctly align the
6185 reference type.
6186
6187 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6188
6189 * config/s390/s390-builtin-types.def: Add INT128 types.
6190 * config/s390/s390-builtins.def: Add INT128 variants for the add
6191 sub low-level builtins dealing with TImode.
6192 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
6193 via subreg when expanding a builtin.
6194 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
6195 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
6196 Fix comment.
6197 * config/s390/vecintrin.h: Adjust builtin names accordingly.
6198 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
6199 ("vec_addc<mode>", "vec_addc_u128"): Merge to
6200 "vacc<bhfgq>_<mode>".
6201 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
6202 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
6203 ("vec_subc<mode>", "vec_subc_u128"): Merge to
6204 "vscbi<bhfgq>_<mode>".
6205 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
6206 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
6207
6208 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6209
6210 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
6211
6212 2016-08-11 Bin Cheng <bin.cheng@arm.com>
6213
6214 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
6215 unused declaration.
6216 (vcond<v_cmp_mixed><mode>): Ditto.
6217 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
6218
6219 2016-08-11 Bin Cheng <bin.cheng@arm.com>
6220
6221 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
6222 variable explicitly, also assert on it before use.
6223
6224 2016-08-11 Richard Biener <rguenther@suse.de>
6225
6226 PR tree-optimization/72772
6227 * cfgloopmanip.c (create_preheader): Use split_edge if there
6228 is a single loop entry, avoiding degenerate PHIs.
6229
6230 2016-08-11 Richard Biener <rguenther@suse.de>
6231
6232 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
6233 unconditional TODO_cleanup_cfg.
6234 (pass_thread_jumps::execute): Initialize loops, perform a CFG
6235 cleanup only if we threaded a jump.
6236
6237 2016-08-11 Alan Modra <amodra@gmail.com>
6238
6239 PR target/71680
6240 * lra-constraints.c (simplify_operand_subreg): Allow subreg
6241 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
6242 slow. Emit two reloads for slow mem case, first loading in
6243 fast innermode, then converting to required mode.
6244
6245 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
6246
6247 * config/rs6000/altivec.h (vec_extract_exp): New macro.
6248 (vec_extract_sig): New macro.
6249 (vec_insert_exp): New macro.
6250 (vec_test_data_class): New macro.
6251 (scalar_extract_exp): New macro.
6252 (scalar_extract_sig): New macro.
6253 (scalar_insert_exp): New macro.
6254 (scalar_test_data_class): New macro.
6255 (scalar_test_neg): New macro.
6256 (scalar_cmp_exp_gt): New macro.
6257 (scalar_cmp_exp_lt): New macro.
6258 (scalar_cmp_exp_eq): New macro.
6259 (scalar_cmp_exp_unordered): New macro.
6260 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
6261 to enforce constraint that operand is a 7-bit unsigned literal.
6262 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
6263 for power9 built-ins.
6264 (BU_P9V_VSX_2): Likewise.
6265 (BU_P9V_64BIT_VSX_2): Likewise.
6266 (VSEEDP): Add scalar extract exponent support.
6267 (VSEESP): Add scalar extract signature support.
6268 (VSTDCNDP): Add scalar test negative support.
6269 (VSTDCNSP): Likewise.
6270 (VSIEDP): Add scalar insert exponent support.
6271 (VSCEDPGT): Add scalar compare exponent greater than support.
6272 (VSCEDPLT): Add scalar compare exponent less than support.
6273 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
6274 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
6275 (VSTDCDP): Add scalar test data class support.
6276 (VSTDCSP): Likewise.
6277 (VSEEDP): Add overload support for scalar extract exponent
6278 operation.
6279 (VSESDP): Add overload support for scalar extract signature
6280 operation.
6281 (VSTDCN): Add overload support for scalar test negative
6282 operation.
6283 (VSTDCNDP): Add overload support for scalar test negative
6284 operation.
6285 (VSTDCNSP): Add overload support for scalar test negative
6286 operation.
6287 (VSIEDP): Add overload support for scalar insert exponent
6288 operation.
6289 (VSTDC): Add overload support for scalar test data class
6290 operation.
6291 (VSTDCDP): Add overload support for scalar test data class
6292 operation.
6293 (VSTDCSP): Add overload support for scalar test data class
6294 opreation.
6295 (VSCEDPGT): Add overload support for scalar compare exponent
6296 greater than operation.
6297 (VSCEDPLT): Add overload support for scalar compare exponent
6298 less than operation.
6299 (VSCEDPEQ): Add overload support for scalar compare exponent
6300 test-for-equality operation.
6301 (VSCEDPUO): Add overload support for scalar compare exponent
6302 test-for-unordered operation.
6303 (VEEDP): Add vector extract exponent support.
6304 (VEESP): Likewise.
6305 (VESDP): Add vector extract significand support.
6306 (VESSP): Likewise.
6307 (VIEDP): Add vector insert exponent support.
6308 (VIESP): Likewise.
6309 (VTDCDP): Add vector test data class support.
6310 (VTDCSP): Likewise.
6311 (VES): Add overload support for vector extract significand operation.
6312 (VESDP): Likewise.
6313 (VESSP): Likewise
6314 (VEE): Add overload support for vector extract exponent operation.
6315 (VEEDP): Likewise.
6316 (VEESP): Likewise.
6317 (VTDC): Add overload support for vector test data class operation.
6318 (VTDCDP): Likewise.
6319 (VTDCSP): Likewise.
6320 (VIE): Add overload support for vector insert exponent operation.
6321 (VIEDP): Likewise.
6322 (VIESP): Likewise.
6323 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6324 overloaded binary floating point functions.
6325 (altivec_resolve_overloaded_builtin): Improve error messages to
6326 distinguish between functions not supported in the current
6327 compiler configuration and functions that were invoked with an
6328 invalid parameter combination, and include the built-in function
6329 name in both error messages.
6330 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
6331 New prototype.
6332 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
6333 function.
6334 (rs6000_expand_binop_builtin): Add check to enforce that argument
6335 2 of the test data class operations is a 7-bit unsigned literal.
6336 (rs6000_invalid_builtin): Add code to issue an error message if a
6337 built-in function that requires the power9_vector and -m32
6338 command-line options is compiled without these options.
6339 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
6340 (UNSPEC_VSX_SXSIGDP): New value.
6341 (UNSPEC_VSX_SXSIGPDP): New value.
6342 (UNSPEC_VSX_SIEXPDP): New value.
6343 (UNSPEC_VSX_SCMPEXPDP): New value.
6344 (UNSPEC_VSX_STSTDC): New value.
6345 (UNSPEC_VSX_VXEXP): New value.
6346 (UNSPEC_VSX_VXSIG): New value.
6347 (UNSPEC_VSX_VIEXP): New value.
6348 (UNSPEC_VSX_VTSTDC): New value.
6349 (xsxexpdp): New insn for scalar extract exponent.
6350 (xsxsigdp): New insn for scalar extract significand.
6351 (xsiexpdp): New insn for scalar insert exponent.
6352 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
6353 (*xscmpexpdp): New insn for scalar compare exponents.
6354 (xststdc<Fvsx): New expansion for both single- and
6355 double-precision scalar test data class operations.
6356 (xststdcneg<Fvsx>): New expansion for both single- and
6357 double-precision scalar test for negative value operations.
6358 (*xststdc<Fvsx>): New insn for scalar test data class
6359 operation.
6360 (xvxexp<VSs>): New insn for single- and double-precision
6361 vector extract exponent operation.
6362 (xvxsig<VSs>): New insn for single- and double-precision
6363 vector extract significand operation.
6364 (xviexp<VSs>): New insn for single- and double-precision
6365 vector insert exponent operation.
6366 (xvtstdc<VSs>): New insn for single- and double-precision
6367 vector test data class operation.
6368 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
6369 built-in functions to represent the Power9 binary floating-point
6370 support instructions.
6371
6372 2016-08-10 bin cheng <bin.cheng@arm.com>
6373
6374 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
6375
6376 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
6377 Renlin Li <renlin.li@arm.com>
6378 Bin Cheng <bin.cheng@arm.com>
6379
6380 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
6381 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
6382 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
6383 (aarch64_vcond_internal<mode><mode>): Delete pattern.
6384 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
6385 (vcond<v_cmp_result><mode>): Ditto.
6386 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
6387 (vcondu<mode><mode>): Ditto.
6388 (vcond<v_cmp_mixed><mode>): New pattern.
6389 (vcondu<mode><v_cmp_mixed>): New pattern.
6390 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
6391 of aarch64_vcond_internal.
6392
6393 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
6394 Renlin Li <renlin.li@arm.com>
6395 Bin Cheng <bin.cheng@arm.com>
6396
6397 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
6398 (vec_cmp<mode><v_cmp_result>): New pattern.
6399 (vec_cmpu<mode><mode>): New pattern.
6400 (vcond_mask_<mode><v_cmp_result>): New pattern.
6401
6402 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
6403
6404 PR tree-optimization/71734
6405 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
6406 REF_LOOP, invoke ref_indep_loop_p_1.
6407 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
6408 to ref_indep_loop_p.
6409 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
6410 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
6411 is inside LOOP, do not cache dpendence value for loops with
6412 non-zero SAFELEN.
6413 (ref_indep_loop_p_2): Delete function.
6414 (can_sm_ref_p): Pass LOOP as additional argument to
6415 ref_indep_loop_p.
6416
6417 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
6418
6419 PR target/72853
6420 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
6421 being an offsettable address.
6422
6423 2016-08-10 Martin Liska <mliska@suse.cz>
6424
6425 PR gcov-profile/58306
6426 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
6427 atomic variants of profile update functions.
6428
6429 2016-08-10 Martin Liska <mliska@suse.cz>
6430
6431 Cherry picked (and modified) from google-4_7 branch
6432 2012-12-26 Rong Xu <xur@google.com>
6433 * common.opt (fprofile-update): Add new flag.
6434 * coretypes.h: Define enum profile_update.
6435 * doc/invoke.texi: Document -fprofile-update.
6436 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
6437 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
6438 * tree-profile.c (gimple_init_edge_profiler): Generate
6439 also atomic profiler update.
6440 (gimple_gen_edge_profiler): Likewise.
6441
6442 2016-08-10 David Malcolm <dmalcolm@redhat.com>
6443
6444 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
6445 stack_usage_file to NULL after fclose calls.
6446
6447 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6448
6449 PR target/71873
6450 * reload.c (push_reload): Compute subreg_in_class for
6451 subregs of constants and plus expressions. Remove special
6452 handling of SYMBOL_REFs.
6453
6454 2016-08-10 Alan Modra <amodra@gmail.com>
6455
6456 PR target/71680
6457 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
6458 SImode for TARGET_E500_DOUBLE when given SImode.
6459
6460 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
6461
6462 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
6463 unused variable __O.
6464
6465 2016-08-09 Martin Liska <mliska@suse.cz>
6466
6467 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
6468 _gcov_reset to __gcov_reset.
6469 * doc/gcov-tool.texi: Fix typo.
6470
6471 2016-08-09 Martin Liska <mliska@suse.cz>
6472
6473 * value-prof.c (gimple_divmod_values_to_profile): Do not
6474 instrument MOD histogram if a value is not a SSA name.
6475
6476 2016-08-09 Martin Liska <mliska@suse.cz>
6477
6478 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
6479 values.
6480
6481 2016-08-09 Renlin Li <renlin.li@arm.com>
6482
6483 PR middle-end/64971
6484 * calls.c (prepare_call_address): Convert funexp to Pmode when
6485 necessary.
6486 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
6487 (sibcall_value): Likewise.
6488
6489 2016-08-09 Marek Polacek <polacek@redhat.com>
6490
6491 PR c/7652
6492 * cselib.c (cselib_expand_value_rtx_1): Add return.
6493 * gengtype.c (dbgprint_count_type_at): Likewise.
6494 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
6495 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
6496
6497 2016-08-09 Martin Jambor <mjambor@suse.cz>
6498
6499 PR ipa/71981
6500 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
6501 if instance is a MEM_REF.
6502
6503 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
6504
6505 PR target/72843
6506 * config/i386/i386.md (*movtf_internal): Use
6507 lra_in_progress || reload_completed instead of !can_create_pseudo_p
6508 in the insn constraint.
6509 (*movxf_internal): Ditto.
6510 (*movdf_internal): Ditto.
6511 (*movsf_internal): Ditto.
6512
6513 2016-08-09 Bin Cheng <bin.cheng@arm.com>
6514
6515 PR tree-optimization/72772
6516 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
6517 for expanded base.
6518
6519 2016-08-09 Bin Cheng <bin.cheng@arm.com>
6520
6521 PR tree-optimization/72772
6522 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
6523 parameter STOP.
6524 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
6525 parameter STOP and update calls. Move expand_simple_operations
6526 function call from here...
6527 (simplify_using_initial_conditions): ...to here. Delete parameter
6528 STOP.
6529 (tree_simplify_using_condition): Delete parameter STOP.
6530 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
6531 simplify_using_initial_conditions.
6532
6533 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
6534
6535 PR c/65345
6536 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
6537 Use create_tmp_var_raw instead of create_tmp_var.
6538
6539 2016-08-09 Richard Biener <rguenther@suse.de>
6540
6541 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
6542 Treat same SSA names related.
6543
6544 2016-08-09 Jakub Jelinek <jakub@redhat.com>
6545
6546 PR tree-optimization/72824
6547 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
6548 real_zerop is not negative.
6549
6550 2016-08-09 Richard Biener <rguenther@suse.de>
6551
6552 PR tree-optimization/71802
6553 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
6554 all merge opportunities with the predecessor.
6555
6556 2016-08-09 Richard Biener <rguenther@suse.de>
6557
6558 PR ipa/68273
6559 * ipa-prop.c (ipa_modify_formal_parameters): Build
6560 parameter types with natural alignment also for the
6561 over-aligned case.
6562
6563 2016-08-08 Andi Kleen <ak@linux.intel.com>
6564
6565 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
6566
6567 2016-08-08 David Malcolm <dmalcolm@redhat.com>
6568
6569 PR c/64955
6570 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
6571 do-nothing langhook.
6572 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
6573 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
6574 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
6575 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
6576
6577 2016-08-08 David Malcolm <dmalcolm@redhat.com>
6578
6579 PR bootstrap/72844
6580 * input.c: Ensure that HAVE_ICONV is defined.
6581
6582 2016-08-08 Jakub Jelinek <jakub@redhat.com>
6583
6584 PR middle-end/72781
6585 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
6586 private vars for lastprivate and for linear iterator.
6587
6588 PR middle-end/68762
6589 * omp-simd-clone.c: Include varasm.h.
6590 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
6591 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
6592 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
6593 update function name.
6594
6595 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
6596
6597 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
6598 (avr_diagnose_devicespecs_error): Remove.
6599 (avr_devicespecs_file): Remove composing absolute path for specfile
6600 and its verbose info. Remove conditions to check specs-file,
6601
6602 2016-08-08 Jakub Jelinek <jakub@redhat.com>
6603
6604 PR rtl-optimization/72821
6605 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
6606 just return false for them.
6607
6608 2016-08-08 Alan Modra <amodra@gmail.com>
6609
6610 PR target/72771
6611 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
6612 toc refs created during reload. Update function comment.
6613
6614 2016-08-08 Alan Modra <amodra@gmail.com>
6615
6616 PR target/72802
6617 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
6618 alternatives. Put loads first, then stores, and reg/reg moves
6619 within same class later. Delete attr length.
6620
6621 2016-08-08 Alan Modra <amodra@gmail.com>
6622
6623 PR target/72802
6624 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
6625 (mem_operand_ds_form): New predicate.
6626 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
6627 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
6628 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
6629 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
6630 (extendsfdf2_fpr): Replace o constraint with wY.
6631
6632 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
6633
6634 * tree-ssa-threadbackward.c: Include tree-inline.h
6635 (profitable_jump_thread_path): Use estimate_num_insns to estimate
6636 size of copied block; for cold paths reduce duplication.
6637 (find_jump_threads_backwards): Remove redundant tests.
6638 (pass_thread_jumps::gate): Enable for -Os.
6639
6640 2016-08-07 Jakub Jelinek <jakub@redhat.com>
6641
6642 PR c/72816
6643 * stor-layout.c (layout_decl): Fix up formatting.
6644 (relayout_decl): Allow DECL to be FIELD_DECL.
6645
6646 2016-08-07 Alan Modra <amodra@gmail.com>
6647
6648 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
6649
6650 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
6651
6652 * data-streamer-in.c (streamer_read_wide_int): New.
6653 (streamer_read_widest_int): Renamed function.
6654 * data-streamer-out.c (streamer_write_wide_int): New
6655 (streamer_write_widest_int): Renamed function.
6656 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
6657 data-stream-in.c.
6658 (input_cfg): Call renamed function.
6659 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
6660 data-stream-out.c.
6661 (output_cfg): Call renamed function.
6662 * data-streamer.h: Add declarations.
6663
6664 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6665
6666 * tree-ssa-ccp.c (extend_mask): New param sgn.
6667 Remove ORing with wi::mask.
6668 (get_default_value): Adjust call to extend_mask to pass sign.
6669 (evaluate_stmt): Likewise.
6670
6671 2016-08-06 Jakub Jelinek <jakub@redhat.com>
6672
6673 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
6674 INT64_MAX.
6675
6676 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6677
6678 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
6679 transform if operand's type is pointer to function or method.
6680
6681 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
6682
6683 PR tree-optimization/18046
6684 * tree-ssa-threadedge.c: Include cfganal.h.
6685 (simplify_control_statement_condition): If simplifying a
6686 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
6687 with the dominating ASSERT_EXPR before handing it off to VRP.
6688 Mention that a CASE_LABEL_EXPR may be returned.
6689 (thread_around_empty_blocks): Adjust to handle
6690 simplify_control_statement_condition() returning a
6691 CASE_LABEL_EXPR.
6692 (thread_through_normal_block): Likewise.
6693 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
6694 a switch statement by trying to determine which case label
6695 will be taken.
6696
6697 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
6698
6699 PR rtl-optimization/69847
6700 * lra-constraints.c (process_invariant_for_inheritance): Save
6701 pattern instead of src.
6702 (remove_inheritance_pseudos): Use the pattern. Add assert.
6703
6704 2016-08-05 David Malcolm <dmalcolm@redhat.com>
6705
6706 * input.c (string_concat::string_concat): New constructor.
6707 (string_concat_db::string_concat_db): New constructor.
6708 (string_concat_db::record_string_concatenation): New method.
6709 (string_concat_db::get_string_concatenation): New method.
6710 (string_concat_db::get_key_loc): New method.
6711 (class auto_cpp_string_vec): New class.
6712 (get_substring_ranges_for_loc): New function.
6713 (get_source_range_for_substring): New function.
6714 (get_num_source_ranges_for_substring): New function.
6715 (class selftest::lexer_test_options): New class.
6716 (struct selftest::lexer_test): New struct.
6717 (class selftest::ebcdic_execution_charset): New class.
6718 (selftest::ebcdic_execution_charset::s_singleton): New variable.
6719 (selftest::lexer_test::lexer_test): New constructor.
6720 (selftest::lexer_test::~lexer_test): New destructor.
6721 (selftest::lexer_test::get_token): New method.
6722 (selftest::assert_char_at_range): New function.
6723 (ASSERT_CHAR_AT_RANGE): New macro.
6724 (selftest::assert_num_substring_ranges): New function.
6725 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
6726 (selftest::assert_has_no_substring_ranges): New function.
6727 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
6728 (selftest::test_lexer_string_locations_simple): New function.
6729 (selftest::test_lexer_string_locations_ebcdic): New function.
6730 (selftest::test_lexer_string_locations_hex): New function.
6731 (selftest::test_lexer_string_locations_oct): New function.
6732 (selftest::test_lexer_string_locations_letter_escape_1): New function.
6733 (selftest::test_lexer_string_locations_letter_escape_2): New function.
6734 (selftest::test_lexer_string_locations_ucn4): New function.
6735 (selftest::test_lexer_string_locations_ucn8): New function.
6736 (selftest::uint32_from_big_endian): New function.
6737 (selftest::test_lexer_string_locations_wide_string): New function.
6738 (selftest::uint16_from_big_endian): New function.
6739 (selftest::test_lexer_string_locations_string16): New function.
6740 (selftest::test_lexer_string_locations_string32): New function.
6741 (selftest::test_lexer_string_locations_u8): New function.
6742 (selftest::test_lexer_string_locations_utf8_source): New function.
6743 (selftest::test_lexer_string_locations_concatenation_1): New
6744 function.
6745 (selftest::test_lexer_string_locations_concatenation_2): New
6746 function.
6747 (selftest::test_lexer_string_locations_concatenation_3): New
6748 function.
6749 (selftest::test_lexer_string_locations_macro): New function.
6750 (selftest::test_lexer_string_locations_stringified_macro_argument):
6751 New function.
6752 (selftest::test_lexer_string_locations_non_string): New function.
6753 (selftest::test_lexer_string_locations_long_line): New function.
6754 (selftest::test_lexer_char_constants): New function.
6755 (selftest::input_c_tests): Call the new test functions once per
6756 case within the line_table test matrix.
6757 * input.h (struct string_concat): New struct.
6758 (struct location_hash): New struct.
6759 (class string_concat_db): New class.
6760 * substring-locations.h: New header.
6761
6762 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
6763
6764 PR tree-optimization/72810
6765 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
6766 the type of the case labels when truncating.
6767
6768 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
6769
6770 PR Target/72819
6771 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
6772 (aarch64_fp16_ptr_type_node): Likewise.
6773 * config/aarch64/aarch64-simd-builtins.c
6774 (aarch64_fp16_ptr_type_node): Define.
6775 (aarch64_init_fp16_types): New, refactored out of...
6776 (aarch64_init_builtins): ...here, update to call
6777 aarch64_init_fp16_types.
6778 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
6779 HFmode.
6780 (aapcs_vfp_sub_candidate): Likewise.
6781
6782 2016-08-05 Martin Liska <mliska@suse.cz>
6783 Joshua Cranmer <Pidgeot18@gmail.com>
6784
6785 * gcov.c (line_t::has_block): New function.
6786 (enum loop_type): New enum.
6787 (handle_cycle): New function.
6788 (unblock): Likewise.
6789 (circuit): Likewise.
6790 (get_cycles_count): Likewise.
6791 (accumulate_line_counts): Use new loop detection algorithm.
6792
6793 2016-08-05 Martin Liska <mliska@suse.cz>
6794
6795 * gcov.c (output_intermediate_file): Rename
6796 function_info::line_next to next_file_fn.
6797 (process_file): Likewise.
6798 (read_graph_file): Likewise.
6799 (accumulate_line_counts): Likewise.
6800 (output_lines): Likewise.
6801
6802 2016-08-05 Richard Biener <rguenther@suse.de>
6803
6804 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
6805 restriction on threading to a loop header.
6806
6807 2016-08-05 Richard Biener <rguenther@suse.de>
6808
6809 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
6810 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
6811 adjust loop info accordingly.
6812
6813 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
6814
6815 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
6816 before folding call to __builtin_constant_p with parameters to false.
6817
6818 2016-08-05 Alan Modra <amodra@gmail.com>
6819
6820 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
6821 code accidentally committed 2016-05-02 providing class when given
6822 NO_REGS.
6823
6824 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
6825
6826 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
6827 the case label ranges that partially overlap with OP's value
6828 range.
6829
6830 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
6831
6832 PR target/72805
6833 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
6834 Cast builtin function result to __mmask16 instead of __mmask8.
6835 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
6836 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
6837 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
6838
6839 2016-08-04 David Malcolm <dmalcolm@redhat.com>
6840
6841 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
6842 (ASSERT_TRUE_AT): New macro.
6843 (ASSERT_FALSE): Reimplement in terms of...
6844 (ASSERT_FALSE_AT): New macro.
6845 (ASSERT_STREQ_AT): Fix typo in comment.
6846
6847 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
6848
6849 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
6850 labels are exhaustive, designate the label with the widest
6851 range to be the default label.
6852
6853 2016-08-04 Andrew Pinski <apinski@cavium.com>
6854
6855 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
6856 (thunderx_tunings): Use thunderx_vector_cost instead of
6857 generic_vector_cost.
6858
6859 2016-08-04 Martin Liska <mliska@suse.cz>
6860
6861 * gcov.c (main): Fix GNU coding style.
6862 (output_intermediate_file): Likewise.
6863 (process_file): Likewise.
6864 (generate_results): Likewise.
6865 (release_structures): Likewise.
6866 (create_file_names): Likewise.
6867 (find_source): Likewise.
6868 (read_graph_file): Likewise.
6869 (find_exception_blocks): Likewise.
6870 (canonicalize_name): Likewise.
6871 (make_gcov_file_name): Likewise.
6872 (mangle_name): Likewise.
6873 (accumulate_line_counts): Likewise.
6874 (output_branch_count): Likewise.
6875 (read_line): Likewise.
6876
6877 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6878
6879 PR rtl-optimization/71779
6880 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
6881 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
6882 or if it was truncated.
6883
6884 PR rtl-optimization/70903
6885 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
6886
6887 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
6888
6889 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
6890 accessing SSA_NAME_PTR_INFO.
6891
6892 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
6893
6894 PR 70677
6895 * common/config/avr/avr-common.c (avr_option_optimization_table)
6896 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
6897
6898 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
6899
6900 PR 55181
6901 * config/avr/avr.md: New pattern to work around do_store_flag
6902 generating shift instructions for bit extractions.
6903
6904 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
6905
6906 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
6907 BITMAP_ALLOC.
6908 (add_equivalence): Likewise.
6909 (get_value_range): Allocate value range with vrp_value_range_pool.
6910 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
6911 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
6912
6913 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
6914
6915 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
6916 the default for the rs6000 port.
6917
6918 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6919
6920 PR middle-end/71876
6921 * calls.c (special_function_p): Remove special handling of
6922 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
6923 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
6924 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
6925
6926 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
6927
6928 PR middle-end/72778
6929 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
6930 Don't stop on regular insns.
6931
6932 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
6933
6934 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
6935 size to DImode boundary.
6936 (nvptx_propagate): Likewise.
6937
6938 2016-08-03 Alan Modra <amodra@gmail.com>
6939
6940 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
6941 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
6942 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
6943 from -mefficient-unaligned-vector. Note that this affects fp too.
6944
6945 2016-08-03 Alan Modra <amodra@gmail.com>
6946
6947 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
6948 cost more.
6949
6950 2016-08-03 Alan Modra <amodra@gmail.com>
6951
6952 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
6953 to a reg. Localize vars.
6954
6955 2016-08-03 Alan Modra <amodra@gmail.com>
6956
6957 * config/rs6000/rs6000.opt: Remove negatives from help strings
6958 and comments.
6959
6960 2016-08-03 Alan Modra <amodra@gmail.com>
6961
6962 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
6963 Delete duplicated code.
6964
6965 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
6966
6967 PR middle-end/72778
6968 * lra-spills.c (regno_in_use_p): New.
6969 (lra_final_code_change): Use it.
6970
6971 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
6972
6973 PR rtl-optimization/69847
6974 * lra-int.h (struct lra-reg): Use restore_rtx instead of
6975 restore_regno.
6976 (lra_rtx_hash): New.
6977 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
6978 of restore_regno.
6979 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
6980 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
6981 * lra-spills.c (lra_final_code_change): Don't delete insn when the
6982 next insn is USE with the same reg as the current insn source.
6983 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
6984 of restore_regno.
6985 (lra_constraints_init): Call initiate_invariants.
6986 (lra_constraints_finish): Call finish_invariants.
6987 (struct invariant, invariant_t, invariant_ptr_t): New.
6988 (const_invariant_ptr_t, invariants, invariants_pool): New.
6989 (invariant_table, invariant_hash, invariant_eq_p): New.
6990 (insert_invariant, initiate_invariants, finish_invariants): New.
6991 (clear_invariants, invalid_invariant_regs): New.
6992 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
6993 instead of restore_regno.
6994 (invariant_p, process_invariant_for_inheritance): New.
6995 (inherit_in_ebb): Implement invariant inheritance.
6996 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
6997 (remove_inheritance_pseudos): Implement undoing invariant
6998 inheritance.
6999 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
7000 instead of restore_regno.
7001 * lra-assigns.c (regno_live_length): New.
7002 (reload_pseudo_compare_func): Use regno_live_length.
7003 (assign_by_spills): Use restore_rtx instead of restore_regno.
7004 (lra_assign): Ditto. Initiate regno_live_length.
7005
7006 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
7007
7008 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
7009 __builtin_aarch64_fmindf.
7010
7011 2016-08-02 Bin Cheng <bin.cheng@arm.com>
7012
7013 PR tree-optimization/34114
7014 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
7015 information for more control IVs.
7016
7017 2016-08-02 Bin Cheng <bin.cheng@arm.com>
7018
7019 PR tree-optimization/34114
7020 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
7021 PLUS_EXPR case. Handle SSA_NAME case.
7022
7023 2016-08-02 Tamar Christina <tamar.christina@arm.com>
7024
7025 * config/aarch64/aarch64-simd-builtins.def
7026 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
7027 (__builtin_aarch64_fmaxdf): Likewise.
7028 (__builtin_aarch64_smin_nandf): Likewise.
7029 (__builtin_aarch64_smax_nandf): Likewise.
7030 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
7031 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
7032 (<fmaxmin><mode>3): ...this.
7033 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
7034 (vminnm_f64): Likewise.
7035 (vmin_f64): Likewise.
7036 (vmax_f64): Likewise.
7037 * config/aarch64/iterators.md (FMAXMIN): Merge with...
7038 (FMAXMIN_UNS): ...this.
7039 (fmaxmin): Merged with
7040 (fmaxmin_op): ...this...
7041 (maxmin_uns_op): ...in to this.
7042
7043 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
7044
7045 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7046 Add support for vec_extract on vector float, vector int, vector
7047 short, and vector char vector types.
7048 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
7049 vector float, vector int, vector short, and vector char
7050 optimizations on 64-bit ISA 2.07 systems for both constant and
7051 variable element numbers.
7052 (rs6000_split_vec_extract_var): Likewise.
7053 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
7054 Altivec registers on ISA 2.07 and above.
7055 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
7056 which never was matched due to the split occuring before register
7057 allocation (and the code would not have worked on little endian
7058 systems if it did match). Allow extracts to go to the Altivec
7059 registers if ISA 2.07 (power8). Change from using "" around the
7060 C++ code to using {}'s.
7061 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
7062 vec_extracts when the vector is in memory.
7063 (vsx_extract_v4sf_var): New insn to optimize vector float
7064 vec_extracts when the element number is variable on 64-bit ISA
7065 2.07 systems.
7066 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
7067 for 64-bit ISA 2.07 as well as ISA 3.0.
7068 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
7069 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
7070 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
7071 optimize vector int, vector short, and vector char vec_extracts
7072 when the vector is in memory.
7073 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
7074 optimize vector int, vector short, and vector char vec_extracts
7075 when the element number is variable.
7076
7077 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
7078
7079 PR target/71948
7080 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
7081 does not overlap with other symbol flags.
7082
7083 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
7084
7085 * config/aarch64/aarch64.h (aarch64_frame):
7086 Remove padding0 and hardfp_offset. Add locals_offset,
7087 initial_adjust, callee_adjust, callee_offset and final_adjust.
7088 * config/aarch64/aarch64.c (aarch64_layout_frame):
7089 Remove unused padding0 and hardfp_offset initializations.
7090 Choose frame layout and set frame variables accordingly.
7091 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
7092 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
7093 (aarch64_pop_regs): Likewise.
7094 (aarch64_expand_prologue): Remove all decision code, just emit
7095 prolog according to frame variables.
7096 (aarch64_expand_epilogue): Remove all decision code, just emit
7097 epilog according to frame variables.
7098 (aarch64_initial_elimination_offset): Use offset to local/arg area.
7099
7100 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
7101
7102 PR target/72748
7103 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
7104 fix_debug_reg_uses after changing source register mode to
7105 V1TImode if source register is undefined.
7106
7107 2015-08-01 Alan Hayward <alan.hayward@arm.com>
7108
7109 PR tree-optimization/71818
7110 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
7111 with non invariant evolutions
7112
7113 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
7114
7115 PR target/72767
7116 * config/avr/avr.md (length) [branch]: Correct insn length
7117 attribute for forward branches.
7118
7119 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
7120
7121 * doc/extend.texi (AVR Built-in Functions): Document
7122 __builtin_avr_nops.
7123 * config/avr/builtins.def (NOPS): New.
7124 * config/avr/avr.c (avr_expand_nops): New static function.
7125 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
7126
7127 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7128
7129 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
7130 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
7131 addresses.
7132
7133 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
7134
7135 * config/aarch64/aarch64.c (vulcan_tunings): Update
7136 vulcan L1 cache_line_size.
7137
7138 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
7139
7140 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
7141 function that takes a vector memory address, a hard register, an
7142 element number and a temporary base register, and recreates an
7143 address that points to the appropriate element within the vector.
7144 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
7145 (rs6000_split_vec_extract_var): Add support for the target of a
7146 vec_extract with variable element number being a scalar memory
7147 location.
7148 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
7149 swappable.
7150 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
7151 vsx_extract_<mode>_load insn with a new insn that optimizes
7152 storing either element to a memory location, using scratch
7153 registers to pick apart the vector and reconstruct the address.
7154 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
7155 (vsx_extract_<mode>_store): Rework alternatives to more correctly
7156 support Altivec registers. Add support for ISA 3.0 Altivec d-form
7157 store instruction.
7158 (vsx_extract_<mode>_var): Add support for extracting a variable
7159 element number from memory.
7160
7161 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
7162
7163 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
7164 when testing for compares against constants of the form 0xabab.
7165
7166 2016-07-29 Bin Cheng <bin.cheng@arm.com>
7167
7168 PR tree-optimization/57558
7169 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
7170 function.
7171 (vect_loop_versioning): Support versioning with niter assumptions.
7172 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
7173 (vect_get_loop_niters): New parameter. Reimplement to support
7174 assumptions in loop niter info.
7175 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
7176 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
7177 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
7178 Support loop versioning for niters.
7179 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
7180 (vect_free_loop_info_assumptions): New function.
7181 (vectorize_loops): Free loop niter info for loops with flag
7182 LOOP_F_ASSUMPTIONS set if vectorization failed.
7183 * tree-vectorizer.h (struct _loop_vec_info): New field
7184 num_iters_assumptions.
7185 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
7186 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
7187 (LOOP_REQUIRES_VERSIONING): New macro.
7188 (vect_free_loop_info_assumptions): New decl.
7189
7190 2016-07-29 Bin Cheng <bin.cheng@arm.com>
7191
7192 * cfgloop.h (struct loop): New field constraints.
7193 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
7194 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
7195 functions.
7196 * cfgloop.c (alloc_loop): Initialize new field.
7197 * cfgloopmanip.c (copy_loop_info): Copy constraints.
7198 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
7199 Adjust niter analysis wrto loop constraints.
7200 * doc/loop.texi (@node Number of iterations): Add description for loop
7201 constraints.
7202
7203 2016-07-29 Marek Polacek <polacek@redhat.com>
7204
7205 PR c/7652
7206 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
7207 (ix86_expand_round_builtin): Likewise.
7208
7209 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
7210 Georg-Johann Lay <avr@gjlay.de>
7211
7212 PR rtl-optimization/71976
7213 * combine.c (get_last_value): Return 0 if the argument for which
7214 the function is called has a wider mode than the recorded value.
7215
7216 2016-07-29 Marek Polacek <polacek@redhat.com>
7217
7218 PR c/7652
7219 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
7220 (altivec_expand_st_builtin): Likewise.
7221
7222 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
7223
7224 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
7225 introduced in r238381.
7226
7227 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
7228
7229 PR middle-end/68217
7230 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
7231 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
7232
7233 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
7234
7235 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
7236 New declaration.
7237 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7238 Add support for vec_extract of vector double or vector long having
7239 a variable element number on 64-bit ISA 2.07 systems or newer.
7240 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
7241 Likewise.
7242 (rs6000_split_vec_extract_var): New function to split a
7243 vec_extract built-in function with variable element number.
7244 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
7245 swappable.
7246 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
7247 (UNSPEC_VSX_EXTRACT): Likewise.
7248 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
7249 direct move instructions to be generated on 64-bit ISA 2.07
7250 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
7251 instruction.
7252 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
7253 arguments for vec_extract variable element.
7254 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
7255 vec_extract with variable element on V2DFmode and V2DImode
7256 vectors.
7257 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
7258 -mupper-regs-df requirement, since it isn't needed.
7259 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
7260 do direct moves on 64-bit systems, which allows optimization of
7261 vec_extract on 64-bit ISA 2.07 systems and newer.
7262
7263 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
7264 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
7265
7266 * config/aarch64/aarch64.md
7267 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
7268 statement and type.
7269 (<optab>qihi2_aarch64): Likewise, and split into two.
7270 (extendqihi2_aarch64): New.
7271 (zero_extendqihi2_aarch64): New.
7272 * config/aarch64/iterators.md (ldrxt): Remove.
7273 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
7274 uxtb/uxth.
7275
7276 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
7277
7278 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
7279
7280 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
7281
7282 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
7283 (aarch64_push_reg): New function to push 1 or 2 registers.
7284 (aarch64_pop_reg): New function to pop 1 or 2 registers.
7285 (aarch64_expand_prologue): Use aarch64_push_regs.
7286 (aarch64_expand_epilogue): Use aarch64_pop_regs.
7287
7288 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
7289
7290 PR tree-optimization/71734
7291 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
7292 attribute instead of REF_LOOP and use it.
7293 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
7294 set it for Loops having non-zero safelen attribute.
7295 (ref_indep_loop_p): Pass zero as initial value for safelen.
7296
7297 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
7298
7299 PR middle-end/72657
7300 PR target/72683
7301 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
7302 call using chkp_gimple_call_builtin_p.
7303 (chkp_copy_bounds_for_assign): Likewise.
7304
7305 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7306
7307 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
7308 * config/arm/arm-protos.h (struct tune_params): Likewise.
7309 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
7310 (cortex_a9_sched_adjust_cost): Likewise.
7311 (fa726te_sched_adjust_cost): Likewise.
7312 (arm_adjust_cost): Likewise.
7313 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
7314 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
7315 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
7316 * config/i386/i386.c (ix86_adjust_cost): Likewise.
7317 * config/ia64/ia64.c: Likewise.
7318 * config/m68k/m68k.c: Likewise.
7319 * config/mep/mep.c (mep_adjust_cost): Likewise.
7320 * config/microblaze/microblaze.c (microblaze_adjust_cost):
7321 * Likewise.
7322 * config/mips/mips.c (mips_adjust_cost): Likewise.
7323 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
7324 * Likewise.
7325 * config/pa/pa.c (pa_adjust_cost): Likewise.
7326 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
7327 (rs6000_debug_adjust_cost): Likewise.
7328 * config/sh/sh.c (sh_adjust_cost): Likewise.
7329 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
7330 (hypersparc_adjust_cost): Likewise.
7331 (sparc_adjust_cost): Likewise.
7332 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
7333 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
7334 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
7335 * Likewise.
7336 * config/visium/visium.c (visium_adjust_cost): Likewise.
7337 * doc/tm.texi: Regenerate.
7338 * haifa-sched.c (dep_cost_1): Adjust.
7339 * target.def: Merge adjust_cost and adjust_cost_2.
7340
7341 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7342
7343 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
7344
7345 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7346
7347 * store-motion.c (struct st_expr): Make pattern_regs a vector.
7348 (extract_mentioned_regs): Append to a vector instead of
7349 returning a rtx_expr_list.
7350 (st_expr_entry): Adjust.
7351 (free_st_expr_entry): Likewise.
7352 (store_ops_ok): Likewise.
7353 (store_killed_in_insn): Likewise.
7354 (find_moveable_store): Likewise.
7355
7356 2016-07-28 Martin Liska <mliska@suse.cz>
7357
7358 PR gcov-profile/68025
7359 * tree-profile.c (tree_profiling): Respect
7360 no_profile_instrument_function attribute.
7361 * doc/extend.texi: Document no_profile_instrument_function
7362 attribute.
7363
7364 2016-07-28 Martin Liska <mliska@suse.cz>
7365
7366 PR rtl-optimization/70944
7367 * combine.c (make_compound_operation):
7368 Do not allow make_compound_operation for vector mode
7369
7370 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
7371
7372 PR middle-end/71994
7373 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
7374 before calling get_ops.
7375
7376 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
7377
7378 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
7379 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
7380 (BITS_PER_UNIT_LOG): Remove.
7381 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
7382 * expr.c (expand_assignment): Likewise.
7383 * stor-layout.c (initialize_sizetypes): Likewise.
7384
7385 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
7386
7387 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
7388 signature of rs6000_expand_vector_extract so that the element
7389 number is a RTX instead of a constant integer.
7390 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
7391 Likewise.
7392 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
7393 (altivec_expand_vec_ext_builtin): Likewise.
7394 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
7395 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
7396 MFVSRLD instruction.
7397
7398 2016-07-27 David Malcolm <dmalcolm@redhat.com>
7399
7400 * input.c (get_pure_location): Move here from tree.c.
7401 (make_location): Likewise. Add header comment.
7402 (selftest::test_accessing_ordinary_linemaps): Verify
7403 pure_location_p, make_location, get_location_from_adhoc_loc and
7404 get_range_from_loc.
7405 * input.h (get_pure_location): Move declaration here from tree.h.
7406 (get_finish): Likewise for inline function.
7407 (make_location): Likewise for declaration.
7408 * tree.c (get_pure_location): Move to input.c.
7409 (make_location): Likewise.
7410 * tree.h (get_pure_location): Move declaration to tree.h.
7411 (get_finish): Likewise for inline function.
7412 (make_location): Likewise for declaration.
7413
7414 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7415
7416 PR middle-end/71078
7417 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
7418
7419 2016-07-27 David Malcolm <dmalcolm@redhat.com>
7420
7421 * system.h (STATIC_ASSERT): Use static_assert if building
7422 with C++11 onwards.
7423
7424 2016-07-27 Richard Biener <rguenther@suse.de>
7425
7426 PR tree-optimization/72517
7427 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
7428 Revert change to not compute read-read dependences.
7429
7430 2016-07-27 Richard Biener <rguenther@suse.de>
7431
7432 * predict.c (set_even_probabilities): Make nedges unsigned.
7433
7434 2016-07-27 Martin Liska <mliska@suse.cz>
7435
7436 * predict.c (set_even_probabilities): Handle unlikely edges.
7437 (combine_predictions_for_bb): Likewise.
7438
7439 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
7440
7441 PR target/71869
7442 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
7443 __float128 support when we don't have hardware support, so that
7444 the IEEE built-in functions like isgreater, first call __unordkf3
7445 to make sure neither operand is a NaN, and if both operands are
7446 ordered, do the normal comparison.
7447
7448 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
7449
7450 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
7451 name.
7452 (extract_code_and_val_from_cond_with_ops): Verify that name is
7453 either cond_op0 or cond_op1.
7454
7455 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
7456
7457 PR tree-optimization/18046
7458 * genmodes.c (emit_mode_size_inline): Emit an assert that
7459 verifies that mode is a valid array index.
7460 (emit_mode_nuinits_inline): Likewise.
7461 (emit_mode_inner_inline): Likewise.
7462 (emit_mode_unit_size_inline): Likewise.
7463 (emit_mode_unit_precision_inline): Likewise.
7464 * tree-vrp.c: Include params.h.
7465 (find_switch_asserts): Register edge assertions for the default
7466 label which correspond to the anti-ranges of each case label.
7467 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
7468 * doc/invoke.texi: Document it.
7469
7470 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7471
7472 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
7473 and unnecessary call to gimple_bb.
7474
7475 2016-07-26 Richard Biener <rguenther@suse.de>
7476
7477 PR rtl-optimization/71984
7478 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
7479 for VOIDmode.
7480
7481 2016-07-26 Richard Biener <rguenther@suse.de>
7482
7483 PR middle-end/72517
7484 * expmed.c (extract_bit_field_1): Constrain the vector mode
7485 with element size matching the extraction mode size when
7486 choosing a better vector mode to do the extraction from.
7487
7488 2016-07-26 Richard Biener <rguenther@suse.de>
7489 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7490
7491 PR middle-end/70920
7492 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
7493 pattern.
7494
7495 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7496
7497 * tree-ssa-structalias.c (struct scc_info): Change types of
7498 members to auto_sbitmap and auto_vec.
7499 (scc_info::scc_info): New constructor.
7500 (scc_info::~scc_info): New destructor.
7501 (init_scc_info): Remove.
7502 (free_scc_info): Remove.
7503 (find_indirect_cycles): Adjust.
7504 (perform_var_substitution): Likewise.
7505 (free_var_substitution_info): Likewise.
7506
7507 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7508
7509 * tree-outof-ssa.c (struct elim_graph): Change type of members
7510 to auto_vec and auto_sbitmap.
7511 (elim_graph::elim_graph): New constructor.
7512 (delete_elim_graph): Remove.
7513 (expand_phi_nodes): Adjust.
7514
7515 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7516
7517 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
7518 (new_elim_graph): Adjust.
7519 (clear_elim_graph): Likewise.
7520 (delete_elim_graph): Likewise.
7521 (elim_graph_size): Likewise.
7522 (elim_graph_add_node): Likewise.
7523 (elim_graph_add_edge): Likewise.
7524 (elim_graph_remove_succ_edge): Likewise.
7525 (eliminate_name): Likewise.
7526 (eliminate_build): Likewise.
7527 (elim_forward): Likewise.
7528 (elim_unvisited_predecessor): Likewise.
7529 (elim_backward): Likewise.
7530 (elim_create): Likewise.
7531 (eliminate_phi): Likewise.
7532 (expand_phi_nodes): Likewise.
7533
7534 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7535
7536 * bt-load.c (compute_out): Use auto_sbitmap class.
7537 (link_btr_uses): Likewise.
7538 * cfganal.c (mark_dfs_back_edges): Likewise.
7539 (post_order_compute): Likewise.
7540 (inverted_post_order_compute): Likewise.
7541 (pre_and_rev_post_order_compute_fn): Likewise.
7542 (single_pred_before_succ_order): Likewise.
7543 * cfgexpand.c (pass_expand::execute): Likewise.
7544 * cfgloop.c (verify_loop_structure): Likewise.
7545 * cfgloopmanip.c (fix_bb_placements): Likewise.
7546 (remove_path): Likewise.
7547 (update_dominators_in_loop): Likewise.
7548 * cfgrtl.c (break_superblocks): Likewise.
7549 * ddg.c (check_sccs): Likewise.
7550 (create_ddg_all_sccs): Likewise.
7551 * df-core.c (df_worklist_dataflow): Likewise.
7552 * dse.c (dse_step3): Likewise.
7553 * except.c (eh_region_outermost): Likewise.
7554 * function.c (thread_prologue_and_epilogue_insns): Likewise.
7555 * gcse.c (prune_expressions): Likewise.
7556 (prune_insertions_deletions): Likewise.
7557 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
7558 * graph.c (draw_cfg_nodes_no_loops): Likewise.
7559 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
7560 * lcm.c (compute_earliest): Likewise.
7561 (compute_farthest): Likewise.
7562 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
7563 (unroll_loop_runtime_iterations): Likewise.
7564 (unroll_loop_stupid): Likewise.
7565 * lower-subreg.c (decompose_multiword_subregs): Likewise.
7566 * lra-lives.c: Likewise.
7567 * lra.c (lra): Likewise.
7568 * modulo-sched.c (schedule_reg_moves): Likewise.
7569 (optimize_sc): Likewise.
7570 (get_sched_window): Likewise.
7571 (sms_schedule_by_order): Likewise.
7572 (check_nodes_order): Likewise.
7573 (order_nodes_of_sccs): Likewise.
7574 (order_nodes_in_scc): Likewise.
7575 * recog.c (split_all_insns): Likewise.
7576 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
7577 * reload1.c (reload): Likewise.
7578 * sched-rgn.c (haifa_find_rgns): Likewise.
7579 (split_edges): Likewise.
7580 (compute_trg_info): Likewise.
7581 * sel-sched.c (init_seqno): Likewise.
7582 * store-motion.c (remove_reachable_equiv_notes): Likewise.
7583 * tree-into-ssa.c (update_ssa): Likewise.
7584 * tree-ssa-live.c (live_worklist): Likewise.
7585 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
7586 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
7587 * Likewise.
7588 (try_peel_loop): Likewise.
7589 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
7590 * Likewise.
7591 * tree-ssa-pre.c (compute_antic): Likewise.
7592 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
7593 * tree-stdarg.c (reachable_at_most_once): Likewise.
7594 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
7595 * var-tracking.c (vt_find_locations): Likewise.
7596
7597 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7598
7599 * sbitmap.h (auto_sbitmap): New class.
7600
7601 2016-07-26 Alan Modra <amodra@gmail.com>
7602
7603 PR target/72103
7604 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
7605 sri->t_icode.
7606
7607 2016-07-25 David Malcolm <dmalcolm@redhat.com>
7608
7609 * input.c (selftest::temp_source_file::temp_source_file): Fix
7610 missing "%s" in fprintf.
7611
7612 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
7613
7614 PR middle-end/71732
7615 * cselib.c (cselib_process_insn): Invalidate argument slots for
7616 const/pure calls.
7617
7618 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7619
7620 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
7621 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
7622 vmulxh_lane_f16, vmulxh_laneq_f16): New.
7623
7624 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7625
7626 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7627 * config/aarch64/aarch64.md (fma, fnma): Support HF.
7628 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
7629
7630 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7631
7632 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7633 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
7634 New.
7635 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
7636 (add<mode>3): Likewise.
7637 (sub<mode>3): Likewise.
7638 (mul<mode>3): Likewise.
7639 (div<mode>3): Likewise.
7640 (*div<mode>3): Likewise.
7641 (<fmaxmin><mode>3): Extend to HF.
7642 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
7643 (fabd<mode>3): Likewise.
7644 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
7645 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
7646 (aarch64_fmulx<mode>): Likewise.
7647 (aarch64_fac<optab><mode>): Likewise.
7648 (aarch64_frecps<mode>): Likewise.
7649 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
7650 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
7651 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
7652 (VSDQ_HSDI): Support HI.
7653 (fcvt_target, FCVT_TARGET): Likewise.
7654 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
7655 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
7656 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
7657 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
7658 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
7659 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
7660 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
7661 vrsqrtsh_f16): New.
7662
7663 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7664
7665 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
7666 * config/aarch64/aarch64-builtins.c (hi_UP): New.
7667 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7668 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
7669 mode.
7670 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
7671 (aarch64_cm<optab><mode>): Likewise.
7672 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
7673 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
7674 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
7675 (sqrt<mode>2): Likewise.
7676 (*sqrt<mode>2): Likewise.
7677 (abs<mode>2): Likewise.
7678 (<optab><mode>hf2): New pattern for HF mode.
7679 (<optab>hihf2): Likewise.
7680 * config/aarch64/arm_neon.h: Include arm_fp16.h.
7681 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
7682 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
7683 Support HF mode.
7684 * config/aarch64/arm_fp16.h: New file.
7685 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
7686 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
7687 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
7688 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
7689 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
7690 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
7691 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
7692 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
7693 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
7694 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
7695 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
7696 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
7697 vsqrth_f16): New.
7698
7699 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7700
7701 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
7702 reduc_smin_scal_): Use VDQIF_F16.
7703 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
7704 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
7705 Use VHSDF.
7706 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
7707 * config/aarch64/iterators.md (VDQIF_F16): New.
7708 (vp): Support HF modes.
7709 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
7710 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
7711
7712 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7713
7714 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
7715 "*aarch64_mulx_elt_from_dup<mode>".
7716 (*aarch64_mul3_elt<mode>): Update schedule type.
7717 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
7718 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
7719 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
7720 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
7721 (f, fp): Support HF modes.
7722 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
7723 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
7724 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
7725 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
7726 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
7727 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
7728
7729 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7730
7731 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7732 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
7733 modes.
7734 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
7735 vfmsq_f16): New.
7736
7737 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7738
7739 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7740 * config/aarch64/aarch64-simd.md
7741 (aarch64_rsqrts<mode>): Extend to HF modes.
7742 (fabd<mode>3): Likewise.
7743 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
7744 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
7745 (aarch64_<maxmin_uns>p<mode>): Likewise.
7746 (<su><maxmin><mode>3): Likewise.
7747 (<maxmin_uns><mode>3): Likewise.
7748 (<fmaxmin><mode>3): Likewise.
7749 (aarch64_faddp<mode>): Likewise.
7750 (aarch64_fmulx<mode>): Likewise.
7751 (aarch64_frecps<mode>): Likewise.
7752 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
7753 (add<mode>3): Extend to HF modes.
7754 (sub<mode>3): Likewise.
7755 (mul<mode>3): Likewise.
7756 (div<mode>3): Likewise.
7757 (*div<mode>3): Likewise.
7758 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
7759 HF, V4HF and V8HF.
7760 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
7761 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
7762 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
7763 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
7764 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
7765 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
7766 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
7767 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
7768 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
7769 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
7770 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
7771 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
7772 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
7773 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
7774
7775 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7776
7777 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
7778 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7779 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
7780 (neg<mode>2): Likewise.
7781 (abs<mode>2): Likewise.
7782 (<frint_pattern><mode>2): Likewise.
7783 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
7784 (<optab><VDQF:mode><fcvt_target>2): Likewise.
7785 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
7786 (ftrunc<VDQF:mode>2): Likewise.
7787 (<optab><fcvt_target><VDQF:mode>2): Likewise.
7788 (sqrt<mode>2): Likewise.
7789 (*sqrt<mode>2): Likewise.
7790 (aarch64_frecpe<mode>): Likewise.
7791 (aarch64_cm<optab><mode>): Likewise.
7792 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
7793 HF, V4HF and V8HF.
7794 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
7795 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
7796 (stype): New.
7797 * config/aarch64/arm_neon.h (vdup_n_f16): New.
7798 (vdupq_n_f16): Likewise.
7799 (vld1_dup_f16): Use vdup_n_f16.
7800 (vld1q_dup_f16): Use vdupq_n_f16.
7801 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
7802 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
7803 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
7804 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
7805 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
7806 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
7807 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
7808 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
7809 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
7810 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
7811 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
7812 vsqrt_f16, vsqrtq_f16): New.
7813
7814 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7815
7816 * config/aarch64/aarch64-simd.md
7817 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
7818 (aarch64_ext<mode>): Likewise.
7819 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
7820 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
7821 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
7822 and V8HFmode.
7823 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
7824 float16x8_t.
7825 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
7826 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
7827 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
7828 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
7829 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
7830 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
7831 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
7832 New.
7833 (vmov_n_f16): Reimplement using vdup_n_f16.
7834 (vmovq_n_f16): Reimplement using vdupq_n_f16..
7835
7836 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7837
7838 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
7839 "frame_related_p". Generate CFA annotation when it's necessary.
7840 (aarch64_expand_prologue): Use aarch64_add_constant.
7841 (aarch64_expand_epilogue): Likewise.
7842 (aarch64_output_mi_thunk): Pass "false" when calling
7843 aarch64_add_constant.
7844
7845 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7846
7847 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
7848 sequences.
7849
7850 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7851
7852 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
7853 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
7854 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
7855 (aarch64_build_constant): Delete.
7856
7857 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
7858
7859 Revert
7860 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
7861
7862 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
7863 flag_toplevel_reorder.
7864
7865 2016-07-25 Richard Biener <rguenther@suse.de>
7866
7867 * cgraph.c (cgraph_node::verify_node): Compare against builtin
7868 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
7869 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
7870 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
7871 (streamer_get_builtin_tree): Likewise.
7872 (streamer_write_builtin): Likewise.
7873 * lto-streamer.h (LTO_builtin_decl): Remove.
7874 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
7875 (lto_input_scc): Remove LTO_builtin_decl handling.
7876 (lto_input_tree_1): Liekwise.
7877 * lto-streamer-out.c (lto_output_tree_1): Remove special
7878 handling of builtins.
7879 (DFS::DFS): Likewise.
7880 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
7881 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
7882 assert.
7883 (streamer_write_builtin): Remove.
7884
7885 2016-07-25 Martin Liska <mliska@suse.cz>
7886
7887 * lto-cgraph.c (input_symtab): Don't call get_working_sets
7888 if flag_auto_profile is set to true.
7889
7890 2016-07-25 Martin Liska <mliska@suse.cz>
7891
7892 PR gcov-profile/71868
7893 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
7894 have a function with multiple latches, count them all.
7895
7896 2016-07-25 Martin Liska <mliska@suse.cz>
7897
7898 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
7899
7900 2016-07-25 Martin Liska <mliska@suse.cz>
7901
7902 PR tree-optimization/71987
7903 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
7904 just for SSA_NAMEs. Fix GNU coding style.
7905
7906 2016-07-25 Martin Liska <mliska@suse.cz>
7907
7908 PR gcov-profile/64874
7909 * gcov-io.h: Update command about file format.
7910 * gcov-iov.c (main): Adapt the numbering scheme.
7911
7912 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
7913
7914 PR middle-end/66726
7915 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
7916 whose result is used in PHI.
7917 (final_range_test_p): Likewise.
7918 (maybe_optimize_range_tests): Likewise.
7919
7920 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
7921
7922 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7923 Reformat two multi-line strings.
7924
7925 2016-07-22 Martin Sebor <msebor@redhat.com>
7926
7927 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
7928
7929 2016-07-22 Martin Sebor <msebor@redhat.com>
7930
7931 PR c/71560
7932 * doc/extend.texi (Compound Literals): Correct and clarify.
7933 (Cast to Union): Same.
7934
7935 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
7936
7937 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
7938 comments to explain why certain error messages make mention of
7939 undocumented options.
7940 (rs6000_invalid_builtin): Change error messages to replace mention
7941 of undocumented options with mention of the -mcpu=power9 option
7942 that enables those undocumented options.
7943 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
7944 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
7945 definition of this macro to correct an existing error.
7946 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
7947 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
7948 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
7949 descriptions of built-in functions so that they depend on
7950 -mcpu=power9 instead of on the corresponding undocumented flags.
7951 * doc/invoke.texi (Option Summary): Remove all mention of newly
7952 undocumented flags.
7953 (IBM RS/6000 and PowerPC Options): Likewise.
7954 * doc/md.texi (Constraints for Particuliar Machines): Remove all
7955 mention of newly undocumented flags.
7956
7957 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
7958
7959 * ipa-cp.c (determine_versionability): Do not create constprop clones,
7960 when target_clones attribute is set.
7961
7962 2016-07-22 Bin Cheng <bin.cheng@arm.com>
7963
7964 * common.opt (funsafe-loop-optimizations): Mark ignore.
7965 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
7966 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
7967 related code.
7968 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
7969 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
7970
7971 2016-07-22 Bin Cheng <bin.cheng@arm.com>
7972
7973 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
7974 Parameter.
7975 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
7976 Parameter.
7977 (number_of_iterations_exit): Warn missed loop optimization for
7978 possible infinite loops.
7979
7980 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
7981
7982 PR target/71216
7983 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
7984 when to emit a ".machine" pseudo-op.
7985
7986 2016-07-22 Martin Liska <mliska@suse.cz>
7987
7988 PR gcov-profile/69028
7989 PR gcov-profile/62047
7990 * coverage.c (coverage_compute_lineno_checksum): Do not
7991 calculate checksum for fns w/o xloc.file.
7992 (coverage_compute_profile_id): Likewise.
7993
7994 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
7995
7996 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
7997 (avr_secondary_reload): ...and implementation.
7998 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
7999 * config/avr/avr.md (reload_in<mode>): Remove insns.
8000 (adjust_len) [lpm]: Remove insn attribute value.
8001 * config/avr/predicates.md (flash_operand): Remove insn predicate.
8002
8003 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
8004
8005 PR middle-end/71876
8006 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
8007 attribute.
8008 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
8009 * calls.c (special_function_p): Remove the special handling of the
8010 "__builtin_" prefix.
8011
8012 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
8013
8014 PR middle-end/71876
8015 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
8016 if STMT may be an alloca call.
8017 (gimple_alloca_call_p, alloca_call_p): Return only true for the
8018 builtin alloca call.
8019 * calls.h (gimple_maybe_alloca_call_p): New function.
8020 * tree-inline.c (inline_forbidden_p_stmt): Use
8021 gimple_maybe_alloca_call_p here.
8022
8023 2016-07-21 David Malcolm <dmalcolm@redhat.com>
8024
8025 * spellcheck-tree.c (best_macro_match::best_macro_match):
8026 Explictly specify the template arguments when invoking the base
8027 class constructor, to help older C++ compilers.
8028
8029 2016-07-21 Jakub Jelinek <jakub@redhat.com>
8030
8031 PR sanitizer/71953
8032 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
8033 before builtin_decl_implicit.
8034
8035 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
8036
8037 * optabs.c (emit_condiitonal_move): Short circuit for identical
8038 sources.
8039
8040 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
8041
8042 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
8043 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
8044 (noce_conversion_profitable_p): New.
8045 (noce_try_store_flag_constants): Use it.
8046 (noce_try_addcc): Likewise.
8047 (noce_try_store_flag_mask): Likewise.
8048 (noce_try_cmove): Likewise.
8049 (noce_try_cmove_arith): Likewise.
8050 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
8051 overwriting it.
8052 (noce_convert_multiple_sets): Move cost model to here, from...
8053 (bb_ok_for_noce_convert_multiple_sets) ...here.
8054 (noce_process_if_block): Update calls for above changes.
8055 (noce_find_if_block): Record new noce_if_info parameters.
8056
8057 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
8058
8059 * target.def (max_noce_ifcvt_seq_cost): New.
8060 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
8061 * doc/tm.texi: Regenerate.
8062 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
8063 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
8064 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
8065 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
8066 * doc/invoke.texi: Document new params.
8067
8068 2016-07-21 Richard Biener <rguenther@suse.de>
8069
8070 PR tree-optimization/71947
8071 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
8072 ranges have useful limit_vr information.
8073
8074 2016-07-21 Richard Biener <rguenther@suse.de>
8075
8076 * function-tests.c (build_trivial_generic_function): Set
8077 BLOCK_SUPERCONTEXT of DECL_INITIAL.
8078 * omp-low.c (create_omp_child_function): Likewise.
8079 (grid_expand_target_grid_body): Likewise.
8080 * cgraphunit.c (init_lowered_empty_function): Likewise.
8081 (cgraph_node::expand_thunk): Likewise.
8082 * tree-parloops.c (create_loop_fn): Likewise.
8083 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
8084
8085 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8086
8087 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
8088 in comment.
8089
8090 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
8091
8092 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
8093 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
8094 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
8095 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
8096 values for insn attribute.
8097 * config/avr/avr.c (avr_out_insert_notbit): New function.
8098 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
8099 ADJUST_LEN_INSV_NOTBIT_0/_7.
8100 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
8101
8102 2016-07-21 Bin Cheng <bin.cheng@arm.com>
8103
8104 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
8105 (chrec_convert_1, chrec_convert): Ditto.
8106 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
8107 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
8108 * tree-vrp.c (adjust_range_with_scev): Ditto.
8109 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
8110 (scev_var_range_cant_overflow): New function.
8111 (scev_probably_wraps_p): New parameter. Call above function.
8112 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
8113
8114 2016-07-21 Bin Cheng <bin.cheng@arm.com>
8115
8116 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
8117 by removing computation of may_be_zero.
8118
8119 2016-07-21 Jakub Jelinek <jakub@redhat.com>
8120
8121 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
8122
8123 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
8124
8125 Improving concepts performance and diagnostics.
8126 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
8127 for constraint satisfaction and subsumption.
8128 * timevar.h (auto_timevar): New constructor that matches the push/pop
8129 pattern of usage in pt.c.
8130
8131 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
8132
8133 * hwint.h (HOST_WIDE_INT_0): New define.
8134 (HOST_WIDE_INT_0U): Ditto.
8135 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
8136 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
8137 * simplify-rtx.c: Ditto.
8138 * tree-object-size.c: Ditto.
8139
8140 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8141
8142 * config/s390/s390.c (s390_encode_section_info): Remove mode size
8143 check.
8144
8145 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
8146
8147 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
8148 * combine.c: Use HOST_WIDE_INT_M1U instead of
8149 ~(unsigned HOST_WIDE_INT) 0.
8150 * double-int.h: Ditto.
8151 * dse.c: Ditto.
8152 * dwarf2asm.c:Ditto.
8153 * expmed.c: Ditto.
8154 * genmodes.c: Ditto.
8155 * match.pd: Ditto.
8156 * read-rtl.c: Ditto.
8157 * tree-ssa-loop-ivopts.c: Ditto.
8158 * tree-ssa-loop-prefetch.c: Ditto.
8159 * tree-vect-generic.c: Ditto.
8160 * tree-vect-patterns.c: Ditto.
8161 * tree.c: Ditto.
8162
8163 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
8164
8165 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
8166 constant addresses outside [0,0xc0] into a register.
8167 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
8168 cases where the base address register is unused after.
8169 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
8170 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
8171 (avr_out_store_psi_reg_disp_tiny): Same.
8172
8173 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
8174
8175 Implement attribute progmem on reduced Tiny cores by adding
8176 flash offset 0x4000 to respective symbols.
8177
8178 PR target/71948
8179 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
8180 documentation how it works on reduced Tiny cores.
8181 (AVR Named Address Spaces): No support for reduced Tiny.
8182 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
8183 (avr_address_tiny_pm_p): New static function.
8184 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
8185 if the address is in progmem.
8186 (avr_assemble_integer): Same.
8187 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
8188 for symbol_ref in progmem.
8189 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
8190 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
8191 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
8192
8193 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
8194
8195 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
8196 * configure: Regenerate.
8197 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
8198 (USE_THIN_ARCHIVES): New variable.
8199 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
8200 this archive as a thin archive.
8201
8202 2016-07-20 David Malcolm <dmalcolm@redhat.com>
8203
8204 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
8205 same location as last time, don't skip if we have fix-it hints.
8206 Clarify the skipping logic by converting it from one "if" clause
8207 to repeated "if" clauses.
8208 * spellcheck-tree.c: Include "cpplib.h".
8209 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
8210 (best_macro_match::best_macro_match): New constructor.
8211 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
8212 Move here from c/c-decl.c.
8213 (class best_macro_match): Move here from c/c-decl.c, converting
8214 from a typedef to a subclass, gaining a ctor.
8215
8216 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
8217
8218 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
8219 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
8220 define...
8221 (avr_addr_space_diagnose_usage): ...and implementation.
8222 (avr_addr_space_supported_p): New function.
8223 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
8224 report bad address space usage if that space is supported.
8225 (avr_insert_attributes): Same. No more complain about unsupported
8226 address spaces.
8227 * config/avr/avr-c.c (tm_p.h): Include it.
8228 (avr_cpu_cpp_builtins): Only define addr-space related built-in
8229 macro if avr_addr_space_supported_p.
8230
8231 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
8232
8233 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
8234 flag_toplevel_reorder.
8235
8236 2016-07-20 David Malcolm <dmalcolm@redhat.com>
8237
8238 * gcc-rich-location.c
8239 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
8240 a const char *.
8241 * gcc-rich-location.h
8242 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
8243
8244 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
8245
8246 * target.def (addr_space): Add new diagnose_usage to hook vector.
8247 * targhooks.c (default_addr_space_diagnose_usage): Add default
8248 implementation and...
8249 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
8250 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
8251 is some address space, call targetm.addr_space.diagnose_usage.
8252 * doc/tm.texi.in (Named Address Spaces): Add anchor for
8253 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
8254 * doc/tm.texi: Regenerate.
8255
8256 2016-07-20 Martin Liska <mliska@suse.cz>
8257
8258 PR middle-end/71898
8259 * graphite-isl-ast-to-gimple.c (later_of_the_two):
8260 Properly handly PHI stmts.
8261
8262 2016-07-20 Bin Cheng <bin.cheng@arm.com>
8263
8264 PR tree-optimization/71503
8265 PR tree-optimization/71683
8266 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
8267 and break.
8268
8269 2016-07-20 Martin Liska <mliska@suse.cz>
8270
8271 * doc/invoke.texi (-fipa-ra): Document when the option is
8272 disabled. Fix a typo.
8273
8274 2016-07-20 Martin Liska <mliska@suse.cz>
8275
8276 * Makefile.in: Include fibonacci_heap.c
8277 * fibonacci_heap.c: New file.
8278 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
8279 (fibonacci_heap::union_with): Fix deletion of the second heap.
8280 * selftest-run-tests.c (selftest::run_tests): Incorporate
8281 fibonacci heap tests.
8282 * selftest.h: Declare fibonacci_heap_c_tests.
8283
8284 2016-07-20 Martin Liska <mliska@suse.cz>
8285
8286 * selftest-run-tests.c (selftest::run_tests): New function.
8287 * selftest.h (sreal_c_tests): Declare.
8288 * sreal.c (sreal_verify_basics): New function.
8289 (verify_aritmetics): Likewise.
8290 (sreal_verify_arithmetics): Likewise.
8291 (verify_shifting): Likewise.
8292 (sreal_verify_shifting): Likewise.
8293 (void sreal_c_tests): Likewise.
8294
8295 2016-07-19 Jakub Jelinek <jakub@redhat.com>
8296
8297 PR rtl-optimization/71916
8298 * cfgrtl.c (contains_no_active_insn_p): Return false also for
8299 bb which have a single succ fake edge.
8300
8301 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
8302
8303 PR debug/71855
8304 * dwarf2out.c (gen_subprogram_die): Only call
8305 gen_unspecified_parameters_die while dumping early dwarf.
8306
8307 2016-07-19 Jakub Jelinek <jakub@redhat.com>
8308
8309 PR middle-end/71874
8310 * gimple-fold.c (fold_builtin_memory_op): Use
8311 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
8312
8313 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
8314
8315 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
8316 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
8317 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
8318 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
8319 * combine.c: Ditto.
8320 * cse.c: Ditto.
8321 * dojump.c: Ditto.
8322 * double-int.c: Ditto.
8323 * dse.c: Ditto.
8324 * dwarf2out.c: Ditto.
8325 * expmed.c: Ditto.
8326 * expr.c: Ditto.
8327 * fold-const.c: Ditto.
8328 * function.c: Ditto.
8329 * fwprop.c: Ditto.
8330 * genmodes.c: Ditto.
8331 * hwint.c: Ditto.
8332 * hwint.h: Ditto.
8333 * ifcvt.c: Ditto.
8334 * loop-doloop.c: Ditto.
8335 * loop-invariant.c: Ditto.
8336 * loop-iv.c: Ditto.
8337 * match.pd: Ditto.
8338 * optabs.c: Ditto.
8339 * real.c: Ditto.
8340 * reload.c: Ditto.
8341 * rtlanal.c: Ditto.
8342 * simplify-rtx.c: Ditto.
8343 * stor-layout.c: Ditto.
8344 * toplev.c: Ditto.
8345 * tree-ssa-loop-ivopts.c: Ditto.
8346 * tree-vect-generic.c: Ditto.
8347 * tree-vect-patterns.c: Ditto.
8348 * tree.c: Ditto.
8349 * tree.h: Ditto.
8350 * ubsan.c: Ditto.
8351 * varasm.c: Ditto.
8352 * wide-int-print.cc: Ditto.
8353 * wide-int.cc: Ditto.
8354 * wide-int.h: Ditto.
8355
8356 2016-07-19 David Malcolm <dmalcolm@redhat.com>
8357
8358 * selftest.c (selftest::assert_streq): Handle NULL values of
8359 val_actual and val_expected.
8360
8361 2016-07-19 Martin Jambor <mjambor@suse.cz>
8362
8363 PR fortran/71688
8364 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
8365 rather than cgraph_create_node to get a call graph node.
8366
8367 2016-07-19 Richard Biener <rguenther@suse.de>
8368
8369 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
8370 handle all tcc_constant bases and valueize SSA names.
8371 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
8372 tcc_constant bases.
8373
8374 2016-07-19 David Malcolm <dmalcolm@redhat.com>
8375
8376 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
8377 the flags of the exit block and bb2, not just the entry block.
8378
8379 2016-07-19 Richard Biener <rguenther@suse.de>
8380
8381 PR tree-optimization/71901
8382 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
8383 align member, group stuff with the bitfield.
8384 (vn_ref_op_align_unit): New inline.
8385 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
8386 record element alignment and operand 3 unchanged.
8387 (ao_ref_init_from_vn_reference): Adjust.
8388 (valueize_refs_1): Likewise.
8389 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
8390
8391 2016-07-19 Richard Biener <rguenther@suse.de>
8392
8393 PR tree-optimization/71908
8394 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
8395 symbolic constants in a more reliable way.
8396
8397 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
8398
8399 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
8400 comment.
8401 (vect_update_inits_of_drs): Likewise.
8402 (vect_create_cond_for_alias_checks): Likewise.
8403 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
8404
8405 2016-07-19 Richard Biener <rguenther@suse.de>
8406
8407 PR lto/71907
8408 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
8409 with an abstract origin that is not an inlined function outer
8410 scope add a self-reference as abstract origin.
8411 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
8412
8413 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
8414
8415 PR target/71493
8416 * config/rs6000/rs6000.c (rs6000_function_value): Fix
8417 unintentional System V.4 structure return breakage for structures
8418 with a single floating point element.
8419
8420 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
8421
8422 PR tree-optimization/71734
8423 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
8424 contains REF, use it to check safelen, assume that safelen value
8425 must be greater 1, fix style.
8426 (ref_indep_loop_p_2): Add REF_LOOP argument.
8427 (ref_indep_loop_p): Pass LOOP as additional argument to
8428 ref_indep_loop_p_2.
8429
8430 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
8431
8432 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
8433 allocation in the prologue.
8434 * explow.c (get_dynamic_stack_base): New function to return an address
8435 expression for the dynamic stack base.
8436 (get_dynamic_stack_size): New function to do the required dynamic stack
8437 space size calculations.
8438 (allocate_dynamic_stack_space): Use new functions.
8439 (align_dynamic_address): Move some code from
8440 allocate_dynamic_stack_space to new function.
8441 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
8442
8443 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8444
8445 * config/s390/s390.c (s390_encode_section_info): Always set
8446 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
8447 found.
8448
8449 2016-07-18 Richard Biener <rguenther@suse.de>
8450
8451 PR tree-optimization/71893
8452 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
8453 for sizetype cast added by array_ref_element_size.
8454 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8455
8456 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
8457
8458 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
8459 register parameters. Remove code to initialize argument pointer
8460 on TARGET_64BIT. Optimize call to _mcount when it can be reached
8461 using a pc-relative branch. Cleanup conditional code.
8462 * config/pa/pa.md (call_mcount): New expander.
8463 (call_mcount_nonpic): New insn.
8464 (call_mcount_pic): New insn and split.
8465 (call_mcount_pic_post_reload): New insn.
8466 (call_mcount_64bit): New insn and split.
8467 (call_mcount_64bit_post_reload): New insn.
8468
8469 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
8470
8471 * config/avr/predicates.md (const_m255_to_m1_operand): New.
8472 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
8473 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
8474 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
8475 (*usum_widenqihi3, *udiff_widenqihi3)
8476 (*addhi3_zero_extend.const): New combiner insns.
8477 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
8478 just 1 bit is affected.
8479 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
8480 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
8481
8482 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
8483
8484 * omp-low.c (lower_omp_target): Mark data clauses with
8485 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
8486 zero-length subarrays.
8487
8488 2016-07-15 Richard Biener <rguenther@suse.de>
8489
8490 PR tree-optimization/71881
8491 * tree-loop-distribution.c (destroy_loop): Remove blocks in
8492 reverse DOM order to make debug temp generation happy.
8493
8494 2016-07-15 Richard Biener <rguenther@suse.de>
8495
8496 PR tree-optimization/71887
8497 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
8498 verify it is not zero for division / modulo handling.
8499 (value_replacement): Adjust.
8500
8501 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
8502 Julian Brown <julian@codesourcery.com>
8503
8504 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
8505 * config/aarch64/aarch64-cost-tables.h
8506 (vulcan_extra_costs): New variable.
8507 * config/aarch64/aarch64.c
8508 (vulcan_addrcost_table): Likewise.
8509 (vulcan_regmove_cost): Likewise.
8510 (vulcan_vector_cost): Likewise.
8511 (vulcan_branch_cost): Likewise.
8512 (vulcan_tunings): Likewise.
8513
8514 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
8515
8516 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
8517 (output_in_order): Loop over undefined variables too. Output them
8518 via assemble_undefined_decl. Skip variables that correspond to hard
8519 registers or have value-exprs.
8520 * varpool.c (symbol_table::output_variables): Handle undefined
8521 variables together with defined ones.
8522
8523 2016-07-15 Richard Biener <rguenther@suse.de>
8524
8525 * tree-ssa-pre.c (get_representative_for): Make sure to return
8526 the value number of SSA names.
8527 (phi_translate_1): get_representative_for cannot return NULL.
8528 (do_pre_regular_insertion): Remove redundant call to
8529 fully_constant_expression.
8530 (do_pre_partial_partial_insertion): Likewise.
8531
8532 2016-07-15 Bin Cheng <bin.cheng@arm.com>
8533
8534 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
8535 (derive_simple_iv_with_niters): New function.
8536 (simple_iv): Rewrite using simple_iv_with_niters.
8537 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
8538 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
8539 function.
8540 (number_of_iterations_exit): Rewrite using above function.
8541 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
8542 Decl.
8543
8544 2016-07-15 Richard Biener <rguenther@suse.de>
8545
8546 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
8547 vec_construct cost.
8548
8549 2016-07-14 Jakub Jelinek <jakub@redhat.com>
8550
8551 PR tree-optimization/71872
8552 * tree-data-ref.c (get_references_in_stmt): Ignore references
8553 with is_gimple_constant get_base_address.
8554
8555 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8556
8557 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
8558 (TARGET_HAVE_LDACQD): New macro.
8559 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
8560 than TARGET_HAVE_LDACQ.
8561 (arm_load_acquire_exclusivedi): Likewise.
8562 (arm_store_release_exclusivedi): Likewise.
8563
8564 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8565
8566 PR rtl-optimization/71878
8567 * lra-constraints.c (match_reload): Pass information about other
8568 output operands. Create new unique register value if matching input
8569 operand shares same register value as output operand being considered.
8570 (curr_insn_transform): Record output operands already processed.
8571
8572 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8573
8574 PR target/65951
8575 PR tree-optimization/70923
8576 * tree-vect-patterns.c: Include mult-synthesis.h.
8577 (target_supports_mult_synth_alg): New function.
8578 (synth_lshift_by_additions): Likewise.
8579 (apply_binop_and_append_stmt): Likewise.
8580 (vect_synth_mult_by_constant): Likewise.
8581 (target_has_vecop_for_code): Likewise.
8582 (vect_recog_mult_pattern): Use above functions to synthesize vector
8583 multiplication by integer constants.
8584
8585 2016-07-14 Alan Modra <amodra@gmail.com>
8586
8587 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
8588 gpr alternatives. Correct '*' placement on Y,r alternative.
8589 Add '*' on operand 1 of r,r alternative.
8590
8591 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8592
8593 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
8594 * expmed.h: ... Here.
8595
8596 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
8597
8598 * gimple.h (stmt_can_terminate_bb_p): New function.
8599 * tree-cfg.c (need_fake_edge_p): Rename to ...
8600 (stmt_can_terminate_bb_p): ... this; return true if stmt can
8601 throw external; handle const and pure calls.
8602 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
8603
8604 2016-07-14 Richard Biener <rguenther@suse.de>
8605
8606 PR tree-optimization/71866
8607 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
8608 (do_hoist_insertion): Avoid endless recursion when we
8609 didn't insert anything because we managed to simplify
8610 things down to a constant or SSA name.
8611 (fully_constant_expression): Re-write in terms of ...
8612 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
8613 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
8614 vn_nary_build_or_lookup_1.
8615 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
8616 (vn_nary_build_or_lookup): ... this which now wraps it.
8617
8618 2016-07-14 Alan Modra <amodra@gmail.com>
8619
8620 PR target/71733
8621 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
8622 with p9_vector override before power9-dform override.
8623
8624 2016-07-13 Andi Kleen <ak@linux.intel.com>
8625
8626 * value-prof.c (gimple_value_profile_transformations): Don't run
8627 when auto_profile is on.
8628
8629 2016-07-13 Andi Kleen <ak@linux.intel.com>
8630
8631 * auto-profile.c (update_inlined_ind_target,
8632 afdo_indirect_call): Print information to dump file.
8633
8634 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
8635
8636 * genrecog.c (special_predicate_operand_p): New function.
8637 (predicate_name): Move function.
8638 (validate_pattern): Don't warn about missing mode for all
8639 define_special_predicate predicates.
8640
8641 2016-07-13 Bin Cheng <bin.cheng@arm.com>
8642
8643 * tree-vect-data-refs.c (vect_no_alias_p): New function.
8644 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
8645 resolve alias checks which are known at compilation time.
8646 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
8647 alias checks are resolved. Move dump info for too many runtime
8648 alias checks to here...
8649 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
8650
8651 2016-07-13 Richard Biener <rguenther@suse.de>
8652
8653 PR tree-optimization/24574
8654 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
8655 position and add shift, rotate, divison and modulo support
8656 for left zero.
8657 (value_replacement): Pass in argument position to absorbing_element_p.
8658
8659 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
8660
8661 PR ipa/71633
8662 * ipa-inline-transform.c (inline_call): Support
8663 instrumented thunks.
8664
8665 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
8666
8667 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
8668 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
8669 divide feature.
8670 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
8671 Baseline. Make initial alternative TARGET_32BIT only.
8672 (udivsi3): Likewise.
8673 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
8674 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
8675 target.
8676
8677 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
8678
8679 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
8680 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
8681 availability with TARGET_HAVE_MOVT.
8682 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
8683 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
8684 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
8685 UINTVAL.
8686 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
8687 extra instruction if MOVW is available. Use a cost variable
8688 incremented by COSTS_N_INSNS (1) when the condition match rather than
8689 returning an arithmetic expression based on COSTS_N_INSNS. Make
8690 constant with bottom half word zero cost 2 instruction if MOVW is
8691 available.
8692 * config/arm/arm.md (define_attr "arch"): Add v8mb.
8693 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
8694 target is ARMv8-M Baseline.
8695 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
8696 (arm_movtas_ze): Likewise.
8697 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
8698 alternative for constants satisfying j constraint.
8699 (thumb1_movsi_insn): Likewise.
8700 (movsi splitter for K alternative): Tighten condition to not trigger
8701 if movt is available and j constraint is satisfied.
8702 (Pe immediate splitter): Likewise.
8703 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
8704 constant fitting in an halfword to use MOVW.
8705 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
8706 effective target.
8707
8708 2016-07-13 Richard Biener <rguenther@suse.de>
8709
8710 PR middle-end/71104
8711 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
8712 gimplifying the LHS. Make sure to gimplify a returning twice
8713 call LHS without using SSA names.
8714
8715 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8716
8717 * tree-data-ref.c (find_data_references_in_stmt): Remove
8718 unnecessary call to vec::release.
8719 (graphite_find_data_references_in_stmt): Likewise.
8720 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
8721 * tree-vect-stmts.c (vectorizable_condition): Likewise.
8722
8723 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8724
8725 * cfgexpand.c (expand_used_vars): Make the type of a local
8726 variable auto_vec.
8727 * genmatch.c (lower_for): Likewise.
8728 * haifa-sched.c (haifa_sched_init): Likewise.
8729 (add_to_speculative_block): Likewise.
8730 (create_check_block_twin): Likewise.
8731 * predict.c (handle_missing_profiles): Likewise.
8732 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
8733 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
8734 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
8735 Likewise.
8736 (maybe_lower_iteration_bound): Likewise.
8737 * tree-ssa-sccvn.c (DFS): Likewise.
8738 * tree-stdarg.c (reachable_at_most_once): Likewise.
8739 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8740 (vectorizable_store): Likewise.
8741
8742 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8743
8744 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
8745 (sccvn_dom_walker): make cond_stack an auto_vec.
8746
8747 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8748
8749 * ree.c (struct ext_state): Make type of members auto_vec.
8750 (find_and_remove_re): Adjust.
8751
8752 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8753
8754 * cfgexpand.c (struct stack_vars_data): Make type of fields
8755 auto_vec.
8756 (expand_used_vars): Adjust.
8757
8758 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8759
8760 * ipa.c (record_cdtor_fn): Adjust.
8761 (build_cdtor_fns): Likewise.
8762 (ipa_cdtor_merge): Make static_ctors and static_dtors local
8763 variables.
8764
8765 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8766
8767 * genextract.c (struct accum_extract): Add constructor and make
8768 members auto_vec.
8769 (gen_insn): Adjust.
8770
8771 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8772
8773 * tree.c (struct free_lang_data_d): Add constructor and change
8774 types of members to ones that automatically manage resources.
8775 (fld_worklist_push): Adjust.
8776 (find_decls_types): Likewise.
8777 (find_decls_types_in_eh_region): Likewise.
8778 (free_lang_data_in_cgraph): Stop manually creating and
8779 destroying members of free_lang_data_d.
8780
8781 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
8782
8783 PR rtl-optimization/68961
8784 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
8785 peephole variant. Use sse_reg_operand predicates.
8786
8787 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
8788
8789 * config/i386/predicates.md (x86_64_immediate_operand)
8790 <case CONST_INT>: Remove unneeded truncation to DImode.
8791 <case CONST>: Ditto.
8792 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
8793
8794 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8795
8796 PR target/71805
8797 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
8798 The xxperm and xxpermr instructions require that the 2nd input
8799 operand overlap with the output operand, and not the 1st.
8800 (altivec_vperm_v8hiv16qi): Likewise.
8801 (altivec_vperm_<mode>_uns_internal): Likewise.
8802 (altivec_vpermr_<mode>_internal): Likewise.
8803 (vperm_v8hiv4si): Likewise.
8804 (vperm_v16qiv8hi): Likewise.
8805
8806 2016-07-12 Nathan Sidwell <nathan@acm.org>
8807
8808 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
8809 when -mno-pic-data-is-text-relative is in effect, by default.
8810 * doc/invoke.texi (mpic-data-is-text-relative): Document new
8811 behavior and clarify.
8812
8813 2016-07-12 Martin Liska <mliska@suse.cz>
8814
8815 * params.def: Add avg-loop niter.
8816 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
8817 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
8818 * doc/invoke.texi: Document the new parameter.
8819
8820 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8821
8822 PR middle-end/71700
8823 * expr.c (store_constructor): Mask sign-extended bits when widening
8824 sub-word constructor element at the start of a word.
8825
8826 2016-07-12 Martin Liska <mliska@suse.cz>
8827
8828 * Makefile.in: Append rule for params-options.h.
8829 * params-options.h: New file.
8830
8831 2016-07-12 Martin Liska <mliska@suse.cz>
8832
8833 * ira-build.c (mark_loops_for_removal): Properly iterate
8834 loops.
8835
8836 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
8837 Richard Biener <rguenther@suse.de>
8838
8839 PR tree-optimization/23286
8840 PR tree-optimization/70159
8841 * doc/invoke.texi: Document -fcode-hoisting.
8842 * common.opt (fcode-hoisting): New flag.
8843 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
8844 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
8845 (do_regular_insertion): Rename to ...
8846 (do_pre_regular_insertion): ... this and amend general comments
8847 on insertion strathegy.
8848 (do_partial_partial_insertion): Rename to ...
8849 (do_pre_partial_partial_insertion): ... this.
8850 (do_hoist_insertion): New function.
8851 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
8852 and call do_hoist_insertion properly.
8853 (insert): Adjust.
8854 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
8855 (pass_pre::execute): Register hoist_insert stats.
8856
8857 2016-07-12 Jakub Jelinek <jakub@redhat.com>
8858
8859 PR middle-end/71716
8860 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
8861 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
8862 is different from mode's bitsize. Small cleanup.
8863
8864 2016-07-12 Richard Biener <rguenther@suse.de>
8865
8866 PR rtl-optimization/68961
8867 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
8868 to simplify to a non-constant.
8869
8870 2016-07-11 Jakub Jelinek <jakub@redhat.com>
8871
8872 PR middle-end/71758
8873 * omp-low.c (expand_omp_target): Gimplify device.
8874
8875 PR tree-optimization/71823
8876 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
8877 to get vec_oprnds2 from op2.
8878
8879 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
8880
8881 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
8882 Hoist common subexpressions.
8883 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
8884
8885 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
8886
8887 PR target/71800
8888 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
8889 prevent generation of 'stxsiwx' on pre Power8 hardware.
8890
8891 2016-07-11 David Malcolm <dmalcolm@redhat.com>
8892
8893 * input.c: Include cpplib.h.
8894 (selftest::temp_source_file): New class.
8895 (selftest::temp_source_file::temp_source_file): New ctor.
8896 (selftest::temp_source_file::~temp_source_file): New dtor.
8897 (selftest::should_have_column_data_p): New function.
8898 (selftest::test_should_have_column_data_p): New function.
8899 (selftest::temp_line_table): New class.
8900 (selftest::temp_line_table::temp_line_table): New ctor.
8901 (selftest::temp_line_table::~temp_line_table): New dtor.
8902 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
8903 it to create a temp_line_table.
8904 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
8905 locations that are known to have column data.
8906 (selftest::line_table_case): New struct.
8907 (selftest::test_reading_source_line): Move tempfile handling
8908 to class temp_source_file.
8909 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
8910 (selftest::assert_token_loc_eq): New function.
8911 (ASSERT_TOKEN_LOC_EQ): New macro.
8912 (selftest::test_lexer): New function.
8913 (selftest::boundary_locations): New array.
8914 (selftest::input_c_tests): Call test_should_have_column_data_p.
8915 Loop over a test matrix of interesting values of location and
8916 default_range_bits, calling test_lexer on each case in the matrix.
8917 Move call to test_accessing_ordinary_linemaps into the matrix.
8918 * selftest.h (ASSERT_EQ): Reimplement in terms of...
8919 (ASSERT_EQ_AT): New macro.
8920
8921 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
8922
8923 PR target/71801
8924 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
8925 Don't convert TImode in debug insn.
8926
8927 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
8928
8929 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
8930 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
8931 (tree_type_common::lang_flag_7): New.
8932 (tree_type_common::spare): Reduce size.
8933 * tree.h (TYPE_ALIGN_OK): Remove.
8934 (TYPE_LANG_FLAG_7): New.
8935 (get_inner_reference): Adjust header.
8936 * print-tree.c (print_node): Adjust.
8937 * expr.c (get_inner_reference): Remove parameter keep_aligning.
8938 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
8939 calls to get_inner_reference.
8940 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
8941 handling of TYPE_ALIGN_OK.
8942 * builtins.c (get_object_alignment_2): Adjust call to
8943 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
8944 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
8945 TYPE_ALIGN_OK.
8946 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
8947 * cfgexpand.c (expand_debug_expr): Likewise.
8948 * dbxout.c (dbxout_expand_expr): Likewise.
8949 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
8950 loc_list_from_tree, fortran_common): Likewise.
8951 * fold-const.c (optimize_bit_field_compare,
8952 decode_field_reference, fold_unary_loc, fold_comparison,
8953 split_address_to_core_and_offset): Likewise.
8954 * gimple-laddress.c (execute): Likewise.
8955 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
8956 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
8957 * hsa-gen.c (gen_hsa_addr): Likewise.
8958 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
8959 * tsan.c (instrument_expr): Likewise.
8960 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
8961 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
8962 * tree-affine.c (tree_to_aff_combination,
8963 get_inner_reference_aff): Adjust calls to get_inner_reference.
8964 * tree-data-ref.c (split_constant_offset_1,
8965 dr_analyze_innermost): Likewise.
8966 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
8967 * tree-sra.c (ipa_sra_check_caller): Likewise.
8968 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
8969 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
8970 bswap_replace): Likewise.
8971 * tree-vect-data-refs.c (vect_check_gather,
8972 vect_analyze_data_refs): Likewise.
8973 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
8974 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
8975 TYPE_ALIGN_OK.
8976
8977 2016-07-11 David Malcolm <dmalcolm@redhat.com>
8978
8979 * Makefile.in (selftest-valgrind): New phony target.
8980 * function-tests.c (selftest::build_cfg): Delete pass instances
8981 created by the test.
8982 (selftest::convert_to_ssa): Likewise.
8983 (selftest::test_expansion_to_rtl): Likewise.
8984 * tree-cfg.c (selftest::test_linear_chain): Release dominator
8985 vectors.
8986 (selftest::test_diamond): Likewise.
8987
8988 2016-07-11 Richard Biener <rguenther@suse.de>
8989
8990 PR tree-optimization/71816
8991 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
8992 than replacing all of its operands.
8993
8994 2016-07-11 Alan Modra <amodra@gmail.com>
8995
8996 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
8997 (ctr<mode>): Add unspec.
8998 (ctr<mode>_internal*): Likewise.
8999
9000 2016-07-08 James Bowman <james.bowman@ftdichip.com>
9001
9002 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
9003 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
9004
9005 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
9006
9007 PR rtl-optimization/71621
9008 * lra-constraints.c (process_alt_operands): Check combination of
9009 reg class and mode.
9010
9011 2016-07-08 Jason Merrill <jason@redhat.com>
9012 Richard Biener <rguenther@suse.de>
9013
9014 P0145: Refining Expression Order for C++.
9015 * gimplify.c (initial_rhs_predicate_for): New.
9016 (gimplfy_modify_expr): Gimplify RHS before LHS.
9017
9018 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9019
9020 PR target/71297
9021 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9022 Allow standard error handling to take over when a wrong number
9023 of arguments is presented to __builtin_vec_ld () or
9024 __builtin_vec_st ().
9025
9026 2016-07-08 Jiong Wang <jiong.wang@arm.com>
9027
9028 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
9029 variants.
9030 (smin): Likewise.
9031 (fmax): New entry.
9032 (fmin): Likewise.
9033 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
9034 __builtin_aarch64_fmaxv2sf.
9035 (vmaxnmq_f32): Likewise.
9036 (vmaxnmq_f64): Likewise.
9037 (vminnm_f32): Likewise.
9038 (vminnmq_f32): Likewise.
9039 (vminnmq_f64): Likewise.
9040
9041 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
9042
9043 PR target/71806
9044 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
9045 enable -mfloat128-hardware by default.
9046 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
9047 that IEEE 128-bit hardware support needs.
9048 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
9049 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
9050 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
9051 floating point requires.
9052 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9053 -mfloat128 and -mfloat128-hardware changes.
9054
9055 2016-07-08 Alan Hayward <alan.hayward@arm.com>
9056
9057 PR tree-optimization/71667
9058 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
9059
9060 2016-07-08 Martin Liska <mliska@suse.cz>
9061
9062 PR middle-end/71606
9063 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
9064 folding produces SAVE_EXPRs, thus return false for the type.
9065
9066 2016-07-07 Martin Liska <mliska@suse.cz>
9067
9068 * file-find.c (remove_prefix): New function.
9069 * file-find.h (remove_prefix): Declare the function.
9070 * gcc-ar.c (main): Skip a folder of the wrapper if
9071 a wrapped binary would point to the same file.
9072
9073 2016-07-07 Jan Hubicka <jh@suse.cz>
9074
9075 * tree-scalar-evolution.c (iv_can_overflow_p): export.
9076 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
9077 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
9078
9079 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
9080
9081 PR ipa/71624
9082 * ipa-inline-analysis.c (compute_inline_parameters): Set
9083 local.can_change_signature to false for intrumentation
9084 thunk callees.
9085
9086 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
9087
9088 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
9089 with TARGET_HAVE_MOVT.
9090 (TARGET_HAVE_MOVT): Define.
9091 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
9092 availability with TARGET_HAVE_MOVT.
9093 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
9094 availability.
9095 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
9096 TARGET_THUMB2.
9097 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
9098 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
9099 * config/arm/constraints.md (define_constraint "j"): Use
9100 TARGET_HAVE_MOVT to check MOVT availability.
9101
9102 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
9103
9104 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
9105
9106 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
9107
9108 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
9109 (armv8-m.main): Likewise.
9110 (armv8-m.main+dsp): Likewise.
9111 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
9112 (FL_FOR_ARCH8M_MAIN): Likewise.
9113 * config/arm/arm-tables.opt: Regenerate.
9114 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
9115 armv8-m.main+dsp to BE8_LINK_SPEC.
9116 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
9117 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
9118 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
9119 Baseline and Mainline.
9120 (arm_option_override_internal): Also disable arm_restrict_it when
9121 !arm_arch_notm. Update comment for -munaligned-access to also cover
9122 ARMv8-M Baseline.
9123 (arm_file_start): Increase buffer size for printing architecture name.
9124 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
9125 and armv8-m.main+dsp.
9126 (mno-unaligned-access): Clarify that this is disabled by default for
9127 ARMv8-M Baseline architectures as well.
9128
9129 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
9130
9131 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
9132 decide whether to prevent some libgcc routines being included for some
9133 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
9134 link between this condition and the one in
9135 libgcc/config/arm/lib1func.S.
9136
9137 2016-07-07 Richard Biener <rguenther@suse.de>
9138
9139 * tree-ssa-pre.c: Include alias.h.
9140 (compute_avail): If we have multiple VN_REFERENCEs with the
9141 same hashtable entry adjust that to make it a valid replacement
9142 for all of them with respect to alignment and aliasing
9143 when doing insertion.
9144 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
9145 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
9146
9147 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
9148
9149 PR target/70098
9150 PR target/71763
9151 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
9152 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
9153 constraint.
9154
9155 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9156
9157 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
9158 (adjust_mems): Adjust.
9159 (adjust_insn): Likewise.
9160 (prepare_call_arguments): Likewise.
9161
9162 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9163
9164 * gcse.c (struct ls_expr): Make stores field a vector.
9165 (ldst_entry): Adjust.
9166 (free_ldst_entry): Likewise.
9167 (print_ldst_list): Likewise.
9168 (compute_ld_motion_mems): Likewise.
9169 (update_ld_motion_stores): Likewise.
9170
9171 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9172
9173 * gcse.c (struct ls_expr): Remove loads field.
9174 (ldst_entry): Adjust.
9175 (free_ldst_entry): Likewise.
9176 (print_ldst_list): Likewise.
9177 (compute_ld_motion_mems): Likewise.
9178
9179 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9180
9181 * store-motion.c (struct st_expr): Make antic_stores a vector.
9182 (st_expr_entry): Adjust.
9183 (free_st_expr_entry): Likewise.
9184 (print_store_motion_mems): Likewise.
9185 (find_moveable_store): Likewise.
9186 (compute_store_table): Likewise.
9187 (remove_reachable_equiv_notes): Likewise.
9188 (replace_store_insn): Likewise.
9189 (build_store_vectors): Likewise.
9190
9191 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9192
9193 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
9194 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
9195
9196 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
9197
9198 PR tree-optimization/71518
9199 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
9200 misalign also for outer loops with negative step.
9201
9202 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
9203
9204 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
9205 (cortex_a53_shift): Add mov_shift.
9206 (cortex_a53_shift_reg): Add new reservation for register shifts.
9207 (cortex_a53_alu): Remove bfm.
9208 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
9209 (cortex_a53_alu_extr): Add new reservation for EXTR.
9210 (bypasses): Improve bypass modelling.
9211
9212 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9213
9214 PR target/50739
9215 * config/avr/avr.c (avr_asm_select_section): Strip off
9216 SECTION_DECLARED from flags when calling get_section.
9217
9218 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9219
9220 * tree-vectorizer.h (vect_memory_access_type): Add
9221 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
9222 * tree-vect-stmts.c (compare_step_with_zero): New function.
9223 (perm_mask_for_reverse): Move further up file.
9224 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
9225 step is negative.
9226 (get_negative_load_store_type): New function.
9227 (get_load_store_type): Call it. Add an ncopies argument.
9228 (vectorizable_mask_load_store): Update call accordingly and
9229 remove tests for negative steps.
9230 (vectorizable_store, vectorizable_load): Likewise. Handle new
9231 memory_access_types.
9232
9233 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9234
9235 * tree-vectorizer.h (vect_memory_access_type): New enum.
9236 (_stmt_vec_info): Add a memory_access_type field.
9237 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
9238 (vect_model_store_cost): Take an access type instead of a boolean.
9239 (vect_model_load_cost): Likewise.
9240 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
9241 vect_model_store_cost and vect_model_load_cost.
9242 * tree-vect-stmts.c (vec_load_store_type): New enum.
9243 (vect_model_store_cost): Take an access type instead of a
9244 store_lanes_p boolean. Simplify tests.
9245 (vect_model_load_cost): Likewise, but for load_lanes_p.
9246 (get_group_load_store_type, get_load_store_type): New functions.
9247 (vectorizable_store): Use get_load_store_type. Record the access
9248 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
9249 (vectorizable_load): Likewise.
9250 (vectorizable_mask_load_store): Likewise. Replace is_store
9251 variable with vls_type.
9252
9253 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9254
9255 * tree-vectorizer.h (vect_grouped_load_supported): Add a
9256 single_element_p parameter.
9257 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
9258 Check the PR65518 case here rather than in vectorizable_load.
9259 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
9260 * tree-vect-stmts.c (vectorizable_load): Likewise.
9261
9262 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9263
9264 * tree-vectorizer.h (gather_scatter_info): New structure.
9265 (vect_check_gather_scatter): Return a bool rather than a decl.
9266 Replace return-by-pointer arguments with a single
9267 gather_scatter_info *.
9268 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
9269 (vect_analyze_data_refs): Update call accordingly.
9270 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
9271 (vectorizable_mask_load_store): Likewise. Also record the
9272 offset dt and vectype in the gather_scatter_info.
9273 (vectorizable_store): Likewise.
9274 (vectorizable_load): Likewise.
9275
9276 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9277
9278 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
9279 strided groups, use the cost of N scalar accesses instead
9280 of ncopies vector accesses.
9281 (vect_model_load_cost): Likewise.
9282
9283 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9284
9285 * tree-vect-stmts.c (vect_cost_group_size): Delete.
9286 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
9287 variable to indicate when once-per-group costs are being used.
9288 (vect_model_load_cost): Likewise. Fix comment and misindented code.
9289
9290 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9291
9292 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
9293 peeling-for-gaps condition.
9294
9295 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9296
9297 * config/s390/s390.c (s390_expand_vec_init): Force initializer
9298 element to register if it doesn't match general_operand.
9299
9300 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
9301 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9302
9303 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
9304 prototype.
9305 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
9306 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
9307 (SIGNBIT): New mode iterator.
9308 (Fsignbit): New mode attribute.
9309 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
9310 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
9311 when direct moves are available.
9312 (signbit<mode>2_dm): New define_insn_and_split).
9313 (signbit<mode>2_dm2): New define_insn.
9314
9315 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9316
9317 PR rtl-optimization/71594
9318 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
9319 into subregs of appropriate mode before trying to emit a conditional
9320 move.
9321
9322 2016-07-05 Jan Hubicka <jh@suse.cz>
9323
9324 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
9325 (simple_iv): Use it.
9326
9327 2016-07-05 Jan Hubicka <jh@suse.cz>
9328
9329 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
9330
9331 2016-07-05 Jiong Wang <jiong.wang@arm.com>
9332
9333 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
9334 "offmemok".
9335
9336 2016-07-05 Jan Hubicka <jh@suse.cz>
9337
9338 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
9339 IV can overflow.
9340
9341 2016-07-05 Richard Biener <rguenther@suse.de>
9342
9343 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
9344 Handle empty else block.
9345 (is_feasible_trace): Likewise.
9346 (split_paths): Likewise.
9347
9348 2016-07-05 Richard Biener <rguenther@suse.de>
9349
9350 * tree-loop-distribution.c (distribute_loop): Fix issue with
9351 the cost model loop.
9352
9353 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
9354
9355 * config/arm/neon-testgen.ml: Delete.
9356 * config/arm/neon.ml: Delete.
9357
9358 2016-07-04 Jakub Jelinek <jakub@redhat.com>
9359
9360 PR c++/71739
9361 * tree.c (attribute_value_equal): Use get_attribute_name instead of
9362 directly using TREE_PURPOSE.
9363
9364 2016-07-04 Jiong Wang <jiong.wang@arm.com>
9365
9366 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
9367 * config/aarch64/aarch64_neon.h: Likewise.
9368 * config/aarch64/arm_neon.h: Likewise.
9369 * config/aarch64/atomics.md: Likewise.
9370 * config/aarch64/aarch64-simd-builtins.def: Likewise.
9371 * doc/invoke.texi: Likewise.
9372
9373 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
9374
9375 * config/s390/s390.md: Add "z13" cpu_facility.
9376 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
9377 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
9378 condition" type instructions.
9379
9380 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
9381 Jeff Law <law@redhat.com>
9382
9383 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
9384 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
9385
9386 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
9387
9388 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
9389 permutation for TARGET_AVX512F.
9390 (ix86_expand_vec_one_operand_perm_avx512): New function.
9391 (expand_vec_perm_1): Invoke introduced function.
9392 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
9393 it may be not valid after vectorization.
9394
9395 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9396
9397 PR target/63874
9398 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
9399 typo in comment. Only force to memory if it is a weak
9400 external reference.
9401
9402 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
9403 Jiong Wang <jiong.wang@arm.com>
9404
9405 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
9406 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
9407 (AARCH64_FL_F16): New.
9408 (AARCH64_FL_FOR_ARCH8_2): New.
9409 (AARCH64_ISA_8_2): New.
9410 (AARCH64_ISA_F16): New.
9411 (TARGET_FP_F16INST): New.
9412 (TARGET_SIMD_F16INST): New.
9413 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
9414 ("fp"): Disabling "fp" also disables "fp16".
9415 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
9416 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
9417 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
9418 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
9419
9420 2016-07-04 Jan Beulich <jbeulich@suse.com>
9421
9422 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
9423
9424 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
9425
9426 PR target/71720
9427 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
9428 the insns, use an insn form that does not adjust the offset on
9429 little endian systems.
9430
9431 2016-07-01 Jan Beulich <jbeulich@suse.com>
9432
9433 * varasm.c (get_variable_section): Validate initializer in
9434 named .bss-like sections.
9435
9436 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
9437
9438 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
9439 Exchange the order of the second and third operands in the vpermr
9440 instruction tmeplate.
9441
9442 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
9443
9444 PR target/71698
9445 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
9446 Disallow TDmode values.
9447
9448 2016-07-01 Alan Modra <amodra@gmail.com>
9449
9450 PR rtl-optimization/71709
9451 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
9452 being set, not referenced.
9453
9454 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
9455
9456 PR tree-optimization/70729
9457 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
9458 of loop since it can be not valid after transformation.
9459
9460 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9461
9462 * config/arm/arm.c (thumb_reload_in_hi): Delete.
9463 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
9464
9465 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
9466
9467 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
9468 for NULL decl.
9469
9470 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
9471
9472 PR target/71677
9473 * config/rs6000/constraints.md (wY constraint): New constraint to
9474 match the requirements for the LXSD and STXSD instructions.
9475 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
9476 predicate to match the requirements for the LXSD and STXSD
9477 instructions.
9478 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
9479 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
9480 to make sure that the bottom 2 bits of offset are 0, the address
9481 form is offsettable, and no updating is done in the address mode.
9482 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
9483 (movdi_internal32): Likewise
9484 (movdi_internal64): Likewise.
9485
9486 2016-06-30 Jakub Jelinek <jakub@redhat.com>
9487
9488 PR tree-optimization/71707
9489 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
9490 strinfo even for ADDR_EXPR ptr.
9491
9492 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
9493
9494 * config/rs6000/altivec.md (darn_32): Change the condition to
9495 TARGET_P9_MISC instead of TARGET_MODULO.
9496 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
9497 condition expression.
9498 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
9499 condition expression.
9500 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
9501 (DFP_TEST): New code iterator.
9502 (dfptstsfi_<code>_mode>): New define_expand.
9503 (*dfp_sgnfcnc_<mode>): New define_insn.
9504 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
9505 definition next to BU_P9_MISC_1 definition and change the MASK
9506 value to RS6000_BTM_P9_MISC.
9507 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
9508 (BU_P9_64BIT_MISC_0): Likewise.
9509 (BU_P9_DFP_MISC_0): New macro definition.
9510 (BU_P9_DFP_MISC_1): New macro definition.
9511 (BU_P9_DFP_MISC_2): New macro definition.
9512 (BU_P9_DFP_OVERLOAD_1): New macro definition.
9513 (BU_P9_DFP_OVERLOAD_2): New macro definition.
9514 (BU_P9_DFP_OVERLOAD_3): New macro definition.
9515 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
9516 (TSTSFI_LT_TD): Likewise.
9517 (TSTSFI_EQ_DD): Likewise.
9518 (TSTSFI_EQ_TD): Likewise.
9519 (TSTSFI_GT_DD): Likewise.
9520 (TSTSFI_GT_TD): Likewise.
9521 (TSTSFI_OV_DD): Likewise.
9522 (TSTSFI_OV_TD): Likewise.
9523 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
9524 (TSTSFI_LT_DD): Likewise.
9525 (TSTSFI_LT_TD): Likewise.
9526 (TSTSFI_EQ): Likewise.
9527 (TSTSFI_EQ_DD): Likewise.
9528 (TSTSFI_EQ_TD): Likewise.
9529 (TSTSFI_GT): Likewise.
9530 (TSTSFI_GT_DD): Likewise.
9531 (TSTSFI_GT_TD): Likewise.
9532 (TSTSFI_OV): Likewise.
9533 (TSTSFI_OV_DD): Likewise.
9534 (TSTSFI_OV_TD): Likewise.
9535 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9536 overloaded test significance functions.
9537 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
9538 OPTION_MASK_P9_MISC into the representation of this mask.
9539 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
9540 of this mask.
9541 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
9542 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
9543 non-zero.
9544 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
9545 argument is a 6-bit unsigned literal value if the icode argument
9546 represents a DFP test significance built-in call.
9547 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
9548 flag used independently and in combination with the
9549 RS6000_BTM_64BIT flag.
9550 (rs6000_opt_masks): Add entry for power9-misc command-line option.
9551 (rs6000_builtin_mask_names): Add entry for power9-misc
9552 command-line option.
9553 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
9554 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
9555 RS6000_BTM_P9_MISC macros.
9556 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
9557 option and change the description of the -mpower9-vector option to
9558 enable only vector instructions, removing its erroneously claimed
9559 support for scalar instructions.
9560 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9561 the ISA 3.0 digital floating point test significance built-in
9562 functions.
9563
9564 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
9565
9566 * config/aarch64/aarch64.c (cortexa35_tunings):
9567 Enable AES fusion. Use cortexa57_branch_cost.
9568 (cortexa53_tunings): Use cortexa57_branch_cost.
9569 (cortexa72_tunings): Use cortexa57_branch_cost.
9570 Use AUTOPREFETCHER_WEAK.
9571 (cortexa73_tunings): Use cortexa57_branch_cost.
9572
9573 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9574 James Greenhalgh <james.greenhalgh@arm.com>
9575
9576 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
9577 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
9578 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
9579 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
9580 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
9581 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
9582 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
9583 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
9584 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
9585 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
9586 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
9587 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
9588 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
9589 New intrinsics.
9590
9591 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
9592 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9593
9594 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
9595 New define_insn.
9596 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
9597
9598 2016-06-30 David Malcolm <dmalcolm@redhat.com>
9599
9600 PR driver/71651
9601 * gcc.c (driver::build_option_suggestions): Pass "option" to
9602 add_misspelling_candidates.
9603 * opts-common.c (add_misspelling_candidates): Add "option" param;
9604 use it to avoid adding negated forms for options marked with
9605 RejectNegative.
9606 * opts.h (add_misspelling_candidates): Add "option" param.
9607
9608 2016-06-30 Jakub Jelinek <jakub@redhat.com>
9609
9610 PR middle-end/71693
9611 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
9612 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
9613 first when permuting bitwise operation with rotate. Cast
9614 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
9615
9616 2016-06-29 David Malcolm <dmalcolm@redhat.com>
9617
9618 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
9619 for misspelled param names.
9620 * params.c: Include spellcheck.h.
9621 (find_param_fuzzy): New function.
9622 * params.h (find_param_fuzzy): New prototype.
9623 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
9624 * spellcheck.h (struct edit_distance_traits<const char *>):
9625 ...here.
9626
9627 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
9628
9629 * config/rs6000/predicates.md (const_0_to_7_operand): New
9630 predicate, recognize 0..7.
9631 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
9632 support for doing extracts from V16QImode, V8HImode, V4SImode
9633 under ISA 3.0.
9634 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
9635 vector extract support.
9636 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
9637 for ISA 3.0 vector extract.
9638 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
9639 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
9640 extracts of a constant element number from small integer vectors
9641 on 64-bit ISA 3.0 systems.
9642 (vsx_extract_<mode>_di): Likewise.
9643 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
9644 say when we can do ISA 3.0 vector extracts.
9645 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
9646 registers, using the stxsiwx instruction.
9647
9648 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
9649
9650 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
9651 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
9652 qdf24xx_regmove_cost, qdf24xx_tunings): New.
9653 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
9654 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
9655 * config/arm/arm.c (arm_qdf24xx_tune): New.
9656
9657 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
9658
9659 * config/aarch64/aarch64.c (cortexa53_tunings):
9660 Increase loop alignment to 8. Set function alignment to 16.
9661 (cortexa35_tunings): Likewise.
9662 (cortexa57_tunings): Increase loop alignment to 8.
9663 (cortexa72_tunings): Likewise.
9664 (cortexa73_tunings): Likewise.
9665
9666 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
9667
9668 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
9669 for arm_fp16_ok and arm_fp16_hw.
9670 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
9671 arm_fp16_alternative.
9672
9673 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
9674
9675 PR tree-optimization/71655
9676 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
9677 types when swapping operands.
9678
9679 2016-06-29 Martin Liska <mliska@suse.cz>
9680
9681 PR middle-end/71585
9682 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
9683 * ipa-inline-transform.c (inline_call): Remove unnecessary call
9684 of build_optimization_node.
9685
9686 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
9687
9688 PR tree-optimization/70729
9689 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
9690 independent in loops having positive safelen value.
9691 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
9692 it may be not valid after vectorization.
9693
9694 2016-06-29 Jakub Jelinek <jakub@redhat.com>
9695
9696 PR tree-optimization/71625
9697 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
9698 is sorted by ascending list->offset. If PTR is non-NULL and there is
9699 previous strinfo, call get_stridx_plus_constant.
9700 (get_stridx): Pass exp as second argument to get_addr_stridx.
9701 (addr_stridxptr): Add missing list = list->next, so that there can be
9702 more than one entries in the list. Bump limit from 16 to 32. Ensure
9703 the list is sorted by ascending list->offset.
9704 (get_stridx_plus_constant): Adjust so that it can be also called with
9705 ADDR_EXPR instead of SSA_NAME as PTR.
9706 (handle_char_store): Pass NULL_TREE as second argument to
9707 get_addr_stridx.
9708
9709 2016-06-29 Richard Biener <rguenther@suse.de>
9710
9711 PR rtl-optimization/68961
9712 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
9713
9714 2016-06-29 Richard Biener <rguenther@suse.de>
9715
9716 PR middle-end/71002
9717 * alias.c (component_uses_parent_alias_set_from): Handle
9718 type punning through union accesses by using the union alias set.
9719 * gimple.c (gimple_get_alias_set): Remove union type punning case.
9720
9721 2016-07-29 Richard Biener <rguenther@suse.de>
9722
9723 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
9724 precision not matching mode precision.
9725
9726 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
9727
9728 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
9729 pa_output_arg_descriptor.
9730 (call_val_symref_64bit_post_reload): Likewise.
9731 (call_val_powf_64bit_post_reload): Likewise.
9732 (sibcall_internal_symref_64bit): Likewise.
9733 (sibcall_value_internal_symref_64bit): Likewise.
9734
9735 2016-06-28 Jakub Jelinek <jakub@redhat.com>
9736
9737 PR middle-end/71626
9738 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
9739 a constant, force its SUBREG_REG into memory or register instead
9740 of whole op1.
9741
9742 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9743
9744 PR target/58655
9745 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
9746 * doc/invoke.texi (AVR Options): Document it.
9747
9748 2016-06-28 Walter Lee <walt@tilera.com>
9749
9750 * config/tilegx/linux.h: Do not include arch/icache.h
9751 (CLEAR_INSN_CACHE): Provide inlined definition directly.
9752 * config/tilepro/linux.h: Do not include arch/icache.h
9753 (CLEAR_INSN_CACHE): Provide inlined definition directly.
9754
9755 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
9756
9757 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
9758 for big-endian BIT_FIELD_REF.
9759
9760 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
9761
9762 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
9763 ('size' attribute): Add '128'.
9764 Include power9.md.
9765 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
9766 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
9767 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
9768 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
9769 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
9770 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
9771 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
9772 *trunc<mode>df2_odd): Set size attribute to '128'.
9773 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
9774 * config/rs6000/power6.md (power6-fp): Include dfp type.
9775 * config/rs6000/power7.md (power7-fp): Likewise.
9776 * config/rs6000/power8.md (power8-fp): Likewise.
9777 * config/rs6000/power9.md: New file.
9778 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
9779 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
9780 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
9781 htmsimple.
9782 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
9783 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
9784 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
9785 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
9786 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
9787 dfp_dscri_<mode>): Change type attribute to dfp.
9788 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
9789 attribute to vecsimple.
9790 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
9791 and prefetch streams.
9792 (rs6000_option_override_internal): Remove temporary code setting
9793 tuning to power8. Don't set rs6000_sched_groups for power9.
9794 (last_scheduled_insn): Change to rtx_insn *.
9795 (divide_cnt, vec_load_pendulum): New variables.
9796 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
9797 (rs6000_issue_rate): Set issue rate for Power9.
9798 (is_power9_pairable_vec_type): New.
9799 (power9_sched_reorder2): New.
9800 (rs6000_sched_reorder2): Call new function for Power9 specific
9801 reordering.
9802 (insn_must_be_first_in_group): Remove Power9.
9803 (insn_must_be_last_in_group): Likewise.
9804 (force_new_group): Likewise.
9805 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
9806 Initialize divide_cnt/vec_load_pendulum.
9807 (_rs6000_sched_context, rs6000_init_sched_context,
9808 rs6000_set_sched_context): Handle context save/restore of new
9809 variables.
9810
9811 2016-06-28 Richard Biener <rguenther@suse.de>
9812
9813 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
9814 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
9815 COMPONENT_REF operand.
9816 (nonoverlapping_component_refs_p): Likewise.
9817 * stor-layout.c (start_bitfield_representative): Mark
9818 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
9819
9820 2016-06-28 Jakub Jelinek <jakub@redhat.com>
9821
9822 * Makefile.in: Don't cat ../stage_current if it does not exist.
9823
9824 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
9825 last argument is a bit-field.
9826
9827 PR rtl-optimization/71673
9828 * internal-fn.c (expand_arith_overflow_result_store): Use
9829 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
9830 expand_simple_binop.
9831
9832 PR middle-end/66867
9833 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
9834 expand_ifn_atomic_compare_exchange): New functions.
9835 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
9836 * tree.h (build_call_expr_internal_loc): Rename to ...
9837 (build_call_expr_internal_loc_array): ... this. Fix up type of
9838 last argument.
9839 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
9840 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
9841 ATOMIC_COMPARE_EXCHANGE result.
9842 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
9843 * gimple-fold.h (optimize_atomic_compare_exchange_p,
9844 fold_builtin_atomic_compare_exchange): New prototypes.
9845 * gimple-fold.c (optimize_atomic_compare_exchange_p,
9846 fold_builtin_atomic_compare_exchange): New functions..
9847 * tree-ssa.c (execute_update_addresses_taken): If
9848 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
9849 of call when finding addressable vars, and if such var becomes
9850 non-addressable, call fold_builtin_atomic_compare_exchange.
9851
9852 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
9853
9854 PR target/71670
9855 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
9856 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
9857
9858 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
9859
9860 * config/rs6000/rs6000.md ('type' attribute): Add
9861 veclogical,veccmpfx,vecexts,vecmove insn types.
9862 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
9863 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
9864 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
9865 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
9866 *nabs<mode>2_hw): Change type to vecmove.
9867 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
9868 *boolcc<mode>3_internal, *eqv<mode>3_internal,
9869 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
9870 *ieee_128bit_vsx_abs<mode>2_internal,
9871 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
9872 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
9873 *ieee128_mtvsrd_32bit): Change type to veclogical.
9874 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
9875 *movdi_internal32, *movdi_internal64): Update insn types.
9876 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
9877 vsx_extract_<mode>): Change type to veclogical.
9878 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
9879 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
9880 *vsx_sign_extend_si_v2di): Change type to vecexts.
9881 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
9882 type to veclogical.
9883 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
9884 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
9885 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
9886 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
9887 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
9888 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
9889 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
9890 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
9891 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
9892 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
9893 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
9894 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
9895 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
9896 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
9897 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
9898 (ppc7450-vecsimple): Add veclogical, vecmove.
9899 (ppc7450-veccmp): Add veccmpfx.
9900 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
9901 vecmove.
9902 (ppc8540_vector_compare): Add veccmpfx.
9903 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
9904 * config/rs6000/cell.md (cell-fp): Add fpsimple.
9905 (cell-vecsimple): Add veclogical, vecmove.
9906 (cell-veccmp): Add veccmpfx.
9907 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
9908 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
9909 veccmpfx.
9910 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
9911 * config/rs6000/power4.md (power4-fp): Add fpsimple.
9912 (power4-vecsimple): Add veclogical, vecmove.
9913 (power4-veccmp): Add veccmpfx.
9914 * config/rs6000/power5.md (power5-fp): Add fpsimple.
9915 * config/rs6000/power6.md (power6-fp): Add fpsimple.
9916 (power6-vecsimple): Add veclogical, vecmove.
9917 (power6-veccmp): Add veccmpfx.
9918 * config/rs6000/power7.md (power7-fp): Add fpsimple.
9919 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
9920 * config/rs6000/power8.md (power8-fp): Add fpsimple.
9921 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
9922 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
9923 * config/rs6000/titan.md (titan_fp): Add fpsimple.
9924 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
9925 fpsimple.
9926 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
9927
9928 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
9929
9930 PR target/71656
9931 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
9932 OPTION_MASK_P9_DFORM_VECTOR.
9933 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
9934 disable -mpower9-dform-vector when using reload.
9935 (quad_address_p): Remove 'gpr_p' argument and all associated code.
9936 New 'strict' argument. Update all callers. Add strict addressing
9937 support.
9938 (rs6000_legitimate_offset_address_p): Remove call to
9939 virtual_stack_registers_memory_p.
9940 (rs6000_legitimize_reload_address): Add quad address support.
9941 (rs6000_legitimate_address_p): Move call to quad_address_p above
9942 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
9943 to account for new strict usage.
9944 (rs6000_output_move_128bit): Adjust quad_address_p args to account
9945 for new strict usage.
9946 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
9947
9948 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
9949
9950 PR target/70902
9951 PR target/71453
9952 PR target/71555
9953 PR target/71596
9954 PR target/71657
9955 * config/i386/i386.c (ix86_spill_class): Disable condition to
9956 always return NO_REGS.
9957
9958 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
9959
9960 * predict.c: Include gimple-pretty-print.h
9961 (predicted_by_loop_heuristics_p): Check also
9962 PRED_LOOP_EXIT_WITH_RECURSION
9963 (predict_loops): Find self recursive calls and use special purpose
9964 predictors for them; dump log about decisions.
9965 (pass_profile::execute): Dump info about #of iterations.
9966 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
9967 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
9968
9969 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
9970
9971 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
9972 output_asm_insn calls and shorten long lines. Output .CALL
9973 argument descriptor using pa_output_arg_descriptor. Add various
9974 inline $$dyncall and other optimizations.
9975 (pa_attr_length_indirect_call): Adjust ordering and lengths.
9976
9977 2016-06-25 Jakub Jelinek <jakub@redhat.com>
9978
9979 PR tree-optimization/71643
9980 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
9981 EH preds.
9982
9983 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
9984 leak a bitmap if dep_bb is NULL.
9985
9986 PR tree-optimization/71631
9987 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
9988 to rewrite_expr_tree even if negate_result, move new_lhs var
9989 declaration and initialization earlier, for powi_result set afterwards
9990 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
9991 if new_lhs != lhs, and don't shadow gsi var.
9992
9993 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
9994
9995 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
9996 Add in_loop parameter.
9997 (predict_loops): Add loop guard heuristics.
9998 * predict.def (PRED_LOOP_GUARD): New heuristics.
9999
10000 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
10001
10002 * predict.c: Include ipa-utils.h
10003 (tree_bb_level_prediction): Predict recursive calls.
10004 (tree_estimate_probability_bb): Skip inexpensive calls for call
10005 predictor.
10006 * predict.def (PRED_RECURSIVE_CALL): New.
10007
10008 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10009
10010 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
10011 (BU_FLOAT128_1): Likewise.
10012 (FABSQ): Likewise.
10013 (COPYSIGNQ): Likewise.
10014 (RS6000_BUILTIN_NANQ): Likewise.
10015 (RS6000_BUILTIN_NANSQ): Likewise.
10016 (RS6000_BUILTIN_INFQ): Likewise.
10017 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
10018 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
10019 (TARGET_FOLD_BUILTIN): New #define.
10020 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
10021 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
10022 (rs6000_fold_builtin): New target hook implementation, handling
10023 folding of 128-bit NaNs and infinities.
10024 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
10025 entries are filled in to avoid problems during bootstrap
10026 self-test; define builtins for 128-bit NaNs and infinities.
10027 (rs6000_opt_mask): Add entry for float128.
10028 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
10029 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
10030 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
10031 (const_str_type_node): New #define.
10032 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
10033 to a define_expand that dispatches to either copysign<mode>3_soft
10034 or copysign<mode>3_hard.
10035 (copysign<mode>3_hard): Rename from copysign<mode>3.
10036 (copysign<mode>3_soft): New define_insn.
10037 * doc/extend.texi: Document new builtins.
10038
10039 2016-06-24 Jakub Jelinek <jakub@redhat.com>
10040
10041 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
10042 PRIu64 instead of lu.
10043
10044 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
10045
10046 PR debug/71642
10047 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
10048 copy the type name.
10049
10050 2016-06-24 Jakub Jelinek <jakub@redhat.com>
10051
10052 PR tree-optimization/71647
10053 * omp-low.c (lower_rec_input_clauses): Convert
10054 omp_clause_aligned_alignment (c) to size_type_node for the
10055 last argument of __builtin_assume_aligned.
10056
10057 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
10058
10059 * configure.ac (calling ___tls_get_addr via GOT): New
10060 assembler/linker check.
10061 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
10062 assembler and linker supports calling ___tls_get_addr via GOT.
10063 Otherise, defined to 0.
10064 * config.in: Regenerated.
10065 * configure: Likewise.
10066 * config/i386/constraints.md (Yb): New constraint.
10067 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
10068 (REG_CLASS_NAMES): Likewise.
10069 (REG_CLASS_CONTENTS): Likewise.
10070 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
10071 the b constraint with the Yb constraint. Call ___tls_get_addr
10072 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
10073 is 1.
10074 (*tls_local_dynamic_base_32_gnu): Likewise.
10075 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
10076 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
10077 (*tls_local_dynamic_base_64_<mode>): Likewise.
10078
10079 2016-06-24 Martin Liska <mliska@suse.cz>
10080
10081 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
10082 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
10083 few functions.
10084 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
10085 argument to true if the expected number of iterations is
10086 loop-based.
10087
10088 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
10089
10090 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
10091 assemble for 32bit target.
10092 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
10093 and $ld_ix86_gld_32_opt to link for 32bit target.
10094 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
10095 * configure: Regenerate.
10096
10097 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10098
10099 * config/arm/arm.c (int_log2): Delete definition and prototype.
10100 (shift_op): Use exact_log2 instead of int_log2.
10101 (vfp3_const_double_for_fract_bits): Likewise.
10102
10103 2016-06-24 Jakub Jelinek <jakub@redhat.com>
10104
10105 * internal-fn.c (expand_arith_set_overflow): New function.
10106 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
10107 Use it.
10108 (expand_arith_overflow_result_store): Likewise. Handle precision
10109 smaller than mode precision.
10110 * tree-vrp.c (extract_range_basic): For imag part, handle
10111 properly signed 1-bit precision result.
10112 * doc/extend.texi (__builtin_add_overflow): Document that last
10113 argument can't be pointer to enumerated or boolean type.
10114 (__builtin_add_overflow_p): Document that last argument can't
10115 have enumerated or boolean type.
10116
10117 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
10118 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10119
10120 * config/rs6000/predicates.md (splat_input_operand): Rework.
10121 Don't allow constants, since the insns that use this predicate
10122 don't support constants. Constants are handled by other insns
10123 that are created via combine. During and after register
10124 allocation, only allow indexed or indirect addresses, and not
10125 general addresses. Only allow modes supported by the hardware.
10126 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
10127 comment. Move check for using VSPLTIS<x> to a common location,
10128 instead of doing it in two different places.
10129
10130 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
10131
10132 * config/i386/driver-i386.c (host_detect_local_cpu): Set
10133 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
10134 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
10135 signature_CENTAUR_ebx.
10136
10137 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
10138
10139 PR target/66232
10140 PR target/67400
10141 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
10142 (as_ix86_gas_32_opt): This.
10143 (ld_ix86_tls_ldm_opt): Renamed to ...
10144 (ld_ix86_gld_32_opt): This.
10145 (R_386_TLS_LDM reloc): Updated.
10146 (R_386_GOT32X reloc): New assembler/linker check.
10147 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
10148 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
10149 defined to 0.
10150 * config.in: Regenerated.
10151 * configure: Likewise.
10152 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
10153 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
10154 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
10155 if ix86_force_load_from_GOT_p returns true.
10156 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
10157 ix86_force_load_from_GOT_p returns true.
10158 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
10159 the external function address via the GOT slot.
10160 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
10161 HAVE_AS_IX86_GOT32X before returning false.
10162 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
10163 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
10164
10165 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
10166
10167 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
10168
10169 2016-06-23 Andi Kleen <ak@linux.intel.com>
10170
10171 * Makefile.in: Regenerate.
10172 * doc/install.texi: Document autoprofiledbootstrap.
10173
10174 2016-06-23 Andi Kleen <ak@linux.intel.com>
10175
10176 * config/i386/gcc-auto-profile: New file.
10177
10178 2016-06-23 Martin Liska <mliska@suse.cz>
10179
10180 PR middle-end/71619
10181 * predict.c (predict_loops): Revert the hunk that was removed
10182 in r237103.
10183
10184 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
10185
10186 * config.gcc: Add support for arm*-*-phoenix* targets.
10187 * config/arm/t-phoenix: New.
10188 * config/phoenix.h: New.
10189
10190 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
10191 H.J. Lu <hongjiu.lu@intel.com>
10192
10193 PR target/67400
10194 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
10195 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
10196 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
10197 ix86_force_load_from_GOT_p returns true.
10198 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
10199 ix86_force_load_from_GOT_p returns true.
10200 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
10201 ix86_force_load_from_GOT_p returns true.
10202 (ix86_expand_move): Load the external function address via the
10203 GOT slot if ix86_force_load_from_GOT_p returns true.
10204 * config/i386/predicates.md (x86_64_immediate_operand): Return
10205 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
10206 (x86_64_zext_immediate_operand): Ditto.
10207
10208 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
10209
10210 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
10211
10212 2016-06-22 David Malcolm <dmalcolm@redhat.com>
10213
10214 PR c/70339
10215 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
10216 * diagnostic.c (pedwarn_at_rich_loc): New function.
10217 * spellcheck.h (best_match::best_match): Add a
10218 "best_distance_so_far" optional parameter.
10219 (best_match::set_best_so_far): New method.
10220 (best_match::get_best_distance): New accessor.
10221 (best_match::get_best_candidate_length): New accessor.
10222
10223 2016-06-22 Nick Clifton <nickc@redhat.com>
10224
10225 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
10226 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
10227 modes are accepted as well.
10228 (ucompare_loc_descriptor): Likewise.
10229 (minmax_loc_descriptor): Likewise.
10230 (clz_loc_descriptor): Likewise.
10231 (popcount_loc_descriptor): Likewise.
10232 (bswap_loc_descriptor): Likewise.
10233 (rotate_loc_descriptor): Likewise.
10234 (mem_loc_descriptor): Likewise.
10235 (loc_descriptor): Likewise.
10236
10237 2016-06-22 David Malcolm <dmalcolm@redhat.com>
10238
10239 * common.opt (fdiagnostics-parseable-fixits): New option.
10240 * diagnostic.c: Include "selftest.h".
10241 (print_escaped_string): New function.
10242 (print_parseable_fixits): New function.
10243 (diagnostic_report_diagnostic): Call print_parseable_fixits.
10244 (selftest::assert_print_escaped_string): New function.
10245 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
10246 (selftest::test_print_escaped_string): New function.
10247 (selftest::test_print_parseable_fixits_none): New function.
10248 (selftest::test_print_parseable_fixits_insert): New function.
10249 (selftest::test_print_parseable_fixits_remove): New function.
10250 (selftest::test_print_parseable_fixits_replace): New function.
10251 (selftest::diagnostic_c_tests): New function.
10252 * diagnostic.h (struct diagnostic_context): Add field
10253 "parseable_fixits_p".
10254 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
10255 -fdiagnostics-parseable-fixits.
10256 (-fdiagnostics-parseable-fixits): New option.
10257 * opts.c (common_handle_option): Handle
10258 -fdiagnostics-parseable-fixits.
10259 * selftest-run-tests.c (selftest::run_tests): Call
10260 selftest::diagnostic_c_tests.
10261 * selftest.h (selftest::diagnostic_c_tests): New prototype.
10262
10263 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
10264
10265 PR tree-optimization/71488
10266 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
10267 comparison of boolean vectors.
10268 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
10269 of boolean vectors using bitwise operations.
10270
10271 2016-06-22 Andreas Schwab <schwab@suse.de>
10272
10273 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
10274 Remove declaration.
10275
10276 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
10277
10278 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
10279
10280 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
10281
10282 * config/i386/i386.c (print_reg): Emit an error message on attempt to
10283 print FLAGS_REG.
10284
10285 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10286
10287 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
10288 * config/arm/arm-cores.def (cortex-a73): New entry.
10289 (cortex-a73.cortex-a35): Likewise.
10290 (cortex-a73.cortex-a53): Likewise.
10291 * config/arm/arm-tables.opt: Regenerate.
10292 * config/arm/arm-tune.md: Likewise.
10293 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
10294 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
10295 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
10296 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
10297 * doc/invoke.texi (ARM Options): Document cortex-a73,
10298 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
10299
10300 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10301
10302 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
10303 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
10304 (cortex-a73.cortex-a35): Likewise.
10305 (cortex-a73.cortex-a53): Likewise.
10306 * config/aarch64/aarch64-tune.md: Regenerate.
10307 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
10308 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
10309 -mcpu and -mtune.
10310
10311 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10312
10313 * configure.ac (gcc_cv_as_compress_debug): Remove
10314 --compress-debug-sections as extra as switch.
10315 Handle gas --compress-debug-sections=type.
10316 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
10317 Handle gld --compress-debug-sections=type.
10318 * configure: Regenerate.
10319
10320 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
10321
10322 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
10323
10324 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
10325
10326 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
10327 (do_rewrite): likewise.
10328
10329 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10330
10331 * common/config/mep/mep-common.c: Remove.
10332 * config.gcc: Remove mep-* support.
10333 * config/mep/constraints.md: Remove.
10334 * config/mep/default.h: Remove.
10335 * config/mep/intrinsics.h: Remove.
10336 * config/mep/intrinsics.md: Remove.
10337 * config/mep/ivc2-template.h: Remove.
10338 * config/mep/mep-c5.cpu: Remove.
10339 * config/mep/mep-core.cpu: Remove.
10340 * config/mep/mep-default.cpu: Remove.
10341 * config/mep/mep-ext-cop.cpu: Remove.
10342 * config/mep/mep-intrin.h: Remove.
10343 * config/mep/mep-ivc2.cpu: Remove.
10344 * config/mep/mep-pragma.c: Remove.
10345 * config/mep/mep-protos.h: Remove.
10346 * config/mep/mep.c: Remove.
10347 * config/mep/mep.cpu: Remove.
10348 * config/mep/mep.h: Remove.
10349 * config/mep/mep.md: Remove.
10350 * config/mep/mep.opt: Remove.
10351 * config/mep/predicates.md: Remove.
10352 * config/mep/t-mep: Remove.
10353 * doc/install.texi: Remove mep-* documentation.
10354 * doc/md.texi: Likewise.
10355
10356 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10357
10358 * config.gcc: Remove support for avr-rtems.
10359 * config/avr/gen-avr-mmcu-specs.c: Likewise.
10360 * config/avr/rtems.h: Remove.
10361 * config/avr/t-rtems: Remove.
10362
10363 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10364
10365 * config.gcc: Remove m32r-rtems support.
10366 * config/m32r/rtems.h: Remove.
10367
10368 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10369
10370 * config.gcc: Remove h8300-rtems support.
10371 * config/h8300/rtems.h: Remove.
10372 * config/h8300/t-rtems: Remove.
10373
10374 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10375
10376 * config.gcc: Remove support for knetbsd.
10377 * configure.ac: Likewise.
10378 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
10379 * config/knetbsd-gnu.h: Remove.
10380 * configure: Regenerate.
10381
10382 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10383
10384 * config.gcc: Remove support for openbsd 2 and 3.
10385 * config/openbsd-oldgas.h: Remove.
10386
10387 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10388
10389 * config.gcc: Remove interix support.
10390 * config/i386/i386-interix.h: Remove.
10391 * config/i386/interix.opt: Remove.
10392 * config/i386/t-interix: Remove.
10393 * configure: Regenerate.
10394 * configure.ac: Remove interix support.
10395 * doc/install.texi: Remove interix documentation.
10396
10397 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
10398
10399 * config/rs6000/rs6000.h: Add conditional preprocessing directives
10400 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
10401 not defined.
10402
10403 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
10404
10405 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
10406 they are both PLACEHOLDER_EXPRs.
10407
10408 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10409
10410 * stor-layout.c (layout_type): Move setting complex MODE to
10411 layout_type, instead of setting it ahead of time by the caller.
10412 * tree.c (build_complex_type): Likewise.
10413
10414 2016-06-21 Martin Liska <mliska@suse.cz>
10415
10416 * predict.c (force_edge_cold): Replace imposisble with
10417 impossible.
10418
10419 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
10420
10421 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
10422 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
10423
10424 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
10425
10426 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
10427
10428 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
10429 Ilya Enkovich <ilya.enkovich@intel.com>
10430
10431 PR target/71549
10432 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
10433 New member function to convert V1TImode register to SUBREG
10434 TImode in debug insn.
10435 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
10436 after changing register mode to V1TImode.
10437
10438 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
10439
10440 * config/aarch64/aarch64-cores.def (vulcan): New core.
10441 * config/aarch64/aarch64-tune.md: Regenerate.
10442 * doc/invoke.texi: Document vulcan as an available option.
10443
10444 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
10445
10446 * cse.c (canon_asm_operands): New function extracted from...
10447 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
10448 either standalone or member of a PARALLEL.
10449
10450 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
10451
10452 PR target/30417
10453 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
10454 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
10455 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
10456
10457 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
10458
10459 PR target/71103
10460 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
10461 constant addresses if can_create_pseudo_p.
10462
10463 2016-06-21 Jakub Jelinek <jakub@redhat.com>
10464
10465 PR tree-optimization/71588
10466 * tree-ssa-strlen.c (valid_builtin_call): New function.
10467 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
10468 it.
10469
10470 2016-06-20 Jakub Jelinek <jakub@redhat.com>
10471
10472 PR middle-end/71581
10473 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
10474 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
10475 for conversion of scalar user var to complex type and use the
10476 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
10477 punt.
10478
10479 PR rtl-optimization/71591
10480 * toplev.c (toplev::run_self_tests): If no_backend, complain and
10481 don't run any tests.
10482
10483 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
10484
10485 PR target/71571
10486 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
10487 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
10488 space for PIC with non-v32 and the common non-PIC "jump".
10489
10490 2016-06-20 Jakub Jelinek <jakub@redhat.com>
10491
10492 PR target/71559
10493 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
10494 returned values and add UN*/LTGT/*ORDERED cases with values matching
10495 D operand modifier on vcmp for AVX.
10496
10497 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
10498
10499 * config/aarch64/aarch64.opt
10500 (mpc-relative-literal-loads): Rename internal option name.
10501 * config/aarch64/aarch64.c
10502 (aarch64_nopcrelative_literal_loads): Rename to
10503 aarch64_pcrelative_literal_loads.
10504 (aarch64_expand_mov_immediate): Likewise.
10505 (aarch64_secondary_reload): Likewise.
10506 (aarch64_can_use_per_function_literal_pools_p): Likewise.
10507 (aarch64_override_options_after_change_1): Rename and simplify logic.
10508 (aarch64_classify_symbol): Merge large model checks into switch,
10509 remove pc-relative load check.
10510
10511 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10512
10513 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
10514 costs relative to the cost of a register move.
10515
10516 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10517
10518 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
10519 (vcvt_n_f64_u64): Likewise.
10520 (vcvt_n_s64_f64): Likewise.
10521 (vcvt_n_u64_f64): Likewise.
10522 (vcvt_f64_s64): Likewise.
10523 (vrecpe_f64): Likewise.
10524 (vcvt_f64_u64): Likewise.
10525 (vrecps_f64): Likewise.
10526
10527 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10528
10529 * config/aarch64/aarch64.md
10530 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
10531 iterators.
10532 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
10533 attributes.
10534 * config/aarch64/aarch64-builtins.c
10535 (aarch64_types_binop_uss_qualifiers): Delete.
10536 (TYPES_BINOP_USS): Likewise.
10537 (aarch64_types_binop_sus_qualifiers): Likewise.
10538 (TYPES_BINOP_SUS): Likewise.
10539 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
10540 (TYPES_FCVTIMM_SUS): Likewise.
10541 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
10542 rather than BINOP.
10543 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
10544 (fcvtzs): Use SHIFTIMM rather than BINOP.
10545 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
10546
10547 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10548
10549 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
10550 costs relative to the cost of a register move.
10551
10552 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
10553
10554 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
10555 Allow scalar/single vector modes to be tieable.
10556
10557 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
10558
10559 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
10560
10561 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10562
10563 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
10564 "alignement".
10565 * tree.h (TYPE_ALIGN): Likewise.
10566
10567 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
10568
10569 PR target/71103
10570 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
10571
10572 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
10573
10574 * config/avr/avr.c (avr_print_operand): Fix "format not a string
10575 literal" build warnings.
10576 (avr_print_operand_address): Dito.
10577
10578 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
10579
10580 PR target/71375
10581 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
10582 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
10583
10584 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
10585
10586 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
10587
10588 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
10589
10590 PR bootstrap/71435
10591 * reload1.c (reload): Pass 0 to finish_spills when called because
10592 update_eliminables_and_spill returns true and remove did_spill.
10593 (finish_spills): Adjust comment and document GLOBAL parameter.
10594
10595 2016-06-17 DJ Delorie <dj@redhat.com>
10596
10597 PR target/71338
10598 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
10599 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
10600 (umulqihi3_virt): Likewise.
10601 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
10602 (umulqihi3_real): Likewise.
10603
10604 2016-06-17 Martin Liska <mliska@suse.cz>
10605
10606 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
10607
10608 2016-06-17 Martin Liska <mliska@suse.cz>
10609
10610 * predict.def: PRED_LOOP_EXIT from 92 to 85.
10611
10612 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
10613
10614 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
10615 __FAST_MATH__.
10616 (vaddq_f32): Likewise.
10617 (vmul_f32): Likewise.
10618 (vmulq_f32): Likewise.
10619 (vsub_f32): Likewise.
10620 (vsubq_f32): Likewise.
10621
10622 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10623
10624 PR tree-optimization/71347
10625 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
10626 cost for all uses in group.
10627
10628 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10629
10630 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
10631 insert gimple seq if it's not empty.
10632
10633 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10634
10635 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
10636 member OFFSET.
10637 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
10638 rather than OFFSET.
10639 (comp_dr_with_seg_len_pair): Ditto.
10640 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
10641 struct dr_with_seg_len_pair against DR_OFFSET.
10642 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
10643 DR_OFFSET directly.
10644
10645 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
10646
10647 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
10648
10649 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
10650
10651 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
10652 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
10653 (pa_output_millicode_call): Likewise.
10654 (pa_output_call): Likewise.
10655 (pa_output_indirect_call): Likewise.
10656 (pa_asm_output_mi_thunk): Likewise.
10657
10658 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10659
10660 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
10661
10662 2016-06-16 Martin Liska <mliska@suse.cz>
10663
10664 * predict.c (combine_predictions_for_insn): When we find a first
10665 match predictor, we should consider just predictors with
10666 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
10667 DS theory predictor.
10668 (combine_predictions_for_bb): Likewise.
10669
10670 2016-06-16 Jakub Jelinek <jakub@redhat.com>
10671
10672 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
10673 with base of reference to struct.
10674
10675 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
10676
10677 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
10678
10679 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10680
10681 PR target/71151
10682 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
10683 progmem_swtable_section.
10684 (progmem_swtable_section): Remove.
10685 (avr_asm_function_rodata_section): Remove.
10686 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
10687 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
10688
10689 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
10690
10691 * config/i386/driver-i386.c (host_detect_local_cpu): Set
10692 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
10693 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
10694 signature_CENTAUR_ebx.
10695 * config/i386/i386.c (ix86_option_override_internal): Add
10696 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
10697 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
10698 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
10699
10700 2016-06-16 Martin Liska <mliska@suse.cz>
10701
10702 * predict.def: Add fortran loop preheader predictor.
10703 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
10704 fold IFN_BUILTIN_EXPECT with a known constant argument.
10705
10706 2016-06-16 Martin Liska <mliska@suse.cz>
10707
10708 * predict.def: Add 'Fortran' to display text of all
10709 PRED_FORTRAN_* predictors.
10710
10711 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
10712
10713 PR target/71242
10714 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
10715 [IA64_BUILTIN_NANSQ]: Ditto.
10716 (ia64_fold_builtin): New function.
10717 (TARGET_FOLD_BUILTIN): New define.
10718 (ia64_init_builtins) Declare const_string_type node.
10719 Add __builtin_nanq and __builtin_nansq builtin functions.
10720 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
10721
10722 2016-06-16 Nick Clifton <nickc@redhat.com>
10723
10724 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
10725 MSP430_HWMULT_ prefix to enum values.
10726 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
10727 * config/msp430/msp430.c: Update use of enum values.
10728 * config/msp430/msp430.md: Likewise.
10729 * config/msp430/msp430.opt: Likewise.
10730
10731 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
10732
10733 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
10734 of comparsions in the last iteration.
10735
10736 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
10737 Joern Rennecke <joern.rennecke@embecosm.com>
10738
10739 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
10740 addresses.
10741 (arc_needs_pcl_p): Add GOTOFFPC.
10742 (arc_legitimate_pic_addr_p): Likewise.
10743 (arc_output_pic_addr_const): Likewise.
10744 (arc_legitimize_pic_address): Generate a pc-relative address using
10745 GOTOFFPC.
10746 (arc_output_libcall): Use @pcl syntax.
10747 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
10748 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
10749 (*movsi_insn): Use @pcl syntax.
10750 (doloop_begin_i): Likewise.
10751
10752 2016-06-16 Martin Liska <mliska@suse.cz>
10753
10754 * predict.def: Define a new predictor.
10755
10756 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
10757
10758 * config/arc/arc.opt (mtp-regno): Update text.
10759
10760 2016-06-16 Renlin Li <renlin.li@arm.com>
10761
10762 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
10763
10764 2016-06-16 Jakub Jelinek <jakub@redhat.com>
10765
10766 PR target/71554
10767 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
10768 (setcc + and peephole2): Likewise.
10769
10770 PR rtl-optimization/71532
10771 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
10772 memory slots.
10773
10774 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
10775
10776 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
10777 DImode constants with XXSPLTIB in vector registers.
10778 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
10779 vsx_extract_<mode>_internal{1,2} into a single insn that handles
10780 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
10781 extraction of the element at the top of the register as a scalar
10782 value.
10783 (vsx_extract_<mode>_internal1): Likewise.
10784 (vsx_extract_<mode>_internal2): Likewise.
10785 * config/rs6000/constraints.md (wi constraint): Remove a comment
10786 about DImode not being allowed in Altivec registers.
10787 (wB constraint): New constraint for constants that can be
10788 generated in Altivec registers with VSPLTISW/VUPKHSW.
10789 * config/rs6000/predicates.md (xxspltib_constant_split): Update
10790 comments.
10791 (xxspltib_constant_nosplit): Likewise.
10792 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
10793 support for -mupper-regs-di to enable DImode to go into Altivec
10794 registers.
10795 (POWERPC_MASKS): Likewise.
10796 (power7 cpu): Likewise.
10797 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
10798 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
10799 for DImode being allowed in Altivec registers. Update wi/wj
10800 constraints. Set scalar_in_vmx_p flag.
10801 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
10802 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
10803 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
10804 (rs6000_opt_masks): Add -mupper-regs-di.
10805 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
10806 direct move to use wi and not wj.
10807 (lfiwzx): Likewise.
10808 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
10809 alternative.
10810 (floatunssi<mode>2_lfiwzx_mem): Likewise.
10811 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
10812 any VSX register, instead of just Altivec registers, to allow
10813 either operand to be an Altivec register or both.
10814 (fixuns_trunc<mode>di2_fctiduz): Likewise.
10815 (movdi_internal32): Add support for -mupper-regs-di. Add support
10816 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
10817 the alternatives and attributes to be lined up to be easier to
10818 read.
10819 (movdi_internal64): Likewise.
10820 (64-bit DImode splitters): Change predicates to only split loading
10821 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
10822 load constants in ISA 3.0 or ISA 2.07 respectively.
10823 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
10824 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
10825 mention -mcpu=power9 sets these options.
10826 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
10827 wB constraint.
10828
10829 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
10830
10831 PR target/67353
10832 * config/avr/avr.c (avr_set_current_function): Warn misspelled
10833 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
10834 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
10835 by default to warn misspelled interrupt/ signal handler.
10836 * doc/invoke.texi (AVR Options): Document it. Update description
10837 for -nodevicelib option.
10838
10839 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10840
10841 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
10842 up parentheses. Use GET_MODE_UNIT_BITSIZE.
10843 (aarch64_<sur>shll2_n<mode>): Likewise.
10844
10845 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
10846
10847 PR middle-end/71529
10848 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
10849 DECL_CONTEXT for copied arguments.
10850
10851 2016-06-15 Alan Hayward <alan.hayward@arm.com>
10852
10853 PR tree-optimization/71483
10854 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
10855 for slp
10856
10857 2016-06-15 Martin Liska <mliska@suse.cz>
10858
10859 * predict.c (tree_predict_by_opcode): Call predict_edge_def
10860 instead of predict_edge w/o a probability.
10861
10862 2016-06-15 Alan Hayward <alan.hayward@arm.com>
10863
10864 PR tree-optimization/71439
10865 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
10866 live PHIs.
10867
10868 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10869
10870 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
10871 register subregs in SET_SRC.
10872
10873 2016-06-15 Richard Biener <rguenther@suse.de>
10874
10875 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
10876 store restrictions.
10877
10878 2016-06-15 Richard Biener <rguenther@suse.de>
10879
10880 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
10881 not consider dependences between accesses that belong to the
10882 same group.
10883 (vect_analyze_data_ref_dependences): Do not analyze read-read
10884 or self-dependences.
10885
10886 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10887
10888 * spellcheck-tree.c: Include spellcheck-tree.h rather than
10889 spellcheck.h.
10890 (find_closest_identifier): Reimplement in terms of
10891 best_match<tree,tree>.
10892 * spellcheck-tree.h: New file.
10893 * spellcheck.c (struct edit_distance_traits<const char *>): New
10894 struct.
10895 (find_closest_string): Reimplement in terms of
10896 best_match<const char *, const char *>.
10897 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
10898 overload to spellcheck-tree.h.
10899 (find_closest_identifier): Likewise.
10900 (struct edit_distance_traits<T>): New template.
10901 (class best_match): New class.
10902
10903 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10904
10905 * selftest-run-tests.c (selftest::run_tests): Call
10906 selftest::spellcheck_tree_c_tests.
10907 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
10908 * spellcheck-tree.c: Include selftest.h and stringpool.h.
10909 (selftest::test_find_closest_identifier): New function.
10910 (selftest::spellcheck_tree_c_tests): New function.
10911 * spellcheck.c (selftest::test_find_closest_string): Verify that
10912 the order of the vec does not affect the results for this case.
10913 (selftest::test_data): New array.
10914 (selftest::test_metric_conditions): New function.
10915 (selftest::spellcheck_c_tests): Add a test of case-comparison.
10916 Call selftest::test_metric_conditions.
10917
10918 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10919
10920 * config/rs6000/rs6000-builtin.def (commentary): Typo.
10921 (BU_P9_MISC_1): Likewise.
10922 (BU_P9_64BIT_MISC_0): Likewise.
10923 (BU_P9_MISC_0): Likewise.
10924
10925 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10926
10927 * gcc-rich-location.c
10928 (gcc_rich_location::add_fixit_misspelled_id): New method.
10929 * gcc-rich-location.h
10930 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
10931
10932 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
10933
10934 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
10935 FreeBSD 11 and above.
10936
10937 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
10938
10939 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
10940
10941 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10942
10943 * expmed.h: Close parenthesis in "at your option" in copyright
10944 boilerplate.
10945 * lower-subreg.h: Likewise.
10946
10947 2016-06-14 Richard Biener <rguenther@suse.de>
10948
10949 PR middle-end/71526
10950 * genmatch.c (expr::gen_transform): Use in_type for comparisons
10951 if available.
10952
10953 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10954
10955 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
10956 New function.
10957 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
10958 mask+shift version.
10959 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
10960 New prototype.
10961 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
10962 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
10963
10964 2016-06-14 Richard Biener <rguenther@suse.de>
10965
10966 PR tree-optimization/71522
10967 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
10968 copying into float copying.
10969
10970 2016-06-14 Jakub Jelinek <jakub@redhat.com>
10971
10972 PR tree-optimization/71520
10973 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
10974 (replace_block_by): Move user labels from bb1 to bb2.
10975
10976 2016-06-14 Richard Biener <rguenther@suse.de>
10977
10978 PR middle-end/71310
10979 PR bootstrap/71510
10980 * expr.h (get_bit_range): Declare.
10981 * expr.c (get_bit_range): Export.
10982 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
10983 word_mode again to constrain the bitfield access.
10984
10985 2016-06-14 Richard Biener <rguenther@suse.de>
10986
10987 PR tree-optimization/71521
10988 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
10989 division int_const_binop against zero divisor.
10990
10991 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10992
10993 * config/i386/i386.md (signbittf2): New expander.
10994 * config/i386/sse.md (ptesttf2): New insn pattern.
10995
10996 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10997
10998 PR bootstrap/71481
10999 * input.c (selftest::test_reading_source_line): Avoid reading from
11000 __FILE__ by creating a tempfile with known content and reading
11001 from that instead.
11002
11003 2016-06-13 David Malcolm <dmalcolm@redhat.com>
11004
11005 * pretty-print.c (assert_pp_format_colored): Skip the test if
11006 GCC_COLORS is set.
11007 (test_pp_format): Remove comment about GCC_COLORS.
11008
11009 2016-06-13 David Malcolm <dmalcolm@redhat.com>
11010
11011 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
11012 * pretty-print.c (assert_pp_format_va): Add location param and use
11013 it with ASSERT_STREQ_AT.
11014 (assert_pp_format): Add location param and pass it to
11015 assert_pp_format_va.
11016 (assert_pp_format_colored): Likewise.
11017 (ASSERT_PP_FORMAT_1): New.
11018 (ASSERT_PP_FORMAT_2): New.
11019 (ASSERT_PP_FORMAT_3): New.
11020 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
11021 explicitly, or implicitly via the above macros.
11022 * selftest.c (selftest::pass): Use a selftest::location rather
11023 than file and line.
11024 (selftest::fail): Likewise. Print the function name.
11025 (selftest::fail_formatted): Likewise.
11026 (selftest::assert_streq): Use a selftest::location rather than
11027 file and line.
11028 * selftest.h (selftest::location): New struct.
11029 (SELFTEST_LOCATION): New macro.
11030 (selftest::pass): Accept a const location & rather than file
11031 and line.
11032 (selftest::fail): Likewise.
11033 (selftest::fail_formatted): Likewise.
11034 (selftest::assert_streq): Likewise.
11035 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
11036 (ASSERT_FALSE): Likewise.
11037 (ASSERT_EQ): Likewise.
11038 (ASSERT_NE): Likewise.
11039 (ASSERT_STREQ): Likewise.
11040 (ASSERT_PRED1): Likewise.
11041 (ASSERT_STREQ_AT): New macro.
11042
11043 2016-06-13 David Malcolm <dmalcolm@redhat.com>
11044
11045 * selftest.c (selftest::fail_formatted): New function.
11046 (selftest::assert_streq): New function.
11047 * selftest.h (selftests::fail_formatted): New decl.
11048 (selftest::assert_streq): New decl.
11049 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
11050
11051 2016-06-13 Jeff Law <law@redhat.com>
11052
11053 PR tree-optimization/71403
11054 * tree-ssa-threadbackward.c
11055 (convert_and_register_jump_thread_path): No longer accept reference
11056 to path. Do not pop items off the path anymore.
11057 (fsm_find_control_statement_thread_paths): Do not allow threading
11058 to a deeper loop nest. Pop the last item off the path here rather
11059 than in convert_and_register_jump_thread_path.
11060
11061 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
11062 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
11063
11064 [AArch64] Emit division using the Newton series
11065
11066 * config/aarch64/aarch64-protos.h
11067 (cpu_approx_modes): Add new member "division".
11068 (aarch64_emit_approx_div): Declare new function.
11069 * config/aarch64/aarch64.c
11070 (generic_approx_modes): New member "division".
11071 (exynosm1_approx_modes): Likewise.
11072 (xgene1_approx_modes): Likewise.
11073 (aarch64_emit_approx_div): Define new function.
11074 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
11075 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
11076 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
11077 * doc/invoke.texi (-mlow-precision-div): Describe new option.
11078
11079 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
11080 Wilco Dijkstra <wilco.dijkstra@arm.com>
11081
11082 [AArch64] Emit square root using the Newton series
11083
11084 * config/aarch64/aarch64-protos.h
11085 (aarch64_emit_approx_rsqrt): Replace with new function
11086 "aarch64_emit_approx_sqrt".
11087 (cpu_approx_modes): New member "sqrt".
11088 * config/aarch64/aarch64.c
11089 (generic_approx_modes): New member "sqrt".
11090 (exynosm1_approx_modes): Likewise.
11091 (xgene1_approx_modes): Likewise.
11092 (aarch64_emit_approx_rsqrt): Replace with new function
11093 "aarch64_emit_approx_sqrt".
11094 (aarch64_override_options_after_change_1): Handle new option.
11095 * config/aarch64/aarch64-simd.md
11096 (rsqrt<mode>2): Use new function instead.
11097 (sqrt<mode>2): New expansion and insn definitions.
11098 * config/aarch64/aarch64.md: Likewise.
11099 * config/aarch64/aarch64.opt
11100 (mlow-precision-sqrt): Add new option description.
11101 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
11102
11103 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
11104
11105 [AArch64] Add more choices for the reciprocal square root approximation
11106
11107 Allow a target to prefer such operation depending on the operation mode.
11108
11109 * config/aarch64/aarch64-protos.h
11110 (AARCH64_APPROX_MODE): New macro.
11111 (AARCH64_APPROX_{NONE,ALL}): Likewise.
11112 (cpu_approx_modes): New structure.
11113 (tune_params): New member "approx_modes".
11114 * config/aarch64/aarch64-tuning-flags.def
11115 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
11116 * config/aarch64/aarch64.c
11117 (generic_approx_modes): New core "cpu_approx_modes" structure.
11118 (exynosm1_approx_modes): Likewise.
11119 (xgene1_approx_modes): Likewise.
11120 (generic_tunings): New member "approx_modes".
11121 (cortexa35_tunings): Likewise.
11122 (cortexa53_tunings): Likewise.
11123 (cortexa57_tunings): Likewise.
11124 (cortexa72_tunings): Likewise.
11125 (exynosm1_tunings): Likewise.
11126 (thunderx_tunings): Likewise.
11127 (xgene1_tunings): Likewise.
11128 (use_rsqrt_p): New argument for the mode and use new member from
11129 "tune_params".
11130 (aarch64_builtin_reciprocal): Devise mode from builtin.
11131 (aarch64_optab_supported_p): New argument for the mode.
11132 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
11133
11134 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
11135
11136 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
11137 RS6000_BTM_MODULO flag into the set of flags that are considered
11138 to be part of the common configuration.
11139
11140 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
11141
11142 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
11143 difference unsigned.
11144 (vec_absdb): New macro for vector absolute difference unsigned
11145 byte.
11146 (vec_absdh): New macro for vector absolute difference unsigned
11147 half-word.
11148 (vec_absdw): New macro for vector absolute difference unsigned word.
11149 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
11150 (vadu<mode>3): New insn.
11151 (*p9_vadu<mode>3): New insn.
11152 * config/rs6000/rs6000-builtin.def (vadub): New built-in
11153 definition.
11154 (vaduh): New built-in definition.
11155 (vaduw): New built-in definition.
11156 (vadu): New overloaded built-in definition.
11157 (vadub): New overloaded built-in definition.
11158 (vaduh): New overloaded built-in definition.
11159 (vaduw): New overloaded built-in definition.
11160 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11161 overloaded vector absolute difference unsigned functions.
11162 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11163 the ISA 3.0 vector absolute difference unsigned built-in functions.
11164
11165 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
11166
11167 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
11168 update shared_lookup_references only once after changing operands.
11169
11170 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
11171
11172 PR middle-end/71373
11173 * tree-nested.c (convert_nonlocal_omp_clauses)
11174 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
11175
11176 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
11177 * tree.def (CASE_LABEL_EXPR): Likewise.
11178
11179 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
11180
11181 PR bootstrap/71481
11182 * input.c (test_builtins): Fix an assertion.
11183
11184 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
11185
11186 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
11187 (paritysi2): Ditto.
11188 (isinfxf2): Ditto.
11189 (isinf<mode>2): Ditto.
11190
11191 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
11192
11193 * ggc-tests.c (test_finalization): Only test need_finalization_p
11194 for GCC_VERSION >= 4003.
11195
11196 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11197
11198 * config/s390/vecintrin.h: Fix file description in comment.
11199
11200 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11201
11202 * config/s390/s390-builtin-types.def: Change builtin type naming
11203 scheme to match builtin-types.def.
11204
11205 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
11206
11207 * fold-const.c (optimize_minmax_comparison): Remove.
11208 (fold_comparison): Remove call to the above.
11209 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
11210 New transformations.
11211
11212 2016-06-13 Alan Hayward <alan.hayward@arm.com>
11213
11214 PR tree-optimization/71416
11215 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
11216 multiple entries
11217
11218 2016-06-13 Martin Liska <mliska@suse.cz>
11219
11220 * predict.c (enum predictor_reason): Prefix enum with REASON_.
11221 (combine_predictions_for_insn): Likewise.
11222 (prune_predictions_for_bb): Likewise.
11223 (combine_predictions_for_bb): Likewise.
11224
11225 2016-06-13 Richard Biener <rguenther@suse.de>
11226
11227 PR tree-optimization/71505
11228 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
11229 assert match comment.
11230
11231 2016-06-13 Marek Polacek <polacek@redhat.com>
11232
11233 PR middle-end/71476
11234 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
11235 gimplify_switch_expr.
11236 (warn_switch_unreachable_r): New function.
11237
11238 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11239
11240 PR target/71379
11241 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
11242 one.
11243
11244 2016-06-13 Richard Biener <rguenther@suse.de>
11245
11246 PR middle-end/64516
11247 * fold-const.c (fold_unary_loc): Preserve alignment when
11248 folding a VIEW_CONVERT_EXPR into a MEM_REF.
11249
11250 2016-06-13 Martin Liska <mliska@suse.cz>
11251
11252 PR sanitizer/71458
11253 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
11254 w/ -fsanitize=bounds.
11255
11256 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
11257
11258 * config/i386/i386.c (ix86_init_builtins): Calculate
11259 FLOAT128_FTYPE_CONST_STRING function type only once.
11260 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
11261 built-in functions are available for x86-32 and x86-64 targets.
11262
11263 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
11264
11265 PR target/71241
11266 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
11267 New primitive type.
11268 (FLOAT128_FTYPE_CONST_STRING): New function type.
11269 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
11270 [IX86_BUILTIN_NANSQ]: Ditto.
11271 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
11272 (ix86_init_builtin_types): Declare const_string_type_node.
11273 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
11274 builtin functions.
11275 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
11276 * doc/extend.texi (x86 Built-in Functions): Document
11277 __builtin_nanq and __builtin_nansq.
11278
11279 2016-06-11 Jiong Wang <jiong.wang@arm.com>
11280
11281 PR target/71061
11282 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
11283 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
11284 length for pop patterns.
11285 (arm_attr_length_push_multi): Update comments.
11286 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
11287 attribute.
11288 (*pop_multiple_with_writeback_and_return): Likewise.
11289 (*pop_multiple_with_return): Likewise.
11290
11291 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
11292
11293 PR middle-end/71310
11294 * fold-const.c (optimize_bit_field_compare): Don't try to use
11295 word_mode unconditionally for reading the bit field, look at
11296 DECL_BIT_FIELD_REPRESENTATIVE instead.
11297
11298 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
11299
11300 PR middle-end/71478
11301 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
11302 vector integer type.
11303
11304 2016-06-10 Jakub Jelinek <jakub@redhat.com>
11305
11306 PR middle-end/71494
11307 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
11308 without LABEL_DECL, set *handled_ops_p to false instead of true.
11309
11310 2016-06-10 Martin Sebor <msebor@redhat.com>
11311
11312 PR c/71392
11313 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
11314 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
11315 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
11316 them.
11317 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
11318 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
11319 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
11320 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
11321 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
11322 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
11323 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
11324 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
11325
11326 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
11327
11328 * config/arm/arm.h (pool_vector_label,
11329 return_used_this_function): Remove.
11330
11331 2016-06-10 Jeff Law <law@redhat.com>
11332
11333 PR tree-optimization/71335
11334 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
11335 zero length paths here.
11336 (convert_and_register_jump_thread_path): Remove hacks related to
11337 duplicated blocks in the jump thread path.
11338 (fsm_find_control_statement_thread_paths): Avoid putting the same
11339 block on the thread path twice, but ensure the thread path is
11340 unchanged from the caller's point of view.
11341
11342 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
11343
11344 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
11345 * predict.def (PRED_LOOP_BRANCH): Remove.
11346
11347 2016-06-10 David Malcolm <dmalcolm@redhat.com>
11348
11349 * Makefile.in (OBJS): Add ggc-tests.o.
11350 (GTFILES): Add ggc-tests.c.
11351 * ggc-tests.c: New file.
11352 * selftest-run-tests.c (selftest::run_tests): Call
11353 selftest::ggc_tests_c_tests.
11354 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
11355
11356 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
11357
11358 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
11359
11360 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
11361
11362 PR sanitizer/71480
11363 * varasm.c (place_block_symbol): Adjust alignment for asan protected
11364 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
11365
11366 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
11367
11368 * profile.c: Include cfgloop.h.
11369 (branch_prob): Compute estimated number of iterations.
11370 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
11371 recompute estimate number of iterations from profile.
11372
11373 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
11374
11375 PR inline-asm/68843
11376 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
11377 must be grouped on top of stack. Don't force early clobber
11378 on ordinary reg outputs.
11379
11380 2016-06-10 Richard Biener <rguenther@suse.de>
11381
11382 * targhooks.c (default_builtin_vectorization_cost): Adjust
11383 vec_construct cost.
11384
11385 2016-06-10 Richard Biener <rguenther@suse.de>
11386
11387 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
11388 to fold the RHS to a constant if possible.
11389
11390 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
11391
11392 PR middle-end/71373
11393 * tree-nested.c (convert_nonlocal_omp_clauses)
11394 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
11395 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
11396 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
11397
11398 * gimplify.c (gimplify_adjust_omp_clauses): Discard
11399 OMP_CLAUSE_TILE.
11400 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
11401
11402 * omp-low.c (scan_sharing_clauses): Don't expect
11403 OMP_CLAUSE__CACHE_.
11404
11405 2016-06-10 Alan Hayward <alan.hayward@arm.com>
11406
11407 PR tree-optimization/71407
11408 PR tree-optimization/71416
11409 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
11410 BIT_FIELD_REF type.
11411
11412 2016-06-10 Richard Biener <rguenther@suse.de>
11413
11414 PR middle-end/71477
11415 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
11416
11417 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
11418
11419 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
11420
11421 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
11422 Jiong Wang <jiong.wang@arm.com>
11423
11424 PR rtl-optimization/70751
11425 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
11426 spilled into memory.
11427
11428 2016-06-09 Jonathan Yong <10walls@gmail.com>
11429
11430 Revert:
11431 2015-09-21 Jonathan Yong <10walls@gmail.com>
11432
11433 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
11434 sysroot/usr/lib/32api for additional win32 libraries,
11435 fixes failing Cygwin bootstrapping.
11436
11437 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
11438
11439 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
11440 Delete.
11441
11442 2016-06-09 David Malcolm <dmalcolm@redhat.com>
11443
11444 PR bootstrap/71471
11445 * pretty-print.c (pp_indent): Specify that %p is printed in a
11446 host-dependent manner.
11447 (test_pp_format): Remove the test for %p.
11448
11449 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
11450
11451 * config/mips/mips.c (mips_output_jump): Fix formatting.
11452
11453 2016-06-09 Richard Biener <rguenther@suse.de>
11454
11455 PR tree-optimization/71462
11456 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
11457 removed blocks.
11458
11459 2016-06-09 Martin Liska <mliska@suse.cz>
11460
11461 * predict.c (dump_prediction): Add new argument.
11462 (enum predictor_reason): New enum.
11463 (struct predictor_hash): New struct.
11464 (predictor_hash::hash): New function.
11465 (predictor_hash::equal): Likewise.
11466 (not_removed_prediction_p): New function.
11467 (prune_predictions_for_bb): Likewise.
11468 (combine_predictions_for_bb): Prune predictions.
11469
11470 2016-06-09 Martin Liska <mliska@suse.cz>
11471
11472 * predict.c (filter_predictions): New function.
11473 (remove_predictions_associated_with_edge): Use the filter
11474 function.
11475 (equal_edge_p): New function.
11476
11477 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
11478
11479 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
11480 Correct usage of @samp vs @option, add @samp where appropriate.
11481 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
11482 Add armv6s-m and document it, as it is no official ARM name.
11483
11484 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11485
11486 * ifcvt.c (struct noce_if_info): Add transform_name field.
11487 (noce_try_move): Set if_info->transform_name to the function name.
11488 (noce_try_ifelse_collapse): Likewise.
11489 (noce_try_store_flag): Likewise.
11490 (noce_try_inverse_constants): Likewise.
11491 (noce_try_store_flag_constants): Likewise.
11492 (noce_try_addcc): Likewise.
11493 (noce_try_store_flag_mask): Likewise.
11494 (noce_try_cmove): Likewise.
11495 (noce_try_cmove_arith): Likewise.
11496 (noce_try_minmax): Likewise.
11497 (noce_try_abs): Likewise.
11498 (noce_try_sign_mask): Likewise.
11499 (noce_try_bitop): Likewise.
11500 (noce_convert_multiple_sets): Likewise.
11501 (noce_process_if_block): Print if_info->transform_name to
11502 dump_file if transformation succeeded.
11503
11504 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11505
11506 * config/arm/cortex-a57.md (cortex_a57_alu):
11507 Handle csel type.
11508
11509 2016-06-08 Martin Sebor <msebor@redhat.com>
11510 Jakub Jelinek <jakub@redhat.com>
11511
11512 PR c++/70507
11513 PR c/68120
11514 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
11515 BUILT_IN_MUL_OVERFLOW_P): New builtins.
11516 * builtins.c: Include gimple-fold.h.
11517 (fold_builtin_arith_overflow): Handle
11518 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
11519 (fold_builtin_3): Likewise.
11520 * doc/extend.texi (Integer Overflow Builtins): Document
11521 __builtin_{add,sub,mul}_overflow_p.
11522
11523 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
11524
11525 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
11526 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
11527
11528 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
11529
11530 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
11531 Rewrite, looking one level down for records and arrays.
11532
11533 2016-06-08 David Malcolm <dmalcolm@redhat.com>
11534
11535 * pretty-print.c: Include "selftest.h".
11536 (pp_format): Fix comment.
11537 (identifier_to_locale): Likewise.
11538 (selftest::test_basic_printing): New function.
11539 (selftest::assert_pp_format): New function.
11540 (selftest::test_pp_format): New function.
11541 (selftest::pretty_print_c_tests): New function.
11542 * selftest-run-tests.c (selftest::run_tests): Call
11543 selftest::pretty_print_c_tests.
11544 * selftest.h (pretty_print_c_tests): New declaration.
11545
11546 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11547
11548 * invoke.texi (max-loop-headers-insns): Document.
11549 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
11550 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
11551 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
11552
11553 2016-06-08 Richard Biener <rguenther@suse.de>
11554
11555 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
11556 on strided SLP loads and fall back to scalar loads in case
11557 we can't chunk them.
11558
11559 2016-06-08 Richard Biener <rguenther@suse.de>
11560
11561 PR tree-optimization/71452
11562 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
11563 type used for the SSA rewrite has enough precision to cover
11564 the dynamic type of the location.
11565
11566 2016-06-08 Jakub Jelinek <jakub@redhat.com>
11567 Richard Biener <rguenther@suse.de>
11568
11569 PR c++/71448
11570 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
11571 the same as DECL_P (base0) for indirect_base0. Use equality_code
11572 in one further place.
11573
11574 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
11575
11576 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
11577 to one word if the field is known to overlap other words.
11578 (extract_bit_field_1): Likewise.
11579 (store_split_bit_field): Remove compensating code.
11580 (extract_split_bit_field): Likewise.
11581
11582 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
11583
11584 PR debug/71432
11585 PR ada/71413
11586 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
11587
11588 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11589
11590 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
11591 VDQF.
11592 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
11593 (arch64_addpv4sf): Delete.
11594 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
11595 "gen_aarch64_addpv4sf".
11596 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
11597 builtin.
11598 (vpadds_f32): Likewise.
11599 (vpaddq_f32): Likewise.
11600 (vpaddq_f64): Likewise.
11601
11602 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11603
11604 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
11605 VALLF.
11606 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
11607 to VALLF. Rename to "fabd<mode>3".
11608 "*fabd_scalar<mode>3): Delete.
11609 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
11610 Use builtin.
11611 (vabdd_f64): Likewise.
11612 (vabd_f32): Likewise.
11613 (vabd_f64): Likewise.
11614 (vabdq_f32): Likewise.
11615 (vabdq_f64): Likewise.
11616
11617 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11618
11619 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
11620 VALLF.
11621 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
11622 "aarch64_rsqrts<mode>".
11623 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
11624 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
11625 builtin.
11626 (vrsqrtsd_f64): Likewise.
11627 (vrsqrts_f32): Likewise.
11628 (vrsqrts_f64): Likewise.
11629 (vrsqrtsq_f32): Likewise.
11630 (vrsqrtsq_f64): Likewise.
11631
11632 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11633
11634 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
11635 VALLF.
11636 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
11637 "aarch64_rsqrte<mode>".
11638 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
11639 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
11640 builtin.
11641 (vrsqrted_f64): Likewise.
11642 (vrsqrte_f32): Likewise.
11643 (vrsqrte_f64): Likewise.
11644 (vrsqrteq_f32): Likewise.
11645 (vrsqrteq_f64): Likewise.
11646
11647 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11648
11649 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
11650 (ucvtf): Likewise.
11651 (fcvtzs): Likewise.
11652 (fcvtzu): Likewise.
11653 * config/aarch64/aarch64-simd.md
11654 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
11655 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
11656 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
11657 Use builtin.
11658 (vcvt_n_f32_u32): Likewise.
11659 (vcvt_n_s32_f32): Likewise.
11660 (vcvt_n_u32_f32): Likewise.
11661 (vcvtq_n_f32_s32): Likewise.
11662 (vcvtq_n_f32_u32): Likewise.
11663 (vcvtq_n_f64_s64): Likewise.
11664 (vcvtq_n_f64_u64): Likewise.
11665 (vcvtq_n_s32_f32): Likewise.
11666 (vcvtq_n_s64_f64): Likewise.
11667 (vcvtq_n_u32_f32): Likewise.
11668 (vcvtq_n_u64_f64): Likewise.
11669 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
11670 (VSDQ_SDI): Likewise.
11671 (fcvt_target): Support V4DI, V4SI and V2SI.
11672 (FCVT_TARGET): Likewise.
11673
11674 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11675
11676 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
11677 (TYPES_BINOP_SUS): Likewise.
11678 (aarch64_simd_builtin_data): Update include file name.
11679 (aarch64_builtins): Likewise.
11680 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
11681 for conversion between scalar float-point and fixed-point.
11682 (ucvtf): Likewise.
11683 (fcvtzs): Likewise.
11684 (fcvtzu): Likewise.
11685 * config/aarch64/aarch64.md
11686 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
11687 pattern for conversion between scalar float to fixed-pointer.
11688 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
11689 (UNSPEC_FCVTZS): New UNSPEC enumeration.
11690 (UNSPEC_FCVTZU): Likewise.
11691 (UNSPEC_SCVTF): Likewise.
11692 (UNSPEC_UCVTF): Likewise.
11693 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
11694 Use builtin.
11695 (vcvtd_n_f64_u64): Likewise.
11696 (vcvtd_n_s64_f64): Likewise.
11697 (vcvtd_n_u64_f64): Likewise.
11698 (vcvtd_n_f32_s32): Likewise.
11699 (vcvts_n_f32_u32): Likewise.
11700 (vcvtd_n_s32_f32): Likewise.
11701 (vcvts_n_u32_f32): Likewise.
11702 * config/aarch64/iterators.md (fcvt_target): Support integer to float
11703 mapping.
11704 (FCVT_TARGET): Likewise.
11705 (FCVT_FIXED2F): New iterator.
11706 (FCVT_F2FIXED): Likewise.
11707 (fcvt_fixed_insn): New define_int_attr.
11708
11709 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11710
11711 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
11712 some statements was removed.
11713
11714 2016-06-08 Alan Hayward <alan.hayward@arm.com>
11715
11716 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
11717 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
11718 (vect_can_advance_ivs_p): likewise.
11719 (vect_update_ivs_after_vectorizer): likewise.
11720 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
11721 (vect_analyze_scalar_cycles_1): likewise.
11722 (vect_analyze_loop_operations): likewise.
11723 (report_vect_op): likewise.
11724 (vect_is_slp_reduction): likewise.
11725 (vect_is_simple_reduction): likewise.
11726 (get_initial_def_for_induction): likewise.
11727 (vect_transform_loop): likewise.
11728 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
11729 (vect_recog_sad_pattern): likewise.
11730 (vect_recog_widen_sum_pattern): likewise.
11731 (vect_recog_widening_pattern): likewise.
11732 (vect_recog_divmod_pattern): likewise.
11733 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
11734 (vect_analyze_slp_instance): likewise.
11735 (vect_transform_slp_perm_load): likewise.
11736 (vect_schedule_slp_instance): likewise.
11737
11738 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11739
11740 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
11741 (return_prediction): PRED_CONST_RETURN predict return as not taken.
11742 * predict.def (PRED_CONTINUE): Change hitrate 50->67
11743 (PRED_LOOP_BRANCH): Document predictor as broken.
11744 (PRED_LOOP_EXIT): Change hitrate 91->92.
11745 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
11746 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
11747 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
11748 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
11749 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
11750 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
11751 (PRED_CALL): Chane hitrate 71->67.
11752 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
11753 (PRED_GOTO): Document as unused right now.
11754 (PRED_CONST_RETURN): Change hitrate 67->69
11755 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
11756 (PRED_NULL_RETURN): Change hitrate 91->90.
11757 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
11758 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
11759 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
11760
11761 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
11762
11763 * config/rs6000/altivec.h: Add __builtin_vec_mul.
11764 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
11765 special case Altivec builtin.
11766 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
11767 VSX_BUILTIN_VEC_MUL (replaced with special case code).
11768 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11769 code for ALTIVEC_BUILTIN_VEC_MUL.
11770 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
11771 for __builtin_vec_mul.
11772
11773 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
11774
11775 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
11776 -mno-htm.
11777
11778 2016-06-07 David Malcolm <dmalcolm@redhat.com>
11779
11780 * spellcheck.c (selftest::test_find_closest_string): New function.
11781 (spellcheck_c_tests): Call the above.
11782
11783 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11784
11785 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
11786
11787 2016-06-07 Jakub Jelinek <jakub@redhat.com>
11788
11789 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
11790 Yv=Yv,C alternatives.
11791
11792 2016-06-07 Richard Biener <rguenther@suse.de>
11793
11794 PR c/61564
11795 * common.opt (ffast-math): Make Optimization.
11796
11797 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
11798 Prachi Godbole <prachi.godbole@imgtec.com>
11799
11800 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
11801 `fabs' and `fneg' type attributes.
11802 (p5600_fpu_fabs): Add `fmove' to the comment.
11803
11804 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11805
11806 * gimple.c: Include builtins.h
11807 (gimple_inexpensive_call_p): New function.
11808 * gimple.h (gimple_inexpensive_call_p): Declare.
11809 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
11810 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
11811 fix formatting.
11812
11813 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
11814
11815 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
11816 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
11817 warning_at_rich_loc, warning_n, pedwarn, permerror,
11818 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
11819 sorry, fatal_error, internal_error, internal_error_no_backtrace):
11820 Use the above.
11821
11822 2016-06-07 Richard Biener <rguenther@suse.de>
11823
11824 PR tree-optimization/71428
11825 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
11826 BIT_FIELD_REF op vs. load.
11827
11828 2016-06-07 Richard Biener <rguenther@suse.de>
11829
11830 PR middle-end/71423
11831 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
11832 for signed ops.
11833
11834 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
11835
11836 * config/pa/pa.md (call): Generate indirect long calls to non-local
11837 functions on TARGET_64BIT.
11838 (call_value): Likewise.
11839
11840 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
11841
11842 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
11843 pattern and subsequent splitters.
11844 (call_val_reg_64bit_post_reload): Likewise.
11845
11846 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
11847
11848 PR middle-end/71408
11849 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
11850 propagate_op_to_single_use.
11851
11852 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
11853
11854 PR middle-end/71281
11855 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
11856
11857 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
11858
11859 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
11860 (enum x86_dirflag_state): New enum.
11861 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
11862 (machine_function): Remove needs_cld.
11863 (ix86_current_function_needs_cld): Remove.
11864 * config/i386/i386.c (ix86_set_func_type): Set
11865 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
11866 (ix86_expand_prologue): Do not emit CLD here.
11867 (ix86_dirflag_mode_needed): New function.
11868 (ix86_dirflag_mode_entry): Ditto.
11869 (ix86_mode_needed): Handle X86_DIRFLAG entity.
11870 (ix86_mode_after): Ditto.
11871 (ix86_mode_entry): Ditto.
11872 (ix86_mode_exit): Ditto.
11873 (ix86_emit_mode_set): Ditto.
11874 * config/i386/i386.md (strmov_singleop): Set
11875 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
11876 Do not set ix86_current_function_needs_cld.
11877 (rep_mov): Ditto.
11878 (strset_singleop): Ditto.
11879 (rep_stos): Ditto.
11880 (cmpstrnqi_nz_1): Ditto.
11881 (cmpstrnqi_1): Ditto.
11882 (strlenqi_1): Ditto.
11883
11884 2016-06-06 Jakub Jelinek <jakub@redhat.com>
11885
11886 PR tree-optimization/71259
11887 * tree-vect-slp.c (vect_get_constant_vectors): For
11888 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
11889 one for constant op, and use COND_EXPR for non-constant.
11890
11891 2016-06-06 David Malcolm <dmalcolm@redhat.com>
11892
11893 * Makefile.in (OBJS): Add function-tests.o,
11894 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
11895 selftest-run-tests.o.
11896 (OBJS-libcommon): Add selftest.o.
11897 (OBJS-libcommon-target): Add selftest.o.
11898 (all.internal): Add "selftest".
11899 (all.cross): Likewise.
11900 (selftest): New phony target.
11901 (s-selftest): New target.
11902 (selftest-gdb): New phony target.
11903 (COLLECT2_OBJS): Add selftest.o.
11904 * bitmap.c: Include "selftest.h".
11905 (selftest::test_gc_alloc): New function.
11906 (selftest::test_set_range): New function.
11907 (selftest::test_clear_bit_in_middle): New function.
11908 (selftest::test_copying): New function.
11909 (selftest::test_bitmap_single_bit_set_p): New function.
11910 (selftest::bitmap_c_tests): New function.
11911 * common.opt (fself-test): New.
11912 * diagnostic-show-locus.c: Include "selftest.h".
11913 (make_range): New function.
11914 (test_range_contains_point_for_single_point): New function.
11915 (test_range_contains_point_for_single_line): New function.
11916 (test_range_contains_point_for_multiple_lines): New function.
11917 (assert_eq): New function.
11918 (test_get_line_width_without_trailing_whitespace): New function.
11919 (selftest::diagnostic_show_locus_c_tests): New function.
11920 * et-forest.c: Include "selftest.h".
11921 (selftest::test_single_node): New function.
11922 (selftest::test_simple_tree): New function.
11923 (selftest::test_disconnected_nodes): New function.
11924 (selftest::et_forest_c_tests): New function.
11925 * fold-const.c: Include "selftest.h".
11926 (selftest::assert_binop_folds_to_const): New function.
11927 (selftest::assert_binop_folds_to_nonlvalue): New function.
11928 (selftest::test_arithmetic_folding): New function.
11929 (selftest::fold_const_c_tests): New function.
11930 * function-tests.c: New file.
11931 * gimple.c: Include "selftest.h".
11932 Include "gimple-pretty-print.h".
11933 (selftest::verify_gimple_pp): New function.
11934 (selftest::test_assign_single): New function.
11935 (selftest::test_assign_binop): New function.
11936 (selftest::test_nop_stmt): New function.
11937 (selftest::test_return_stmt): New function.
11938 (selftest::test_return_without_value): New function.
11939 (selftest::gimple_c_tests): New function.
11940 * hash-map-tests.c: New file.
11941 * hash-set-tests.c: New file.
11942 * input.c: Include "selftest.h".
11943 (selftest::assert_loceq): New function.
11944 (selftest::test_accessing_ordinary_linemaps): New function.
11945 (selftest::test_unknown_location): New function.
11946 (selftest::test_builtins): New function.
11947 (selftest::test_reading_source_line): New function.
11948 (selftest::input_c_tests): New function.
11949 * rtl-tests.c: New file.
11950 * selftest-run-tests.c: New file.
11951 * selftest.c: New file.
11952 * selftest.h: New file.
11953 * spellcheck.c: Include "selftest.h".
11954 (selftest::levenshtein_distance_unit_test_oneway): New function,
11955 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
11956 (selftest::levenshtein_distance_unit_test): Likewise.
11957 (selftest::spellcheck_c_tests): Likewise.
11958 * toplev.c: Include selftest.h.
11959 (toplev::run_self_tests): New.
11960 (toplev::main): Handle -fself-test.
11961 * toplev.h (toplev::run_self_tests): New.
11962 * tree.c: Include "selftest.h".
11963 (selftest::test_integer_constants): New function.
11964 (selftest::test_identifiers): New function.
11965 (selftest::test_labels): New function.
11966 (selftest::tree_c_tests): New function.
11967 * tree-cfg.c: Include "selftest.h".
11968 (selftest::push_fndecl): New function.
11969 (selftest::test_linear_chain): New function.
11970 (selftest::test_diamond): New function.
11971 (selftest::test_fully_connected): New function.
11972 (selftest::tree_cfg_c_tests): New function.
11973 * vec.c: Include "selftest.h".
11974 (selftest::safe_push_range): New function.
11975 (selftest::test_quick_push): New function.
11976 (selftest::test_safe_push): New function.
11977 (selftest::test_truncate): New function.
11978 (selftest::test_safe_grow_cleared): New function.
11979 (selftest::test_pop): New function.
11980 (selftest::test_safe_insert): New function.
11981 (selftest::test_ordered_remove): New function.
11982 (selftest::test_unordered_remove): New function.
11983 (selftest::test_block_remove): New function.
11984 (selftest::reverse_cmp): New function.
11985 (selftest::test_qsort): New function.
11986 (selftest::vec_c_tests): New function.c.
11987 * wide-int.cc: Include selftest.h and wide-int-print.h.
11988 (selftest::from_int <wide_int>): New function.
11989 (selftest::from_int <offset_int>): New function.
11990 (selftest::from_int <widest_int>): New function.
11991 (selftest::assert_deceq): New function.
11992 (selftest::assert_hexeq): New function.
11993 (selftest::test_printing <VALUE_TYPE>): New function template.
11994 (selftest::test_ops <VALUE_TYPE>): New function template.
11995 (selftest::test_comparisons <VALUE_TYPE>): New function template.
11996 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
11997 template.
11998 (selftest::wide_int_cc_tests): New function.
11999
12000 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12001
12002 PR middle-end/37780
12003 * ifcvt.c (noce_try_ifelse_collapse): New function.
12004 Declare prototype.
12005 (noce_process_if_block): Call noce_try_ifelse_collapse.
12006 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
12007 (simplify_ternary_operation): Use the above to simplify
12008 conditional CLZ/CTZ expressions.
12009
12010 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12011
12012 PR middle-end/37780
12013 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
12014 define_insn_and_split.
12015
12016 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12017
12018 PR middle-end/37780
12019 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
12020
12021 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
12022
12023 PR c/24414
12024 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
12025 Implicitly clobber memory for basic asm with non-empty assembler
12026 string. Use targetm.md_asm_adjust also here.
12027 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
12028 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
12029 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
12030 non-empty assembler string.
12031 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
12032 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
12033 (decode_asm_operands): Handle basic asm in PARALLEL block.
12034 (extract_insn): Handle basic asm in PARALLEL block.
12035 * doc/extend.texi: Mention new behavior of basic asm.
12036 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
12037 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
12038 branch_needs_nop_p): Use asm_noperands.
12039
12040 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
12041
12042 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
12043 Include the M7 SPARC DFA scheduler.
12044 New attribute v3pipe.
12045 Annotate insns with v3pipe where appropriate.
12046 Define cpu_feature vis4.
12047 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
12048 Add (V8QI "8") to vbits.
12049 Add insns {add,sub}v8qi3
12050 Add insns ss{add,sub}v8qi3
12051 Add insns us{add,sub}{v8qi,v4hi}3
12052 Add insns {min,max}{v8qi,v4hi,v2si}3
12053 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
12054 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
12055 * config/sparc/niagara4.md: Add a comment explaining the
12056 discrepancy between the documented latenty numbers and the
12057 implemented ones.
12058 * config/sparc/niagara7.md: New file.
12059 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
12060 supports SPARC5 and VIS 4.0 instructions.
12061 * configure: Regenerate.
12062 * config.in: Likewise.
12063 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
12064 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
12065 TARGET_CPU_niagara7.
12066 (ASM_CPU64_DEFAULT_SPEC): Likewise.
12067 (CPP_CPU_SPEC): Handle niagara7.
12068 (ASM_CPU_SPEC): Likewise.
12069 * config/sparc/sparc-opts.h (processor_type): Add
12070 PROCESSOR_NIAGARA7.
12071 (mvis4): New option.
12072 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
12073 (AS_NIAGARA7_FLAG): Define.
12074 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
12075 (CPP_CPU64_DEFAULT_SPEC): Likewise.
12076 (CPP_CPU_SPEC): Handle niagara7.
12077 (ASM_CPU_SPEC): Likewise.
12078 * config/sparc/sparc.c (niagara7_costs): Define.
12079 (sparc_option_override): Handle niagara7 and adjust cache-related
12080 parameters with better values for niagara cpus. Also support VIS4.
12081 (sparc32_initialize_trampoline): Likewise.
12082 (sparc_use_sched_lookahead): Likewise.
12083 (sparc_issue_rate): Likewise.
12084 (sparc_register_move_cost): Likewise.
12085 (dump_target_flag_bits): Support VIS4.
12086 (sparc_vis_init_builtins): Likewise.
12087 (sparc_builtins): Likewise.
12088 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
12089 VIS4 4.0.
12090 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
12091 UltraSparc M7.
12092 * config/sparc/sparc.opt (sparc_processor_type): New value
12093 niagara7.
12094 * config/sparc/visintrin.h (__attribute__): Prototypes for the
12095 VIS4 builtins.
12096 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
12097 -mvis4.
12098 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
12099 VIS4 builtins.
12100
12101 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
12102
12103 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
12104
12105 2016-06-06 Richard Biener <rguenther@suse.de>
12106
12107 PR tree-optimization/71398
12108 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
12109 remove edges.
12110
12111 2016-06-05 James Bowman <james.bowman@ftdichip.com>
12112
12113 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
12114 ft32_expand_prolog, ft32_expand_epilogue):
12115 Handle pretend_args.
12116 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
12117 * config/ft32/ft32.md: Add pretend_returner.
12118
12119 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
12120
12121 PR target/71389
12122 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
12123 Copy op1 RTX to avoid invalid sharing.
12124 (ix86_expand_vector_move_misalign): Ditto.
12125
12126 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
12127
12128 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
12129 ATTRIBUTE_UNUSED.
12130
12131 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
12132
12133 * predict.c (predicted_by_loop_heuristics_p): New function.
12134 (predict_iv_comparison): Use it.
12135 (predict_loops): Walk from innermost loops; do not predict edges
12136 leaving multiple loops multiple times; implement
12137 PRED_LOOP_ITERATIONS_MAX heuristics.
12138 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
12139
12140 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
12141
12142 * cfg.c (check_bb_profile): Do not report mismatched profiles when
12143 only edges out of BB are EH edges.
12144
12145 2016-06-04 Martin Sebor <msebor@redhat.com>
12146 Marcin Baczyński <marbacz@gmail.com>
12147
12148 PR c/48116
12149 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
12150 a void expression in a void function.
12151
12152 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
12153
12154 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
12155 aux; dump reasons of decisions.
12156 (should_duplicate_loop_header_p): Likewise.
12157 (do_while_loop_p): Likewise.
12158 (ch_base::copy_headers): Dump asi num insns duplicated.
12159
12160 2016-06-04 Jakub Jelinek <jakub@redhat.com>
12161
12162 PR tree-optimization/71405
12163 * tree-ssa.c (execute_update_addresses_taken): For clobber with
12164 incompatible type, build a new clobber with the right type instead
12165 of building a VIEW_CONVERT_EXPR around it.
12166
12167 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
12168
12169 PR tree-optimization/52171
12170 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
12171 by_pieces_ninsns instead of move_by_pieces_ninsns.
12172
12173 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
12174
12175 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
12176 for reg+reg addressing mode.
12177
12178 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12179
12180 * rs6000-c.c (c/c-tree.h): Add #include.
12181 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
12182 in C++ when found in the base position of vec_ld or vec_st.
12183
12184 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
12185
12186 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
12187 use of profile unless profile status is PROFILE_READ.
12188 * profile.c (compute_branch_probabilities): Set profile status
12189 only after reporting predictor hitrates.
12190
12191 2016-06-03 Joseph Myers <joseph@codesourcery.com>
12192
12193 PR target/71276
12194 PR target/71277
12195 * common.opt (ffp-int-builtin-inexact): New option.
12196 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
12197 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
12198 (ceil@var{m}2): Document dependence on this option.
12199 * ipa-inline-transform.c (inline_call): Handle
12200 flag_fp_int_builtin_inexact.
12201 * ipa-inline.c (can_inline_edge_p): Likewise.
12202 * config/i386/i386.md (rintxf2): Do not test
12203 flag_unsafe_math_optimizations.
12204 (rint<mode>2_frndint): New define_insn.
12205 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
12206 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
12207 for 387 instead of extending and truncating.
12208 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
12209 !flag_trapping_math instead of flag_unsafe_math_optimizations.
12210 Change to frndint<mode>2_<rounding>.
12211 (frndintxf2_<rounding>_i387): Likewise. Change to
12212 frndint<mode>2_<rounding>_i387.
12213 (<rounding_insn>xf2): Likewise.
12214 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
12215 !flag_trapping_math instead of flag_unsafe_math_optimizations for
12216 x87. Test TARGET_ROUND || !flag_trapping_math ||
12217 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
12218 SSE. Use ROUND_NO_EXC in constant operand of
12219 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
12220 for 387 instead of extending and truncating.
12221
12222 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
12223 Julia Koval <julia.koval@intel.com>
12224
12225 PR target/66960
12226 PR target/67630
12227 PR target/67634
12228 PR target/67841
12229 PR target/68037
12230 PR target/68618
12231 PR target/68661
12232 PR target/69575
12233 PR target/69596
12234 PR target/69734
12235 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
12236 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
12237 all registers, except for function return registers if there are
12238 no caller-saved registers.
12239 (ix86_set_func_type): New function.
12240 (ix86_set_current_function): Call ix86_set_func_type to set
12241 no_caller_saved_registers and func_type. Call reinit_regs if
12242 caller-saved registers are changed. Don't allow MPX, SSE, MMX
12243 nor x87 instructions in interrupt handler nor function with
12244 no_caller_saved_registers attribute.
12245 (ix86_function_ok_for_sibcall): Return false if there are no
12246 caller-saved registers.
12247 (type_natural_mode): Don't warn ABI change for MMX in interrupt
12248 handler.
12249 (ix86_function_arg_advance): Skip for callee in interrupt handler.
12250 (ix86_function_arg): Return special arguments in interrupt handler.
12251 (ix86_promote_function_mode): Promote pointer to word_mode only
12252 for normal functions.
12253 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
12254 interrupt handler.
12255 (ix86_epilogue_uses): New function.
12256 (ix86_hard_regno_scratch_ok): Likewise.
12257 (ix86_save_reg): Preserve all registers in interrupt handler
12258 after reload. Preserve all registers, except for function return
12259 registers, if there are no caller-saved registers after reload.
12260 (find_drap_reg): Always use callee-saved register if there are
12261 no caller-saved registers.
12262 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
12263 for interrupt handler.
12264 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
12265 Emit cld instruction if stringops are used in interrupt handler
12266 or interrupt handler isn't a leaf function.
12267 (ix86_expand_epilogue): Generate interrupt return for interrupt
12268 handler and pop the 'ERROR_CODE' off the stack before interrupt
12269 return in exception handler.
12270 (ix86_expand_call): Disallow calling interrupt handler directly.
12271 If there are no caller-saved registers, mark all registers that
12272 are clobbered by the call which returns as clobbered.
12273 (ix86_handle_no_caller_saved_registers_attribute): New function.
12274 (ix86_handle_interrupt_attribute): Likewise.
12275 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
12276 attributes.
12277 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
12278 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
12279 accumulation in interrupt function if stack may be realigned to
12280 avoid DRAP.
12281 (EPILOGUE_USES): New.
12282 (function_type): New enum.
12283 (machine_function): Add func_type and no_caller_saved_registers.
12284 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
12285 (interrupt_return): New pattern.
12286 * doc/extend.texi: Document x86 interrupt and
12287 no_caller_saved_registers attributes.
12288
12289 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
12290
12291 PR tree-optimization/52171
12292 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
12293 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
12294 Look for constant strings. Move some code to emit_block_cmp_hints
12295 and use it.
12296 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
12297 * defaults.h (COMPARE_MAX_PIECES): New macro.
12298 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
12299 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
12300 (clear_by_pieces_1): Don't declare. Move definition before use.
12301 (can_do_by_pieces): New static function.
12302 (can_move_by_pieces): Use it. Return bool.
12303 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
12304 OP. All callers changed. Handle COMPARE_BY_PIECES.
12305 (class pieces_addr); New.
12306 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
12307 pieces_addr::adjust, pieces_addr::increment_address,
12308 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
12309 functions for it.
12310 (class op_by_pieces_d): New.
12311 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
12312 functions for it.
12313 (class move_by_pieces_d, class compare_by_pieces_d,
12314 class store_by_pieces_d): New subclasses of op_by_pieces_d.
12315 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
12316 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
12317 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
12318 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
12319 compare_by_pieces_d::finish_mode): New member functions.
12320 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
12321 functions.
12322 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
12323 (emit_block_cmp_hints): New function.
12324 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
12325 use the newly defined classes.
12326 * expr.h (by_pieces_constfn): New typedef.
12327 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
12328 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
12329 (move_by_pieces_ninsns): Don't declare.
12330 (can_move_by_pieces): Change return value to bool.
12331 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
12332 (compare_by_pieces_branch_ratio): New hook.
12333 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
12334 (by_pieces_ninsns): Declare.
12335 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
12336 COMPARE_BY_PIECES.
12337 (default_compare_by_pieces_branch_ratio): New function.
12338 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
12339 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
12340 * doc/tm.texi: Regenerate.
12341 * tree-ssa-strlen.c: Include "builtins.h".
12342 (handle_builtin_memcmp): New static function.
12343 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
12344 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
12345
12346 2016-06-03 Alan Hayward <alan.hayward@arm.com>
12347
12348 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
12349 relevant stmts which are simple and invariant.
12350 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
12351 instead of simple and invariant
12352
12353 2016-06-03 Alan Hayward <alan.hayward@arm.com>
12354
12355 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
12356 (vectorizable_reduction): Check for new relevant state.
12357 (vectorizable_live_operation): vectorize live stmts using
12358 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
12359 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
12360 (vect_stmt_relevant_p): Check for stmts which are only used live.
12361 (process_use): Use of a stmt does not inherit it's live value.
12362 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
12363 (vect_analyze_stmt): Check for new relevant state.
12364 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
12365 outside the loop, but not inside it.
12366
12367 2016-06-03 Alan Hayward <alan.hayward@arm.com>
12368
12369 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
12370 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
12371 (vect_get_vec_def_for_operand): Split out code.
12372
12373 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
12374
12375 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
12376
12377 2016-06-03 Alan Hayward <alan.hayward@arm.com>
12378
12379 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
12380
12381 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12382
12383 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
12384
12385 2016-06-03 Jakub Jelinek <jakub@redhat.com>
12386
12387 PR middle-end/71387
12388 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
12389 to noreturn e->callee->decl that has void return type and void
12390 arguments, adjust gimple_call_fntype and remove lhs even if it had
12391 previously addressable type.
12392
12393 2016-06-02 Jeff Law <law@redhat.com>
12394
12395 PR tree-optimization/71328
12396 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
12397 error when checking for a jump back onto the copied path.
12398
12399 2016-06-02 David Malcolm <dmalcolm@redhat.com>
12400
12401 * config/microblaze/microblaze.c (get_branch_target): Add return
12402 NULL_RTX for the non-CALL_P case.
12403 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
12404 (insert_wic): Remove unused local "j".
12405
12406 2016-06-02 Martin Liska <mliska@suse.cz>
12407
12408 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
12409
12410 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
12411 Julia Koval <julia.koval@intel.com>
12412
12413 * function.c (assign_parm_setup_stack): Force source into a
12414 register if needed.
12415 * target.def (function_incoming_arg): Update documentation to
12416 allow arbitrary address computation based on hard register.
12417 * doc/tm.texi: Regenerated.
12418
12419 2016-06-02 Martin Liska <mliska@suse.cz>
12420
12421 * predict.c (combine_predictions_for_bb): Fix first match in
12422 cases where a first predictor contains more than one occurence
12423 in list of predictors. Take the best value in such case.
12424
12425 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12426
12427 PR rtl-optimization/71295
12428 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
12429 offset would go over the size of the inner mode reject it.
12430
12431 2016-06-02 Jakub Jelinek <jakub@redhat.com>
12432
12433 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
12434 x=x,x and v=v,m instead of x=x,m.
12435
12436 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
12437 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
12438 alternative to v=rm,C.
12439
12440 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
12441 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
12442 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
12443 instead of vex for the last two above mentioned alternatives.
12444
12445 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12446
12447 PR target/70830
12448 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
12449
12450 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
12451
12452 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
12453
12454 2016-06-01 David Malcolm <dmalcolm@redhat.com>
12455
12456 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
12457 from int to unsigned.
12458
12459 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
12460
12461 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
12462 alternatives, eliminating preferred register class. Add support
12463 for the MTVSRDD instruction in ISA 3.0.
12464 (vsx_splat_v4si_internal): Use splat_input_operand instead of
12465 reg_or_indexed_operand.
12466 (vsx_splat_v4sf_internal): Likewise.
12467
12468 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
12469
12470 PR target/71186
12471 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
12472 for loading up all 0's or all 1's.
12473
12474 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
12475
12476 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
12477
12478 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
12479
12480 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
12481 extension.
12482 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
12483 * gcc.c (set_source_date_epoch_envvar): New function, sets
12484 the SOURCE_DATE_EPOCH environment variable to the current time.
12485
12486 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
12487
12488 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
12489 the factor for live Phi nodes.
12490
12491 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
12492
12493 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
12494 * tree-parloops.c (parallelize_loops): likewise.
12495 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
12496 tree_unswitch_outer_loop): likewise.
12497
12498 2016-06-01 Jakub Jelinek <jakub@redhat.com>
12499
12500 PR middle-end/71371
12501 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
12502 around creation of the temporary.
12503
12504 2016-06-01 Richard Biener <rguenther@suse.de>
12505
12506 PR tree-optimization/71366
12507 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
12508 (unloop_loops): Move removing edges here ...
12509 (try_unroll_loop_completely): ... from here.
12510 (try_peel_loop): ... and here.
12511 (tree_unroll_loops_completely_1): Track parent loops via
12512 bitmap of header BBs.
12513 (tree_unroll_loops_completely): Adjust for that.
12514
12515 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
12516
12517 * config/rs6000/altivec.h (vec_slv): New macro.
12518 (vec_srv): New macro.
12519 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
12520 (UNSPEC_VSRV): New value.
12521 (vslv): New insn.
12522 (vsrv): New insn.
12523 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
12524 (vsrv): New builtin definition.
12525 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
12526 define argument types for new builtin.
12527 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
12528 new builtin.
12529 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
12530 functions.
12531
12532 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
12533 Jocelyn Mayer <l_indien@magic.fr>
12534
12535 PR target/67310
12536 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
12537 detect processor family for signature_CENTAUR_ebx.
12538 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
12539 signature_CENTAUR_ebx.
12540 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
12541 <default>: Pass x86-64 for has_longmode.
12542
12543 2016-06-01 Nathan Sidwell <nathan@acm.org>
12544
12545 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
12546 undefined weak.
12547
12548 2016-06-01 Richard Biener <rguenther@suse.de>
12549
12550 PR tree-optimization/71261
12551 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
12552 of stmts successfully put in the bool pattern. Remove
12553 single-use restriction.
12554 (adjust_bool_pattern_cast): Add cast at the use site via the
12555 pattern def sequence.
12556 (adjust_bool_pattern): Remove recursion, maintain a hash-map
12557 of patterned defs. Use the pattern def seqence instead of
12558 multiple independent patterns.
12559 (sort_after_uid): New qsort compare function.
12560 (adjust_bool_stmts): New function to process stmts in the bool
12561 pattern in IL order.
12562 (vect_recog_bool_pattern): Adjust.
12563 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
12564 (ifcvt_walk_pattern_tree): Likewise.
12565 (stmt_is_root_of_bool_pattern): Likewise.
12566 (ifcvt_repair_bool_pattern): Likewise.
12567 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
12568
12569 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
12570
12571 * loop-unroll.c (decide_unroll_constant_iterations,
12572 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
12573 likely upper bounds.
12574 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
12575
12576 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
12577
12578 * tree-core.h (enum omp_clause_code): Remove
12579 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
12580
12581 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12582
12583 * config/arm/sync.md (arm_store_exclusive<mode>):
12584 Use 'H' output modifier on operands[2] rather than creating a new
12585 entry in out-of-bounds memory of the operands array.
12586 (arm_store_release_exclusivedi): Likewise.
12587
12588 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12589
12590 * config/arm/arm.c (arm_fusion_enabled_p): New function.
12591 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
12592 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
12593 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
12594
12595 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
12596
12597 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
12598 into account live statements for mask producers.
12599
12600 2016-06-01 Richard Biener <rguenther@suse.de>
12601
12602 PR tree-optimization/71311
12603 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
12604 restrict to non-INTEGER_CST @0.
12605
12606 2016-06-01 Richard Biener <rguenther@suse.de>
12607
12608 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
12609 (relational patterns): Use :c to avoid pattern duplications.
12610
12611 2016-06-01 Richard Biener <rguenther@suse.de>
12612
12613 * genmatch.c (comparison_code_p): New predicate.
12614 (swap_tree_comparison): New function.
12615 (commutate): Add for_vec parameter to append new for entries.
12616 Support commutating relational operators by swapping it alongside
12617 operands.
12618 (lower_commutative): Adjust.
12619 (dt_simplify::gen): Do not pass artificial operators to gen
12620 functions.
12621 (decision_tree::gen): Do not add artificial operators as parameters.
12622 (parser::parse_expr): Verify operator commutativity when :c is
12623 applied. Allow :C to override this.
12624 * match.pd: Adjust patterns to use :C instead of :c where required.
12625
12626 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
12627
12628 PR tree-optimization/71077
12629 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
12630 the combining step, use boolean_false_node and boolean_true_node
12631 as the designated false/true return values.
12632
12633 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12634
12635 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
12636 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
12637 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
12638 PRED_LOOP_EXIT.
12639
12640 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12641
12642 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
12643 of flags impliying the register renaming.
12644 * toplev.c (process_options): Do not imply flag_rename_registers with
12645 loop peeling.
12646
12647 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12648
12649 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
12650 default implementation.
12651
12652 2016-05-31 Nathan Sidwell <nathan@acm.org>
12653
12654 * dwarf2out.c (cur_line_info_table): Add GTY marker.
12655
12656 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12657
12658 * config/sh/constraints.md (b): Remove constraint.
12659 * config/sh/predicates.md (arith_reg_operand): Remove
12660 TARGET_REGISTER_P.
12661 * config/sh/sh-modes.def (PDI): Remove.
12662 * config/sh/sh.c (sh_target_reg_class,
12663 sh_optimize_target_register_callee_saved): Remove functions.
12664 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
12665 (sh_expand_epilogue): Update comment.
12666 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
12667 sh_secondary_reload): Remove TARGET_REGS related code.
12668 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
12669 TARGET_REGISTER_P): Remove macros.
12670 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
12671 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
12672 TR1_REG, TR2_REG): Remove constants.
12673 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
12674
12675 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12676
12677 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
12678 define_expand patterns.
12679 (adddi3_compact): Rename to adddi3.
12680 (subdi3_compact): Rename to subdi3.
12681 (*negdi2): Rename to negdi2.
12682 (*abs<mode>2): Rename to abs<mode>2.
12683
12684 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12685
12686 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
12687 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
12688 (atomic_sub_fetchsi): ... this new pattern.
12689 (mvtc): Add CC_REG clobber.
12690
12691 2016-05-31 Marek Polacek <polacek@redhat.com>
12692
12693 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
12694
12695 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12696
12697 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
12698 aarch64_fusion_enabled_p to check for fusion capabilities.
12699
12700 2016-05-31 Richard Biener <rguenther@suse.de>
12701
12702 PR tree-optimization/71352
12703 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
12704 minus one and a negate.
12705
12706 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12707
12708 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
12709 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
12710 Delete prototype.
12711 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
12712 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
12713 Remove use of aarch64_simd_attr_length_move, set length attribute
12714 directly.
12715 (*aarch64_be_movoi): Likewise.
12716 (*aarch64_be_movci): Likewise.
12717 (*aarch64_be_movxi): Likewise.
12718
12719 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12720
12721 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
12722 It no longer does that.
12723 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
12724
12725 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
12726
12727 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
12728 attribute __unused__.
12729
12730 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
12731
12732 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
12733 * config/arm/arm.c (arm_arch_thumb1): Define.
12734 (arm_option_override): Initialize arm_arch_thumb1.
12735 * config/arm/arm.h (arm_arch_thumb1): Declare.
12736 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
12737 support Thumb-1 ISA.
12738
12739 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
12740
12741 PR target/71346
12742 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
12743 `Yv' for scalar operand.
12744
12745 2016-05-31 Tom de Vries <tom@codesourcery.com>
12746
12747 PR tree-optimization/69068
12748 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
12749 phis with more than two args.
12750
12751 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
12752
12753 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
12754 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
12755 target.
12756
12757 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
12758
12759 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
12760 tune_64.
12761 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
12762 support on SPARC.
12763 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
12764 cpu_32, cpu_64, tune_32 and tune_64.
12765 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
12766
12767 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
12768
12769 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
12770
12771 2016-05-30 Andi Kleen <ak@linux.intel.com>
12772
12773 * auto-profile.c (read_profile): Replace asserts with errors
12774 when file does not exist.
12775 * gcov-io.c (gcov_read_words): Dito.
12776
12777 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12778
12779 * tree-cfg.c (print_loop): Print likely upper bounds.
12780
12781 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12782
12783 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
12784 * opts.c (default_options): Enable peel loops at -O3.
12785 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
12786 (try_peel_loop): Do not re-peel already peeled loops;
12787 use likely upper bounds; fix profile updating.
12788 (pass_complete_unroll::execute): Initialize peeled_loops.
12789
12790 2016-05-30 Martin Liska <mliska@suse.cz>
12791
12792 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
12793 computed costs by frequency of BB they belong to.
12794 (get_scaled_computation_cost_at): New function.
12795
12796 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
12797 Marc Glisse <marc.glisse@inria.fr>
12798
12799 PR tree-optimization/71289
12800 * match.pd (-1 / B < A, A > -1 / B): New transformations.
12801
12802 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12803
12804 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
12805
12806 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12807
12808 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
12809 for peeled copies; avoid underflow when updating estimates; correctly
12810 scale loop profile.
12811
12812 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12813
12814 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
12815 r236875. Corrected oe3 to oe2 as obvious.
12816
12817 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12818
12819 PR middle-end/71269
12820 PR middle-end/71252
12821 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
12822 that inserted stmt will not dominate stmts that defines its operand.
12823 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
12824 (rewrite_expr_tree_parallel): Likewise.
12825
12826 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12827
12828 PR middle-end/71252
12829 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
12830 all fields including stmt_to_insert are swapped.
12831
12832 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12833
12834 * predict.h (force_edge_cold): Declare.
12835 * predict.c (force_edge_cold): New function.
12836 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
12837 updating.
12838 (canonicalize_loop_induction_variables): Fix formating.
12839
12840 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
12841
12842 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
12843 (visium_expand_copysign): Use gen_int_mode directly.
12844 (visium_compute_frame_size): Minor tweaks.
12845
12846 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12847
12848 * tree-vect-loop.c (vect_analyze_loop_2): Use
12849 likely_max_stmt_executions_int.
12850
12851 2016-05-30 Tom de Vries <tom@codesourcery.com>
12852
12853 PR tree-optimization/69067
12854 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
12855
12856 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
12857
12858 PR target/71245
12859 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
12860 New peepholes to remove unneeded fild/fistp pairs.
12861 (define_peephole2 atomic_loaddi_fpu): Ditto.
12862
12863 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12864
12865 * predict.c (maybe_hot_frequency_p): Avoid division.
12866
12867 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
12868
12869 * doc/install.texi: Use https for shop.fsf.org.
12870
12871 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12872
12873 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
12874 likely_max_stmt_executions_int.
12875
12876 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12877
12878 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
12879 likely_max_stmt_executions_int.
12880
12881 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12882
12883 * profile.c (compute_branch_probabilities): Do not report hitrates
12884 here.
12885 (branch_prob): Report hitrates here.
12886 * predict.c (gimple_predict_edge): Do not assert profile status;
12887 fix formatting issues.
12888
12889 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12890
12891 * predict.c (edge_predicted_by_p): New function.
12892 (predict_paths_for_bb): Do not put multiple predictions of the same type
12893 on one edge.
12894
12895 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12896
12897 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
12898 commit.
12899
12900 2016-05-28 Alan Modra <amodra@gmail.com>
12901
12902 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
12903
12904 2016-05-28 Alan Modra <amodra@gmail.com>
12905
12906 PR rtl-optimization/71275
12907 * ira.c (ira): Free dominance info.
12908
12909 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
12910
12911 * doc/sourcebuild.texi: New address for upstream Go repository.
12912
12913 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
12914
12915 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
12916 (TARGET_ARM_V7M): Likewise.
12917
12918 2016-05-26 Jeff Law <law@redhat.com>
12919
12920 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
12921 (thread_across_edge): Remove calls to find_jump_threads_backwards.
12922 * passes.def: Add jump threading passes before DOM/VRP.
12923 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
12924 argument to a basic block from an edge. Remove tests which are
12925 handled elsewhere.
12926 (pass_data_thread_jumps, class pass_thread_jumps): New.
12927 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
12928 (make_pass_thread_jumps): Likewise.
12929 * tree-pass.h (make_pass_thread_jumps): Declare.
12930
12931 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
12932
12933 * config/visium/visium-protos.h (split_double_move): Rename into...
12934 (visium_split_double_move): ...this.
12935 (visium_split_double_add): Declare.
12936 * config/visium/visium.c (split_double_move): Rename into...
12937 (visium_split_double_move): ...this.
12938 (visium_split_double_add): New function.
12939 (visium_expand_copysign): Renumber operands for consistency.
12940 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
12941 (DFmode move splitter): Likewise.
12942 (*addi3_insn): Split by means of visium_split_double_add.
12943 (*adddi3_insn_flags): Delete.
12944 (*plus_plus_sltu<subst_arith>): New insn.
12945 (*subdi3_insn): Split by means of visium_split_double_add.
12946 (subdi3_insn_flags): Delete.
12947 (*minus_minus_sltu<subst_arith>): New insn.
12948 (*negdi2_insn): Split by means of visium_split_double_add.
12949 (*negdi2_insn_flags): Delete.
12950
12951 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
12952
12953 * configure.ac: Treat a --with-headers option without argument
12954 the same as the default (i.e. consult sys-include directory).
12955 * configure: Regenerate.
12956
12957 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12958
12959 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
12960 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
12961 prototype.
12962 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
12963 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
12964
12965 2016-05-27 Jiong Wang <jiong.wang@arm.com>
12966
12967 PR target/63596
12968 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
12969 tree-stdarg analysis results.
12970 (aarch64_setup_incoming_varargs): Likewise.
12971
12972 2016-05-27 Jiong Wang <jiong.wang@arm.com>
12973
12974 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
12975 va_list_gpr_counter_field and va_list_fpr_counter_field.
12976
12977 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
12978
12979 PR67609
12980 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
12981 * config/aarch64/aarch64.c
12982 (aarch64_cannot_change_mode_class): Remove function.
12983 * config/aarch64/aarch64-protos.h
12984 (aarch64_cannot_change_mode_class): Remove.
12985
12986 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12987
12988 * cfgloop.c (record_niter_bound): Record likely upper bounds.
12989 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
12990 get_likely_max_loop_iterations_int): New.
12991 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
12992 any_likely_upper_bound.
12993 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
12994 Declare.
12995 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
12996 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
12997 upper bound.
12998 (unroll_loop_constant_iterations): Likewise.
12999 (unroll_loop_runtime_iterations): Likewise.
13000 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
13001 * lto-streamer-out.c (output_cfg): Likewise.
13002 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
13003 bounds.
13004 (canonicalize_loop_induction_variables): Dump likely upper bounds.
13005 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
13006 (likely_max_loop_iterations): New.
13007 (likely_max_loop_iterations_int): New.
13008 (likely_max_stmt_executions): New.
13009 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
13010 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
13011 likely_max_stmt_executions): Declare.
13012
13013 2016-05-27 Marek Polacek <polacek@redhat.com>
13014
13015 PR middle-end/71308
13016 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
13017
13018 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13019
13020 * config/s390/s390.md (2x risbg splitters): Use
13021 reg_overlap_mentioned_p instead of rtx_equal_p.
13022
13023 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
13024
13025 * combine.c (make_compound_operation): Take known zero bits into
13026 account when checking for possible zero_extend.
13027
13028 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13029
13030 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
13031 Use const_int_operand for operand 2 predicate. Simplify expand code
13032 as a result.
13033
13034 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
13035
13036 PR middle-end/71279
13037 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
13038 into comparison.
13039
13040 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13041
13042 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
13043 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
13044 that returns CC_SESWPmode and CC_ZESWPmode.
13045 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
13046 and CC_SESWPmode.
13047 (aarch64_rtx_costs): Likewise.
13048
13049 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
13050
13051 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
13052 for ISA 3.0 min/max support.
13053 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
13054 conditional move support.
13055 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
13056 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
13057 available.
13058 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
13059 conditional moves where the comparison type is different from move
13060 type.
13061 (fp_minmax): New code iterator for smin/smax.
13062 (minmax): New code attributes for min/max.
13063 (SMINMAX): Likewise.
13064 (smax<mode>3): Combine min, max insns into one insn using the
13065 fp_minmax code iterator. Add support for ISA 3.0 min/max
13066 instructions that don't need -ffast-math.
13067 (s<minmax><mode>3): Likewise.
13068 (smax<mode>3_vsx): Likewise.
13069 (smin<mode>3): Likewise.
13070 (s<minmax><mode>3_vsx): Likewise.
13071 (smin<mode>3_vsx): Likewise.
13072 (pre-VSX min/max splitters): Likewise.
13073 (s<minmax><mode>3_fpr): Likewise.
13074 (movsfcc): Rewrite floating point conditional moves to combine
13075 SFmode/DFmode into a single insn.
13076 (mov<mode>cc): Likewise.
13077 (movdfcc): Likewise.
13078 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
13079 SFDF2 iterators to handle all combinations.
13080 (fseldfsf4): Likewise.
13081 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
13082 (fseldfdf4): Likewise.
13083 (fselsfdf4): Likewise.
13084 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
13085 comparison instructions that set a 0/-1 mask, and use it for
13086 floating point conditional move via XXSEL.
13087 (fpmask<mode>): Likewise.
13088 (xxsel<mode>): Likewise.
13089 * config/rs6000/predicates.md (min_max_operator): Delete, no
13090 longer used.
13091 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
13092 instructions that generate a 0/-1 mask for use with XXSEL.
13093 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
13094 say whether floating point min/max is available, either through
13095 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
13096 (TARGET_MINMAX_DF): Likewise.
13097
13098 2016-05-27 Alan Modra <amodra@gmail.com>
13099
13100 PR rtl-optimization/71275
13101 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
13102 for update_equiv_regs and combine_and_move_insns.
13103
13104 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
13105
13106 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
13107 if_then_else or cond RTXes to calculate attribute value.
13108 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
13109 <attr "length_immediate>: Ditto.
13110 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
13111 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
13112 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
13113 <attr "type">: Ditto.
13114 <attr "prefix_data16">: Ditto.
13115 <attr "prefix_extra">: Ditto.
13116 <attr "length_immediate">: Ditto.
13117 <attr "prefix">: Ditto.
13118 (vec_set<mode>_0) <attr "isa">: Ditto.
13119 <attr "prefix_extra">: Ditto.
13120 <attr "length_immediate">: Ditto.
13121 <attr "prefix">: Ditto.
13122 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
13123 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
13124 (sse2_storelpd) <attr "prefix_data16">: Ditto.
13125 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
13126 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
13127 <attr "length_immediate">: Ditto.
13128 <attr "prefix">: Ditto.
13129 (sse2_movsd) <attr "length_immediate">: Ditto.
13130 <attr "prefix">: Ditto.
13131 (vec_concatv2df) <attr "isa">: Ditto.
13132 <attr "prefix">: Ditto.
13133 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
13134 (*vec_extractv2di_1) <attr "isa">: Ditto.
13135 <attr "type">: Ditto.
13136 <attr "length_immediate">: Ditto.
13137 <attr "prefix_rex">: Ditto.
13138 <attr "prefix_extra">: Ditto.
13139 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
13140 <attr "prefix_extra">: Ditto.
13141 <attr "length_immediate">: Ditto.
13142 (vec_concatv2di) <attr "isa">: Ditto.
13143 <attr "prefix_extra">: Ditto.
13144 <attr "length_immediate">: Ditto.
13145 <attr "prefix">: Ditto.
13146
13147 2016-05-26 Martin Liska <mliska@suse.cz>
13148
13149 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
13150 function.
13151 (operator+): Likewise.
13152 (operator-): Likewise.
13153 (comp_cost::operator+=): Likewise.
13154 (comp_cost::operator-=): Likewise.
13155 (comp_cost::operator/=): Likewise.
13156 (comp_cost::operator*=): Likewise.
13157 (operator<): Likewise.
13158 (operator==): Likewise.
13159 (operator<=): Likewise.
13160 (new_cost): Remove.
13161 (infinite_cost_p): Likewise.
13162 (add_costs): Likewise.
13163 (sub_costs): Likewise.
13164 (compare_costs): Likewise.
13165 (set_group_iv_cost): Use the newly introduced functions.
13166 (get_address_cost): Likewise.
13167 (get_shiftadd_cost): Likewise.
13168 (force_expr_to_var_cost): Likewise.
13169 (split_address_cost): Likewise.
13170 (ptr_difference_cost): Likewise.
13171 (difference_cost): Likewise.
13172 (get_computation_cost_at): Likewise.
13173 (determine_group_iv_cost_generic): Likewise.
13174 (determine_group_iv_cost_address): Likewise.
13175 (determine_group_iv_cost_cond): Likewise.
13176 (autoinc_possible_for_pair): Likewise.
13177 (determine_group_iv_costs): Likewise.
13178 (cheaper_cost_pair): Likewise.
13179 (iv_ca_recount_cost): Likewise.
13180 (iv_ca_set_no_cp): Likewise.
13181 (iv_ca_set_cp): Likewise.
13182 (iv_ca_cost): Likewise.
13183 (iv_ca_new): Likewise.
13184 (iv_ca_dump): Likewise.
13185 (iv_ca_narrow): Likewise.
13186 (iv_ca_prune): Likewise.
13187 (iv_ca_replace): Likewise.
13188 (try_add_cand_for): Likewise.
13189 (try_improve_iv_set): Likewise.
13190 (find_optimal_iv_set): Likewise.
13191
13192 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
13193
13194 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
13195 that internal functions will clobber all caller-saved registers.
13196
13197 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
13198
13199 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
13200 Return a better case_values_threshold when optimizing.
13201
13202 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
13203
13204 * config/aarch64/aarch64-simd.md (aarch64_combinez):
13205 Add ? to integer variant.
13206 (aarch64_combinez_be): Likewise.
13207
13208 2016-05-26 Jakub Jelinek <jakub@redhat.com>
13209
13210 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
13211 instead of x constraint.
13212 (vcvtps2ph256<mask_name>): Likewise.
13213
13214 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
13215 alternative. Formatting fix.
13216
13217 * config/i386/sse.md
13218 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
13219 to ...
13220 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
13221 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
13222 maybe_evex prefix instead of vex.
13223 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
13224 EXT_REX_SSE_REG_P (op0) case in the splitter.
13225
13226 2016-05-25 Jeff Law <law@redhat.com>
13227
13228 PR tree-optimization/71272
13229 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
13230 Update comments. Add test for empty path.
13231
13232 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
13233
13234 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
13235 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
13236 special case builtin.
13237 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
13238 code for ALTIVEC_BUILTIN_VEC_CMPNE.
13239 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
13240 for __builtin_vec_cmpne.
13241
13242 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
13243
13244 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
13245 redundant test and bail out if the type of the new operand is not
13246 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
13247
13248 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
13249
13250 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
13251 (x_ix86_target_flags_explicit): Remove.
13252 * config/i386/i386.c (ix86_function_specific_save): Do not copy
13253 x_ix86_target_flags_explicit.
13254 (ix86_function_specific_restore): Ditto.
13255
13256 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
13257 H.J. Lu <hongjiu.lu@intel.com>
13258
13259 PR target/70738
13260 * common/config/i386/i386-common.c
13261 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
13262 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
13263 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
13264 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
13265 (-mgeneral-regs-only): Add new option.
13266 * config/i386/i386.c (ix86_option_override_internal): Don't enable
13267 x87 instructions if only general registers are allowed.
13268 (ix86_target_string): Add ix86_flags argument. Handle additional
13269 flags options through ix86_flags argument. Update all callers.
13270 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
13271
13272 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13273
13274 PR rtl-optimization/66940
13275 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
13276 decrementing desired_val will not overflow before performing these
13277 operations.
13278
13279 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
13280
13281 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
13282 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
13283 * config/i386/i386.c (enum ix86_builtins): Add
13284 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
13285 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
13286 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
13287 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
13288 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
13289 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
13290 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
13291 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
13292 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
13293 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
13294 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
13295 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
13296 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
13297 __builtin_ia32_cvtps2dq512_mask.
13298 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
13299 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
13300 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
13301 * config/i386/sse.md
13302 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
13303 Rename to ...
13304 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
13305 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
13306 to ...
13307 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
13308 (avx512f_vec_pack_sfix_v8df): New define_expand.
13309 (avx512f_roundpd512): Rename to ...
13310 (avx512f_round<castmode>512): ... this. Change iterator.
13311 (avx512f_roundps512_sfix): New define_expand.
13312 (round<mode>2_sfix): Change iterator.
13313
13314 2016-05-25 Nick Clifton <nickc@redhat.com>
13315
13316 * config/msp430/msp430.c (msp430_attr): Produce an error if a
13317 static interrupt handler is detected.
13318 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
13319 default linker script.
13320 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
13321 the low part of a symbolic pointer.
13322
13323 2016-05-25 Richard Biener <rguenther@suse.de>
13324
13325 PR tree-optimization/71261
13326 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
13327 interesting stmt instead of immediate uses when looking
13328 for the use operand to replace.
13329
13330 2016-05-25 Martin Liska <mliska@suse.cz>
13331
13332 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
13333
13334 2016-05-25 Richard Biener <rguenther@suse.de>
13335
13336 PR tree-optimization/71264
13337 * tree-vect-stmts.c (vect_init_vector): Properly deal with
13338 vector type val.
13339
13340 2016-05-25 Martin Liska <mliska@suse.cz>
13341
13342 PR tree-optimization/71239
13343 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
13344 if DECL_SIZE is NULL.
13345
13346 2016-05-25 Richard Biener <rguenther@suse.de>
13347
13348 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
13349 * tree-if-conv.c (pass_data_if_conversion): Use it.
13350
13351 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
13352
13353 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
13354 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
13355 * varpool.c (varpool_node::get_availability): Likewise.
13356
13357 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
13358
13359 * config/rs6000/altivec.md (VNEG iterator): New iterator for
13360 VNEGW/VNEGD instructions.
13361 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
13362 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
13363 support for ISA 3.0 VNEGW/VNEGD instructions.
13364
13365 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
13366
13367 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
13368 pointers inside OACC_DATA regions.
13369 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
13370 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
13371 (gimplify_adjust_omp_clauses): Fix typo in comment.
13372
13373 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
13374
13375 * config/rs6000/altivec.md (VParity): New mode iterator for vector
13376 parity built-in functions.
13377 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
13378 zeros.
13379 (p9v_parity<mode>2): Likewise.
13380 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
13381 parity.
13382 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
13383 (parity<mode>2): ISA 3.0 expander for vector parity.
13384 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
13385 power9 built-ins.
13386 (BU_P9_64BIT_MISC_0): Likewise.
13387 (BU_P9_MISC_0): Likewise.
13388 (BU_P9V_AV_1): Likewise.
13389 (BU_P9V_AV_2): Likewise.
13390 (BU_P9V_AV_3): Likewise.
13391 (BU_P9V_AV_P): Likewise.
13392 (BU_P9V_VSX_1): Likewise.
13393 (BU_P9V_OVERLOAD_1): Likewise.
13394 (BU_P9V_OVERLOAD_2): Likewise.
13395 (BU_P9V_OVERLOAD_3): Likewise.
13396 (VCTZB): Add vector count trailing zeros support.
13397 (VCTZH): Likewise.
13398 (VCTZW): Likewise.
13399 (VCTZD): Likewise.
13400 (VPRTYBD): Add vector parity support.
13401 (VPRTYBQ): Likewise.
13402 (VPRTYBW): Likewise.
13403 (VCTZ): Add overloaded vector count trailing zeros support.
13404 (VPRTYB): Add overloaded vector parity support.
13405 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13406 overloaded vector count trailing zeros and parity instructions.
13407 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
13408 vector parity support.
13409 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
13410 trailing zeros support.
13411 (vec_cntlz): Likewise.
13412 (vec_vctzb): Likewise.
13413 (vec_vctzd): Likewise.
13414 (vec_vctzh): Likewise.
13415 (vec_vctzw): Likewise.
13416 (vec_vprtyb): Add ISA 3.0 vector parity support.
13417 (vec_vprtybd): Likewise.
13418 (vec_vprtybw): Likewise.
13419 (vec_vprtybq): Likewise.
13420 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
13421 the ISA 3.0 vector count trailing zeros and vector parity built-in
13422 functions.
13423
13424 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
13425
13426 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
13427 when there is stmt_to_insert.
13428
13429 2016-05-24 Martin Sebor <msebor@redhat.com>
13430
13431 PR c++/71147
13432 * tree.h (complete_or_array_type_p): New inline function.
13433
13434 2016-05-24 Jakub Jelinek <jakub@redhat.com>
13435
13436 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
13437 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
13438 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
13439
13440 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
13441 Limit 1st alternative to noavx isa, split 2nd alternative into one
13442 noavx and one avx alternative, use *x and Bm in the former and
13443 x and m in the latter.
13444
13445 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
13446 of sse4 for the first alternative, drop %v from the template
13447 and d operand modifier. Split second alternative into one sse4_noavx
13448 and one avx alternative, use *x instead of *v in the former and v
13449 instead of *v in the latter.
13450 (*sse4_1_extractps): Use noavx isa instead of * for the first
13451 alternative, drop %v from the template. Split second alternative into
13452 one noavx and one avx alternative, use *x instead of *v in the
13453 former and v instead of *v in the latter.
13454 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
13455 with noavx and the last one with avx.
13456 (sse4_1_phminposuw): Guard first alternative with noavx isa,
13457 split the second one into one noavx and one avx alternative,
13458 use *x and Bm in the former and x and m in the latter one.
13459 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
13460 alternatives.
13461
13462 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
13463 first two alternatives to noavx, use *x instead of *v in the second
13464 one, add avx alternative without *.
13465 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
13466 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
13467 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
13468
13469 2016-05-24 Jeff Law <law@redhat.com>
13470
13471 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
13472 New function, extracted from...
13473 (fsm_find_control_statement_thread_paths): Here. Use the new function.
13474 Allow simple copies and constant initializations in the SSA chain.
13475
13476 2016-05-24 Marek Polacek <polacek@redhat.com>
13477
13478 PR c/71249
13479 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
13480 scope.
13481
13482 2016-05-24 Jakub Jelinek <jakub@redhat.com>
13483
13484 PR c++/71257
13485 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
13486 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
13487 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
13488 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
13489 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
13490
13491 2016-05-24 Richard Biener <rguenther@suse.de>
13492
13493 PR tree-optimization/71240
13494 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
13495 has integral type.
13496
13497 2016-05-24 Richard Biener <rguenther@suse.de>
13498
13499 PR tree-optimization/71230
13500 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
13501
13502 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
13503
13504 * tree-vectorizer.h (vectorizable_comparison): Delete.
13505 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
13506 PURE_SLP_STMT check.
13507 * tree-vect-stmts.c (vectorizable_call): Likewise.
13508 (vectorizable_simd_clone_call): Likewise.
13509 (vectorizable_conversion): Likewise.
13510 (vectorizable_assignment): Likewise.
13511 (vectorizable_shift): Likewise.
13512 (vectorizable_operation): Likewise.
13513 (vectorizable_load): Likewise.
13514 (vectorizable_condition): Likewise.
13515 (vectorizable_store): Likewise. Assert that we don't have
13516 hybrid SLP.
13517 (vectorizable_comparison): Make static. Remove redundant
13518 PURE_SLP_STMT check.
13519 (vect_transform_stmt): Assert that we always have an slp_node
13520 if PURE_SLP_STMT.
13521
13522 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13523
13524 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
13525 operands[2] against 1 with comparison against CONST1_RTX.
13526 (<shift>di3_neon): Likewise.
13527 * config/arm/predicates.md (const0_operand): Replace with comparison
13528 against CONST0_RTX.
13529
13530 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13531
13532 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
13533 operands[2] against 1 with comparison against CONST1_RTX.
13534 (ashrdi3): Likewise.
13535 (lshrdi3): Likewise.
13536 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
13537 UINTVAL.
13538 (ashrsi3): Likewise.
13539 (lshrsi3): Likewise.
13540 (rotrsi3): Likewise.
13541 (define_split above *compareqi_eq0): Likewise.
13542 (define_split above "prologue"): Likewise.
13543 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
13544 * config/arm/predicates.md (shift_operator): Likewise.
13545 (shift_nomul_operator): Likewise.
13546 (sat_shift_operator): Likewise.
13547 (thumb1_cmp_operand): Likewise.
13548 (const_neon_scalar_shift_amount_operand): Replace manual range
13549 check with IN_RANGE.
13550 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
13551 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
13552
13553 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13554
13555 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
13556 with HOST_WIDE_INT_1.
13557 (insv): Likewise.
13558 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
13559 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
13560 (arm_canonicalize_comparison): Likewise.
13561 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
13562 HOST_WIDE_INT_1.
13563 (thumb1_size_rtx_costs): Likewise.
13564 (vfp_const_double_index): Replace cast of 1 to unsigned
13565 HOST_WIDE_INT with HOST_WIDE_INT_1U.
13566 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
13567 HOST_WIDE_INT_1.
13568 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
13569 HOST_WIDE_INT with HOST_WIDE_INT_1U.
13570 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
13571 HOST_WIDE_INT with HOST_WIDE_INT_1.
13572
13573 2016-05-24 Marek Polacek <polacek@redhat.com>
13574
13575 * tree-cfg.h (should_remove_lhs_p): New predicate.
13576 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
13577 * gimplify.c (gimplify_modify_expr): Likewise.
13578 * tree-cfg.c (verify_gimple_call): Likewise.
13579 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
13580 * gimple-fold.c: Include "tree-cfg.h".
13581 (gimple_fold_call): Use should_remove_lhs_p.
13582
13583 2016-05-24 Richard Biener <rguenther@suse.de>
13584
13585 PR tree-optimization/71253
13586 * cfganal.h (control_dependences): Make robust against edge
13587 and BB removal.
13588 (control_dependences::control_dependences): Remove edge_list argument.
13589 (control_dependences::get_edge): Remove.
13590 (control_dependences::get_edge_src): Add.
13591 (control_dependences::get_edge_dest): Likewise.
13592 (control_dependences::m_el): Make a vector of edge src/dest index.
13593 * cfganal.c (control_dependences::find_control_dependence): Adjust.
13594 (control_dependences::control_dependences): Likewise.
13595 (control_dependences::~control_dependence): Likewise.
13596 (control_dependences::get_edge): Remove.
13597 (control_dependences::get_edge_src): Add.
13598 (control_dependences::get_edge_dest): Likewise.
13599 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
13600 get_edge_src.
13601 (perform_tree_ssa_dce): Adjust.
13602 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
13603 get_edge_src.
13604 (pass_loop_distribution::execute): Adjust. Do loop destroying
13605 conditional on changed.
13606
13607 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13608
13609 PR target/69857
13610 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
13611 return. Reindent transformation comment and mention the ARM state
13612 behavior.
13613
13614 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
13615
13616 PR middle-end/71252
13617 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
13618 after build_and_add_sum creates new use stmt.
13619
13620 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
13621
13622 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
13623 load_lanes/grouped_load classification comes first. Don't check
13624 whether the vectorization factor is a multiple of the group size
13625 for load_lanes.
13626
13627 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
13628
13629 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
13630 GROUP_GAP for single-element interleaving.
13631 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
13632 variable.
13633
13634 2016-05-24 Richard Biener <rguenther@suse.de>
13635
13636 PR middle-end/70434
13637 PR c/69504
13638 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
13639 bases which are accessed with non-invariant indices.
13640 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
13641 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
13642
13643 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
13644
13645 PR middle-end/71170
13646 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
13647 (add_to_ops_vec): Add stmt_to_insert.
13648 (add_repeat_to_ops_vec): Init stmt_to_insert.
13649 (insert_stmt_before_use): New.
13650 (transform_add_to_multiply): Remove mult_stmt insertion and add it
13651 to ops vector.
13652 (get_ops): Init stmt_to_insert.
13653 (maybe_optimize_range_tests): Likewise.
13654 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
13655 (rewrite_expr_tree_parallel): Likewise.
13656 (reassociate_bb): Likewise.
13657
13658 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13659
13660 PR target/71201
13661 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
13662 ISA 3.0 xxperm fusion alternative.
13663 (altivec_vperm_v8hiv16qi): Likewise.
13664 (altivec_vperm_<mode>_uns_internal): Likewise.
13665 (vperm_v8hiv4si): Likewise.
13666 (vperm_v16qiv8hi): Likewise.
13667
13668 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13669 Kelvin Nilsen <kelvin@gcc.gnu.org>
13670
13671 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
13672 vpermr/xxpermr on ISA 3.0.
13673 (altivec_expand_vec_perm_le): Likewise.
13674 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
13675 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
13676 ISA 3.0.
13677
13678 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
13679
13680 * config/i386/i386.h (IS_STACK_MODE): Enable for
13681 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
13682 SSE_FLOAT_MODE_P macros.
13683 * config/i386/i386.c (ix86_preferred_reload_class): Use
13684 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
13685 Cleanup regclass processing for CONST_DOUBLE_P.
13686 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
13687 (ix86_rtx_costs): Remove redundant TARGET_80387 check
13688 with IS_STACK_MODE macro.
13689 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
13690 with TARGET_SSE2.
13691 (*movdf_internal): Use IS_STACK_MODE macro.
13692 (*movsf_internal): Ditto.
13693
13694 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
13695
13696 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
13697 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
13698
13699 2016-05-23 Jeff Law <law@redhat.com>
13700
13701 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
13702 extracted from ...
13703 (fsm_find_control_statement_thread_paths): Call it.
13704
13705 2016-05-23 Martin Jambor <mjambor@suse.cz>
13706
13707 PR ipa/71234
13708 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
13709 from_global_constant if t is not NULL.
13710
13711 2016-05-23 Marek Polacek <polacek@redhat.com>
13712
13713 PR c/49859
13714 * common.opt (Wswitch-unreachable): New option.
13715 * doc/invoke.texi: Document -Wswitch-unreachable.
13716 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
13717 warning.
13718
13719 2016-05-23 Bin Cheng <bin.cheng@arm.com>
13720
13721 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
13722 TMR_INDEX is non-NULL.
13723
13724 2016-05-23 Richard Biener <rguenther@suse.de>
13725
13726 PR tree-optimization/71230
13727 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
13728 (try_special_add_to_ops): ... here. Always test for single-use.
13729
13730 2016-05-23 Martin Jambor <mjambor@suse.cz>
13731
13732 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
13733 default block if a PHI node in the original one would be resized.
13734
13735 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
13736
13737 PR tree-optimization/58135
13738 * tree-vect-slp.c: When group size is not multiple
13739 of vector size, allow splitting of store group at
13740 vector boundary.
13741
13742 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
13743
13744 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
13745
13746 2016-05-22 Jakub Jelinek <jakub@redhat.com>
13747
13748 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
13749 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
13750 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
13751 of 64x2.
13752
13753 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
13754 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
13755 v constraint instead of x and vinserti32x4 insn.
13756
13757 * config/i386/sse.md (i128vldq): New mode iterator.
13758 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
13759 avx512dq and avx512vl alternatives.
13760
13761 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
13762 constraint, use maybe_evex prefix instead of vex.
13763 (vec_dupv4sf): Use v constraint instead of x for output
13764 operand except for noavx alternative, use Yv constraint
13765 instead of x for input. Use maybe_evex prefix instead of vex.
13766 (*vec_dupv4si): Likewise.
13767 (*vec_dupv2di): Likewise.
13768
13769 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
13770
13771 PR middle-end/40921
13772 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
13773 (linearize_expr_tree): Call try_special_add_to_ops.
13774 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
13775
13776 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
13777
13778 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
13779 to computed stack_usage.
13780
13781 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13782
13783 PR target/71103
13784 * config/avr/avr.md (define_expand "mov<mode>"): If the source
13785 operand is subreg (symbol_ref) then move the symbol ref to register.
13786
13787 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
13788
13789 * tree.c (array_at_struct_end_p): Look through MEM_REF.
13790
13791 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
13792
13793 PR middle-end/71179
13794 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
13795 VECTOR type.
13796
13797 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
13798
13799 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
13800 ranges by calling get_single_symbol and tidy up. Look more closely
13801 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
13802
13803 2016-05-20 Jeff Law <law@redhat.com>
13804
13805 * bitmap.c (bitmap_find_bit): Remove useless test.
13806
13807 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
13808
13809 * function.c (thread_prologue_and_epilogue_insns): Commit the
13810 insertion of the epilogue.
13811
13812 2016-05-20 Martin Jambor <mjambor@suse.cz>
13813
13814 PR tree-optimization/70884
13815 * tree-sra.c (initialize_constant_pool_replacements): Do not check
13816 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
13817 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
13818 of constant pool data as a reason for scalarization.
13819
13820 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
13821
13822 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
13823 for naked functions.
13824 (thumb1_expand_prologue): Likewise.
13825
13826 2016-05-20 Nathan Sidwell <nathan@acm.org>
13827
13828 * config/nvptx/nptx.c (nvptx_option_override): Only set
13829 flag_toplevel_reorder, if not explicitly specified. Set
13830 flag_no_common, unless explicitly specified.
13831
13832 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13833
13834 * calls.c (can_implement_as_sibling_call_p): Mark param
13835 reg_parm_stack_space with ATTRIBUTE_UNUSED.
13836
13837 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
13838
13839 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
13840 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
13841 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
13842 constants.
13843 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
13844 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
13845 and CASE_CONST_ANY.
13846
13847 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
13848
13849 * config/nvptx/nvptx.md (sincossf3): New pattern.
13850
13851 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13852
13853 * calls.c (maybe_complain_about_tail_call): New function.
13854 (initialize_argument_information): Call
13855 maybe_complain_about_tail_call when clearing *may_tailcall.
13856 (can_implement_as_sibling_call_p): Call
13857 maybe_complain_about_tail_call when returning false.
13858 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
13859 ensure try_tail_call is set. Call maybe_complain_about_tail_call
13860 if tail-call optimization fails.
13861 * cfgexpand.c (expand_call_stmt): Initialize
13862 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
13863 * gimple-pretty-print.c (dump_gimple_call): Dump
13864 gimple_call_must_tail_p.
13865 * gimple.c (gimple_build_call_from_tree): Call
13866 gimple_call_set_must_tail with the value of
13867 CALL_EXPR_MUST_TAIL_CALL.
13868 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
13869 (gimple_call_set_must_tail): New function.
13870 (gimple_call_must_tail_p): New function.
13871 * print-tree.c (print_node): Update printing of TREE_STATIC
13872 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
13873 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
13874 trailing comment listing applicable flags.
13875 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
13876
13877 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13878
13879 * calls.c (expand_call): Move "Rest of purposes for tail call
13880 optimizations to fail" to...
13881 (can_implement_as_sibling_call_p): ...this new function, and
13882 split into multiple "if" statements.
13883
13884 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13885
13886 * cfgloop.h (expected_loop_iterations_unbounded,
13887 expected_loop_iterations): Unconstify.
13888 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
13889 profile with known upper bound; return 3 when profile is absent.
13890 (expected_loop_iterations): Update.
13891
13892 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13893
13894 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
13895 and get_max_loop_iterations_int.
13896
13897 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13898
13899 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
13900 realistic upper bounds here.
13901
13902 2016-05-20 Jakub Jelinek <jakub@redhat.com>
13903
13904 PR c++/71210
13905 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
13906 calls if the LHS is variable length or has addressable type.
13907 If targets[0]->decl is a noreturn call with void return type and
13908 zero arguments, adjust fntype and remove lhs in that case.
13909
13910 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
13911
13912 PR tree-optimization/71079
13913 PR tree-optimization/71206
13914 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
13915
13916 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13917
13918 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
13919 (get_vec_alignment_for_array_decl): Likewise.
13920 (get_vec_alignment_for_record_decl): Likewise.
13921 (increase_alignment::execute): Move code to find alignment to
13922 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
13923 (type_align_map): New hash_map.
13924
13925 2016-05-20 Richard Guenther <rguenther@suse.de>
13926
13927 PR tree-optimization/29756
13928 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
13929 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
13930 * fold-const.c (operand_equal_p): Likewise.
13931 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
13932 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
13933 * tree-inline.c (estimate_operator_cost): Likewise.
13934 * tree-pretty-print.c (dump_generic_node): Likewise.
13935 * tree-ssa-operands.c (get_expr_operands): Likewise.
13936 * cfgexpand.c (expand_debug_expr): Likewise.
13937 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
13938 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
13939 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
13940 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
13941 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
13942 (execute_update_addresses_taken): Do it.
13943
13944 2016-05-20 Richard Biener <rguenther@suse.de>
13945
13946 PR tree-optimization/71185
13947 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
13948 register operations.
13949
13950 2016-05-20 Richard Biener <rguenther@suse.de>
13951
13952 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
13953 gimple_seq_add_seq_without_update.
13954 (release_bb_predicate): Assert we have no operands to free.
13955 (if_convertible_loop_p_1): Calculate post dominators later.
13956 Do not free BB predicates here.
13957 (combine_blocks): Do not recompute BB predicates.
13958 (version_loop_for_if_conversion): Save BB predicates around
13959 loop versioning.
13960
13961 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
13962
13963 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
13964 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
13965 code. Ignore sibcalls on EDGE_IGNORE edges.
13966 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
13967 on edges for sibcalls that run without prologue. The rest of the
13968 function is combined from...
13969 (fix_fake_fallthrough_edge): ... this, and ...
13970 (try_shrink_wrapping): ... a part of this. Remove the bb_with
13971 function argument, make it a local variable.
13972
13973 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
13974
13975 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
13976 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
13977 for 32-bit mode and SEH for 64-bit.
13978 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
13979 TARGET_64BIT_DEFAULT.
13980
13981 2016-05-19 Ryan Burn <contact@rnburn.com>
13982
13983 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
13984 * gengtype.c (open_base_files): Add cilk.h to ifiles.
13985
13986 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
13987
13988 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
13989 force pending loads from memory.
13990
13991 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
13992
13993 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
13994 (UNSPEC_DARN_32): New unspec constant.
13995 (UNSPEC_DARN_RAW): New unspec constant.
13996 (darn_32): New instruction.
13997 (darn_raw): New instruction.
13998 (darn): New instruction.
13999 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
14000 support and documentation for this macro.
14001 (BU_P9_MISC_1): New macro definition.
14002 (BU_P9_64BIT_MISC_0): New macro definition.
14003 (BU_P9_MISC_0): New macro definition.
14004 (darn_32): New builtin definition.
14005 (darn_raw): New builtin definition.
14006 (darn): New builtin definition.
14007 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
14008 RS6000_BUILTIN_0 directives to surround each occurrence of
14009 #include "rs6000-builtin.def".
14010 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
14011 RS6000_BTM_64BIT flags to the returned mask, depending on
14012 configuration.
14013 (def_builtin): Correct an error in the assignments made to the
14014 debugging variable attr_string.
14015 (rs6000_expand_builtin): Add support for no-operand built-in
14016 functions.
14017 (builtin_function_type): Remove fatal_error assertion that is no
14018 longer valid.
14019 (rs6000_common_init_builtins): Add support for no-operand built-in
14020 functions.
14021 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
14022 definition.
14023 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
14024 definition.
14025 (RS6000_BTM_64BIT): New macro definition.
14026 * doc/extend.texi: Document __builtin_darn (void),
14027 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
14028 functions.
14029
14030 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
14031
14032 * tree-vect-loop.c (vect_analyze_loop_2): Use also
14033 max_loop_iterations_int.
14034
14035 2016-05-19 Marek Polacek <polacek@redhat.com>
14036
14037 PR tree-optimization/71031
14038 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
14039 condition and adjust the code a bit.
14040
14041 2016-05-19 Martin Liska <mliska@suse.cz>
14042
14043 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
14044 auto_vec instead of vec.
14045
14046 2016-05-19 Martin Liska <mliska@suse.cz>
14047
14048 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
14049
14050 2016-05-19 Martin Liska <mliska@suse.cz>
14051
14052 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
14053
14054 2016-05-19 Martin Liska <mliska@suse.cz>
14055
14056 * ipa-pure-const.c (set_function_state): Remove an existing
14057 funct_state.
14058 (remove_node_data): Do not free it as it's released
14059 in set_function_state.
14060
14061 2016-05-19 Martin Liska <mliska@suse.cz>
14062
14063 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
14064 bitmap.
14065
14066 2016-05-19 Martin Liska <mliska@suse.cz>
14067
14068 * omp-simd-clone.c (simd_clone_adjust): Release vector.
14069
14070 2016-05-19 Martin Liska <mliska@suse.cz>
14071
14072 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
14073 an auto_vec instead of re-creating it.
14074
14075 2016-05-19 Martin Liska <mliska@suse.cz>
14076
14077 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
14078 auto_vec instead of vec.
14079
14080 2016-05-19 Martin Liska <mliska@suse.cz>
14081
14082 * lto-section-in.c (lto_get_section_data): Call
14083 lto_check_version with additional argument.
14084 * lto-streamer.c (lto_check_version): Add new argument.
14085 * lto-streamer.h (lto_check_version): Likewise.
14086
14087 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14088
14089 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
14090 Don't add cost of inner memory when handling sign-extended loads.
14091
14092 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
14093
14094 PR rtl-optimization/71148
14095 * cse.c (cse_main): Free dominance info.
14096 (rest_of_handle_cse): Don't free dominance info.
14097 (rest_of_handle_cse2): Likewise.
14098 (rest_of_handle_cse_after_global_opts): Likewise.
14099
14100 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14101
14102 PR target/71056
14103 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
14104 NULL_TREE early if NEON is not available. Remove now redundant check
14105 in ARM_CHECK_BUILTIN_MODE.
14106
14107 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
14108
14109 PR sanitizer/64354
14110 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
14111 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
14112 * doc/cpp.texi: Document new macros.
14113
14114 2016-05-19 Bin Cheng <bin.cheng@arm.com>
14115
14116 PR tree-optimization/69848
14117 * tree-vect-loop.c (vectorizable_reduction): Don't factor
14118 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
14119
14120 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
14121
14122 * function.c (thread_prologue_and_epilogue_insn): Move the
14123 "goto epilogue_done" one block later.
14124
14125 2016-05-19 Richard Biener <rguenther@suse.de>
14126
14127 PR tree-optimization/70729
14128 * passes.def: Move LIM pass before PRE. Remove no longer
14129 required copyprop and move first DCE out of the loop pipeline.
14130
14131 2016-05-18 David Malcolm <dmalcolm@redhat.com>
14132
14133 PR driver/69265
14134 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
14135 (OBJS-libcommon-target): ...here.
14136 * opts-common.c: Include spellcheck.h.
14137 (cmdline_handle_error): Build a vec of valid options and use it
14138 to suggest provide hints for misspelled arguments.
14139
14140 2016-05-18 Jakub Jelinek <jakub@redhat.com>
14141
14142 PR c++/71100
14143 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
14144 lhs if it has TREE_ADDRESSABLE type.
14145
14146 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
14147
14148 PR target/71145
14149 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
14150 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
14151
14152 2016-05-18 Martin Jambor <mjambor@suse.cz>
14153
14154 PR ipa/69708
14155 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
14156 input for NOP_EXPR pass-through functions.
14157 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
14158 aggregate global constant VAR_DECLs in constant jump functions.
14159
14160 2016-05-18 Martin Jambor <mjambor@suse.cz>
14161
14162 PR ipa/69708
14163 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
14164 from TREE_READONLY parameters.
14165
14166 2016-05-18 Martin Jambor <mjambor@suse.cz>
14167
14168 PR ipa/69708
14169 * cgraph.h (cgraph_indirect_call_info): New field
14170 guaranteed_unmodified.
14171 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
14172 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
14173 appropriate.
14174 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
14175 pass the parameter value to ipa_find_agg_cst_for_param.
14176 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
14177 guaranteed_unmodified, store AA results there instead of bailing out
14178 if present.
14179 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
14180 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
14181 (find_constructor_constant_at_offset): New function.
14182 (ipa_find_agg_cst_from_init): Likewise.
14183 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
14184 static initializers of contants, report back through a new paameter
14185 from_global_constant if that was the case.
14186 (try_make_edge_direct_simple_call): Also pass parameter value to
14187 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
14188 appropriate.
14189 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
14190 (ipa_read_indirect_edge_info): Likewise.
14191 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
14192 (ipa_load_from_parm_agg): Likewise.
14193
14194 2016-05-18 Jiong Wang <jiong.wang@arm.com>
14195
14196 PR rtl-optimization/71150
14197 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
14198 check.
14199
14200 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
14201
14202 PR target/70915
14203 * config/rs6000/constraints.md (wE constraint): New constraint
14204 for a vector constant that can be loaded with XXSPLTIB.
14205 (wM constraint): New constraint for a vector constant of a 1's.
14206 (wS constraint): New constraint for a vector constant that can be
14207 loaded with XXSPLTIB and a vector sign extend instruction.
14208 * config/rs6000/predicates.md (xxspltib_constant_split): New
14209 predicates for wE/wS constraints.
14210 (xxspltib_constant_nosplit): Likewise.
14211 (easy_vector_constant): Add support for constants that can be
14212 loaded via XXSPLTIB.
14213 (all_ones_constant): New predicate for vector constant with all
14214 1's set.
14215 (splat_input_operand): Add support for ISA 3.0 word splat operations.
14216 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
14217 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
14218 instruction and possibly with a sign extension.
14219 (output_vec_const_move): Add support for XXSPLTIB. If we are
14220 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
14221 instead of XXLXOR/XXLORC.
14222 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
14223 operations.
14224 (rs6000_legitimize_reload_address): Likewise.
14225 (rs6000_output_move_128bit): Use output_vec_const_move to emit
14226 constants.
14227 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
14228 combine VSX_M and VSX_M2 into one iterator.
14229 (VSX_M2): Likewise.
14230 (VSINT_84): New iterators for loading constants with XXSPLTIB.
14231 (VSINT_842): Likewise.
14232 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
14233 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
14234 XXSPLTIB instruction.
14235 (xxspltib_<mode>_nosplit): Likewise.
14236 (xxspltib_<mode>_split): New insn to load up constants with
14237 XXSPLTIB and a sign extend instruction.
14238 (vsx_mov<mode>): Replace single move that handled all vector types
14239 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
14240 moves (when -mvsx-timode is in effect) into the main vector
14241 moves. Eliminate separate moves for <VSr> <VSa>, where the
14242 preferred register class (<VSr>) is listed first, and the
14243 secondary register class (<VSa>) is listed second with a '?' to
14244 discourage use. Prefer loading 0/-1 in any VSX register for ISA
14245 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
14246 that if the register was involved in a slow operation, the
14247 clear/set operation does not wait for the slow operation to
14248 finish. Adjust the length attributes for 32-bit mode. Use
14249 rs6000_output_move_128bit and drop the use of the string
14250 instructions for 32-bit movti when -mvsx-timode is in effect. Use
14251 spacing so that the alternatives and attributes don't generate
14252 long lines, and put things in columns, so that it is easier to
14253 match up the operands and attributes with the insn alternatives.
14254 (vsx_mov<mode>_64bit): Likewise.
14255 (vsx_mov<mode>_32bit): Likewise.
14256 (vsx_movti_64bit): Fold movti into normal vector moves.
14257 (vsx_movti_32bit): Likewise.
14258 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
14259 splat instructions.
14260 (vsx_splat_v4si_internal): Likewise.
14261 (vsx_splat_v4sf_internal): Likewise.
14262 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
14263 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
14264 extend vector elements.
14265 (vsx_sign_extend_hi_<mode>): Likewise.
14266 (vsx_sign_extend_si_v2di): Likewise.
14267 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
14268 declaration.
14269 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
14270 constraints. Add trailing period to wL documentation.
14271
14272 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
14273
14274 PR middle-end/71020
14275 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
14276 * tree-dfa.c (replace_abnormal_ssa_names): New function.
14277 * tree-call-cdce.c: Include tree-dfa.h.
14278 (can_guard_call_p): New function, extracted from...
14279 (can_use_internal_fn): ...here.
14280 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
14281 and return void.
14282 (shrink_wrap_one_built_in_call): Likewise.
14283 (use_internal_fn): Likewise.
14284 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
14285 and return void. Call replace_abnormal_ssa_names.
14286 (pass_call_cdce::execute): Check can_guard_call_p during the
14287 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
14288 will always change something.
14289
14290 2016-05-18 Martin Jambor <mjambor@suse.cz>
14291
14292 PR ipa/70646
14293 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
14294 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
14295
14296 2016-05-18 Martin Jambor <mjambor@suse.cz>
14297
14298 PR ipa/70646
14299 * ipa-inline.h (condition): New field size.
14300 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
14301 for comaprison and store it into the new condition.
14302 (evaluate_conditions_for_known_args): Use condition size to check
14303 access sizes for all but CHANGED conditions.
14304 (unmodified_parm_1): New parameter size_p, store access size into it.
14305 (unmodified_parm): Likewise.
14306 (unmodified_parm_or_parm_agg_item): Likewise.
14307 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
14308 (set_cond_stmt_execution_predicate): Extract access sizes and store
14309 them to conditions.
14310 (set_switch_stmt_execution_predicate): Likewise.
14311 (will_be_nonconstant_expr_predicate): Likewise.
14312 (will_be_nonconstant_predicate): Likewise.
14313 (inline_read_section): Stream condition size.
14314 (inline_write_summary): Likewise.
14315
14316 2016-05-18 Richard Biener <rguenther@suse.de>
14317
14318 * tree-ssa-loop-im.c (determine_max_movement): Properly add
14319 condition cost to PHI cost instead of total_cost.
14320
14321 2016-05-18 Martin Liska <mliska@suse.cz>
14322
14323 PR fortran/70856
14324 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
14325 merged variables.
14326
14327 2016-05-18 Richard Biener <rguenther@suse.de>
14328
14329 * lto-streamer.h (LTO_major_version): Bump to 6.
14330
14331 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
14332
14333 * function.c (make_split_prologue_seq, make_prologue_seq,
14334 make_epilogue_seq): New functions, factored out from...
14335 (thread_prologue_and_epilogue_insns): Here.
14336
14337 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
14338
14339 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
14340 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
14341 of before. Add a comment.
14342
14343 2016-05-18 Bin Cheng <bin.cheng@arm.com>
14344
14345 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
14346 expression pointer, not pointer to the pointer.
14347
14348 2016-05-18 Jakub Jelinek <jakub@redhat.com>
14349
14350 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
14351 (avx2_pbroadcast<mode>): Add another alternative with v instead
14352 of x constraints in it, using <pbroadcast_evex_isa> isa.
14353 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
14354
14355 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
14356 constraint x instead of v in second alternative, add avx512bw
14357 alternative.
14358
14359 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
14360 constraint x instead of v in second alternative, add avx512bw
14361 alternative.
14362
14363 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
14364 constraint x instead of v in second alternative, add avx512bw
14365 alternative.
14366
14367 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
14368 avx512bw alternative.
14369
14370 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
14371
14372 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
14373 array to 128 chars.
14374 (define_insn "*andnottf3"): Ditto.
14375 (define_insn "*<code><mode>3"/any_logic): Ditto.
14376 (define_insn "*<code>tf3"/any_logic): Ditto.
14377 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
14378 operand to block AVX-512VL insn variant emit when it is not enabled.
14379
14380 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
14381
14382 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
14383 constraint fot SF mode.
14384
14385 2016-05-18 Petr Murzin <petr.murzin@intel.com>
14386 Kirill Yukhin <kirill.yukhin@intel.com>
14387
14388 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
14389 modifiers.
14390 (define_insn "rsqrt14<mode>"): Ditto.
14391 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
14392 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
14393 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
14394 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
14395 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
14396 Ditto.
14397 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
14398 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
14399 * config/i386/i386.c (ix86_print_operand): Expand check for size
14400 override codes for Intel syntax.
14401
14402 2016-05-18 Richard Biener <rguenther@suse.de>
14403
14404 PR tree-optimization/71168
14405 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
14406 initialization earlier.
14407
14408 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
14409
14410 * config/aarch64/aarch64-simd.md
14411 (aarch64_reduc_plus_internal<mode>): Rename to...
14412 (reduc_plus_scal): ...This, and remove previous implementation.
14413
14414 2016-05-18 Richard Biener <rguenther@suse.de>
14415
14416 * passes.def: Put late dse and cd_dce in canonical order.
14417
14418 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
14419
14420 * ipa-inline-transform.c (preserve_function_body_p): Look for
14421 first non-thunk clone.
14422 (save_function_body): Save into first non-thunk.
14423 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
14424 up call stmt id.
14425 (lto_output_node): Inline thunks don't need body in every
14426 partition.
14427 * lto-streamer-in.c: Do not fixup thunk clones.
14428 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
14429 thunks.
14430 * tree-inline.c (copy_bb): Be prepared for target node to be new after
14431 folding suceeds.
14432
14433 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
14434
14435 PR middle-end/63586
14436 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
14437 (reassociate_bb): Call transform_add_to_multiply.
14438
14439 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
14440
14441 * config/aarch64/aarch64.c (all_extensions): Removed unused
14442 static variable.
14443
14444 2016-05-17 Nathan Sidwell <nathan@acm.org>
14445
14446 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
14447 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
14448
14449 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
14450
14451 PR tree-optimization/54579
14452 PR middle-end/55299
14453 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
14454
14455 2016-05-17 Marek Polacek <polacek@redhat.com>
14456
14457 PR ipa/71146
14458 * tree-inline.c (expand_call_inline): Call
14459 maybe_remove_unused_call_args.
14460
14461 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
14462
14463 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
14464 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
14465 * doc/md.texi (fmin@var{m}3): Likewise.
14466
14467 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
14468
14469 * match.pd (X & C): New transformation.
14470
14471 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
14472
14473 * match.pd (~X & Y): New transformation.
14474
14475 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
14476
14477 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
14478 information for new SSA_NAME.
14479 (simplify_conversion_using_ranges): Get range through get_range_info
14480 instead of get_value_range.
14481
14482 2016-05-17 Jiong Wang <jiong.wang@arm.com>
14483
14484 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
14485 Remove inline assembly.
14486 (vmvn_s16): Likewise.
14487 (vmvn_s32): Likewise.
14488 (vmvn_u8): Likewise.
14489 (vmvn_u16): Likewise.
14490 (vmvn_u32): Likewise.
14491 (vmvnq_s8): Likewise.
14492 (vmvnq_s16): Likewise.
14493 (vmvnq_s32): Likewise.
14494 (vmvnq_u8): Likewise.
14495 (vmvnq_u16): Likewise.
14496 (vmvnq_u32): Likewise.
14497 (vmvn_p8): Likewise.
14498 (vmvnq_p16): Likewise.
14499
14500 2016-05-17 Jiong Wang <jiong.wang@arm.com>
14501
14502 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
14503 Use builtin.
14504 (vmul_n_s16): Likewise.
14505 (vmul_n_s32): Likewise.
14506 (vmul_n_u16): Likewise.
14507 (vmul_n_u32): Likewise.
14508 (vmulq_n_f32): Likewise.
14509 (vmulq_n_f64): Likewise.
14510 (vmulq_n_s16): Likewise.
14511 (vmulq_n_s32): Likewise.
14512 (vmulq_n_u16): Likewise.
14513 (vmulq_n_u32): Likewise.
14514
14515 2016-05-17 Jiong Wang <jiong.wang@arm.com>
14516
14517 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
14518 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
14519
14520 2016-05-17 Jiong Wang <jiong.wang@arm.com>
14521
14522 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
14523 to *aarch64_fma4_elt_from_dup<mode>.
14524 (*aarch64_fnma4_elt_to_128df): Rename to
14525 *aarch64_fnma4_elt_from_dup<mode>.
14526 * config/aarch64/arm_neon.h (vfma_n_f64): New.
14527 (vfms_n_f32): Likewise.
14528 (vfms_n_f64): Likewise.
14529 (vfmsq_n_f32): Likewise.
14530 (vfmsq_n_f64): Likewise.
14531
14532 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
14533
14534 * wide-int.h: Change fixed_wide_int_storage from class to struct.
14535
14536 2016-05-17 Richard Biener <rguenther@suse.de>
14537
14538 PR tree-optimization/71132
14539 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
14540 Only add control dependences for blocks in the loop.
14541 (build_rdg): Adjust.
14542 (generate_code_for_partition): Return whether loop should
14543 be destroyed and delay that.
14544 (distribute_loop): Likewise.
14545 (pass_loop_distribution::execute): Record loops to be destroyed
14546 and perform delayed destroying of loops.
14547
14548 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14549
14550 PR target/70809
14551 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
14552
14553 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14554
14555 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
14556
14557 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
14558
14559 PR target/71114
14560 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
14561 insertion point for instructions generated by validize_mem.
14562
14563 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14564
14565 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
14566 in brackets.
14567
14568 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14569
14570 * config/aarch64/aarch64.c
14571 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
14572 rather than a macro.
14573
14574 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14575
14576 * doc/invoke.texi (AArch64 Options): Various updates.
14577
14578 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14579
14580 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
14581 into instrumentation thunks.
14582 * cif-code.def (CIF_CHKP): New.
14583
14584 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
14585
14586 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
14587
14588 2016-05-16 Martin Jambor <mjambor@suse.cz>
14589
14590 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
14591 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
14592
14593 2016-05-16 Marek Polacek <polacek@redhat.com>
14594
14595 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
14596 commentary.
14597
14598 2016-05-16 Martin Jambor <mjambor@suse.cz>
14599
14600 PR hsa/70857
14601 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
14602 the outlined kernel function.
14603
14604 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
14605
14606 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
14607 (ISA_HAS_DLSA): Ditto.
14608
14609 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
14610
14611 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
14612
14613 2016-05-16 Nathan Sidwell <nathan@acm.org>
14614
14615 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
14616 (nvptx_name_replacement): Restore. Add comment.
14617 (write_fn_proto, write_fn_proto_from_insn,
14618 nvptx_output_call_insn): Restore
14619 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
14620
14621 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14622
14623 * config/aarch64/aarch64.md
14624 (add<mode>3_compareC_cconly_imm): Remove use of %w.
14625 (add<mode>3_compareC_imm): Likewise.
14626 (<optab>si3_uxtw): Split into register and immediate variants.
14627 (andsi3_compare0_uxtw): Likewise.
14628 (and<mode>3_compare0): Likewise.
14629 (and<mode>3nr_compare0): Likewise.
14630 (stack_protect_test_<mode>): Don't use %x for memory operands.
14631
14632 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
14633
14634 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
14635
14636 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14637
14638 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
14639 Split integer shifts into shift_reg and bfm.
14640 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
14641 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
14642 (ror<mode>3_insn): Likewise.
14643 (<optab>si3_insn_uxtw): Likewise.
14644 (<optab><mode>3_insn): Change to rotate_imm.
14645 (extr<mode>5_insn_alt): Likewise.
14646 (extrsi5_insn_uxtw): Likewise.
14647 (extrsi5_insn_uxtw_alt): Likewise.
14648
14649 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14650
14651 * doc/tm.texi: Regenerate.
14652 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
14653 (TARGET_INVALID_RETURN_TYPE): Remove.
14654 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
14655 TARGET_INVALID_RETURN_TYPE.
14656 * target.def (invalid_parameter_type): Remove.
14657 (invalid_return_type): Remove.
14658
14659 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14660
14661 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
14662 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
14663 calls from thunk.
14664 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
14665 gimple body.
14666 (preserve_function_body_p): No need to preserve function body
14667 * cif-codes.def (CIF_THUNK): Remove.
14668 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
14669
14670 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14671
14672 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
14673
14674 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14675
14676 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
14677 for thunks.
14678
14679 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14680
14681 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
14682 (inline_small_functions): Do not look for function symbol when
14683 resetting caches.
14684
14685 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14686
14687 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
14688 of inline thunks
14689
14690 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14691 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14692 Jiong Wang <jiong.wang@arm.com>
14693
14694 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
14695 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
14696 Define __ARM_FP16_ARGS when appropriate.
14697 * config/arm/arm.c (arm_invalid_parameter_type): Remove
14698 declaration.
14699 (arm_invalid_return_type): Likewise.
14700 (TARGET_INVALID_PARAMETER_TYPE): Remove.
14701 (TARGET_INVALID_RETURN_TYPE): Remove.
14702 (aapcs_vfp_sub_candidate): Allow HFmode.
14703 (aapcs_vfp_allocate): Add comment. Support HFmode.
14704 (aapcs_vfp_allocate_return_reg): Likewise.
14705 (struct aapcs_cp_arg_layout): Slightly reword comments for
14706 is_return_candidate and allocate_return_reg.
14707 (output_mov_vfp): Update assert.
14708 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
14709 condition.
14710 (arm_invalid_parameter_type): Remove.
14711 (amr_invalid_return_type): Remove.
14712 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
14713 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
14714 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
14715
14716 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14717
14718 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
14719 * config/aarch64/arch64-protos.h
14720 (aarch64_legitimize_reload_address): Remove.
14721 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
14722 Remove.
14723
14724 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
14725
14726 * configure.ac: Add ACX_NONCANONICAL_HOST.
14727 * configure: Regenerate.
14728 * Makefile.in: Set host_noncanonical.
14729
14730 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
14731
14732 PR target/71097
14733 * config/i386/i386.md (*movtf_internal): Before register allocation,
14734 do not allow FP constants for CM_MEDIUM memory model, allow only
14735 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
14736 (*movxf_internal): Ditto.
14737 (*movdf_internal): Ditto.
14738 (*movsf_internal): Ditto.
14739
14740 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
14741
14742 PR rtl-optimization/67483
14743 * combine.c (make_compound_operation): Don't call extract_left_shift
14744 with negative shift amounts.
14745
14746 2016-05-13 Jakub Jelinek <jakub@redhat.com>
14747
14748 PR bootstrap/71071
14749 * fold-const.c (fold_checksum_tree): Allow modification
14750 of TYPE_ALIAS_SET during folding.
14751
14752 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
14753 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
14754 (ix86_split_to_parts): Likewise. Fix up formatting.
14755
14756 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
14757
14758 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
14759 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
14760 printf format.
14761
14762 2016-05-13 Nathan Sidwell <nathan@acm.org>
14763
14764 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
14765 (nvptx_name_replacement): Delete.
14766 (write_fn_proto, write_fn_proto_from_insn,
14767 nvptx_output_call_insn): Remove nvptx_name_replacement call.
14768 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
14769 * langhooks.c (add_builtin_funcction_common): Call
14770 targetm.mangle_decl_assembler_name.
14771
14772 * config/nvptx/nvptx.c (write_fn_proto): Handle
14773 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
14774
14775 2016-05-13 Martin Liska <mliska@suse.cz>
14776
14777 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
14778 and PRIu64 in printf format.
14779
14780 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14781
14782 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
14783 comment.
14784
14785 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14786
14787 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
14788 Change --param max-completely-peeled-times to
14789 --param max-completely-peel-times in dump file printing.
14790
14791 2016-05-13 Richard Biener <rguenther@suse.de>
14792
14793 PR tree-optimization/42587
14794 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
14795 (find_bswap_or_nop_1): Likewise.
14796 (bswap_replace): Likewise.
14797
14798 2016-05-13 Martin Liska <mliska@suse.cz>
14799
14800 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
14801 Initialize a variable with default value.
14802
14803 2016-05-13 Martin Liska <mliska@suse.cz>
14804
14805 * doc/invoke.texi: Enhance explanation of error recovery
14806 of sanitizers.
14807
14808 2016-05-13 Martin Liska <mliska@suse.cz>
14809
14810 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
14811 (struct cost_pair): Change inv_expr_id (int) to inv_expr
14812 (iv_inv_expr_ent *).
14813 (struct iv_inv_expr_ent): Comment struct fields.
14814 (sort_iv_inv_expr_ent): New function.
14815 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
14816 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
14817 a hash_map between iv_inv_expr_ent and number of usages.
14818 (niter_for_exit): Fix coding style.
14819 (tree_ssa_iv_optimize_init): Use renamed variable.
14820 (determine_base_object): Fix coding style.
14821 (alloc_iv): Likewise.
14822 (find_interesting_uses_outside): Likewise.
14823 (add_candidate_1): Likewise.
14824 (add_standard_iv_candidates): Likewise.
14825 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
14826 (prepare_decl_rtl): Fix coding style.
14827 (get_address_cost): Likewise.
14828 (get_shiftadd_cost): Likewise.
14829 (force_expr_to_var_cost): Likewise.
14830 (compare_aff_trees): Likewise.
14831 (get_expr_id): Restructure the function.
14832 (get_loop_invariant_expr_id): Renamed to
14833 get_loop_invariant_expr.
14834 (get_computation_cost_at): Replace usage of inv_expr_id with
14835 inv_expr.
14836 (get_computation_cost): Likewise.
14837 (determine_group_iv_cost_generic): Likewise.
14838 (determine_group_iv_cost_address): Likewise.
14839 (iv_period): Fix coding style.
14840 (iv_elimination_compare_lt): Likewise.
14841 (may_eliminate_iv): Likewise.
14842 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
14843 inv_expr.
14844 (determine_group_iv_costs): Dump invariant expressions.
14845 (iv_ca_recount_cost): Use the newly added hash_map.
14846 (iv_ca_set_remove_invariants): Fix coding style.
14847 (iv_ca_set_add_invariants): Fix coding style.
14848 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
14849 invariants.
14850 (iv_ca_set_cp): Likewise.
14851 (iv_ca_new): Initialize the newly added hash_map and remove
14852 initialization of fields.
14853 (iv_ca_free): Delete the hash_map.
14854 (iv_ca_dump): Dump invariant expressions.
14855 (iv_ca_extend): Fix coding style.
14856 (try_add_cand_for): Likewise.
14857 (create_new_ivs): Dump information about # of avg iterations and
14858 # of used invariant expressions.
14859 (rewrite_use_compare): Fix coding style.
14860 (free_loop_data): Set default value for max_inv_expr_id.
14861
14862 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
14863
14864 * cse.c (rest_of_handle_cse): Use cleanup_cfg
14865 returned value cse_cfg_altered computation.
14866 (rest_of_handle_cse2): Likewise.
14867 (rest_of_handle_cse_after_global_opts): Likewise.
14868
14869 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14870
14871 PR target/53440
14872 * config/arm/arm.c (arm32_output_mi_thunk): New.
14873 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
14874 to split Thumb1 vs TARGET_32BIT functionality.
14875 (arm_thumb1_mi_thunk): New.
14876
14877 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14878
14879 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
14880 to true.
14881
14882 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14883
14884 PR target/71080
14885 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
14886
14887 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
14888
14889 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
14890 (expand_builtin_trap): Emit a regular call.
14891 (set_builtin_user_assembler_name): Remove obsolete cases.
14892 * dse.c (scan_insn): Adjust.
14893 * except.c: Include calls.h.
14894 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
14895 emit a regular call to setjmp.
14896 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
14897 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
14898 (emit_block_move_via_libcall): Delete.
14899 (block_move_fn): Delete.
14900 (init_block_move_fn): Likewise.
14901 (emit_block_move_libcall_fn): Likewise.
14902 (emit_block_op_via_libcall): New function.
14903 (set_storage_via_libcall): Tidy up and use memset builtin.
14904 (block_clear_fn): Delete.
14905 (init_block_clear_fn): Likewise.
14906 (clear_storage_libcall_fn): Likewise.
14907 (expand_assignment): Call emit_block_move_via_libcall.
14908 Do not include gt-expr.h.
14909 * expr.h (emit_block_op_via_libcall): Declare.
14910 (emit_block_copy_via_libcall): New inline function.
14911 (emit_block_move_via_libcall): Likewise.
14912 (emit_block_comp_via_libcall): Likewise.
14913 (block_clear_fn): Delete.
14914 (init_block_move_fn): Likewise.
14915 (init_block_clear_fn): Likewise.
14916 (emit_block_move_via_libcall): Likewise.
14917 (set_storage_via_libcall): Add default parameter value.
14918 * libfuncs.h (enum libfunc_index): Remove obsolete values.
14919 (abort_libfunc): Delete.
14920 (memcpy_libfunc): Likewise.
14921 (memmove_libfunc): Likewise.
14922 (memcmp_libfunc): Likewise.
14923 (memset_libfunc): Likewise.
14924 (setbits_libfunc): Likewise.
14925 (setjmp_libfunc): Likewise.
14926 (longjmp_libfunc): Likewise.
14927 (profile_function_entry_libfunc): Likewise.
14928 (profile_function_exit_libfunc): Likewise.
14929 (gcov_flush_libfunc): Likewise.
14930 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
14931 and DECL_VISIBILITY on the declaration.
14932 (init_optabs): Do not initialize obsolete libfuncs.
14933 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
14934 * tree-core.h (ECF_RET1): Define.
14935 (ECF_TM_PURE): Adjust.
14936 (ECF_TM_BUILTIN): Likewise.
14937 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
14938 (build_common_builtin_nodes): Initialize abort builtin.
14939 Add ECF_RET1 on memcpy, memmove and memset builtins.
14940 Pass final flags for alloca and alloca_with_align builtins.
14941 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
14942 obsolete builtins.
14943 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
14944 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
14945 set_storage_via_libcall and call emit_block_copy_via_libcall.
14946
14947 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
14948
14949 * config/i386/i386.md (*call_got_x32): Change operand 0 to
14950 DImode before it is passed to ix86_output_call_operand.
14951 (*call_value_got_x32): Ditto for operand 1.
14952
14953 2016-05-12 Jiong Wang <jiong.wang@arm.com>
14954
14955 PR rtl-optimization/70904
14956 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
14957 reload for wide mode.
14958
14959 2016-05-12 Marek Polacek <polacek@redhat.com>
14960
14961 PR c/70756
14962 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
14963 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
14964 * langhooks.h (incomplete_type_error): Likewise.
14965 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
14966 parameter, pass it down to incomplete_type_error.
14967 * tree.h (size_in_bytes): New inline overload.
14968 (size_in_bytes_loc): Renamed from size_in_bytes.
14969
14970 2016-05-12 Richard Biener <rguenther@suse.de>
14971
14972 PR tree-optimization/71059
14973 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
14974 nary before looking up or entering the expression into the VN
14975 hashes.
14976 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
14977 Make sure to re-use NARYs without result as inserted by
14978 phi-translation.
14979
14980 2016-05-12 Richard Biener <rguenther@suse.de>
14981
14982 PR tree-optimization/71062
14983 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
14984 field.
14985 * tree-ssa-structalias.c (set_uids_in_ptset): Set
14986 vars_contains_restrict if the var is a restrict tag.
14987 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
14988 do not disambiguate pointers against it.
14989 (dump_points_to_solution): Re-structure and adjust for new
14990 vars_contains_restrict flag.
14991 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
14992
14993 2016-05-12 Martin Liska <mliska@suse.cz>
14994
14995 * doc/invoke.texi: Explain connection between
14996 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
14997
14998 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
14999
15000 PR tree-optimization/71006
15001 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
15002 consider COND_EXPR as a mask producer.
15003
15004 2016-05-12 Marek Polacek <polacek@redhat.com>
15005
15006 PR driver/71063
15007 * opts.c (common_handle_option): Detect missing argument for --help^.
15008
15009 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15010
15011 PR target/70830
15012 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
15013 when popping the PC and within an interrupt handler routine.
15014 Add missing tab to output of "ldmfd".
15015 (output_return_instruction): Output LDMFD with SP update rather
15016 than POP when returning from interrupt handler.
15017
15018 2016-05-12 Jakub Jelinek <jakub@redhat.com>
15019
15020 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
15021 TARGET_64BIT && TARGET_AVX512DQ.
15022 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
15023 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
15024 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
15025 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
15026 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
15027 (*vec_extractv4si_zext): Add avx512dq alternative.
15028 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
15029 use v instead of x constraint in other alternatives where possible.
15030
15031 * config/i386/sse.md (sse2_loadld): Use v instead of x
15032 constraint in alternatives 0,1,4.
15033
15034 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
15035 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
15036 v constraints instead of x and <pinsr_evex_isa> isa attribute.
15037
15038 PR target/71019
15039 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
15040 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
15041 is not emitted unless TARGET_AVX512BW.
15042 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
15043 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
15044 for the result operand.
15045
15046 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
15047 constraint instead of x in avx alternatives. Use maybe_evex instead
15048 of vex prefix.
15049
15050 * config/i386/constraints.md (Yv): New constraint.
15051 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
15052 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
15053 * config/i386/i386.md (avx512fvecmode): New mode attr.
15054 (*pushtf): Use v constraint instead of x.
15055 (*movtf_internal): Likewise. For TARGET_AVX512VL and
15056 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
15057 (*absneg<mode>2): Use Yv constraint instead of x constraint.
15058 (*absnegtf2_sse): Likewise.
15059 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
15060 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
15061 avx512f alternatives.
15062 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
15063
15064 2016-05-12 Richard Biener <rguenther@suse.de>
15065
15066 PR tree-optimization/71060
15067 * tree-data-ref.c (initialize_data_dependence_relation): Do not
15068 require exact match of DR_BASE_OBJECT but only matching address and
15069 type.
15070
15071 2016-05-12 Richard Biener <rguenther@suse.de>
15072
15073 PR tree-optimization/70986
15074 * cfganal.c: Include cfgloop.h.
15075 (dfs_find_deadend): Prefer to take edges exiting loops.
15076
15077 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15078
15079 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
15080 compile and run time.
15081
15082 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
15083
15084 PR c/43651
15085 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
15086
15087 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
15088
15089 * config/i386/i386.c (legitimize_pic_address): Use
15090 copy_to_suggested_reg instead of gen_movsi.
15091
15092 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
15093
15094 * config/rs6000/predicates.md (quad_memory_operand): Move most of
15095 the code into quad_address_p and call it to share code with
15096 vsx_quad_dform_memory_operand.
15097 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
15098 d-form support.
15099 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
15100 bit instead of being a separate word. Split -mpower9-dform into
15101 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
15102 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
15103 for the register class supporting 128-bit quad word memory offsets.
15104 (mode_supports_vsx_dform_quad): Helper function to return if the
15105 register class uses quad word memory offsets.
15106 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
15107 (rs6000_debug_reg_global): Always print if we are using LRA or not.
15108 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
15109 instructions are enabled, set up the appropriate addr_masks for
15110 128-bit types.
15111 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
15112 -mpower9-dform-scalar, instead of -mpower9-dform.
15113 (rs6000_option_override_internal): Split -mpower9-dform into two
15114 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
15115 -mpower9-dform switch sets or clears both. If we are not using
15116 the LRA register allocator, do not enable -mpower9-dform-vector by
15117 default. If we are using LRA, enable -mpower9-dform-vector and
15118 -mvsx-timode if it is appropriate. Issue a warning if either
15119 -mpower9-dform-vector or -mvsx-timode are explicitly used without
15120 enabling LRA.
15121 (quad_address_offset_p): New helper function to return if the
15122 offset is legal for quad word memory instructions.
15123 (quad_address_p): New function to determin if GPR or vector
15124 register quad word memory addresses are legal.
15125 (mem_operand_gpr): Validate quad word address offsets.
15126 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
15127 d-form (register + offset) instructions.
15128 (offsettable_ok_by_alignment): Likewise.
15129 (rs6000_legitimate_offset_address_p): Likewise.
15130 (legitimate_lo_sum_address_p): Likewise.
15131 (rs6000_legitimize_address): Likewise.
15132 (rs6000_legitimize_reload_address): Add more debug statements for
15133 -mdebug=addr.
15134 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
15135 d-form instructions.
15136 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
15137 d-form instructions. Distinguish different cases in debug
15138 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
15139 d-form instructions.
15140 (rs6000_preferred_reload_class): Likewise.
15141 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
15142 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
15143 of the ISA 2.06 indexed memory instructions.
15144 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
15145 use them to save/restore the saved vector registers instead of
15146 using Altivec instructions.
15147 (rs6000_emit_epilogue): Likewise.
15148 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
15149 (rs6000_opt_masks): Split -mpower9-dform into
15150 -mpower9-dform-scalar and -mpower9-dform-vector.
15151 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
15152 was not selected.
15153 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
15154 ISA 3.0 vector indexed memory instructions, and fold the code into
15155 the normal mov<mode> patterns.
15156 (p9_vecstore_<mode>): Likewise.
15157 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
15158 instructions.
15159 (vsx_movti_64bit): Likewise.
15160 (vsx_movti_32bit): Likewise.
15161 * config/rs6000/constraints.md (wO constraint): New constraint for
15162 ISA 3.0 vector d-form support.
15163 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
15164 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
15165 include -mpower9-dform-vector until we switch over to LRA.
15166 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
15167 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
15168 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
15169 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
15170 for -mpower9-dform and -mlra.
15171 * doc/md.texi (wO constraint): Document wO constraint.
15172
15173 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
15174
15175 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
15176 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
15177 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
15178 Move handling of non-insn arguments inline into the sole user:
15179 (output_trans_func): ...here.
15180 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
15181 in emitted function prototype.
15182 (output_internal_insn_latency_func): Ditto. Simplify.
15183 (output_internal_maximal_insn_latency_func): Ditto. Delete
15184 always-unused argument.
15185 (output_insn_latency_func): Ditto.
15186 (output_maximal_insn_latency_func): Ditto.
15187
15188 2016-05-11 Richard Biener <rguenther@suse.de>
15189
15190 PR tree-optimization/71055
15191 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
15192 sth with precision not equal to access size verify we don't chop
15193 off bits.
15194
15195 2016-05-11 Richard Biener <rguenther@suse.de>
15196
15197 PR debug/71057
15198 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
15199 (dwarf2out_finish): Move retry_incomplete_types call ...
15200 (dwarf2out_early_finish): ... here.
15201
15202 2016-05-11 Richard Biener <rguenther@suse.de>
15203
15204 PR middle-end/71002
15205 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
15206 if the langhook insists on it.
15207 * fold-const.c (make_bit_field_ref): Add arg for the original
15208 reference and preserve its alias-set.
15209 (decode_field_reference): Take exp by reference and adjust it
15210 to the original memory reference.
15211 (optimize_bit_field_compare): Adjust callers.
15212 (fold_truth_andor_1): Likewise.
15213 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
15214
15215 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
15216
15217 PR middle-end/70807
15218 * cfgrtl.h (delete_insn_and_edges): Now return bool.
15219 * cfgrtl.c (delete_insn_and_edges): Likewise.
15220 * config/i386/i386.c (convert_scalars_to_vector): Remove
15221 redundant code.
15222 * cse.c (cse_insn): Compute cse_cfg_altered.
15223 (delete_trivially_dead_insns): Likewise.
15224 (cse_cc_succs): Likewise.
15225 (rest_of_handle_cse): Free dominance info if required.
15226 (rest_of_handle_cse2): Likewise.
15227 (rest_of_handle_cse_after_global_opts): Likewise.
15228
15229 2016-05-11 Alan Modra <amodra@gmail.com>
15230
15231 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
15232 abi_v4_pass_in_fpr): New functions.
15233 (rs6000_function_arg_boundary): Exclude complex IBM long double
15234 from 64-bit alignment when ABI_V4.
15235 (rs6000_function_arg, rs6000_function_arg_advance_1,
15236 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
15237
15238 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
15239
15240 PR rtl-optimization/71028
15241 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
15242 jump with just a return in the fallthrough block if the branch
15243 block contains just a return as well.
15244
15245 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
15246
15247 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
15248 * match.pd ((X & Y) ^ Y): ... this.
15249 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
15250 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
15251
15252 2016-05-10 David Malcolm <dmalcolm@redhat.com>
15253
15254 * read-md.c (require_char_ws): New function.
15255 (read_string): Simplify using require_char_ws.
15256 (handle_constants): Likewise.
15257 (handle_enum): Likewise.
15258 (handle_file): Likewise.
15259 * read-md.h (require_char_ws): New declaration.
15260 * read-rtl.c (read_conditions): Simplify using require_char_ws.
15261 (read_mapping): Likewise.
15262 (read_rtx_code): Likewise.
15263 (read_nested_rtx): Likewise.
15264
15265 2016-05-10 James Norris <jnorris@codesourcery.com>
15266
15267 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
15268 if offloading is enabled and -fopenacc or -fopenmp is specified.
15269 (CRTOFFLOADEND): Likewise.
15270 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
15271 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
15272
15273 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
15274
15275 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
15276 gotoff_operand code paths. Use copy_to_suggested_regs and
15277 expand_simple_binop where appropriate. Cleanup.
15278
15279 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
15280
15281 PR target/70799
15282 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
15283 integer constants.
15284 (dimode_scalar_chain::vector_const_cost): New.
15285 (dimode_scalar_chain::compute_convert_gain): Handle constants.
15286 (dimode_scalar_chain::convert_op): Likewise.
15287 (dimode_scalar_chain::convert_insn): Likewise.
15288
15289 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
15290
15291 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
15292 unary operation, not a binary one.
15293
15294 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
15295
15296 PR middle-end/70877
15297 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
15298 calls with type casted fndecl.
15299
15300 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
15301
15302 PR tree-optimization/70786
15303 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
15304 * calls.c (initialize_argument_information): Bind bounds
15305 with corresponding args passed by reference.
15306
15307 2016-05-10 Jakub Jelinek <jakub@redhat.com>
15308
15309 PR target/70927
15310 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
15311 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
15312 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
15313 accordingly.
15314
15315 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15316
15317 PR target/70963
15318 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
15319 code for a zero scale factor.
15320 (vsx_xvcvdpuxds_scale): Likewise.
15321
15322 2016-05-10 David Malcolm <dmalcolm@redhat.com>
15323
15324 * diagnostic-show-locus.c (layout::layout): Call show_ruler
15325 if show_ruler_p was set on the context.
15326 (layout::show_ruler): New method.
15327 * diagnostic.h (struct diagnostic_context): Add field
15328 "show_ruler_p".
15329
15330 2016-05-10 Richard Biener <rguenther@suse.de>
15331
15332 PR tree-optimization/71039
15333 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
15334 (chk_uses): New function.
15335 (propagate_with_phi): Verify we can safely replicate the lhs of an
15336 aggregate assignment on all incoming edges.
15337
15338 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
15339
15340 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
15341 Forward declare.
15342 (rx_atomic_sequence): New class.
15343 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
15344 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
15345 non-inline.
15346 (rx_atomic_sequence::rx_atomic_sequence,
15347 rx_atomic_sequence::~rx_atomic_sequence): New functions.
15348 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
15349 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
15350 CTRLREG_INTB): New constants.
15351 (FETCHOP): New code iterator.
15352 (fethcop_name, fetchop_name2): New iterator code attributes.
15353 (QIHI): New mode iterator.
15354 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
15355 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
15356 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
15357
15358 2016-05-10 Martin Liska <mliska@suse.cz>
15359
15360 * tree-inline.c (remap_dependence_clique): Do not remap
15361 debugging statements.
15362
15363 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15364
15365 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
15366 ("*fixuns_truncdfdi2_z13")
15367 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
15368 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
15369 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
15370
15371 2016-05-10 Richard Biener <rguenther@suse.de>
15372
15373 PR tree-optimization/70497
15374 PR tree-optimization/28367
15375 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
15376 split out from ...
15377 (visit_reference_op_load): ... here.
15378 (vn_reference_lookup_3): Use it to handle subreg-like accesses
15379 with simplified BIT_FIELD_REFs.
15380 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
15381 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
15382 correctly.
15383
15384 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
15385
15386 * dwarf2out.c (add_abstract_origin_attribute): Adjust
15387 documentation comment. For BLOCK nodes, add a
15388 DW_AT_abstract_origin attribute that points to the DIE generated
15389 for the origin BLOCK.
15390 (gen_lexical_block_die): Call add_abstract_origin_attribute for
15391 blocks from inlined functions.
15392
15393 2016-05-10 Alan Modra <amodra@gmail.com>
15394
15395 PR target/70947
15396 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
15397 regrename modifying insns saving lr before __morestack call.
15398 * config/rs6000/rs6000.md (split_stack_return): Similarly for
15399 insns restoring lr after __morestack call.
15400
15401 2016-05-09 Jakub Jelinek <jakub@redhat.com>
15402
15403 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
15404 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
15405 expanders.
15406 * config/i386/sse.md (vec_interleave_high<mode>,
15407 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
15408 <avx512>_vpermt2var<mode>3_maskz): Likewise.
15409
15410 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
15411
15412 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
15413 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
15414 parallel reassociation for power8 and forward.
15415
15416 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
15417
15418 * config/i386/i386.md (absneg splitters with general regs): Use
15419 general_reg_operand predicate.
15420 (btsq peephole2): Use x86_64_immediate_operand to check if new
15421 value is suitable for immediate operand. Generate emitted insn
15422 using RTL expressions.
15423 (btcq peephole2): Ditto.
15424 (btrq peephole2): Ditto. Generate correct immediate operand
15425 for AND masking.
15426
15427 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
15428
15429 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
15430 bitpos.
15431
15432 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
15433
15434 * tree-affine.c (wide_int_constant_multiple_p): Add missing
15435 pointer dereference.
15436
15437 2016-05-09 Richard Biener <rguenther@suse.de>
15438
15439 PR tree-optimization/70985
15440 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
15441 op0 isn't a gimple register.
15442
15443 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
15444
15445 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
15446 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
15447 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
15448 (i6400_fpu_mult): New cpu units.
15449 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
15450 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
15451 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
15452 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
15453 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
15454 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
15455 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
15456 (i6400_msa_long_float4, i6400_msa_long_float5)
15457 (i6400_msa_long_float8, i6400_msa_fdiv_df)
15458 (i6400_msa_fdiv_sf): New reservations.
15459 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
15460 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
15461 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
15462 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
15463 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
15464 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
15465 (msa_short_cmp, msa_short_float2, msa_short_logic3)
15466 (msa_short_store4, msa_long_load, msa_short_store)
15467 (msa_long_logic, msa_long_float2, msa_long_float4)
15468 (msa_long_float5, msa_long_float8, msa_long_mult)
15469 (msa_long_fdiv, msa_long_div): New reservations.
15470
15471 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
15472 Sameera Deshpande <sameera.deshpande@imgtec.com>
15473 Matthew Fortune <matthew.fortune@imgtec.com>
15474 Graham Stott <graham.stott@imgtec.com>
15475 Chao-ying Fu <chao-ying.fu@imgtec.com>
15476
15477 * config.gcc: Add MSA header file for mips*-*-* target.
15478 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
15479 (Ubv8i, Urv8): New constraints.
15480 * config/mips/mips-ftypes.def: Add function types for MSA
15481 builtins.
15482 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
15483 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
15484 * config/mips/mips-msa.md: New file.
15485 * config/mips/mips-protos.h
15486 (mips_split_128bit_const_insns): New prototype.
15487 (mips_msa_idiv_insns): Likewise.
15488 (mips_split_128bit_move): Likewise.
15489 (mips_split_128bit_move_p): Likewise.
15490 (mips_split_msa_copy_d): Likewise.
15491 (mips_split_msa_insert_d): Likewise.
15492 (mips_split_msa_fill_d): Likewise.
15493 (mips_expand_msa_branch): Likewise.
15494 (mips_const_vector_same_val_p): Likewise.
15495 (mips_const_vector_same_bytes_p): Likewise.
15496 (mips_const_vector_same_int_p): Likewise.
15497 (mips_const_vector_shuffle_set_p): Likewise.
15498 (mips_const_vector_bitimm_set_p): Likewise.
15499 (mips_const_vector_bitimm_clr_p): Likewise.
15500 (mips_msa_vec_parallel_const_half): Likewise.
15501 (mips_msa_output_division): Likewise.
15502 (mips_ldst_scaled_shift): Likewise.
15503 (mips_expand_vec_cond_expr): Likewise.
15504 * config/mips/mips.c (enum mips_builtin_type): Add
15505 MIPS_BUILTIN_MSA_TEST_BRANCH.
15506 (mips_gen_const_int_vector_shuffle): New prototype.
15507 (mips_const_vector_bitimm_set_p): New function.
15508 (mips_const_vector_bitimm_clr_p): Likewise.
15509 (mips_const_vector_same_val_p): Likewise.
15510 (mips_const_vector_same_bytes_p): Likewise.
15511 (mips_const_vector_same_int_p): Likewise.
15512 (mips_const_vector_shuffle_set_p): Likewise.
15513 (mips_symbol_insns): Forbid loading symbols via immediate for
15514 MSA.
15515 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
15516 stores.
15517 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
15518 MSA.
15519 (mips_lx_address_p): Add support load indexed address for MSA.
15520 (mips_address_insns): Add calculation of instructions needed for
15521 stores and loads for MSA.
15522 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
15523 CONST_VECTOR for MSA and let it fall through.
15524 (mips_ldst_scaled_shift): New function.
15525 (mips_subword_at_byte): Likewise.
15526 (mips_msa_idiv_insns): Likewise.
15527 (mips_legitimize_move): Validate MSA moves.
15528 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
15529 calculation of costs for MSA division.
15530 (mips_split_move_p): Check if MSA moves need splitting.
15531 (mips_split_move): Split MSA moves if necessary.
15532 (mips_split_128bit_move_p): New function.
15533 (mips_split_128bit_move): Likewise.
15534 (mips_split_msa_copy_d): Likewise.
15535 (mips_split_msa_insert_d): Likewise.
15536 (mips_split_msa_fill_d): Likewise.
15537 (mips_output_move): Handle MSA moves.
15538 (mips_expand_msa_branch): New function.
15539 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
15540 Reinstate 'y' modifier.
15541 (mips_file_start): Add MSA .gnu_attribute.
15542 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
15543 FPRs.
15544 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
15545 (mips_class_max_nregs): Add register size for MSA supported mode.
15546 (mips_cannot_change_mode_class): Allow conversion between MSA
15547 vector modes and TImode.
15548 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
15549 instruction.
15550 (mips_secondary_reload_class): Force MSA loads/stores via memory.
15551 (mips_preferred_simd_mode): Add preffered modes for MSA.
15552 (mips_vector_mode_supported_p): Add MSA supported modes.
15553 (mips_autovectorize_vector_sizes): New function.
15554 (mips_msa_output_division): Likewise.
15555 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
15556 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
15557 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
15558 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
15559 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
15560 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
15561 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
15562 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
15563 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
15564 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
15565 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
15566 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
15567 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
15568 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
15569 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
15570 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
15571 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
15572 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
15573 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
15574 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
15575 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
15576 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
15577 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
15578 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
15579 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
15580 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
15581 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
15582 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
15583 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
15584 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
15585 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
15586 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
15587 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
15588 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
15589 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
15590 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
15591 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
15592 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
15593 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
15594 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
15595 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
15596 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
15597 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
15598 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
15599 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
15600 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
15601 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
15602 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
15603 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
15604 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
15605 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
15606 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
15607 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
15608 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
15609 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
15610 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
15611 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
15612 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
15613 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
15614 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
15615 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
15616 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
15617 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
15618 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
15619 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
15620 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
15621 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
15622 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
15623 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
15624 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
15625 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
15626 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
15627 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
15628 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
15629 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
15630 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
15631 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
15632 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
15633 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
15634 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
15635 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
15636 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
15637 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
15638 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
15639 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
15640 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
15641 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
15642 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
15643 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
15644 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
15645 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
15646 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
15647 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
15648 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
15649 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
15650 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
15651 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
15652 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
15653 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
15654 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
15655 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
15656 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
15657 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
15658 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
15659 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
15660 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
15661 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
15662 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
15663 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
15664 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
15665 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
15666 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
15667 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
15668 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
15669 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
15670 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
15671 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
15672 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
15673 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
15674 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
15675 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
15676 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
15677 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
15678 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
15679 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
15680 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
15681 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
15682 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
15683 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
15684 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
15685 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
15686 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
15687 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
15688 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
15689 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
15690 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
15691 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
15692 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
15693 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
15694 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
15695 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
15696 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
15697 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
15698 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
15699 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
15700 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
15701 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
15702 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
15703 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
15704 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
15705 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
15706 move_v builtins.
15707 (mips_get_builtin_decl_index): New array.
15708 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
15709 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
15710 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
15711 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
15712 (mips_init_builtins): Initialize mips_get_builtin_decl_index
15713 array.
15714 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
15715 hook.
15716 (mips_expand_builtin_insn): Prepare operands for
15717 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
15718 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
15719 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
15720 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
15721 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
15722 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
15723 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
15724 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
15725 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
15726 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
15727 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
15728 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
15729 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
15730 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
15731 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
15732 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
15733 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
15734 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
15735 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
15736 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
15737 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
15738 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
15739 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
15740 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
15741 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
15742 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
15743 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
15744 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
15745 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
15746 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
15747 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
15748 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
15749 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
15750 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
15751 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
15752 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
15753 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
15754 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
15755 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
15756 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
15757 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
15758 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
15759 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
15760 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
15761 These are set implicitly and an error is reported if overridden.
15762 (mips_expand_builtin_msa_test_branch): New function.
15763 (mips_expand_msa_shuffle): Likewise.
15764 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
15765 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
15766 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
15767 (mips_expand_vec_unpack): Add support for MSA.
15768 (mips_expand_vector_init): Likewise.
15769 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
15770 instead of const0_rtx.
15771 (mips_msa_vec_parallel_const_half): New function.
15772 (mips_gen_const_int_vector): Likewise.
15773 (mips_gen_const_int_vector_shuffle): Likewise.
15774 (mips_expand_msa_cmp): Likewise.
15775 (mips_expand_vec_cond_expr): Likewise.
15776 * config/mips/mips.h
15777 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
15778 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
15779 specified.
15780 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
15781 (ISA_HAS_MSA): New macro.
15782 (UNITS_PER_MSA_REG): Likewise.
15783 (BITS_PER_MSA_REG): Likewise.
15784 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
15785 (MSA_REG_FIRST): New macro.
15786 (MSA_REG_LAST): Likewise.
15787 (MSA_REG_NUM): Likewise.
15788 (MSA_REG_P): Likewise.
15789 (MSA_REG_RTX_P): Likewise.
15790 (MSA_SUPPORTED_MODE_P): Likewise.
15791 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
15792 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
15793 * config/mips/mips.md: Include mips-msa.md.
15794 (alu_type): Add simd_add.
15795 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
15796 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
15797 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
15798 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
15799 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
15800 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
15801 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
15802 simd_move, simd_load, simd_store. Choose "multi" for moves
15803 for "qword_mode".
15804 (qword_mode): New attribute.
15805 (insn_count): Add instruction count for quad moves.
15806 Increase the count for MIPS SIMD division.
15807 (UNITMODE): Add UNITMODEs for vector types.
15808 (addsub): New code iterator.
15809 * config/mips/mips.opt (mmsa): New option.
15810 * config/mips/msa.h: New file.
15811 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
15812 specified.
15813 * config/mips/mti-linux.h: Likewise.
15814 * config/mips/predicates.md
15815 (const_msa_branch_operand): New constraint.
15816 (const_uimm3_operand): Likewise.
15817 (const_uimm4_operand): Likewise.
15818 (const_uimm5_operand): Likewise.
15819 (const_uimm8_operand): Likewise.
15820 (const_imm5_operand): Likewise.
15821 (aq10b_operand): Likewise.
15822 (aq10h_operand): Likewise.
15823 (aq10w_operand): Likewise.
15824 (aq10d_operand): Likewise.
15825 (const_m1_operand): Likewise.
15826 (reg_or_m1_operand): Likewise.
15827 (const_exp_2_operand): Likewise.
15828 (const_exp_4_operand): Likewise.
15829 (const_exp_8_operand): Likewise.
15830 (const_exp_16_operand): Likewise.
15831 (const_vector_same_val_operand): Likewise.
15832 (const_vector_same_simm5_operand): Likewise.
15833 (const_vector_same_uimm5_operand): Likewise.
15834 (const_vector_same_uimm6_operand): Likewise.
15835 (const_vector_same_uimm8_operand): Likewise.
15836 (par_const_vector_shf_set_operand): Likewise.
15837 (reg_or_vector_same_val_operand): Likewise.
15838 (reg_or_vector_same_simm5_operand): Likewise.
15839 (reg_or_vector_same_uimm6_operand): Likewise.
15840 * doc/extend.texi (MIPS SIMD Architecture Functions): New
15841 section.
15842 * doc/invoke.texi (-mmsa): Document new option.
15843
15844 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15845
15846 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
15847 * configure: Regenerate.
15848 * config.in: Regenerate.
15849 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
15850 on -fvtable-verify.
15851 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
15852 (ENDFILE_VTV_SPEC): Define.
15853
15854 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
15855
15856 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
15857 registers in all interrupt handlers if necessary.
15858 (rl78_option_override): Add warning.
15859 (MUST_SAVE_MDUC_REGISTERS): New macro.
15860 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
15861 * config/rl78/rl78.c (check_mduc_usage): New function.
15862 (mduc_regs): New structure to hold MDUC register data.
15863 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
15864 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
15865 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
15866 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
15867 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
15868 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
15869
15870 2016-05-09 Bin Cheng <bin.cheng@arm.com>
15871
15872 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
15873 (tree-ssa-loop-niter.h): Ditto.
15874 (idx_within_array_bound, ref_within_array_bound): New functions.
15875 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
15876 Factor out check on writable base object to ...
15877 (base_object_writable): ... here.
15878
15879 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15880
15881 * config/arm/arm.md (probe_stack): Add modes to set source
15882 and destination.
15883
15884 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
15885
15886 * regrename.c (base_reg_class_for_rename): New static function.
15887 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
15888
15889 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
15890
15891 * cgraph.c (thunk_adjust): Export.
15892 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
15893 * cgraphunit.c (thunk_adjust): Export.
15894 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
15895 thunks.
15896 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
15897 inlinable.
15898 * tree-inline.c (expand_call_inline): Expand thunks inline.
15899
15900 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
15901
15902 PR target/70998
15903 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
15904 (*sse2_vd_cvtss2sd): Ditto.
15905 * config/i386/i386.md
15906 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
15907 Generate *sse2_vd_cvtsd2ss pattern.
15908 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
15909 Generate *sse2_vd_cvtss2sd pattern.
15910
15911 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
15912
15913 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
15914 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
15915 users.
15916
15917 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
15918
15919 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
15920 * config/sh/sh.c: Define and declare variables on first use throughout
15921 the file.
15922 (current_function_interrupt): Change to bool type.
15923 (frame_insn): Rename to emit_frame_insn and update users.
15924 (push_regs): Use bool for 'interrupt_handler' argument.
15925 (save_schedule_s): Remove.
15926 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
15927 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
15928 targetm.asm_out.unaligned_op.di.
15929 (gen_far_branch): Remove redundant forward declaration.
15930 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
15931 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
15932 (sh_set_return_address, sh_function_ok_for_sibcall,
15933 scavenge_reg): Update comments.
15934 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
15935 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
15936 (sh_attr_renesas_p): Remove unnecessary parentheses.
15937 (branch_dest): Simplify.
15938 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
15939 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
15940 (CUMULATIVE_ARGS): Change macro to typedef.
15941 (current_function_interrupt): Change to bool type.
15942 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
15943 Surround with __cplusplus ifdef.
15944 (sh_compare_op0, sh_compare_op1): Remove.
15945 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
15946
15947 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
15948
15949 * config/arm/arm.md: (arch): Add neon.
15950 (arch_enabled): Return yes for arch neon when TARGET_NEON.
15951 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
15952 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
15953 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
15954 attributes for alt renumbering. Mark alt 3 as non-predicable.
15955 (thumb2_movdf_vfp): Likewise.
15956
15957 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
15958
15959 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
15960 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
15961 (*andqi_1): Add preferred_for_speed attribute to disparage
15962 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
15963 (*<code>qi_1): Ditto.
15964 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
15965 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
15966 (*ashlqi3_1): Ditto.
15967 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
15968 Add preferred_for_size attribute to disparage alternative 0 and
15969 preferred_for_speed attribute to disparage alternative 1 for
15970 TARGET_PARTIAL_REG_STALL targets.
15971
15972 2016-05-07 Tom de Vries <tom@codesourcery.com>
15973
15974 PR tree-optimization/70956
15975 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
15976 def.
15977
15978 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
15979
15980 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
15981 * config/sh/sh.c (sh_cbranch_distance): Implement it.
15982 * config/sh/sh.md (branch_zero): Remove define_attr.
15983 (define_delay): Disable delay slot if branch distance is one insn.
15984
15985 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15986
15987 * config/i386/i386.md (LEAMODE): New mode attribute.
15988 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
15989 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
15990 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
15991 operand 2 predicate.
15992 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
15993 (*lea<mode>_general_3): Ditto.
15994 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
15995
15996 2016-05-06 Jakub Jelinek <jakub@redhat.com>
15997
15998 * genmddump.c (main): Convert argv from char ** to const char **.
15999
16000 2016-05-06 David Malcolm <dmalcolm@redhat.com>
16001
16002 * coretypes.h (OVERRIDE): New macro.
16003 (FINAL): New macro.
16004
16005 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
16006
16007 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
16008 allow coalescing if the types are compatible.
16009
16010 2016-05-06 David Malcolm <dmalcolm@redhat.com>
16011
16012 * pass_manager.h (pass_manager::register_pass_name): New method.
16013 (pass_manager::get_pass_by_name): New method.
16014 (pass_manager::create_pass_tab): New method.
16015 (pass_manager::m_name_to_pass_map): New field.
16016 * passes.c (name_to_pass_map): Delete global in favor of field
16017 "m_name_to_pass_map" of pass_manager.
16018 (register_pass_name): Rename from a function to...
16019 (pass_manager::register_pass_name): ...this method, updating
16020 for renaming of global "name_to_pass_map" to field
16021 "m_name_to_pass_map".
16022 (create_pass_tab): Rename from a function to...
16023 (pass_manager::create_pass_tab): ...this method, updating
16024 for renaming of global "name_to_pass_map" to field.
16025 (get_pass_by_name): Rename from a function to...
16026 (pass_manager::get_pass_by_name): ...this method.
16027 (enable_disable_pass): Convert use of get_pass_by_name to
16028 a method call, locating the pass_manager singleton.
16029
16030 2016-05-06 David Malcolm <dmalcolm@redhat.com>
16031
16032 * genattr-common.c (main): Convert argv from char ** to const char **.
16033 * genattr.c (main): Likewise.
16034 * genattrtab.c (main): Likewise.
16035 * genautomata.c (initiate_automaton_gen): Likewise.
16036 (main): Likewise.
16037 * gencodes.c (main): Likewise.
16038 * genconditions.c (main): Likewise.
16039 * genconfig.c (main): Likewise.
16040 * genconstants.c (main): Likewise.
16041 * genemit.c (main): Likewise.
16042 * genenums.c (main): Likewise.
16043 * genextract.c (main): Likewise.
16044 * genflags.c (main): Likewise.
16045 * genmddeps.c (main): Likewise.
16046 * genopinit.c (main): Likewise.
16047 * genoutput.c (main): Likewise.
16048 * genpeep.c (main): Likewise.
16049 * genpreds.c (main): Likewise.
16050 * genrecog.c (main): Likewise.
16051 * gensupport.c (init_rtx_reader_args_cb): Likewise.
16052 (init_rtx_reader_args): Likewise.
16053 * gensupport.h (init_rtx_reader_args_cb): Likewise.
16054 (init_rtx_reader_args): Likewise.
16055 * gentarget-def.c (main): Likewise.
16056 * read-md.c (read_md_files): Likewise.
16057 * read-md.h (read_md_files): Likewise.
16058
16059 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
16060
16061 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
16062 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
16063 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
16064 Remove unused predicate.
16065 (register_and_not_fp_reg_operand): Ditto.
16066
16067 2016-05-06 Martin Liska <mliska@suse.cz>
16068
16069 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
16070 instead of vec as the vector is local to the function.
16071
16072 2016-05-06 Jakub Jelinek <jakub@redhat.com>
16073
16074 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
16075 avx512bw alternative.
16076
16077 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
16078 before the ashr<mode>3 pattern.
16079
16080 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
16081 v instead of x in vex or maybe_vex alternatives, use
16082 maybe_evex instead of vex in prefix.
16083
16084 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
16085 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
16086 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
16087 in vex or maybe_vex alternatives, use maybe_evex instead of vex
16088 in prefix.
16089
16090 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
16091 v instead of x in vex or maybe_vex alternatives, use
16092 maybe_evex instead of vex in prefix.
16093
16094 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
16095 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
16096 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
16097 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
16098 alternatives, use maybe_evex instead of vex in prefix.
16099
16100 * config/i386/sse.md (vec_interleave_lowv4sf,
16101 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
16102 v instead of x in vex or maybe_vex alternatives, use
16103 maybe_evex instead of vex in prefix.
16104
16105 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
16106 v instead of x in vex or maybe_vex alternatives, use
16107 maybe_evex instead of vex in prefix.
16108
16109 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
16110 v constraint instead of x.
16111
16112 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
16113
16114 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
16115 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
16116 equality first.
16117
16118 2016-05-06 Richard Biener <rguenther@suse.de>
16119
16120 PR tree-optimization/70948
16121 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
16122 Properly clobber all fields of va_list for __builtin_va_start.
16123
16124 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
16125
16126 PR debug/70935
16127 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
16128 loop latch destination.
16129
16130 2016-05-06 Martin Liska <mliska@suse.cz>
16131
16132 * tree-ssa-uninit.c: Apply manual changes
16133 to the GNU coding style.
16134 (prune_uninit_phi_opnds): Rename from
16135 prune_uninit_phi_opnds_in_unrealizable_paths.
16136
16137 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16138
16139 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
16140 mspace): Remove deprecated options.
16141 * doc/invoke.texi (SH options): Remove -mspace.
16142
16143 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16144
16145 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
16146
16147 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16148
16149 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
16150 corresponding combine split pattern.
16151
16152 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16153
16154 PR target/58219
16155 * config/sh/predicates.md (long_displacement_mem_operand): New.
16156 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
16157 Add movi20, movi20s alternatives. Adjust length attribute for
16158 alternatives.
16159 (movsi_ie): Allow for any FPU. Adjust length attribute for
16160 alternatives.
16161 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
16162 attribute for alternatives.
16163 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
16164 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
16165 length attribute for alternatives.
16166
16167 2016-05-06 Richard Biener <rguenther@suse.de>
16168
16169 PR tree-optimization/70960
16170 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
16171
16172 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16173
16174 PR target/52933
16175 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
16176 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
16177
16178 2016-05-06 Marek Polacek <polacek@redhat.com>
16179
16180 PR sanitizer/70875
16181 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
16182
16183 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16184
16185 PR target/54089
16186 * config/sh/sh.md (*rotcr): Add another variant.
16187
16188 2016-05-06 Richard Biener <rguenther@suse.de>
16189
16190 PR middle-end/70931
16191 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
16192
16193 2016-05-06 Richard Biener <rguenther@suse.de>
16194
16195 PR middle-end/70941
16196 * fold-const.c (split_tree): Always convert to the original type
16197 before negating.
16198
16199 2016-05-06 Richard Biener <rguenther@suse.de>
16200
16201 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
16202 (fwprop_addr): Likewise.
16203
16204 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
16205
16206 PR target/70873
16207 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
16208 New prototype.
16209 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
16210 * config/i386/i386.md (push mem splitter): Use find_constant_src in
16211 the splitter condition.
16212 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
16213 the splitter condition.
16214 (FP float_extend load splitter): Ditto.
16215
16216 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
16217
16218 * config/i386/i386.md (peehole2 patterns): Change true_regnum
16219 to REGNO in all peephole2 patterns.
16220 (post-reload splitters): Change true_regnum to REGNO in
16221 post-reload splitters.
16222 (zero_extend splitters): Use general_reg_operand and
16223 nonimmediate_gr_operand predicates.
16224
16225 2016-05-05 Jakub Jelinek <jakub@redhat.com>
16226
16227 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
16228 v constraint instead of x.
16229
16230 2016-05-05 Alan Modra <amodra@gmail.com>
16231
16232 PR target/68662
16233 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
16234 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
16235 TARGET_NO_FP_IN_TOC for -mrelocatable.
16236 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
16237 TARGET_RELOCATABLE test.
16238 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
16239 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16240 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
16241 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
16242 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16243 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
16244 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
16245 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16246 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
16247 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
16248 Likewise.
16249 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
16250 (rs6000_stack_info): Likewise.
16251 (rs6000_elf_asm_out_constructor): Likewise.
16252 (rs6000_elf_asm_out_destructor): Likewise.
16253 (rs6000_elf_declare_function_name): Likewise.
16254 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
16255 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
16256 Don't define.
16257
16258 2016-05-05 Alan Modra <amodra@gmail.com>
16259
16260 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
16261
16262 2016-05-05 Alan Modra <amodra@gmail.com>
16263
16264 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
16265 out-of-line gpr restore for one or two regs if that would add
16266 a save of lr.
16267
16268 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
16269
16270 PR target/70873
16271 * config/i386/i386.md
16272 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
16273 Change to post-epilogue_completed late splitter. Use sse_reg_operand
16274 as operand 0 predicate.
16275 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
16276 Ditto.
16277 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
16278 Ditto. Emit the pattern using RTX.
16279
16280 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
16281 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
16282 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
16283 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
16284 Ditto.
16285 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
16286 sse_reg_operand as operand 0 predicate.
16287
16288 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
16289 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
16290 instead of gen_rtx_REG.
16291 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
16292 Ditto.
16293
16294 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16295
16296 * function.c (emit_use_return_register_into_block): Delete.
16297 (gen_return_pattern): Delete.
16298 (emit_return_into_block): Delete.
16299 (active_insn_between): Delete.
16300 (convert_jumps_to_returns): Delete.
16301 (emit_return_for_exit): Delete.
16302 (thread_prologue_and_epilogue_insns): Delete all code dealing with
16303 simple_return for shrink-wrapped blocks.
16304 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
16305 end of blocks that need one.
16306 (get_unconverted_simple_return): Delete.
16307 (convert_to_simple_return): Delete.
16308 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
16309 (convert_to_simple_return): Ditto.
16310
16311 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16312
16313 * cfgcleanup.c (bb_is_just_return): New function.
16314 (try_optimize_cfg): Simplify jumps to return, branches to return,
16315 and branches around return.
16316
16317 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16318
16319 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
16320 branch to a return.
16321
16322 2016-05-04 Jakub Jelinek <jakub@redhat.com>
16323
16324 PR c++/70906
16325 PR c++/70933
16326 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
16327 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
16328 assert flags & OEP_HASH_CHECK, instead of asserting it
16329 never happens. Handle TARGET_EXPR.
16330 * fold-const.c (operand_equal_p): For hash verification,
16331 or in OEP_HASH_CHECK into flags.
16332
16333 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
16334
16335 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
16336 comment.
16337 (compute_samebase_partition_bases): Fix typo.
16338
16339 2016-05-04 Jakub Jelinek <jakub@redhat.com>
16340
16341 * config/i386/sse.md (vec_interleave_highv8sf,
16342 vec_interleave_lowv8sf, vec_interleave_highv4df,
16343 vec_interleave_lowv4df): Remove constraints from expanders.
16344
16345 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
16346
16347 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
16348
16349 * tree-inline.c (expand_call_inline): Fix path dealing with
16350 making lhs of call statement undefined.
16351
16352 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
16353
16354 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
16355 Check availability on NODE, too.
16356 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
16357 (cgraph_node::call_for_symbol_and_aliases): Likewise.
16358 (varpool_node::call_for_symbol_and_aliase): Likewise.
16359 * ipa-pure-const.c (add_new_function): Analyze all bodies.
16360 (propagate_pure_const): Propagate across interposable functions, too.
16361 (skip_function_for_local_pure_const): Do not skip interposable bodies
16362 with aliases.
16363 (pass_local_pure_const::execute): Update.
16364
16365 2016-05-04 Marek Polacek <polacek@redhat.com>
16366
16367 * doc/invoke.texi: Document -Wdangling-else.
16368
16369 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
16370
16371 * config.gcc: Error out when conflicting multilib is detected. Do not
16372 loop over multilibs since no combination is legal.
16373
16374 2016-05-04 Alan Modra <amodra@gmail.com>
16375
16376 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
16377 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
16378 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
16379 Align .toc.
16380
16381 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
16382
16383 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
16384 Clean up p5600 comments.
16385
16386 2016-05-04 Richard Biener <rguenther@suse.de>
16387
16388 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
16389 constructor simplifications.
16390 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
16391
16392 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
16393
16394 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
16395 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
16396 result.set_rtx is null instead of aborting.
16397 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
16398 Always enable.
16399 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
16400 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
16401 *mov<mode>_store_postinc): New patterns.
16402
16403 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
16404
16405 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
16406 as commutative. Check both conversions are NOP.
16407 ((A & B) OP (C & B)): Remove.
16408
16409 2016-05-04 Alan Modra <amodra@gmail.com>
16410
16411 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
16412
16413 2016-05-04 Alan Modra <amodra@gmail.com>
16414
16415 PR target/70866
16416 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
16417 when cr2,3,4 are all fixed regs.
16418
16419 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
16420
16421 PR rtl-optimization/57193
16422 * opts.c (default_options_table): Revert OPT_frename_registers change.
16423 * doc/invoke.texi (-frename-registers, -O2): Likewise.
16424
16425 2016-05-03 Martin Sebor <msebor@redhat.com>
16426
16427 PR c++/66561
16428 * builtins.c (fold_builtin_FILE): New function.
16429 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
16430 (fold_builtin_0): Call them.
16431 * gimplify.c (gimplify_call_expr): Remove the handling of
16432 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
16433
16434 PR c++/66561
16435 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
16436 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
16437 constants.
16438
16439 PR c++/66639
16440 * doc/extend.texi (Function Names as Strings): Update __func__,
16441 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
16442 constants.
16443
16444 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16445 Richard Biener <rguenther@suse.de>
16446
16447 PR tree-optimization/70916
16448 * tree-if-conv.c: Include cfganal.h.
16449 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
16450 and remove_fake_exit_edges around the optimization pass.
16451
16452 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
16453
16454 * cgraph.c (symbol_table::create_edge): Set inline_failed.
16455 (cgraph_edge::make_direct): Likewise.
16456 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
16457 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
16458 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
16459 (CIF_THUNK): New code.
16460 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
16461 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
16462 (compute_inline_parameters): Set inline_failed for thunks.
16463 (inline_analyze_function): Cleanup.
16464 * ipa-inline.c (can_inline_edge_p): Do not deal with
16465 call_stmt_cannot_inline_p.
16466 (can_early_inline_edge_p): Likewise.
16467 (early_inliner): Initialize inline_failed.
16468 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
16469
16470 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
16471
16472 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
16473 from nonimm_ssenomem_operand.
16474 (nonimm_ssenomem_operand): New predicate.
16475 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
16476 as operand 0 predicate.
16477 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
16478 Disable unsupported alternatives using "enabled" attribute.
16479 Use register_ssemem_operand as operand 0 predicate.
16480 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
16481
16482 2016-05-03 Marek Polacek <polacek@redhat.com>
16483
16484 PR c/70859
16485 * input.c (expansion_point_location): New function.
16486 * input.h (expansion_point_location): Declare.
16487
16488 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
16489
16490 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
16491 occurence with frame_offset_ ones.
16492
16493 2016-05-03 Alan Modra <amodra@gmail.com>
16494
16495 PR rtl-optimization/70890
16496 * ira.c (combine_and_move_insns): When moving def_insn, remove
16497 equivs on use_insn.
16498
16499 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
16500
16501 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
16502 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
16503 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
16504 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
16505
16506 2016-05-03 Alan Modra <amodra@gmail.com>
16507
16508 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
16509 for SAVE_MULTIPLE/STORE_MULTIPLE.
16510
16511 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16512
16513 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
16514 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
16515
16516 2016-05-03 Richard Biener <rguenther@suse.de>
16517
16518 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
16519 default true.
16520 (gimplify_arg): Likewise.
16521 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
16522 re-writing the result to a decl if required.
16523 (internal_get_tmp_var): Add allow_ssa parameter
16524 and override into_ssa with it.
16525 (get_formal_tmp_var): Adjust.
16526 (get_initialized_tmp_var): Add allow_ssa parameter.
16527 (gimplify_arg): Add allow_ssa parameter and avoid generating
16528 SSA names for the result false.
16529 (gimplify_call_expr): If the call may return twice do not
16530 gimplify parameters into SSA.
16531 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
16532 (gimplify_modify_expr): Adjust assert. For noreturn calls
16533 with a SSA name LHS adjust its def.
16534 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
16535 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
16536 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
16537 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
16538 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
16539 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
16540 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
16541 (optimize_target_teams): Do not allow SSA names for clause operands.
16542 (gimplify_expr): Likewise for where we mark the result addressable.
16543 * passes.def (pass_init_datastructures): Remove.
16544 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
16545 (rewrite_stmt): Likewise.
16546 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
16547 (replace_locals_op): Replace SSA names.
16548 (copy_gimple_seq_and_replace_locals): Init src_cfun.
16549 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
16550 * cgraph.c (release_function_body): Free CFG annotations only
16551 when we have a CFG. Simplify.
16552 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
16553 force_gimple_operand instead of get_initialized_tmp_var.
16554 * tree-pass.h (make_pass_init_datastructures): Remove.
16555 * tree-ssa.c (execute_init_datastructures): Remove.
16556 (pass_data_init_datastructures): Likewise.
16557 (class pass_init_datastructures): Likewise.
16558 (make_pass_init_datastructures): Likewise.
16559 * omp-low.c (create_omp_child_function): Init SSA data structures.
16560 (grid_expand_target_grid_body): Likewise.
16561 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
16562 name before adding it to names_to_release.
16563 (remove_bb): Always release SSA defs.
16564 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
16565 before dereferencing it.
16566 * cgraphunit.c (init_lowered_empty_function): Always
16567 int SSA data structures.
16568 * tree-ssanames.c (release_defs): Remove assert that we are in
16569 SSA form.
16570 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
16571
16572 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16573 Uros Bizjak <ubizjak@gmail.com>
16574
16575 PR rtl-optimization/70467
16576 * config/i386/predicates.md (x86_64_hilo_int_operand,
16577 x86_64_hilo_general_operand): New predicates.
16578 * config/i386/constraints.md (Wd): New constraint.
16579 * config/i386/i386.md (mode attr di): Use Wd instead of e.
16580 (general_hilo_operand): New mode attr.
16581 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
16582 instead of <general_operand>.
16583 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
16584 x86_64_hilo_general_operand instead of <general_operand>.
16585
16586 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16587
16588 PR tree-optimization/70916
16589 * tree-if-conv.c (constant_or_ssa_name): Removed.
16590 (fold_build_cond_expr): Use is_gimple_val instead of
16591 constant_or_ssa_name.
16592
16593 PR tree-optimization/70916
16594 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
16595 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
16596
16597 PR target/49244
16598 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
16599 (optimize_atomic_bit_test_and): New function.
16600 (pass_fold_builtins::execute): Use it.
16601 * optabs.def (atomic_bit_test_and_set_optab,
16602 atomic_bit_test_and_complement_optab,
16603 atomic_bit_test_and_reset_optab): New optabs.
16604 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
16605 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
16606 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
16607 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
16608 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
16609 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
16610 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
16611 * doc/md.texi (atomic_bit_test_and_set@var{mode},
16612 atomic_bit_test_and_complement@var{mode},
16613 atomic_bit_test_and_reset@var{mode}): Document.
16614 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
16615 atomic_bit_test_and_complement<mode>,
16616 atomic_bit_test_and_reset<mode>): New expanders.
16617 (atomic_bit_test_and_set<mode>_1,
16618 atomic_bit_test_and_complement<mode>_1,
16619 atomic_bit_test_and_reset<mode>_1): New insns.
16620
16621 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
16622
16623 PR rtl-optimization/70687
16624 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
16625 instead of unsigned HOST_WIDE_INT.
16626
16627 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
16628
16629 PR rtl-optimization/44281
16630 * hard-reg-set.h (struct target_hard_regs): New field
16631 x_fixed_nonglobal_reg_set.
16632 (fixed_nonglobal_reg_set): New macro.
16633 * reginfo.c (init_reg_sets_1): Initialize it.
16634 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
16635 of fixed_reg_set.
16636 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
16637
16638 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16639
16640 PR tree-optimization/56541
16641 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
16642 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
16643 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
16644 (any_complicated_phi): new static variable.
16645 (aggressive_if_conv): delete.
16646 (if_convertible_phi_p): support phis with more than two arguments.
16647 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
16648 critical pred edges.
16649 (ifcvt_split_critical_edges): support phis with more than two
16650 arguments by checking new parameter. only split critical edges
16651 if needed.
16652 (tree_if_conversion): handle simd pragma marked loop using new
16653 local variable aggressive_if_conv. check any_complicated_phi.
16654
16655 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16656
16657 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
16658 before using it.
16659
16660 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16661
16662 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
16663 cbase.
16664
16665 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
16666
16667 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
16668 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
16669 define_insn_and_split.
16670 (mulsi3_i): New define_insn_and_split.
16671 (mulsi3_call): Convert to define_insn.
16672 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
16673 Remove constraints.
16674
16675 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
16676
16677 * machmode.h (mode_complex): Add support to give the complex mode
16678 for a given mode.
16679 (GET_MODE_COMPLEX_MODE): Likewise.
16680 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
16681 stored by build_complex_type and gfc_build_complex_type instead of
16682 trying to figure out the appropriate mode based on the size. Raise
16683 an assertion error, if the type was not set.
16684 * genmodes.c (struct mode_data): Add field for the complex type of
16685 the given type.
16686 (blank_mode): Likewise.
16687 (make_complex_modes): Remember the complex mode created in the
16688 base type.
16689 (emit_mode_complex): Write out the mode_complex array to map a
16690 type mode to the complex version.
16691 (emit_insn_modes_c): Likewise.
16692 * tree.c (build_complex_type): Set the complex type to use before
16693 calling layout_type.
16694 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
16695 support for __float128 complex datatypes.
16696 (rs6000_hard_regno_mode_ok): Likewise.
16697 (rs6000_setup_reg_addr_masks): Likewise.
16698 (rs6000_complex_function_value): Likewise.
16699 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
16700 __float128 and __ibm128 complex.
16701 (FLOAT128_IBM_P): Likewise.
16702 (ALTIVEC_ARG_MAX_RETURN): Likewise.
16703 * doc/extend.texi (Additional Floating Types): Document that
16704 -mfloat128 must be used to enable __float128. Document complex
16705 __float128 and __ibm128 support.
16706
16707 2016-05-02 Jakub Jelinek <jakub@redhat.com>
16708
16709 PR target/49244
16710 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
16711 char/short arguments promoted to int because of promote_prototypes.
16712
16713 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
16714
16715 * config/i386/predicates.md (register_ssemem_operand): New predicate.
16716 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
16717 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
16718 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
16719 alternatives using "enabled" attribute. Use register_ssemem_operand
16720 as operand 1 predicate.
16721 (*cmpi<unord>xf_i387): Split XFmode pattern from
16722 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
16723 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
16724 *absneg<mode>2_i387. Disable unsupported alternatives using
16725 "enabled" attribute.
16726 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
16727
16728 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
16729
16730 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
16731 marker.
16732 (oacc_loop_process): Check mask for loop termination.
16733
16734 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
16735
16736 * cif-code.def (CIF_THUNK): Add.
16737 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
16738 accidental change.
16739
16740 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
16741
16742 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
16743 (dump_inline_summary): Dump it.
16744 (fp_expression_p): New predicate.
16745 (estimate_function_body_sizes): Use it.
16746 (inline_merge_summary): Merge fp_expressions.
16747 (inline_read_section): Read fp_expressions.
16748 (inline_write_summary): Write fp_expressions.
16749 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
16750 codegen boundary if either caller or callee is !fp_expressions.
16751 * ipa-inline.h (inline_summary): Add fp_expressions.
16752 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
16753 to fp_expressions be sure the fp generation flags are updated.
16754
16755 2016-05-02 Jakub Jelinek <jakub@redhat.com>
16756
16757 PR rtl-optimization/70467
16758 * cse.c (cse_insn): Handle no-op MEM moves after folding.
16759
16760 PR rtl-optimization/70467
16761 * ipa-pure-const.c (check_call): Handle internal calls even in
16762 ipa mode like in local mode.
16763
16764 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
16765
16766 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
16767
16768 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
16769
16770 * match.pd (X u< X, X u> X): New transformations.
16771
16772 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
16773
16774 * flag-types.h (enum warn_strict_overflow_code): Move ...
16775 * coretypes.h: ... here.
16776 * fold-const.h (fold_overflow_warning): Declare.
16777 * fold-const.c (fold_overflow_warning): Make non-static.
16778 (fold_comparison): Move the transformation of X +- C1 CMP C2
16779 into X CMP C2 -+ C1 ...
16780 * match.pd: ... here.
16781 * gimple-fold.c (fold_stmt_1): Protect with
16782 fold_defer_overflow_warnings.
16783
16784 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
16785
16786 * omp-low.c (struct oacc_loop): Add 'inner' field.
16787 (new_oacc_loop_raw): Initialize it to zero.
16788 (oacc_loop_fixed_partitions): Initialize it.
16789 (oacc_loop_auto_partitions): Partition outermost loop to outermost
16790 available partitioning.
16791
16792 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16793
16794 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
16795 register_operand.
16796 (umulsidi3): Likewise.
16797 (indirect_jump): Fix jump instruction assembly patterns.
16798
16799 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
16800
16801 PR target/70860
16802 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
16803 (nvptx_function_value): Assert non-NULL cfun.
16804
16805 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
16806
16807 PR rtl-optimization/70886
16808 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
16809
16810 * cselib.h (rtx_equal_for_cselib_1): Declare.
16811 (rtx_equal_for_cselib_p: New inline function.
16812 * cselib.c (rtx_equal_for_cselib_p): Delete.
16813 (rtx_equal_for_cselib_1): Make public.
16814
16815 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
16816
16817 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
16818 (register_mixssei387nonimm_operand): Remove predicate.
16819 * config/i386/i386.md (*fop_<mode>_comm): Merge from
16820 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
16821 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
16822 for TARGET_MIX_SSE_I387 alternatives.
16823 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
16824 Disable unsupported alternatives using "enabled" attribute. Use
16825 nonimm_ssenomem_operand as operand 1 predicate. Also check
16826 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
16827
16828 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16829
16830 * tree.c (cst_and_fits_in_hwi): Simplify.
16831
16832 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16833
16834 * tree.h (wi::to_wide): New function.
16835 * expr.c (expand_expr_real_1): Use wi::to_wide.
16836 * fold-const.c (int_const_binop_1): Likewise.
16837 (extract_muldiv_1): Likewise.
16838
16839 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16840
16841 * wide-int.h: Update offset_int and widest_int documentation.
16842 (WI_SIGNED_SHIFT_RESULT): New macro.
16843 (wi::binary_shift): Define signed_shift_result_type for
16844 shifts on offset_int- and widest_int-like types.
16845 (generic_wide_int): Support <<= and >>= if << and >> are supported.
16846 * tree.h (int_bit_position): Use shift operators instead of wi::
16847 shifts.
16848 * alias.c (adjust_offset_for_component_ref): Likewise.
16849 * expr.c (get_inner_reference): Likewise.
16850 * fold-const.c (fold_comparison): Likewise.
16851 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
16852 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
16853 * tree-dfa.c (get_ref_base_and_extent): Likewise.
16854 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
16855 (stmt_kills_ref_p): Likewise.
16856 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
16857 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
16858 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
16859 (ao_ref_init_from_vn_reference): Likewise.
16860
16861 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16862
16863 * wide-int.h: Update offset_int and widest_int documentation.
16864 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
16865 (wi::binary_traits): Allow ordered comparisons between offset_int and
16866 offset_int, between widest_int and widest_int, and between either
16867 of these types and basic C types.
16868 (operator <, <=, >, >=): Define for the same combinations.
16869 * tree.h (tree_int_cst_lt): Use comparison operators instead
16870 of wi:: comparisons.
16871 (tree_int_cst_le): Likewise.
16872 * gimple-fold.c (fold_array_ctor_reference): Likewise.
16873 (fold_nonarray_ctor_reference): Likewise.
16874 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
16875 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
16876 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
16877 * tree-sra.c (completely_scalarize): Likewise.
16878 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
16879 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
16880 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
16881 (check_for_binary_op_overflow): Likewise.
16882 (search_for_addr_array): Likewise.
16883 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
16884
16885 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16886
16887 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
16888 (arc_save_restore): Likewise.
16889 (arc_dwarf_register_span): Likewise.
16890 (arc_output_pic_addr_const): Initialize suffix variable.
16891
16892 2016-05-02 Martin Liska <mliska@suse.cz>
16893
16894 * symbol-summary.h (function_summary::function_summary):
16895 Remove checking assert for all cgraph nodes.
16896 (function_summary::get): Check summary_uid.
16897 (symtab_insertion): Check summary_uid.
16898
16899 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16900
16901 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
16902 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
16903 bmaskn instruction.
16904 (arc_dwarf_register_span): Remove enum keyword.
16905 (compact_memory_operand_p): New function.
16906 * config/arc/arc.h (reg_class): Add code density register classes.
16907 (REG_CLASS_NAMES): Likewise.
16908 (REG_CLASS_CONTENTS): Likewise.
16909 * config/arc/arc.md (*movqi_insn): Add code density instructions.
16910 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
16911 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
16912 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
16913 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
16914 constraints.
16915 (h, Rcd, Rsd, Rzd): New register constraints.
16916 (T): Use compact_memory_operand_p function.
16917 * config/arc/predicates.md (compact_load_memory_operand): Remove.
16918
16919 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
16920
16921 * config/sh/sh.md (*negnegt, *movtt): Remove.
16922
16923 2016-05-02 Marek Polacek <polacek@redhat.com>
16924 Tom de Vries <tom@codesourcery.com>
16925
16926 PR tree-optimization/70700
16927 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
16928 bigger than FIRST_REF_NODE.
16929
16930 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
16931
16932 PR target/52898
16933 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
16934 TARGET_CMPEQDI_T.
16935 (prepare_cbranch_operands): Don't use scratch register. Assume that
16936 function is used when pseudos can be created.
16937 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
16938 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
16939 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
16940 define_expand. Allow it only when pseudos can be created.
16941 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
16942
16943 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
16944
16945 * config/i386/constraints.md (BC): Only allow -1 operands.
16946 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
16947 Add "enabled" attribute. Update XI mode attribute calculation.
16948 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
16949 (*movoi_internal_avx): Update XI mode attribute calculation.
16950 (*movti_internal): Ditto.
16951
16952 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16953
16954 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
16955 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
16956
16957 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
16958
16959 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
16960 statement on instruction code. Remove trailing spaces.
16961 (altivec_expand_stv_builtin): Likewise.
16962
16963 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16964
16965 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
16966 (TARGET_FPU_DOUBLE): Simplify.
16967 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
16968 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
16969 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
16970 with 'TARGET_FPU_DOUBLE'.
16971 * config/sh/sh.md: Likewise.
16972
16973 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
16974
16975 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
16976 SH_DIV_STR_FOR_SIZE): Remove.
16977 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
16978 SH_DIV_STR_FOR_SIZE): Remove.
16979
16980 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16981
16982 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
16983 logical_reg_operand): Delete.
16984 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
16985 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
16986 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
16987 match_operand and match_test.
16988 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
16989 variables on their first use. Return bool values.
16990 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
16991 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
16992 arith_reg_operand for input operand. Remove empty constraints.
16993 (xorsi3): Delete.
16994 (*xorsi3_compact): Rename to xorsi3.
16995 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
16996 (*zero_extend<mode>si2_disp_mem): Update comment.
16997 (mov_nop): Delete.
16998
16999 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
17000
17001 * config/sh/t-sh: Remove SH5 support.
17002 * config.gcc: Likewise.
17003 * configure: Likewise.
17004
17005 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17006
17007 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
17008
17009 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
17010
17011 * config/sh/sh.c (register_sh_passes, sh_option_override,
17012 sh_print_operand, prepare_move_operands,
17013 sh_can_follow_jump): Remove TARGET_SH1 checks.
17014 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
17015 PROMOTE_MODE): Likewise.
17016 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
17017 movdi): Likewise.
17018
17019 2016-04-30 Alan Modra <amodra@gmail.com>
17020
17021 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
17022 restoring when fixed_reg_p, but allow out-of-line or stmw save.
17023 Check for user regs later to avoid unnecessary looping over regs.
17024 Merge user reg check with non-saved reg check. Don't force
17025 inline VR restore when static chain used.
17026 (rs6000_frame_related): Omit eh_frame info for user regs when
17027 saving.
17028 (fixed_regs_p): Delete.
17029
17030 2016-04-30 Alan Modra <amodra@gmail.com>
17031
17032 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
17033 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
17034 Update all uses.
17035
17036 2016-04-30 Alan Modra <amodra@gmail.com>
17037
17038 PR target/69645
17039 * config/rs6000/rs6000.c (fixed_reg_p): New function.
17040 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
17041 Update all uses.
17042
17043 2016-04-30 Alan Modra <amodra@gmail.com>
17044
17045 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
17046 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
17047 flag_pic test for Darwin.
17048
17049 2016-04-30 Alan Modra <amodra@gmail.com>
17050
17051 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
17052 throw_calls_crossed.
17053 (REG_FREQ_CALLS_CROSSED): Delete.
17054 (REG_N_THROWING_CALLS_CROSSED): Delete.
17055 * regstat.c (regstat_bb_compute_ri): Don't calculate
17056 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
17057 (dump_reg_info): Don't print call cross frequency.
17058 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
17059 and REG_N_THROWING_CALLS_CROSSED.
17060
17061 2016-04-30 Alan Modra <amodra@gmail.com>
17062
17063 * regs.h (struct reg_info_t): Delete live_length.
17064 (REG_LIVE_LENGTH): Delete macro.
17065 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
17066 local_live, local_processed and local_live_last_luid params.
17067 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
17068 Formatting fixes.
17069 (regstat_compute_ri): Adjust for above. Don't set
17070 REG_LIVE_LENGTH.
17071 (dump_reg_info): Don't print live length.
17072 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
17073 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
17074 Localize loop_depth var.
17075
17076 2016-04-30 Alan Modra <amodra@gmail.com>
17077
17078 * ira.c (enum valid_equiv): New.
17079 (validate_equiv_mem): Return enum.
17080 (update_equiv_mem): Create replacement in more cases.
17081 (add_store_equivs): Update validate_equiv_mem call.
17082
17083 2016-04-30 Alan Modra <amodra@gmail.com>
17084
17085 * ira.c (combine_and_move_insns): Rather than scanning insns,
17086 use DF infrastucture to find use and def insns.
17087
17088 2016-04-30 Alan Modra <amodra@gmail.com>
17089
17090 ira.c (combine_and_move_insns): Move invariant conditions..
17091 (ira.c): ..to here. Call combine_and_move_insns before
17092 add_store_equivs. Call grow_reg_equivs later. Allocate
17093 req_equiv later using max_reg_num() rather than global max_regno.
17094 (contains_replace_regs): Delete.
17095 (add_store_equivs): Remove contains_replace_regs test.
17096
17097 2016-04-30 Alan Modra <amodra@gmail.com>
17098
17099 * ira.c (struct equiv_mem_data): New.
17100 (equiv_mem, equiv_mem_modified): Delete static vars.
17101 (validate_equiv_mem_from_store): Use "data" param to communicate..
17102 (validate_equiv_mem): ..from here.
17103
17104 2016-04-30 Alan Modra <amodra@gmail.com>
17105
17106 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
17107 split out from..
17108 (update_reg_equivs): ..here. Move allocation and freeing of
17109 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
17110 end_alias_analysis to..
17111 (ira): ..here.
17112
17113 2016-04-30 Alan Modra <amodra@gmail.com>
17114
17115 * ira.c (pdx_subregs): Delete.
17116 (struct equivalence): Add pdx_subregs field.
17117 (set_paradoxical_subreg): Remove pdx_subregs param. Update
17118 pdx_subregs access.
17119 (update_equiv_regs): Don't create or free pdx_subregs. Update
17120 pdx_subregs access.
17121
17122 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17123
17124 * config/rs6000/altivec.h: Change definitions of vec_xl and
17125 vec_xst.
17126 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
17127 (LD_ELEMREV_V2DI): New.
17128 (LD_ELEMREV_V4SF): New.
17129 (LD_ELEMREV_V4SI): New.
17130 (LD_ELEMREV_V8HI): New.
17131 (LD_ELEMREV_V16QI): New.
17132 (ST_ELEMREV_V2DF): New.
17133 (ST_ELEMREV_V2DI): New.
17134 (ST_ELEMREV_V4SF): New.
17135 (ST_ELEMREV_V4SI): New.
17136 (ST_ELEMREV_V8HI): New.
17137 (ST_ELEMREV_V16QI): New.
17138 (XL): New.
17139 (XST): New.
17140 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17141 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
17142 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
17143 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
17144 (altivec_expand_builtin): Add handling for
17145 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
17146 (rs6000_invalid_builtin): Add error-checking for
17147 RS6000_BTM_P9_VECTOR.
17148 (altivec_init_builtins): Define builtins used to implement vec_xl
17149 and vec_xst.
17150 (rs6000_builtin_mask_names): Define power9-vector.
17151 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
17152 (RS6000_BTM_P9_VECTOR): Define.
17153 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
17154 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
17155 (vsx_ld_elemrev_v2df): Likewise.
17156 (vsx_ld_elemrev_v4sf): Likewise.
17157 (vsx_ld_elemrev_v4si): Likewise.
17158 (vsx_ld_elemrev_v8hi): Likewise.
17159 (vsx_ld_elemrev_v16qi): Likewise.
17160 (vsx_st_elemrev_v2df): Likewise.
17161 (vsx_st_elemrev_v2di): Likewise.
17162 (vsx_st_elemrev_v4sf): Likewise.
17163 (vsx_st_elemrev_v4si): Likewise.
17164 (vsx_st_elemrev_v8hi): Likewise.
17165 (vsx_st_elemrev_v16qi): Likewise.
17166 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
17167 grammar.
17168
17169 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
17170
17171 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
17172 out into ...
17173 (simplify_control_stmt_condition_1): ... here. Recurse into
17174 BIT_AND_EXPRs and BIT_IOR_EXPRs.
17175
17176 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
17177
17178 PR target/69810
17179 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
17180 (zero_extendqi<mode>2_dot): Revert earlier conversion from
17181 define_insn_and_split to define_insn.
17182 (zero_extendqi<mode>2_dot2): Same.
17183 (extendqi<mode>2_dot): Same.
17184 (extendqi<mode>2_dot2): Same.
17185
17186 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
17187
17188 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
17189 (probe_stack): New expander.
17190 (probe_stack_<mode>): New insn pattern.
17191
17192 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
17193
17194 * config/i386/i386.md
17195 (operations with memory inputs setting flags peephole2):
17196 Remove uneeded REG_P checks. Cleanup pattern generation.
17197
17198 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
17199
17200 * tree-vect-loop.c (vect_transform_loop): Fix
17201 nb_iterations_upper_bound computation for vectorized loop.
17202
17203 2016-04-29 Marek Polacek <polacek@redhat.com>
17204 Jakub Jelinek <jakub@redhat.com>
17205
17206 PR sanitizer/70342
17207 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
17208 TARGET_EXPR_SLOT as a base.
17209
17210 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
17211
17212 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
17213 with 'rCm2' constraints to limit possible immediate size.
17214 (*load_zeroextendqisi_update): Likewise.
17215 (*load_signextendqisi_update): Likewise.
17216 (*loadhi_update): Likewise.
17217 (*load_zeroextendhisi_update): Likewise.
17218 (*load_signextendhisi_update): Likewise.
17219 (*loadsi_update): Likewise.
17220 (*loadsf_update): Likewise.
17221
17222 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
17223
17224 * config/i386/predicates.md (constm1_operand): Fix comparison.
17225
17226 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
17227
17228 * testsuite/gcc.target/arc/ieee_eq.c: New test.
17229
17230 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
17231
17232 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
17233 remaining SH5 related settings.
17234 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
17235 shmedia_prepare_call_address): Delete.
17236 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
17237 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
17238 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
17239 UNSUPPORTED_SH2A): Remove m5 checks.
17240 (sh_divide_strategy_e): Remove SH5 division strategies.
17241 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
17242 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
17243
17244 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
17245
17246 * config/s390/s390.c (s390_rtx_costs): Update documentation.
17247
17248 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17249
17250 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
17251 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
17252 Change lder to ldr.
17253 * config/s390/vector.md ("mov<mode>"): Likewise.
17254
17255 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
17256
17257 * config/s390/constraints.md ("U", "W"): Invoke
17258 s390_mem_constraint with "ZR" and "ZT".
17259 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
17260 addresses when using LRA. Accept also short displacements for S
17261 and T constraints. Do not check for long displacement target for
17262 S and T constraints.
17263 (s390_mem_constraint): Remove handling of U and W constraints.
17264 * config/s390/s390.md (various patterns): Remove the short
17265 displacement constraints (Q and R) if a long displacement
17266 constraint is present. Add longdisp as required CPU capability.
17267 * config/s390/vector.md: Likewise.
17268 * config/s390/vx-builtins.md: Likewise.
17269
17270 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
17271
17272 PR target/60040
17273 * reload1.c (reload): Call finish_spills before
17274 restarting reload loop. Skip select_reload_regs
17275 if update_eliminables_and_spill returns true.
17276
17277 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
17278
17279 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
17280 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
17281 (umulhisi3_imm): Update predicates and constraint letters.
17282 (umulhisi3_reg): Declare instruction as commutative.
17283 * config/arc/constraints.md (J12, J16): New constraints.
17284 * config/arc/predicates.md (short_unsigned_const_operand): New
17285 predicate.
17286 (arc_short_operand): Likewise.
17287 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
17288
17289 2016-04-29 Richard Biener <rguenther@suse.de>
17290
17291 PR tree-optimization/13962
17292 PR tree-optimization/65686
17293 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
17294 * tree-ssa-alias.c (ptrs_compare_unequal): New function
17295 using PTA to compare pointers.
17296 * match.pd: Add pattern for pointer equality compare simplification
17297 using ptrs_compare_unequal.
17298
17299 2016-04-29 Richard Biener <rguenther@suse.de>
17300
17301 * stor-layout.c (layout_type): Do not build a pointer-to-element
17302 type for arrays.
17303
17304 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
17305
17306 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
17307 Use SWI mode iterator. Use general_reg_operand predicate.
17308 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
17309 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
17310 predicates.
17311
17312 2016-04-29 Jakub Jelinek <jakub@redhat.com>
17313
17314 PR middle-end/70843
17315 * fold-const.c (operand_equal_p): Don't verify hash value equality
17316 if arg0 == arg1.
17317 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
17318 and OMP_CLAUSE.
17319
17320 2016-04-28 Jakub Jelinek <jakub@redhat.com>
17321
17322 PR target/70858
17323 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
17324 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
17325 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
17326 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
17327 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
17328
17329 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
17330
17331 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
17332 to info. Don't initialize separate fields to 0. Clean up
17333 formatting a bit.
17334
17335 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
17336
17337 * config/i386/i386.md (peephole2s for operations with memory inputs):
17338 Use SWI mode iterator.
17339 (peephole2s for operations with memory outputs): Ditto.
17340 Do not check for stack checking probe.
17341
17342 (probe_stack): Remove expander.
17343
17344 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
17345 Andrew Burgess <andrew.burgess@embecosm.com>
17346
17347 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
17348 operands as 32-bits.
17349
17350 2016-04-28 Jason Merrill <jason@redhat.com>
17351
17352 * gdbinit.in: Skip line-map.h.
17353
17354 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
17355 Andrew Burgess <andrew.burgess@embecosm.com>
17356
17357 * config/arc/arc.c (arc_conditional_register_usage): Take
17358 TARGET_RRQ_CLASS into account.
17359 (arc_print_operand): Support printing 'p' and 's' operands.
17360 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
17361 as 0.
17362 (TARGET_RRQ_CLASS): Define.
17363 (IS_POWEROF2_OR_0_P): Define.
17364 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
17365 alternatives.
17366 (*tst_movb): New define_insn.
17367 (*tst): Avoid recognition if it could prevent '*tst_movb'
17368 combination; replace c/CnL with c/Chs alternative.
17369 (*tst_bitfield_tst): New define_insn.
17370 (*tst_bitfield_asr): New define_insn.
17371 (*tst_bitfield): New define_insn.
17372 (andsi3_i): Add Rrq variant.
17373 (extzv): New define_expand.
17374 (insv): New define_expand.
17375 (*insv_i): New define_insn.
17376 (*movb): New define_insn.
17377 (*movb_signed): New define_insn.
17378 (*movb_high): New define_insn.
17379 (*movb_high_signed): New define_insn.
17380 (*movb_high_signed + 1): New define_split pattern.
17381 (*mrgb): New define_insn.
17382 (*mrgb + 1): New define_peephole2 pattern.
17383 (*mrgb + 2): New define_peephole2 pattern.
17384 * config/arc/arc.opt (mbitops): New option for nps400, uses
17385 TARGET_NPS_BITOPS_DEFAULT.
17386 * config/arc/constraints.md (q): Make register class conditional.
17387 (Rrq): New register constraint.
17388 (Chs): New constraint.
17389 (Clo): New constraint.
17390 (Chi): New constraint.
17391 (Cbf): New constraint.
17392 (Cbn): New constraint.
17393 (C18): New constraint.
17394 (Cbi): New constraint.
17395
17396 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
17397
17398 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
17399 dst->popcount.
17400 (bitmap_intersection_of_preds): Ditto.
17401 (bitmap_union_of_succs): Ditto.
17402 (bitmap_union_of_preds): Ditto.
17403 * sbitmap.c (do_popcount): Delete.
17404 (BITMAP_DEBUGGING): Delete.
17405 (sbitmap_verify_popcount): Delete.
17406 (sbitmap_alloc): Don't initialize the popcount field.
17407 (sbitmap_alloc_with_popcount): Delete.
17408 (sbitmap_resize): Don't resize the popcount array.
17409 (sbitmap_vector_alloc): Don't initialize the popcount field.
17410 (bitmap_copy): Don't copy the popcount array.
17411 (bitmap_clear): Don't clear the popcount array.
17412 (bitmap_clear): Delete the popcount array handling.
17413 (bitmap_ior_and_compl): Delete the popcount assert.
17414 (bitmap_not): Ditto.
17415 (bitmap_and_compl): Ditto.
17416 (bitmap_and): Delete the popcount array handling.
17417 (bitmap_xor): Ditto.
17418 (bitmap_ior): Ditto.
17419 (bitmap_or_and): Delete the popcount assert.
17420 (bitmap_and_or): Ditto.
17421 (popcount_table): Delete.
17422 (sbitmap_elt_popcount): Delete.
17423 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
17424 (bitmap_set_bit): Delete the popcount assert.
17425 (bitmap_clear_bit): Ditto.
17426 (sbitmap_free): Don't free the popcount array.
17427 (sbitmap_alloc_with_popcount): Delete declaration.
17428 (sbitmap_popcount): Ditto.
17429
17430 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
17431 Andrew Burgess <andrew.burgess@embecosm.com>
17432
17433 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
17434 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
17435 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
17436 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
17437 * config/arc/arc.opt (mcmem): New option.
17438 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
17439 supply length for r/m alternative.
17440 (*extendqisi2_ac): Likewise.
17441 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
17442 r/Uex alternative.
17443 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
17444 (movhi_insn): Likewise.
17445 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
17446 (*zero_extendqihi2_i): Add r/Ucm alternative.
17447 (*zero_extendqisi2_ac): Likewise.
17448 (*zero_extendhisi2_i): Likewise.
17449 * config/arc/constraints.md (Uex): New memory constraint.
17450 (Ucm): New define_constraint.
17451 * config/arc/predicates.md (long_immediate_loadstore_operand):
17452 Return 0 for MEM with cmem_address address.
17453 (cmem_address_0): New predicates.
17454 (cmem_address_1): Likewise.
17455 (cmem_address_2): Likewise.
17456 (cmem_address): Likewise.
17457
17458 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
17459
17460 * config/rs6000/rs6000.c (machine_function): Rename
17461 insn_chain_scanned_p to spe_insn_chain_scanned_p.
17462 (rs6000_stack_info): Adjust.
17463
17464 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
17465 Andrew Burgess <andrew.burgess@embecosm.com>
17466
17467 * config/arc/constraints.md (Usd): Convert to define_constraint.
17468 (Us<): Likewise.
17469 (Us>): Likewise.
17470
17471 2016-04-28 Jakub Jelinek <jakub@redhat.com>
17472
17473 PR target/70821
17474 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
17475 Add new peephole2 where the first insn is *mov<mode>_or instead of
17476 *mov<mode>_internal.
17477
17478 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
17479
17480 * tracer.c (bb_seen): Make static.
17481
17482 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
17483
17484 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
17485 support, setup defaults.
17486 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
17487 * config/arc/arc.c (arc_init): Add NPS400 support.
17488 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
17489 (TARGET_ARC700): NPS400 is also an ARC700.
17490 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
17491
17492 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
17493
17494 PR target/70668
17495 * config/nds32/nds32.md (casesi): Don't access the operands array
17496 out of bounds.
17497
17498 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
17499
17500 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
17501 (or $-1,reg peephole2): Ditto.
17502 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
17503
17504 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
17505
17506 * doc/extend.texi (Common Function Attributes) [optimize]:
17507 Discourage use of the optimize attribute.
17508
17509 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
17510
17511 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
17512 special case builtin.
17513 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
17514 ALTIVEC_BUILTIN_VEC_ADDE.
17515 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
17516 support for ALTIVEC_BUILTIN_VEC_ADDE.
17517 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
17518 for __builtin_vec_adde.
17519
17520 2016-04-28 Jakub Jelinek <jakub@redhat.com>
17521
17522 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
17523 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
17524
17525 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17526
17527 PR testsuite/70595
17528 * doc/sourcebuild.texi (Effective-Target Keywords, Other
17529 attributes): Document cilkplus_runtime.
17530
17531 2016-04-28 Martin Jambor <mjambor@suse.cz>
17532
17533 * tree-cfg.c (verify_expr): Verify that local declarations belong to
17534 this function. Call verify_expr on MEM_REFs and bases of other
17535 handled_components.
17536
17537 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17538
17539 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
17540 for WORD_REGISTER_OPERATIONS to runtime check.
17541
17542 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17543
17544 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
17545
17546 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17547
17548 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
17549 big-endian compilation.
17550 * config/arc/arc.md (addf3): Likewise.
17551 (subdf3): Likewise.
17552 (muldf3): Likewise.
17553
17554 2016-04-28 Richard Biener <rguenther@suse.de>
17555
17556 PR tree-optimization/70840
17557 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
17558 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
17559 Mark x * pow(x,c) -> pow(x,c+1) commutative.
17560 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
17561
17562 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17563
17564 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
17565 and explain why in a comment.
17566
17567 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17568
17569 * config/arc/arc.md (cpu_facility): Add fpx variant.
17570 (subdf3): Prohibit use reverse sub when assist operations option
17571 is enabled.
17572 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
17573 instructions only when FPX is enabled.
17574 * testsuite/gcc.target/arc/trsub.c: New test.
17575
17576 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
17577
17578 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
17579 mult_operator when calculating "type" attribute.
17580 (*fop_<mode>_1_i387): Ditto.
17581 (*fop_xf_1_i387): Ditto.
17582 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
17583 Use std::swap to swap operands. Use RTL expressions to generate
17584 converted pattern.
17585
17586 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17587 Joern Rennecke <joern.rennecke@embecosm.com>
17588
17589 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
17590 declaration.
17591 (emit_pic_move): Remove.
17592 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
17593 * config/arc/arc.c (emit_pic_move): Removed.
17594 (TARGET_HAVE_TLS): Define.
17595 (arc_conditional_register_usage): Test for arc_tp_regno.
17596 (arc_print_operand, arc_print_operand_address): Handle TLS
17597 unspecs.
17598 (arc_needs_pcl_p): New function.
17599 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
17600 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
17601 (arc_raw_symbolic_reference_mentioned_p): Likewise.
17602 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
17603 (arc_legitimize_tls_address): Likewise.
17604 (DTPOFF_ZERO_SYM): Define.
17605 (arc_legitimize_pic_address): Make it static, handle TLS cases.
17606 (arc_output_pic_addr_const): Print TLS unspecs.
17607 (prepare_pic_move): New function, replaces emit_pic_move.
17608 (arc_legitimate_constant_p): Handle TLS unspecs.
17609 (arc_legitimate_address_p): Likewise.
17610 (arc_rewrite_small_data_p): Use assert for TLS constants.
17611 (prepare_move_operands): Use prepare_pic_move.
17612 (arc_legitimize_address): Legitimize tls addresses.
17613 (arc_epilogue_uses): Check for arc_tp_regno.
17614 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
17615 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
17616 Define.
17617 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
17618 Likewise.
17619 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
17620 %(arc_tls_extra_start_spec).
17621 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
17622 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
17623 (EH_USES): Define.
17624 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
17625 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
17626 (UNSPEC_TLS_OFF): Add.
17627 (R10_REG): Define.
17628 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
17629 (get_thread_pointersi): New patterns.
17630 * config/arc/arc.opt (mtp-regno): New option.
17631 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
17632 (move_dest_operand): Likewise.
17633 * configure: Regenerate.
17634 * configure.ac: Add arc*-*-* case to test for tls.
17635 * doc/invoke.texi (ARC options): Document mtp-regno.
17636
17637 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17638
17639 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
17640 the new ARC HS SIMD instructions.
17641 (arc_preferred_simd_mode): New function.
17642 (arc_autovectorize_vector_sizes): Likewise.
17643 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
17644 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17645 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
17646 (arc_init_builtins): Add new SIMD builtin types.
17647 (arc_split_move): Handle 64 bit vector moves.
17648 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
17649 (TARGET_PLUS_QMACW): Define.
17650 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
17651 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
17652 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
17653 (VSUBADD4H): New builtins.
17654 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
17655 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
17656
17657 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
17658 Matthias Klose <doko@debian.org>
17659
17660 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
17661
17662 2016-04-28 Richard Biener <rguenther@suse.de>
17663
17664 PR middle-end/70777
17665 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
17666 canonicalization.
17667
17668 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
17669
17670 * common/config/sh/sh-common.c: Remove SH5 support.
17671 * config/sh/constraints.md: Likewise.
17672 * config/sh/config/sh/elf.h: Likewise.
17673 * config/sh/linux.h: Likewise.
17674 * config/sh/netbsd-elf.h: Likewise.
17675 * config/sh/predicates.md: Likewise.
17676 * config/sh/sh-c.c: Likewise.
17677 * config/sh/sh-protos.h: Likewise.
17678 * config/sh/sh.c: Likewise.
17679 * config/sh/sh.h: Likewise.
17680 * config/sh/sh.md: Likewise.
17681 * config/sh/sh.opt: Likewise.
17682 * config/sh/sync.md: Likewise.
17683 * config/sh/sh64.h: Delete.
17684 * config/sh/shmedia.h: Likewise.
17685 * config/sh/shmedia.md: Likewise.
17686 * config/sh/sshmedia.h: Likewise.
17687 * config/sh/t-netbsd-sh5-64: Likewise.
17688 * config/sh/t-sh64: Likewise.
17689 * config/sh/ushmedia.h: Likewise.
17690
17691 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
17692
17693 * config/i386/i386.md (sign_extend to memory peephole2s): Use
17694 general_reg_operand instead of register_operand predicate.
17695
17696 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17697
17698 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
17699
17700 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
17701
17702 * match.pd (A - B > A, A + B < A): New transformations.
17703
17704 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
17705
17706 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
17707 which defaults to true. Emit an outer pair of parentheses only if
17708 EMIT_PARENS. When continuing a chain of && or || (or & or |),
17709 don't emit parentheses for the right-hand operand.
17710
17711 2016-04-27 Jeff Law <law@redhat.com>
17712
17713 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
17714
17715 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17716
17717 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
17718 (altivec_lvx_<mode>_internal): Document.
17719 (altivec_lvx_<mode>_2op): New define_insn.
17720 (altivec_lvx_<mode>_1op): Likewise.
17721 (altivec_lvx_<mode>_2op_si): Likewise.
17722 (altivec_lvx_<mode>_1op_si): Likewise.
17723 (altivec_stvx_<mode>): Remove.
17724 (altivec_stvx_<mode>_internal): Document.
17725 (altivec_stvx_<mode>_2op): New define_insn.
17726 (altivec_stvx_<mode>_1op): Likewise.
17727 (altivec_stvx_<mode>_2op_si): Likewise.
17728 (altivec_stvx_<mode>_1op_si): Likewise.
17729 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17730 Expand vec_ld and vec_st during parsing.
17731 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
17732 changes.
17733 (altivec_expand_stvx_be): Likewise.
17734 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
17735 address-masking behavior in RTL.
17736 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
17737 address-masking behavior in RTL.
17738 (altivec_expand_builtin): Change builtin code arguments for calls
17739 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
17740 (insn_is_swappable_p): Avoid incorrect swap optimization in the
17741 presence of lvx/stvx patterns.
17742 (alignment_with_canonical_addr): New function.
17743 (alignment_mask): Likewise.
17744 (find_alignment_op): Likewise.
17745 (recombine_lvx_pattern): Likewise.
17746 (recombine_stvx_pattern): Likewise.
17747 (recombine_lvx_stvx_patterns): Likewise.
17748 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
17749 stvx patterns from expand.
17750 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
17751 expansions.
17752 (vector_altivec_store_<mode>): Likewise.
17753
17754 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
17755
17756 * config/aarch64/aarch64.md
17757 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
17758 remove the "fp" attributes.
17759 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
17760 add the "simd" attributes.
17761 (*movdf_aarch64): Likewise.
17762 (*movtf_aarch64): Remove the "fp" attributes.
17763 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
17764 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
17765
17766 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17767
17768 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
17769 rtx to rtx_code_label *.
17770 * rtl.h (maybe_set_first_label_num): Likewise.
17771
17772 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17773
17774 * df-core.c (df_add_problem): Make the problem param be const.
17775 (df_remove_problem): Make local "problem" be const.
17776 * df-problems.c (problem_RD): Make const.
17777 (problem_LR): Likewise.
17778 (problem_LIVE): Likewise.
17779 (problem_MIR): Likewise.
17780 (problem_CHAIN): Likewise.
17781 (problem_WORD_LR): Likewise.
17782 (problem_NOTE): Likewise.
17783 (problem_MD): Likewise.
17784 * df-scan.c (problem_SCAN): Likewise.
17785 * df.h (struct df_problem): Make field "dependent_problem" be
17786 const.
17787 (struct dataflow): Likewise for field "problem".
17788 (df_add_problem): Make param const.
17789
17790 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
17791
17792 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
17793 inter-unit moves to/from vector registers are enabled. Do not disable
17794 for TARGET_MMX.
17795
17796 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17797
17798 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
17799 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
17800 #define to...
17801 (enum df_problem_id): ...this new enum.
17802 (struct df_problem): Convert field "id" from "int" to
17803 enum df_problem_id.
17804
17805 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17806
17807 * rtl.def: Update comment for "things in the instruction chain" to
17808 reflect the removal of the leading "i" field for INSN_UID in
17809 r210360. Fix bogus apostrophe.
17810
17811 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
17812
17813 * config/i386/i386.md
17814 (lea arith with mem operand + setcc peephole2): Set operator mode.
17815
17816 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
17817
17818 PR target/70155
17819 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
17820 (dimode_scalar_to_vector_candidate_p): This.
17821 (timode_scalar_to_vector_candidate_p): New function.
17822 (scalar_to_vector_candidate_p): Likewise.
17823 (timode_check_non_convertible_regs): Likewise.
17824 (timode_remove_non_convertible_regs): Likewise.
17825 (remove_non_convertible_regs): Likewise.
17826 (remove_non_convertible_regs): Renamed to ...
17827 (dimode_remove_non_convertible_regs): This.
17828 (scalar_chain::~scalar_chain): Make it virtual.
17829 (scalar_chain::compute_convert_gain): Make it pure virtual.
17830 (scalar_chain::mark_dual_mode_def): Likewise.
17831 (scalar_chain::convert_insn): Likewise.
17832 (scalar_chain::convert_registers): Likewise.
17833 (scalar_chain::add_to_queue): Make it protected.
17834 (scalar_chain::emit_conversion_insns): Likewise.
17835 (scalar_chain::replace_with_subreg): Likewise.
17836 (scalar_chain::replace_with_subreg_in_insn): Likewise.
17837 (scalar_chain::convert_op): Likewise.
17838 (scalar_chain::convert_reg): Likewise.
17839 (scalar_chain::make_vector_copies): Likewise.
17840 (scalar_chain::convert_registers): New pure virtual function.
17841 (class dimode_scalar_chain): New class.
17842 (class timode_scalar_chain): Likewise.
17843 (scalar_chain::mark_dual_mode_def): Renamed to ...
17844 (dimode_scalar_chain::mark_dual_mode_def): This.
17845 (timode_scalar_chain::mark_dual_mode_def): New function.
17846 (timode_scalar_chain::convert_insn): Likewise.
17847 (dimode_scalar_chain::convert_registers): Likewise.
17848 (scalar_chain::compute_convert_gain): Renamed to ...
17849 (dimode_scalar_chain::compute_convert_gain): This.
17850 (scalar_chain::replace_with_subreg): Renamed to ...
17851 (dimode_scalar_chain::replace_with_subreg): This.
17852 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
17853 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
17854 (scalar_chain::make_vector_copies): Renamed to ...
17855 (dimode_scalar_chain::make_vector_copies): This.
17856 (scalar_chain::convert_reg): Renamed to ...
17857 (dimode_scalar_chain::convert_reg ): This.
17858 (scalar_chain::convert_op): Renamed to ...
17859 (dimode_scalar_chain::convert_op): This.
17860 (scalar_chain::convert_insn): Renamed to ...
17861 (dimode_scalar_chain::convert_insn): This.
17862 (scalar_chain::convert): Call convert_registers.
17863 (convert_scalars_to_vector): Change to scalar_chain pointer to
17864 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
17865 in 32-bit mode. Delete scalar_chain pointer. Call
17866 free_dominance_info in 64-bit mode.
17867 (pass_stv::gate): Remove TARGET_64BIT check.
17868 (ix86_option_override): Put the 64-bit STV pass before the CSE
17869 pass.
17870
17871 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
17872
17873 * dwarf2out.h (struct dw_loc_descr_node): Remove the
17874 dw_loc_frame_offset field.
17875 * dwarf2out.c (new_loc_descr): Likewise.
17876 (resolve_args_picking_1): Turn the VISITED hash set into a
17877 FRAME_OFFSET hash map. Use it to associate a frame offset to
17878 visited nodes. Remove uses of the CHECKING_P macro.
17879 (resolve_args_picking): Update call to resolve_args_picking_1.
17880
17881 2016-04-27 Martin Liska <mliska@suse.cz>
17882
17883 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
17884 (free_loop_data): Release vuses of groups.
17885
17886 2016-04-27 Bin Cheng <bin.cheng@arm.com>
17887
17888 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
17889 instead of redundant use_id and boolean have_use_for.
17890 (struct iv_use): Change sub_id into group_id. Remove field next.
17891 Move fields: related_cands, n_map_members, cost_map and selected
17892 to ...
17893 (struct iv_group): ... here. New structure.
17894 (struct iv_common_cand): Use structure declaration directly.
17895 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
17896 (MAX_CONSIDERED_USES): Rename macro to ...
17897 (MAX_CONSIDERED_GROUPS): ... here.
17898 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
17899 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
17900 (dump_uses): Rename to ...
17901 (dump_groups): ... here. Update all uses.
17902 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
17903 (find_induction_variables): Refactor format of dump information.
17904 (record_sub_use): Delete.
17905 (record_use): Update all uses.
17906 (record_group): New function.
17907 (record_group_use, find_interesting_uses_op): Call above functions.
17908 Update all uses.
17909 (find_interesting_uses_cond): Ditto.
17910 (group_compare_offset): New function.
17911 (split_all_small_groups): Rename to ...
17912 (split_small_address_groups_p): ... here. Update all uses.
17913 (split_address_groups): Update all uses.
17914 (find_interesting_uses): Refactor format of dump information.
17915 (add_candidate_1): Update all uses. Remove redundant check on iv,
17916 base and step.
17917 (add_candidate, record_common_cand): Remove redundant assert.
17918 (add_iv_candidate_for_biv): Update use.
17919 (add_iv_candidate_derived_from_uses): Update all uses.
17920 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
17921 (alloc_use_cost_map): Ditto.
17922 (set_use_iv_cost, get_use_iv_cost): Rename to ...
17923 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
17924 (determine_use_iv_cost_generic): Ditto.
17925 (determine_group_iv_cost_generic): Ditto.
17926 (determine_use_iv_cost_address): Ditto.
17927 (determine_group_iv_cost_address): Ditto.
17928 (determine_use_iv_cost_condition): Ditto.
17929 (determine_group_iv_cost_cond): Ditto.
17930 (determine_use_iv_cost): Ditto.
17931 (determine_group_iv_cost): Ditto.
17932 (set_autoinc_for_original_candidates): Update all uses.
17933 (find_iv_candidates): Update all uses. Refactor dump information.
17934 (determine_use_iv_costs): Ditto.
17935 (determine_iv_costs): Ditto.
17936 (iv_ca_cand_for_use): Rename to ...
17937 (iv_ca_cand_for_group): ... here. Update all uses.
17938 (iv_ca_add_use, iv_ca_add_group): Ditto.
17939 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
17940 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
17941 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
17942 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
17943 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
17944 (create_new_iv, adjust_iv_update_pos): Ditto.
17945 (rewrite_use_address): Delete.
17946 (rewrite_use_address_1): Rename to ...
17947 (rewrite_use_address): ... here.
17948 (rewrite_use_compare): Update all uses.
17949 (rewrite_use): Delete.
17950 (rewrite_uses): Rename to ...
17951 (rewrite_groups): ... here. Update all uses.
17952 (remove_unused_ivs, free_loop_data): Update all uses.
17953 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
17954
17955 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17956
17957 * rtlanal.c (nonzero_bits1): Convert preprocessor check
17958 for WORD_REGISTER_OPERATIONS to runtime check.
17959
17960 2016-04-27 Richard Biener <rguenther@suse.de>
17961
17962 PR ipa/70760
17963 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
17964 aggregate_value_p to determine if a function result is
17965 returned by reference.
17966 (ipa_pta_execute): Functions having their address taken are
17967 not automatically nonlocal.
17968
17969 2016-04-27 Jakub Jelinek <jakub@redhat.com>
17970
17971 PR sanitizer/70683
17972 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
17973 * fold-const.c (operand_equal_p): If flag_checking and
17974 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
17975 and if it returns non-zero, assert iterative_hash_expr on both
17976 args is the same.
17977
17978 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
17979
17980 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
17981
17982 2016-04-27 Nick Clifton <nickc@redhat.com>
17983
17984 PR middle-end/49889
17985 * varasm.c (merge_weak): Generate an error if an attempt is made
17986 to convert a non-weak static function into a weak, public function.
17987
17988 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17989
17990 * params.def (MAX_PARTITION_SIZE): New param.
17991 * doc/invoke.texi: Document lto-max-partition.
17992
17993 2016-04-27 Richard Biener <rguenther@suse.de>
17994
17995 PR ipa/70785
17996 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
17997 function cummulating used_from_other_partition, externally_visible
17998 and force_output from aliases.
17999 (refered_from_nonlocal_var): Likewise.
18000 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
18001 node flags properly.
18002
18003 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
18004
18005 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
18006 (-Wmemset-elt-size): New item.
18007
18008 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
18009
18010 PR ada/70759
18011 * stor-layout.h (internal_reference_types): Delete.
18012 * stor-layout.c (reference_types_internal): Likewise.
18013 (internal_reference_types): Likewise.
18014 (layout_type) <REFERENCE_TYPE>: Adjust.
18015
18016 2016-04-27 Jakub Jelinek <jakub@redhat.com>
18017
18018 PR sanitizer/70683
18019 * tree.h (inchash::add_expr): Add FLAGS argument.
18020 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
18021 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
18022 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
18023 Formatting fix. Adjust recursive calls. For tcc_comparison,
18024 if swap_tree_comparison (code) is smaller than code, hash that
18025 and arguments in the other order. Hash CONVERT_EXPR the same
18026 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
18027 of ADDR_EXPR of decl as the decl itself. Add or remove
18028 OEP_ADDRESS_OF from recursive flags as needed. For
18029 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
18030 operands commutatively and only the third one normally.
18031 For internal CALL_EXPR hash in CALL_EXPR_IFN.
18032
18033 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
18034
18035 * config/rtems.h (LIB_SPEC): Add -latomic.
18036
18037 2016-04-27 Joel Sherrill <joel@rtems.org>
18038
18039 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
18040 xilink.ld and flags not relevant to RTEMS.
18041
18042 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
18043
18044 * toplev.c (backend_init_target): Avoid calling init_reload when using
18045 LRA.
18046
18047 2016-04-26 Jakub Jelinek <jakub@redhat.com>
18048
18049 * reorg.c (try_merge_delay_insns): Declare i and j inside the
18050 for loops rather than one for the whole function.
18051
18052 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
18053
18054 * match.pd (X + CST CMP X): New transformation.
18055
18056 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
18057
18058 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
18059 * fold-const.c (fold_binary_loc): Remove 2 transformations
18060 superseded by match.pd.
18061 * match.pd (x+x -> x*2): Generalize to integers.
18062
18063 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
18064
18065 * config/i386/i386.md (operation on memory peephole): Duplicate an
18066 existing peephole and adapt it to match lea rather than an operation
18067 that clobbers CC.
18068
18069 PR rtl-optimization/57193
18070 * opts.c (default_options_table): Add OPT_frename_registers at -O2
18071 and above.
18072 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
18073
18074 2016-04-26 Bin Cheng <bin.cheng@arm.com>
18075
18076 * tree-if-conv.c (any_pred_load_store): New static variable.
18077 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
18078 any_pred_load_store instead of and_mask_load_store.
18079 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
18080 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
18081 (combine_blocks, tree_if_conversion): Ditto.
18082
18083 2016-04-26 Bin Cheng <bin.cheng@arm.com>
18084
18085 PR tree-optimization/70771
18086 PR tree-optimization/70775
18087 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
18088 virtual PHI nodes. Delete parameter.
18089 (if_convertible_loop_p_1): Delete argument to above function.
18090 (predicate_all_scalar_phis): Delete code handling single-argument
18091 PHIs.
18092 (tree_if_conversion): Mark and update virtual SSA.
18093
18094 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18095
18096 PR target/61821
18097 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
18098 (x86_elf_aligned_common): Rename to ...
18099 (x86_elf_aligned_decl_common): ... this.
18100 Add decl arg. Switch to .lbss for largecomm object. Use
18101 LARGECOMM_SECTION_ASM_OP.
18102 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
18103 renaming.
18104 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
18105 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
18106 Pass new decl arg.
18107 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
18108 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
18109
18110 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18111
18112 PR target/59407
18113 * config/i386/i386.c (SECTION_LARGE): Define.
18114 (x86_64_elf_select_section): Set it for large data/bss sections.
18115 Only clear SECTION_WRITE for .lrodata.
18116 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
18117 data/bss sections.
18118 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
18119 * varasm.c (default_elf_asm_named_section): Grow flagchars.
18120 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
18121 SECTION_MACH_DEP.
18122 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
18123 * doc/tm.texi: Regenerate.
18124
18125 2016-04-26 Jakub Jelinek <jakub@redhat.com>
18126
18127 PR bootstrap/70704
18128 * configure.ac (--enable-checking): Document extra flag, for
18129 non-release builds default to --enable-checking=yes,extra.
18130 If misc checking and extra checking, define CHECKING_P to 2 instead
18131 of 1.
18132 * common.opt (fchecking=): Add.
18133 * doc/invoke.texi (-fchecking=): Document.
18134 * doc/install.texi: Document --enable-checking changes.
18135 * configure: Regenerated.
18136 * config.in: Regenerated.
18137
18138 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
18139
18140 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
18141 attribute instead of which_alternative.
18142 * config/i386/sse.md (*mov<mode>_internal): Ditto.
18143 Use EXT_REX_SSE_REG_P where appropriate.
18144
18145 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
18146
18147 * config/i386/predicates.md (const0_operand): Do not match
18148 const_wide_int code.
18149 (const1_operand): Ditto.
18150
18151 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
18152
18153 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
18154 for SSE constm1 operands and TARGET_AVX512VL.
18155 (*movti_internal): Ditto.
18156 (*mov<mode>_or): Use constm1_operand predicate.
18157 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
18158 for SSE vector_all_ones operands and TARGET_AVX512VL.
18159 * config/i386/predicates.md (constm1_operand): New predicate.
18160 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
18161 emission of constant -1 load.
18162
18163 2016-04-25 Jason Merrill <jason@redhat.com>
18164
18165 * gdbinit.in: Skip is-a.h.
18166
18167 * attribs.c (register_scoped_attributes): Fix logic.
18168 * attribs.h: Declare register_scoped_attributes.
18169
18170 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18171
18172 * config/rs6000/rs6000-builtin.def: Correct pasto error for
18173 stxvd2x and stxvw4x built-in functions.
18174
18175 2016-04-25 DJ Delorie <dj@redhat.com>
18176
18177 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
18178 (ashrhi3): Likewise.
18179 (lshrhi3): Likewise.
18180
18181 2016-04-25 Richard Biener <rguenther@suse.de>
18182
18183 PR tree-optimization/70780
18184 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
18185 wasn't visited yet.
18186 (compute_antic): Mark blocks with abnormal preds as visited as
18187 they have a final empty antic-in solution already.
18188
18189 2016-04-25 Michael Collison <michael.collison@linaro.org>
18190
18191 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
18192
18193 2016-04-25 Michael Collison <michael.collison@linaro.org>
18194
18195 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
18196 mode is VQI to improve mixed mode vectorization.
18197 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
18198 define_insn to match low half of signed vaddw.
18199 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
18200 define_insn to match high half of signed vaddw.
18201 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
18202 define_insn to match low half of unsigned vaddw.
18203 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
18204 define_insn to match high half of unsigned vaddw.
18205 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
18206 (arm_simd_check_vect_par_cnst_half_p): Likewise.
18207 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
18208 for new function.
18209 (arm_simd_check_vect_par_cnst_half_p): Likewise.
18210 * config/arm/predicates.md (vect_par_constant_high): Support
18211 big endian and simplify by calling
18212 arm_simd_check_vect_par_cnst_half
18213 (vect_par_constant_low): Likewise.
18214
18215 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
18216
18217 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
18218 predicate for operand 2.
18219
18220 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
18221 H.J. Lu <hongjiu.lu@intel.com>
18222
18223 * config/i386/i386-protos.h (standard_sse_constant_p): Add
18224 machine_mode argument.
18225 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
18226 constm1_rtx operands. For VOIDmode constants, get mode from
18227 pred_mode. Check mode size if the mode is supported by ABI.
18228 (standard_sse_constant_opcode): Do not use standard_constant_p.
18229 Strictly check ABI support for all-ones operands.
18230 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
18231 immediates. Update calls to standard_sse_constant_p.
18232 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
18233 (ix86_rtx_costs): Ditto.
18234 * config/i386/i386.md (*movxi_internal_avx512f): Use
18235 nonimmediate_or_sse_const_operand instead of vector_move_operand.
18236 Use (v,BC) alternative instead of (v,C). Use register_operand
18237 checks instead of MEM_P.
18238 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
18239 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
18240 isa attribute. Use register_operand checks instead of MEM_P.
18241 (*movti_internal): Use nonimmediate_or_sse_const_operand for
18242 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
18243 alternative and corresponding sse2 isa attribute.
18244 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
18245 to standard_sse_constant_p.
18246 (FP constant splitters): Ditto.
18247 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
18248 (C): Ditto.
18249 * config/i386/predicates.md (constm1_operand): Remove.
18250 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
18251 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
18252 vector_all_ones_operand instead of constm1_operand.
18253
18254 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18255
18256 * print-rtl.c (print_rtx_insn_vec): New function.
18257 * print-rtl.h: New prototype.
18258 * store-motion.c (struct st_expr): Make avail_stores a vector.
18259 (st_expr_entry): Adjust.
18260 (free_st_expr_entry): Likewise.
18261 (print_store_motion_mems): Likewise.
18262 (find_moveable_store): Likewise.
18263 (compute_store_table): Likewise.
18264 (delete_store): Likewise.
18265 (build_store_vectors): Likewise.
18266
18267 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18268
18269 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
18270
18271 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18272
18273 * vec.h (vec_safe_contains): New function.
18274 (vec::contains): Likewise.
18275 (vec::begin): Likewise.
18276 (vec::end): Likewise.
18277
18278 2016-04-23 Jakub Jelinek <jakub@redhat.com>
18279
18280 PR sanitizer/70712
18281 * cfgexpand.c (expand_stack_vars): Fix typo.
18282
18283 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
18284
18285 * system.h (list, map, set, vector): Include conditionally.
18286 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
18287 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
18288 * ipa-icf.c (INCLUDE_LIST): Define.
18289 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
18290 * config/sh/sh.c (INCLUDE_VECTOR): Define.
18291 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
18292 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
18293 * cp/logic.cc (INCLUDE_LIST): Define.
18294 * fortran/trans-common.c (INCLUDE_MAP): Define.
18295
18296 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
18297
18298 * auto-profile.c: Remove <string.h> include.
18299 * ipa-icf-gimple.c: Remove <list> include.
18300 * diagnostic.c: Remove <new> include.
18301 * genmatch.c: Likewise.
18302 * pretty-print.c: Likewise.
18303 * toplev.c: Likewise
18304 * c/c-objc-common.c: Likewise.
18305 * cp/error.c: Likewise.
18306 * fortran/error.c: Likewise.
18307
18308 2016-04-22 Richard Biener <rguenther@suse.de>
18309
18310 * lto-streamer-in.c (input_ssa_names): Do not allocate
18311 GIMPLE_NOP for all SSA names.
18312 * lto-streamer-out.c (output_ssa_names): Do not output
18313 SSA names that should have been released.
18314
18315 2016-04-22 Richard Biener <rguenther@suse.de>
18316
18317 PR tree-optimization/70740
18318 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
18319 VDEF.
18320
18321 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
18322
18323 PR target/70750
18324 * config/i386/predicates.md (call_insn_operand): Replace
18325 sibcall_memory_operand with memory_operand.
18326
18327 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
18328
18329 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
18330 has_single_use() tests.
18331 (register_edge_assert_for_1): Likewise.
18332 (find_assert_locations_1): Check the liveness bitmap instead of
18333 checking has_single_use().
18334
18335 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
18336
18337 PR target/70728
18338 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
18339 Extract AVX-512BW constraint from AVX.
18340
18341 2016-04-21 Richard Biener <rguenther@suse.de>
18342
18343 PR tree-optimization/70725
18344 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
18345 for phi_convertible_by_degenerating_args.
18346 (predicate_all_scalar_phis): Handle single-argument PHIs.
18347
18348 2016-04-21 Richard Biener <rguenther@suse.de>
18349
18350 PR middle-end/70747
18351 * fold-const.c (fold_comparison): Return properly typed
18352 constant boolean.
18353
18354 2016-04-21 Bin Cheng <bin.cheng@arm.com>
18355
18356 PR tree-optimization/70715
18357 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
18358 after expanding BASE using expand_simple_operations.
18359
18360 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
18361
18362 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
18363 New transformations.
18364
18365 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
18366
18367 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
18368
18369 2016-04-20 Jan Hubicka <jh@suse.cz>
18370
18371 * ipa-inline.c (can_inline_edge_p): Pass caller info to
18372 ultiimate_alias_target.
18373 (update_callee_keys): Likewise.
18374 (lookup_recursive_calls): Likewise.
18375 (speculation_useful_p): Likewise.
18376
18377 2016-04-20 Jan Hubicka <jh@suse.cz>
18378
18379 PR ipa/70018
18380 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
18381 (set_nothrow_flag_1): ... this; handle interposition correctly;
18382 recurse on aliases and thunks.
18383 (cgraph_node::set_nothrow_flag): New.
18384 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
18385 functions compiled with non-call exceptions that binds to current
18386 def.
18387 (propagate_nothrow): Be safe WRT interposition.
18388 * cgraph.h (set_nothrow_flag): Update prototype.
18389
18390 2016-04-18 Jan Hubicka <jh@suse.cz>
18391
18392 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
18393 max_loop_iterations_int.
18394 (tree_unswitch_outer_loop): Likewise.
18395
18396 2016-04-20 Bin Cheng <bin.cheng@arm.com>
18397
18398 PR tree-optimization/69489
18399 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
18400 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
18401 Revise dump message.
18402 (if_convertible_bb_p): Remove check on edge count of basic block's
18403 predecessors.
18404
18405 2016-04-20 Bin Cheng <bin.cheng@arm.com>
18406
18407 PR tree-optimization/56625
18408 PR tree-optimization/69489
18409 * tree-data-ref.h (DR_INNERMOST): New macro.
18410 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
18411 hashing struct innermost_loop_behavior.
18412 (ref_DR_map): Remove.
18413 (innermost_DR_map): New map.
18414 (baseref_DR_map): Revise comment.
18415 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
18416 to innermost_DR_map accroding to its innermost loop behavior.
18417 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
18418 to its innermost loop behavior.
18419 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
18420 Add initialization for innermost_DR_map. Record memory reference
18421 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
18422 have innermost loop behavior.
18423 (if_convertible_loop_p): Remove release for ref_DR_map. Release
18424 innermost_DR_map.
18425
18426 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
18427
18428 * config/i386/i386.md (*lea<mode>_general_1): Rename from
18429 *lea_general_1. Use explicit SWI12 mode interator.
18430 (*lea<mode>_general_2): Rename from *lea_general_2.
18431 Use explicit SWI12 mode interator.
18432 (*lea<mode>_general_3): Rename from *lea_general_3.
18433 Use explicit SWI12 mode interator.
18434 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
18435 Use explicit SWI12 mode interator.
18436 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
18437 Use explicit SWI48 mode interator.
18438
18439 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
18440
18441 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
18442 Short-cut unaligned load and store cases. Handle all integer
18443 vector modes.
18444 (ix86_expand_vector_move_misalign): Short-cut unaligned load
18445 and store cases. Call ix86_avx256_split_vector_move_misalign
18446 directly without checking mode class.
18447
18448 2016-04-20 Andrew Pinski <apinski@cavium.com>
18449 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18450
18451 PR target/64971
18452 * config/aarch64/aarch64.md (sibcall): Force call
18453 address to be DImode for ILP32.
18454 (sibcall_value): Likewise.
18455
18456 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
18457
18458 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
18459
18460 2016-04-20 Richard Biener <rguenther@suse.de>
18461
18462 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
18463 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
18464 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
18465 (maybe_push_res_to_seq): Adjust.
18466 * gimple-fold.c (maybe_build_generic_op): Likewise.
18467
18468 2016-04-20 Marek Polacek <polacek@redhat.com>
18469
18470 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
18471 rather than true.
18472
18473 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
18474
18475 * config/i386/sse.md (vec_unpacks_lo_hi): Always
18476 use kmovw to support AVX512F target.
18477
18478 2016-04-20 Bin Cheng <bin.cheng@arm.com>
18479
18480 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
18481
18482 2016-04-20 Marek Polacek <polacek@redhat.com>
18483
18484 PR tree-optimization/70725
18485 * tree-if-conv.c (is_false_predicate): New function.
18486 (predicate_mem_writes): Use it.
18487
18488 2016-04-20 Richard Biener <rguenther@suse.de>
18489
18490 PR tree-optimization/70726
18491 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
18492 shift amounts from a pattern stmt operand.
18493
18494 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18495
18496 PR target/70674
18497 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
18498 stack_restore_from_fpr pattern when restoring r15.
18499 (s390_optimize_prologue): Strip away the memory barrier in the
18500 parallel when trying to get rid of restore insns.
18501 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
18502 definition for loading the stack pointer from an FPR. Compared to
18503 the normal move insn this pattern includes a full memory barrier.
18504
18505 2016-04-19 Jakub Jelinek <jakub@redhat.com>
18506
18507 PR middle-end/70680
18508 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
18509 implicitly linear or lastprivate iterator on the outer context.
18510
18511 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
18512
18513 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
18514 alignment check.
18515 * config/i386/i386.md (ssememalign): Removed.
18516 * config/i386/sse.md: Remove ssememalign attribute from patterns.
18517
18518 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
18519
18520 PR target/69201
18521 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
18522 const short * to __builtin_ia32_loaddquhi512_mask.
18523 (_mm512_maskz_loadu_epi16): Likewise.
18524 (_mm512_mask_storeu_epi16): Pass short * to
18525 __builtin_ia32_storedquhi512_mask.
18526 (_mm512_mask_loadu_epi8): Pass const char * to
18527 __builtin_ia32_loaddquqi512_mask.
18528 (_mm512_maskz_loadu_epi8): Likewise.
18529 (_mm512_mask_storeu_epi8): Pass char * to
18530 __builtin_ia32_storedquqi512_mask.
18531 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
18532 const double * to __builtin_ia32_loadupd512_mask.
18533 (_mm512_mask_loadu_pd): Likewise.
18534 (_mm512_maskz_loadu_pd): Likewise.
18535 (_mm512_storeu_pd): Pass double * to
18536 __builtin_ia32_storeupd512_mask.
18537 (_mm512_mask_storeu_pd): Likewise.
18538 (_mm512_loadu_ps): Pass const float * to
18539 __builtin_ia32_loadups512_mask.
18540 (_mm512_mask_loadu_ps): Likewise.
18541 (_mm512_maskz_loadu_ps): Likewise.
18542 (_mm512_storeu_ps): Pass float * to
18543 __builtin_ia32_storeups512_mask.
18544 (_mm512_mask_storeu_ps): Likewise.
18545 (_mm512_mask_loadu_epi64): Pass const long long * to
18546 __builtin_ia32_loaddqudi512_mask.
18547 (_mm512_maskz_loadu_epi64): Likewise.
18548 (_mm512_mask_storeu_epi64): Pass long long *
18549 to __builtin_ia32_storedqudi512_mask.
18550 (_mm512_loadu_si512): Pass const int * to
18551 __builtin_ia32_loaddqusi512_mask.
18552 (_mm512_mask_loadu_epi32): Likewise.
18553 (_mm512_maskz_loadu_epi32): Likewise.
18554 (_mm512_storeu_si512): Pass int * to
18555 __builtin_ia32_storedqusi512_mask.
18556 (_mm512_mask_storeu_epi32): Likewise.
18557 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
18558 char * to __builtin_ia32_storedquqi256_mask.
18559 (_mm_mask_storeu_epi8): Likewise.
18560 (_mm256_mask_loadu_epi16): Pass const short * to
18561 __builtin_ia32_loaddquhi256_mask.
18562 (_mm256_maskz_loadu_epi16): Likewise.
18563 (_mm_mask_loadu_epi16): Pass const short * to
18564 __builtin_ia32_loaddquhi128_mask.
18565 (_mm_maskz_loadu_epi16): Likewise.
18566 (_mm256_mask_loadu_epi8): Pass const char * to
18567 __builtin_ia32_loaddquqi256_mask.
18568 (_mm256_maskz_loadu_epi8): Likewise.
18569 (_mm_mask_loadu_epi8): Pass const char * to
18570 __builtin_ia32_loaddquqi128_mask.
18571 (_mm_maskz_loadu_epi8): Likewise.
18572 (_mm256_mask_storeu_epi16): Pass short * to.
18573 __builtin_ia32_storedquhi256_mask.
18574 (_mm_mask_storeu_epi16): Pass short * to.
18575 __builtin_ia32_storedquhi128_mask.
18576 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
18577 const double * to __builtin_ia32_loadupd256_mask.
18578 (_mm256_maskz_loadu_pd): Likewise.
18579 (_mm_mask_loadu_pd): Pass onst double * to
18580 __builtin_ia32_loadupd128_mask.
18581 (_mm_maskz_loadu_pd): Likewise.
18582 (_mm256_mask_storeu_pd): Pass double * to
18583 __builtin_ia32_storeupd256_mask.
18584 (_mm_mask_storeu_pd): Pass double * to
18585 __builtin_ia32_storeupd128_mask.
18586 (_mm256_mask_loadu_ps): Pass const float * to
18587 __builtin_ia32_loadups256_mask.
18588 (_mm256_maskz_loadu_ps): Likewise.
18589 (_mm_mask_loadu_ps): Pass const float * to
18590 __builtin_ia32_loadups128_mask.
18591 (_mm_maskz_loadu_ps): Likewise.
18592 (_mm256_mask_storeu_ps): Pass float * to
18593 __builtin_ia32_storeups256_mask.
18594 (_mm_mask_storeu_ps): ass float * to
18595 __builtin_ia32_storeups128_mask.
18596 (_mm256_mask_loadu_epi64): Pass const long long * to
18597 __builtin_ia32_loaddqudi256_mask.
18598 (_mm256_maskz_loadu_epi64): Likewise.
18599 (_mm_mask_loadu_epi64): Pass const long long * to
18600 __builtin_ia32_loaddqudi128_mask.
18601 (_mm_maskz_loadu_epi64): Likewise.
18602 (_mm256_mask_storeu_epi64): Pass long long * to
18603 __builtin_ia32_storedqudi256_mask.
18604 (_mm_mask_storeu_epi64): Pass long long * to
18605 __builtin_ia32_storedqudi128_mask.
18606 (_mm256_mask_loadu_epi32): Pass const int * to
18607 __builtin_ia32_loaddqusi256_mask.
18608 (_mm256_maskz_loadu_epi32): Likewise.
18609 (_mm_mask_loadu_epi32): Pass const int * to
18610 __builtin_ia32_loaddqusi128_mask.
18611 (_mm_maskz_loadu_epi32): Likewise.
18612 (_mm256_mask_storeu_epi32): Pass int * to
18613 __builtin_ia32_storedqusi256_mask.
18614 (_mm_mask_storeu_epi32): Pass int * to
18615 __builtin_ia32_storedqusi128_mask.
18616 * config/i386/i386-builtin-types.def (PCSHORT): New.
18617 (PINT64): Likewise.
18618 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
18619 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
18620 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
18621 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
18622 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
18623 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
18624 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
18625 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
18626 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
18627 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
18628 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
18629 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
18630 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
18631 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
18632 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
18633 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
18634 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
18635 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
18636 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
18637 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
18638 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
18639 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
18640 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
18641 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
18642 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
18643 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
18644 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
18645 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
18646 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
18647 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
18648 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
18649 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
18650 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
18651 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
18652 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
18653 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
18654 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
18655 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
18656 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
18657 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
18658 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
18659 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
18660 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
18661 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
18662 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
18663 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
18664 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
18665 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
18666 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
18667 use UNSPEC_STOREU.
18668 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
18669 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
18670 load nor store.
18671 (ix86_expand_vector_move_misalign): Likewise.
18672 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
18673 to scalar function prototype for unaligned load/store builtins.
18674 (ix86_expand_special_args_builtin): Updated.
18675 * config/i386/sse.md (UNSPEC_LOADU): Removed.
18676 (UNSPEC_STOREU): Likewise.
18677 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
18678 (VI_ULOADSTORE_F_AVX512VL): Likewise.
18679 (ssescalarsize): Handle V4TI, V2TI and V1TI.
18680 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
18681 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
18682 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
18683 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
18684 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
18685 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
18686 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
18687 (<avx512>_storedqu<mode>_mask): Likewise.
18688 (*sse4_2_pcmpestr_unaligned): Likewise.
18689 (*sse4_2_pcmpistr_unaligned): Likewise.
18690 (*mov<mode>_internal): Renamed to ...
18691 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
18692 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
18693 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
18694 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
18695
18696 2016-04-19 Richard Biener <rguenther@suse.de>
18697
18698 PR tree-optimization/70171
18699 * tree-ssa-phiprop.c: Include stor-layout.h.
18700 (phiprop_insert_phi): Handle the aggregate copy case.
18701 (propagate_with_phi): Likewise.
18702
18703 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
18704
18705 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
18706 instead of simplify_gen_subreg (... , 0).
18707 (ix86_delegitimize_address): Ditto.
18708 (ix86_split_divmod): Ditto.
18709 (ix86_split_copysign_const): Ditto.
18710 (ix86_split_copysign_var): Ditto.
18711 (ix86_expand_args_builtin): Ditto.
18712 (ix86_expand_round_builtin): Ditto.
18713 (ix86_expand_special_args_builtin): Ditto.
18714 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
18715 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
18716 (udivmodqi4): Ditto.
18717 (absneg splitters): Ditto.
18718 (*jcc_bt<mode>_1): Ditto.
18719
18720 2016-04-19 Richard Biener <rguenther@suse.de>
18721
18722 PR tree-optimization/70724
18723 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
18724 restoring out from ...
18725 (free_scc_vn): ... here.
18726 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
18727 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
18728 tail merging.
18729 (pass_fre::execute): Restore SSA info.
18730
18731 2016-04-19 Richard Biener <rguenther@suse.de>
18732
18733 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
18734 * gimple-walk.c (walk_gimple_op): Initialize it.
18735 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
18736 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
18737 remapping SSA names of defs.
18738 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
18739 adjustment.
18740
18741 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
18742
18743 PR middle-end/70689
18744 * lra-constraints.c (equiv_substition_p): New.
18745 (process_alt_operands): Use it.
18746 (swap_operands): Swap it.
18747 (curr_insn_transform): Update it.
18748
18749 2016-04-18 Michael Matz <matz@suse.de>
18750
18751 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
18752 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
18753 * tree-core.h (tree_type_common.align): Use bit-field.
18754 (tree_type_common.spare): New.
18755 (tree_decl_common.off_align): Make smaller.
18756 (tree_decl_common.align): Use bit-field.
18757
18758 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
18759 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
18760 (scan_sharing_clauses): Ditto.
18761 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
18762 (omp_finish_file): Ditto.
18763 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
18764 (layout_decl): Ditto.
18765 (relayout_decl): Ditto.
18766 (finalize_record_size): Use SET_TYPE_ALIGN.
18767 (finalize_type_size): Ditto.
18768 (finish_builtin_struct): Ditto.
18769 (layout_type): Ditto.
18770 (initialize_sizetypes): Ditto.
18771 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
18772 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
18773 (lookup_field_for_decl): Use SET_DECL_ALIGN.
18774 (get_chain_field): Ditto.
18775 (get_trampoline_type): Ditto.
18776 (get_nl_goto_field): Ditto.
18777 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
18778 SET_DECL_ALIGN.
18779 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
18780 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
18781 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
18782 (build_qualified_type): Use SET_TYPE_ALIGN.
18783 (build_aligned_type, build_range_type_1): Ditto.
18784 (build_atomic_base): Ditto.
18785 (build_common_tree_nodes): Ditto.
18786 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
18787 (expand_one_stack_var_at): Ditto.
18788 * coverage.c (build_var): Use SET_DECL_ALIGN.
18789 * except.c (init_eh): Ditto.
18790 * function.c (assign_parm_setup_block): Ditto.
18791 * symtab.c (increase_alignment_1): Ditto.
18792 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
18793 * tree-vect-stmts.c (ensure_base_align): Ditto.
18794 * varasm.c (align_variable): Ditto.
18795 (assemble_variable): Ditto.
18796 (build_constant_desc): Ditto.
18797 (output_constant_def_contents): Ditto.
18798
18799 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
18800 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
18801 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
18802 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
18803 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
18804
18805 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
18806
18807 PR target/70708
18808 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
18809 replace %vmovsd with "%vmovq".
18810 (vec_concatv2df): Likewise.
18811
18812 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
18813
18814 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
18815 (*vec_extractv2si_0): Ditto.
18816 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
18817 (zero_extended_scalar_load_operand splitters): Ditto.
18818 (vec_extract splitters): Ditto.
18819 (*vec_extractv4si_0_zext): Ditto.
18820 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
18821 and lowpart_subreg.
18822 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
18823 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
18824 (*sse4_1_extractps): Use lowpart_subreg.
18825 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
18826
18827 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18828
18829 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
18830 gld requirements.
18831 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
18832 Mention Solaris 11 packaging changes.
18833 Update gas and gld requirements.
18834 Remove reference to pre-Solaris 10 bug.
18835 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
18836 systems and bugs.
18837 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
18838 with cc.
18839
18840 2016-04-17 Jan Hubicka <jh@suse.cz>
18841
18842 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
18843 max_loop_iterations_int.
18844
18845 2016-04-18 Richard Biener <rguenther@suse.de>
18846
18847 PR tree-optimization/43434
18848 * tree-ssa-structalias.c (struct vls_data): New.
18849 (visit_loadstore): Handle all pointer-based accesses.
18850 (compute_dependence_clique): Compute a bitmap of restrict tags
18851 assigned bases and pass it to visit_loadstore.
18852
18853 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
18854
18855 PR target/70711
18856 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
18857 armv8.1-a and armv8.1-a+crc.
18858
18859 2016-04-18 Richard Biener <rguenther@suse.de>
18860
18861 PR tree-optimization/70701
18862 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
18863 references after translating through a memcpy.
18864
18865 2016-04-18 Richard Biener <rguenther@suse.de>
18866
18867 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
18868 (compute_antic): ... here. For partial antic use regular
18869 postorder and scrap iteration.
18870 (compute_partial_antic_aux): Remove unused return value.
18871 (init_pre): Do not allocate postorder.
18872 (fini_pre): Do not free postorder.
18873
18874 2016-04-18 Richard Biener <rguenther@suse.de>
18875
18876 PR middle-end/37870
18877 * expmed.c (extract_bit_field_1): Remove broken case
18878 using a wider MODE_INT mode.
18879
18880 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
18881
18882 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
18883 unless compiling with at least GCC-4.8.
18884
18885 2016-04-17 Jan Hubicka <jh@suse.cz>
18886
18887 PR bootstrap/70706
18888 * graphite.c (graphite_finalize): Update call to
18889 tree_estimate_probability.
18890 * predict.h (tree_estimate_probability): Update prototype.
18891
18892 2016-04-17 Jan Hubicka <jh@suse.cz>
18893
18894 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
18895 (tree_estimate_probability): Likewise.
18896 (pass_profile::execute): Update.
18897 (report_predictor_hitrates): New function.
18898 * profile.c (compute_branch_probabilities): Use it.
18899 * predict.h (report_predictor_hitrates): Declare.
18900
18901 2016-04-17 Jan Hubicka <jh@suse.cz>
18902
18903 PR ipa/70018
18904 * cgraph.h (cgraph_node::set_const_flag,
18905 cgraph_node::set_pure_flag): Update prototype to return bool;
18906 update comment.
18907 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
18908 of interposable symbol are interposable, too.
18909 (cgraph_set_const_flag_1): Rename to ...
18910 (set_const_flag_1): ... this one; change to self recursive function
18911 instead of call_for_symbol_thunks_and_aliases. Handle correctly
18912 clearnig the flag in all variants and also virtual thunks of const
18913 functions are pure; track if any change was done.
18914 (cgraph_node::set_const_flag): Update.
18915 (struct set_pure_flag_info): New struct.
18916 (cgraph_set_pure_flag_1): Rename to ...
18917 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
18918 rather than pointer encoded flags; track if any changes was done;
18919 handle correctly clearning flag and setting flag of aliases already
18920 declared const.
18921 (cgraph_node::set_pure_flag): Update.
18922 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
18923
18924 2016-04-17 Tom de Vries <tom@codesourcery.com>
18925
18926 PR other/70433
18927 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
18928 backslash in label.
18929
18930 2016-04-17 Tom de Vries <tom@codesourcery.com>
18931
18932 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
18933 '{}<> ' as escape-for-record.
18934
18935 2016-04-17 Tom de Vries <tom@codesourcery.com>
18936
18937 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
18938 structure.
18939
18940 2016-04-17 Tom de Vries <tom@codesourcery.com>
18941
18942 PR other/70185
18943 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
18944 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
18945 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
18946 * passes.c (finish_optimization_passes): Only call
18947 finish_graph_dump_file if dfi->graph_dump_initialized.
18948 (execute_function_dump, pass_init_dump_file): Use
18949 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
18950
18951 2016-04-17 Tom de Vries <tom@codesourcery.com>
18952
18953 PR tree-optimization/70256
18954 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
18955 (debug_varmap): New function.
18956
18957 2016-04-17 Tom de Vries <tom@codesourcery.com>
18958
18959 PR other/70183
18960 * passes.c (pass_manager::register_pass): Propagate pflags.
18961
18962 2016-04-17 Tom de Vries <tom@codesourcery.com>
18963
18964 PR other/68875
18965 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
18966 * passes.c (pass_manager::pass_manager): Declare and init p_start in
18967 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
18968 check if it's equal to p_start.
18969 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
18970
18971 2016-04-15 Jan Hubicka <jh@suse.cz>
18972
18973 PR ipa/70018
18974 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
18975 function does not bind to current def.
18976 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
18977 handle conservatively calls to functions that does not need to bind
18978 to current def.
18979 (check_call): Update call of worse_state.
18980 (ignore_edge_for_nothrow): Update.
18981 (ignore_edge_for_pure_const): Likewise.
18982 (propagate_pure_const): Update calls to worse_state.
18983 (skip_function_for_local_pure_const): Reformat comments.
18984
18985 2016-04-15 Jan Hubicka <jh@suse.cz>
18986
18987 PR ipa/70018
18988 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
18989 (cgraph_node::function_symbol): Likewise.
18990 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
18991 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
18992 (symtab_node::ultimate_alias_target): Add REF parameter.
18993 (symtab_node::binds_to_current_def_p): Declare.
18994 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
18995 (cgraph_node::function_symbol): Likewise.
18996 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
18997 (cgraph_node::get_availability): Likewise.
18998 (cgraph_edge::binds_to_current_def_p): New inline function.
18999 (varpool_node::get_availability): Add REF parameter.
19000 (varpool_node::ultimate_alias_target): Likewise.
19001 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
19002 (symtab_node::binds_to_current_def_p): Likewise.
19003 * varpool.c (varpool_node::get_availability): Likewise.
19004
19005 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
19006
19007 PR target/70662
19008 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
19009 Fix mode size check.
19010
19011 2016-04-15 Jakub Jelinek <jakub@redhat.com>
19012
19013 * BASE-VER: Set to 7.0.0.
19014
19015 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
19016
19017 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
19018
19019 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19020
19021 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
19022 architecture revisions.
19023
19024 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
19025
19026 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
19027 * config/i386/i386.c (ix86_using_red_zone): No longer static.
19028 * config/i386/i386.md (stack decrement to push peepholes): Guard
19029 with !x86_using_red_zone ().
19030
19031 2016-04-15 Jakub Jelinek <jakub@redhat.com>
19032
19033 PR c++/70675
19034 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
19035 to dump_generic_node.
19036 (NIY): Pass also flags to do_niy.
19037
19038 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
19039
19040 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
19041 (simd_clone_vector_of_formal_parm_types)
19042 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
19043 (simd_clone_mangle, simd_clone_create)
19044 (simd_clone_adjust_return_type, create_tmp_simd_array)
19045 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
19046 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
19047 (ipa_simd_modify_function_body, simd_clone_linear_addend)
19048 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
19049 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
19050 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
19051 * omp-simd-clone.c: ... this new file.
19052 (simd_clone_vector_of_formal_parm_types): Make it static.
19053 * Makefile.in (OBJS): Add omp-simd-clone.o.
19054
19055 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
19056
19057 PR target/70662
19058 * config/i386/sse.md: Use proper memory operand modifiers.
19059
19060
19061 2016-04-15 Richard Biener <rguenther@suse.de>
19062 Alan Modra <amodra@gmail.com>
19063
19064 PR tree-optimization/70130
19065 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
19066 when alignment stays not the same and no not use the realign
19067 scheme then.
19068
19069 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
19070
19071 PR target/70669
19072 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
19073 direct move handlers for KFmode. Change TFmode handlers test from
19074 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
19075
19076 2016-04-14 Jakub Jelinek <jakub@redhat.com>
19077
19078 PR c++/70594
19079 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
19080 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
19081 (inlined_polymorphic_ctor_dtor_block_p): Use it.
19082 * tree-ssa-live.c (remove_unused_scope_block_p): When
19083 in_ctor_dtor_block, avoid discarding not just BLOCKs with
19084 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
19085 block_ultimate_origin is FUNCTION_DECL.
19086 (remove_unused_locals): If current_function_decl is
19087 polymorphic_ctor_dtor_p, pass initial true to
19088 remove_unused_scope_block_p' is_ctor_dtor_block.
19089
19090 2016-04-14 Martin Sebor <msebor@redhat.com>
19091
19092 PR c++/69517
19093 PR c++/70019
19094 PR c++/70588
19095 * doc/extend.texi (Variable Length): Revert.
19096
19097 2016-04-14 Marek Polacek <polacek@redhat.com>
19098 Jan Hubicka <hubicka@ucw.cz>
19099
19100 PR c++/70029
19101 * tree.c (verify_type): Disable the canonical type of main variant
19102 check.
19103
19104 2016-04-14 Jason Merrill <jason@redhat.com>
19105
19106 * cfgexpand.c, expr.c: Revert previous change.
19107
19108 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
19109
19110 PR middle-end/70643
19111 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
19112 when building a mem ref for the incoming reduction variable.
19113
19114 2016-04-14 Richard Biener <rguenther@suse.de>
19115
19116 PR tree-optimization/70614
19117 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
19118 loop if the evolution dropped to chrec_dont_know.
19119 (interpret_condition_phi): Likewise.
19120
19121 2016-04-14 Richard Biener <rguenther@suse.de>
19122
19123 PR tree-optimization/70623
19124 * tree-ssa-pre.c (changed_blocks): Make global ...
19125 (compute_antic): ... local here. Move and fix worklist
19126 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
19127 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
19128 worklist handling, dump when ANTIC_IN changed.
19129 (compute_partial_antic_aux): Remove worklist handling.
19130 (init_pre): Do not compute post dominators. Add a comment about
19131 the CFG order chosen.
19132 (fini_pre): Do not free post dominators.
19133
19134 2016-04-13 Martin Sebor <msebor@redhat.com>
19135
19136 PR c++/69517
19137 PR c++/70019
19138 PR c++/70588
19139 * doc/extend.texi (Variable Length): Document C++ specifics.
19140
19141 2016-04-13 Jakub Jelinek <jakub@redhat.com>
19142
19143 PR c++/70641
19144 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
19145 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
19146 eh edges have been purged.
19147
19148 PR c++/70594
19149 * tree-sra.c (create_access_replacement,
19150 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
19151 gets fancy name.
19152 * tree-pretty-print.c (dump_fancy_name): New function.
19153 (dump_decl_name, dump_generic_node): Use it.
19154
19155 2016-04-13 Jason Merrill <jason@redhat.com>
19156
19157 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
19158 * expr.c (expand_expr_real_1): Likewise.
19159
19160 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
19161
19162 * config/i386/i386.md (kunpckhi): Swap operands.
19163 (kunpcksi): Likewise.
19164 (kunpckdi): Likewise.
19165 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
19166 (vec_pack_trunc_<mode>): Likewise.
19167
19168 2016-04-13 Jakub Jelinek <jakub@redhat.com>
19169
19170 PR debug/70628
19171 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
19172
19173 PR middle-end/70633
19174 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
19175 gimplification turns some element into non-constant.
19176
19177 PR debug/70628
19178 * rtl.h (convert_memory_address_addr_space_1): New prototype.
19179 * explow.c (convert_memory_address_addr_space_1): No longer static,
19180 add NO_EMIT argument and don't call convert_modes if true, pass
19181 it down recursively, remove break after return.
19182 (convert_memory_address_addr_space): Adjust caller.
19183 * simplify-rtx.c (simplify_unary_operation_1): Call
19184 convert_memory_address_addr_space_1 instead of convert_memory_address,
19185 if it returns NULL, don't simplify.
19186
19187 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
19188
19189 PR target/70630
19190 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
19191
19192 2016-04-12 Jakub Jelinek <jakub@redhat.com>
19193
19194 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
19195 Bump the upper SIMDLEN limits, so that if the return type or
19196 characteristic type if the return type is void can be passed in
19197 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
19198 allowed.
19199
19200 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
19201
19202 PR target/70640
19203 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
19204 Do not use "=" constraint on an input constraint.
19205 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
19206 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
19207 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
19208 generates (neg (abs ...)) instead of (abs ...).
19209
19210 2016-04-12 Jakub Jelinek <jakub@redhat.com>
19211
19212 PR rtl-optimization/70596
19213 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
19214 just invalidate LRA data and reset them. Adjust dump wording.
19215
19216 2016-04-12 Martin Liska <mliska@suse.cz>
19217
19218 Revert
19219 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
19220
19221 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
19222 estimates here.
19223 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
19224 max_loop_iterations_int.
19225 (tree_unswitch_outer_loop): Likewise.
19226 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
19227 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
19228
19229 2016-04-12 Tom de Vries <tom@codesourcery.com>
19230
19231 PR tree-optimization/68756
19232 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
19233 instead of new_name.
19234
19235 2016-04-12 Jakub Jelinek <jakub@redhat.com>
19236
19237 PR tree-optimization/70602
19238 * tree-sra.c (generate_subtree_copies): Don't write anything into
19239 constant pool decls.
19240
19241 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
19242 regardless whether there are depend clauses or not.
19243
19244 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
19245
19246 PR target/70381
19247 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
19248 target attribute and pragma from changing the -mfloat128
19249 and -mfloat128-hardware options.
19250
19251 * doc/extend.texi (Additional Floating Types): Document PowerPC
19252 __float128 restrictions.
19253
19254 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
19255
19256 PR target/70133
19257 * config/aarch64/driver-aarch64.c
19258 (aarch64_get_extension_string_for_isa_flags): New.
19259 (arch_extension): Rename to...
19260 (aarch64_arch_extension): ...This.
19261 (ext_to_feat_string): Rename to...
19262 (aarch64_extensions): ...This.
19263 (aarch64_core_data): Keep track of architecture extension flags.
19264 (cpu_data): Rename to...
19265 (aarch64_cpu_data): ...This.
19266 (aarch64_arch_driver_info): Keep track of architecture extension
19267 flags.
19268 (get_arch_name_from_id): Rename to...
19269 (get_arch_from_id): ...This, change return type.
19270 (host_detect_local_cpu): Update and reformat for renames, handle
19271 extensions through common infrastructure.
19272
19273 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
19274
19275 PR target/70133
19276 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
19277 track of a canonical flag name.
19278 (all_extensions): Likewise.
19279 (arch_to_arch_name): Also track extension flags enabled by the arch.
19280 (all_architectures): Likewise.
19281 (aarch64_parse_extension): Move to here.
19282 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
19283 rework.
19284 (aarch64_rewrite_selected_cpu): Update for above change.
19285 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
19286 are handled, such that the single explicit value enabled by an
19287 extension is kept seperate from the implicit values it also enables.
19288 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
19289 to here.
19290 (aarch64_parse_extension): New.
19291 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
19292 here to config/aarch64/aarch64-protos.h.
19293 (aarch64_parse_extension): Move from here to
19294 common/config/aarch64/aarch64-common.c.
19295 (aarch64_option_print): Update.
19296 (aarch64_declare_function_name): Likewise.
19297 (aarch64_start_file): Likewise.
19298 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
19299 the canonical flag for extensions.
19300 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
19301 flags.
19302
19303 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
19304
19305 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
19306 AARCH64_FL_CRC.
19307
19308 2016-04-09 Tom de Vries <tom@codesourcery.com>
19309
19310 PR tree-optimization/68953
19311 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
19312 first to last subscript.
19313
19314 2016-04-09 Jakub Jelinek <jakub@redhat.com>
19315
19316 PR tree-optimization/70586
19317 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
19318 for any calls.
19319
19320 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
19321
19322 PR lto/70289
19323 PR ipa/70348
19324 PR tree-optimization/70373
19325 PR middle-end/70533
19326 PR middle-end/70534
19327 PR middle-end/70535
19328 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
19329 clauses for acc parallel reductions as necessary. Error on those
19330 that are private.
19331 * omp-low.c (scan_sharing_clauses): Don't install variables which
19332 are used in acc parallel reductions.
19333 (lower_rec_input_clauses): Remove dead code.
19334 (lower_oacc_reductions): Add support for reference reductions.
19335 (lower_reduction_clauses): Remove dead code.
19336 (lower_omp_target): Don't remap variables appearing in acc parallel
19337 reductions.
19338 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
19339
19340 2016-04-08 Jakub Jelinek <jakub@redhat.com>
19341
19342 PR middle-end/70593
19343 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
19344 with multiple SSA_NAME defs, force the outputs other than first
19345 to be live before calling live_track_process_def on each output.
19346
19347 PR rtl-optimization/70574
19348 * fwprop.c (forward_propagate_and_simplify): Don't add
19349 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
19350 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
19351 paradoxical subregs within *loc.
19352
19353 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
19354
19355 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
19356 -ftree-parallelize-loops={0,1}.
19357 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
19358 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
19359 * config/ia64/hpux.h (LIB_SPEC): Likewise.
19360 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
19361 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
19362
19363 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
19364
19365 PR sanitizer/70541
19366 * asan.c (instrument_derefs): If we get unknown location, extract it
19367 with EXPR_LOCATION.
19368 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
19369
19370 2016-04-08 Tom de Vries <tom@codesourcery.com>
19371
19372 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
19373 implicit firstprivate clause.
19374
19375 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19376
19377 PR target/70566
19378 * config/arm/thumb2.md (tst + branch-> lsls + branch
19379 peephole below *orsi_not_shiftsi_si): Require that condition
19380 register is dead after the peephole.
19381 (second peephole after the above): Likewise.
19382
19383 2016-04-08 Alan Modra <amodra@gmail.com>
19384
19385 PR target/70117
19386 * builtins.c (fold_builtin_classify): For IBM extended precision,
19387 look at just the high-order double to test for NaN.
19388 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
19389 test just the high double for Inf but both doubles for subnormal
19390 limit.
19391
19392 2016-04-07 Jakub Jelinek <jakub@redhat.com>
19393
19394 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
19395 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
19396 node->simdclone->mask_mode != VOIDmode masks.
19397 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
19398 earlier, use it instead of node->simdclone.
19399 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
19400 Set clonei->mask_mode.
19401
19402 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
19403
19404 PR c/70436
19405 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
19406 Pass it through to cp_parser_already_scoped_statement.
19407 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
19408 it through to cp_parser_statement.
19409 (cp_parser_statement): Pass IF_P through to
19410 cp_parser_iteration_statement.
19411 (cp_parser_pragma): Adjust call to
19412 cp_parser_iteration_statement.
19413
19414 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
19415
19416 PR c/70436
19417 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
19418 resolve a future -Wparentheses warning.
19419 * omp-low.c (scan_sharing_clauses): Likewise.
19420 * tree-parloops.c (eliminate_local_variables): Likewise.
19421
19422 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
19423
19424 PR rtl-optimization/70398
19425 * lra-constraints.c (process_address_1): Check zero scale and code
19426 for reloading with zero scale.
19427
19428 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
19429
19430 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
19431 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
19432
19433 2016-04-06 Jakub Jelinek <jakub@redhat.com>
19434
19435 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
19436 Add support for AVX512F clones, include them by default for
19437 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
19438 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
19439 up to 128.
19440
19441 PR middle-end/70550
19442 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
19443 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
19444 firstprivate clauses.
19445 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
19446 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
19447 (lower_omp_target): Set TREE_NO_WARNING for
19448 non-addressable possibly uninitialized vars which are copied into
19449 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
19450
19451 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
19452
19453 * config/pa/predicates.md (integer_store_memory_operand): Accept
19454 REG+D operands with a large offset when reload_in_progress is true.
19455 (floating_point_store_memory_operand): Likewise.
19456
19457 2016-04-05 Jakub Jelinek <jakub@redhat.com>
19458
19459 PR c++/70336
19460 * match.pd (nested int casts): Limit to GIMPLE.
19461
19462 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
19463
19464 PR ipa/66223
19465 * ipa-devirt.c (maybe_record_node): Fix comment; use
19466 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
19467
19468 2016-04-05 Jakub Jelinek <jakub@redhat.com>
19469
19470 PR rtl-optimization/70542
19471 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
19472 if there are any uses other than insn or debug insns.
19473
19474 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
19475 Jakub Jelinek <jakub@redhat.com>
19476
19477 PR tree-optimization/70509
19478 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
19479 Shift HOST_WIDE_INT_1U instead of 1.
19480
19481 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
19482
19483 PR tree-optimization/70509
19484 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
19485 of the vector base type for index.
19486
19487 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
19488
19489 PR target/70510
19490 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
19491
19492 2016-04-05 Richard Biener <rguenther@suse.de>
19493
19494 PR tree-optimization/70526
19495 * tree-sra.c (build_ref_for_offset): Use prev_base to
19496 extract the alias pointer type.
19497
19498 2016-04-05 Richard Biener <rguenther@suse.de>
19499
19500 * dse.c (struct store_info): Remove alias_set member.
19501 (struct read_info_type): Likewise.
19502 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
19503 spill_deleted, clear_alias_set_lookup): Remove.
19504 (get_group_info): Remove dead base == NULL_RTX case.
19505 (dse_step0): Remove initialization of removed variables.
19506 (delete_dead_store_insn): Reomve alias set dumping.
19507 (free_read_records): Remove alias_set handling.
19508 (canon_address): Remove alias_set_out parameter.
19509 (record_store): Remove spill_alias_set, it's always zero.
19510 (check_mem_read_rtx): Likewise.
19511 (dse_step2): Rename from ...
19512 (dse_step2_nospill): ... this. Adjust.
19513 (scan_stores): Rename from ...
19514 (scan_stores_nospill): ... this.
19515 (scan_reads): Rename from ...
19516 (scan_reads_nospill): ... this.
19517 (scan_stores_spill, scan_reads_spill): Remove.
19518 (dse_step3_scan): Remove for_spills argument which is always false.
19519 (dse_step3): Likewise.
19520 (dse_step5): Rename from ...
19521 (dse_step5_nospill): ... this. Remove alias_set handling.
19522 (rest_of_handle_dse): Adjust.
19523
19524 2016-04-05 Jakub Jelinek <jakub@redhat.com>
19525
19526 PR target/70525
19527 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
19528 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
19529 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
19530 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
19531
19532 2016-04-05 Richard Biener <rguenther@suse.de>
19533
19534 PR middle-end/70499
19535 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
19536 non-register type temporaries into SSA.
19537
19538 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
19539
19540 PR ipa/66223
19541 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
19542 calls when sanitizing.
19543 (possible_polymorphic_call_target_p): Fix formatting.
19544
19545 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19546 Jakub Jelinek <jakub@redhat.com>
19547
19548 PR middle-end/70457
19549 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
19550 to ensure a call statement is compatible with a built-in's
19551 prototype.
19552 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
19553 Likewise.
19554
19555 2016-04-04 Richard Biener <rguenther@suse.de>
19556
19557 PR rtl-optimization/70484
19558 * rtl.h (canon_output_dependence): Declare.
19559 * alias.c (canon_output_dependence): New function.
19560 * dse.c (record_store): Use canon_output_dependence rather
19561 than canon_true_dependence.
19562
19563 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
19564
19565 PR ipa/68881
19566 * cgraph.h (symtab_node::copy_visibility_from): New function.
19567 * symtab.c (symtab_node::copy_visibility_from): New function.
19568 * ipa-visibility.c (optimize_weakref): New function.
19569 (function_and_variable_visibility): Use it.
19570
19571 2016-04-04 Martin Liska <mliska@suse.cz>
19572
19573 PR hsa/70402
19574 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
19575 value that is really in range handled by SBR instruction.
19576 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
19577 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
19578 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
19579
19580 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
19581
19582 PR target/70416
19583 PR target/67391
19584 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
19585 set, but not for SP_REG operands.
19586
19587 2016-04-02 Martin Sebor <msebor@redhat.com>
19588
19589 PR c++/67376
19590 * fold-const.c (maybe_nonzero_address): New function.
19591 (fold_comparison): Call it. Fold equality and relational
19592 expressions involving null pointers.
19593 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
19594
19595 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
19596
19597 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
19598 the "Y" constraint (scalar FP 0.0 immediate).
19599
19600 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
19601 Add the "const_double" to the list of operand constraints.
19602
19603 2016-04-01 Jakub Jelinek <jakub@redhat.com>
19604
19605 PR rtl-optimization/70467
19606 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
19607 If low word of the last operand is 0, just emit addition/subtraction
19608 for the high word.
19609
19610 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19611
19612 PR target/70404
19613 * config/s390/s390.c (s390_expand_insv): Check for everything
19614 constant instead of just VOIDmode stuff.
19615
19616 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19617
19618 PR target/70496
19619 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
19620
19621 2016-04-01 Nathan Sidwell <nathan@acm.org>
19622
19623 * tree.def (TRY_CATCH_EXPR): Correct documentation.
19624
19625 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
19626
19627 PR rtl-optimization/70461
19628 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
19629 is necessary.
19630
19631 2016-03-31 Martin Liska <mliska@suse.cz>
19632
19633 PR hsa/70399
19634 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
19635 a tree value or an immediate integer value to a buffer
19636 that is eventually copied to a BRIG section.
19637 (emit_immediate_operand): Call the function here.
19638 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
19639 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
19640 of class' fields that are removed.
19641 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
19642 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
19643 m_brig_repr_size fields.
19644
19645 2016-03-31 Martin Liska <mliska@suse.cz>
19646
19647 PR hsa/70391
19648 * hsa-gen.c (hsa_function_representation::update_dominance): New
19649 function.
19650 (convert_addr_to_flat_segment): Likewise.
19651 (gen_hsa_memory_set): New alignment argument.
19652 (gen_hsa_ctor_assignment): Likewise.
19653 (gen_hsa_insns_for_single_assignment): Provide alignment
19654 to gen_hsa_ctor_assignment.
19655 (gen_hsa_insns_for_direct_call): Add new argument.
19656 (expand_lhs_of_string_op): New function.
19657 (expand_string_operation_builtin): Likewise.
19658 (expand_memory_copy): New function.
19659 (expand_memory_set): New function.
19660 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
19661 (convert_switch_statements): Change signature.
19662 (generate_hsa): Use a return value of the function.
19663 (pass_gen_hsail::execute): Do not call
19664 convert_switch_statements here.
19665 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
19666 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
19667 (hsa_function_representation::update_dominance): New function.
19668
19669 2016-03-31 Martin Liska <mliska@suse.cz>
19670
19671 PR hsa/70391
19672 * hsa-brig.c (emit_directive_variable): Emit alignment
19673 according to hsa_symbol::m_align.
19674 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
19675 (dump_hsa_symbol): Dump alignment of HSA symbols.
19676 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
19677 (gen_hsa_addr_with_align): New function.
19678 (hsa_bitmemref_alignment): Use newly added function.
19679 (gen_hsa_insns_for_load): Likewise.
19680 (gen_hsa_insns_for_store): Likewise.
19681 (gen_hsa_memory_copy): New argument added.
19682 (gen_hsa_insns_for_single_assignment): Respect
19683 alignment for assignments processed via gen_hsa_memory_copy.
19684 (gen_hsa_insns_for_direct_call): Likewise.
19685 (gen_hsa_insns_for_return): Likewise.
19686 (gen_function_def_parameters): Set default alignment.
19687 * hsa.c (hsa_object_alignment): New function.
19688 (hsa_byte_alignment): Pasted function.
19689 * hsa.h (hsa_symbol::m_align): New field.
19690
19691 2016-03-31 Bin Cheng <bin.cheng@arm.com>
19692
19693 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
19694 scratch field for goto case.
19695
19696 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
19697
19698 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
19699
19700 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
19701
19702 PR target/70442
19703 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
19704 (scalar_chain::convert_insn): Call convert_op for reg
19705 moves to handle undefined registers.
19706
19707 2016-03-31 Nathan Sidwell <nathan@acm.org>
19708
19709 PR c++/70393
19710 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
19711 Assert we don't want to move backwards.
19712
19713 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
19714
19715 PR target/70453
19716 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
19717
19718 2016-03-31 Jakub Jelinek <jakub@redhat.com>
19719
19720 PR rtl-optimization/70460
19721 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
19722 with operand from REG_LABEL_OPERAND, instead substitute
19723 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
19724 Don't do anything for REG_NON_LOCAL_GOTO jumps.
19725
19726 2016-03-31 Martin Liska <mliska@suse.cz>
19727
19728 * passes.c (execute_one_pass): Do not call
19729 todo_after for a discarded function.
19730
19731 2016-03-31 Bin Cheng <bin.cheng@arm.com>
19732
19733 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
19734 (no_cost, infinite_cost): Initialize the new field.
19735 (get_computation_cost_at): Record setup cost.
19736 (determine_use_iv_cost_address): Skip cost computation for sub
19737 uses if we can estimate it without losing accuracy.
19738
19739 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
19740
19741 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
19742 estimates here.
19743 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
19744 max_loop_iterations_int.
19745 (tree_unswitch_outer_loop): Likewise.
19746 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
19747 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
19748
19749 2016-03-30 Richard Biener <rguenther@suse.de>
19750
19751 PR middle-end/70450
19752 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
19753
19754 2016-03-30 Jakub Jelinek <jakub@redhat.com>
19755
19756 PR target/70421
19757 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
19758 in gen_blendm expander.
19759
19760 2016-03-30 Nick Clifton <nickc@redhat.com>
19761
19762 PR target/62254
19763 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
19764 case where we are already provided with an SImode SUBREG.
19765
19766 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
19767
19768 PR target/70439
19769 * config/i386/i386.c (ix86_expand_epilogue): Properly check
19770 conflict between DRAP register and __builtin_eh_return.
19771
19772 2016-03-30 Michael Matz <matz@suse.de>
19773 Richard Biener <rguenther@suse.de>
19774
19775 PR ipa/12392
19776 * ipa-polymorphic-call.c (struct type_change_info): Change
19777 speculative to an unsigned allowing to limit the work we do.
19778 (csftc_abort_walking_p): New inline function..
19779 (check_stmt_for_type_change): Limit the number of may-defs
19780 skipped for speculative devirtualization to
19781 max-speculative-devirt-maydefs.
19782 * params.def (max-speculative-devirt-maydefs): New param.
19783 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
19784
19785 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
19786
19787 PR target/63890
19788 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
19789 and TARGET_MACHO.
19790
19791 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
19792
19793 PR tree-optimization/59124
19794 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
19795 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
19796
19797 2016-03-29 Jeff Law <law@redhat.com>
19798
19799 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
19800
19801 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19802
19803 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
19804 to HOST_WIDE_INT.
19805
19806 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
19807
19808 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
19809 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
19810 gcrt0.o if linking dynamically.
19811
19812 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19813
19814 PR ipa/70283
19815 * ipa-devirt.c (methods_equal_p): New function.
19816 (compare_virtual_tables): Use it.
19817 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
19818 * cgraphclones.c (clone_function_name_1): Use
19819 symbol_table::symbol_suffix_separator.
19820 * coverage.c (build_var): Likewise.
19821 * symtab.c (symbol_table::symbol_suffix_separator): New.
19822
19823 2016-03-29 Jakub Jelinek <jakub@redhat.com>
19824
19825 PR rtl-optimization/70429
19826 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
19827 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
19828 mode != result_mode.
19829
19830 PR c++/70353
19831 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
19832
19833 PR tree-optimization/70405
19834 * ssa-iterators.h (num_imm_uses): Add missing braces.
19835
19836 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
19837
19838 PR rtl-optimization/68695
19839 * ira-color.c (allocno_copy_cost_saving): New.
19840 (improve_allocation): Use it.
19841
19842 2016-03-29 Richard Henderson <rth@redhat.com>
19843
19844 PR middle-end/70355
19845 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
19846
19847 2016-03-29 Richard Biener <rguenther@suse.de>
19848
19849 PR middle-end/70424
19850 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
19851 use alignment returned by get_pointer_alignment_1 if it is
19852 bigger than BITS_PER_UNIT.
19853 * builtins.c (get_pointer_alignment_1): Do not return true
19854 for alignment extracted from SSA info.
19855
19856 2016-03-28 James Bowman <james.bowman@ftdichip.com>
19857
19858 * config/ft32/ft32.opt (mnodiv): New.
19859 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
19860 * doc/invoke.texi (FT32 Options -mnodiv): New.
19861
19862 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
19863
19864 PR target/70406
19865 * config/i386/i386.md (define_split, andn): Fix modes.
19866
19867 2016-03-26 Richard Biener <rguenther@suse.de>
19868 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
19869
19870 PR ipa/70366
19871 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
19872 instead of
19873 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
19874 as 2nd argument to cl_optimization_restore().
19875
19876 2016-03-25 Richard Henderson <rth@redhat.com>
19877
19878 PR target/70120
19879 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
19880 * config/aarch64/aarch64-protos.h: Declare it.
19881 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
19882
19883 2016-03-25 Alan Modra <amodra@gmail.com>
19884
19885 PR target/70052
19886 * config/rs6000/constraints.md (j): Simplify.
19887 * config/rs6000/predicates.md (easy_fp_constant): Exclude
19888 decimal float 0.D.
19889 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
19890 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
19891 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
19892 in all constraint alternatives.
19893 (movtd_64bit_nodm): Delete "j" constraint alternative.
19894
19895 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
19896
19897 * tree-ssa-propagate.c: Enhance docs for
19898 SSA_PROP_NOT_INTERESTING.
19899
19900 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
19901
19902 * doc/extend.texi: Fix typo in documentation to pure attribute.
19903
19904 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
19905
19906 PR target/70319
19907 * config/pa/pa.md (bswapdi2): Use a scratch register.
19908
19909 2016-03-24 Richard Henderson <rth@redhat.com>
19910
19911 PR middle-end/69845
19912 * fold-const.c (extract_muldiv_1): Correct test for multiplication
19913 overflow.
19914
19915 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
19916
19917 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
19918 using ix86_expand_binary_operator instead of gen_andsi3.
19919
19920 2016-03-24 Richard Biener <rguenther@suse.de>
19921
19922 PR tree-optimization/70396
19923 * tree-vect-stmts.c (vectorizable_comparison): Use
19924 get_vectype_for_scalar_type.
19925
19926 2016-03-24 Richard Biener <rguenther@suse.de>
19927
19928 PR middle-end/70370
19929 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
19930 with register bases.
19931
19932 2016-03-24 Richard Biener <rguenther@suse.de>
19933
19934 PR tree-optimization/70372
19935 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
19936 build_all_ones_cst to also handle vector types correctly.
19937
19938 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
19939
19940 PR target/70381
19941 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
19942 -mfloat128 here.
19943
19944 2016-03-23 Marek Polacek <polacek@redhat.com>
19945
19946 PR c++/69884
19947 * doc/invoke.texi: Document -Wignored-attributes.
19948
19949 2016-03-23 Bin Cheng <bin.cheng@arm.com>
19950
19951 PR tree-optimization/69042
19952 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
19953 parameter from 30 to 40.
19954
19955 2016-03-23 Bin Cheng <bin.cheng@arm.com>
19956
19957 PR tree-optimization/69042
19958 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
19959 for use with constant offset stripped in base.
19960
19961 2016-03-23 Richard Biener <rguenther@suse.de>
19962
19963 PR middle-end/70251
19964 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
19965 mode compatibility check.
19966 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
19967
19968 2016-03-23 Jeff Law <law@redhat.com>
19969
19970 PR tree-optimization/64058
19971 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
19972 CONFLICT_COUNT.
19973 (struct ssa_conflicts): Move up earlier in the file.
19974 (conflicts_, var_map_): New static variables.
19975 (initialize_conflict_count): New function to initialize the
19976 CONFLICT_COUNT field for each conflict pair.
19977 (compare_pairs): Lazily initialize the conflict count and use it
19978 as the first tie-breaker.
19979 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
19980 and wipe conflicts_ and map_ around the call to qsort. Remove
19981 special case for 2 coalesce pairs.
19982 * bitmap.c (bitmap_count_unique_bits): New function.
19983 (bitmap_count_bits_in_word): New function, extracted from
19984 bitmap_count_bits.
19985 (bitmap_count_bits): Use bitmap_count_bits_in_word.
19986 * bitmap.h (bitmap_count_unique_bits): Declare it.
19987
19988 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
19989
19990 PR target/69917
19991 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
19992 transparent alias chain for decl assembler name.
19993 * config/sol2.c (solaris_assemble_visibility): Likewise.
19994
19995 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19996
19997 * config/arm/arm1020e.md (1020call_op): Reduce reservation
19998 duration.
19999 (v10_fdivs): Likewise.
20000 (v10_fdivd): Likewise.
20001
20002 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20003
20004 PR driver/70132
20005 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
20006 to not call fclose twice on file.
20007
20008 2016-03-23 Jakub Jelinek <jakub@redhat.com>
20009
20010 PR tree-optimization/70354
20011 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
20012 oprnd0 is wider than oprnd1 and there is a cast from the wider
20013 type to oprnd1, mask it with the mask of the narrower type.
20014
20015 PR target/70321
20016 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
20017 Optimize TARGET_STV splitters, if high or low word of last argument
20018 is 0 or -1.
20019
20020 2016-03-22 Jeff Law <law@redhat.com>
20021
20022 PR target/70232
20023 tree-ssa-threadbackward.c
20024 (fsm_find_control_statement_thread_paths): Correctly distinguish
20025 between old style jump threads vs FSM jump threads.
20026
20027 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
20028
20029 PR target/70302
20030 * config/i386/i386.c (scalar_chain::convert_op): Support
20031 uninitialized register usage case.
20032
20033 2016-03-22 Richard Biener <rguenther@suse.de>
20034
20035 PR middle-end/70251
20036 * genmatch.c (gen_transform): Adjust last parameter to a three-state
20037 int...
20038 (capture::gen_transform): ... to change behavior when substituting
20039 a condition into cond or not-cond expr context.
20040 (dt_simplify::gen_1): Adjust.
20041 * gimple-match-head.c: Include gimplify.h for unshare_expr.
20042 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
20043 last change and instead change to
20044 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
20045 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
20046
20047 2016-03-22 Anthony Green <green@moxielogic.com>
20048
20049 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
20050 issue for moxiebox targets.
20051 (CC1PLUS_SPEC): Ditto.
20052
20053 2016-03-22 Richard Biener <rguenther@suse.de>
20054
20055 PR middle-end/70333
20056 * fold-const.c (extract_muldiv_1): Properly perform multiplication
20057 in the wide type.
20058
20059 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
20060
20061 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
20062
20063 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
20064
20065 PR target/70325
20066 * config/i386/i386.c (def_builtin): Handle
20067 OPTION_MASK_ISA_AVX512VL to be and-ed with other
20068 bits.
20069 (const struct builtin_description bdesc_special_args[]):
20070 Remove duplicate ISA bits.
20071
20072 2016-03-22 Jakub Jelinek <jakub@redhat.com>
20073
20074 PR target/70329
20075 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
20076 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
20077 in a way that works also for AVX512BW.
20078
20079 PR target/70300
20080 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
20081 instead of source if operands[1] is xmm16 and above and
20082 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
20083 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
20084
20085 PR c++/70295
20086 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
20087 on assign if (*from_p) is a comparison, set it to
20088 TREE_NO_WARNING (*from_p).
20089
20090 2016-03-21 Jakub Jelinek <jakub@redhat.com>
20091
20092 PR middle-end/70326
20093 * lra.c (restore_scratches): Ignore deleted insns.
20094
20095 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
20096 Jakub Jelinek <jakub@redhat.com>
20097
20098 PR tree-optimization/70317
20099 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
20100 to HONOR_NANS.
20101
20102 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
20103
20104 PR target/70327
20105 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
20106 of ix86_expand_move.
20107 (movoi): Ditto.
20108 (movti): Use general_operand for operand 1 predicate.
20109
20110 2016-03-21 Martin Liska <mliska@suse.cz>
20111
20112 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
20113 insns.
20114 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
20115
20116 2016-03-21 Martin Liska <mliska@suse.cz>
20117
20118 PR ipa/70306
20119 * ipa-icf.c (sem_function::parse): Skip static
20120 constructors and destructors.
20121
20122 2016-03-21 Jakub Jelinek <jakub@redhat.com>
20123
20124 PR target/70296
20125 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
20126 function-like macro, peek following token(s) if it is followed
20127 by CPP_OPEN_PAREN token with optional padding in between, and
20128 if not, don't treat it like a macro.
20129
20130 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
20131 Alexander Monakov <amonakov@ispras.ru>
20132
20133 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
20134 for the stabs debug format.
20135
20136 2016-03-21 Richard Biener <rguenther@suse.de>
20137
20138 PR tree-optimization/70310
20139 * tree-vect-generic.c (expand_vector_condition): Fold the built
20140 condition.
20141
20142 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
20143
20144 PR target/70293
20145 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
20146 Block third alternative for AVX-512VL target,
20147
20148 2016-03-21 Martin Liska <mliska@suse.cz>
20149
20150 PR hsa/70234
20151 * hsa-brig.c (emit_function_directives): Mark unemitted
20152 global variables for emission.
20153 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
20154 (get_symbol_for_decl): Likewise.
20155 * hsa.h (struct hsa_symbol): New flag.
20156
20157 2016-03-21 Richard Biener <rguenther@suse.de>
20158
20159 PR tree-optimization/70288
20160 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
20161 we do not estimate unsimplified all-constant conditionals or
20162 switches as optimized away.
20163
20164 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
20165
20166 PR rtl-optimization/69102
20167 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
20168 when we have a readonly dependency context.
20169
20170 2016-03-18 Jeff Law <law@redhat.com>
20171
20172 PR rtl-optimization/70263
20173 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
20174 (update_equiv_regs): When trying to move a store to after the insn
20175 that sets the source of the store, make sure the store occurs after
20176 the insn that sets the source of the store. When successful note
20177 the REG_EQUIV note created in the dump file.
20178
20179 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
20180 Bernd Schmidt <bschmidt@redhat.com>
20181
20182 * doc/extend.texi: Document more potential problems with basic asms.
20183
20184 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
20185
20186 PR rtl-optimization/70278
20187 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
20188 VOIDmode.
20189
20190 2016-03-18 Jason Merrill <jason@redhat.com>
20191
20192 * calls.c (load_register_parameters): Fix zero size sibcall logic.
20193
20194 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
20195
20196 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
20197 values to 128b regs.
20198
20199 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
20200
20201 PR tree-optimization/70252
20202 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
20203 boolean vector has a proper number of elements.
20204 (supportable_narrowing_operation): Likewise.
20205
20206 2016-03-18 Tom de Vries <tom@codesourcery.com>
20207
20208 PR ipa/70269
20209 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
20210
20211 2016-03-18 Jakub Jelinek <jakub@redhat.com>
20212
20213 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
20214 instead of replace_rtx for DEBUG_INSNs.
20215
20216 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20217
20218 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
20219 load type reservations.
20220
20221 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
20222
20223 PR target/70188
20224 * config/pa/constraints.md: Revert 2015-02-13 change. Use
20225 define_constraint for "Q" and "T" constraints.
20226
20227 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
20228
20229 Tweak the pipeline model for Exynos M1
20230
20231 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
20232 model.
20233
20234 2016-03-17 David Malcolm <dmalcolm@redhat.com>
20235
20236 PR c/70264
20237 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
20238 where one or both locations aren't within a line_map.
20239
20240 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
20241
20242 PR driver/70192
20243 * opts.c (finish_options): Don't set flag_pie to the default if
20244 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
20245 if it is -1.
20246
20247 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
20248
20249 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
20250 true as ALL_REGS argument to replace_rtx.
20251
20252 2016-03-17 Richard Biener <rguenther@suse.de>
20253
20254 PR debug/70271
20255 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
20256 last.
20257
20258 2016-03-17 Jakub Jelinek <jakub@redhat.com>
20259
20260 PR target/70245
20261 * rtl.h (replace_rtx): Add ALL_REGS argument.
20262 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
20263 equality and assert mode is the same, instead of just rtx pointer
20264 equality.
20265 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
20266 true as ALL_REGS argument to replace_rtx.
20267
20268 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
20269
20270 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
20271 for boolean vector with vector mode only.
20272 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
20273
20274 2016-03-17 Nick Clifton <nickc@redhat.com>
20275
20276 PR target/70162
20277 * config/rx/rx.c (rx_print_integer): Print negative constants in
20278 decimal.
20279
20280 2016-03-17 Jakub Jelinek <jakub@redhat.com>
20281
20282 PR target/70261
20283 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
20284
20285 2016-03-16 Richard Henderson <rth@redhat.com>
20286 Richard Biener <rguenth@suse.de>
20287
20288 PR middle-end/70240
20289 PR middle-end/68215
20290 PR tree-opt/68714
20291 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
20292 first operand as is_gimple_condexpr.
20293
20294 PR middle-end/70240
20295 PR middle-end/68215
20296 Revert r231575
20297 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
20298 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
20299 Do not gimplify the result.
20300 (do_unop): Adjust call to tree_vec_extract.
20301 (do_binop): Likewise.
20302 (do_compare): Likewise.
20303 (do_plus_minus): Likewise.
20304 (do_negate): Likewise.
20305 (expand_vector_condition): Likewise.
20306 (do_cond): Likewise.
20307
20308 2016-03-16 Richard Henderson <rth@redhat.com>
20309
20310 PR target/70048
20311 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
20312 (aarch64_classify_address): Use it.
20313 (aarch64_legitimize_address): Force all subexpressions of PLUS
20314 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
20315
20316 2016-03-16 Jakub Jelinek <jakub@redhat.com>
20317 Richard Biener <rguenth@suse.de>
20318
20319 PR target/70245
20320 * rtlanal.c (replace_rtx): For REG, if from is a REG,
20321 return to even if only REGNO is equal, and assert
20322 mode is the same.
20323
20324 2016-03-11 Jeff Law <law@redhat.com>
20325
20326 PR rtl-optimization/70224
20327 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
20328
20329 2016-03-16 Richard Henderson <rth@redhat.com>
20330
20331 PR middle-end/70199
20332 * function.h (struct function): Add has_forced_label_in_static.
20333 * gimplify.c (force_labels_r): Set it.
20334 * lto-streamer-in.c (input_struct_function_base): Read it.
20335 * lto-streamer-out.c (output_struct_function_base): Write it.
20336 * tree-inline.c (has_label_address_in_static_1): Remove.
20337 (copy_forbidden): Remove fndecl parameter; test
20338 has_forced_label_in_static.
20339 (inline_forbidden_p): Update call to copy_forbidden.
20340 (tree_versionable_function_p): Likewise.
20341 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
20342 (chkp_versioning): Likewise.
20343 * tree-inline.h (copy_forbidden): Update decl.
20344
20345 2016-03-16 Marek Polacek <polacek@redhat.com>
20346
20347 PR c/70093
20348 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
20349 function being thunked if the result type doesn't have fixed size.
20350 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
20351 doesn't have fixed size.
20352
20353 2016-03-16 Bin Cheng <bin.cheng@arm.com>
20354
20355 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
20356 reporting malformed loop nest.
20357
20358 2016-03-16 Tom de Vries <tom@codesourcery.com>
20359
20360 PR lto/70187
20361 * ipa-devirt.c (possible_polymorphic_call_targets): Move
20362 nodes.length () == 1 test to before first nodes[0] access.
20363
20364 2016-03-16 Tom de Vries <tom@codesourcery.com>
20365
20366 PR tree-optimization/68715
20367 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
20368 single_pred_p test.
20369
20370 2016-03-16 Tom de Vries <tom@codesourcery.com>
20371
20372 PR tree-optimization/68809
20373 * graphite-scop-detection.c (same_close_phi_node): Test if result types
20374 are the same.
20375
20376 2016-03-16 Carlos O'Donell <carlos@redhat.com>
20377 Sandra Loosemore <sandra@codesourcery.com>
20378
20379 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
20380 on leaf attribute. Mention ELF interposition problems.
20381
20382 2016-03-16 Alan Modra <amodra@gmail.com>
20383
20384 PR rtl-optimization/69195
20385 PR rtl-optimization/47992
20386 * ira.c (indirect_jump_optimize): Ignore artificial defs.
20387 Add comments.
20388
20389 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
20390
20391 PR bootstrap/69513
20392 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
20393
20394 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
20395
20396 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
20397
20398 2016-03-15 Jakub Jelinek <jakub@redhat.com>
20399
20400 PR rtl-optimization/70222
20401 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
20402 optimization if mode is different from result_mode, queue up masking
20403 of the result in outer_op. Formatting fix.
20404
20405 PR middle-end/70239
20406 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
20407 of safe_grow.
20408
20409 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
20410
20411 PR rtl-optimization/69032
20412 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
20413 looping backwards over basic block insns.
20414
20415 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
20416
20417 PR target/66660
20418 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
20419 to non-speculative when propagating trap bits.
20420
20421 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
20422
20423 PR rtl-optimization/63384
20424 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
20425 DEBUG_INSN_P insns.
20426
20427 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
20428
20429 PR target/64411
20430 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
20431 factored out from ...
20432 (sched_analyze_insn): ... here.
20433 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
20434 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
20435 get_implicit_reg_pending_clobbers in it.
20436 (setup_id_reg_sets): Use setup_id_implicit_regs.
20437 (deps_init_id): Ditto.
20438
20439 2016-03-15 Tom de Vries <tom@codesourcery.com>
20440
20441 PR ipa/70161
20442 * cgraph.c (cgraph_node::get_body): Save, reset and restore
20443 dump_file_name.
20444 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
20445 execute_function_dump.
20446 (execute_one_pass): Don't dump function if it will be dumped after ipa
20447 transform.
20448
20449 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
20450
20451 * genrecog.c (match_pattern_2): If pred is NULL don't call
20452 safe_predicate_mode on it.
20453
20454 2016-03-14 Jakub Jelinek <jakub@redhat.com>
20455
20456 PR middle-end/70219
20457 * lra-constraints.c (delete_move_and_clobber): Change assertion
20458 to also allow dregno == 0.
20459
20460 2016-03-14 Richard Henderson <rth@redhat.com>
20461
20462 PR tree-opt/68714
20463 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
20464 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
20465 (reassociate_bb): Use optimize_vec_cond_expr; avoid
20466 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
20467 on vectors.
20468
20469 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
20470
20471 PR target/70083
20472 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
20473 regs.
20474 (lra_create_live_ranges_1): initialize hard register biggest_mode to
20475 VOIDmode.
20476 * lra-constraints.c (split_reg): For hard regs, try to find the
20477 biggest single-register mode used in the function.
20478
20479 2016-03-14 Richard Biener <rguenther@suse.de>
20480
20481 PR tree-optimization/56365
20482 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
20483 constants to compare against.
20484
20485 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
20486
20487 PR target/70098
20488 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
20489 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
20490 (define_split for the GPR case): Use int_reg_operand instead of
20491 gpc_reg_operand for the output.
20492
20493 2016-03-14 Tom de Vries <tom@codesourcery.com>
20494
20495 PR tree-optimization/70045
20496 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
20497 create_empty_if_region_on_edge argument.
20498
20499 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
20500
20501 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
20502 (STACK_CHECK_PROTECT): Likewise.
20503 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
20504 (STACK_CHECK_PROTECT): Likewise.
20505 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
20506 (STACK_CHECK_PROTECT): Likewise.
20507 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
20508 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20509 (STACK_CHECK_PROTECT): Likewise.
20510
20511 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
20512
20513 PR rtl-optimization/69307
20514 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
20515 registers in modes that span more than one register.
20516
20517 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
20518
20519 PR target/69614
20520 * lra-constraints.c (delete_move_and_clobber): New.
20521 (remove_inheritance_pseudos): Use it.
20522
20523 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
20524
20525 PR ada/70017
20526 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
20527 the libcall is LCT_THROW.
20528 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
20529 for the checking routine.
20530
20531 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
20532
20533 PR target/70131
20534 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
20535 optimization if we have direct move.
20536 (roundu32<mode>2_fprs): Likewise.
20537
20538 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
20539
20540 PR target/70123
20541 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
20542 be rematerialized.
20543 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
20544 Arguments swapped. All callers changed. Take reg_renumber into
20545 account, and Calculate and compare register ranges for hard regs.
20546
20547 2016-03-11 Jeff Law <law@redhat.com>
20548
20549 PR tree-optimization/70190
20550 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20551 Handle cases where we can not extract the taken edge, even though we
20552 found a constant value.
20553
20554 PR tree-optimization/64058
20555 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
20556 (num_coalesce_pairs): Move up earlier in file.
20557 (find_coalesce_pair): Initialize the INDEX field for each pair
20558 discovered.
20559 (compare_pairs): No longer sort on the elements in each pair.
20560 Instead break ties with the index of the coalesce pair.
20561
20562 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20563
20564 PR target/70002
20565 * config/aarch64/aarch64-protos.h
20566 (aarch64_save_restore_target_globals): New prototype.
20567 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
20568 Call the above when popping pragma.
20569 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
20570 New function.
20571 (aarch64_set_current_function): Rewrite using the above.
20572
20573 2016-03-11 Jakub Jelinek <jakub@redhat.com>
20574
20575 PR tree-optimization/70177
20576 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
20577 (extract_ops_from_tree): ... this. In the 2 argument
20578 overload remove _1 suffix.
20579 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
20580 (extract_ops_from_tree): ... this.
20581 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
20582 Adjust callers.
20583 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
20584 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
20585 extract_ops_from_tree instead of 2 operand one.
20586
20587 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
20588
20589 PR tree-optimization/70013
20590 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
20591 for constant-pool entries.
20592
20593 2016-03-11 Jakub Jelinek <jakub@redhat.com>
20594
20595 PR rtl-optimization/70174
20596 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
20597 followed by gen_lowpart on force_reg instead of just gen_lowpart.
20598
20599 PR tree-optimization/70169
20600 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
20601 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
20602 for unknown codes.
20603
20604 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
20605 Jakub Jelinek <jakub@redhat.com>
20606
20607 PR target/70160
20608 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
20609 of uninitialized values.
20610
20611 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20612
20613 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
20614 define_expand.
20615 ("*trunctddd2"): New pattern definition.
20616 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
20617 TD->DD truncation.
20618
20619 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20620
20621 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
20622 definitions for BFP and DFP rounding modes.
20623 ("fixuns_truncdddi2", "fixuns_trunctddi2")
20624 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
20625 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
20626 ("fix_trunctf<mode>2"): Use the new constants instead of magic
20627 numbers.
20628
20629 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20630
20631 * config/s390/constraints.md: Adjust comment.
20632 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
20633 s390_decompose_addrstyle_without_index.
20634 * config/s390/predicates.md (shift_count_or_setmem_operand):
20635 Rename to setmem_operand.
20636 * config/s390/s390-protos.h
20637 (s390_decompose_shift_count): Rename to
20638 s390_decompose_addrstyle_without_index.
20639 * config/s390/s390.c (s390_decompose_shift_count)
20640 (s390_mem_constraint, print_shift_count_operand)
20641 (print_operand_address, print_operand): Rename
20642 s390_decompose_shift_count to
20643 s390_decompose_addrstyle_without_index and rename
20644 print_shift_count_operand to print_addrstyle_operand troughout the
20645 file.
20646 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
20647 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
20648 Rename shift_count_or_setmem_operand to setmem_operand.
20649 * config/s390/vx-builtins.md ("vec_insert<mode>")
20650 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
20651 nonmemory_operand.
20652
20653 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20654
20655 PR target/70168
20656 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
20657 Handle overlapping retval and newval.
20658
20659 2016-03-10 Nick Clifton <nickc@redhat.com>
20660
20661 PR target/7044
20662 * config/aarch64/aarch64.c
20663 (aarch64_override_options_after_change_1): When forcing
20664 flag_omit_frame_pointer to be true, use a special value that can
20665 be detected if this function is called again, thus preventing
20666 flag_omit_leaf_frame_pointer from being forced to be false.
20667
20668 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20669
20670 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
20671 Set x_flag_omit_leaf_frame_pointer when handling
20672 -momit-leaf-frame-pointer.
20673
20674 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20675
20676 PR lto/69589
20677 * cgraph.c (cgraph_node::dump): Dump split_part and
20678 indirect_call_target.
20679 * cgraph.h (cgraph_node): Add indirect_call_target flag.
20680 * ipa.c (has_addr_references_p): Cleanup.
20681 (is_indirect_call_target_p): New.
20682 (walk_polymorphic_call_targets): Do not mark virtuals that may be
20683 called indirectly as local.
20684 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
20685
20686 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20687
20688 PR ipa/69630
20689 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
20690 on cxa_pure_virtual.
20691
20692 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20693
20694 PR lto/69589
20695 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
20696
20697 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20698
20699 PR lto/69589
20700 * tree.c (need_assembler_name_p): Only record main variant type names.
20701
20702 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
20703
20704 PR target/70113.
20705 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
20706 Always define to 0 or 1.
20707 (TARGET_FIX_ERR_A53_843419): New macro.
20708 * config/aarch64/aarch64-elf-raw.h
20709 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
20710 * config/aarch64/aarch64-linux.h: Likewise.
20711 * config/aarch64/aarch64.c
20712 (aarch64_override_options_after_change_1): Do not default
20713 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
20714 843419 is on.
20715 (aarch64_attributes): Handle fix-cortex-a53-843419.
20716 (aarch64_can_inline_p): Likewise.
20717 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
20718
20719 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
20720 Jakub Jelinek <jakub@redhat.com>
20721
20722 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
20723 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
20724 DECL_COMMONS if flag_unconstrained_commons is set.
20725 * tree-dfa.c (get_ref_base_and_extent): Likewise.
20726 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
20727 (funconstrained-commons): Document.
20728
20729 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
20730
20731 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
20732 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
20733
20734 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
20735
20736 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
20737 has a proper number of elements.
20738
20739 2016-03-10 Alan Modra <amodra@gmail.com>
20740
20741 PR rtl-optimization/69195
20742 PR rtl-optimization/47992
20743 * ira.c (recorded_label_ref): Delete.
20744 (update_equiv_regs): Return void.
20745 (indirect_jump_optimize): New function.
20746 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
20747 before regstat_compute_ri. Don't rebuild_jump_labels here.
20748 Delete update_regstat.
20749
20750 2016-03-10 Richard Biener <rguenther@suse.de>
20751
20752 PR tree-optimization/70128
20753 * tree-ssa-structalias.c (set_uids_in_ptset): Set
20754 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
20755
20756 2016-03-09 Jakub Jelinek <jakub@redhat.com>
20757
20758 PR tree-optimization/70152
20759 * tree-sra.c (replace_removed_params_ssa_names): Copy over
20760 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
20761
20762 PR target/70086
20763 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
20764 instead of gen_sse2_loadlpd.
20765 * config/i386/sse.md (*vec_concatv2df): Rename to...
20766 (vec_concatv2df): ... this.
20767
20768 PR tree-optimization/70127
20769 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
20770
20771 2016-03-09 David Malcolm <dmalcolm@redhat.com>
20772
20773 PR c/68473
20774 PR c++/70105
20775 * diagnostic-show-locus.c (compatible_locations_p): New function.
20776 (layout::layout): Sanitize ranges using compatible_locations_p.
20777
20778 2016-03-09 David Malcolm <dmalcolm@redhat.com>
20779
20780 PR c/68473
20781 PR c++/70105
20782 * diagnostic-show-locus.c (layout_range::layout_range): Replace
20783 location_range param with three const expanded_locations * and a
20784 bool.
20785 (layout::layout): Replace call to
20786 rich_location::lazily_expand_location with get_expanded_location.
20787 Extract the range and perform location expansion here, passing
20788 the results to the layout_range ctor.
20789 * diagnostic.c (source_range::debug): Delete.
20790 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
20791 of rich_location::get_expanded_location.
20792 * gcc-rich-location.c (get_range_for_expr): Delete.
20793 (gcc_rich_location::add_expr): Reimplement to avoid the
20794 rich_location::add_range overload that took a location_range,
20795 passing a location_t instead.
20796
20797 2016-03-09 Richard Biener <rguenther@suse.de>
20798 Jakub Jelinek <jakub@redhat.com>
20799
20800 PR tree-optimization/70138
20801 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
20802 Also skip vect_double_reduction_def.
20803
20804 2016-03-09 Jakub Jelinek <jakub@redhat.com>
20805
20806 PR target/70049
20807 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
20808 if the operand is "m".
20809
20810 2016-03-09 Nathan Sidwell <nathan@acm.org>
20811
20812 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
20813
20814 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20815
20816 * config/i386/i386.c (processor_target_table): Fix cost table
20817 intialization order for znver1.
20818
20819 2016-03-08 Jakub Jelinek <jakub@redhat.com>
20820
20821 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
20822 - becuase -> because.
20823 * ipa-reference.c (ignore_module_statics): Likewise.
20824 * cgraph.c (cgraph_node::get_body): Likewise.
20825 * ipa-inline.c (early_inliner): Likewise.
20826 * ipa-devirt.c (types_same_for_odr): Likewise.
20827 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
20828 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
20829
20830 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20831
20832 * tree-ssa-math-opts.c: Fix typo in comment.
20833
20834 2016-03-08 Jakub Jelinek <jakub@redhat.com>
20835
20836 PR target/70110
20837 * config/i386/i386.c (scalar_chain::make_vector_copies,
20838 scalar_chain::convert_reg): Call end_sequence in between
20839 get_insns and emit_conversion_insns rather than after both
20840 calls.
20841
20842 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
20843
20844 PR target/70064
20845 * config/i386/i386.h (machine_function): Add
20846 pc_thunk_call_expanded flag.
20847 (ix86_pc_thunk_call_expanded): New define.
20848 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
20849 (*set_got): Rename insn pattern from set_got.
20850 (*set_got_labelled): Rename inst pattern from set_got_labelled.
20851 * config/i386/i386.c (ix86_compute_frame_layout): Use
20852 ix86_pc_thunk_call_expanded to prevent red-zone.
20853
20854 2016-03-07 Martin Jambor <mjambor@suse.cz>
20855
20856 * hsa.h (hsa_get_ctor_statements): Declare.
20857 (hsa_get_dtor_statements): Likewise.
20858 (hsa_get_kernel_dispatch_type): Likewise.
20859 * hsa.c (hsa_get_ctor_statements): New function.
20860 (hsa_get_dtor_statements): Likewise.
20861 (hsa_get_kernel_dispatch_type): Likewise.
20862 * hsa-brig.c (hsa_cdtor_statements): Removed.
20863 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
20864 hsa_get_dtor_statements.
20865 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
20866 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
20867
20868 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
20869
20870 * config/arm/arm-cores.def (cortex-r8): New.
20871 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
20872 * config/arm/arm-tune.md: Likewise.
20873 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
20874
20875 2016-03-07 Martin Sebor <msebor@redhat.com>
20876
20877 PR rtl-optimization/19705
20878 * doc/invoke.texi (Options That Control Optimization): Clarify
20879 -fno-branch-count-reg.
20880
20881 2016-02-26 Richard Biener <rguenther@suse.de>
20882 Jeff Law <law@redhat.com>
20883
20884 PR tree-optimization/69740
20885 * cfghooks.c (remove_edge): Request loop fixups if we delete
20886 an edge that might turn an irreducible loop into a natural
20887 loop.
20888 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
20889 Move after definition of loops_state_clear.
20890
20891 2016-03-07 Bin Cheng <bin.cheng@arm.com>
20892
20893 PR rtl-optimization/69052
20894 * rtlanal.c (commutative_operand_precedence): Set higher precedence
20895 to CONST_WIDE_INT.
20896
20897 2016-03-07 Tom de Vries <tom@codesourcery.com>
20898
20899 PR tree-optimization/70116
20900 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
20901 is_tm_ending stmts and ubsan/asan internal functions.
20902 (find_duplicate): Use it. Don't test is_tm_ending here.
20903
20904 2016-03-07 Richard Biener <rguenther@suse.de>
20905
20906 PR tree-optimization/70115
20907 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
20908 (propagate_constants_for_unrolling): Use replace_uses_by.
20909
20910 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
20911
20912 PR middle-end/69916
20913 * omp-low.c (struct oacc_loop): Add ifns.
20914 (new_oacc_loop_raw): Initialize it.
20915 (finish_oacc_loop): Clear mask & flags if no ifns.
20916 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
20917 (oacc_loop_xform_loop): Add ifns arg & adjust.
20918 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
20919
20920 2016-03-07 Richard Henderson <rth@redhat.com>
20921
20922 PR rtl-opt/70061
20923 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
20924 (insert_value_copy_on_edge): Likewise.
20925
20926 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20927
20928 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
20929
20930 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20931
20932 PR target/62281
20933 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
20934
20935 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
20936
20937 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
20938
20939 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
20940
20941 Fix sseimul type attribute.
20942 * config/i386/znver1.md
20943 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
20944 znver1_sseimul_avx256_load) : Fix the type attribute.
20945 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
20946 pipe usage and latency.
20947
20948 2016-03-05 Jakub Jelinek <jakub@redhat.com>
20949
20950 PR c++/70084
20951 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
20952 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
20953 to the right type.
20954
20955 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
20956
20957 PR c/69973
20958 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
20959
20960 PR rtl-optimization/69941
20961 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
20962 the reg share its mode.
20963
20964 2016-03-04 Jeff Law <law@redhat.com>
20965
20966 PR tree-optimization/69196
20967 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20968 If the both SSA_NAMEs are anonymous, then consider them unassociated
20969 and include the PHI in the statement count.
20970
20971 2016-03-05 Tom de Vries <tom@codesourcery.com>
20972
20973 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
20974 construct in oacc routine. Check for oacc region in oacc routine.
20975
20976 2016-03-04 Jakub Jelinek <jakub@redhat.com>
20977
20978 PR target/70062
20979 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
20980 2016-02-22 changes, instead don't recurse if RECUR is already true.
20981 Don't change *dynamic_check if RECUR. Adjust recursive caller
20982 to pass true to the new argument.
20983 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
20984
20985 PR target/70059
20986 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
20987 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
20988 fixes.
20989 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
20990
20991 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
20992
20993 PR rtl-optimization/57676
20994 * lra-assigns.c (lra_assign): Guard test for maximum iterations
20995 with flag_checking.
20996
20997 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
20998
20999 * tree-vect-patterns.c (search_type_for_mask): Handle
21000 comparison of booleans.
21001
21002 2016-03-04 Jakub Jelinek <jakub@redhat.com>
21003
21004 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
21005 Fix @xref usage.
21006
21007 PR debug/69947
21008 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
21009 all other ops that have dw_val_class_die_ref operands,
21010 and DW_OP_GNU_entry_value.
21011
21012 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21013
21014 PR rtl-optimization/69904
21015 * config/arm/arm.c (arm_cannot_copy_insn_p):
21016 Return true for load-exclusive instructions.
21017
21018 2016-03-03 Jakub Jelinek <jakub@redhat.com>
21019
21020 PR target/70021
21021 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
21022 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
21023 the pattern no matter if it is used just by non-pattern, pattern
21024 or mix thereof.
21025 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
21026 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
21027 oprnd1 def_stmt is in pattern, don't look through it.
21028
21029 2016-03-03 Marek Polacek <polacek@redhat.com>
21030
21031 PR middle-end/70050
21032 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
21033
21034 2016-03-03 Martin Liska <mliska@suse.cz>
21035
21036 PR tree-optimization/70043
21037 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
21038 previous statement if we see a debug statement.
21039
21040 2016-03-03 Richard Biener <rguenther@suse.de>
21041
21042 PR tree-optimization/55936
21043 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
21044 parameter and guard unsafe equivalence use.
21045 (vrp_evaluate_conditional_warnv_with_ops): Always use
21046 safe equivalences but not via the quadratic compare_names
21047 helper.
21048
21049 2016-03-03 Michael Collison <michael.collison@linaro.org>
21050
21051 PR target/70014
21052 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
21053 for operand 1 to s_register_operand. Change predicate for operand
21054 2 to arm_not_immediate_operand.
21055
21056 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
21057
21058 * doc/tm.texi: Regenerated.
21059
21060 2016-03-02 Richard Henderson <rth@redhat.com>
21061
21062 PR rtl-opt/67145
21063 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
21064 simplification when all args are positive non-fixed registers.
21065
21066 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21067
21068 * target.def (lra_p): Specify that new ports should use LRA.
21069
21070 2016-03-02 Jakub Jelinek <jakub@redhat.com>
21071
21072 PR libgomp/69555
21073 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
21074 gimplify_type_sizes the type they refer to.
21075 (omp_notice_variable): Handle reference vars to VLAs.
21076 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
21077 reference to VLA decls in the second pass instead of first pass.
21078
21079 2016-03-02 Tom de Vries <tom@codesourcery.com>
21080
21081 PR tree-optimization/68659
21082 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
21083 new_expr == NULL_TREE.
21084 (get_new_name): Handle ADDR_EXPR.
21085
21086 2016-03-02 Bin Cheng <bin.cheng@arm.com>
21087
21088 PR rtl-optimization/69052
21089 * loop-invariant.c (canonicalize_address): New function.
21090 (inv_can_prop_to_addr_use): Check validity of address expression
21091 which is canonicalized by above function.
21092
21093 2016-03-02 Alan Modra <amodra@gmail.com>
21094
21095 PR ipa/69990
21096 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
21097 larger alignment.
21098
21099 2016-03-02 Jakub Jelinek <jakub@redhat.com>
21100
21101 PR target/70028
21102 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
21103 (*movhi_internal): Put mask moves from and to memory separately
21104 from moves from/to GPRs.
21105
21106 2016-03-02 Richard Biener <rguenther@suse.de>
21107
21108 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
21109 GENERIC expressions in GIMPLE.
21110
21111 2016-03-02 Richard Biener <rguenther@suse.de>
21112
21113 * config/i386/i386.c (type_natural_mode): Fix typo.
21114
21115 2016-03-02 Nick Clifton <nickc@redhat.com>
21116
21117 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
21118
21119 2016-03-02 Richard Biener <rguenther@suse.de>
21120 Uros Bizjak <ubizjak@gmail.com>
21121
21122 PR target/67278
21123 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
21124
21125 2016-03-02 Richard Biener <rguenther@suse.de>
21126
21127 PR middle-end/67278
21128 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
21129
21130 2016-03-02 Marek Polacek <polacek@redhat.com>
21131
21132 PR c/67854
21133 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
21134 "is promoted to" warning.
21135
21136 2016-03-01 DJ Delorie <dj@redhat.com>
21137
21138 * config.gcc: Deprecate mep-*.
21139
21140 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
21141
21142 PR middle-end/70025
21143 * lra-constraints.c (regno_val_use_in): New.
21144 (match_reload): Use it instead of regno_use_in.
21145
21146 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
21147
21148 PR rtl-optimization/70007
21149 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
21150 references present in REG_EQUAL notes attached to non-SET patterns.
21151
21152 2016-03-01 Jeff Law <law@redhat.com>
21153
21154 PR tree-optimization/69196
21155 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
21156 Appropriately clamp the number of statements to copy when the
21157 thread path does not traverse a loop backedge.
21158
21159 PR tree-optimization/69196
21160 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
21161 Do count some PHIs in the thread path against the insn count. Decrease
21162 final statement count by one as the control statement in the last
21163 block will get removed. Remove special cased code for handling PHIs
21164 in the last block.
21165
21166 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
21167
21168 PR target/70027
21169 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
21170 asm dialect alternatives to explicit GOTPCREL calls.
21171
21172 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
21173
21174 PR ada/70017
21175 * ira.c (do_reload): Issue warning for generic stack checking here...
21176 * reload1.c (reload): ...instead of here and streamline it.
21177
21178 2016-03-01 Nick Clifton <nickc@redhat.com>
21179
21180 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
21181
21182 2016-03-01 Richard Biener <rguenther@suse.de>
21183
21184 PR tree-optimization/69983
21185 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
21186 types and fall back to operand_equal_p.
21187
21188 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21189
21190 Revert
21191 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21192
21193 * config/s390/constraints.md ("jm8"): New constraint.
21194 * config/s390/predicates.md ("const_int_8bitset_operand"): New
21195 predicate.
21196 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
21197 into ...
21198 ("*setmem_long<setmem_and>"): New pattern.
21199 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
21200 into ...
21201 ("*setmem_long_31z<setmem_and>"): New pattern.
21202 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
21203 New substitution rules with the required attributes.
21204
21205
21206 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21207
21208 Revert
21209 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21210
21211 * gensupport.c (process_substs_on_one_elem): Split loop to
21212 complete mark_operands_used_in_match_dup on all expressions in the
21213 vector first.
21214 (adjust_operands_numbers): Inline into process_substs_on_one_elem
21215 and remove function.
21216
21217 2016-03-01 Richard Biener <rguenther@suse.de>
21218
21219 PR middle-end/70022
21220 * fold-const.c (fold_indirect_ref_1): Fix range checking for
21221 vector BIT_FIELD_REF extract.
21222
21223 2016-03-01 Richard Biener <rguenther@suse.de>
21224
21225 PR tree-optimization/69994
21226 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
21227
21228 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
21229
21230 PR tree-optimization/69956
21231 * tree-vect-stmts.c (supportable_widening_operation): Support
21232 multi-step conversion of boolean vectors.
21233 (supportable_narrowing_operation): Likewise.
21234
21235 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21236
21237 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
21238 anymore.
21239
21240 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21241
21242 * config/s390/subst.md (DSI_VI): New mode iterator.
21243 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
21244 * config/s390/vector.md ("vec_set<mode>"): Move expander before
21245 the insn definition.
21246 ("*vec_set<mode>"): Change predicate and add alternative to
21247 support only either register or const_int operands as element
21248 selector.
21249 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
21250 operands.
21251 ("vec_extract<mode>"): New expander.
21252 ("*vec_extract<mode>"): New insn definition supporting reg and
21253 const_int element selectors.
21254 ("*vec_extract<mode>_plus"): New insn definition supporting
21255 reg+const_int element selectors.
21256 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
21257 following expander+insn definition.
21258 ("<vec_shifts_name><mode>3"): New expander.
21259 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
21260
21261 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21262
21263 * config/s390/s390.md ("*tabort_1"): Change predicate to
21264 nonmemory_operand. Add a second alternative to cover
21265 register as well as const int operands.
21266 ("*tabort_1_plus"): New pattern definition.
21267
21268 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21269
21270 * config/s390/s390.md ("*ashrdi3_cc_31")
21271 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
21272 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
21273 Merge insn definitions into ...
21274 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
21275 New pattern definition.
21276 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
21277 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
21278 ("*ashr<mode>3_and"): Merge insn definitions into ...
21279 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
21280 New pattern definition.
21281 * config/s390/subst.md ("addr_style_op_cc_subst")
21282 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
21283 substitutions patterns plus attributes.
21284 Add ashiftrt to SUBST iterator.
21285
21286 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21287
21288 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
21289 op2 to nonmemory_operand.
21290 ("*<shift>di3_31", "*<shift>di3_31_and"):
21291 Merge into single pattern definition ...
21292 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
21293 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
21294 pattern definition ...
21295 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
21296 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
21297 iterator.
21298
21299 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21300
21301 * config/s390/predicates.md (const_int_6bitset_operand): New
21302 predicate.
21303 * config/s390/s390.md: Include subst.md.
21304 ("rotl<mode>3"): New expander.
21305 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
21306 ...
21307 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
21308 * config/s390/subst.md: New file.
21309
21310 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21311
21312 * config/s390/s390.md ("op_type", "atype", "length" attributes):
21313 Remove RRR type. It doesn't really exist.
21314 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
21315 attributes.
21316 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
21317 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
21318 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
21319 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
21320 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
21321 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
21322 `enabled' attribute.
21323
21324 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21325
21326 * gensupport.c (process_substs_on_one_elem): Split loop to
21327 complete mark_operands_used_in_match_dup on all expressions in the
21328 vector first.
21329 (adjust_operands_numbers): Inline into process_substs_on_one_elem
21330 and remove function.
21331
21332 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
21333
21334 PR target/69706
21335 * config/sparc/sparc.c (NWORDS_UP): Rename to...
21336 (CEIL_NWORDS): ...this. Use CEIL macro.
21337 (compute_fp_layout): Adjust to above renaming.
21338 (function_arg_union_value): Likewise.
21339 (sparc_arg_partial_bytes): Likewise.
21340 (sparc_function_arg_advance): Likewise.
21341
21342 2016-02-29 Jeff Law <law@redhat.com>
21343
21344 PR tree-optimization/70005
21345 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
21346 where an object with a boolean range is compared against a value
21347 outside [0..1].
21348
21349 PR tree-optimization/69999
21350 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
21351 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
21352 loop cleanups.
21353
21354 2016-02-29 Richard Biener <rguenther@suse.de>
21355
21356 PR tree-optimization/69994
21357 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
21358 (get_unary_op): Look through nop conversions.
21359 (ops_equal_values_p): New function, look for equality diregarding
21360 nop conversions.
21361 (eliminate_plus_minus_pair): Use ops_equal_values_p
21362 (repropagate_negates): Do not use get_unary_op here.
21363
21364 2016-02-29 Martin Liska <mliska@suse.cz>
21365
21366 * system.h: Poison ENABLE_CHECKING macro.
21367
21368 2016-02-29 Martin Liska <mliska@suse.cz>
21369
21370 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
21371 is presented in dump flags.
21372 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
21373 (hsa_regalloc): Likewise.
21374
21375 2016-02-19 Richard Biener <rguenther@suse.de>
21376
21377 PR tree-optimization/69980
21378 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
21379 permutation of those we need to keep.
21380
21381 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
21382
21383 PR target/69706
21384 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
21385 (NWORDS_UP): ...this
21386 (init_cumulative_args): Minor tweaks.
21387 (sparc_promote_function_mode): Likewise.
21388 (scan_record_type): Delete.
21389 (traverse_record_type): New function template.
21390 (classify_data_t): New structure type.
21391 (classify_registers): New inline function.
21392 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
21393 exhausted. Instantiate traverse_record_type on classify_registers and
21394 deal with the case of a structure passed in slot #15 with no FP field
21395 in the first word.
21396 (assign_data_t): New structure type.
21397 (compute_int_layout): New static function.
21398 (compute_fp_layout): Likewise.
21399 (count_registers): New inline function.
21400 (assign_int_registers): New static function.
21401 (assign_fp_registers): Likewise.
21402 (assign_registers): New inline function.
21403 (function_arg_record_value_1): Delete.
21404 (function_arg_record_value_2): Likewise.
21405 (function_arg_record_value_3): Likewise.
21406 (function_arg_record_value): Adjust to above changes. Instantiate
21407 traverse_record_type on count_registers to first count the number of
21408 registers to be used and then on assign_registers to assign them.
21409 (function_arg_union_value): Adjust to above renaming.
21410 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
21411 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
21412 case of a structure passed in slot #15
21413 (sparc_function_arg_advance): Likewise.
21414 (function_arg_padding): Minor tweak.
21415
21416 2016-02-29 Richard Biener <rguenther@suse.de>
21417
21418 PR tree-optimization/69720
21419 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
21420 the adjustment_def path for possibly vectorized defs.
21421 (vect_create_epilog_for_reduction): Handle vectorized initial
21422 defs properly.
21423
21424 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
21425
21426 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
21427
21428 2016-02-27 Jeff Law <law@redhat.com>
21429
21430 Revert
21431 2016-02-26 Richard Biener <rguenther@suse.de>
21432 Jeff Law <law@redhat.com>
21433
21434 PR tree-optimization/69740
21435 * cfghooks.c (remove_edge): Request loop fixups if we delete
21436 an edge that might turn an irreducible loop into a natural
21437 loop.
21438
21439 2016-02-27 Jakub Jelinek <jakub@redhat.com>
21440
21441 PR rtl-optimization/69896
21442 * tree-vect-generic.c (get_compute_type): Avoid single element
21443 vector types.
21444
21445 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
21446
21447 Rename the AArch64 tuning option and related functions to enable the
21448 Newton series for the reciprocal square root to reflect its
21449 approximative characteristic.
21450
21451 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
21452 function to "aarch64_emit_approx_rsqrt".
21453 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
21454 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
21455 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
21456 (xgene1_tunings): Likewise.
21457 (use_rsqrt_p): Likewise.
21458 (aarch64_emit_swrsqrt): Use new function name.
21459 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
21460 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
21461 text explaining this option.
21462 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
21463
21464 2016-02-26 Jakub Jelinek <jakub@redhat.com>
21465
21466 PR target/69969
21467 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
21468 complain about -mallow-movmisalign without -mvsx if
21469 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
21470
21471 2016-02-26 Joel Sherrill <joel@rtems.org>
21472
21473 * config.gcc: Add x86_64-*-rtems*.
21474 * config/i386/rtems-64.h: New file.
21475
21476 2016-02-26 Joel Sherrill <joel@rtems.org>
21477
21478 * config.gcc: Add aarch64-*-rtems*.
21479 * config/aarch64/rtems.h: New file.
21480
21481 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
21482
21483 PR target/69946
21484 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
21485 shift amount using %h. Add comment.
21486
21487 2016-02-26 Richard Biener <rguenther@suse.de>
21488 Jeff Law <law@redhat.com>
21489
21490 PR tree-optimization/69740
21491 * cfghooks.c (remove_edge): Request loop fixups if we delete
21492 an edge that might turn an irreducible loop into a natural
21493 loop.
21494
21495 2016-02-26 Martin Jambor <mjambor@suse.cz>
21496
21497 PR middle-end/69920
21498 * tree-sra.c (sra_modify_assign): Do not remove loads of
21499 uninitialized aggregates to SSA_NAMEs.
21500
21501 2016-02-26 Richard Henderson <rth@redhat.com>
21502
21503 PR target/69709
21504 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
21505 pseudo in case the target rtx matches the source of the left
21506 shift.
21507
21508 2016-02-26 Martin Jambor <mjambor@suse.cz>
21509
21510 PR hsa/69568
21511 * hsa.h (hsa_type_packed_p): Declare.
21512 * hsa.c (hsa_type_packed_p): New function.
21513 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
21514 loads.
21515 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
21516 * hsa-brig.c (emit_basic_insn): Likewise.
21517
21518 2016-02-26 Martin Jambor <mjambor@suse.cz>
21519
21520 pr hsa/69674
21521 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
21522 pointers.
21523 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
21524
21525 2016-02-26 Martin Jambor <mjambor@suse.cz>
21526
21527 * hsa.h (is_a_helper): New overload for hsa_op_immed for
21528 hsa_op_with_type operands.
21529 (hsa_unsigned_type_for_type): Declare.
21530 * hsa.c (hsa_unsigned_type_for_type): New function.
21531 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
21532 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
21533 the finalizer. Do not emit extra move.
21534
21535 2016-02-26 Martin Jambor <mjambor@suse.cz>
21536
21537 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
21538 atomic operations in private segment.
21539
21540 2016-02-26 Martin Jambor <mjambor@suse.cz>
21541
21542 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
21543 statements to wi->info. Also disallow omp simd constructs.
21544 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
21545 for not gridifying. Dump special string for omp_for.
21546
21547 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21548
21549 PR target/69245
21550 * config/aarch64/aarch64.c (aarch64_set_current_function):
21551 Save/restore target globals when switching to
21552 target_option_default_node.
21553
21554 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21555
21556 PR target/69613
21557 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
21558 Return 0 if !SHIFT_COUNT_TRUNCATED.
21559
21560 2016-02-26 Jakub Jelinek <jakub@redhat.com>
21561 Eric Botcazou <ebotcazou@adacore.com>
21562
21563 PR rtl-optimization/69891
21564 * dse.c (scan_insn): If we can't figure out memset arguments
21565 or they are non-constant, call clear_rhs_from_active_local_stores.
21566
21567 2016-02-26 Martin Liska <mliska@suse.cz>
21568
21569 * doc/extend.texi: Mention clog10, clog10f an clog10l
21570 in Builtins section.
21571
21572 2016-02-26 Martin Liska <mliska@suse.cz>
21573
21574 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
21575 CHECKING_P.
21576 (resolve_args_picking_1): Likewise.
21577 * dwarf2out.h (struct GTY): Likewise.
21578
21579 2016-02-26 Martin Liska <mliska@suse.cz>
21580
21581 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
21582 with flag_checking.
21583 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
21584
21585 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
21586 Martin Liska <mliska@suse.cz>
21587
21588 * doc/install.texi: Mention --enable-valgrind-annotations.
21589
21590 2016-02-26 Richard Biener <rguenther@suse.de>
21591
21592 PR tree-optimization/69551
21593 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
21594 looking through aliases adjust DECL_PT_UID to refer to the
21595 ultimate alias target.
21596
21597 2016-02-25 Martin Liska <mliska@suse.cz>
21598
21599 PR middle-end/69919
21600 * alloc-pool.c (after_memory_report): New variable.
21601 * alloc-pool.h (base_pool_allocator ::release): Do not use
21602 the infrastructure if after_memory_report.
21603 * toplev.c (toplev::main): Mark after memory report.
21604
21605 2016-02-25 Richard Biener <rguenther@suse.de>
21606
21607 PR tree-optimization/48795
21608 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
21609
21610 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
21611
21612 PR driver/68463
21613 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
21614 offloading is enabled and -fopenacc or -fopenmp is specified.
21615 (CRTOFFLOADEND): Likewise.
21616 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
21617 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
21618 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
21619 (offload_objects_file_name): New static var.
21620 (tool_cleanup): Remove offload_objects_file_name file.
21621 (find_offloadbeginend): Replace with ...
21622 (find_crtoffloadtable): ... this.
21623 (run_gcc): Remove offload_argc and offload_argv.
21624 Get offload_objects_file_name from -foffload-objects=... option.
21625 Read names of object files with offload from this file, pass them to
21626 compile_images_for_offload_targets. Don't call find_offloadbeginend and
21627 don't pass offloadbegin and offloadend to the linker. Don't pass
21628 offload non-LTO files to the linker, because now they're not claimed.
21629
21630 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
21631
21632 PR ipa/69630
21633 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
21634 on builtin_unreachable.
21635
21636 2016-02-25 Jakub Jelinek <jakub@redhat.com>
21637
21638 PR rtl-optimization/69896
21639 * regcprop.c: Include cfgrtl.h.
21640 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
21641 than remembered mode, either delete it (if noop_move_p), or
21642 treat like copy_p but not noop_p instruction.
21643
21644 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21645
21646 PR debug/69705
21647 * dwarf2out.c (gen_variable_die): Work around buggy LTO
21648 - allow NULL decl for Fortran DW_TAG_common_block variables.
21649
21650 2016-02-24 Jason Merrill <jason@redhat.com>
21651
21652 * common.opt (flifetime-dse): Add -flifetime-dse=1.
21653
21654 2016-02-24 Richard Biener <rguenther@suse.de>
21655 Jakub Jelinek <jakub@redhat.com>
21656
21657 PR middle-end/69760
21658 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
21659 conditionally executed ops to well-defined overflow behavior.
21660
21661 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21662
21663 PR middle-end/69915
21664 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
21665 elements.
21666
21667 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21668
21669 PR rtl-optimization/69886
21670 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
21671 argument. Use it when checking validity of set instructions.
21672 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
21673 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
21674 callsite.
21675 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
21676 * store-motion.c (find_moveable_store): Update
21677 can_assign_to_reg_without_clobbers_p callsite.
21678
21679 2016-02-24 Richard Biener <rguenther@suse.de>
21680
21681 PR middle-end/68963
21682 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
21683 bogus check.
21684 (record_nonwrapping_iv): Do not fall back to the low/high bound
21685 for non-constant IV bases if the stmt is not always executed.
21686
21687 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21688
21689 * config/arm/arm-cores.def (cortex-a32): New entry.
21690 * config/arm/arm-tables.opt: Regenerate.
21691 * config/arm/arm-tune.md: Regenerate.
21692 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
21693 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
21694 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
21695 for -mcpu and -mtune.
21696
21697 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21698
21699 PR target/69875
21700 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
21701 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
21702 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
21703 (atomic_loaddi_1): Delete.
21704 (atomic_loaddi): Rewrite expander using the above changes.
21705
21706 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21707
21708 PR c/69918
21709 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
21710 2 to 3.
21711
21712 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21713 Richard Biener <rguenth@suse.de>
21714
21715 PR middle-end/69909
21716 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
21717 set_mem_attributes if tem is SSA_NAME which got expanded
21718 as a MEM.
21719
21720 2016-02-24 Richard Biener <rguenther@suse.de>
21721
21722 PR tree-optimization/69907
21723 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
21724 end of permutations for BB vectorization.
21725
21726 2016-02-24 Christian Bruel <christian.bruel@st.com>
21727
21728 * config/arm/arm-c.c (arm_option_override): Initialize
21729 target_option_current_node.
21730 * config/arm/arm.c (arm_pragma_target_parse): Replace
21731 build_target_option_node call by target_option_current_node.
21732 Set target_option_current_node.
21733 Fix comments.
21734
21735 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
21736
21737 PR target/69810
21738 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
21739 define_insn_and_split to define_insn.
21740 (zero_extendqi<mode>2_dot2): Same.
21741 (extendqi<mode>2_dot): Same.
21742 (extendqi<mode>2_dot2): Same.
21743
21744 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
21745
21746 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
21747 and add bypass for AES{D,E} and AESMC pairs.
21748 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
21749 and AESMC pairs.
21750
21751 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
21752
21753 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
21754 series for reciprocal square root in Exynos M1.
21755
21756 2016-02-23 Martin Sebor <msebor@redhat.com>
21757
21758 PR c/69759
21759 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
21760 __builtin_alloca_with_align.
21761
21762 2016-02-23 Richard Henderson <rth@redhat.com>
21763
21764 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
21765 (ix86_register_pragmas): Remove __seg_tls.
21766 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
21767 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
21768 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
21769 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
21770 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
21771 * doc/extend.texi (__seg_tls): Remove item.
21772
21773 2016-02-23 Richard Biener <rguenther@suse.de>
21774
21775 * alloc-pool.h (struct allocation_object): Make id member
21776 conditional on CHECKING_P again.
21777 (get_instance): Adjust.
21778 (base_pool_allocator): Likewise.
21779
21780 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
21781
21782 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
21783 (parallelize_loops): In OpenACC kernels mode, set n_threads to
21784 zero.
21785 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
21786 flag_openacc.
21787 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
21788
21789 2016-02-23 Richard Biener <rguenther@suse.de>
21790
21791 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
21792 * bitmap.h (struct bitmap_usage): Likewise.
21793 (bitmap_move): Declare.
21794 * bitmap.c (register_overhead): Take size_t argument.
21795 (bitmap_move): New function.
21796 * df-problems.c (df_rd_transfer_function): Use bitmap_move
21797 to properly account overhead.
21798 * tree.c (free_node): Use tree_size.
21799
21800 2016-02-23 Jakub Jelinek <jakub@redhat.com>
21801
21802 PR c++/69902
21803 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
21804 when inverting comparison.
21805
21806 PR c/69900
21807 * common.opt (Wunreachable-code): Add Warning flag.
21808
21809 2016-02-23 Mark Wielaard <mjw@redhat.com>
21810 Jakub Jelinek <jakub@redhat.com>
21811
21812 PR c/69911
21813 * cgraphunit.c (check_global_declaration): Check main_input_filename
21814 and DECL_SOURCE_FILE are not NULL.
21815
21816 2016-02-23 Martin Jambor <mjambor@suse.cz>
21817
21818 PR tree-optimization/69666
21819 * tree-sra.c (sra_modify_assign): Do not attempt to create
21820 default_def replacements for unscalarizable regions.
21821
21822 2016-02-20 Mark Wielaard <mjw@redhat.com>
21823
21824 PR c/28901
21825 * cgraphunit.c (check_global_declaration): Check level of
21826 warn_unused_const_variable and main_input_filename.
21827 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
21828 (-Wunused-variable): For C implies -Wunused-const-variable=1.
21829 (-Wunused-const-variable): Explain levels 1 and 2.
21830
21831 2016-02-22 Jakub Jelinek <jakub@redhat.com>
21832
21833 PR target/69888
21834 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
21835 identical arguments. Formatting and spelling fixes.
21836
21837 PR target/69885
21838 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
21839 be specified.
21840
21841 PR target/69894
21842 PR target/69895
21843 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
21844 and m68k-devices.def.
21845 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
21846 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
21847
21848 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
21849
21850 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
21851 and HImode registers.
21852
21853 2016-02-22 Richard Biener <rguenther@suse.de>
21854
21855 PR tree-optimization/69882
21856 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
21857 preserve permutations present because of gaps.
21858 (vect_supported_load_permutation_p): Always continue checking
21859 permutations after vect_attempt_slp_rearrange_stmts.
21860
21861 2016-02-22 Bin Cheng <bin.cheng@arm.com>
21862
21863 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
21864 min_profitable_estimate, rather than min_profitable_iters.
21865
21866 2016-02-22 Jakub Jelinek <jakub@redhat.com>
21867
21868 PR target/69885
21869 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
21870 SImode for last match_operand.
21871
21872 2016-02-22 Martin Liska <mliska@suse.cz>
21873
21874 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
21875 return bitsize - 1 as the return value.
21876
21877 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
21878
21879 PR target/69806
21880 PR target/54089
21881 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
21882 Handle negative shift counts.
21883 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
21884 force_reg on the shift constant.
21885 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
21886 (lshrsi3_d): Handle negative shift counts.
21887
21888 2016-02-22 Richard Biener <rguenther@suse.de>
21889 Tom de Vries <tom@codesourcery.com>
21890
21891 * graph.c: Include dumpfile.h.
21892 (print_graph_cfg): Split into three overloads.
21893 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
21894
21895 2016-02-22 Tom de Vries <tom@codesourcery.com>
21896
21897 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
21898 dump-fn.
21899
21900 2016-02-22 Richard Biener <rguenther@suse.de>
21901
21902 PR ipa/37448
21903 * ipa-inline-transform.c (inline_call): When not updating
21904 overall summaries adjust self size by the growth estimate.
21905 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
21906 hash-set, do not update overall summaries here. Renamed from ...
21907 (inline_to_all_callers): ... this which is now wrapping the
21908 above and performing delayed overall summary update.
21909 (early_inline_small_functions): Delay updating of the overall
21910 summary.
21911
21912 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
21913
21914 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
21915 variable.
21916
21917 2016-02-19 Jakub Jelinek <jakub@redhat.com>
21918
21919 PR driver/69805
21920 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
21921 :%* in %:gt() argument.
21922 (greater_than_spec_func): Adjust for expecting only numbers,
21923 if there are more than two numbers, compare the last two.
21924
21925 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
21926
21927 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
21928 -Wnarrowing with -std.
21929
21930 2016-02-19 Jakub Jelinek <jakub@redhat.com>
21931
21932 PR c++/69851
21933 * expr.c (store_field): Don't use bit-field path if exp is
21934 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
21935 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
21936 and the assignment can be performed by bitwise copy. Formatting
21937 fix.
21938
21939 PR middle-end/69838
21940 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
21941 call copy_reg_eh_region_note_forward on before and/or after sequences
21942 and remove note from insn if it no longer can throw.
21943
21944 PR target/69820
21945 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
21946 if TARGET_AVX512BW.
21947
21948 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21949
21950 * config/s390/vector.md: Add missing commutative operand markers
21951 to the patterns which qualify for one.
21952 * config/s390/vx-builtins.md: Likewise.
21953
21954 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21955
21956 * config/s390/vector.md (VI, VI_QHS): Add single element vector
21957 types to mode iterators.
21958 (vec_double): ... and mode attribute.
21959 * config/s390/vx-builtins.md (non_vec_int): Likewise.
21960
21961 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21962
21963 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
21964 Change the predicate of op2 from nonimmediate to general and let
21965 reload fix it if necessary.
21966
21967 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21968
21969 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
21970
21971 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21972
21973 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
21974 mode.
21975
21976 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21977
21978 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
21979 * config/s390/s390.c (s390_expand_vec_movstr): New function.
21980 * config/s390/s390.md ("movstr<P:mode>"): Call
21981 s390_expand_vec_movstr.
21982
21983 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21984
21985 * config/s390/s390.md: Add missing output modifier for operand 1
21986 to print it as address properly.
21987
21988 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21989
21990 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
21991 * config/s390/2964.md: New file.
21992 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
21993 of insn grouping attributes depending on the CPU level.
21994 (s390_get_unit_mask): New function.
21995 (s390_sched_score): Remove the OOO from the scheduling macros.
21996 Add loop to calculate a score for the instruction mix.
21997 (s390_sched_reorder): Likewise plus improve debug output.
21998 (s390_sched_variable_issue): Rename macros as above. Calculate
21999 the unit distances after actually scheduling an insn. Improve
22000 debug output.
22001 (s390_sched_init): Clear last_scheduled_unit_distance array.
22002 * config/s390/s390.md: Include 2964.md.
22003
22004 2016-02-18 Jakub Jelinek <jakub@redhat.com>
22005
22006 PR target/69671
22007 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
22008 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
22009 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
22010 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
22011 *avx512f_<code>v8div16qi2_mask_1): New insns.
22012
22013 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
22014
22015 PR target/68404
22016 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
22017 2016-02-09 change.
22018
22019 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
22020 earlyclobber from target. Use wF constraint for fused memory
22021 address.
22022 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
22023
22024 2016-02-18 Jakub Jelinek <jakub@redhat.com>
22025 Martin Liska <mliska@suse.cz>
22026
22027 PR sanitizer/69863
22028 * cfgexpand.c (asan_sanitize_stack_p): New function.
22029 (partition_stack_vars): Use the function.
22030 (expand_stack_vars): Likewise.
22031 (defer_stack_allocation): Likewise.
22032 (expand_used_vars): Likewise.
22033
22034 2016-02-18 Richard Biener <rguenther@suse.de>
22035
22036 PR middle-end/69553
22037 * fold-const.c (operand_equal_p): Properly compare offsets for
22038 IMAGPART_EXPR and ARRAY_REF.
22039
22040 2016-02-18 Nick Clifton <nickc@redhat.com>
22041
22042 PR target/62254
22043 PR target/69610
22044 * config/arm/arm.c (arm_option_override_internal): Disable
22045 interworking if the target does not support thumb instructions.
22046 (arm_reload_in_hi): Handle the case where a register to register
22047 move needs reloading because there is no simple pattern to handle
22048 it.
22049 (arm_reload_out_hi): Likewise.
22050
22051 2016-02-18 Richard Biener <rguenther@suse.de>
22052
22053 PR middle-end/69854
22054 * match.pd: Don't use fold_binary or fold_unary for folding
22055 constants.
22056
22057 2016-02-17 Jakub Jelinek <jakub@redhat.com>
22058
22059 PR c++/69850
22060 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
22061 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
22062 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
22063 warn on gimple_no_warning_p statements.
22064
22065 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
22066
22067 * doc/extend.texi (C++ Attributes): Correct description of
22068 warn_unused type attribute.
22069
22070 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22071
22072 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
22073 correct instruction.
22074
22075 2016-02-17 Richard Biener <rguenther@suse.de>
22076
22077 PR rtl-optimization/69609
22078 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
22079 (find_traces_1_round): When ending a trace update cached priority
22080 of successors.
22081 (bb_to_key): Use cached priority when available.
22082 (copy_bb): Initialize cached priority.
22083 (reorder_basic_blocks_software_trace_cache): Likewise.
22084
22085 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22086
22087 PR target/69161
22088 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
22089 New predicate.
22090 (aarch64_comparison_operator): Break overly long line into two.
22091 (aarch64_comparison_operation): Likewise.
22092 * config/aarch64/aarch64.md (cstorecc4): Use
22093 aarch64_comparison_operator_mode instead of
22094 aarch64_comparison_operator.
22095 (cstore<mode>4): Likewise.
22096 (aarch64_cstore<mode>): Likewise.
22097 (*cstoresi_insn_uxtw): Likewise.
22098 (cstore<mode>_neg): Likewise.
22099 (*cstoresi_neg_uxtw): Likewise.
22100
22101 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22102
22103 PR target/69161
22104 * config/arm/predicates.md (arm_comparison_operator_mode):
22105 New predicate.
22106 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
22107 instead of arm_comparison_operator.
22108 (*mov_negscc): Likewise.
22109 (*mov_notscc): Likewise.
22110 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
22111 (*thumb2_mov_negscc): Likewise.
22112 (*thumb2_mov_negscc_strict_it): Likewise.
22113 (*thumb2_mov_notscc): Likewise.
22114 (*thumb2_mov_notscc_strict_it): Likewise.
22115
22116 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
22117
22118 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
22119 Add missing return.
22120
22121 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
22122
22123 * config/visium/visium.c (machine_libfunc_index): New enum.
22124 (machine_libfuncs): New structure.
22125 (visium_libfuncs): New static variable.
22126 (TARGET_INIT_LIBFUNCS): Define to...
22127 (visium_init_libfuncs): ...this. New function.
22128 (expand_block_move_4): Use the appropriate libfunc.
22129 (expand_block_move_2): Likewise.
22130 (expand_block_move_1): Likewise.
22131 (expand_block_set_4): Likewise.
22132 (expand_block_set_2): Likewise.
22133 (expand_block_set_1): Likewise.
22134 (visium_trampoline_init): Likewise.
22135
22136 2016-02-17 Nick Clifton <nickc@redhat.com>
22137
22138 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
22139 TI's devices.csv file as of March 2016.
22140
22141 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
22142
22143 PR Target/48344
22144 * opts-global.c (handle_common_deferred_options): Introduce and
22145 initialize two global variables to remember command-line options
22146 specifying a stack-limiting register.
22147 * opts.h: Add extern declarations of the two new global variables.
22148 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
22149 variable based on the values of the two new global variables.
22150
22151 2016-02-16 Jakub Jelinek <jakub@redhat.com>
22152
22153 PR c/69835
22154 * common.opt (Wnonnull-compare): New warning.
22155 * doc/invoke.texi (-Wnonnull): Remove text about comparison
22156 of arguments against NULL.
22157 (-Wnonnull-compare): Document.
22158 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
22159 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
22160 * passes.def (pass_warn_nonnull_compare): Add.
22161 * gimple-ssa-nonnull-compare.c: New file.
22162
22163 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
22164
22165 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
22166 AARCH64_EXTRA_TUNE_RECIP_SQRT.
22167
22168 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
22169
22170 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
22171 reciprocal sqrt for -mlow-precision-recip-sqrt.
22172
22173 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
22174 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22175
22176 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
22177 always use lane loads to construct non-constant vectors.
22178
22179 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
22180
22181 * config/aarch64/aarch64.md
22182 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
22183 constraints for operand 3.
22184 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
22185
22186 2016-02-16 Jakub Jelinek <jakub@redhat.com>
22187 Richard Biener <rguenther@suse.de>
22188
22189 PR tree-optimization/69820
22190 * tree-vect-patterns.c (type_conversion_p): Return false if
22191 *orig_type is unsigned single precision or boolean.
22192 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
22193 Formatting fix.
22194
22195 2016-02-16 Jakub Jelinek <jakub@redhat.com>
22196
22197 PR rtl-optimization/69764
22198 PR rtl-optimization/69771
22199 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
22200 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
22201
22202 2016-02-16 Richard Biener <rguenther@suse.de>
22203
22204 PR tree-optimization/69776
22205 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
22206 sets from caller.
22207 (indirect_refs_may_alias_p): Likewise.
22208 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
22209 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
22210 according to tbaa_p.
22211 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
22212 (optimize_stmt): For redundant store discovery do not allow tbaa.
22213
22214 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
22215
22216 PR tree-optimization/69714
22217 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
22218 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
22219
22220 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
22221
22222 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
22223 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
22224 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
22225 * config/arc/arc.c (arc_init): Check FPU options.
22226 (get_arc_condition_code): Handle new CC_FPU* modes.
22227 (arc_select_cc_mode): Likewise.
22228 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
22229 register pair only. Allow access for ARCv2 accumulator.
22230 (gen_compare_reg): Whenever we have FPU support use FPU compare
22231 instructions.
22232 (arc_reorg): Don't generate brcc insns when FPU compare
22233 instructions are involved.
22234 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
22235 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
22236 floating point emulation.
22237 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
22238 (REVERSE_CONDITION): Add new CC_FPU* modes.
22239 (TARGET_FP_SP_BASE): Define.
22240 (TARGET_FP_DP_BASE): Likewise.
22241 (TARGET_FP_SP_FUSED): Likewise.
22242 (TARGET_FP_DP_FUSED): Likewise.
22243 (TARGET_FP_SP_CONV): Likewise.
22244 (TARGET_FP_DP_CONV): Likewise.
22245 (TARGET_FP_SP_SQRT): Likewise.
22246 (TARGET_FP_DP_SQRT): Likewise.
22247 (TARGET_FP_DP_AX): Likewise.
22248 * config/arc/arc.md (ARCV2_ACC): New constant.
22249 (type): New fpu type attribute.
22250 (SDF): Conditional iterator.
22251 (cstore<mode>, cbranch<mode>): Change expand condition.
22252 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
22253 handles FPU/FPX cases as well.
22254 * config/arc/arc.opt (mfpu): New option.
22255 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
22256 Renamed.
22257 (adddf3, muldf3, subdf3): Removed.
22258 * config/arc/predicates.md (proper_comparison_operator): Recognize
22259 CC_FPU* modes.
22260 * config/arc/fpu.md: New file.
22261 * doc/invoke.texi (ARC Options): Document mfpu option.
22262
22263 2016-02-16 Richard Biener <rguenther@suse.de>
22264
22265 PR rtl-optimization/69291
22266 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
22267 noce_operand_ok check.
22268
22269 2016-02-16 Tom de Vries <tom@codesourcery.com>
22270
22271 PR lto/67709
22272 * omp-low.c (simd_clone_create): Remove call to
22273 symtab->call_cgraph_insertion_hooks.
22274
22275 2016-02-16 Jakub Jelinek <jakub@redhat.com>
22276
22277 PR tree-optimization/69802
22278 * tree-ssa-reassoc.c (update_range_test): If op is
22279 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
22280 op == 1 test of precision 1 integral op, otherwise handle
22281 that case as op itself. Fix up formatting.
22282 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
22283 up formatting.
22284
22285 2016-02-16 Richard Biener <rguenther@suse.de>
22286
22287 PR tree-optimization/69586
22288 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
22289 types for conversion sources.
22290
22291 2016-02-16 Richard Biener <rguenther@suse.de>
22292
22293 PR middle-end/69801
22294 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
22295 mask OEP_ADDRESS_OF.
22296
22297 2016-02-16 Alan Modra <amodra@gmail.com>
22298
22299 PR target/68973
22300 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
22301 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
22302 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
22303 (p8_mtvsrwz): New.
22304 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
22305 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
22306 (p8_fmrgow_<mode>): Likewise.
22307 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
22308 changes.
22309 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
22310 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
22311 to use movdi_internal64. Remove op0_di.
22312 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
22313
22314 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
22315
22316 Add support for the FCCMP insn types
22317
22318 * config/aarch64/aarch64.md (fccmp): Change insn type.
22319 (fccmpe): Likewise.
22320 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
22321 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
22322 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
22323 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
22324 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
22325 * config/arm/types.md (fccmps): Add new insn type.
22326 (fccmpd): Likewise.
22327
22328 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
22329
22330 * alias.c (get_alias_set): Fix a typo in comment.
22331
22332 2016-02-15 Richard Biener <rguenther@suse.de>
22333
22334 PR tree-optimization/69595
22335 * match.pd: Complete range test simplification to true.
22336
22337 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
22338
22339 PR rtl-optimization/69648
22340 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
22341 pic_offset_table_rtx.
22342
22343 PR rtl-optimization/69752
22344 * ira.c (update_equiv_regs): When looking for more than a single SET,
22345 also take other side effects into account.
22346
22347 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
22348
22349 * config/s390/s390.c (s390_function_profiler): Add a new sequence
22350 for z900+ CPUs in 31-bit mode.
22351
22352 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
22353
22354 * common/config/s390/s390-common.c (s390_supports_split_stack):
22355 New function.
22356 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
22357 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
22358 * config/s390/s390.c (struct machine_function): New field
22359 split_stack_varargs_pointer.
22360 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
22361 in s390_emit_prologue.
22362 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
22363 vararg pointer.
22364 (morestack_ref): New global.
22365 (SPLIT_STACK_AVAILABLE): New macro.
22366 (s390_expand_split_stack_prologue): New function.
22367 (s390_live_on_entry): New function.
22368 (s390_va_start): Use split-stack vararg pointer if appropriate.
22369 (s390_asm_file_end): Emit the split-stack note sections.
22370 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
22371 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
22372 (UNSPECV_SPLIT_STACK_CALL): New unspec.
22373 (UNSPECV_SPLIT_STACK_DATA): New unspec.
22374 (split_stack_prologue): New expand.
22375 (split_stack_space_check): New expand.
22376 (split_stack_data): New insn.
22377 (split_stack_call): New expand.
22378 (split_stack_call_*): New insn.
22379 (split_stack_cond_call): New expand.
22380 (split_stack_cond_call_*): New insn.
22381
22382 2016-02-15 Richard Biener <rguenther@suse.de>
22383
22384 PR tree-optimization/69783
22385 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
22386 Add trivially correct cases.
22387
22388 2016-02-15 Tom de Vries <tom@codesourcery.com>
22389
22390 PR lto/69655
22391 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
22392 do_force_output.
22393 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
22394
22395 2016-02-15 Richard Biener <rguenther@suse.de>
22396
22397 PR tree-optimization/69776
22398 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
22399 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
22400 indicate whether we can use TBAA to disambiguate against stores.
22401 Use alias-set zero if not.
22402 (visit_reference_op_store): Do not use TBAA when looking up
22403 redundant stores.
22404 * tree-ssa-pre.c (compute_avail): Use TBAA here.
22405 (eliminate_dom_walker::before_dom_children): But not when looking
22406 up redundant stores.
22407
22408 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
22409
22410 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
22411
22412 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
22413
22414 * config/i386/znver1.md
22415 (znver1_pop, znver1_pop_mem,
22416 znver1_load_imov_double_store,
22417 znver1_load_imov_direct_store,
22418 znver1_load_imov_direct_load,
22419 znver1_load_imov_double_load): Add new.
22420 (znver1_insn, znver1_insn_load): Add icmov type.
22421 (znver1_sseavx_fma,
22422 znver1_sseavx_fma_load,
22423 znver1_avx256_fma,
22424 znver1_avx256_fma_load): Fix pipe usage.
22425
22426 2016-02-14 Alan Modra <amodra@gmail.com>
22427
22428 PR target/68973
22429 * reload.c (find_reloads_address_1): For pre/post-inc/dec
22430 with an invalid hard reg, reload just the reg not the entire
22431 pre/post-inc/dec address expression.
22432
22433 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
22434
22435 PR target/67260
22436 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
22437 fixed R1_REG scratch reg.
22438 (sibcall_value_pcrel_fdpic): Likewise.
22439
22440 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
22441
22442 PR target/67636
22443 PR target/64345
22444 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
22445
22446 2016-02-12 Walter Lee <walt@tilera.com>
22447
22448 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
22449 * config/tilegx/t-tilegx: Likewise.
22450
22451 2016-02-12 David Malcolm <dmalcolm@redhat.com>
22452
22453 PR other/69554
22454 * diagnostic-show-locus.c (struct line_span): New struct.
22455 (layout::get_first_line): Delete.
22456 (layout::get_last_line): Delete.
22457 (layout::get_num_line_spans): New member function.
22458 (layout::get_line_span): Likewise.
22459 (layout::print_heading_for_line_span_index_p): Likewise.
22460 (layout::get_expanded_location): Likewise.
22461 (layout::calculate_line_spans): Likewise.
22462 (layout::m_first_line): Delete.
22463 (layout::m_last_line): Delete.
22464 (layout::m_line_spans): New field.
22465 (layout::layout): Update comment. Replace m_first_line and
22466 m_last_line with m_line_spans, replacing their initialization
22467 with a call to calculate_line_spans.
22468 (diagnostic_show_locus): When printing source lines and
22469 annotations, rather than looping over a single span
22470 of lines, instead loop over each line_span within
22471 the layout, with an inner loop over the lines within them.
22472 Call the context's start_span callback when changing line spans.
22473 * diagnostic.c (diagnostic_initialize): Initialize start_span.
22474 (diagnostic_build_prefix): Break out the building of the location
22475 part of the string into...
22476 (diagnostic_get_location_text): ...this new function, rewriting
22477 it from nested ternary expressions to a sequence of "if"
22478 statements.
22479 (default_diagnostic_start_span_fn): New function.
22480 * diagnostic.h (diagnostic_start_span_fn): New typedef.
22481 (diagnostic_context::start_span): New field.
22482 (default_diagnostic_start_span_fn): New prototype.
22483
22484 2016-02-12 David Malcolm <dmalcolm@redhat.com>
22485
22486 PR driver/69779
22487 * gcc.c (driver::finalize): Fix cleanup of "specs".
22488
22489 2016-02-12 David Malcolm <dmalcolm@redhat.com>
22490
22491 PR driver/69265
22492 PR driver/69453
22493 * gcc.c (driver::driver): Initialize m_option_suggestions.
22494 (driver::~driver): Clean up m_option_suggestions.
22495 (suggest_option): Convert to...
22496 (driver::suggest_option): ...this, and split out into
22497 driver::build_option_suggestions and find_closest_string.
22498 (driver::build_option_suggestions): New function, from
22499 first half of suggest_option. Special-case
22500 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
22501 the sanitizer_opts array. For options of enum types, add the
22502 various enum values to the candidate strings.
22503 (driver::handle_unrecognized_options): Remove "const".
22504 * gcc.h (driver::handle_unrecognized_options): Likewise.
22505 (driver::build_option_suggestions): New decl.
22506 (driver::suggest_option): New decl.
22507 (driver::m_option_suggestions): New field.
22508 * opts-common.c (add_misspelling_candidates): New function.
22509 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
22510 and make non-static.
22511 * opts.h (sanitizer_opts): New array decl.
22512 (add_misspelling_candidates): New function decl.
22513 * spellcheck.c (find_closest_string): New function.
22514 * spellcheck.h (find_closest_string): New function decl.
22515
22516 2016-02-12 Jakub Jelinek <jakub@redhat.com>
22517
22518 PR rtl-optimization/69764
22519 PR rtl-optimization/69771
22520 * optabs.c (expand_binop_directly): For shift_optab_p, force
22521 convert_modes with VOIDmode if xop1 has VOIDmode.
22522
22523 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
22524
22525 PR target/69729
22526 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
22527 to correctly determine instrumentation thunks.
22528
22529 2016-02-12 Jakub Jelinek <jakub@redhat.com>
22530
22531 PR ipa/69241
22532 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
22533 type by reference, force lhs on the call.
22534
22535 PR ipa/68672
22536 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
22537 Compute retval and retbnd early in all cases if split_part_return_p
22538 and return_bb is not EXIT. Remove all clobber stmts and reset
22539 all debug stmts that refer to SSA_NAMEs defined in split part,
22540 except if it is retval, in that case replace the old retval with the
22541 lhs of the call to the split part.
22542
22543 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22544
22545 revert:
22546 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22547
22548 PR middle-end/66726
22549 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
22550 whose result is used in PHI.
22551 (maybe_optimize_range_tests): Likewise.
22552 (final_range_test_p): Likweise.
22553
22554 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22555
22556 PR middle-end/66726
22557 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
22558 whose result is used in PHI.
22559 (maybe_optimize_range_tests): Likewise.
22560 (final_range_test_p): Likweise.
22561
22562 2016-02-12 Jakub Jelinek <jakub@redhat.com>
22563
22564 * cgraph.c: Spelling fixes - behaviour -> behavior and
22565 neighbour -> neighbor.
22566 * target.def: Likewise.
22567 * sel-sched.c: Likewise.
22568 * config/mips/mips.c: Likewise.
22569 * config/arc/arc.md: Likewise.
22570 * config/arm/cortex-a57.md: Likewise.
22571 * config/arm/arm.c: Likewise.
22572 * config/arm/neon.md: Likewise.
22573 * config/arm/arm-c.c: Likewise.
22574 * config/vms/vms-c.c: Likewise.
22575 * config/s390/s390.c: Likewise.
22576 * config/i386/znver1.md: Likewise.
22577 * config/i386/i386.c: Likewise.
22578 * config/ia64/hpux-unix2003.h: Likewise.
22579 * config/msp430/msp430.md: Likewise.
22580 * config/rx/rx.c: Likewise.
22581 * config/rx/rx.md: Likewise.
22582 * config/aarch64/aarch64-simd.md: Likewise.
22583 * config/aarch64/aarch64.c: Likewise.
22584 * config/nvptx/nvptx.c: Likewise.
22585 * config/bfin/bfin.c: Likewise.
22586 * config/cris/cris.opt: Likewise.
22587 * config/rs6000/rs6000.c: Likewise.
22588 * target.h: Likewise.
22589 * spellcheck.c: Likewise.
22590 * ira-build.c: Likewise.
22591 * tree-inline.c: Likewise.
22592 * builtins.c: Likewise.
22593 * lra-constraints.c: Likewise.
22594 * explow.c: Likewise.
22595 * hwint.h: Likewise.
22596 * targhooks.c: Likewise.
22597 * tree-vect-data-refs.c: Likewise.
22598 * expr.c: Likewise.
22599 * doc/tm.texi: Likewise.
22600 * doc/extend.texi: Likewise.
22601 * doc/install.texi: Likewise.
22602 * doc/md.texi: Likewise.
22603 * tree-ssa-tail-merge.c: Likewise.
22604 * sched-int.h: Likewise.
22605 * match.pd: Likewise.
22606 * sched-ebb.c: Likewise.
22607 * target.def (omit_struct_return_reg): Likewise.
22608 * gimple-ssa-isolate-paths.c: Likewise.
22609 (find_implicit_erroneous_behaviour): Renamed to...
22610 (find_implicit_erroneous_behavior): ... this.
22611 (find_explicit_erroneous_behaviour): Renamed to...
22612 (find_explicit_erroneous_behavior): ... this.
22613 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
22614
22615 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
22616
22617 PR rtl-optimization/64682
22618 PR rtl-optimization/69567
22619 PR rtl-optimization/69737
22620 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
22621 in I2 as well, just lose it.
22622
22623 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22624
22625 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
22626 New variable.
22627 (aarch64_last_printed_tune_string): Likewise.
22628 (aarch64_declare_function_name): Only output .arch assembler
22629 directive if it will be different from the previously output
22630 directive. Same for .tune comment but only if -dA is set.
22631 (aarch64_start_file): New function.
22632 (TARGET_ASM_FILE_START): Define.
22633
22634 2016-02-11 David Malcolm <dmalcolm@redhat.com>
22635
22636 PR plugins/69758
22637 * Makefile.in (PLUGIN_HEADERS): Add params.list.
22638
22639 2016-02-11 Jakub Jelinek <jakub@redhat.com>
22640
22641 PR target/65313
22642 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
22643 -Wmaybe-uninitialized warning.
22644
22645 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
22646
22647 PR target/69713
22648 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
22649
22650 2016-02-11 Richard Biener <rguenther@suse.de>
22651
22652 PR rtl-optimization/69291
22653 * ifcvt.c (noce_try_store_flag_constants): Do not allow
22654 subexpressions affected by changing the result.
22655
22656 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
22657
22658 PR target/69148
22659 * lra-constraints.c (curr_insn_transform): Find in/out operands
22660 for secondary memory moves. Update dups.
22661
22662 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
22663
22664 PR tree-optimization/69652
22665 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
22666 to nested loop, did source re-formatting, skip debug statements,
22667 add check on statement with volatile operand, remove dead scalar
22668 statements.
22669
22670 2016-02-10 Jakub Jelinek <jakub@redhat.com>
22671 Patrick Palka <ppalka@gcc.gnu.org>
22672
22673 PR ipa/69241
22674 PR c++/69649
22675 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
22676 calls if the return type is TREE_ADDRESSABLE.
22677 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
22678 * ipa-split.c (split_function): Fix doubled "we" in comment.
22679 Use void return type for the split part even if
22680 !split_point->split_part_set_retval.
22681
22682 2016-02-10 Bin Cheng <bin.cheng@arm.com>
22683
22684 PR tree-optimization/68021
22685 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
22686 when computing the value of biv cand by itself.
22687
22688 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
22689
22690 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
22691 (cortexa57_tunings): Likewise.
22692 (cortexa72_tunings): Likewise.
22693 (arch_macro_fusion_pair_p): Add support for AES fusion.
22694 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
22695 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
22696 Allow virtual registers before reload so early scheduling works.
22697 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
22698 correct latency and pipeline.
22699 (cortex_a57_crypto_complex): Likewise.
22700 (cortex_a57_crypto_xor): Likewise.
22701 (define_bypass): Add AES bypass.
22702
22703 2016-02-10 Richard Biener <rguenther@suse.de>
22704
22705 PR tree-optimization/69726
22706 * passes.def: Add DCE pass before late uninit.
22707 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
22708 really fixup if-conversions job.
22709
22710 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
22711
22712 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
22713 (arm_cortex_a57_tune): Likewise.
22714 (aarch_macro_fusion_pair_p): Add support for AES fusion.
22715 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
22716
22717 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
22718
22719 * timevar.def (TV_PHASE_DBGINFO): Delete.
22720 (TV_PHASE_CHECK_DBGINFO): Likewise.
22721 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
22722
22723 2016-02-10 Richard Biener <rguenther@suse.de>
22724
22725 PR tree-optimization/69719
22726 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
22727 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
22728
22729 2016-02-09 Andrew Pinski <apinski@cavium.com>
22730
22731 PR tree-opt/69282
22732 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
22733 get_vcond_mask_icode returns false.
22734
22735 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
22736
22737 PR target/68404
22738 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
22739 an ADDIS that adds a pointer to a large constant that sets the
22740 upper16 bits with a load operation.
22741
22742 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
22743
22744 PR target/68532
22745 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
22746 order.
22747 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
22748 endian.
22749 (vzipq_s16): Likewise.
22750 (vzipq_s32): Likewise.
22751 (vzipq_f32): Likewise.
22752 (vzipq_u8): Likewise.
22753 (vzipq_u16): Likewise.
22754 (vzipq_u32): Likewise.
22755 (vzipq_p8): Likewise.
22756 (vzipq_p16): Likewise.
22757
22758 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
22759
22760 PR target/68532
22761 * config/arm/arm.c (neon_endian_lane_map): New function.
22762 (neon_vector_pair_endian_lane_map): New function.
22763 (arm_evpc_neon_vuzp): Allow for big endian lane order.
22764 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
22765 endian.
22766 (vuzpq_s16): Likewise.
22767 (vuzpq_s32): Likewise.
22768 (vuzpq_f32): Likewise.
22769 (vuzpq_u8): Likewise.
22770 (vuzpq_u16): Likewise.
22771 (vuzpq_u32): Likewise.
22772 (vuzpq_p8): Likewise.
22773 (vuzpq_p16): Likewise.
22774
22775 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
22776
22777 PR target/69634
22778 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
22779 debug insns.
22780
22781 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
22782
22783 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
22784 truncate const_int operand 1 to QImode.
22785
22786 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
22787
22788 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
22789 corresponding to an abnormal edge.
22790
22791 2016-02-09 Tom de Vries <tom@codesourcery.com>
22792
22793 PR tree-optimization/69599
22794 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
22795 function.
22796 (find_func_aliases_for_builtin_call, find_func_clobbers)
22797 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
22798 partition.
22799
22800 2016-02-09 Richard Biener <rguenther@suse.de>
22801
22802 PR tree-optimization/69715
22803 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
22804 LHS on calls as non-rewritable.
22805
22806 2016-02-09 Tom de Vries <tom@codesourcery.com>
22807
22808 PR lto/69707
22809 * lto-wrapper.c (append_diag_options): New function.
22810 (compile_offload_image): Call append_diag_options.
22811
22812 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
22813
22814 PR other/69722
22815 * doc/extend.texi (Flag Output Operands): Correct sectioning.
22816 Minor copy-edit to fix verb tenses.
22817
22818 2016-02-08 Jakub Jelinek <jakub@redhat.com>
22819
22820 PR tree-optimization/69209
22821 * ipa-split.c (split_function): If split part is not
22822 returning retval, retval has gimple type but is not
22823 gimple value, force it into a SSA_NAME first.
22824
22825 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
22826
22827 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
22828 outdated section.
22829
22830 2016-02-08 Jason Merrill <jason@redhat.com>
22831
22832 PR c++/69631
22833 * convert.c (convert_to_integer_1): Check dofold on truncation
22834 distribution.
22835 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
22836 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
22837 Rename from *_nofold.
22838 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
22839 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
22840
22841 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
22842
22843 PR target/60410
22844 * tree.c (build_common_tree_nodes): Remove short_double argument.
22845 All callers changed.
22846 * tree.h (build_common_tree_nodes): Adjust declaration.
22847 * doc/invoke.texi (-fshort-double): Remove documentation.
22848 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
22849 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
22850 * lto-wrapper.c (merge_and_complain, append_compiler_options)
22851 (append_linker_options): Don't handle OPT_fshort_double.
22852
22853 PR rtl-optimization/68730
22854 * lra-remat.c (insn_to_cand_activation): New static variable.
22855 (lra_remat): Allocate and free it.
22856 (create_cand): New arg activation. Initialize a field in
22857 insn_to_cand_activation if it is nonnull.
22858 (create_cands): Pass the activation insn to create_cand when making
22859 a candidate involving an output reload. Reorganize code a little.
22860 (do_remat): Keep track of active status of candidates in a separate
22861 bitmap.
22862
22863 2016-02-08 Richard Biener <rguenther@suse.de>
22864
22865 PR tree-optimization/69719
22866 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
22867 Properly use absolute of the difference of the two offsets to
22868 compare or adjust the segment length.
22869
22870 2016-02-08 Richard Biener <rguenther@suse.de>
22871 Jeff Law <law@redhat.com>
22872
22873 PR target/68273
22874 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
22875 types for anonymous SSA names.
22876
22877 2016-02-08 Richard Biener <rguenther@suse.de>
22878
22879 PR rtl-optimization/69274
22880 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
22881
22882 2016-02-08 Jeff Law <law@redhat.com>
22883
22884 PR tree-optimization/65917
22885 * tree-ssa-dom.c (record_temporary_equivalences): Record both
22886 equivalences from if (x == y) style conditionals.
22887 (loop_depth_of_name): Remove.
22888 (record_equality): Remove loop depth check.
22889 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
22890 (const_and_copies::record_const_or_copy_raw): New member function.
22891 * tree-ssa-scopedtables.c
22892 (const_and_copies::record_const_or_copy_raw): New, factored out of
22893 (const_and_copies::record_const_or_copy): Call new member function.
22894
22895 2016-02-05 Jeff Law <law@redhat.com>
22896
22897 PR tree-optimization/68541
22898 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
22899 (count_stmts_in_block): New function.
22900 (poor_ifcvt_candidate_code): Likewise.
22901 (is_feasible_trace): Add some heuristics to determine when path
22902 splitting is profitable.
22903 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
22904 is a diamond with a single exit.
22905
22906 2016-02-05 Martin Sebor <msebor@redhat.com>
22907
22908 PR c++/69662
22909 * doc/invoke.texi: Update -Wplacement-new to take an optional
22910 argument.
22911
22912 2016-02-06 Richard Henderson <rth@redhat.com>
22913
22914 PR c/69643
22915 * tree.c (tree_nop_conversion_p): Do not strip casts into or
22916 out of non-standard address spaces.
22917
22918 2016-02-05 Jakub Jelinek <jakub@redhat.com>
22919
22920 PR rtl-optimization/69691
22921 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
22922
22923 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
22924
22925 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
22926 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
22927 (*ieee128_mfvsrd_64bit): Likewise.
22928 (*ieee128_mfvsrd_32bit): Likewise.
22929
22930 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
22931
22932 PR target/69369
22933 Revert r232560:
22934 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
22935
22936 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
22937 instrumented_version.
22938
22939 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
22940
22941 * doc/invoke.texi (Optimize Options): In table of --param options
22942 rename second occurrence of tracer-min-branch-ratio to
22943 tracer-min-branch-probability, rename
22944 tracer-min-branch-ratio-feedback to
22945 tracer-min-branch-probability-feedback and clarify description,
22946 rename sched-spec-state-edge-prob-cutoff to
22947 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
22948 to selsched-insns-to-rename, rename lto-minpartition to
22949 lto-min-partition, delete reorder-blocks-duplicate and
22950 reorder-blocks-duplicate-feedback.
22951
22952 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22953
22954 * config/s390/s390.c (s390_register_info_set_ranges): Remove
22955 superfluous loops.
22956
22957 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
22958
22959 * doc/extend.texi: S/390: Correct some typos.
22960
22961 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22962
22963 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
22964
22965 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22966
22967 PR target/69625
22968 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
22969 (s390_register_info_gprtofpr): Use new macros above.
22970 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
22971 its name.
22972 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
22973 its name. Adjust restore and save gpr ranges.
22974 (s390_register_info_set_ranges): New function.
22975 (s390_register_info): Use new macros above. Call
22976 s390_register_info_set_ranges.
22977 (s390_optimize_register_info): Likewise.
22978 (s390_hard_regno_rename_ok): Use new macros.
22979 (s390_hard_regno_scratch_ok): Likewise.
22980 (s390_emit_epilogue): Likewise.
22981 (s390_can_use_return_insn): Likewise.
22982 (s390_optimize_prologue): Likewise.
22983 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
22984
22985 2016-02-05 Jakub Jelinek <jakub@redhat.com>
22986
22987 PR bootstrap/69677
22988 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
22989 alignment fixes.
22990 (ix86_option_override_internal): Disable TARGET_STV even for
22991 -m{incoming,preferred}-stack-boundary=3.
22992
22993 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22994
22995 * config.gcc: Mark deprecated rtems targets as obsolete.
22996
22997 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
22998
22999 PR rtl-optimization/64682
23000 PR rtl-optimization/69567
23001 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
23002 before I2 only if the register is both used and set in I2.
23003
23004 2016-02-04 DJ Delorie <dj@redhat.com>
23005
23006 * config/msp430/msp430.c (msp430_start_function): Add function type.
23007
23008 2016-02-04 Jakub Jelinek <jakub@redhat.com>
23009
23010 PR fortran/69368
23011 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
23012
23013 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
23014
23015 PR rtl-optimization/69577
23016 Revert:
23017 2015-10-29 Richard Henderson <rth@redhat.com>
23018
23019 PR target/68124
23020 PR rtl-opt/67609
23021 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
23022 sse check to the exact conditions of PR 67609.
23023
23024 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
23025
23026 PR target/69667
23027 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
23028 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
23029 not allowed into the traditional Altivec registers.
23030 (movtd_64bit_nodm): Likewise.
23031 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
23032
23033 2016-02-04 David Malcolm <dmalcolm@redhat.com>
23034
23035 * config/aarch64/cortex-a57-fma-steering.c
23036 (aarch64_register_fma_steering): Remove "static" from arguments
23037 to register_pass.
23038
23039 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
23040
23041 PR target/69619
23042 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
23043 twice when complex.
23044
23045 2016-02-04 Mike Frysinger <vapier@gentoo.org>
23046
23047 * doc/invoke.texi: Delete -mno-fma4.
23048
23049 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
23050
23051 PR rtl-optimization/69577
23052 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
23053 (find_subregs_of_mode): Update accordingly. Iterate over partial
23054 definitions.
23055
23056 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
23057
23058 * config/arm/arm-protos.h (neon_reinterpret): Remove.
23059 * config/arm/arm.c (neon_reinterpret): Remove.
23060 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
23061 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
23062 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
23063 vreinterpretti): Remove.
23064 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
23065 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
23066 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
23067 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
23068 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
23069 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
23070 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
23071 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
23072 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
23073 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
23074 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
23075 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
23076 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
23077 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
23078 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
23079 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
23080 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
23081 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
23082 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
23083 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
23084 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
23085 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
23086 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
23087 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
23088 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
23089 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
23090 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
23091 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
23092 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
23093 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
23094 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
23095 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
23096 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
23097 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
23098 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
23099 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
23100 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
23101 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
23102 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
23103 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
23104 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
23105 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
23106 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
23107 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
23108 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
23109 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
23110 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
23111 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
23112 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
23113 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
23114 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
23115 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
23116 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
23117 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
23118 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
23119 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
23120 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
23121 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
23122 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
23123 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
23124 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
23125 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
23126 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
23127 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
23128 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
23129 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
23130 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
23131 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
23132 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
23133 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
23134 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
23135 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
23136 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
23137 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
23138 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
23139 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
23140 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
23141 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
23142 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
23143 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
23144 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
23145 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
23146 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
23147 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
23148 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
23149 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
23150 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
23151 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
23152 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
23153 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
23154 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
23155 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
23156 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
23157 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
23158 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
23159 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
23160 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
23161 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
23162 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
23163 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
23164 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
23165 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
23166 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
23167
23168 2016-02-04 Martin Liska <mliska@suse.cz>
23169
23170 PR sanitizer/69276
23171 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
23172 that are gimple_store_p.
23173 (maybe_instrument_call): Likewise.
23174
23175 2016-02-04 Bin Cheng <bin.cheng@arm.com>
23176
23177 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
23178 register scaling out of memory reference and comment why.
23179
23180 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23181
23182 PR target/65932
23183 PR target/67714
23184 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
23185 folding the source of a SET.
23186
23187 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23188
23189 PR target/65932
23190 PR target/67714
23191 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
23192 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
23193
23194 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
23195
23196 PR target/65932
23197 PR target/67714
23198 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
23199 HImode.
23200
23201 2016-02-04 Christian Bruel <christian.bruel@st.com>
23202
23203 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
23204 * config/arm/arm.c (arm_set_current_function): Likewise.
23205
23206 2016-02-04 Jakub Jelinek <jakub@redhat.com>
23207 Ilya Enkovich <enkovich.gnu@gmail.com>
23208 H.J. Lu <hongjiu.lu@intel.com>
23209
23210 PR target/69454
23211 * config/i386/i386.c (convert_scalars_to_vector): Remove
23212 stack alignment fixes.
23213 (ix86_option_override_internal): Disable TARGET_STV if stack
23214 might not be aligned enough.
23215 (ix86_minimum_alignment): Assert that TARGET_STV is false.
23216
23217 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
23218
23219 * config/i386/x86-tune.def: Disable default prefetching
23220 for -march=znver1.
23221
23222 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
23223 Vladimir Makarov <vmakarov@redhat.com>
23224
23225 PR target/69461
23226 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
23227 in validating fused toc addresses.
23228
23229 2016-02-03 Jakub Jelinek <jakub@redhat.com>
23230
23231 PR c/69627
23232 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
23233 range->m_caret fields if range->m_show_caret_p is false.
23234
23235 PR target/69644
23236 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
23237 Force oldval into register if it does not satisfy reg_or_short_operand
23238 predicate. Fix up formatting.
23239
23240 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
23241 Alexandre Oliva <aoliva@redhat.com>
23242
23243 PR target/69461
23244 * lra-constraints.c (simplify_operand_subreg): Check additionally
23245 address validity after potential reloading.
23246 (process_address_1): Check insns validity. In case of failure do
23247 nothing.
23248
23249 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
23250
23251 PR target/69118
23252 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
23253 Fix target.
23254
23255 2016-02-02 Jakub Jelinek <jakub@redhat.com>
23256
23257 * wide-int.cc (canonize_uhwi): New function.
23258 (wi::divmod_internal): Use it.
23259
23260 2016-02-02 James Norris <jnorris@codesourcery.com>
23261
23262 * gimplify.c (omp_notice_variable): Add usage check.
23263
23264 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
23265
23266 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
23267 like LE, GE, LT, GT when emitting relational operator.
23268
23269 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
23270
23271 * ira-costs.c (find_costs_and_classes): Add extra argument.
23272 * target.def (ira_change_pseudo_allocno_class): Add parameter.
23273 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
23274 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
23275 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
23276 Add best_class parameter, and return it if not ALL_REGS.
23277 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
23278 Add parameter.
23279 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
23280 Update target hook.
23281
23282 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
23283
23284 * config/aarch64/aarch64.c
23285 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
23286 (aarch64_ira_change_pseudo_allocno_class): New function.
23287
23288 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
23289
23290 PR target/67032
23291 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
23292
23293 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
23294
23295 * config/avr/avr.c (avr_option_override): Set
23296 PARAM_ALLOW_STORE_DATA_RACES to 1.
23297
23298 2016-02-02 Richard Biener <rguenther@suse.de>
23299
23300 PR tree-optimization/69595
23301 * match.pd: Add range test simplifications to true/false.
23302
23303 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
23304
23305 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
23306 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
23307 instead.
23308
23309 2016-02-02 Richard Biener <rguenther@suse.de>
23310
23311 PR tree-optimization/69606
23312 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
23313 info on the result before moving a stmt.
23314
23315 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
23316
23317 PR middle-end/68542
23318 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
23319 branch with vector comparison.
23320 * config/i386/sse.md (VI48_AVX): New mode iterator.
23321 (define_expand "cbranch<mode>4): Add support for conditional branch
23322 with vector comparison.
23323 * tree-vect-loop.c (optimize_mask_stores): New function.
23324 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
23325 has_mask_store field of vect_info.
23326 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
23327 vectorized loops having masked stores after vec_info destroy.
23328 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
23329 correspondent macros.
23330 (optimize_mask_stores): Add prototype.
23331
23332 2016-02-02 Alan Modra <amodra@gmail.com>
23333
23334 PR target/69548
23335 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
23336 allow subregs.
23337
23338 2016-02-02 Alan Modra <amodra@gmail.com>
23339
23340 PR target/68662
23341 * config/rs6000/rs6000.c (need_toc_init): New var, set it
23342 whenever toc_label_name used.
23343 (rs6000_file_start): Don't set up toc section here,
23344 (rs6000_output_function_epilogue): do so here instead,
23345 (rs6000_xcoff_file_start): and here.
23346 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
23347 (load_toc_aix_di): Likewise.
23348
23349 2016-02-01 Jakub Jelinek <jakub@redhat.com>
23350
23351 PR rtl-optimization/69592
23352 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
23353 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
23354 (num_sign_bit_copies_binary_arith_p): New inline function.
23355 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
23356
23357 2016-02-01 Jeff Law <law@redhat.com>
23358
23359 PR tree-optimization/69580
23360 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
23361 * tree-ssa-threadbackward.c
23362 (fsm_find_control_statement_thread_paths): Do not try to walk
23363 through large PHI nodes.
23364
23365 2016-02-01 Jakub Jelinek <jakub@redhat.com>
23366
23367 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
23368 when count is incremented above limit, don't analyze further
23369 insns afterwards.
23370
23371 * omp-low.c (oacc_parse_default_dims): Avoid
23372 -Wsign-compare warning, make sure value fits into int
23373 rather than just unsigned int.
23374
23375 2016-02-01 Bin Cheng <bin.cheng@arm.com>
23376
23377 PR tree-optimization/67921
23378 * fold-const.c (split_tree): New parameters. Convert pointer
23379 type variable part to proper type before negating.
23380 (fold_binary_loc): Pass new arguments to split_tree.
23381
23382 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
23383
23384 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
23385 (nvptx_goacc_validate_dims): Extend to handle global defaults.
23386 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
23387 * doc/tm.texti: Rebuilt.
23388 * doc/invoke.texi (fopenacc-dim): Document.
23389 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
23390 (append_compiler_options): Likewise.
23391 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
23392 (oacc_parse_default_dims): New.
23393 (oacc_validate_dims): Add USED arg. Select non-unity default when
23394 possible.
23395 (oacc_loop_fixed_partitions): Return mask of used partitions.
23396 (oacc_loop_auto_partitions): Emit dump info.
23397 (oacc_loop_partition): Return mask of used partitions.
23398 (execute_oacc_device_lower): Parse default dimension arg. Adjust
23399 loop partitioning and validation calls.
23400
23401 2016-02-01 Richard Biener <rguenther@suse.de>
23402
23403 PR middle-end/69556
23404 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
23405
23406 2016-02-01 Richard Biener <rguenther@suse.de>
23407
23408 PR tree-optimization/69574
23409 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
23410 of asserting return chrec_dont_know.
23411
23412 2016-02-01 Martin Liska <mliska@suse.cz>
23413
23414 * mem-stats-traits.h: Add copyright header.
23415 * mem-stats.h: Likewise.
23416
23417 2016-02-01 Richard Biener <rguenther@suse.de>
23418
23419 PR tree-optimization/69579
23420 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
23421 Do not propagate through abnormal PHI results.
23422
23423 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
23424
23425 * postreload.c (reload_cse_simplify): Remove dead code.
23426
23427 2016-02-01 Jakub Jelinek <jakub@redhat.com>
23428
23429 PR rtl-optimization/69570
23430 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
23431 if there is more than one set, not if there is a single set.
23432
23433 2016-02-01 Richard Henderson <rth@redhat.com>
23434
23435 PR rtl-opt/69535
23436 * combine.c (make_compound_operation): When looking through a
23437 subreg, make sure to re-extend to the width of the outer mode.
23438
23439 2016-01-30 Jakub Jelinek <jakub@redhat.com>
23440
23441 PR tree-optimization/69546
23442 * wide-int.cc (wi::divmod_internal): For unsigned division
23443 where both operands fit into uhwi, if o1 is 1 and o0 has
23444 msb set, if divident_prec is larger than bits per hwi,
23445 clear another quotient word and return 2 instead of 1.
23446 Similarly for remainder with msb in HWI set, if dividend_prec
23447 is larger than bits per hwi.
23448
23449 2016-01-29 Martin Jambor <mjambor@suse.cz>
23450
23451 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
23452 Use short lowercase names.
23453 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
23454 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
23455 acq_rel one. Protect warning agains segfaults if
23456 get_memory_order_name returns NULL.
23457 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
23458 with release semantics. Do not warn if get_memory_order already did.
23459 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
23460 semantics. Fix check for relaxed or acquire semantics. Do not warn
23461 if get_memory_order already did.
23462
23463 2016-01-29 Sebastian Pop <s.pop@samsung.com>
23464
23465 * doc/install.texi: Document that isl-0.16 is supported.
23466
23467 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
23468
23469 PR target/69299
23470 * config/i386/constraints.md (Bm): Describe as special memory
23471 constraint.
23472 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
23473 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
23474 * genpreds.c (struct constraint_data): Add is_special_memory.
23475 (have_special_memory_constraints, special_memory_start): New
23476 static vars.
23477 (special_memory_end): Ditto.
23478 (add_constraint): Add new arg is_special_memory. Add code to
23479 process its true value. Update have_special_memory_constraints.
23480 (process_define_constraint): Pass the new arg.
23481 (process_define_register_constraint): Ditto.
23482 (choose_enum_order): Process special memory.
23483 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
23484 function insn_extra_special_memory_constraint.
23485 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
23486 * gensupport.c (process_rtx): Process
23487 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
23488 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
23489 * ira-lives.c (single_reg_class): Use
23490 insn_extra_special_memory_constraint.
23491 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
23492 * lra-constraints.c (process_alt_operands): Ditto.
23493 (curr_insn_transform): Use insn_extra_special_memory_constraint.
23494 * recog.c (asm_operand_ok, preprocess_constraints): Process
23495 CT_SPECIAL_MEMORY.
23496 * reload.c (find_reloads): Ditto.
23497 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
23498 * stmt.c (parse_input_constraint): Use
23499 insn_extra_special_memory_constraint.
23500
23501 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
23502
23503 PR target/69530
23504 * lra-splill.c (lra_final_code_change): Revert r229087 by
23505 removing all sub-registers.
23506
23507 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
23508
23509 PR target/65604
23510 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
23511
23512 2016-01-29 Jakub Jelinek <jakub@redhat.com>
23513
23514 PR target/69551
23515 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
23516 SSE1, copy target into the temporary reg first before recursing
23517 on it.
23518
23519 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
23520
23521 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
23522 with vm.
23523
23524 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
23525
23526 * ginclude/stdarg.h: Test __cplusplus instead of
23527 __GXX_EXPERIMENTAL_CXX0X__.
23528
23529 2016-01-29 Richard Biener <rguenther@suse.de>
23530
23531 PR tree-optimization/69547
23532 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
23533 Do not mark clobbers necessary.
23534 (mark_all_reaching_defs_necessary_1): Likewise.
23535
23536 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
23537
23538 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
23539 declaration name with %qs and print it in both error messages.
23540 Also fix indentation.
23541
23542 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
23543
23544 PR other/69006
23545 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
23546 trailing blank line from error message.
23547
23548 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
23549
23550 PR c++/69462
23551 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
23552 for C++-11.
23553
23554 2016-01-29 Richard Biener <rguenther@suse.de>
23555
23556 PR middle-end/69537
23557 * match.pd: Allow all integral types when simplifying a
23558 widening or sign-changing conversion.
23559
23560 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23561
23562 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
23563 back to setting codegen_error to fail codegen.
23564
23565 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
23566
23567 PR target/69459
23568 * config/i386/constraints.md (C): Only accept constant zero operand.
23569 (BC): New constraint.
23570 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
23571 instead of C constraint.
23572 * doc/md.texi (Machine Constraints): Update description
23573 of C constraint.
23574
23575 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
23576
23577 PR target/68400
23578 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
23579
23580 2016-01-28 Jakub Jelinek <jakub@redhat.com>
23581
23582 PR middle-end/69542
23583 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
23584 non-debug insns.
23585
23586 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
23587
23588 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
23589 branches if using guessed profile.
23590
23591 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
23592
23593 * graphite-optimize-isl.c (optimize_isl): Fix dump.
23594
23595 2016-01-28 Richard Henderson <rth@redhat.com>
23596
23597 PR target/69305
23598 * config/aarch64/aarch64-modes.def (CC_Cmode): New
23599 * config/aarch64/aarch64-protos.h: Update.
23600 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
23601 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
23602 (aarch64_get_condition_code_1): Handle CC_Cmode.
23603 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
23604 (*add<mode>3_compareC_cconly_imm): New.
23605 (*add<mode>3_compareC_cconly): New.
23606 (*add<mode>3_compareC_imm): New.
23607 (add<mode>3_compareC): New.
23608 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
23609 to be first. Use aarch64_carry_operation.
23610 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
23611 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
23612 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
23613 (subti3): Use subdi3_compare1.
23614 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
23615 (sub<mode>3_compare1): New.
23616 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
23617 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
23618 (*subsi3_carryin_uxtw): Likewise.
23619 (*ngc<mode>, *ngcsi_uxtw): Likewise.
23620 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
23621 * config/aarch64/iterators.md (DWI): New.
23622 * config/aarch64/predicates.md (aarch64_carry_operation): New.
23623 (aarch64_borrow_operation): New.
23624
23625 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
23626
23627 * graphite-optimize-isl.c (optimize_isl): Print a different debug
23628 message when isl does not return a valid schedule.
23629
23630 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23631
23632 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
23633 Remove comments from class declarations: they are already in the code
23634 close by the defs.
23635
23636 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23637
23638 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
23639 codegen_error_p.
23640 (ternary_op_to_tree): Same.
23641 (unary_op_to_tree): Same.
23642 (nary_op_to_tree): Same.
23643 (gcc_expression_from_isl_expr_op): Same.
23644 (gcc_expression_from_isl_expression): Same.
23645 (graphite_create_new_loop): Same.
23646 (graphite_create_new_loop_guard): Same.
23647 (build_iv_mapping): Same.
23648 (graphite_create_new_guard): Same.
23649 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
23650 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
23651
23652 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23653
23654 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
23655 instead of setting codegen_error to fail codegen.
23656
23657 2016-01-28 Jason Merrill <jason@redhat.com>
23658
23659 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
23660
23661 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23662
23663 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
23664 Remove CONST_INT_P check in CCMP cost calculation.
23665
23666 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23667
23668 * config/aarch64/aarch64.c (generic_vector_cost):
23669 Set vec_permute_cost.
23670 (cortexa57_vector_cost): Likewise.
23671 (exynosm1_vector_cost): Likewise.
23672 (xgene1_vector_cost): Likewise.
23673 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
23674 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
23675 Add vec_permute_cost entry.
23676
23677 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23678
23679 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
23680 immediate as %1.
23681 (add<mode>3_compare0): Likewise.
23682 (addsi3_compare0_uxtw): Likewise.
23683 (add<mode>3nr_compare0): Likewise.
23684 (compare_neg<mode>): Likewise.
23685 (<optab><mode>3): Likewise.
23686
23687 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
23688
23689 * tree-vect-stmts.c (vectorizable_comparison): Add
23690 NULL check for vectype.
23691
23692 2016-01-28 Richard Biener <rguenther@suse.de>
23693
23694 PR tree-optimization/69466
23695 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
23696 Account for PHIs we couldn't duplicate.
23697
23698 2016-01-28 Martin Liska <mliska@suse.cz>
23699
23700 PR pch/68758
23701 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
23702 instead of ENABLE_VALGRIND_CHECKING.
23703
23704 2016-01-27 Richard Henderson <rth@redhat.com>
23705
23706 PR rtl-opt/69447
23707 * lra-remat.c (subreg_regs): New.
23708 (dump_candidates_and_remat_bb_data): Dump it.
23709 (operand_to_remat): Reject if operand in subreg_regs.
23710 (set_bb_regs): Collect subreg_regs.
23711 (lra_remat): Init and free subreg_regs. Compute
23712 calculate_local_reg_remat_bb_data before create_cands.
23713
23714 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
23715
23716 PR target/68986
23717 * config/i386/i386.c (ix86_update_stack_boundary): Don't
23718 change stack_alignment_needed for __tls_get_addr call.
23719
23720 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
23721
23722 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
23723
23724 2016-01-27 Jeff Law <law@redhat.com>
23725
23726 PR tree-optimization/68398
23727 PR tree-optimization/69196
23728 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
23729 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
23730 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23731 Only count PHIs in the last block in the path. The others will
23732 const/copy propagate away. Add heuristic to allow more irreducible
23733 subloops to be created when it is likely profitable to do so.
23734
23735 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23736 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
23737 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
23738
23739 2016-01-27 Jakub Jelinek <jakub@redhat.com>
23740
23741 PR lto/69254
23742 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
23743 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
23744 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
23745 * tree-streamer-in.c: Include asan.h.
23746 (streamer_get_builtin_tree): For builtins in sanitizer
23747 range call initialize_sanitizer_builtins and retry.
23748
23749 2016-01-27 Ian Lance Taylor <iant@google.com>
23750
23751 * common.opt (fkeep-gc-roots-live): New undocumented option.
23752 * tree-ssa-loop-ivopts.c (add_candidate_1): If
23753 -fkeep-gc-roots-live, skip pointers.
23754 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
23755 NULL.
23756
23757 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
23758
23759 PR target/69512
23760 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
23761 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
23762
23763 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
23764
23765 PR target/68380
23766 * configure.ac: NetBSD provides SSP in its C library.
23767 * configure: Updated.
23768
23769 2016-01-27 Richard Biener <rguenther@suse.de>
23770
23771 PR tree-optimization/69166
23772 * tree-vect-loop.c (vect_is_simple_reduction): Always check
23773 reduction code for commutativity / associativity.
23774
23775 2016-01-27 Martin Jambor <mjambor@suse.cz>
23776
23777 PR tree-optimization/69355
23778 * tree-sra.c (analyze_access_subtree): Correct hole detection when
23779 total_scalarization fails.
23780
23781 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
23782
23783 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
23784 power9.
23785
23786 2016-01-27 Christian Bruel <christian.bruel@st.com>
23787
23788 PR target/69245
23789 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
23790 Move arm_reset_previous_fndecl and set_target_option_current_node in
23791 the conditional part. Call save_restore_target_globals.
23792 * config/arm/arm.c (arm_set_current_function):
23793 Refactor to better support #pragma target and attribute mix.
23794 Call save_restore_target_globals.
23795 * config/arm/arm-protos.h (save_restore_target_globals): New function.
23796
23797 2016-01-27 Martin Liska <mliska@suse.cz>
23798
23799 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
23800 reference for an HSA kernel and its host function.
23801
23802 2016-01-27 Jakub Jelinek <jakub@redhat.com>
23803
23804 PR tree-optimization/69399
23805 * wide-int.h (wi::lrshift): For larger precisions, only
23806 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
23807
23808 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
23809
23810 * config/arc/predicates.md (proper_comparison_operator): Reject
23811 constant-constant comparison.
23812
23813 2016-01-26 Tom de Vries <tom@codesourcery.com>
23814
23815 PR tree-optimization/69110
23816 * tree-data-ref.c (initialize_data_dependence_relation): Handle
23817 DR_NUM_DIMENSIONS == 0.
23818
23819 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
23820 Sebastian Pop <s.pop@samsung.com>
23821
23822 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
23823 isl_ast_op_cond and isl_ast_op_select.
23824 (gcc_expression_from_isl_expr_op): Same.
23825
23826 2016-01-26 Jason Merrill <jason@redhat.com>
23827
23828 PR c++/68782
23829 * tree.c (recompute_constructor_flags): Split out from
23830 build_constructor.
23831 (verify_constructor_flags): New.
23832 * tree.h: Declare them.
23833
23834 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
23835
23836 PR rtl-optimization/69217
23837 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
23838 are no TYPE_FIELDS set for the record type.
23839
23840 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23841
23842 PR target/68662
23843 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
23844 toc_label_name unconditionally.
23845 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
23846 SYMBOL_REF string. Use toc_label_name instead of constructing
23847 LCTOC1.
23848 (rs6000_elf_declare_function_name): Use toc_label_name instead of
23849 constructing LCTOC1.
23850
23851 2016-01-26 Martin Sebor <msebor@redhat.com>
23852
23853 PR other/69477
23854 * doc/extend.texi (Common Type Attributes): Move text that talks about
23855 attribute packed from attribute aligned to the section discussing
23856 the former attribute for clarity.
23857
23858 2016-01-26 Richard Henderson <rth@redhat.com>
23859
23860 PR middle-end/60908
23861 * trans-mem.c (tm_region_init): Mark entry block as visited.
23862
23863 2016-01-26 David Malcolm <dmalcolm@redhat.com>
23864
23865 PR other/69006
23866 * diagnostic-show-locus.c (layout::print_source_line): Replace
23867 call to pp_newline with call to layout::print_newline.
23868 (layout::print_annotation_line): Likewise.
23869 (layout::move_to_column): Likewise.
23870 (layout::print_any_fixits): After printing any fixits, print a
23871 trailing newline, if necessary.
23872 (layout::print_newline): New method, resetting any colorization
23873 before a newline.
23874 (diagnostic_show_locus): Move the pp_newline to before the
23875 early bailout. Remove dummy block enclosing the layout instance.
23876 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
23877 of pp_newline_and_flush with pp_flush.
23878 (diagnostic_append_note): Delete use of pp_newline.
23879 (diagnostic_append_note_at_rich_loc): Delete.
23880 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
23881 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
23882 when newline characters are added to the buffer.
23883
23884 2016-01-26 Michael Matz <matz@suse.de>
23885
23886 * configure.ac (ac_cv_std_swap_in_utility): New test.
23887 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
23888 * configure: Regenerate.
23889 * config.in: Regenerate.
23890
23891 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
23892
23893 * config/arc/arc.md (cstoresi4): Force operand into register.
23894 (arcset<code>): Fix predicate.
23895 (arcsetltu): Likewise.
23896 (arcsetgeu): Likewise.
23897 (arcsethi): Likewise.
23898 (arcsetls): Likewise.
23899
23900 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23901
23902 PR tree-optimization/69483
23903 * gimple-fold.c (canonicalize_constructor_val): Return NULL
23904 if base has error_mark_node type.
23905
23906 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
23907
23908 PR target/68620
23909 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
23910 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
23911 New helper macros.
23912 (vget_lane_f16): Handle big-endian.
23913 (vgetq_lane_f16): Likewise.
23914 (vset_lane_f16): Likewise.
23915 (vsetq_lane_f16): Likewise.
23916 * config/arm/iterators.md (VQXMOV): Add V8HF.
23917 (VDQ): Add V4HF and V8HF.
23918 (V_reg): Handle V4HF and V8HF.
23919 (Is_float_mode): Likewise.
23920 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
23921 neon_vdup_nv8hf): New patterns.
23922 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
23923 Use VD_LANE iterator.
23924 (neon_vld1_dup<mode>): Use VQ2 iterator.
23925
23926 2016-01-26 Nathan Sidwell <nathan@acm.org>
23927
23928 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
23929 (set_oacc_fn_attrib): Add IS_KERNEL arg.
23930 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
23931 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
23932 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
23933 (oacc_validate_dims): Add LEVEL arg, don't return level.
23934 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
23935 oacc_validate_dims.
23936 (execute_oacc_device_lower): Adjust, add more dump output.
23937 * tree-ssa-loop.c (gate_oacc_kernels): Use
23938 oacc_fn_attrib_kernels_p.
23939 * tree-parloops.c (create_parallel_loop): Adjust
23940 set_oacc_fn_attrib call.
23941
23942 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23943
23944 PR lto/69254
23945 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
23946 (append_compiler_options): Handle -fcilkplus.
23947 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
23948
23949 2016-01-26 Nick Clifton <nickc@redhat.com>
23950
23951 PR target/66655
23952 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
23953 been marked as DECL_ONE_ONLY but we do not the means to make it
23954 so, then do not allow it to bind locally.
23955
23956 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23957
23958 PR lto/69254
23959 * opts.h (parse_sanitizer_options): New prototype.
23960 * opts.c (sanitizer_opts): New array.
23961 (parse_sanitizer_options): New function.
23962 (common_handle_option): Use parse_sanitizer_options.
23963
23964 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
23965
23966 PR target/68986
23967 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
23968 alignment adjustment to ...
23969 (ix86_update_stack_boundary): Here. Don't over-align stack for
23970 __tls_get_addr.
23971 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
23972 if __tls_get_addr is called.
23973
23974 2016-01-26 Christian Bruel <christian.bruel@st.com>
23975
23976 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
23977
23978 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
23979
23980 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
23981
23982 2016-01-26 Richard Biener <rguenther@suse.de>
23983
23984 PR middle-end/69467
23985 * match.pd: Guard X * CST CMP 0 pattern with single_use.
23986
23987 2016-01-26 Richard Biener <rguenther@suse.de>
23988
23989 PR tree-optimization/69452
23990 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
23991 (move_computations_dom_walker::before_dom_children): Rename
23992 to ...
23993 (move_computations_worker): This.
23994 (move_computations): Perform an RPO rather than a DOM walk.
23995
23996 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23997
23998 PR target/69442
23999 * combine.c (combine_instructions): For REG_EQUAL note with
24000 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
24001 to the underlying register.
24002 * doc/rtl.texi (REG_EQUAL): Document the behavior of
24003 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
24004
24005 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
24006
24007 PR target/67896
24008 * config/aarch64/aarch64-builtins.c
24009 (aarch64_init_simd_builtin_types): Do not set structural
24010 equality to __Poly{8,16,64,128}_t types.
24011
24012 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
24013
24014 PR tree-optimization/69400
24015 * wide-int.cc (wi_pack): Take the precision as argument and
24016 perform canonicalization here rather than in the callers.
24017 Use the main loop to handle all full-width HWIs. Add a
24018 zero HWI if in_len isn't a full result.
24019 (wi::divmod_internal): Update accordingly.
24020 (wi::mul_internal): Likewise. Simplify.
24021
24022 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
24023 Sebastian Pop <s.pop@samsung.com>
24024
24025 * graphite-poly.c (apply_poly_transforms): Simplify.
24026 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
24027 (print_isl_map): Same.
24028 (print_isl_union_map): Same.
24029 (print_isl_schedule): New.
24030 (debug_isl_schedule): New.
24031 * graphite-dependences.c (scop_get_reads): Do not call
24032 isl_union_map_add_map that is undocumented isl functionality.
24033 (scop_get_must_writes): Same.
24034 (scop_get_may_writes): Same.
24035 (scop_get_original_schedule): Remove.
24036 (scop_get_dependences): Do not call isl_union_map_compute_flow that
24037 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
24038 (compute_deps): Remove.
24039 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
24040 (debug_schedule_ast): New.
24041 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
24042 set_separate_option.
24043 (graphite_regenerate_ast_isl): Add dump.
24044 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
24045 from scop->transformed_schedule.
24046 (graphite_regenerate_ast_isl): Add more dump.
24047 * graphite-optimize-isl.c (optimize_isl): Set
24048 scop->transformed_schedule. Check whether schedules are equal.
24049 (apply_poly_transforms): Move here.
24050 * graphite-poly.c (apply_poly_transforms): ... from here.
24051 (free_poly_bb): Static.
24052 (free_scop): Static.
24053 (pbb_number_of_iterations_at_time): Remove.
24054 (print_isl_ast): New.
24055 (debug_isl_ast): New.
24056 (debug_scop_pbb): New.
24057 * graphite-scop-detection.c (print_edge): Move.
24058 (print_sese): Move.
24059 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
24060 (build_scop_scattering): Remove.
24061 (create_pw_aff_from_tree): Assert instead of bailing out.
24062 (add_condition_to_pbb): Remove unused code, do not fail.
24063 (add_conditions_to_domain): Same.
24064 (add_conditions_to_constraints): Remove.
24065 (build_scop_context): New.
24066 (add_iter_domain_dimension): New.
24067 (build_iteration_domains): Initialize pbb->iterators.
24068 Call add_conditions_to_domain.
24069 (nested_in): New.
24070 (loop_at): New.
24071 (index_outermost_in_loop): New.
24072 (index_pbb_in_loop): New.
24073 (outermost_pbb_in): New.
24074 (add_in_sequence): New.
24075 (add_outer_projection): New.
24076 (outer_projection_mupa): New.
24077 (add_loop_schedule): New.
24078 (build_schedule_pbb): New.
24079 (build_schedule_loop): New.
24080 (embed_in_surrounding_loops): New.
24081 (build_schedule_loop_nest): New.
24082 (build_original_schedule): New.
24083 (build_poly_scop): Call build_original_schedule.
24084 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
24085 (free_poly_dr): Remove.
24086 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
24087 (free_poly_bb): Remove.
24088 (debug_loop_vec): Remove.
24089 (print_isl_ast): Declare.
24090 (debug_isl_ast): Declare.
24091 (scop_do_interchange): Remove.
24092 (scop_do_strip_mine): Remove.
24093 (scop_do_block): Remove.
24094 (flatten_all_loops): Remove.
24095 (optimize_isl): Remove.
24096 (pbb_number_of_iterations_at_time): Remove.
24097 (debug_scop_pbb): Declare.
24098 (print_schedule_ast): Declare.
24099 (debug_schedule_ast): Declare.
24100 (struct scop): Remove schedule. Add original_schedule,
24101 transformed_schedule.
24102 (free_gimple_poly_bb): Remove.
24103 (print_generated_program): Remove.
24104 (debug_generated_program): Remove.
24105 (unify_scattering_dimensions): Remove.
24106 * sese.c (print_edge): ... here.
24107 (print_sese): ... here.
24108 (debug_edge): ... here.
24109 (debug_sese): ... here.
24110 * sese.h (print_edge): Declare.
24111 (print_sese): Declare.
24112 (dump_edge): Declare.
24113 (dump_sese): Declare.
24114
24115 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
24116 Sebastian Pop <s.pop@samsung.com>
24117
24118 * Makefile.in: Set ISLVER in site.exp.
24119
24120 2016-01-25 Jakub Jelinek <jakub@redhat.com>
24121
24122 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
24123 DECL_VALUE_EXPR of new_var even for the non-array case. Look
24124 through DECL_VALUE_EXPR for expansion.
24125
24126 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
24127
24128 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
24129 the frame info after reload completed.
24130
24131 2016-01-25 Jeff Law <law@redhat.com>
24132
24133 PR tree-optimization/69196
24134 PR tree-optimization/68398
24135 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
24136 tree-ssa-threadupdate.c.
24137 (determine_bb_domination_status): Prototype
24138 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
24139 (determine_bb_domination_status): No longer static.
24140 (valid_jump_thread_path): Remove code to detect characteristics
24141 of the jump thread path not associated with correctness.
24142 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
24143 Correct test for thread path length. Count PHIs for real operands as
24144 statements that need to be copied. Do not count ASSERT_EXPRs.
24145 Look at all the blocks in the thread path. Compute and selectively
24146 filter thread paths based on threading through the latch, threading
24147 a multiway branch or crossing a multiway branch.
24148
24149 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24150
24151 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
24152 decl with __attribute__ ((unused)) annotation.
24153
24154 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
24155
24156 PR target/69421
24157 * tree-vect-stmts.c (vectorizable_condition): Check vectype
24158 of operands is compatible with a statement vectype.
24159
24160 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
24161
24162 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
24163 improve wording for mixed storage order support.
24164
24165 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
24166
24167 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
24168 (vcvt_u64_f64): Likewise.
24169 (vcvta_s64_f64): Likewise.
24170 (vcvta_u64_f64): Likewise.
24171 (vcvtm_s64_f64): Likewise.
24172 (vcvtm_u64_f64): Likewise.
24173 (vcvtn_s64_f64): Likewise.
24174 (vcvtn_u64_f64): Likewise.
24175 (vcvtp_s64_f64): Likewise.
24176 (vcvtp_u64_f64): Likewise.
24177
24178 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
24179
24180 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
24181 (arc_init): Check validity mll64 option.
24182 (arc_save_restore): Use double load/store instruction.
24183 (arc_expand_movmem): Likewise.
24184 (arc_split_move): Don't split if we have double load/store
24185 instructions. Returns a boolean.
24186 (arc_process_double_reg_moves): Change function to return boolean
24187 instead of a sequence of instructions.
24188 (arc_dwarf_register_span): New function.
24189 * config/arc/arc-protos.h (arc_split_move): Change prototype.
24190 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
24191 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
24192 (*movdf_insn): Likewise.
24193 * config/arc/arc.opt (mll64): New option.
24194 * config/arc/predicates.md (even_register_operand): New predicate.
24195 * doc/invoke.texi (ARC Options): Add mll64 documentation.
24196
24197 2016-01-25 Richard Biener <rguenther@suse.de>
24198
24199 PR lto/69393
24200 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
24201 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
24202 DECL_NAMELESS.
24203 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
24204
24205 2016-01-25 Richard Biener <rguenther@suse.de>
24206
24207 PR tree-optimization/69376
24208 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
24209 flag.
24210 (VN_INFO_ANTI_RANGE_P): New inline.
24211 (VN_INFO_RANGE_TYPE): Likewise.
24212 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
24213 SSA_NAME_ANTI_RANGE_P.
24214 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
24215 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24216 Properly query VN_INFO_RANGE_TYPE.
24217
24218 2016-01-25 Nick Clifton <nickc@redhat.com>
24219
24220 PR target/66655
24221 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
24222
24223 2016-01-23 Tom de Vries <tom@codesourcery.com>
24224
24225 PR tree-optimization/69426
24226 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
24227 removed clobber.
24228
24229 2016-01-23 Jakub Jelinek <jakub@redhat.com>
24230
24231 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
24232 "the the" with "the" in the comments.
24233 * ipa-devirt.c (build_type_inheritance_graph,
24234 update_type_inheritance_graph): Likewise.
24235 * tree.c (build_function_type_list_1): Likewise.
24236 * cfgloopmanip.c (scale_loop_profile): Likewise.
24237 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
24238 * gimple-ssa-split-paths.c
24239 (find_block_to_duplicate_for_splitting_paths): Likewise.
24240 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
24241 * expr.c (convert_move): Likewise.
24242 * var-tracking.c (vt_stack_adjustments): Likewise.
24243 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
24244 * tree-vrp.c (test_for_singularity): Likewise.
24245
24246 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
24247 directly instead of building a temporary tree.
24248
24249 PR bootstrap/69434
24250 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
24251 remove <algorithm> include.
24252
24253 2016-01-22 Jakub Jelinek <jakub@redhat.com>
24254
24255 PR target/69432
24256 * config/i386/i386.c: Include dojump.h.
24257 (expand_small_movmem_or_setmem,
24258 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
24259 fixes.
24260 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
24261 if dynamic_check != -1.
24262
24263 2016-01-21 Jeff Law <law@redhat.com>
24264
24265 PR middle-end/69347
24266 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
24267 record_temporary_equivalences. Rewritten to avoid unnecessary calls
24268 into dominated_by_p.
24269 (cprop_into_successor_phis): Avoid unnecessary tests.
24270
24271 2016-01-22 Richard Henderson <rth@redhat.com>
24272
24273 PR target/69416
24274 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
24275 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
24276
24277 2016-01-22 Michael Matz <matz@suse.de>
24278
24279 * system.h (string, algorithm): Include only conditionally.
24280 (new): Include always under C++.
24281 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
24282 * final.c (toplevel): Ditto.
24283 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
24284 * genconditions.c (write_header): Make gencondmd.c define
24285 INCLUDE_STRING.
24286 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
24287
24288 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
24289 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
24290
24291 2016-01-22 Christian Bruel <christian.bruel@st.com>
24292
24293 PR target/68674
24294 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
24295
24296 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24297
24298 PR target/69403
24299 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
24300 define_insn_and_split. Ensure operands[1] and operands[0] do not
24301 get assigned the same register.
24302
24303 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
24304
24305 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
24306
24307 2016-01-22 Christian Bruel <christian.bruel@st.com>
24308
24309 * config/arm/arm-c.c (arm_pragma_target_parse):
24310 Remove warn_builtin_macro_redefined overwrite.
24311
24312 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
24313
24314 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
24315 flag_non_call_exceptions compatibility.
24316
24317 2016-01-22 Jakub Jelinek <jakub@redhat.com>
24318
24319 PR debug/66668
24320 * dwarf2out.c (add_child_die_after): New function.
24321 (dwarf_qual_info_t): New type.
24322 (dwarf_qual_info): New variable.
24323 (qualified_die_p): New function.
24324 (modified_type_die): For -fdebug-types-section, ensure
24325 canonical order of qualifiers. Put qualified DIEs adjacent
24326 to the corresponding non-qualified type DIE and search there
24327 for existing qualified DIEs.
24328
24329 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
24330
24331 * doc/extend.texi (scalar_storage_order type attribute): Document
24332 restriction on type punning and aliasing, and remove future tense.
24333
24334 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
24335
24336 PR target/69252
24337 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
24338 first stage.
24339
24340 2016-01-21 Jeff Law <law@redhat.com>
24341
24342 PR middle-end/69347
24343 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
24344 useless call to record_temporary_equivalences.
24345 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
24346 allocate 10 slots in the bb_path vector and let it grow as needed.
24347 (fsm_find_control_statement_thread_paths): Similarly for the next_path
24348 vector.
24349
24350 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
24351
24352 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
24353 Detangle.
24354 * configure: Regenerate.
24355
24356 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
24357
24358 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
24359 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
24360
24361 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
24362
24363 PR middle-end/66178
24364 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
24365 drop EXPAND_INITIALIZER.
24366 * rtl.h (contains_symbolic_reference_p): Declare.
24367 * rtlanal.c (contains_symbolic_reference_p): New function.
24368 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
24369 a subtraction into a NOT if symbolic constants are involved.
24370
24371 2016-01-21 Anton Blanchard <anton@samba.org>
24372 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24373
24374 PR target/63354
24375 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
24376 #define.
24377 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
24378 function.
24379
24380 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
24381
24382 * config/microblaze/microblaze.c
24383 (get_branch_target): New.
24384 (insert_wic_for_ilb_runout): New.
24385 (insert_wic): New.
24386 (microblaze_machine_dependent_reorg): New.
24387 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
24388 * config/microblaze/microblaze.md
24389 (UNSPEC_IPREFETCH): Define.
24390 (iprefetch): New pattern
24391 * config/microblaze/microblaze.opt
24392 (mxl-prefetch): New flag.
24393
24394 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
24395
24396 * config/microblaze/microblaze.h
24397 (FIXED_REGISTERS): Update in macro.
24398 (CALL_USED_REGISTERS): Update in macro.
24399
24400 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
24401
24402 PR rtl-optimization/68920
24403 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
24404 moves.
24405
24406 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
24407
24408 PR rtl-optimization/68990
24409 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
24410 pseudo instead of inheritance ones.
24411
24412 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
24413 Nick Clifton <nickc@redhat.com>
24414
24415 PR target/69129
24416 PR target/69012
24417 * config/mips/mips.c (mips_compute_frame_info): Initialise
24418 args_size and hard_frame_pointer_offset fields of the frame
24419 structure before calling mips_global_pointer.
24420
24421 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
24422
24423 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
24424 label reference.
24425 * configure: Regenerate.
24426
24427 2016-01-21 Richard Biener <rguenther@suse.de>
24428
24429 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
24430
24431 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
24432
24433 * config/s390/s390.c (s390_asm_declare_function_size): Add code
24434 to actually emit the .size directive.
24435
24436 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
24437 Jakub Jelinek <jakub@redhat.com>
24438
24439 PR target/69187
24440 PR target/65624
24441 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
24442 args array size by one to avoid buffer overflow.
24443
24444 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
24445
24446 * config/s390/s390.md (pool_section_start): Use switch_to_section
24447 to select proper read-only data section instead of hardcoding
24448 .rodata.
24449 (pool_section_end): Use switch_to_section to match the above.
24450
24451 2016-01-21 Richard Biener <rguenther@suse.de>
24452
24453 PR tree-optimization/69378
24454 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
24455 (set_ssa_val_to): Use it for dominance checks taking into
24456 account not executable edges.
24457
24458 2016-01-21 Jakub Jelinek <jakub@redhat.com>
24459
24460 PR c++/69355
24461 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
24462 for bitsize instead of GET_MODE_PRECISION (mode).
24463
24464 2016-01-20 Martin Sebor <msebor@redhat.com>
24465
24466 PR c/52291
24467 * extend.texi (__sync Builtins): Clarify the semantics of
24468 __sync_fetch_and_OP built-ins on pointers.
24469 (__atomic Builtins): Same.
24470
24471 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24472 Sebastian Pop <s.pop@samsung.com>
24473
24474 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
24475 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
24476 (is_valid_rename): Same.
24477 (translate_isl_ast_to_gimple::get_rename): Same.
24478 (translate_isl_ast_to_gimple::rename_all_uses): Same.
24479 (translate_isl_ast_to_gimple::rename_uses): Same.
24480 (get_new_name): Check for close_phi nodes.
24481 (copy_loop_phi_args): Use phi_node_kind.
24482 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
24483 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
24484
24485 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24486 Sebastian Pop <s.pop@samsung.com>
24487
24488 Revert commit r229783.
24489 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
24490 Remove use of parameter_rename_map.
24491 (copy_def): Remove.
24492 (copy_internal_parameters): Remove.
24493 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
24494 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
24495 (free_sese_info): Do not free parameter_rename_map.
24496 (set_rename): Do not use parameter_rename_map.
24497 (rename_uses): Update call to set_rename.
24498 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
24499 * sese.h (parameter_rename_map_t): Remove.
24500 (struct sese_info_t): Remove field parameter_rename_map.
24501
24502 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24503 Sebastian Pop <s.pop@samsung.com>
24504
24505 * graphite-isl-ast-to-gimple.c: Fix comment.
24506 * graphite-scop-detection.c (defined_in_loop_p): New.
24507 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
24508 names defined in loop.
24509
24510 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24511 Sebastian Pop <s.pop@samsung.com>
24512
24513 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
24514 Discard unstructured if-then-else regions.
24515
24516 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24517 Sebastian Pop <s.pop@samsung.com>
24518
24519 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
24520 (cleanup_loop_iter_dom): Remove.
24521 (build_loop_iteration_domains): Remove.
24522 (build_scop_context): Remove.
24523 (build_scop_iteration_domain): Remove.
24524 (add_loop_constraints): New.
24525 (build_iteration_domains): New.
24526 (build_poly_scop): Call build_iteration_domains.
24527
24528 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24529 Sebastian Pop <s.pop@samsung.com>
24530
24531 * graphite-scop-detection.c
24532 (scop_detection::harmful_loop_in_region): Free dom and loops.
24533 (scop_detection::loop_body_is_valid_scop): Free bbs.
24534
24535 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24536 Sebastian Pop <s.pop@samsung.com>
24537
24538 * graphite-scop-detection.c (record_loop_in_sese): New.
24539 (gather_bbs::before_dom_children): Call record_loop_in_sese.
24540 (build_scops): Remove call to build_sese_loop_nests.
24541 * sese.c (sese_record_loop): Remove.
24542 (build_sese_loop_nests): Remove.
24543 (new_sese_info): Remove region->loops.
24544 (free_sese_info): Same.
24545 * sese.h (sese_contains_loop): Same.
24546 (build_sese_loop_nests): Remove.
24547 (sese_contains_loop): Remove.
24548
24549 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24550 Sebastian Pop <s.pop@samsung.com>
24551
24552 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
24553 loop_is_valid_in_scop.
24554 (scop_detection::harmful_stmt_in_region): Renamed
24555 harmful_loop_in_region.
24556 Call loop_is_valid_in_scop.
24557
24558 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24559 Sebastian Pop <s.pop@samsung.com>
24560
24561 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
24562 isl_ast_node_mark.
24563
24564 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24565 Sebastian Pop <s.pop@samsung.com>
24566
24567 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
24568 * graphite.h (struct poly_bb): Remove field is_reduction.
24569 (PBB_IS_REDUCTION): Remove.
24570
24571 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24572 Sebastian Pop <s.pop@samsung.com>
24573
24574 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
24575 (add_pdr_constraints): Same.
24576 (scop_get_reads): Same.
24577 (scop_get_must_writes): Same.
24578 (scop_get_may_writes): Same.
24579 (scop_get_original_schedule): Same.
24580 (extend_schedule): Same.
24581 (apply_schedule_on_deps): Same.
24582 (carries_deps): Same.
24583 (compute_deps): Same.
24584 (scop_get_dependences): Same.
24585 * graphite-isl-ast-to-gimple.c
24586 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
24587 * graphite-optimize-isl.c (get_schedule_for_band): Same.
24588 (get_schedule_for_band_list): Same.
24589 (get_schedule_map): Same.
24590 (apply_schedule_map_to_scop): Same.
24591 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
24592 (build_loop_iteration_domains): Same.
24593 (add_condition_to_pbb): Same.
24594 (add_param_constraints): Same.
24595 (pdr_add_memory_accesses): Same.
24596 (pdr_add_data_dimensions): Same.
24597
24598 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
24599
24600 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
24601 requirements.
24602
24603 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
24604
24605 * common.opt (feliminate-dwarf2-dups): Replace references to
24606 "DWARF 2" with just "DWARF".
24607 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
24608 * doc/extend.texi: Likewise.
24609 * doc/cpp.texi: Likewise.
24610 * doc/invoke.texi: Likewise.
24611 (Option Summary): Add -gdwarf to list of Debugging Options.
24612 (Debugging Options): Document -gdwarf.
24613 * doc/contrib.texi: Spell "DWARF" like that.
24614
24615 2016-01-21 Jakub Jelinek <jakub@redhat.com>
24616
24617 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
24618 warning. Fix up formatting.
24619
24620 PR middle-end/67653
24621 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
24622 attempt to mark memory input operand addressable and
24623 call prepare_gimple_addressable in that case. Don't adjust
24624 input_location for diagnostics, use error_at instead.
24625
24626 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
24627
24628 * config/rs6000/ppc-auxv.h: New file.
24629 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
24630 (cpu_is): Likewise.
24631 (cpu_supports): Likewise.
24632 * config/rs6000/rs6000.c: include "ppc-auxv.h".
24633 (cpu_is_info): New variable.
24634 (cpu_supports_info): Likewise.
24635 (tcb_verification_symbol): Likewise.
24636 (cpu_builtin_p): Likewise.
24637 (cpu_expand_builtin): New function.
24638 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
24639 (rs6000_init_builtins): Likewise.
24640 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
24641 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
24642 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
24643 * configure: Regenerate.
24644 * config.in: Likewise.
24645 * doc/extend.texi (PowerPC Built-in Functions): Document
24646 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
24647
24648 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
24649
24650 PR target/68609
24651 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
24652 domain check.
24653 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
24654 for V4SFmode.
24655
24656 2016-01-20 Richard Henderson <rth@redhat.com>
24657
24658 PR bootstrap/69343
24659 PR bootstrap/69339
24660 PR tree-opt/68964
24661 Revert:
24662 * tree.c (tm_define_builtin): New.
24663 (find_tm_vector_type): New.
24664 (build_tm_vector_builtins): New.
24665 (build_common_builtin_nodes): Call it.
24666
24667 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
24668
24669 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
24670 (arm_fp_ok): Likewise.
24671 (arm_fp): Likewise.
24672 (arm_crypto): Likewise.
24673
24674 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
24675 Richard Biener <rguenther@suse.de>
24676
24677 PR tree-optimization/69328
24678 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
24679 vectors have same number of elements.
24680 (vectorizable_condition): Fix masked version recognition.
24681
24682 2016-01-20 Richard Biener <rguenther@suse.de>
24683
24684 PR tree-optimization/69345
24685 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
24686 (VN_INFO_PTR_INFO): Likewise.
24687 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
24688 info when it is equal between non-dominating SSA names.
24689 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24690 Make sure to look at original SSA infos.
24691
24692 2016-01-20 Jeff Law <law@redhat.com>
24693
24694 PR target/25114
24695 * config/m68k/predicates.md (pow2_m1_operand): New predicate
24696 extracted from ...
24697 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
24698 (pc_or_label_operand): New predicate.
24699 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
24700 tests for small integers that are 2^n - 1.
24701
24702 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
24703
24704 * doc/invoke.texi (Options Summary): Add '.' after @xref.
24705
24706 2016-01-19 Jeff Law <law@redhat.com>
24707
24708 PR middle-end/69347
24709 * tree-ssa-threadbackwards.c
24710 (fsm_find_control_statement_thread_paths): Do not try to lookup
24711 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
24712
24713 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
24714
24715 * doc/lto.texi: Remove text that says only Gold has linker plugin
24716 support.
24717
24718 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
24719
24720 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
24721 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
24722 the DIE accordingly.
24723 (modified_type_die): Add REVERSE parameter and pass it recursively,
24724 as well as to base_type_die. Adjust presence check accordingly.
24725 (base_type_for_mode): Adjust call to modified_type_die.
24726 (add_type_attribute): Add REVERSE parameter and pass it to
24727 modified_type_die.
24728 (generic_parameter_die): Adjust call to add_type_attribute.
24729 (add_scalar_info): Likewise.
24730 (add_subscript_info): Likewise.
24731 (gen_array_type_die): Likewise.
24732 (gen_descr_array_type_die): Likewise.
24733 (gen_entry_point_die): Likewise.
24734 (gen_enumeration_type_die): Likewise.
24735 (gen_formal_parameter_die): Likewise.
24736 (gen_subprogram_die): Likewise.
24737 (gen_variable_die ): Likewise.
24738 (gen_const_die): Likewise.
24739 (gen_field_die): Likewise.
24740 (gen_pointer_type_die): Likewise.
24741 (gen_reference_type_die): Likewise.
24742 (gen_ptr_to_mbr_type_die): Likewise.
24743 (gen_inheritance_die): Likewise.
24744 (gen_subroutine_type_die): Likewise.
24745 (gen_typedef_die): Likewise.
24746 (force_type_die): Adjust call to modified_type_die.
24747
24748 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
24749
24750 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
24751 flow throughout the file. Fix broken link to Objective-C 2.0
24752 documentation.
24753 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
24754 errors.
24755
24756 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24757
24758 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
24759
24760 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24761
24762 PR ipa/66223
24763 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
24764 (maybe_record_node): Record cxa_pure_virtual as the only possible
24765 target if there are not ohter candidates.
24766 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
24767
24768 2016-01-19 Richard Biener <rguenther@suse.de>
24769
24770 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
24771 (get_memory_order): Likewise.
24772
24773 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
24774
24775 * tree-vect-stmts.c (vectorizable_store): Check
24776 rhs vectype.
24777
24778 2016-01-19 David Malcolm <dmalcolm@redhat.com>
24779
24780 PR jit/68446
24781 * gcc.c (driver::decode_argv): Add call to
24782 init_opts_obstack before init_options_struct.
24783 * opts.c (init_opts_obstack): Remove idempotency.
24784 (init_options_struct): Replace call to init_opts_obstack
24785 with a gcc_assert to verify that it has already been called.
24786 * toplev.c (toplev::main): Add call to init_opts_obstack before
24787 calls to init_options_struct.
24788 (toplev::finalize): Move cleanup of opts_obstack next to
24789 cleanup of save_decoded_options, clearing the latter, and
24790 save_decoded_options_count.
24791
24792 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24793
24794 PR target/69135
24795 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
24796 attribute to unconditional. Remove %? from output template.
24797
24798 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24799 Jiong Wang <jiong.wang@arm.com>
24800
24801 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
24802 generated from different expand order.
24803
24804 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24805
24806 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
24807 Add support for CCMP costing.
24808
24809 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24810
24811 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
24812 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
24813 (fccmpe<mode>): Likewise.
24814 (fcmp): Rename to fcmp and globalize pattern.
24815 (fcmpe): Likewise.
24816 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
24817 (aarch64_gen_ccmp_next): Add FP support.
24818
24819 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24820
24821 * target.def (gen_ccmp_first): Update documentation.
24822 (gen_ccmp_next): Likewise.
24823 * doc/tm.texi (gen_ccmp_first): Update documentation.
24824 (gen_ccmp_next): Likewise.
24825 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
24826 expand_ccmp_expr_1. Improve comments.
24827 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
24828 (ccmp_ior<mode>): Remove pattern.
24829 (cmp<mode>): Remove expand.
24830 (cmp): Globalize pattern.
24831 (cstorecc4): Use cc_register.
24832 (mov<mode>cc): Remove ccmp_cc_register check.
24833 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
24834 Simplify after removal of CC_DNE/* modes.
24835 (aarch64_ccmp_mode_to_code): Remove.
24836 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
24837 In 'k' case use integer as condition.
24838 (aarch64_nzcv_codes): Remove inverted cases.
24839 (aarch64_code_to_ccmode): Remove.
24840 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
24841 comparison with CC register to be used in folowing CCMP/branch/CSEL.
24842 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
24843 pattern. Return the comparison with CC register. Invert conditions
24844 when bitcode is OR.
24845 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
24846 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
24847
24848 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24849
24850 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
24851 instrumented_version.
24852
24853 2016-01-19 Richard Biener <rguenther@suse.de>
24854
24855 PR tree-optimization/69336
24856 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
24857 handled components with get_ref_base_and_extent.
24858 (equal_mem_array_ref_p): Adjust.
24859
24860 2016-01-19 Jakub Jelinek <jakub@redhat.com>
24861
24862 PR debug/65779
24863 * shrink-wrap.c: Include valtrack.h.
24864 (move_insn_for_shrink_wrap): Add DEBUG argument. If
24865 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
24866 in between insn and where it will be moved to. Call
24867 dead_debug_insert_temp.
24868 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
24869 first and dead_debug_local_finish at the end.
24870 For uses and defs bitmap, handle all regs in between REGNO and
24871 END_REGNO, not just the first one.
24872
24873 2016-01-19 Richard Biener <rguenther@suse.de>
24874
24875 PR tree-optimization/69352
24876 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
24877 (equal_mem_array_ref_p): Constrain size and max size properly.
24878 Compare the reverse flag.
24879
24880 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
24881
24882 * ira.c (ira): Update regstat data if we deleted insns.
24883
24884 2016-01-19 Jakub Jelinek <jakub@redhat.com>
24885
24886 PR rtl-optimization/68955
24887 PR rtl-optimization/64557
24888 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
24889 here. Fix up formatting.
24890 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
24891
24892 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24893
24894 PR lto/69133
24895 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
24896 assume that the node has body.
24897 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
24898 check.
24899
24900 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24901
24902 * lto-streamer-out.c (lto_output): Do not stream instrumentation
24903 thunks.
24904
24905 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24906
24907 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
24908 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
24909
24910 2016-01-19 Martin Jambor <mjambor@suse.cz>
24911 Martin Liska <mliska@suse.cz>
24912 Michael Matz <matz@suse.de>
24913
24914 * Makefile.in (OBJS): Add new source files.
24915 (GTFILES): Add hsa.c.
24916 * common.opt (disable_hsa): New variable.
24917 (-Whsa): New warning.
24918 * config.in (ENABLE_HSA): New.
24919 * configure.ac: Treat hsa differently from other accelerators.
24920 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
24921 $enable_offloading.
24922 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
24923 * doc/install.texi (Configuration): Document --with-hsa-runtime,
24924 --with-hsa-runtime-include, --with-hsa-runtime-lib and
24925 --with-hsa-kmt-lib.
24926 * doc/invoke.texi (-Whsa): Document.
24927 (hsa-gen-debug-stores): Likewise.
24928 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
24929 to invoke offload compiler for hsa acclerator.
24930 * opts.c (common_handle_option): Determine whether HSA offloading
24931 should be performed.
24932 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
24933 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
24934 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
24935 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
24936 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
24937 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
24938 GF_OMP_FOR_KIND_GRID_LOOP.
24939 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
24940 (pp_gimple_stmt_1): Likewise.
24941 * gimple-walk.c (walk_gimple_stmt): Likewise.
24942 * gimple.c (gimple_build_omp_grid_body): New function.
24943 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
24944 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
24945 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
24946 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
24947 GF_OMP_TEAMS_GRID_PHONY.
24948 (gimple_statement_omp_single_layout): Updated comments.
24949 (gimple_build_omp_grid_body): New function.
24950 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
24951 (gimple_omp_for_grid_phony): New function.
24952 (gimple_omp_for_set_grid_phony): Likewise.
24953 (gimple_omp_parallel_grid_phony): Likewise.
24954 (gimple_omp_parallel_set_grid_phony): Likewise.
24955 (gimple_omp_teams_grid_phony): Likewise.
24956 (gimple_omp_teams_set_grid_phony): Likewise.
24957 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
24958 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
24959 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
24960 (BUILT_IN_GOMP_TARGET): Updated type.
24961 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
24962 (adjust_for_condition): New function.
24963 (get_omp_for_step_from_incr): Likewise.
24964 (extract_omp_for_data): Moved parts to adjust_for_condition and
24965 get_omp_for_step_from_incr.
24966 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
24967 (fixup_child_record_type): Bail out if receiver_decl is NULL.
24968 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
24969 (scan_omp_parallel): Do not create child functions for phony
24970 constructs.
24971 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
24972 (scan_omp_1_op): Checking assert we are not remapping to
24973 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
24974 (parallel_needs_hsa_kernel_p): New function.
24975 (expand_parallel_call): Register apprpriate parallel child
24976 functions as HSA kernels.
24977 (grid_launch_attributes_trees): New type.
24978 (grid_attr_trees): New variable.
24979 (grid_create_kernel_launch_attr_types): New function.
24980 (grid_insert_store_range_dim): Likewise.
24981 (grid_get_kernel_launch_attributes): Likewise.
24982 (get_target_argument_identifier_1): Likewise.
24983 (get_target_argument_identifier): Likewise.
24984 (get_target_argument_value): Likewise.
24985 (push_target_argument_according_to_value): Likewise.
24986 (get_target_arguments): Likewise.
24987 (expand_omp_target): Call get_target_arguments instead of looking
24988 up for teams and thread limit.
24989 (grid_expand_omp_for_loop): New function.
24990 (grid_arg_decl_map): New type.
24991 (grid_remap_kernel_arg_accesses): New function.
24992 (grid_expand_target_kernel_body): New function.
24993 (expand_omp): Call it.
24994 (lower_omp_for): Do not emit phony constructs.
24995 (lower_omp_taskreg): Do not emit phony constructs but create for them
24996 a temporary variable receiver_decl.
24997 (lower_omp_taskreg): Do not emit phony constructs.
24998 (lower_omp_teams): Likewise.
24999 (lower_omp_grid_body): New function.
25000 (lower_omp_1): Call it.
25001 (grid_reg_assignment_to_local_var_p): New function.
25002 (grid_seq_only_contains_local_assignments): Likewise.
25003 (grid_find_single_omp_among_assignments_1): Likewise.
25004 (grid_find_single_omp_among_assignments): Likewise.
25005 (grid_find_ungridifiable_statement): Likewise.
25006 (grid_target_follows_gridifiable_pattern): Likewise.
25007 (grid_remap_prebody_decls): Likewise.
25008 (grid_copy_leading_local_assignments): Likewise.
25009 (grid_process_kernel_body_copy): Likewise.
25010 (grid_attempt_target_gridification): Likewise.
25011 (grid_gridify_all_targets_stmt): Likewise.
25012 (grid_gridify_all_targets): Likewise.
25013 (execute_lower_omp): Call grid_gridify_all_targets.
25014 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
25015 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
25016 (tree_omp_clause): Added union field dimension.
25017 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
25018 * tree.c (omp_clause_num_ops): Added number of arguments of
25019 OMP_CLAUSE__GRIDDIM_.
25020 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
25021 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
25022 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
25023 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
25024 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
25025 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
25026 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
25027 * tree-pass.h (make_pass_gen_hsail): Declare.
25028 (make_pass_ipa_hsa): Likewise.
25029 * ipa-hsa.c: New file.
25030 * lto-section-in.c (lto_section_name): Add hsa section name.
25031 * lto-streamer.h (lto_section_type): Add hsa section.
25032 * timevar.def (TV_IPA_HSA): New.
25033 * hsa-brig-format.h: New file.
25034 * hsa-brig.c: New file.
25035 * hsa-dump.c: Likewise.
25036 * hsa-gen.c: Likewise.
25037 * hsa.c: Likewise.
25038 * hsa.h: Likewise.
25039 * toplev.c (compile_file): Call hsa_output_brig.
25040 * hsa-regalloc.c: New file.
25041
25042 2016-01-18 Jeff Law <law@redhat.com>
25043
25044 PR tree-optimization/69320
25045 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
25046 ranged object, do nothing if the RHS constant is not [0..1].
25047 (optimize_stmt): Comparing a boolean ranged object against a
25048 constant outside [0..1] results in a compile-time constant.
25049
25050 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
25051 test.
25052
25053 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
25054
25055 * doc/invoke.texi (Invoking GCC): Add new section to menu.
25056 (Option Summary): Update to reflect new section and moved options.
25057 (C++ Dialect Options): Move -fstats to new section.
25058 (Debugging Options): Move all dump, statistics, and other GCC
25059 developer options to new section. Rewrite section introduction
25060 and re-order remaining options to put the more basic ones first.
25061 (Optimization Options): Move -fira-verbose and -flto-report* to
25062 new section.
25063 (Developer Options): New section incorporating moved options.
25064 * doc/cppopts.texi (-dM): Update cross-reference.
25065
25066 2016-01-18 Richard Henderson <rth@redhat.com>
25067
25068 PR target/69176
25069 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
25070 operands to pseudo only if CSE is expected. Split long immediate
25071 operands only after reload, and for the stack pointer.
25072 (*add<GPI>3_pluslong): Remove.
25073 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
25074 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
25075 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
25076 (*add<GPI>3 peepholes): New.
25077 (*add<GPI>3 splitters): New.
25078 * config/aarch64/constraints.md (Upl): New.
25079 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
25080
25081 2016-01-18 Richard Biener <rguenther@suse.de>
25082
25083 PR tree-optimization/69297
25084 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
25085 stmt at most once.
25086 (vect_bb_vectorization_profitable_p): Clear visited flag again.
25087
25088 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
25089
25090 PR middle-end/68542
25091 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
25092 of mixind vector and scalar types.
25093 (fold_relational_const): Add handling of vector
25094 comparison with boolean result.
25095 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
25096 comparison of vector operands with boolean result for EQ/NE only.
25097 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
25098 (verify_gimple_cond): Likewise.
25099 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
25100 valid type of VAL.
25101
25102 2016-01-18 Joseph Myers <joseph@codesourcery.com>
25103
25104 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
25105 !TARGET_OCTEON.
25106
25107 2016-01-18 Richard Biener <rguenther@suse.de>
25108
25109 PR middle-end/69308
25110 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
25111
25112 2016-01-18 Tom de Vries <tom@codesourcery.com>
25113
25114 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
25115
25116 2016-01-18 Tom de Vries <tom@codesourcery.com>
25117
25118 * omp-low.c (set_oacc_fn_attrib): Make extern.
25119 * omp-low.h (set_oacc_fn_attrib): Declare.
25120 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
25121 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
25122 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
25123 Add and handle function parameter oacc_kernels_p.
25124 (find_reduc_addr, get_omp_data_i_param): New function.
25125 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
25126 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
25127 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
25128 Calculate dominance info. Skip loops that are not in a kernels region
25129 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
25130 (pass_parallelize_loops::execute): Call parallelize_loops with
25131 oacc_kernels_p argument.
25132 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
25133 New member function.
25134 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
25135 * passes.def: Add argument to pass_parallelize_loops instantation.
25136
25137 2016-01-18 Tom de Vries <tom@codesourcery.com>
25138
25139 * tree-parloops.c (pass_parallelize_loops::execute): Allow
25140 pass_parallelize_loops to be run outside the loop pipeline.
25141
25142 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
25143
25144 * tree-scalar-evolution.c (follow_copies_to_constant): New.
25145 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
25146
25147 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
25148
25149 PR target/63679
25150 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
25151 using get_ref_base_and_extent.
25152 (equal_mem_array_ref_p): New.
25153 (hashable_expr_equal_p): Add call to previous.
25154
25155 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
25156
25157 PR target/63679
25158 * tree-sra.c (disqualified_constants, constant_decl_p): New.
25159 (sra_initialize): Allocate disqualified_constants.
25160 (sra_deinitialize): Free disqualified_constants.
25161 (disqualify_candidate): Update disqualified_constants when appropriate.
25162 (create_access): Scan for constant-pool entries as we go along.
25163 (scalarizable_type_p): Add check against type_contains_placeholder_p.
25164 (maybe_add_sra_candidate): Allow constant-pool entries.
25165 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
25166 (initialize_constant_pool_replacements): New.
25167 (sra_modify_assign): Avoid mangling assignments created by previous,
25168 and don't generate writes into constant pool.
25169 (sra_modify_function_body): Call initialize_constant_pool_replacements.
25170
25171 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
25172
25173 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
25174 andnot instruction.
25175 (scalar_chain::convert_op): Likewise.
25176 * config/i386/i386.md (*andndi3_doubleword): New.
25177
25178 2016-01-18 Richard Biener <rguenther@suse.de>
25179
25180 PR tree-optimization/69170
25181 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
25182 building a vector from scalar results of a pattern stmt.
25183
25184 2016-01-18 Jakub Jelinek <jakub@redhat.com>
25185
25186 * haifa-sched.c (autopref_multipass_init): Work around
25187 -Wmaybe-uninitialized warning.
25188
25189 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
25190
25191 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
25192 against the constant 0.
25193
25194 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25195
25196 PR tree-optimization/68799
25197 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
25198 look up phi candidates in the statement-candidate map.
25199 (phi_add_costs): Likewise.
25200 (record_phi_increments): Likewise.
25201 (phi_incr_cost): Likewise.
25202 (ncd_with_phi): Likewise.
25203 (all_phi_incrs_profitable): Likewise.
25204
25205 2016-01-17 Jakub Jelinek <jakub@redhat.com>
25206
25207 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
25208 -Wmaybe-uninitialized warning.
25209
25210 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
25211
25212 * doc/invoke.texi (Invoking GCC): Add new section to menu.
25213 (Option Summary): Update to reflect new section and moved options.
25214 (C++ Dialect Options): Move -fvtable-verify and related options.
25215 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
25216 and profiling-related options.
25217 (Optimization Options): Move profile generation options and
25218 -fstack-protector and related options.
25219 (Instrumentation Options): New section incorporating moved options.
25220 (Code Generation Options): Move -finstrument-functions and
25221 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
25222
25223 2016-01-16 Tom de Vries <tom@codesourcery.com>
25224
25225 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
25226
25227 2016-01-16 Tom de Vries <tom@codesourcery.com>
25228
25229 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
25230
25231 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
25232
25233 * hash-table.h (hash_table::empty): Turn into an inline wrapper
25234 that checks whether the table is already empty. Rename the
25235 original implementation to...
25236 (hash_table::empty_slot): ...this new private function.
25237
25238 2016-01-15 David Malcolm <dmalcolm@redhat.com>
25239
25240 PR diagnostic/68899
25241 * diagnostic-show-locus.c (layout::print_source_line): Move x
25242 offset of line until after call to
25243 get_line_width_without_trailing_whitespace.
25244
25245 2016-01-15 Jeff Law <law@redhat.com>
25246
25247 PR tree-optimization/69270
25248 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
25249 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
25250 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
25251 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
25252 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
25253 ssa_name_has_boolean_range and constant_boolean_node.
25254
25255 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
25256
25257 PR rtl-optimization/69030
25258 * lra-spills.c (remove_pseudos): Check nrefs and make the function
25259 returning bool.
25260 (spill_pseudos): Delete debug insn for dead pseudo.
25261 (lra_spill): Initiate spill_hard_reg and slots memory separately.
25262
25263 2016-01-15 Jiong Wang <jiong.wang@arm.com>
25264
25265 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
25266 New.
25267 (TYPES_UNOPUS): Likewise.
25268 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
25269 builtin type, from UNOP to UNOPUS.
25270 (lbtruncuv4sf): Likewise.
25271 (lbtruncuv2df): Likewise.
25272 (lrounduv2sf): Likewise.
25273 (lrounduv4sf): Likewise.
25274 (lrounduv2df): Likewise.
25275 (lroundusf): Likewise.
25276 (lroundusf): Likewise.
25277 (lceiluv2sf): Likewise.
25278 (lceiluv4sf): Likewise.
25279 (lceiluv2df): Likewise.
25280 (lceilusf): Likewise.
25281 (lceiludf): Likewise.
25282 (lflooruv2sf): Likewise.
25283 (lflooruv4sf): Likewise.
25284 (lflooruv2df): Likewise.
25285 (lfloorusf): Likewise.
25286 (lfloorudf): Likewise.
25287 (lfrintnuv2sf): Likewise.
25288 (lfrintnuv4sf): Likewise.
25289 (lfrintnuv2df): Likewise.
25290 (lfrintnusf): Likewise.
25291 (lfrintnudf): Likewise.
25292 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
25293 conversion.
25294 (vcvtq_u32_f32): Likewise.
25295 (vcvtq_u64_f64): Likewise.
25296 (vcvta_u32_f32): Likewise.
25297 (vcvtaq_u32_f32): Likewise.
25298 (vcvtaq_u64_f64): Likewise.
25299 (vcvtm_u32_f32): Likewise.
25300 (vcvtmq_u32_f32): Likewise.
25301 (vcvtmq_u64_f64): Likewise.
25302 (vcvtn_u32_f32): Likwise.
25303 (vcvtnq_u32_f32): Likewise.
25304 (vcvtnq_u64_f64): Likewise.
25305 (vcvtp_u32_f32): Likewise.
25306 (vcvtpq_u32_f32): Likewise.
25307 (vcvtpq_u64_f64): Likewise.
25308 (vcvtmd_u64_f64): Likewise.
25309 (vcvtms_u32_f32): Likewise.
25310 (vcvtad_u64_f64): Likewise.
25311 (vcvtas_u32_f32): Likewise.
25312 (vcvtnd_u64_f64): Likewise.
25313 (vcvtns_u32_f32): Likewise.
25314 (vcvtpd_u64_f64): Likewise.
25315 (vcvtps_u32_f32): Likewise.
25316
25317 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25318
25319 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
25320 CSEL of zero_extended registers.
25321
25322 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25323
25324 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
25325 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
25326
25327 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25328
25329 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
25330 false when argument string is not found in the attributes table
25331 at all.
25332
25333 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
25334
25335 PR target/68609
25336 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
25337 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
25338 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
25339 precision estimate.
25340
25341 2016-01-15 Richard Biener <rguenther@suse.de>
25342
25343 PR tree-optimization/66856
25344 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
25345 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
25346 (vect_create_new_slp_node): Increment stmt reference count.
25347 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
25348 an SLP tree before swapping operands.
25349 (vect_build_slp_tree): Likewise.
25350 (destroy_bb_vec_info): Free stmt info after SLP instances.
25351 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
25352 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
25353 (STMT_VINFO_NUM_SLP_USES): New macro.
25354
25355 2016-01-15 Richard Biener <rguenther@suse.de>
25356
25357 PR debug/69137
25358 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
25359 (add_linkage_name): ... here.
25360 (gen_typedef_die): Use add_linkage_name_raw instead of
25361 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
25362 if necessary.
25363
25364 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
25365
25366 * gimplify.c (oacc_default_clause): Decode reference and pointer
25367 types for both kernels and parallel regions.
25368
25369 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
25370
25371 PR middle-end/69246
25372 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
25373
25374 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
25375
25376 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
25377 (convert_scalars_to_vector): Likewise.
25378
25379 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
25380
25381 * doc/extend.texi (Type Traits): Fix grammar.
25382
25383 2016-01-15 Martin Jambor <mjambor@suse.cz>
25384
25385 * tree-inline.c (remap_decl): Use existing dclarations if
25386 remapping a type and prevent_decl_creation_for_types.
25387 (replace_locals_stmt): Do an initial remapping of non-VLA typed
25388 decls first. Do real remapping with
25389 prevent_decl_creation_for_types set.
25390 * tree-inline.h (copy_body_data): New field
25391 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
25392 padding.
25393
25394 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
25395
25396 * config/s390/s390.opt (mmvcle): More verbose help text.
25397
25398 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
25399
25400 * config/s390/s390.opt: Add period to -mzvector option text.
25401
25402 2016-01-15 Richard Biener <rguenther@suse.de>
25403
25404 PR tree-optimization/68961
25405 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
25406 of invariants in stores again.
25407
25408 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
25409
25410 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
25411
25412 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
25413
25414 * config/i386/i386.c (ix86_expand_branch): Don't split
25415 DI mode xor instruction to SI mode.
25416
25417 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
25418
25419 PR ipa/68148
25420 * ipa-icf.c (sem_function::merge): Virtual functions may become
25421 reachable even if they address is not taken and there are no
25422 idrect calls.
25423
25424 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
25425
25426 * lto-streamer-out.c (subtract_estimated_size): New function.
25427 (get_symbol_initial_value): Use it.
25428
25429 2016-01-15 Christian Bruel <christian.bruel@st.com>
25430
25431 PR target/65837
25432 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
25433 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
25434 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
25435 use add_builtin_function_ext_scope instead of add_builtin_function.
25436 (neon_set_p, neon_crypto_set_p): Remove.
25437 (arm_init_builtins): Always call arm_init_neon_builtins and
25438 arm_init_crypto_builtins.
25439 (arm_expand_builtin): Check that builtins are allowed for the arch.
25440 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
25441 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
25442 arm_init_neon_builtins call.
25443
25444 2016-01-15 Richard Biener <rguenther@suse.de>
25445
25446 PR tree-optimization/69117
25447 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
25448 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
25449 of the leader conservatively.
25450 (free_scc_vn): Restore original SSA name infos.
25451
25452 2016-01-14 Jeff Law <law@redhat.com>
25453
25454 PR tree-optimization/69270
25455 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
25456 single bit of precision, verify it's also unsigned.
25457 (record_edge_info): Use constant_boolean_node rather than fold_convert
25458 to convert boolean_true/boolean_false to the right type.
25459
25460 2016-01-14 Richard Henderson <rth@redhat.com>
25461
25462 PR rtl-opt/69014
25463 * loop-doloop.c (record_reg_sets): New.
25464 (doloop_optimize): Reject the transform if the sequence
25465 clobbers registers live at the end of the loop block.
25466 (doloop_optimize_loops): Enable df_live if needed.
25467
25468 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
25469
25470 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
25471 * config/rs6000/rs6000.c: Likewise.
25472 * config/rs6000/rs6000.h: Likewise.
25473 * config/rs6000/rs6000.md: Likewise.
25474 * doc/extend.texi: Likewsie.
25475
25476 2016-01-14 Jeff Law <law@redhat.com>
25477
25478 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
25479 typo.
25480
25481 2016-01-14 Richard Henderson <rth@redhat.com>
25482
25483 PR c/69272
25484 PR tree-opt/68964
25485 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
25486 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
25487 instead of builtin_decl_declared_p to test for declaration.
25488
25489 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
25490
25491 * doc/loop.texi (Loop Analysis and Representation): Document
25492 loop_depth function.
25493
25494 2016-01-14 Tom de Vries <tom@codesourcery.com>
25495
25496 PR tree-optimization/68773
25497 * omp-low.c (expand_omp_target): Don't set force_output.
25498 * varpool.c (varpool_node::get_create): Same.
25499 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
25500 offload_funcs with force_output.
25501
25502 2016-01-14 Jakub Jelinek <jakub@redhat.com>
25503
25504 PR debug/69244
25505 * lra-eliminations.c (move_plus_up): Don't change anything if either
25506 the outer or inner subreg mode is not MODE_INT.
25507 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
25508 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
25509
25510 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
25511
25512 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
25513 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
25514 reduc_uplus_@var{m}): Remove.
25515 * expr.c (expand_expr_real_2): Remove expansion path for
25516 reduc_[us](min|max|plus) optabs.
25517 * optabs-tree.c (scalar_reduc_to_vector): Remove.
25518 * optabs-tree.h (scalar_reduc_to_vector): Remove.
25519 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
25520 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
25521 * tree-vect-loop.c (vectorizable_reduction): Remove test for
25522 reduc_[us](min|max|plus) optabs.
25523
25524 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
25525
25526 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
25527 (reduc_plus_scal_v2sf): New.
25528 (reduc_smax_v2sf): Rename to...
25529 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
25530 (reduc_smin_v2sf): Rename to...
25531 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
25532
25533 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
25534
25535 * alias.c (compare_base_symbol_refs): New function.
25536 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
25537 it.
25538
25539 2016-01-14 Jakub Jelinek <jakub@redhat.com>
25540
25541 PR middle-end/68146
25542 PR tree-optimization/69155
25543 * tree-complex.c: Include cfganal.h.
25544 (phis_to_revisit): New variable.
25545 (extract_component): Add phiarg_p argument. Assert that returned
25546 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
25547 (update_phi_components): Partly rewrite to use loop over real/imag
25548 components instead of code duplication. If extract_component returns
25549 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
25550 create_tmp_reg into the PHI node instead, and mention the phi triplet
25551 in phis_to_revisit.
25552 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
25553 in phis_to_revisit at the end.
25554
25555 2016-01-14 Richard Biener <rguenther@suse.de>
25556
25557 PR tree-optimization/68060
25558 * tree-vect-loop.c (vect_is_simple_reduction): Check the
25559 outer loop reduction is only used in the inner loop before
25560 detecting a double reduction.
25561
25562 2016-01-14 Jakub Jelinek <jakub@redhat.com>
25563
25564 PR target/68269
25565 * combine.c (expand_field_assignment): Punt if compute_mode is
25566 unsupported scalar mode.
25567
25568 2016-01-14 Richard Biener <rguenther@suse.de>
25569
25570 PR tree-optimization/66856
25571 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
25572 SLP node only if it built successfully.
25573 (vect_analyze_slp_instance): Adjust.
25574
25575 2016-01-14 Jeff Law <law@redhat.com>
25576
25577 PR tree-optimization/69270
25578 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
25579 (record_edge_info): Use it. Convert boolean_{true,false}_node
25580 to the type of op0.
25581
25582 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
25583
25584 PR ipa/66487
25585 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
25586 use block_ultimate_origin
25587 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
25588
25589 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
25590
25591 * doc/invoke.texi (Submodel Options): Rename section to
25592 "Machine-Dependent Options" to better reflect its content.
25593 Rewrite introductory text to remove archaic CPU names.
25594 Update references.
25595
25596 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
25597
25598 * doc/invoke.texi (Code Gen Options): Move section up in file,
25599 before target-specific options. Update menu and option summary
25600 to reflect the new section ordering.
25601
25602 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
25603
25604 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
25605 (C++ Dialect Options): Add cross-reference to -std option.
25606 * doc/standards.texi (C++ Language): Document C++14 support.
25607
25608 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
25609
25610 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
25611 for pack/unpack functions for __ibm128.
25612 (PACK_IF): Likewise.
25613 (UNPACK_IF): Likewise.
25614
25615 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
25616 support for __ibm128 pack/unpack functions.
25617 (rs6000_invalid_builtin): Likewise.
25618 (rs6000_init_builtins): Likewise.
25619 (rs6000_opt_masks): Likewise.
25620
25621 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
25622 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
25623 functions
25624 (RS6000_BTM_COMMON): Likewise.
25625
25626 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
25627 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
25628 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
25629 128-bit floating point. Add support for the double values to be
25630 in Altivec registers for TF/IF packing and unpacking, but restrict
25631 TD packing sub-fields to be FPR registers. Don't allow overlapped
25632 register support for packing. Allow pack inputs to be memory
25633 locations. Don't build generator functions for unpack<mode>_dm
25634 and unpack<mode>_nodm.
25635 (unpack<mode>_dm): Likewise.
25636 (unpack<mode>_nodm): Likewise.
25637 (pack<mode>): Likewise.
25638
25639 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
25640 built-in functions to pack/unpack explicit __ibm128 values.
25641 (__builtin_unpack_ibm128): Likewise.
25642
25643 * doc/extend.texi (PowerPC Built-in Functions): Document
25644 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
25645
25646 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
25647
25648 PR c/66208
25649 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
25650 Add new arg loc and pass it down as context.
25651 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
25652 to the location to use for the warning.
25653 (check_function_arguments): New arg loc. All callers changed. Pass
25654 it to check_function_nonnull.
25655 * c-common.h (check_function_arguments): Adjust declaration.
25656
25657 2016-01-13 Jakub Jelinek <jakub@redhat.com>
25658
25659 PR tree-optimization/69156
25660 * gimple.c (validate_type): Removed.
25661 (gimple_builtin_call_types_compatible_p): Use
25662 useless_type_conversion_p instead of validate_type.
25663 * value-prof.c (gimple_stringop_fixed_value): Fold
25664 icall_size to correct type.
25665
25666 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
25667
25668 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
25669 effects.
25670
25671 2016-01-13 Richard Henderson <rth@redhat.com>
25672
25673 PR tree-opt/68964
25674 * target.def (builtin_tm_load, builtin_tm_store): Remove.
25675 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
25676 (ix86_builtin_tm_store): Remove.
25677 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
25678 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
25679 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
25680 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
25681 * doc/tm.texi: Rebuild.
25682
25683 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
25684 (BUILT_IN_TM_MEMCPY_RTWN): New.
25685 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
25686 fallback from vector to integer helpers.
25687 (build_tm_load): Handle vector types directly, instead of
25688 via target hook.
25689 (build_tm_store): Likewise.
25690 (expand_assign_tm): Prepare for register types not handled by
25691 the above. Copy them to memory and use memcpy.
25692 * tree.c (tm_define_builtin): New.
25693 (find_tm_vector_type): New.
25694 (build_tm_vector_builtins): New.
25695 (build_common_builtin_nodes): Call it.
25696
25697 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
25698
25699 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
25700 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
25701
25702 2016-01-13 Tom de Vries <tom@codesourcery.com>
25703
25704 PR tree-optimization/69169
25705 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
25706 handled_struct_type param.
25707 (create_variable_info_for, intra_create_variable_infos): Call
25708 create_variable_info_for_1 with extra arg.
25709
25710 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
25711
25712 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
25713 and "armv8.1-a+crc" entries.
25714
25715 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
25716
25717 PR target/69228
25718 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
25719 Change first operand predicate from register_or_constm1_operand
25720 to register_operand.
25721 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
25722 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
25723 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
25724 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
25725 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
25726 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
25727 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
25728 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
25729 comparison with constm1_rtx from vec_prefetch_gen part.
25730
25731 2016-01-13 Richard Biener <rguenther@suse.de>
25732
25733 PR tree-optimization/69013
25734 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
25735 Exchange assert for a test.
25736
25737 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25738
25739 PR target/69247
25740 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
25741
25742 2016-01-13 Richard Biener <rguenther@suse.de>
25743
25744 PR tree-optimization/69242
25745 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
25746 assert with a check.
25747
25748 2016-01-13 Richard Biener <rguenther@suse.de>
25749
25750 PR tree-optimization/69186
25751 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
25752 Properly guard vect_update_misalignment_for_peel call.
25753
25754 2016-01-12 Jeff Law <law@redhat.com>
25755
25756 PR tree-optimization/pr67755
25757 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
25758 "need_profile_correction".
25759 (thread_block_1): Initialize new field to false by default. If we
25760 have multiple thread paths through a common joiner to different
25761 final targets, then set new field to true.
25762 (compute_path_counts): Only do count adjustment when it's really
25763 needed.
25764
25765 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25766
25767 * doc/invoke.texi (Spec Files): Move section down in file, past
25768 all command-line option descriptions.
25769
25770 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25771
25772 PR middle-end/54809
25773 * doc/gty.texi: Remove documentation of mark_hook.
25774 * gengtype.c (struct write_types_data): Remove code to support
25775 mark_hook attribute.
25776 (walk_type): Likewise.
25777 (write_func_for_structure): Likewise.
25778
25779 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25780
25781 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
25782 Directory Options, and -specs= to Overall Options.
25783 (Overall Options): Adjust similarly. Reorder to group related
25784 options together. Make -specs= cross-reference the spec file details.
25785 (Directory Options): Adjust similarly.
25786
25787 2016-01-12 Jeff Law <law@redhat.com>
25788
25789 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
25790
25791 2016-01-12 Olivier Hainque <hainque@adacore.com>
25792
25793 * gcc.c (spec_undefvar_allowed): New global.
25794 (process_command): Set to true when running for --version or --help,
25795 alone or together.
25796 (getenv_spec_function): When the variable is not defined, use the
25797 variable name as the variable value if we're allowed not to issue
25798 a fatal error.
25799
25800 2016-01-12 Bin Cheng <bin.cheng@arm.com>
25801
25802 PR tree-optimization/68911
25803 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
25804 information computed for expression "init + nit * step".
25805
25806 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25807
25808 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
25809 about name of GCC executable. Remove deleted node from menu.
25810 (Directory Options) <-B>: Remove cross-reference to deleted node.
25811 (Target Options): Delete section.
25812
25813 2016-01-12 Christian Bruel <christian.bruel@st.com>
25814
25815 PR target/69180
25816 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
25817 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
25818
25819 2016-01-12 Jakub Jelinek <jakub@redhat.com>
25820
25821 PR target/69198
25822 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
25823 aligned_mem is properly set for AVX512-VL floating point masked
25824 stores.
25825
25826 PR target/69175
25827 * ifcvt.c (cond_exec_process_if_block): When removing the last
25828 insn from then_bb, remove also any possible barriers that follow it.
25829
25830 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
25831
25832 PR target/68456
25833 PR target/69226
25834 * config/i386/iamcu.h (SIZE_TYPE): New macro.
25835 (PTRDIFF_TYPE): Likewise.
25836 (WCHAR_TYPE): Likewise.
25837 (WCHAR_TYPE_SIZE): Likewise.
25838 (STDINT_LONG32): Likewise.
25839
25840 2016-01-12 Richard Biener <rguenther@suse.de>
25841
25842 PR tree-optimization/69053
25843 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
25844 convert initial value for cond reductions.
25845
25846 2016-01-12 Richard Biener <rguenther@suse.de>
25847
25848 PR tree-optimization/69007
25849 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
25850 widen_sum after dot_prod and sad.
25851
25852 2016-01-12 Richard Biener <rguenther@suse.de>
25853
25854 PR tree-optimization/69168
25855 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
25856 pattern stmt SLP type.
25857 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
25858 end up unused so cope with that case.
25859
25860 2016-01-12 Richard Biener <rguenther@suse.de>
25861
25862 PR tree-optimization/69157
25863 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
25864 stmts def type only during analyze phase.
25865 (vectorizable_call): Likewise.
25866 (vectorizable_simd_clone_call): Likewise.
25867 (vectorizable_conversion): Likewise.
25868 (vectorizable_assignment): Likewise.
25869 (vectorizable_shift): Likewise.
25870 (vectorizable_operation): Likewise.
25871 (vectorizable_store): Likewise.
25872 (vectorizable_load): Likewise.
25873
25874 2016-01-12 Richard Biener <rguenther@suse.de>
25875
25876 PR tree-optimization/69174
25877 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
25878 space.
25879 (vectorizable_load): Properly compute the number of loads needed
25880 for permuted strided SLP loads and do not spuriously assign
25881 to SLP_TREE_VEC_STMTS.
25882
25883 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
25884
25885 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
25886 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
25887 (MD_EXEC_PREFIX): Remove.
25888 (MD_STARTFILE_PREFIX) Removee.
25889 (FILE_NAME_ABSOLUTE_P): Remove.
25890 (CPP_SPEC): Do not read macros from sys/version.h.
25891 (LINK_COMMAND_SPEC): Remove.
25892 (LOCAL_INCLUDE_DIR): Remove.
25893 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
25894 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
25895 (POST_LINK_SPEC): Define to invoke stubify after linker
25896 (LIBSTDCXX): Remove define
25897 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
25898 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
25899 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
25900 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
25901 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
25902 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
25903 (i386_djgpp_asm_named_section): Add propotype of new procedure
25904
25905 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
25906 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
25907 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
25908 in config/i386/djgpp.h).
25909 (STANDARD_STARTFILE_PREFIX_2): Define identical to
25910 STANDARD_STARTFILE_PREFIX_1.
25911 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
25912 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
25913 installation errors.
25914 (MAX_OFILE_ALIGNMENT): Define to 128.
25915 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
25916
25917 * config/i386/djgpp.c: New file. Add implementation of
25918 i386_djgpp_asm_named_section.
25919
25920 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
25921
25922 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
25923 Add rule for building djgpp.o.
25924
25925 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25926
25927 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
25928 (rtx_is_swappable_p): Reductions are swappable.
25929 (insn_is_swappable_p): V2DF reductions are swappable.
25930
25931 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
25932
25933 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
25934 reloads for other unsupported memory operands.
25935
25936 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
25937 Jim Wilson <jim.wilson@linaro.org>
25938
25939 PR target/69194
25940 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
25941 copy_to_mode_reg instead of force_reg.
25942
25943 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
25944
25945 PR target/69225
25946 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
25947 TARGET_80387 is true.
25948
25949 2016-01-11 Jakub Jelinek <jakub@redhat.com>
25950
25951 PR target/69071
25952 * lra-eliminations.c (move_plus_up): Only move plus up
25953 if subreg of the constant can be simplified into constant
25954 and use the simplified subreg of the constant instead of
25955 the original constant.
25956
25957 * fold-const.c (fold_convertible_p): Don't return true
25958 for conversion of VECTOR_TYPE to same sized integral type.
25959 (fold_convert_loc): Fix up formatting. Fold conversion of
25960 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
25961 instead of NOP_EXPR.
25962
25963 PR tree-optimization/69214
25964 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
25965 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
25966 Formatting fix.
25967
25968 PR tree-optimization/69207
25969 * tree-vect-slp.c (vect_get_constant_vectors): For
25970 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
25971 fold_convertible_p to vector_type's element type, and always
25972 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
25973
25974 2016-01-11 Richard Biener <rguenther@suse.de>
25975
25976 PR tree-optimization/69173
25977 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
25978 fixup the cycle if all stmts are in a pattern.
25979
25980 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
25981
25982 PR middle-end/68999
25983 * alias.c (base_alias_check): Move check for addresses with
25984 alignment ANDs before the call for compare_base_decls.
25985 (memrefs_conflict_p): Return -1 for different decls
25986 that went through alignment adjustments.
25987
25988 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25989
25990 PR rtl-optimization/68796
25991 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
25992 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
25993 and QImode comparisons against zero with CC_NZmode.
25994 * config/aarch64/iterators.md (short_mask): New mode_attr.
25995
25996 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
25997
25998 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
25999 (<avx512>_store<mode>_mask): Likewise.
26000
26001 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
26002 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26003
26004 PR rtl-optimization/68841
26005 * ifcvt.c (struct noce_if_info): Add orig_x field.
26006 (bbs_ok_for_cmove_arith): Add to_rename parameter.
26007 Don't record conflicts on to_rename if it's present.
26008 Allow memory destinations in sets.
26009 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
26010 blocks, passing orig_x to the checks.
26011 (noce_process_if_block): Set if_info->orig_x appropriately.
26012
26013 2016-01-11 Tom de Vries <tom@codesourcery.com>
26014
26015 PR tree-optimization/69069
26016 * tree-parloops.c (create_parallel_loop): Add missing phi args.
26017
26018 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
26019
26020 PR rtl-optimization/68920
26021 * config/i386/i386.c (ix86_option_override_internal): Restrict number
26022 of conditional moves for RTL if-conversion to 1 for
26023 TARGET_ONE_IF_CONV_INSN.
26024 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
26025 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
26026 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
26027 parameter to restirct number of conditional moves for
26028 RTL if-conversion.
26029 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
26030 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
26031 conditionl moves.
26032
26033 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
26034
26035 PR bootstrap/69123
26036 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
26037 onepart vars. Fix typo in comment. Fix reversed condition in
26038 unshare test.
26039 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
26040
26041 PR bootstrap/69123
26042 * var-tracking.c (dump_onepart_variable_differences): New.
26043 (dataflow_set_different): If a detailed dump is requested,
26044 delay early returns and dump differences between onepart
26045 variables present before and after, and added variables.
26046
26047 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
26048
26049 PR target/69010
26050 * expr.c (expand_expr_real_1): For boolean vector constants
26051 with a scalar mode use const_scalar_mask_from_tree.
26052 (const_scalar_mask_from_tree): New.
26053 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
26054 assigned to a mask type to handle constants.
26055
26056 2016-01-11 Martin Jambor <mjambor@suse.cz>
26057
26058 PR ipa/69044
26059 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
26060 useless parameters if we cannot change function signature.
26061
26062 2016-01-11 Martin Jambor <mjambor@suse.cz>
26063
26064 PR ipa/66616
26065 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
26066 flag.
26067
26068 2016-01-11 Tom de Vries <tom@codesourcery.com>
26069
26070 PR tree-optimization/69109
26071 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
26072 latch with phi.
26073
26074 2016-01-11 Tom de Vries <tom@codesourcery.com>
26075
26076 PR tree-optimization/69108
26077 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
26078 res is not used in a phi.
26079
26080 2016-01-11 Yury Gribov <y.gribov@samsung.com>
26081
26082 PR 67425
26083 * common.opt (frandom-seed): Fix parameter name.
26084 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
26085
26086 2016-01-11 Tom de Vries <tom@codesourcery.com>
26087
26088 PR tree-optimization/69058
26089 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
26090 not supported.
26091
26092 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
26093
26094 * config/arc/arc.opt (mdiv-rem): Add period to the end.
26095 (mcode-density): Likewise.
26096
26097 2016-01-10 Tom de Vries <tom@codesourcery.com>
26098
26099 PR tree-optimization/69062
26100 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
26101 (parallelize_loops): Don't paralelize loop that has phi with address
26102 arg.
26103
26104 2016-01-10 Tom de Vries <tom@codesourcery.com>
26105
26106 PR tree-optimization/69039
26107 * tree-parloops.c (try_create_reduction_list): Only allow single exit
26108 phi for reduction.
26109
26110 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
26111
26112 PR middle-end/68743
26113 * match.pd: Require target has function_c99_misc before doing
26114 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
26115
26116 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
26117
26118 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
26119 use GMPINC.
26120 * configure: Regenerate.
26121
26122 2016-01-09 Jakub Jelinek <jakub@redhat.com>
26123
26124 PR middle-end/50865
26125 PR tree-optimization/69097
26126 * fold-const.h (expr_not_equal_to): New prototype.
26127 * fold-const.c: Include stringpool.h and tree-ssanames.h.
26128 (expr_not_equal_to): New function.
26129 * match.pd (X % -Y is the same as X % Y): Don't optimize
26130 unless X is known not to be equal to minimum or Y is known
26131 not to be equal to -1.
26132 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
26133 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
26134 (simplify_stmt_using_ranges): Adjust caller.
26135 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
26136 substitute_and_fold.
26137
26138 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
26139
26140 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
26141 w/o DECL_NAME.
26142
26143 2016-01-08 Jakub Jelinek <jakub@redhat.com>
26144
26145 PR tree-optimization/69167
26146 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
26147 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
26148 ops[0] comparison.
26149 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
26150
26151 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
26152 Richard Biener <rguenther@suse.de>
26153
26154 PR tree-optimization/68707
26155 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
26156 instances that can be handled via vect_load_lanes.
26157
26158 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
26159
26160 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
26161 if we can't determine address equivalence.
26162 * alias.c (compare_base_decl): Update for changed return value of
26163 symtab_node::equal_address_to.
26164
26165 2016-01-08 Jason Merrill <jason@redhat.com>
26166
26167 PR c++/68983
26168 PR c++/67557
26169 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
26170 * expr.c (store_field): Not here.
26171 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
26172 call with TREE_ADDRESSABLE type.
26173 * tree-cfg.c (verify_gimple_call): Adjust.
26174
26175 2016-01-08 Olivier Hainque <hainque@adacore.com>
26176
26177 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
26178 libc_internal.
26179
26180 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
26181
26182 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
26183 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
26184 (reduc_smin_v2sf): Rename to...
26185 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
26186 (reduc_splus_v2sf): Rename to...
26187 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
26188
26189 2016-01-08 Jakub Jelinek <jakub@redhat.com>
26190
26191 PR tree-optimization/69162
26192 * gimplify.c (gimplify_va_arg_expr): Encode original type of
26193 valist argument in another argument.
26194 (gimplify_modify_expr): Adjust for the above change. Cleanup.
26195 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
26196 to determine the va_list type, build a MEM_REF instead of
26197 build_fold_indirect_ref.
26198
26199 PR tree-optimization/69172
26200 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
26201 gimple_build.
26202
26203 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
26204
26205 PR tree-optimization/67781
26206 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
26207 and cmpnop in two steps: first the ones not accessed in original
26208 gimple expression in a endian independent way and then the ones not
26209 accessed in the final result in an endian-specific way.
26210
26211 2016-01-08 Jakub Jelinek <jakub@redhat.com>
26212
26213 PR tree-optimization/69083
26214 * tree-vect-slp.c (vect_get_constant_vectors): For
26215 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
26216 element type. If op is fold_convertible_p to vector_type's element
26217 type, use NOP_EXPR instead of VCE.
26218
26219 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
26220
26221 PR rtl-optimization/67778
26222 PR rtl-optimization/68634
26223 PR rtl-optimization/68909
26224 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
26225 block from the stack until done with it. Remove a superfluous
26226 bitmap set. Remove a superfluous bitmap test.
26227
26228 2016-01-07 Martin Sebor <msebor@redhat.com>
26229
26230 PR c/68966
26231 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
26232 constraint on the type of arguments.
26233
26234 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
26235
26236 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
26237 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
26238 unaligned_access on the gcc_options set.
26239 * config/arm/arm.c (arm_option_override_internal): Use
26240 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
26241
26242 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
26243
26244 PR target/69140
26245 * config/i386/i386.c (ix86_frame_pointer_required): Enable
26246 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
26247
26248 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
26249
26250 Revert
26251 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
26252
26253 PR target/69140
26254 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
26255 depending on frame_pointer_needed before remaining integer and SSE
26256 registers are saved.
26257
26258 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
26259
26260 PR 1078
26261 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
26262
26263 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
26264
26265 PR target/69171
26266 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
26267 Use the "xBm" constraint.
26268 (float<sseintvecmodelower><mode>2<mask_name><round_name):
26269 Likewise.
26270 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
26271 (sse_cvtsi2ssq<round_name>): Likewise.
26272 (sse_cvtss2si<round_name>): Likewise.
26273 (sse_cvtss2siq<round_name>): Likewise.
26274 (sse2_cvtsi2sdq<round_name>): Likewise.
26275 (sse2_cvtsd2si<round_name>): Likewise.
26276 (sse2_cvtsd2siq<round_name>): Likewise.
26277 * config/i386/subst.md (round_nimm_scalar_predicate): New
26278 predicate.
26279
26280 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
26281
26282 PR middle-end/67639
26283 * varasm.c (make_decl_rtl): Mark invalid register vars as
26284 DECL_EXTERNAL.
26285
26286 PR rtl-optimization/66206
26287 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
26288 All callers changed.
26289
26290 2016-01-07 Jakub Jelinek <jakub@redhat.com>
26291
26292 PR tree-optimization/69141
26293 * tree-ssa-pre.c: Include langhooks.h.
26294 (eliminate_dom_walker::before_dom_children): Use
26295 lang_hooks.decl_printable_name instead of
26296 cgraph_node::get ()->name ().
26297
26298 PR middle-end/68960
26299 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
26300 it and DECL_ALIGN too.
26301
26302 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
26303
26304 * config/mips/mips-ftypes.def: Sort to lexicographical order.
26305
26306 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
26307
26308 PR target/69140
26309 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
26310 depending on frame_pointer_needed before remaining integer and SSE
26311 registers are saved.
26312
26313 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26314
26315 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
26316 mode iterator with VSX_M2.
26317 (*p9_vecstore_<mode>): Likewise.
26318 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
26319 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
26320 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
26321 (define_split for VSX_LE128 stores): Likewise.
26322 (define_peephole2 for TImode LE swaps): Likewise.
26323 (define_split for VSX_LE128 post-reload stores): Likewise.
26324
26325 2016-01-06 Marek Polacek <polacek@redhat.com>
26326
26327 PR sanitizer/69099
26328 * convert.c (convert_to_integer_1): Adjust call to
26329 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
26330 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
26331 EXPR instead of ARG.
26332 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
26333
26334 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
26335
26336 PR 1078
26337 * doc/extend.texi (RL78 Variable Attributes): New section.
26338
26339 2016-01-05 Marek Polacek <polacek@redhat.com>
26340
26341 PR c/69104
26342 * builtins.c (get_memmodel): Use expansion point location rather than
26343 the input location. Call warning_at rather than warning.
26344 (expand_builtin_atomic_compare_exchange): Likewise.
26345 (expand_builtin_atomic_load): Likewise.
26346 (expand_builtin_atomic_store): Likewise.
26347 (expand_builtin_atomic_clear): Likewise.
26348
26349 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
26350
26351 PR target/68991
26352 * config/i386/i386.c (ix86_expand_vector_logical_operator):
26353 Replace nonimmediate_operand with vector_operand.
26354 * config/i386/predicates.md (vector_operand): New predicate.
26355 (general_vector_operand): Replace nonimmediate_operand with
26356 vector_operand.
26357 * config/i386/sse.md: Replace nonimmediate_operand with
26358 vector_operand and m constraint with Bm constraint on SSE
26359 patterns with 16-byte memory operand.
26360 * config/i386/subst.md (round_nimm_predicate): Replace
26361 nonimmediate_operand with vector_operand.
26362 (round_saeonly_nimm_predicate): Likewise.
26363 (round_saeonly_nimm_scalar_predicate): New.
26364
26365 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
26366
26367 PR target/68991
26368 * config/i386/constraints.md (Bm): New constraint.
26369 * config/i386/predicates.md (vector_memory_operand): New
26370 predicate.
26371 * config/i386/sse.md: Replace xm with xBm in plusminus and
26372 any_logic patterns.
26373
26374 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
26375
26376 PR 1078
26377 * doc/extend.texi (V850 Function Attributes): New section.
26378 (V850 Variable Attributes): New section.
26379
26380 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
26381
26382 PR 1078
26383 * doc/extend.texi (MicroBlaze Function Attributes): Document
26384 interrupt_handler and fast_interrupt attributes.
26385
26386 2016-01-05 Sergei Trofimovich <siarheit@google.com>
26387
26388 PR other/60465
26389 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
26390 for local symbolic operands.
26391 * config/ia64/predicates.md (local_symbolic_operand64): New
26392 predicate.
26393
26394 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26395
26396 PR rtl-optimization/68651
26397 * combine.c (combine_simplify_rtx): Canonicalize x + x into
26398 x << 1.
26399
26400 2016-01-05 Nathan Sidwell <nathan@acm.org>
26401
26402 * alias.c (compare_base_decls): Use symtab_node::get.
26403
26404 2016-01-05 Nick Clifton <nickc@redhat.com>
26405
26406 PR target/68770
26407 * ira-costs.c (copy_cost): Initialise the t_icode field of the
26408 secondary_reload_info structure.
26409
26410 PR target/66655
26411 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
26412 decls if weak support is available.
26413
26414 2016-01-04 Martin Sebor <msebor@redhat.com>
26415
26416 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
26417
26418 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
26419
26420 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
26421 OPTION_MASK_P9_DFORM.
26422
26423 * config/rs6000/constraints.md (wo constraint): New constraint for
26424 ISA 3.0 (power9).
26425
26426 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
26427 for wo constraint.
26428 (rs6000_init_hard_regno_mode_ok): Likewise.
26429
26430 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
26431 wo constraint.
26432
26433 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
26434 expanders not to have constraints. Add support for ISA 3.0 xxperm
26435 instruction. Add support for fusing xxlor with xxperm.
26436 (altivec_vperm_<mode>_internal): Likewise.
26437 (altivec_vperm_v8hiv16qi): Likewise.
26438 (altivec_vperm_<mode>v16q): Likewise.
26439 (altivec_vperm_<mode>_uns): Likewise.
26440 (vperm_v8hiv4si): Likewise.
26441 (vperm_v16qiv8hi): Likewise.
26442
26443 * doc/md.texi (RS/6000 constraints): Document wo constraint.
26444
26445 2016-01-04 Jakub Jelinek <jakub@redhat.com>
26446
26447 Update copyright years.
26448
26449 * gcc.c (process_command): Update copyright notice dates.
26450 * gcov-dump.c (print_version): Ditto.
26451 * gcov.c (print_version): Ditto.
26452 * gcov-tool.c (print_version): Ditto.
26453 * gengtype.c (create_file): Ditto.
26454 * doc/cpp.texi: Bump @copying's copyright year.
26455 * doc/cppinternals.texi: Ditto.
26456 * doc/gcc.texi: Ditto.
26457 * doc/gccint.texi: Ditto.
26458 * doc/gcov.texi: Ditto.
26459 * doc/install.texi: Ditto.
26460 * doc/invoke.texi: Ditto.
26461
26462 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
26463
26464 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
26465 modes larger than TImode as TImode if NEON is not enabled.
26466
26467 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
26468
26469 PR target/69100
26470 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
26471 mode for %f0-%f31 only if TARGET_FPU.
26472
26473 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
26474
26475 PR target/69072
26476 * config/sparc/sparc.c (scan_record_type): Take into account subfields
26477 to compute the PACKED_P predicate.
26478 (function_arg_record_value): Minor tweaks.
26479
26480 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
26481
26482 * doc/install.texi (--with-multilib-list): Describe the meaning of the
26483 option for arm*-*-* targets.
26484
26485 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
26486
26487 * doc/extend.texi (Common Function Attributes): Move docs for
26488 MSP430-specific attributes to....
26489 (MSP430 Function Attributes): ...here. Delete the redundant
26490 entries and copy-edit the remaining text.
26491 (MSP430 Variable Attributes): Use uniform format for index
26492 entries and add a cross-reference to the corresponding function
26493 attribute docs.
26494
26495 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
26496
26497 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
26498 -finite-math typo.
26499 (x86 Options): Likewise.
26500
26501 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
26502
26503 PR 1078
26504
26505 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
26506 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
26507 to corresponding attribute.
26508
26509 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
26510
26511 * doc/extend.texi (Common Function Attributes) <noplt>: Move
26512 to correct alphabetization of table. Copy-edit and correct
26513 markup.
26514 <stack_protect>: Likewise.
26515 <target_clones>: Likewise.
26516 <simd>: Likewise.
26517 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
26518 Correct punctuation.
26519 (Code Gen Options) <-fno-plt>: Copy-edit.
26520
26521 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
26522
26523 PR target/68917
26524 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
26525 SI values. Explicitly convert SI to DI and vice-versa.
26526
26527 2016-01-01 Jakub Jelinek <jakub@redhat.com>
26528
26529 PR tree-optimization/69070
26530 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
26531 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
26532
26533 PR sanitizer/69055
26534 * ubsan.c (ubsan_instrument_float_cast): Call
26535 initialize_sanitizer_builtins.
26536
26537 PR target/69015
26538 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
26539 \f
26540 Copyright (C) 2016 Free Software Foundation, Inc.
26541
26542 Copying and distribution of this file, with or without modification,
26543 are permitted in any medium without royalty provided the copyright
26544 notice and this notice are preserved.