1 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
3 PR tree-optimization/18046
4 * genmodes.c (emit_mode_size_inline): Emit an assert that
5 verifies that mode is a valid array index.
6 (emit_mode_nuinits_inline): Likewise.
7 (emit_mode_inner_inline): Likewise.
8 (emit_mode_unit_size_inline): Likewise.
9 (emit_mode_unit_precision_inline): Likewise.
10 * tree-vrp.c: Include params.h.
11 (find_switch_asserts): Register edge assertions for the default
12 label which correspond to the anti-ranges of each case label.
13 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
14 * doc/invoke.texi: Document it.
16 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
19 and unnecessary call to gimple_bb.
21 2016-07-26 Richard Biener <rguenther@suse.de>
23 PR rtl-optimization/71984
24 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
27 2016-07-26 Richard Biener <rguenther@suse.de>
30 * expmed.c (extract_bit_field_1): Constrain the vector mode
31 with element size matching the extraction mode size when
32 choosing a better vector mode to do the extraction from.
34 2016-07-26 Richard Biener <rguenther@suse.de>
35 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
38 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
41 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
43 * tree-ssa-structalias.c (struct scc_info): Change types of
44 members to auto_sbitmap and auto_vec.
45 (scc_info::scc_info): New constructor.
46 (scc_info::~scc_info): New destructor.
47 (init_scc_info): Remove.
48 (free_scc_info): Remove.
49 (find_indirect_cycles): Adjust.
50 (perform_var_substitution): Likewise.
51 (free_var_substitution_info): Likewise.
53 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
55 * tree-outof-ssa.c (struct elim_graph): Change type of members
56 to auto_vec and auto_sbitmap.
57 (elim_graph::elim_graph): New constructor.
58 (delete_elim_graph): Remove.
59 (expand_phi_nodes): Adjust.
61 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
63 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
64 (new_elim_graph): Adjust.
65 (clear_elim_graph): Likewise.
66 (delete_elim_graph): Likewise.
67 (elim_graph_size): Likewise.
68 (elim_graph_add_node): Likewise.
69 (elim_graph_add_edge): Likewise.
70 (elim_graph_remove_succ_edge): Likewise.
71 (eliminate_name): Likewise.
72 (eliminate_build): Likewise.
73 (elim_forward): Likewise.
74 (elim_unvisited_predecessor): Likewise.
75 (elim_backward): Likewise.
76 (elim_create): Likewise.
77 (eliminate_phi): Likewise.
78 (expand_phi_nodes): Likewise.
80 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
82 * bt-load.c (compute_out): Use auto_sbitmap class.
83 (link_btr_uses): Likewise.
84 * cfganal.c (mark_dfs_back_edges): Likewise.
85 (post_order_compute): Likewise.
86 (inverted_post_order_compute): Likewise.
87 (pre_and_rev_post_order_compute_fn): Likewise.
88 (single_pred_before_succ_order): Likewise.
89 * cfgexpand.c (pass_expand::execute): Likewise.
90 * cfgloop.c (verify_loop_structure): Likewise.
91 * cfgloopmanip.c (fix_bb_placements): Likewise.
92 (remove_path): Likewise.
93 (update_dominators_in_loop): Likewise.
94 * cfgrtl.c (break_superblocks): Likewise.
95 * ddg.c (check_sccs): Likewise.
96 (create_ddg_all_sccs): Likewise.
97 * df-core.c (df_worklist_dataflow): Likewise.
98 * dse.c (dse_step3): Likewise.
99 * except.c (eh_region_outermost): Likewise.
100 * function.c (thread_prologue_and_epilogue_insns): Likewise.
101 * gcse.c (prune_expressions): Likewise.
102 (prune_insertions_deletions): Likewise.
103 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
104 * graph.c (draw_cfg_nodes_no_loops): Likewise.
105 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
106 * lcm.c (compute_earliest): Likewise.
107 (compute_farthest): Likewise.
108 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
109 (unroll_loop_runtime_iterations): Likewise.
110 (unroll_loop_stupid): Likewise.
111 * lower-subreg.c (decompose_multiword_subregs): Likewise.
112 * lra-lives.c: Likewise.
113 * lra.c (lra): Likewise.
114 * modulo-sched.c (schedule_reg_moves): Likewise.
115 (optimize_sc): Likewise.
116 (get_sched_window): Likewise.
117 (sms_schedule_by_order): Likewise.
118 (check_nodes_order): Likewise.
119 (order_nodes_of_sccs): Likewise.
120 (order_nodes_in_scc): Likewise.
121 * recog.c (split_all_insns): Likewise.
122 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
123 * reload1.c (reload): Likewise.
124 * sched-rgn.c (haifa_find_rgns): Likewise.
125 (split_edges): Likewise.
126 (compute_trg_info): Likewise.
127 * sel-sched.c (init_seqno): Likewise.
128 * store-motion.c (remove_reachable_equiv_notes): Likewise.
129 * tree-into-ssa.c (update_ssa): Likewise.
130 * tree-ssa-live.c (live_worklist): Likewise.
131 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
132 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
134 (try_peel_loop): Likewise.
135 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
137 * tree-ssa-pre.c (compute_antic): Likewise.
138 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
139 * tree-stdarg.c (reachable_at_most_once): Likewise.
140 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
141 * var-tracking.c (vt_find_locations): Likewise.
143 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
145 * sbitmap.h (auto_sbitmap): New class.
147 2016-07-26 Alan Modra <amodra@gmail.com>
150 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
153 2016-07-25 David Malcolm <dmalcolm@redhat.com>
155 * input.c (selftest::temp_source_file::temp_source_file): Fix
156 missing "%s" in fprintf.
158 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
161 * cselib.c (cselib_process_insn): Invalidate argument slots for
164 2016-07-25 Jiong Wang <jiong.wang@arm.com>
166 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
167 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
168 vmulxh_lane_f16, vmulxh_laneq_f16): New.
170 2016-07-25 Jiong Wang <jiong.wang@arm.com>
172 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
173 * config/aarch64/aarch64.md (fma, fnma): Support HF.
174 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
176 2016-07-25 Jiong Wang <jiong.wang@arm.com>
178 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
179 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
181 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
182 (add<mode>3): Likewise.
183 (sub<mode>3): Likewise.
184 (mul<mode>3): Likewise.
185 (div<mode>3): Likewise.
186 (*div<mode>3): Likewise.
187 (<fmaxmin><mode>3): Extend to HF.
188 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
189 (fabd<mode>3): Likewise.
190 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
191 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
192 (aarch64_fmulx<mode>): Likewise.
193 (aarch64_fac<optab><mode>): Likewise.
194 (aarch64_frecps<mode>): Likewise.
195 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
196 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
197 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
198 (VSDQ_HSDI): Support HI.
199 (fcvt_target, FCVT_TARGET): Likewise.
200 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
201 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
202 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
203 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
204 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
205 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
206 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
209 2016-07-25 Jiong Wang <jiong.wang@arm.com>
211 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
212 * config/aarch64/aarch64-builtins.c (hi_UP): New.
213 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
214 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
216 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
217 (aarch64_cm<optab><mode>): Likewise.
218 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
219 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
220 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
221 (sqrt<mode>2): Likewise.
222 (*sqrt<mode>2): Likewise.
223 (abs<mode>2): Likewise.
224 (<optab><mode>hf2): New pattern for HF mode.
225 (<optab>hihf2): Likewise.
226 * config/aarch64/arm_neon.h: Include arm_fp16.h.
227 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
228 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
230 * config/aarch64/arm_fp16.h: New file.
231 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
232 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
233 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
234 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
235 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
236 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
237 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
238 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
239 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
240 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
241 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
242 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
245 2016-07-25 Jiong Wang <jiong.wang@arm.com>
247 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
248 reduc_smin_scal_): Use VDQIF_F16.
249 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
250 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
252 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
253 * config/aarch64/iterators.md (VDQIF_F16): New.
254 (vp): Support HF modes.
255 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
256 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
258 2016-07-25 Jiong Wang <jiong.wang@arm.com>
260 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
261 "*aarch64_mulx_elt_from_dup<mode>".
262 (*aarch64_mul3_elt<mode>): Update schedule type.
263 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
264 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
265 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
266 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
267 (f, fp): Support HF modes.
268 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
269 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
270 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
271 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
272 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
273 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
275 2016-07-25 Jiong Wang <jiong.wang@arm.com>
277 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
278 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
280 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
283 2016-07-25 Jiong Wang <jiong.wang@arm.com>
285 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
286 * config/aarch64/aarch64-simd.md
287 (aarch64_rsqrts<mode>): Extend to HF modes.
288 (fabd<mode>3): Likewise.
289 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
290 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
291 (aarch64_<maxmin_uns>p<mode>): Likewise.
292 (<su><maxmin><mode>3): Likewise.
293 (<maxmin_uns><mode>3): Likewise.
294 (<fmaxmin><mode>3): Likewise.
295 (aarch64_faddp<mode>): Likewise.
296 (aarch64_fmulx<mode>): Likewise.
297 (aarch64_frecps<mode>): Likewise.
298 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
299 (add<mode>3): Extend to HF modes.
300 (sub<mode>3): Likewise.
301 (mul<mode>3): Likewise.
302 (div<mode>3): Likewise.
303 (*div<mode>3): Likewise.
304 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
306 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
307 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
308 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
309 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
310 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
311 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
312 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
313 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
314 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
315 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
316 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
317 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
318 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
319 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
321 2016-07-25 Jiong Wang <jiong.wang@arm.com>
323 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
324 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
325 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
326 (neg<mode>2): Likewise.
327 (abs<mode>2): Likewise.
328 (<frint_pattern><mode>2): Likewise.
329 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
330 (<optab><VDQF:mode><fcvt_target>2): Likewise.
331 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
332 (ftrunc<VDQF:mode>2): Likewise.
333 (<optab><fcvt_target><VDQF:mode>2): Likewise.
334 (sqrt<mode>2): Likewise.
335 (*sqrt<mode>2): Likewise.
336 (aarch64_frecpe<mode>): Likewise.
337 (aarch64_cm<optab><mode>): Likewise.
338 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
340 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
341 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
343 * config/aarch64/arm_neon.h (vdup_n_f16): New.
344 (vdupq_n_f16): Likewise.
345 (vld1_dup_f16): Use vdup_n_f16.
346 (vld1q_dup_f16): Use vdupq_n_f16.
347 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
348 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
349 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
350 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
351 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
352 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
353 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
354 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
355 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
356 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
357 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
358 vsqrt_f16, vsqrtq_f16): New.
360 2016-07-25 Jiong Wang <jiong.wang@arm.com>
362 * config/aarch64/aarch64-simd.md
363 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
364 (aarch64_ext<mode>): Likewise.
365 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
366 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
367 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
369 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
371 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
372 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
373 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
374 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
375 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
376 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
377 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
379 (vmov_n_f16): Reimplement using vdup_n_f16.
380 (vmovq_n_f16): Reimplement using vdupq_n_f16..
382 2016-07-25 Jiong Wang <jiong.wang@arm.com>
384 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
385 "frame_related_p". Generate CFA annotation when it's necessary.
386 (aarch64_expand_prologue): Use aarch64_add_constant.
387 (aarch64_expand_epilogue): Likewise.
388 (aarch64_output_mi_thunk): Pass "false" when calling
389 aarch64_add_constant.
391 2016-07-25 Jiong Wang <jiong.wang@arm.com>
393 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
396 2016-07-25 Jiong Wang <jiong.wang@arm.com>
398 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
399 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
400 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
401 (aarch64_build_constant): Delete.
403 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
406 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
408 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
409 flag_toplevel_reorder.
411 2016-07-25 Richard Biener <rguenther@suse.de>
413 * cgraph.c (cgraph_node::verify_node): Compare against builtin
414 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
415 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
416 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
417 (streamer_get_builtin_tree): Likewise.
418 (streamer_write_builtin): Likewise.
419 * lto-streamer.h (LTO_builtin_decl): Remove.
420 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
421 (lto_input_scc): Remove LTO_builtin_decl handling.
422 (lto_input_tree_1): Liekwise.
423 * lto-streamer-out.c (lto_output_tree_1): Remove special
424 handling of builtins.
425 (DFS::DFS): Likewise.
426 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
427 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
429 (streamer_write_builtin): Remove.
431 2016-07-25 Martin Liska <mliska@suse.cz>
433 * lto-cgraph.c (input_symtab): Don't call get_working_sets
434 if flag_auto_profile is set to true.
436 2016-07-25 Martin Liska <mliska@suse.cz>
438 PR gcov-profile/71868
439 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
440 have a function with multiple latches, count them all.
442 2016-07-25 Martin Liska <mliska@suse.cz>
444 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
446 2016-07-25 Martin Liska <mliska@suse.cz>
448 PR tree-optimization/71987
449 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
450 just for SSA_NAMEs. Fix GNU coding style.
452 2016-07-25 Martin Liska <mliska@suse.cz>
454 PR gcov-profile/64874
455 * gcov-io.h: Update command about file format.
456 * gcov-iov.c (main): Adapt the numbering scheme.
458 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
461 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
462 whose result is used in PHI.
463 (final_range_test_p): Likewise.
464 (maybe_optimize_range_tests): Likewise.
466 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
468 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
469 Reformat two multi-line strings.
471 2016-07-22 Martin Sebor <msebor@redhat.com>
473 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
475 2016-07-22 Martin Sebor <msebor@redhat.com>
478 * doc/extend.texi (Compound Literals): Correct and clarify.
479 (Cast to Union): Same.
481 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
483 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
484 comments to explain why certain error messages make mention of
485 undocumented options.
486 (rs6000_invalid_builtin): Change error messages to replace mention
487 of undocumented options with mention of the -mcpu=power9 option
488 that enables those undocumented options.
489 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
490 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
491 definition of this macro to correct an existing error.
492 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
493 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
494 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
495 descriptions of built-in functions so that they depend on
496 -mcpu=power9 instead of on the corresponding undocumented flags.
497 * doc/invoke.texi (Option Summary): Remove all mention of newly
499 (IBM RS/6000 and PowerPC Options): Likewise.
500 * doc/md.texi (Constraints for Particuliar Machines): Remove all
501 mention of newly undocumented flags.
503 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
505 * ipa-cp.c (determine_versionability): Do not create constprop clones,
506 when target_clones attribute is set.
508 2016-07-22 Bin Cheng <bin.cheng@arm.com>
510 * common.opt (funsafe-loop-optimizations): Mark ignore.
511 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
512 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
514 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
515 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
517 2016-07-22 Bin Cheng <bin.cheng@arm.com>
519 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
521 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
523 (number_of_iterations_exit): Warn missed loop optimization for
524 possible infinite loops.
526 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
528 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
529 when to emit a ".machine" pseudo-op.
531 2016-07-22 Martin Liska <mliska@suse.cz>
533 PR gcov-profile/69028
534 PR gcov-profile/62047
535 * coverage.c (coverage_compute_lineno_checksum): Do not
536 calculate checksum for fns w/o xloc.file.
537 (coverage_compute_profile_id): Likewise.
539 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
541 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
542 (avr_secondary_reload): ...and implementation.
543 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
544 * config/avr/avr.md (reload_in<mode>): Remove insns.
545 (adjust_len) [lpm]: Remove insn attribute value.
546 * config/avr/predicates.md (flash_operand): Remove insn predicate.
548 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
551 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
553 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
554 * calls.c (special_function_p): Remove the special handling of the
557 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
560 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
561 if STMT may be an alloca call.
562 (gimple_alloca_call_p, alloca_call_p): Return only true for the
564 * calls.h (gimple_maybe_alloca_call_p): New function.
565 * tree-inline.c (inline_forbidden_p_stmt): Use
566 gimple_maybe_alloca_call_p here.
568 2016-07-21 David Malcolm <dmalcolm@redhat.com>
570 * spellcheck-tree.c (best_macro_match::best_macro_match):
571 Explictly specify the template arguments when invoking the base
572 class constructor, to help older C++ compilers.
574 2016-07-21 Jakub Jelinek <jakub@redhat.com>
577 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
578 before builtin_decl_implicit.
580 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
582 * optabs.c (emit_condiitonal_move): Short circuit for identical
585 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
587 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
588 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
589 (noce_conversion_profitable_p): New.
590 (noce_try_store_flag_constants): Use it.
591 (noce_try_addcc): Likewise.
592 (noce_try_store_flag_mask): Likewise.
593 (noce_try_cmove): Likewise.
594 (noce_try_cmove_arith): Likewise.
595 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
597 (noce_convert_multiple_sets): Move cost model to here, from...
598 (bb_ok_for_noce_convert_multiple_sets) ...here.
599 (noce_process_if_block): Update calls for above changes.
600 (noce_find_if_block): Record new noce_if_info parameters.
602 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
604 * target.def (max_noce_ifcvt_seq_cost): New.
605 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
606 * doc/tm.texi: Regenerate.
607 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
608 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
609 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
610 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
611 * doc/invoke.texi: Document new params.
613 2016-07-21 Richard Biener <rguenther@suse.de>
615 PR tree-optimization/71947
616 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
617 ranges have useful limit_vr information.
619 2016-07-21 Richard Biener <rguenther@suse.de>
621 * function-tests.c (build_trivial_generic_function): Set
622 BLOCK_SUPERCONTEXT of DECL_INITIAL.
623 * omp-low.c (create_omp_child_function): Likewise.
624 (grid_expand_target_grid_body): Likewise.
625 * cgraphunit.c (init_lowered_empty_function): Likewise.
626 (cgraph_node::expand_thunk): Likewise.
627 * tree-parloops.c (create_loop_fn): Likewise.
628 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
630 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
632 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
635 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
637 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
638 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
639 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
640 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
641 values for insn attribute.
642 * config/avr/avr.c (avr_out_insert_notbit): New function.
643 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
644 ADJUST_LEN_INSV_NOTBIT_0/_7.
645 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
647 2016-07-21 Bin Cheng <bin.cheng@arm.com>
649 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
650 (chrec_convert_1, chrec_convert): Ditto.
651 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
652 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
653 * tree-vrp.c (adjust_range_with_scev): Ditto.
654 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
655 (scev_var_range_cant_overflow): New function.
656 (scev_probably_wraps_p): New parameter. Call above function.
657 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
659 2016-07-21 Bin Cheng <bin.cheng@arm.com>
661 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
662 by removing computation of may_be_zero.
664 2016-07-21 Jakub Jelinek <jakub@redhat.com>
666 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
668 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
670 Improving concepts performance and diagnostics.
671 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
672 for constraint satisfaction and subsumption.
673 * timevar.h (auto_timevar): New constructor that matches the push/pop
674 pattern of usage in pt.c.
676 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
678 * hwint.h (HOST_WIDE_INT_0): New define.
679 (HOST_WIDE_INT_0U): Ditto.
680 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
681 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
682 * simplify-rtx.c: Ditto.
683 * tree-object-size.c: Ditto.
685 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
687 * config/s390/s390.c (s390_encode_section_info): Remove mode size
690 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
692 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
693 * combine.c: Use HOST_WIDE_INT_M1U instead of
694 ~(unsigned HOST_WIDE_INT) 0.
695 * double-int.h: Ditto.
702 * tree-ssa-loop-ivopts.c: Ditto.
703 * tree-ssa-loop-prefetch.c: Ditto.
704 * tree-vect-generic.c: Ditto.
705 * tree-vect-patterns.c: Ditto.
708 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
710 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
711 constant addresses outside [0,0xc0] into a register.
712 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
713 cases where the base address register is unused after.
714 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
715 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
716 (avr_out_store_psi_reg_disp_tiny): Same.
718 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
720 Implement attribute progmem on reduced Tiny cores by adding
721 flash offset 0x4000 to respective symbols.
724 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
725 documentation how it works on reduced Tiny cores.
726 (AVR Named Address Spaces): No support for reduced Tiny.
727 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
728 (avr_address_tiny_pm_p): New static function.
729 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
730 if the address is in progmem.
731 (avr_assemble_integer): Same.
732 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
733 for symbol_ref in progmem.
734 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
735 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
736 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
738 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
740 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
741 * configure: Regenerate.
742 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
743 (USE_THIN_ARCHIVES): New variable.
744 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
745 this archive as a thin archive.
747 2016-07-20 David Malcolm <dmalcolm@redhat.com>
749 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
750 same location as last time, don't skip if we have fix-it hints.
751 Clarify the skipping logic by converting it from one "if" clause
752 to repeated "if" clauses.
753 * spellcheck-tree.c: Include "cpplib.h".
754 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
755 (best_macro_match::best_macro_match): New constructor.
756 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
757 Move here from c/c-decl.c.
758 (class best_macro_match): Move here from c/c-decl.c, converting
759 from a typedef to a subclass, gaining a ctor.
761 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
763 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
764 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
766 (avr_addr_space_diagnose_usage): ...and implementation.
767 (avr_addr_space_supported_p): New function.
768 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
769 report bad address space usage if that space is supported.
770 (avr_insert_attributes): Same. No more complain about unsupported
772 * config/avr/avr-c.c (tm_p.h): Include it.
773 (avr_cpu_cpp_builtins): Only define addr-space related built-in
774 macro if avr_addr_space_supported_p.
776 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
778 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
779 flag_toplevel_reorder.
781 2016-07-20 David Malcolm <dmalcolm@redhat.com>
783 * gcc-rich-location.c
784 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
786 * gcc-rich-location.h
787 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
789 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
791 * target.def (addr_space): Add new diagnose_usage to hook vector.
792 * targhooks.c (default_addr_space_diagnose_usage): Add default
793 implementation and...
794 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
795 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
796 is some address space, call targetm.addr_space.diagnose_usage.
797 * doc/tm.texi.in (Named Address Spaces): Add anchor for
798 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
799 * doc/tm.texi: Regenerate.
801 2016-07-20 Martin Liska <mliska@suse.cz>
804 * graphite-isl-ast-to-gimple.c (later_of_the_two):
805 Properly handly PHI stmts.
807 2016-07-20 Bin Cheng <bin.cheng@arm.com>
809 PR tree-optimization/71503
810 PR tree-optimization/71683
811 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
814 2016-07-20 Martin Liska <mliska@suse.cz>
816 * doc/invoke.texi (-fipa-ra): Document when the option is
817 disabled. Fix a typo.
819 2016-07-20 Martin Liska <mliska@suse.cz>
821 * Makefile.in: Include fibonacci_heap.c
822 * fibonacci_heap.c: New file.
823 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
824 (fibonacci_heap::union_with): Fix deletion of the second heap.
825 * selftest-run-tests.c (selftest::run_tests): Incorporate
826 fibonacci heap tests.
827 * selftest.h: Declare fibonacci_heap_c_tests.
829 2016-07-20 Martin Liska <mliska@suse.cz>
831 * selftest-run-tests.c (selftest::run_tests): New function.
832 * selftest.h (sreal_c_tests): Declare.
833 * sreal.c (sreal_verify_basics): New function.
834 (verify_aritmetics): Likewise.
835 (sreal_verify_arithmetics): Likewise.
836 (verify_shifting): Likewise.
837 (sreal_verify_shifting): Likewise.
838 (void sreal_c_tests): Likewise.
840 2016-07-19 Jakub Jelinek <jakub@redhat.com>
842 PR rtl-optimization/71916
843 * cfgrtl.c (contains_no_active_insn_p): Return false also for
844 bb which have a single succ fake edge.
846 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
849 * dwarf2out.c (gen_subprogram_die): Only call
850 gen_unspecified_parameters_die while dumping early dwarf.
852 2016-07-19 Jakub Jelinek <jakub@redhat.com>
855 * gimple-fold.c (fold_builtin_memory_op): Use
856 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
858 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
860 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
861 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
862 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
863 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
867 * double-int.c: Ditto.
869 * dwarf2out.c: Ditto.
872 * fold-const.c: Ditto.
879 * loop-doloop.c: Ditto.
880 * loop-invariant.c: Ditto.
887 * simplify-rtx.c: Ditto.
888 * stor-layout.c: Ditto.
890 * tree-ssa-loop-ivopts.c: Ditto.
891 * tree-vect-generic.c: Ditto.
892 * tree-vect-patterns.c: Ditto.
897 * wide-int-print.cc: Ditto.
898 * wide-int.cc: Ditto.
901 2016-07-19 David Malcolm <dmalcolm@redhat.com>
903 * selftest.c (selftest::assert_streq): Handle NULL values of
904 val_actual and val_expected.
906 2016-07-19 Martin Jambor <mjambor@suse.cz>
909 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
910 rather than cgraph_create_node to get a call graph node.
912 2016-07-19 Richard Biener <rguenther@suse.de>
914 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
915 handle all tcc_constant bases and valueize SSA names.
916 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
919 2016-07-19 David Malcolm <dmalcolm@redhat.com>
921 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
922 the flags of the exit block and bb2, not just the entry block.
924 2016-07-19 Richard Biener <rguenther@suse.de>
926 PR tree-optimization/71901
927 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
928 align member, group stuff with the bitfield.
929 (vn_ref_op_align_unit): New inline.
930 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
931 record element alignment and operand 3 unchanged.
932 (ao_ref_init_from_vn_reference): Adjust.
933 (valueize_refs_1): Likewise.
934 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
936 2016-07-19 Richard Biener <rguenther@suse.de>
938 PR tree-optimization/71908
939 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
940 symbolic constants in a more reliable way.
942 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
944 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
946 (vect_update_inits_of_drs): Likewise.
947 (vect_create_cond_for_alias_checks): Likewise.
948 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
950 2016-07-19 Richard Biener <rguenther@suse.de>
953 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
954 with an abstract origin that is not an inlined function outer
955 scope add a self-reference as abstract origin.
956 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
958 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
961 * config/rs6000/rs6000.c (rs6000_function_value): Fix
962 unintentional System V.4 structure return breakage for structures
963 with a single floating point element.
965 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
967 PR tree-optimization/71734
968 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
969 contains REF, use it to check safelen, assume that safelen value
970 must be greater 1, fix style.
971 (ref_indep_loop_p_2): Add REF_LOOP argument.
972 (ref_indep_loop_p): Pass LOOP as additional argument to
975 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
977 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
978 allocation in the prologue.
979 * explow.c (get_dynamic_stack_base): New function to return an address
980 expression for the dynamic stack base.
981 (get_dynamic_stack_size): New function to do the required dynamic stack
982 space size calculations.
983 (allocate_dynamic_stack_space): Use new functions.
984 (align_dynamic_address): Move some code from
985 allocate_dynamic_stack_space to new function.
986 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
988 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
990 * config/s390/s390.c (s390_encode_section_info): Always set
991 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
994 2016-07-18 Richard Biener <rguenther@suse.de>
996 PR tree-optimization/71893
997 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
998 for sizetype cast added by array_ref_element_size.
999 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1001 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
1003 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
1004 register parameters. Remove code to initialize argument pointer
1005 on TARGET_64BIT. Optimize call to _mcount when it can be reached
1006 using a pc-relative branch. Cleanup conditional code.
1007 * config/pa/pa.md (call_mcount): New expander.
1008 (call_mcount_nonpic): New insn.
1009 (call_mcount_pic): New insn and split.
1010 (call_mcount_pic_post_reload): New insn.
1011 (call_mcount_64bit): New insn and split.
1012 (call_mcount_64bit_post_reload): New insn.
1014 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
1016 * config/avr/predicates.md (const_m255_to_m1_operand): New.
1017 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
1018 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
1019 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
1020 (*usum_widenqihi3, *udiff_widenqihi3)
1021 (*addhi3_zero_extend.const): New combiner insns.
1022 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
1023 just 1 bit is affected.
1024 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
1025 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
1027 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
1029 * omp-low.c (lower_omp_target): Mark data clauses with
1030 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
1031 zero-length subarrays.
1033 2016-07-15 Richard Biener <rguenther@suse.de>
1035 PR tree-optimization/71881
1036 * tree-loop-distribution.c (destroy_loop): Remove blocks in
1037 reverse DOM order to make debug temp generation happy.
1039 2016-07-15 Richard Biener <rguenther@suse.de>
1041 PR tree-optimization/71887
1042 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
1043 verify it is not zero for division / modulo handling.
1044 (value_replacement): Adjust.
1046 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
1047 Julian Brown <julian@codesourcery.com>
1049 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
1050 * config/aarch64/aarch64-cost-tables.h
1051 (vulcan_extra_costs): New variable.
1052 * config/aarch64/aarch64.c
1053 (vulcan_addrcost_table): Likewise.
1054 (vulcan_regmove_cost): Likewise.
1055 (vulcan_vector_cost): Likewise.
1056 (vulcan_branch_cost): Likewise.
1057 (vulcan_tunings): Likewise.
1059 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
1061 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
1062 (output_in_order): Loop over undefined variables too. Output them
1063 via assemble_undefined_decl. Skip variables that correspond to hard
1064 registers or have value-exprs.
1065 * varpool.c (symbol_table::output_variables): Handle undefined
1066 variables together with defined ones.
1068 2016-07-15 Richard Biener <rguenther@suse.de>
1070 * tree-ssa-pre.c (get_representative_for): Make sure to return
1071 the value number of SSA names.
1072 (phi_translate_1): get_representative_for cannot return NULL.
1073 (do_pre_regular_insertion): Remove redundant call to
1074 fully_constant_expression.
1075 (do_pre_partial_partial_insertion): Likewise.
1077 2016-07-15 Bin Cheng <bin.cheng@arm.com>
1079 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
1080 (derive_simple_iv_with_niters): New function.
1081 (simple_iv): Rewrite using simple_iv_with_niters.
1082 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
1083 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
1085 (number_of_iterations_exit): Rewrite using above function.
1086 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
1089 2016-07-15 Richard Biener <rguenther@suse.de>
1091 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
1094 2016-07-14 Jakub Jelinek <jakub@redhat.com>
1096 PR tree-optimization/71872
1097 * tree-data-ref.c (get_references_in_stmt): Ignore references
1098 with is_gimple_constant get_base_address.
1100 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
1102 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
1103 (TARGET_HAVE_LDACQD): New macro.
1104 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
1105 than TARGET_HAVE_LDACQ.
1106 (arm_load_acquire_exclusivedi): Likewise.
1107 (arm_store_release_exclusivedi): Likewise.
1109 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
1111 PR rtl-optimization/71878
1112 * lra-constraints.c (match_reload): Pass information about other
1113 output operands. Create new unique register value if matching input
1114 operand shares same register value as output operand being considered.
1115 (curr_insn_transform): Record output operands already processed.
1117 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1120 PR tree-optimization/70923
1121 * tree-vect-patterns.c: Include mult-synthesis.h.
1122 (target_supports_mult_synth_alg): New function.
1123 (synth_lshift_by_additions): Likewise.
1124 (apply_binop_and_append_stmt): Likewise.
1125 (vect_synth_mult_by_constant): Likewise.
1126 (target_has_vecop_for_code): Likewise.
1127 (vect_recog_mult_pattern): Use above functions to synthesize vector
1128 multiplication by integer constants.
1130 2016-07-14 Alan Modra <amodra@gmail.com>
1132 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
1133 gpr alternatives. Correct '*' placement on Y,r alternative.
1134 Add '*' on operand 1 of r,r alternative.
1136 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1138 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
1139 * expmed.h: ... Here.
1141 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
1143 * gimple.h (stmt_can_terminate_bb_p): New function.
1144 * tree-cfg.c (need_fake_edge_p): Rename to ...
1145 (stmt_can_terminate_bb_p): ... this; return true if stmt can
1146 throw external; handle const and pure calls.
1147 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
1149 2016-07-14 Richard Biener <rguenther@suse.de>
1151 PR tree-optimization/71866
1152 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
1153 (do_hoist_insertion): Avoid endless recursion when we
1154 didn't insert anything because we managed to simplify
1155 things down to a constant or SSA name.
1156 (fully_constant_expression): Re-write in terms of ...
1157 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
1158 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
1159 vn_nary_build_or_lookup_1.
1160 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
1161 (vn_nary_build_or_lookup): ... this which now wraps it.
1163 2016-07-14 Alan Modra <amodra@gmail.com>
1166 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
1167 with p9_vector override before power9-dform override.
1169 2016-07-13 Andi Kleen <ak@linux.intel.com>
1171 * value-prof.c (gimple_value_profile_transformations): Don't run
1172 when auto_profile is on.
1174 2016-07-13 Andi Kleen <ak@linux.intel.com>
1176 * auto-profile.c (update_inlined_ind_target,
1177 afdo_indirect_call): Print information to dump file.
1179 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
1181 * genrecog.c (special_predicate_operand_p): New function.
1182 (predicate_name): Move function.
1183 (validate_pattern): Don't warn about missing mode for all
1184 define_special_predicate predicates.
1186 2016-07-13 Bin Cheng <bin.cheng@arm.com>
1188 * tree-vect-data-refs.c (vect_no_alias_p): New function.
1189 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
1190 resolve alias checks which are known at compilation time.
1191 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
1192 alias checks are resolved. Move dump info for too many runtime
1193 alias checks to here...
1194 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
1196 2016-07-13 Richard Biener <rguenther@suse.de>
1198 PR tree-optimization/24574
1199 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
1200 position and add shift, rotate, divison and modulo support
1202 (value_replacement): Pass in argument position to absorbing_element_p.
1204 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
1207 * ipa-inline-transform.c (inline_call): Support
1208 instrumented thunks.
1210 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
1212 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
1213 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
1215 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
1216 Baseline. Make initial alternative TARGET_32BIT only.
1217 (udivsi3): Likewise.
1218 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
1219 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
1222 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
1224 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
1225 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
1226 availability with TARGET_HAVE_MOVT.
1227 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
1228 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
1229 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
1231 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
1232 extra instruction if MOVW is available. Use a cost variable
1233 incremented by COSTS_N_INSNS (1) when the condition match rather than
1234 returning an arithmetic expression based on COSTS_N_INSNS. Make
1235 constant with bottom half word zero cost 2 instruction if MOVW is
1237 * config/arm/arm.md (define_attr "arch"): Add v8mb.
1238 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
1239 target is ARMv8-M Baseline.
1240 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
1241 (arm_movtas_ze): Likewise.
1242 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
1243 alternative for constants satisfying j constraint.
1244 (thumb1_movsi_insn): Likewise.
1245 (movsi splitter for K alternative): Tighten condition to not trigger
1246 if movt is available and j constraint is satisfied.
1247 (Pe immediate splitter): Likewise.
1248 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
1249 constant fitting in an halfword to use MOVW.
1250 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
1253 2016-07-13 Richard Biener <rguenther@suse.de>
1256 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
1257 gimplifying the LHS. Make sure to gimplify a returning twice
1258 call LHS without using SSA names.
1260 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1262 * tree-data-ref.c (find_data_references_in_stmt): Remove
1263 unnecessary call to vec::release.
1264 (graphite_find_data_references_in_stmt): Likewise.
1265 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
1266 * tree-vect-stmts.c (vectorizable_condition): Likewise.
1268 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1270 * cfgexpand.c (expand_used_vars): Make the type of a local
1272 * genmatch.c (lower_for): Likewise.
1273 * haifa-sched.c (haifa_sched_init): Likewise.
1274 (add_to_speculative_block): Likewise.
1275 (create_check_block_twin): Likewise.
1276 * predict.c (handle_missing_profiles): Likewise.
1277 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
1278 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
1279 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
1281 (maybe_lower_iteration_bound): Likewise.
1282 * tree-ssa-sccvn.c (DFS): Likewise.
1283 * tree-stdarg.c (reachable_at_most_once): Likewise.
1284 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
1285 (vectorizable_store): Likewise.
1287 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1289 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
1290 (sccvn_dom_walker): make cond_stack an auto_vec.
1292 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1294 * ree.c (struct ext_state): Make type of members auto_vec.
1295 (find_and_remove_re): Adjust.
1297 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1299 * cfgexpand.c (struct stack_vars_data): Make type of fields
1301 (expand_used_vars): Adjust.
1303 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1305 * ipa.c (record_cdtor_fn): Adjust.
1306 (build_cdtor_fns): Likewise.
1307 (ipa_cdtor_merge): Make static_ctors and static_dtors local
1310 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1312 * genextract.c (struct accum_extract): Add constructor and make
1316 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1318 * tree.c (struct free_lang_data_d): Add constructor and change
1319 types of members to ones that automatically manage resources.
1320 (fld_worklist_push): Adjust.
1321 (find_decls_types): Likewise.
1322 (find_decls_types_in_eh_region): Likewise.
1323 (free_lang_data_in_cgraph): Stop manually creating and
1324 destroying members of free_lang_data_d.
1326 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
1328 PR rtl-optimization/68961
1329 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
1330 peephole variant. Use sse_reg_operand predicates.
1332 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
1334 * config/i386/predicates.md (x86_64_immediate_operand)
1335 <case CONST_INT>: Remove unneeded truncation to DImode.
1336 <case CONST>: Ditto.
1337 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
1339 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1342 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
1343 The xxperm and xxpermr instructions require that the 2nd input
1344 operand overlap with the output operand, and not the 1st.
1345 (altivec_vperm_v8hiv16qi): Likewise.
1346 (altivec_vperm_<mode>_uns_internal): Likewise.
1347 (altivec_vpermr_<mode>_internal): Likewise.
1348 (vperm_v8hiv4si): Likewise.
1349 (vperm_v16qiv8hi): Likewise.
1351 2016-07-12 Martin Liska <mliska@suse.cz>
1353 * params.def: Add avg-loop niter.
1354 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
1355 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
1356 * doc/invoke.texi: Document the new parameter.
1358 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1361 * expr.c (store_constructor): Mask sign-extended bits when widening
1362 sub-word constructor element at the start of a word.
1364 2016-07-12 Martin Liska <mliska@suse.cz>
1366 * Makefile.in: Append rule for params-options.h.
1367 * params-options.h: New file.
1369 2016-07-12 Martin Liska <mliska@suse.cz>
1371 * ira-build.c (mark_loops_for_removal): Properly iterate
1374 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
1375 Richard Biener <rguenther@suse.de>
1377 PR tree-optimization/23286
1378 PR tree-optimization/70159
1379 * doc/invoke.texi: Document -fcode-hoisting.
1380 * common.opt (fcode-hoisting): New flag.
1381 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
1382 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
1383 (do_regular_insertion): Rename to ...
1384 (do_pre_regular_insertion): ... this and amend general comments
1385 on insertion strathegy.
1386 (do_partial_partial_insertion): Rename to ...
1387 (do_pre_partial_partial_insertion): ... this.
1388 (do_hoist_insertion): New function.
1389 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
1390 and call do_hoist_insertion properly.
1392 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
1393 (pass_pre::execute): Register hoist_insert stats.
1395 2016-07-12 Jakub Jelinek <jakub@redhat.com>
1398 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
1399 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
1400 is different from mode's bitsize. Small cleanup.
1402 2016-07-12 Richard Biener <rguenther@suse.de>
1404 PR rtl-optimization/68961
1405 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
1406 to simplify to a non-constant.
1408 2016-07-11 Jakub Jelinek <jakub@redhat.com>
1411 * omp-low.c (expand_omp_target): Gimplify device.
1413 PR tree-optimization/71823
1414 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
1415 to get vec_oprnds2 from op2.
1417 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
1419 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
1420 Hoist common subexpressions.
1421 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
1423 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
1426 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
1427 prevent generation of 'stxsiwx' on pre Power8 hardware.
1429 2016-07-11 David Malcolm <dmalcolm@redhat.com>
1431 * input.c: Include cpplib.h.
1432 (selftest::temp_source_file): New class.
1433 (selftest::temp_source_file::temp_source_file): New ctor.
1434 (selftest::temp_source_file::~temp_source_file): New dtor.
1435 (selftest::should_have_column_data_p): New function.
1436 (selftest::test_should_have_column_data_p): New function.
1437 (selftest::temp_line_table): New class.
1438 (selftest::temp_line_table::temp_line_table): New ctor.
1439 (selftest::temp_line_table::~temp_line_table): New dtor.
1440 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
1441 it to create a temp_line_table.
1442 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
1443 locations that are known to have column data.
1444 (selftest::line_table_case): New struct.
1445 (selftest::test_reading_source_line): Move tempfile handling
1446 to class temp_source_file.
1447 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
1448 (selftest::assert_token_loc_eq): New function.
1449 (ASSERT_TOKEN_LOC_EQ): New macro.
1450 (selftest::test_lexer): New function.
1451 (selftest::boundary_locations): New array.
1452 (selftest::input_c_tests): Call test_should_have_column_data_p.
1453 Loop over a test matrix of interesting values of location and
1454 default_range_bits, calling test_lexer on each case in the matrix.
1455 Move call to test_accessing_ordinary_linemaps into the matrix.
1456 * selftest.h (ASSERT_EQ): Reimplement in terms of...
1457 (ASSERT_EQ_AT): New macro.
1459 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
1462 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
1463 Don't convert TImode in debug insn.
1465 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
1467 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
1468 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
1469 (tree_type_common::lang_flag_7): New.
1470 (tree_type_common::spare): Reduce size.
1471 * tree.h (TYPE_ALIGN_OK): Remove.
1472 (TYPE_LANG_FLAG_7): New.
1473 (get_inner_reference): Adjust header.
1474 * print-tree.c (print_node): Adjust.
1475 * expr.c (get_inner_reference): Remove parameter keep_aligning.
1476 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
1477 calls to get_inner_reference.
1478 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
1479 handling of TYPE_ALIGN_OK.
1480 * builtins.c (get_object_alignment_2): Adjust call to
1481 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
1482 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
1484 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
1485 * cfgexpand.c (expand_debug_expr): Likewise.
1486 * dbxout.c (dbxout_expand_expr): Likewise.
1487 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
1488 loc_list_from_tree, fortran_common): Likewise.
1489 * fold-const.c (optimize_bit_field_compare,
1490 decode_field_reference, fold_unary_loc, fold_comparison,
1491 split_address_to_core_and_offset): Likewise.
1492 * gimple-laddress.c (execute): Likewise.
1493 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
1494 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
1495 * hsa-gen.c (gen_hsa_addr): Likewise.
1496 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
1497 * tsan.c (instrument_expr): Likewise.
1498 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
1499 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
1500 * tree-affine.c (tree_to_aff_combination,
1501 get_inner_reference_aff): Adjust calls to get_inner_reference.
1502 * tree-data-ref.c (split_constant_offset_1,
1503 dr_analyze_innermost): Likewise.
1504 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
1505 * tree-sra.c (ipa_sra_check_caller): Likewise.
1506 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
1507 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
1508 bswap_replace): Likewise.
1509 * tree-vect-data-refs.c (vect_check_gather,
1510 vect_analyze_data_refs): Likewise.
1511 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
1512 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
1515 2016-07-11 David Malcolm <dmalcolm@redhat.com>
1517 * Makefile.in (selftest-valgrind): New phony target.
1518 * function-tests.c (selftest::build_cfg): Delete pass instances
1519 created by the test.
1520 (selftest::convert_to_ssa): Likewise.
1521 (selftest::test_expansion_to_rtl): Likewise.
1522 * tree-cfg.c (selftest::test_linear_chain): Release dominator
1524 (selftest::test_diamond): Likewise.
1526 2016-07-11 Richard Biener <rguenther@suse.de>
1528 PR tree-optimization/71816
1529 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
1530 than replacing all of its operands.
1532 2016-07-11 Alan Modra <amodra@gmail.com>
1534 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
1535 (ctr<mode>): Add unspec.
1536 (ctr<mode>_internal*): Likewise.
1538 2016-07-08 James Bowman <james.bowman@ftdichip.com>
1540 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
1541 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
1543 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
1545 PR rtl-optimization/71621
1546 * lra-constraints.c (process_alt_operands): Check combination of
1549 2016-07-08 Jason Merrill <jason@redhat.com>
1550 Richard Biener <rguenther@suse.de>
1552 P0145: Refining Expression Order for C++.
1553 * gimplify.c (initial_rhs_predicate_for): New.
1554 (gimplfy_modify_expr): Gimplify RHS before LHS.
1556 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1559 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1560 Allow standard error handling to take over when a wrong number
1561 of arguments is presented to __builtin_vec_ld () or
1562 __builtin_vec_st ().
1564 2016-07-08 Jiong Wang <jiong.wang@arm.com>
1566 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
1571 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
1572 __builtin_aarch64_fmaxv2sf.
1573 (vmaxnmq_f32): Likewise.
1574 (vmaxnmq_f64): Likewise.
1575 (vminnm_f32): Likewise.
1576 (vminnmq_f32): Likewise.
1577 (vminnmq_f64): Likewise.
1579 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
1582 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
1583 enable -mfloat128-hardware by default.
1584 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
1585 that IEEE 128-bit hardware support needs.
1586 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
1587 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
1588 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
1589 floating point requires.
1590 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1591 -mfloat128 and -mfloat128-hardware changes.
1593 2016-07-08 Alan Hayward <alan.hayward@arm.com>
1595 PR tree-optimization/71667
1596 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
1598 2016-07-08 Martin Liska <mliska@suse.cz>
1601 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
1602 folding produces SAVE_EXPRs, thus return false for the type.
1604 2016-07-07 Martin Liska <mliska@suse.cz>
1606 * file-find.c (remove_prefix): New function.
1607 * file-find.h (remove_prefix): Declare the function.
1608 * gcc-ar.c (main): Skip a folder of the wrapper if
1609 a wrapped binary would point to the same file.
1611 2016-07-07 Jan Hubicka <jh@suse.cz>
1613 * tree-scalar-evolution.c (iv_can_overflow_p): export.
1614 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
1615 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
1617 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
1620 * ipa-inline-analysis.c (compute_inline_parameters): Set
1621 local.can_change_signature to false for intrumentation
1624 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
1626 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
1627 with TARGET_HAVE_MOVT.
1628 (TARGET_HAVE_MOVT): Define.
1629 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
1630 availability with TARGET_HAVE_MOVT.
1631 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
1633 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
1635 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
1636 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
1637 * config/arm/constraints.md (define_constraint "j"): Use
1638 TARGET_HAVE_MOVT to check MOVT availability.
1640 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
1642 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
1644 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
1646 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
1647 (armv8-m.main): Likewise.
1648 (armv8-m.main+dsp): Likewise.
1649 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
1650 (FL_FOR_ARCH8M_MAIN): Likewise.
1651 * config/arm/arm-tables.opt: Regenerate.
1652 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
1653 armv8-m.main+dsp to BE8_LINK_SPEC.
1654 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
1655 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
1656 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
1657 Baseline and Mainline.
1658 (arm_option_override_internal): Also disable arm_restrict_it when
1659 !arm_arch_notm. Update comment for -munaligned-access to also cover
1661 (arm_file_start): Increase buffer size for printing architecture name.
1662 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
1663 and armv8-m.main+dsp.
1664 (mno-unaligned-access): Clarify that this is disabled by default for
1665 ARMv8-M Baseline architectures as well.
1667 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
1669 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
1670 decide whether to prevent some libgcc routines being included for some
1671 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
1672 link between this condition and the one in
1673 libgcc/config/arm/lib1func.S.
1675 2016-07-07 Richard Biener <rguenther@suse.de>
1677 * tree-ssa-pre.c: Include alias.h.
1678 (compute_avail): If we have multiple VN_REFERENCEs with the
1679 same hashtable entry adjust that to make it a valid replacement
1680 for all of them with respect to alignment and aliasing
1681 when doing insertion.
1682 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
1683 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
1685 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
1689 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
1690 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
1693 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1695 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
1696 (adjust_mems): Adjust.
1697 (adjust_insn): Likewise.
1698 (prepare_call_arguments): Likewise.
1700 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1702 * gcse.c (struct ls_expr): Make stores field a vector.
1703 (ldst_entry): Adjust.
1704 (free_ldst_entry): Likewise.
1705 (print_ldst_list): Likewise.
1706 (compute_ld_motion_mems): Likewise.
1707 (update_ld_motion_stores): Likewise.
1709 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1711 * gcse.c (struct ls_expr): Remove loads field.
1712 (ldst_entry): Adjust.
1713 (free_ldst_entry): Likewise.
1714 (print_ldst_list): Likewise.
1715 (compute_ld_motion_mems): Likewise.
1717 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1719 * store-motion.c (struct st_expr): Make antic_stores a vector.
1720 (st_expr_entry): Adjust.
1721 (free_st_expr_entry): Likewise.
1722 (print_store_motion_mems): Likewise.
1723 (find_moveable_store): Likewise.
1724 (compute_store_table): Likewise.
1725 (remove_reachable_equiv_notes): Likewise.
1726 (replace_store_insn): Likewise.
1727 (build_store_vectors): Likewise.
1729 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1731 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
1732 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
1734 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
1736 PR tree-optimization/71518
1737 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
1738 misalign also for outer loops with negative step.
1740 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
1742 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
1743 (cortex_a53_shift): Add mov_shift.
1744 (cortex_a53_shift_reg): Add new reservation for register shifts.
1745 (cortex_a53_alu): Remove bfm.
1746 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
1747 (cortex_a53_alu_extr): Add new reservation for EXTR.
1748 (bypasses): Improve bypass modelling.
1750 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1753 * config/avr/avr.c (avr_asm_select_section): Strip off
1754 SECTION_DECLARED from flags when calling get_section.
1756 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1758 * tree-vectorizer.h (vect_memory_access_type): Add
1759 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
1760 * tree-vect-stmts.c (compare_step_with_zero): New function.
1761 (perm_mask_for_reverse): Move further up file.
1762 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
1764 (get_negative_load_store_type): New function.
1765 (get_load_store_type): Call it. Add an ncopies argument.
1766 (vectorizable_mask_load_store): Update call accordingly and
1767 remove tests for negative steps.
1768 (vectorizable_store, vectorizable_load): Likewise. Handle new
1769 memory_access_types.
1771 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1773 * tree-vectorizer.h (vect_memory_access_type): New enum.
1774 (_stmt_vec_info): Add a memory_access_type field.
1775 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
1776 (vect_model_store_cost): Take an access type instead of a boolean.
1777 (vect_model_load_cost): Likewise.
1778 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
1779 vect_model_store_cost and vect_model_load_cost.
1780 * tree-vect-stmts.c (vec_load_store_type): New enum.
1781 (vect_model_store_cost): Take an access type instead of a
1782 store_lanes_p boolean. Simplify tests.
1783 (vect_model_load_cost): Likewise, but for load_lanes_p.
1784 (get_group_load_store_type, get_load_store_type): New functions.
1785 (vectorizable_store): Use get_load_store_type. Record the access
1786 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
1787 (vectorizable_load): Likewise.
1788 (vectorizable_mask_load_store): Likewise. Replace is_store
1789 variable with vls_type.
1791 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1793 * tree-vectorizer.h (vect_grouped_load_supported): Add a
1794 single_element_p parameter.
1795 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
1796 Check the PR65518 case here rather than in vectorizable_load.
1797 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
1798 * tree-vect-stmts.c (vectorizable_load): Likewise.
1800 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1802 * tree-vectorizer.h (gather_scatter_info): New structure.
1803 (vect_check_gather_scatter): Return a bool rather than a decl.
1804 Replace return-by-pointer arguments with a single
1805 gather_scatter_info *.
1806 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
1807 (vect_analyze_data_refs): Update call accordingly.
1808 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
1809 (vectorizable_mask_load_store): Likewise. Also record the
1810 offset dt and vectype in the gather_scatter_info.
1811 (vectorizable_store): Likewise.
1812 (vectorizable_load): Likewise.
1814 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1816 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
1817 strided groups, use the cost of N scalar accesses instead
1818 of ncopies vector accesses.
1819 (vect_model_load_cost): Likewise.
1821 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1823 * tree-vect-stmts.c (vect_cost_group_size): Delete.
1824 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
1825 variable to indicate when once-per-group costs are being used.
1826 (vect_model_load_cost): Likewise. Fix comment and misindented code.
1828 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1830 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
1831 peeling-for-gaps condition.
1833 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1835 * config/s390/s390.c (s390_expand_vec_init): Force initializer
1836 element to register if it doesn't match general_operand.
1838 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
1839 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1841 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
1843 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
1844 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
1845 (SIGNBIT): New mode iterator.
1846 (Fsignbit): New mode attribute.
1847 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
1848 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
1849 when direct moves are available.
1850 (signbit<mode>2_dm): New define_insn_and_split).
1851 (signbit<mode>2_dm2): New define_insn.
1853 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1855 PR rtl-optimization/71594
1856 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
1857 into subregs of appropriate mode before trying to emit a conditional
1860 2016-07-05 Jan Hubicka <jh@suse.cz>
1862 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
1863 (simple_iv): Use it.
1865 2016-07-05 Jan Hubicka <jh@suse.cz>
1867 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
1869 2016-07-05 Jiong Wang <jiong.wang@arm.com>
1871 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
1874 2016-07-05 Jan Hubicka <jh@suse.cz>
1876 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
1879 2016-07-05 Richard Biener <rguenther@suse.de>
1881 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
1882 Handle empty else block.
1883 (is_feasible_trace): Likewise.
1884 (split_paths): Likewise.
1886 2016-07-05 Richard Biener <rguenther@suse.de>
1888 * tree-loop-distribution.c (distribute_loop): Fix issue with
1889 the cost model loop.
1891 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
1893 * config/arm/neon-testgen.ml: Delete.
1894 * config/arm/neon.ml: Delete.
1896 2016-07-04 Jakub Jelinek <jakub@redhat.com>
1899 * tree.c (attribute_value_equal): Use get_attribute_name instead of
1900 directly using TREE_PURPOSE.
1902 2016-07-04 Jiong Wang <jiong.wang@arm.com>
1904 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
1905 * config/aarch64/aarch64_neon.h: Likewise.
1906 * config/aarch64/arm_neon.h: Likewise.
1907 * config/aarch64/atomics.md: Likewise.
1908 * config/aarch64/aarch64-simd-builtins.def: Likewise.
1909 * doc/invoke.texi: Likewise.
1911 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
1913 * config/s390/s390.md: Add "z13" cpu_facility.
1914 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
1915 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
1916 condition" type instructions.
1918 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
1919 Jeff Law <law@redhat.com>
1921 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
1922 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
1924 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
1926 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
1927 permutation for TARGET_AVX512F.
1928 (ix86_expand_vec_one_operand_perm_avx512): New function.
1929 (expand_vec_perm_1): Invoke introduced function.
1930 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
1931 it may be not valid after vectorization.
1933 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1936 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
1937 typo in comment. Only force to memory if it is a weak
1940 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
1941 Jiong Wang <jiong.wang@arm.com>
1943 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
1944 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
1945 (AARCH64_FL_F16): New.
1946 (AARCH64_FL_FOR_ARCH8_2): New.
1947 (AARCH64_ISA_8_2): New.
1948 (AARCH64_ISA_F16): New.
1949 (TARGET_FP_F16INST): New.
1950 (TARGET_SIMD_F16INST): New.
1951 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
1952 ("fp"): Disabling "fp" also disables "fp16".
1953 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
1954 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
1955 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
1956 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
1958 2016-07-04 Jan Beulich <jbeulich@suse.com>
1960 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
1962 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
1965 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
1966 the insns, use an insn form that does not adjust the offset on
1967 little endian systems.
1969 2016-07-01 Jan Beulich <jbeulich@suse.com>
1971 * varasm.c (get_variable_section): Validate initializer in
1972 named .bss-like sections.
1974 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
1976 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
1977 Exchange the order of the second and third operands in the vpermr
1978 instruction tmeplate.
1980 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
1983 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
1984 Disallow TDmode values.
1986 2016-07-01 Alan Modra <amodra@gmail.com>
1988 PR rtl-optimization/71709
1989 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
1990 being set, not referenced.
1992 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
1994 PR tree-optimization/70729
1995 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
1996 of loop since it can be not valid after transformation.
1998 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2000 * config/arm/arm.c (thumb_reload_in_hi): Delete.
2001 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
2003 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
2005 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
2008 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
2011 * config/rs6000/constraints.md (wY constraint): New constraint to
2012 match the requirements for the LXSD and STXSD instructions.
2013 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
2014 predicate to match the requirements for the LXSD and STXSD
2016 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
2017 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
2018 to make sure that the bottom 2 bits of offset are 0, the address
2019 form is offsettable, and no updating is done in the address mode.
2020 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
2021 (movdi_internal32): Likewise
2022 (movdi_internal64): Likewise.
2024 2016-06-30 Jakub Jelinek <jakub@redhat.com>
2026 PR tree-optimization/71707
2027 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
2028 strinfo even for ADDR_EXPR ptr.
2030 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
2032 * config/rs6000/altivec.md (darn_32): Change the condition to
2033 TARGET_P9_MISC instead of TARGET_MODULO.
2034 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
2035 condition expression.
2036 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
2037 condition expression.
2038 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
2039 (DFP_TEST): New code iterator.
2040 (dfptstsfi_<code>_mode>): New define_expand.
2041 (*dfp_sgnfcnc_<mode>): New define_insn.
2042 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
2043 definition next to BU_P9_MISC_1 definition and change the MASK
2044 value to RS6000_BTM_P9_MISC.
2045 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
2046 (BU_P9_64BIT_MISC_0): Likewise.
2047 (BU_P9_DFP_MISC_0): New macro definition.
2048 (BU_P9_DFP_MISC_1): New macro definition.
2049 (BU_P9_DFP_MISC_2): New macro definition.
2050 (BU_P9_DFP_OVERLOAD_1): New macro definition.
2051 (BU_P9_DFP_OVERLOAD_2): New macro definition.
2052 (BU_P9_DFP_OVERLOAD_3): New macro definition.
2053 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
2054 (TSTSFI_LT_TD): Likewise.
2055 (TSTSFI_EQ_DD): Likewise.
2056 (TSTSFI_EQ_TD): Likewise.
2057 (TSTSFI_GT_DD): Likewise.
2058 (TSTSFI_GT_TD): Likewise.
2059 (TSTSFI_OV_DD): Likewise.
2060 (TSTSFI_OV_TD): Likewise.
2061 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
2062 (TSTSFI_LT_DD): Likewise.
2063 (TSTSFI_LT_TD): Likewise.
2064 (TSTSFI_EQ): Likewise.
2065 (TSTSFI_EQ_DD): Likewise.
2066 (TSTSFI_EQ_TD): Likewise.
2067 (TSTSFI_GT): Likewise.
2068 (TSTSFI_GT_DD): Likewise.
2069 (TSTSFI_GT_TD): Likewise.
2070 (TSTSFI_OV): Likewise.
2071 (TSTSFI_OV_DD): Likewise.
2072 (TSTSFI_OV_TD): Likewise.
2073 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2074 overloaded test significance functions.
2075 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
2076 OPTION_MASK_P9_MISC into the representation of this mask.
2077 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
2079 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
2080 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
2082 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
2083 argument is a 6-bit unsigned literal value if the icode argument
2084 represents a DFP test significance built-in call.
2085 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
2086 flag used independently and in combination with the
2087 RS6000_BTM_64BIT flag.
2088 (rs6000_opt_masks): Add entry for power9-misc command-line option.
2089 (rs6000_builtin_mask_names): Add entry for power9-misc
2090 command-line option.
2091 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
2092 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
2093 RS6000_BTM_P9_MISC macros.
2094 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
2095 option and change the description of the -mpower9-vector option to
2096 enable only vector instructions, removing its erroneously claimed
2097 support for scalar instructions.
2098 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2099 the ISA 3.0 digital floating point test significance built-in
2102 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
2104 * config/aarch64/aarch64.c (cortexa35_tunings):
2105 Enable AES fusion. Use cortexa57_branch_cost.
2106 (cortexa53_tunings): Use cortexa57_branch_cost.
2107 (cortexa72_tunings): Use cortexa57_branch_cost.
2108 Use AUTOPREFETCHER_WEAK.
2109 (cortexa73_tunings): Use cortexa57_branch_cost.
2111 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2112 James Greenhalgh <james.greenhalgh@arm.com>
2114 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
2115 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
2116 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
2117 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
2118 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
2119 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
2120 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
2121 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
2122 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
2123 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
2124 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
2125 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
2126 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
2129 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
2130 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2132 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
2134 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
2136 2016-06-30 David Malcolm <dmalcolm@redhat.com>
2139 * gcc.c (driver::build_option_suggestions): Pass "option" to
2140 add_misspelling_candidates.
2141 * opts-common.c (add_misspelling_candidates): Add "option" param;
2142 use it to avoid adding negated forms for options marked with
2144 * opts.h (add_misspelling_candidates): Add "option" param.
2146 2016-06-30 Jakub Jelinek <jakub@redhat.com>
2149 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
2150 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
2151 first when permuting bitwise operation with rotate. Cast
2152 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
2154 2016-06-29 David Malcolm <dmalcolm@redhat.com>
2156 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
2157 for misspelled param names.
2158 * params.c: Include spellcheck.h.
2159 (find_param_fuzzy): New function.
2160 * params.h (find_param_fuzzy): New prototype.
2161 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
2162 * spellcheck.h (struct edit_distance_traits<const char *>):
2165 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
2167 * config/rs6000/predicates.md (const_0_to_7_operand): New
2168 predicate, recognize 0..7.
2169 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
2170 support for doing extracts from V16QImode, V8HImode, V4SImode
2172 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
2173 vector extract support.
2174 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
2175 for ISA 3.0 vector extract.
2176 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
2177 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
2178 extracts of a constant element number from small integer vectors
2179 on 64-bit ISA 3.0 systems.
2180 (vsx_extract_<mode>_di): Likewise.
2181 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
2182 say when we can do ISA 3.0 vector extracts.
2183 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
2184 registers, using the stxsiwx instruction.
2186 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
2188 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
2189 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
2190 qdf24xx_regmove_cost, qdf24xx_tunings): New.
2191 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
2192 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
2193 * config/arm/arm.c (arm_qdf24xx_tune): New.
2195 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
2197 * config/aarch64/aarch64.c (cortexa53_tunings):
2198 Increase loop alignment to 8. Set function alignment to 16.
2199 (cortexa35_tunings): Likewise.
2200 (cortexa57_tunings): Increase loop alignment to 8.
2201 (cortexa72_tunings): Likewise.
2202 (cortexa73_tunings): Likewise.
2204 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
2206 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
2207 for arm_fp16_ok and arm_fp16_hw.
2208 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
2209 arm_fp16_alternative.
2211 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
2213 PR tree-optimization/71655
2214 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
2215 types when swapping operands.
2217 2016-06-29 Martin Liska <mliska@suse.cz>
2220 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
2221 * ipa-inline-transform.c (inline_call): Remove unnecessary call
2222 of build_optimization_node.
2224 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
2226 PR tree-optimization/70729
2227 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
2228 independent in loops having positive safelen value.
2229 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
2230 it may be not valid after vectorization.
2232 2016-06-29 Jakub Jelinek <jakub@redhat.com>
2234 PR tree-optimization/71625
2235 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
2236 is sorted by ascending list->offset. If PTR is non-NULL and there is
2237 previous strinfo, call get_stridx_plus_constant.
2238 (get_stridx): Pass exp as second argument to get_addr_stridx.
2239 (addr_stridxptr): Add missing list = list->next, so that there can be
2240 more than one entries in the list. Bump limit from 16 to 32. Ensure
2241 the list is sorted by ascending list->offset.
2242 (get_stridx_plus_constant): Adjust so that it can be also called with
2243 ADDR_EXPR instead of SSA_NAME as PTR.
2244 (handle_char_store): Pass NULL_TREE as second argument to
2247 2016-06-29 Richard Biener <rguenther@suse.de>
2249 PR rtl-optimization/68961
2250 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
2252 2016-06-29 Richard Biener <rguenther@suse.de>
2255 * alias.c (component_uses_parent_alias_set_from): Handle
2256 type punning through union accesses by using the union alias set.
2257 * gimple.c (gimple_get_alias_set): Remove union type punning case.
2259 2016-07-29 Richard Biener <rguenther@suse.de>
2261 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
2262 precision not matching mode precision.
2264 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
2266 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
2267 pa_output_arg_descriptor.
2268 (call_val_symref_64bit_post_reload): Likewise.
2269 (call_val_powf_64bit_post_reload): Likewise.
2270 (sibcall_internal_symref_64bit): Likewise.
2271 (sibcall_value_internal_symref_64bit): Likewise.
2273 2016-06-28 Jakub Jelinek <jakub@redhat.com>
2276 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
2277 a constant, force its SUBREG_REG into memory or register instead
2280 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
2283 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
2284 * doc/invoke.texi (AVR Options): Document it.
2286 2016-06-28 Walter Lee <walt@tilera.com>
2288 * config/tilegx/linux.h: Do not include arch/icache.h
2289 (CLEAR_INSN_CACHE): Provide inlined definition directly.
2290 * config/tilepro/linux.h: Do not include arch/icache.h
2291 (CLEAR_INSN_CACHE): Provide inlined definition directly.
2293 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
2295 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
2296 for big-endian BIT_FIELD_REF.
2298 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
2300 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
2301 ('size' attribute): Add '128'.
2303 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
2304 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
2305 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
2306 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
2307 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
2308 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
2309 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
2310 *trunc<mode>df2_odd): Set size attribute to '128'.
2311 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
2312 * config/rs6000/power6.md (power6-fp): Include dfp type.
2313 * config/rs6000/power7.md (power7-fp): Likewise.
2314 * config/rs6000/power8.md (power8-fp): Likewise.
2315 * config/rs6000/power9.md: New file.
2316 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
2317 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
2318 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
2320 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
2321 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
2322 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
2323 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
2324 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
2325 dfp_dscri_<mode>): Change type attribute to dfp.
2326 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
2327 attribute to vecsimple.
2328 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
2329 and prefetch streams.
2330 (rs6000_option_override_internal): Remove temporary code setting
2331 tuning to power8. Don't set rs6000_sched_groups for power9.
2332 (last_scheduled_insn): Change to rtx_insn *.
2333 (divide_cnt, vec_load_pendulum): New variables.
2334 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
2335 (rs6000_issue_rate): Set issue rate for Power9.
2336 (is_power9_pairable_vec_type): New.
2337 (power9_sched_reorder2): New.
2338 (rs6000_sched_reorder2): Call new function for Power9 specific
2340 (insn_must_be_first_in_group): Remove Power9.
2341 (insn_must_be_last_in_group): Likewise.
2342 (force_new_group): Likewise.
2343 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
2344 Initialize divide_cnt/vec_load_pendulum.
2345 (_rs6000_sched_context, rs6000_init_sched_context,
2346 rs6000_set_sched_context): Handle context save/restore of new
2349 2016-06-28 Richard Biener <rguenther@suse.de>
2351 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
2352 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
2353 COMPONENT_REF operand.
2354 (nonoverlapping_component_refs_p): Likewise.
2355 * stor-layout.c (start_bitfield_representative): Mark
2356 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
2358 2016-06-28 Jakub Jelinek <jakub@redhat.com>
2360 * Makefile.in: Don't cat ../stage_current if it does not exist.
2362 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
2363 last argument is a bit-field.
2365 PR rtl-optimization/71673
2366 * internal-fn.c (expand_arith_overflow_result_store): Use
2367 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
2368 expand_simple_binop.
2371 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
2372 expand_ifn_atomic_compare_exchange): New functions.
2373 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
2374 * tree.h (build_call_expr_internal_loc): Rename to ...
2375 (build_call_expr_internal_loc_array): ... this. Fix up type of
2377 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
2378 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
2379 ATOMIC_COMPARE_EXCHANGE result.
2380 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
2381 * gimple-fold.h (optimize_atomic_compare_exchange_p,
2382 fold_builtin_atomic_compare_exchange): New prototypes.
2383 * gimple-fold.c (optimize_atomic_compare_exchange_p,
2384 fold_builtin_atomic_compare_exchange): New functions..
2385 * tree-ssa.c (execute_update_addresses_taken): If
2386 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
2387 of call when finding addressable vars, and if such var becomes
2388 non-addressable, call fold_builtin_atomic_compare_exchange.
2390 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
2393 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
2394 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
2396 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
2398 * config/rs6000/rs6000.md ('type' attribute): Add
2399 veclogical,veccmpfx,vecexts,vecmove insn types.
2400 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
2401 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
2402 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
2403 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
2404 *nabs<mode>2_hw): Change type to vecmove.
2405 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
2406 *boolcc<mode>3_internal, *eqv<mode>3_internal,
2407 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
2408 *ieee_128bit_vsx_abs<mode>2_internal,
2409 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
2410 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
2411 *ieee128_mtvsrd_32bit): Change type to veclogical.
2412 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
2413 *movdi_internal32, *movdi_internal64): Update insn types.
2414 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
2415 vsx_extract_<mode>): Change type to veclogical.
2416 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
2417 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
2418 *vsx_sign_extend_si_v2di): Change type to vecexts.
2419 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
2421 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
2422 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
2423 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
2424 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
2425 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
2426 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
2427 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
2428 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
2429 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
2430 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
2431 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
2432 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
2433 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
2434 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
2435 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
2436 (ppc7450-vecsimple): Add veclogical, vecmove.
2437 (ppc7450-veccmp): Add veccmpfx.
2438 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
2440 (ppc8540_vector_compare): Add veccmpfx.
2441 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
2442 * config/rs6000/cell.md (cell-fp): Add fpsimple.
2443 (cell-vecsimple): Add veclogical, vecmove.
2444 (cell-veccmp): Add veccmpfx.
2445 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
2446 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
2448 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
2449 * config/rs6000/power4.md (power4-fp): Add fpsimple.
2450 (power4-vecsimple): Add veclogical, vecmove.
2451 (power4-veccmp): Add veccmpfx.
2452 * config/rs6000/power5.md (power5-fp): Add fpsimple.
2453 * config/rs6000/power6.md (power6-fp): Add fpsimple.
2454 (power6-vecsimple): Add veclogical, vecmove.
2455 (power6-veccmp): Add veccmpfx.
2456 * config/rs6000/power7.md (power7-fp): Add fpsimple.
2457 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
2458 * config/rs6000/power8.md (power8-fp): Add fpsimple.
2459 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
2460 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
2461 * config/rs6000/titan.md (titan_fp): Add fpsimple.
2462 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
2464 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
2466 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
2469 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
2470 OPTION_MASK_P9_DFORM_VECTOR.
2471 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
2472 disable -mpower9-dform-vector when using reload.
2473 (quad_address_p): Remove 'gpr_p' argument and all associated code.
2474 New 'strict' argument. Update all callers. Add strict addressing
2476 (rs6000_legitimate_offset_address_p): Remove call to
2477 virtual_stack_registers_memory_p.
2478 (rs6000_legitimize_reload_address): Add quad address support.
2479 (rs6000_legitimate_address_p): Move call to quad_address_p above
2480 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
2481 to account for new strict usage.
2482 (rs6000_output_move_128bit): Adjust quad_address_p args to account
2483 for new strict usage.
2484 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
2486 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
2493 * config/i386/i386.c (ix86_spill_class): Disable condition to
2494 always return NO_REGS.
2496 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
2498 * predict.c: Include gimple-pretty-print.h
2499 (predicted_by_loop_heuristics_p): Check also
2500 PRED_LOOP_EXIT_WITH_RECURSION
2501 (predict_loops): Find self recursive calls and use special purpose
2502 predictors for them; dump log about decisions.
2503 (pass_profile::execute): Dump info about #of iterations.
2504 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
2505 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
2507 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
2509 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
2510 output_asm_insn calls and shorten long lines. Output .CALL
2511 argument descriptor using pa_output_arg_descriptor. Add various
2512 inline $$dyncall and other optimizations.
2513 (pa_attr_length_indirect_call): Adjust ordering and lengths.
2515 2016-06-25 Jakub Jelinek <jakub@redhat.com>
2517 PR tree-optimization/71643
2518 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
2521 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
2522 leak a bitmap if dep_bb is NULL.
2524 PR tree-optimization/71631
2525 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
2526 to rewrite_expr_tree even if negate_result, move new_lhs var
2527 declaration and initialization earlier, for powi_result set afterwards
2528 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
2529 if new_lhs != lhs, and don't shadow gsi var.
2531 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
2533 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
2534 Add in_loop parameter.
2535 (predict_loops): Add loop guard heuristics.
2536 * predict.def (PRED_LOOP_GUARD): New heuristics.
2538 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
2540 * predict.c: Include ipa-utils.h
2541 (tree_bb_level_prediction): Predict recursive calls.
2542 (tree_estimate_probability_bb): Skip inexpensive calls for call
2544 * predict.def (PRED_RECURSIVE_CALL): New.
2546 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2548 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
2549 (BU_FLOAT128_1): Likewise.
2551 (COPYSIGNQ): Likewise.
2552 (RS6000_BUILTIN_NANQ): Likewise.
2553 (RS6000_BUILTIN_NANSQ): Likewise.
2554 (RS6000_BUILTIN_INFQ): Likewise.
2555 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
2556 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
2557 (TARGET_FOLD_BUILTIN): New #define.
2558 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
2559 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
2560 (rs6000_fold_builtin): New target hook implementation, handling
2561 folding of 128-bit NaNs and infinities.
2562 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
2563 entries are filled in to avoid problems during bootstrap
2564 self-test; define builtins for 128-bit NaNs and infinities.
2565 (rs6000_opt_mask): Add entry for float128.
2566 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
2567 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
2568 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
2569 (const_str_type_node): New #define.
2570 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
2571 to a define_expand that dispatches to either copysign<mode>3_soft
2572 or copysign<mode>3_hard.
2573 (copysign<mode>3_hard): Rename from copysign<mode>3.
2574 (copysign<mode>3_soft): New define_insn.
2575 * doc/extend.texi: Document new builtins.
2577 2016-06-24 Jakub Jelinek <jakub@redhat.com>
2579 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
2580 PRIu64 instead of lu.
2582 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
2585 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
2588 2016-06-24 Jakub Jelinek <jakub@redhat.com>
2590 PR tree-optimization/71647
2591 * omp-low.c (lower_rec_input_clauses): Convert
2592 omp_clause_aligned_alignment (c) to size_type_node for the
2593 last argument of __builtin_assume_aligned.
2595 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
2597 * configure.ac (calling ___tls_get_addr via GOT): New
2598 assembler/linker check.
2599 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
2600 assembler and linker supports calling ___tls_get_addr via GOT.
2601 Otherise, defined to 0.
2602 * config.in: Regenerated.
2603 * configure: Likewise.
2604 * config/i386/constraints.md (Yb): New constraint.
2605 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
2606 (REG_CLASS_NAMES): Likewise.
2607 (REG_CLASS_CONTENTS): Likewise.
2608 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
2609 the b constraint with the Yb constraint. Call ___tls_get_addr
2610 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
2612 (*tls_local_dynamic_base_32_gnu): Likewise.
2613 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
2614 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
2615 (*tls_local_dynamic_base_64_<mode>): Likewise.
2617 2016-06-24 Martin Liska <mliska@suse.cz>
2619 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
2620 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
2622 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
2623 argument to true if the expected number of iterations is
2626 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
2628 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
2629 assemble for 32bit target.
2630 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
2631 and $ld_ix86_gld_32_opt to link for 32bit target.
2632 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
2633 * configure: Regenerate.
2635 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2637 * config/arm/arm.c (int_log2): Delete definition and prototype.
2638 (shift_op): Use exact_log2 instead of int_log2.
2639 (vfp3_const_double_for_fract_bits): Likewise.
2641 2016-06-24 Jakub Jelinek <jakub@redhat.com>
2643 * internal-fn.c (expand_arith_set_overflow): New function.
2644 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
2646 (expand_arith_overflow_result_store): Likewise. Handle precision
2647 smaller than mode precision.
2648 * tree-vrp.c (extract_range_basic): For imag part, handle
2649 properly signed 1-bit precision result.
2650 * doc/extend.texi (__builtin_add_overflow): Document that last
2651 argument can't be pointer to enumerated or boolean type.
2652 (__builtin_add_overflow_p): Document that last argument can't
2653 have enumerated or boolean type.
2655 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2656 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2658 * config/rs6000/predicates.md (splat_input_operand): Rework.
2659 Don't allow constants, since the insns that use this predicate
2660 don't support constants. Constants are handled by other insns
2661 that are created via combine. During and after register
2662 allocation, only allow indexed or indirect addresses, and not
2663 general addresses. Only allow modes supported by the hardware.
2664 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
2665 comment. Move check for using VSPLTIS<x> to a common location,
2666 instead of doing it in two different places.
2668 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
2670 * config/i386/driver-i386.c (host_detect_local_cpu): Set
2671 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
2672 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
2673 signature_CENTAUR_ebx.
2675 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
2679 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
2680 (as_ix86_gas_32_opt): This.
2681 (ld_ix86_tls_ldm_opt): Renamed to ...
2682 (ld_ix86_gld_32_opt): This.
2683 (R_386_TLS_LDM reloc): Updated.
2684 (R_386_GOT32X reloc): New assembler/linker check.
2685 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
2686 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
2688 * config.in: Regenerated.
2689 * configure: Likewise.
2690 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
2691 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
2692 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
2693 if ix86_force_load_from_GOT_p returns true.
2694 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
2695 ix86_force_load_from_GOT_p returns true.
2696 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
2697 the external function address via the GOT slot.
2698 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
2699 HAVE_AS_IX86_GOT32X before returning false.
2700 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
2701 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
2703 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
2705 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
2707 2016-06-23 Andi Kleen <ak@linux.intel.com>
2709 * Makefile.in: Regenerate.
2710 * doc/install.texi: Document autoprofiledbootstrap.
2712 2016-06-23 Andi Kleen <ak@linux.intel.com>
2714 * config/i386/gcc-auto-profile: New file.
2716 2016-06-23 Martin Liska <mliska@suse.cz>
2719 * predict.c (predict_loops): Revert the hunk that was removed
2722 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
2724 * config.gcc: Add support for arm*-*-phoenix* targets.
2725 * config/arm/t-phoenix: New.
2726 * config/phoenix.h: New.
2728 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
2729 H.J. Lu <hongjiu.lu@intel.com>
2732 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
2733 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
2734 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
2735 ix86_force_load_from_GOT_p returns true.
2736 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
2737 ix86_force_load_from_GOT_p returns true.
2738 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
2739 ix86_force_load_from_GOT_p returns true.
2740 (ix86_expand_move): Load the external function address via the
2741 GOT slot if ix86_force_load_from_GOT_p returns true.
2742 * config/i386/predicates.md (x86_64_immediate_operand): Return
2743 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
2744 (x86_64_zext_immediate_operand): Ditto.
2746 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
2748 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
2750 2016-06-22 David Malcolm <dmalcolm@redhat.com>
2753 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
2754 * diagnostic.c (pedwarn_at_rich_loc): New function.
2755 * spellcheck.h (best_match::best_match): Add a
2756 "best_distance_so_far" optional parameter.
2757 (best_match::set_best_so_far): New method.
2758 (best_match::get_best_distance): New accessor.
2759 (best_match::get_best_candidate_length): New accessor.
2761 2016-06-22 Nick Clifton <nickc@redhat.com>
2763 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
2764 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
2765 modes are accepted as well.
2766 (ucompare_loc_descriptor): Likewise.
2767 (minmax_loc_descriptor): Likewise.
2768 (clz_loc_descriptor): Likewise.
2769 (popcount_loc_descriptor): Likewise.
2770 (bswap_loc_descriptor): Likewise.
2771 (rotate_loc_descriptor): Likewise.
2772 (mem_loc_descriptor): Likewise.
2773 (loc_descriptor): Likewise.
2775 2016-06-22 David Malcolm <dmalcolm@redhat.com>
2777 * common.opt (fdiagnostics-parseable-fixits): New option.
2778 * diagnostic.c: Include "selftest.h".
2779 (print_escaped_string): New function.
2780 (print_parseable_fixits): New function.
2781 (diagnostic_report_diagnostic): Call print_parseable_fixits.
2782 (selftest::assert_print_escaped_string): New function.
2783 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
2784 (selftest::test_print_escaped_string): New function.
2785 (selftest::test_print_parseable_fixits_none): New function.
2786 (selftest::test_print_parseable_fixits_insert): New function.
2787 (selftest::test_print_parseable_fixits_remove): New function.
2788 (selftest::test_print_parseable_fixits_replace): New function.
2789 (selftest::diagnostic_c_tests): New function.
2790 * diagnostic.h (struct diagnostic_context): Add field
2791 "parseable_fixits_p".
2792 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
2793 -fdiagnostics-parseable-fixits.
2794 (-fdiagnostics-parseable-fixits): New option.
2795 * opts.c (common_handle_option): Handle
2796 -fdiagnostics-parseable-fixits.
2797 * selftest-run-tests.c (selftest::run_tests): Call
2798 selftest::diagnostic_c_tests.
2799 * selftest.h (selftest::diagnostic_c_tests): New prototype.
2801 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
2803 PR tree-optimization/71488
2804 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
2805 comparison of boolean vectors.
2806 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
2807 of boolean vectors using bitwise operations.
2809 2016-06-22 Andreas Schwab <schwab@suse.de>
2811 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
2814 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
2816 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
2818 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
2820 * config/i386/i386.c (print_reg): Emit an error message on attempt to
2823 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2825 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
2826 * config/arm/arm-cores.def (cortex-a73): New entry.
2827 (cortex-a73.cortex-a35): Likewise.
2828 (cortex-a73.cortex-a53): Likewise.
2829 * config/arm/arm-tables.opt: Regenerate.
2830 * config/arm/arm-tune.md: Likewise.
2831 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
2832 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
2833 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
2834 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
2835 * doc/invoke.texi (ARM Options): Document cortex-a73,
2836 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
2838 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2840 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
2841 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
2842 (cortex-a73.cortex-a35): Likewise.
2843 (cortex-a73.cortex-a53): Likewise.
2844 * config/aarch64/aarch64-tune.md: Regenerate.
2845 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
2846 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
2849 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2851 * configure.ac (gcc_cv_as_compress_debug): Remove
2852 --compress-debug-sections as extra as switch.
2853 Handle gas --compress-debug-sections=type.
2854 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
2855 Handle gld --compress-debug-sections=type.
2856 * configure: Regenerate.
2858 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
2860 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
2862 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
2864 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
2865 (do_rewrite): likewise.
2867 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2869 * common/config/mep/mep-common.c: Remove.
2870 * config.gcc: Remove mep-* support.
2871 * config/mep/constraints.md: Remove.
2872 * config/mep/default.h: Remove.
2873 * config/mep/intrinsics.h: Remove.
2874 * config/mep/intrinsics.md: Remove.
2875 * config/mep/ivc2-template.h: Remove.
2876 * config/mep/mep-c5.cpu: Remove.
2877 * config/mep/mep-core.cpu: Remove.
2878 * config/mep/mep-default.cpu: Remove.
2879 * config/mep/mep-ext-cop.cpu: Remove.
2880 * config/mep/mep-intrin.h: Remove.
2881 * config/mep/mep-ivc2.cpu: Remove.
2882 * config/mep/mep-pragma.c: Remove.
2883 * config/mep/mep-protos.h: Remove.
2884 * config/mep/mep.c: Remove.
2885 * config/mep/mep.cpu: Remove.
2886 * config/mep/mep.h: Remove.
2887 * config/mep/mep.md: Remove.
2888 * config/mep/mep.opt: Remove.
2889 * config/mep/predicates.md: Remove.
2890 * config/mep/t-mep: Remove.
2891 * doc/install.texi: Remove mep-* documentation.
2892 * doc/md.texi: Likewise.
2894 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2896 * config.gcc: Remove support for avr-rtems.
2897 * config/avr/gen-avr-mmcu-specs.c: Likewise.
2898 * config/avr/rtems.h: Remove.
2899 * config/avr/t-rtems: Remove.
2901 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2903 * config.gcc: Remove m32r-rtems support.
2904 * config/m32r/rtems.h: Remove.
2906 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2908 * config.gcc: Remove h8300-rtems support.
2909 * config/h8300/rtems.h: Remove.
2910 * config/h8300/t-rtems: Remove.
2912 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2914 * config.gcc: Remove support for knetbsd.
2915 * configure.ac: Likewise.
2916 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
2917 * config/knetbsd-gnu.h: Remove.
2918 * configure: Regenerate.
2920 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2922 * config.gcc: Remove support for openbsd 2 and 3.
2923 * config/openbsd-oldgas.h: Remove.
2925 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2927 * config.gcc: Remove interix support.
2928 * config/i386/i386-interix.h: Remove.
2929 * config/i386/interix.opt: Remove.
2930 * config/i386/t-interix: Remove.
2931 * configure: Regenerate.
2932 * configure.ac: Remove interix support.
2933 * doc/install.texi: Remove interix documentation.
2935 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
2937 * config/rs6000/rs6000.h: Add conditional preprocessing directives
2938 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
2941 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
2943 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
2944 they are both PLACEHOLDER_EXPRs.
2946 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2948 * stor-layout.c (layout_type): Move setting complex MODE to
2949 layout_type, instead of setting it ahead of time by the caller.
2950 * tree.c (build_complex_type): Likewise.
2952 2016-06-21 Martin Liska <mliska@suse.cz>
2954 * predict.c (force_edge_cold): Replace imposisble with
2957 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
2959 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
2960 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
2962 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
2964 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
2966 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
2967 Ilya Enkovich <ilya.enkovich@intel.com>
2970 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
2971 New member function to convert V1TImode register to SUBREG
2972 TImode in debug insn.
2973 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
2974 after changing register mode to V1TImode.
2976 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
2978 * config/aarch64/aarch64-cores.def (vulcan): New core.
2979 * config/aarch64/aarch64-tune.md: Regenerate.
2980 * doc/invoke.texi: Document vulcan as an available option.
2982 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
2984 * cse.c (canon_asm_operands): New function extracted from...
2985 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
2986 either standalone or member of a PARALLEL.
2988 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
2991 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
2992 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
2993 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
2995 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
2998 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
2999 constant addresses if can_create_pseudo_p.
3001 2016-06-21 Jakub Jelinek <jakub@redhat.com>
3003 PR tree-optimization/71588
3004 * tree-ssa-strlen.c (valid_builtin_call): New function.
3005 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
3008 2016-06-20 Jakub Jelinek <jakub@redhat.com>
3011 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
3012 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
3013 for conversion of scalar user var to complex type and use the
3014 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
3017 PR rtl-optimization/71591
3018 * toplev.c (toplev::run_self_tests): If no_backend, complain and
3019 don't run any tests.
3021 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
3024 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
3025 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
3026 space for PIC with non-v32 and the common non-PIC "jump".
3028 2016-06-20 Jakub Jelinek <jakub@redhat.com>
3031 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
3032 returned values and add UN*/LTGT/*ORDERED cases with values matching
3033 D operand modifier on vcmp for AVX.
3035 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
3037 * config/aarch64/aarch64.opt
3038 (mpc-relative-literal-loads): Rename internal option name.
3039 * config/aarch64/aarch64.c
3040 (aarch64_nopcrelative_literal_loads): Rename to
3041 aarch64_pcrelative_literal_loads.
3042 (aarch64_expand_mov_immediate): Likewise.
3043 (aarch64_secondary_reload): Likewise.
3044 (aarch64_can_use_per_function_literal_pools_p): Likewise.
3045 (aarch64_override_options_after_change_1): Rename and simplify logic.
3046 (aarch64_classify_symbol): Merge large model checks into switch,
3047 remove pc-relative load check.
3049 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
3051 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
3052 costs relative to the cost of a register move.
3054 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
3056 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
3057 (vcvt_n_f64_u64): Likewise.
3058 (vcvt_n_s64_f64): Likewise.
3059 (vcvt_n_u64_f64): Likewise.
3060 (vcvt_f64_s64): Likewise.
3061 (vrecpe_f64): Likewise.
3062 (vcvt_f64_u64): Likewise.
3063 (vrecps_f64): Likewise.
3065 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
3067 * config/aarch64/aarch64.md
3068 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
3070 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
3072 * config/aarch64/aarch64-builtins.c
3073 (aarch64_types_binop_uss_qualifiers): Delete.
3074 (TYPES_BINOP_USS): Likewise.
3075 (aarch64_types_binop_sus_qualifiers): Likewise.
3076 (TYPES_BINOP_SUS): Likewise.
3077 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
3078 (TYPES_FCVTIMM_SUS): Likewise.
3079 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
3081 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
3082 (fcvtzs): Use SHIFTIMM rather than BINOP.
3083 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
3085 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
3087 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
3088 costs relative to the cost of a register move.
3090 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
3092 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
3093 Allow scalar/single vector modes to be tieable.
3095 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
3097 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
3099 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3101 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
3103 * tree.h (TYPE_ALIGN): Likewise.
3105 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
3108 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
3110 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
3112 * config/avr/avr.c (avr_print_operand): Fix "format not a string
3113 literal" build warnings.
3114 (avr_print_operand_address): Dito.
3116 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
3119 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
3120 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
3122 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
3124 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
3126 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
3129 * reload1.c (reload): Pass 0 to finish_spills when called because
3130 update_eliminables_and_spill returns true and remove did_spill.
3131 (finish_spills): Adjust comment and document GLOBAL parameter.
3133 2016-06-17 DJ Delorie <dj@redhat.com>
3136 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
3137 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
3138 (umulqihi3_virt): Likewise.
3139 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
3140 (umulqihi3_real): Likewise.
3142 2016-06-17 Martin Liska <mliska@suse.cz>
3144 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
3146 2016-06-17 Martin Liska <mliska@suse.cz>
3148 * predict.def: PRED_LOOP_EXIT from 92 to 85.
3150 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
3152 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
3154 (vaddq_f32): Likewise.
3155 (vmul_f32): Likewise.
3156 (vmulq_f32): Likewise.
3157 (vsub_f32): Likewise.
3158 (vsubq_f32): Likewise.
3160 2016-06-17 Bin Cheng <bin.cheng@arm.com>
3162 PR tree-optimization/71347
3163 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
3164 cost for all uses in group.
3166 2016-06-17 Bin Cheng <bin.cheng@arm.com>
3168 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
3169 insert gimple seq if it's not empty.
3171 2016-06-17 Bin Cheng <bin.cheng@arm.com>
3173 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
3175 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
3177 (comp_dr_with_seg_len_pair): Ditto.
3178 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
3179 struct dr_with_seg_len_pair against DR_OFFSET.
3180 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
3183 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
3185 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
3187 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
3189 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
3190 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
3191 (pa_output_millicode_call): Likewise.
3192 (pa_output_call): Likewise.
3193 (pa_output_indirect_call): Likewise.
3194 (pa_asm_output_mi_thunk): Likewise.
3196 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3198 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
3200 2016-06-16 Martin Liska <mliska@suse.cz>
3202 * predict.c (combine_predictions_for_insn): When we find a first
3203 match predictor, we should consider just predictors with
3204 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
3205 DS theory predictor.
3206 (combine_predictions_for_bb): Likewise.
3208 2016-06-16 Jakub Jelinek <jakub@redhat.com>
3210 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
3211 with base of reference to struct.
3213 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
3215 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
3217 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3220 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
3221 progmem_swtable_section.
3222 (progmem_swtable_section): Remove.
3223 (avr_asm_function_rodata_section): Remove.
3224 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
3225 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
3227 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
3229 * config/i386/driver-i386.c (host_detect_local_cpu): Set
3230 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
3231 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
3232 signature_CENTAUR_ebx.
3233 * config/i386/i386.c (ix86_option_override_internal): Add
3234 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
3235 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
3236 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
3238 2016-06-16 Martin Liska <mliska@suse.cz>
3240 * predict.def: Add fortran loop preheader predictor.
3241 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
3242 fold IFN_BUILTIN_EXPECT with a known constant argument.
3244 2016-06-16 Martin Liska <mliska@suse.cz>
3246 * predict.def: Add 'Fortran' to display text of all
3247 PRED_FORTRAN_* predictors.
3249 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
3252 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
3253 [IA64_BUILTIN_NANSQ]: Ditto.
3254 (ia64_fold_builtin): New function.
3255 (TARGET_FOLD_BUILTIN): New define.
3256 (ia64_init_builtins) Declare const_string_type node.
3257 Add __builtin_nanq and __builtin_nansq builtin functions.
3258 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
3260 2016-06-16 Nick Clifton <nickc@redhat.com>
3262 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
3263 MSP430_HWMULT_ prefix to enum values.
3264 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
3265 * config/msp430/msp430.c: Update use of enum values.
3266 * config/msp430/msp430.md: Likewise.
3267 * config/msp430/msp430.opt: Likewise.
3269 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
3271 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
3272 of comparsions in the last iteration.
3274 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
3275 Joern Rennecke <joern.rennecke@embecosm.com>
3277 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
3279 (arc_needs_pcl_p): Add GOTOFFPC.
3280 (arc_legitimate_pic_addr_p): Likewise.
3281 (arc_output_pic_addr_const): Likewise.
3282 (arc_legitimize_pic_address): Generate a pc-relative address using
3284 (arc_output_libcall): Use @pcl syntax.
3285 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
3286 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
3287 (*movsi_insn): Use @pcl syntax.
3288 (doloop_begin_i): Likewise.
3290 2016-06-16 Martin Liska <mliska@suse.cz>
3292 * predict.def: Define a new predictor.
3294 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
3296 * config/arc/arc.opt (mtp-regno): Update text.
3298 2016-06-16 Renlin Li <renlin.li@arm.com>
3300 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
3302 2016-06-16 Jakub Jelinek <jakub@redhat.com>
3305 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
3306 (setcc + and peephole2): Likewise.
3308 PR rtl-optimization/71532
3309 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
3312 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
3314 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
3315 DImode constants with XXSPLTIB in vector registers.
3316 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
3317 vsx_extract_<mode>_internal{1,2} into a single insn that handles
3318 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
3319 extraction of the element at the top of the register as a scalar
3321 (vsx_extract_<mode>_internal1): Likewise.
3322 (vsx_extract_<mode>_internal2): Likewise.
3323 * config/rs6000/constraints.md (wi constraint): Remove a comment
3324 about DImode not being allowed in Altivec registers.
3325 (wB constraint): New constraint for constants that can be
3326 generated in Altivec registers with VSPLTISW/VUPKHSW.
3327 * config/rs6000/predicates.md (xxspltib_constant_split): Update
3329 (xxspltib_constant_nosplit): Likewise.
3330 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
3331 support for -mupper-regs-di to enable DImode to go into Altivec
3333 (POWERPC_MASKS): Likewise.
3334 (power7 cpu): Likewise.
3335 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
3336 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
3337 for DImode being allowed in Altivec registers. Update wi/wj
3338 constraints. Set scalar_in_vmx_p flag.
3339 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
3340 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
3341 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
3342 (rs6000_opt_masks): Add -mupper-regs-di.
3343 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
3344 direct move to use wi and not wj.
3346 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
3348 (floatunssi<mode>2_lfiwzx_mem): Likewise.
3349 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
3350 any VSX register, instead of just Altivec registers, to allow
3351 either operand to be an Altivec register or both.
3352 (fixuns_trunc<mode>di2_fctiduz): Likewise.
3353 (movdi_internal32): Add support for -mupper-regs-di. Add support
3354 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
3355 the alternatives and attributes to be lined up to be easier to
3357 (movdi_internal64): Likewise.
3358 (64-bit DImode splitters): Change predicates to only split loading
3359 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
3360 load constants in ISA 3.0 or ISA 2.07 respectively.
3361 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3362 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
3363 mention -mcpu=power9 sets these options.
3364 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
3367 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
3370 * config/avr/avr.c (avr_set_current_function): Warn misspelled
3371 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
3372 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
3373 by default to warn misspelled interrupt/ signal handler.
3374 * doc/invoke.texi (AVR Options): Document it. Update description
3375 for -nodevicelib option.
3377 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3379 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
3380 up parentheses. Use GET_MODE_UNIT_BITSIZE.
3381 (aarch64_<sur>shll2_n<mode>): Likewise.
3383 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
3386 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
3387 DECL_CONTEXT for copied arguments.
3389 2016-06-15 Alan Hayward <alan.hayward@arm.com>
3391 PR tree-optimization/71483
3392 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
3395 2016-06-15 Martin Liska <mliska@suse.cz>
3397 * predict.c (tree_predict_by_opcode): Call predict_edge_def
3398 instead of predict_edge w/o a probability.
3400 2016-06-15 Alan Hayward <alan.hayward@arm.com>
3402 PR tree-optimization/71439
3403 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
3406 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3408 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
3409 register subregs in SET_SRC.
3411 2016-06-15 Richard Biener <rguenther@suse.de>
3413 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
3416 2016-06-15 Richard Biener <rguenther@suse.de>
3418 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
3419 not consider dependences between accesses that belong to the
3421 (vect_analyze_data_ref_dependences): Do not analyze read-read
3422 or self-dependences.
3424 2016-06-14 David Malcolm <dmalcolm@redhat.com>
3426 * spellcheck-tree.c: Include spellcheck-tree.h rather than
3428 (find_closest_identifier): Reimplement in terms of
3429 best_match<tree,tree>.
3430 * spellcheck-tree.h: New file.
3431 * spellcheck.c (struct edit_distance_traits<const char *>): New
3433 (find_closest_string): Reimplement in terms of
3434 best_match<const char *, const char *>.
3435 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
3436 overload to spellcheck-tree.h.
3437 (find_closest_identifier): Likewise.
3438 (struct edit_distance_traits<T>): New template.
3439 (class best_match): New class.
3441 2016-06-14 David Malcolm <dmalcolm@redhat.com>
3443 * selftest-run-tests.c (selftest::run_tests): Call
3444 selftest::spellcheck_tree_c_tests.
3445 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
3446 * spellcheck-tree.c: Include selftest.h and stringpool.h.
3447 (selftest::test_find_closest_identifier): New function.
3448 (selftest::spellcheck_tree_c_tests): New function.
3449 * spellcheck.c (selftest::test_find_closest_string): Verify that
3450 the order of the vec does not affect the results for this case.
3451 (selftest::test_data): New array.
3452 (selftest::test_metric_conditions): New function.
3453 (selftest::spellcheck_c_tests): Add a test of case-comparison.
3454 Call selftest::test_metric_conditions.
3456 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3458 * config/rs6000/rs6000-builtin.def (commentary): Typo.
3459 (BU_P9_MISC_1): Likewise.
3460 (BU_P9_64BIT_MISC_0): Likewise.
3461 (BU_P9_MISC_0): Likewise.
3463 2016-06-14 David Malcolm <dmalcolm@redhat.com>
3465 * gcc-rich-location.c
3466 (gcc_rich_location::add_fixit_misspelled_id): New method.
3467 * gcc-rich-location.h
3468 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
3470 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
3472 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
3473 FreeBSD 11 and above.
3475 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
3477 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
3479 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3481 * expmed.h: Close parenthesis in "at your option" in copyright
3483 * lower-subreg.h: Likewise.
3485 2016-06-14 Richard Biener <rguenther@suse.de>
3488 * genmatch.c (expr::gen_transform): Use in_type for comparisons
3491 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3493 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
3495 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
3497 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
3499 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
3500 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
3502 2016-06-14 Richard Biener <rguenther@suse.de>
3504 PR tree-optimization/71522
3505 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
3506 copying into float copying.
3508 2016-06-14 Jakub Jelinek <jakub@redhat.com>
3510 PR tree-optimization/71520
3511 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
3512 (replace_block_by): Move user labels from bb1 to bb2.
3514 2016-06-14 Richard Biener <rguenther@suse.de>
3518 * expr.h (get_bit_range): Declare.
3519 * expr.c (get_bit_range): Export.
3520 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
3521 word_mode again to constrain the bitfield access.
3523 2016-06-14 Richard Biener <rguenther@suse.de>
3525 PR tree-optimization/71521
3526 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
3527 division int_const_binop against zero divisor.
3529 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
3531 * config/i386/i386.md (signbittf2): New expander.
3532 * config/i386/sse.md (ptesttf2): New insn pattern.
3534 2016-06-13 David Malcolm <dmalcolm@redhat.com>
3537 * input.c (selftest::test_reading_source_line): Avoid reading from
3538 __FILE__ by creating a tempfile with known content and reading
3541 2016-06-13 David Malcolm <dmalcolm@redhat.com>
3543 * pretty-print.c (assert_pp_format_colored): Skip the test if
3545 (test_pp_format): Remove comment about GCC_COLORS.
3547 2016-06-13 David Malcolm <dmalcolm@redhat.com>
3549 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
3550 * pretty-print.c (assert_pp_format_va): Add location param and use
3551 it with ASSERT_STREQ_AT.
3552 (assert_pp_format): Add location param and pass it to
3553 assert_pp_format_va.
3554 (assert_pp_format_colored): Likewise.
3555 (ASSERT_PP_FORMAT_1): New.
3556 (ASSERT_PP_FORMAT_2): New.
3557 (ASSERT_PP_FORMAT_3): New.
3558 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
3559 explicitly, or implicitly via the above macros.
3560 * selftest.c (selftest::pass): Use a selftest::location rather
3562 (selftest::fail): Likewise. Print the function name.
3563 (selftest::fail_formatted): Likewise.
3564 (selftest::assert_streq): Use a selftest::location rather than
3566 * selftest.h (selftest::location): New struct.
3567 (SELFTEST_LOCATION): New macro.
3568 (selftest::pass): Accept a const location & rather than file
3570 (selftest::fail): Likewise.
3571 (selftest::fail_formatted): Likewise.
3572 (selftest::assert_streq): Likewise.
3573 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
3574 (ASSERT_FALSE): Likewise.
3575 (ASSERT_EQ): Likewise.
3576 (ASSERT_NE): Likewise.
3577 (ASSERT_STREQ): Likewise.
3578 (ASSERT_PRED1): Likewise.
3579 (ASSERT_STREQ_AT): New macro.
3581 2016-06-13 David Malcolm <dmalcolm@redhat.com>
3583 * selftest.c (selftest::fail_formatted): New function.
3584 (selftest::assert_streq): New function.
3585 * selftest.h (selftests::fail_formatted): New decl.
3586 (selftest::assert_streq): New decl.
3587 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
3589 2016-06-13 Jeff Law <law@redhat.com>
3591 PR tree-optimization/71403
3592 * tree-ssa-threadbackward.c
3593 (convert_and_register_jump_thread_path): No longer accept reference
3594 to path. Do not pop items off the path anymore.
3595 (fsm_find_control_statement_thread_paths): Do not allow threading
3596 to a deeper loop nest. Pop the last item off the path here rather
3597 than in convert_and_register_jump_thread_path.
3599 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
3600 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
3602 [AArch64] Emit division using the Newton series
3604 * config/aarch64/aarch64-protos.h
3605 (cpu_approx_modes): Add new member "division".
3606 (aarch64_emit_approx_div): Declare new function.
3607 * config/aarch64/aarch64.c
3608 (generic_approx_modes): New member "division".
3609 (exynosm1_approx_modes): Likewise.
3610 (xgene1_approx_modes): Likewise.
3611 (aarch64_emit_approx_div): Define new function.
3612 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
3613 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
3614 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
3615 * doc/invoke.texi (-mlow-precision-div): Describe new option.
3617 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
3618 Wilco Dijkstra <wilco.dijkstra@arm.com>
3620 [AArch64] Emit square root using the Newton series
3622 * config/aarch64/aarch64-protos.h
3623 (aarch64_emit_approx_rsqrt): Replace with new function
3624 "aarch64_emit_approx_sqrt".
3625 (cpu_approx_modes): New member "sqrt".
3626 * config/aarch64/aarch64.c
3627 (generic_approx_modes): New member "sqrt".
3628 (exynosm1_approx_modes): Likewise.
3629 (xgene1_approx_modes): Likewise.
3630 (aarch64_emit_approx_rsqrt): Replace with new function
3631 "aarch64_emit_approx_sqrt".
3632 (aarch64_override_options_after_change_1): Handle new option.
3633 * config/aarch64/aarch64-simd.md
3634 (rsqrt<mode>2): Use new function instead.
3635 (sqrt<mode>2): New expansion and insn definitions.
3636 * config/aarch64/aarch64.md: Likewise.
3637 * config/aarch64/aarch64.opt
3638 (mlow-precision-sqrt): Add new option description.
3639 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
3641 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
3643 [AArch64] Add more choices for the reciprocal square root approximation
3645 Allow a target to prefer such operation depending on the operation mode.
3647 * config/aarch64/aarch64-protos.h
3648 (AARCH64_APPROX_MODE): New macro.
3649 (AARCH64_APPROX_{NONE,ALL}): Likewise.
3650 (cpu_approx_modes): New structure.
3651 (tune_params): New member "approx_modes".
3652 * config/aarch64/aarch64-tuning-flags.def
3653 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
3654 * config/aarch64/aarch64.c
3655 (generic_approx_modes): New core "cpu_approx_modes" structure.
3656 (exynosm1_approx_modes): Likewise.
3657 (xgene1_approx_modes): Likewise.
3658 (generic_tunings): New member "approx_modes".
3659 (cortexa35_tunings): Likewise.
3660 (cortexa53_tunings): Likewise.
3661 (cortexa57_tunings): Likewise.
3662 (cortexa72_tunings): Likewise.
3663 (exynosm1_tunings): Likewise.
3664 (thunderx_tunings): Likewise.
3665 (xgene1_tunings): Likewise.
3666 (use_rsqrt_p): New argument for the mode and use new member from
3668 (aarch64_builtin_reciprocal): Devise mode from builtin.
3669 (aarch64_optab_supported_p): New argument for the mode.
3670 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
3672 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
3674 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
3675 RS6000_BTM_MODULO flag into the set of flags that are considered
3676 to be part of the common configuration.
3678 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
3680 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
3681 difference unsigned.
3682 (vec_absdb): New macro for vector absolute difference unsigned
3684 (vec_absdh): New macro for vector absolute difference unsigned
3686 (vec_absdw): New macro for vector absolute difference unsigned word.
3687 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
3688 (vadu<mode>3): New insn.
3689 (*p9_vadu<mode>3): New insn.
3690 * config/rs6000/rs6000-builtin.def (vadub): New built-in
3692 (vaduh): New built-in definition.
3693 (vaduw): New built-in definition.
3694 (vadu): New overloaded built-in definition.
3695 (vadub): New overloaded built-in definition.
3696 (vaduh): New overloaded built-in definition.
3697 (vaduw): New overloaded built-in definition.
3698 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3699 overloaded vector absolute difference unsigned functions.
3700 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3701 the ISA 3.0 vector absolute difference unsigned built-in functions.
3703 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
3705 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
3706 update shared_lookup_references only once after changing operands.
3708 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
3711 * tree-nested.c (convert_nonlocal_omp_clauses)
3712 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
3714 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
3715 * tree.def (CASE_LABEL_EXPR): Likewise.
3717 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
3720 * input.c (test_builtins): Fix an assertion.
3722 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
3724 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
3727 (isinf<mode>2): Ditto.
3729 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
3731 * ggc-tests.c (test_finalization): Only test need_finalization_p
3732 for GCC_VERSION >= 4003.
3734 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3736 * config/s390/vecintrin.h: Fix file description in comment.
3738 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3740 * config/s390/s390-builtin-types.def: Change builtin type naming
3741 scheme to match builtin-types.def.
3743 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
3745 * fold-const.c (optimize_minmax_comparison): Remove.
3746 (fold_comparison): Remove call to the above.
3747 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
3748 New transformations.
3750 2016-06-13 Alan Hayward <alan.hayward@arm.com>
3752 PR tree-optimization/71416
3753 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
3756 2016-06-13 Martin Liska <mliska@suse.cz>
3758 * predict.c (enum predictor_reason): Prefix enum with REASON_.
3759 (combine_predictions_for_insn): Likewise.
3760 (prune_predictions_for_bb): Likewise.
3761 (combine_predictions_for_bb): Likewise.
3763 2016-06-13 Richard Biener <rguenther@suse.de>
3765 PR tree-optimization/71505
3766 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
3767 assert match comment.
3769 2016-06-13 Marek Polacek <polacek@redhat.com>
3772 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
3773 gimplify_switch_expr.
3774 (warn_switch_unreachable_r): New function.
3776 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3779 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
3782 2016-06-13 Richard Biener <rguenther@suse.de>
3785 * fold-const.c (fold_unary_loc): Preserve alignment when
3786 folding a VIEW_CONVERT_EXPR into a MEM_REF.
3788 2016-06-13 Martin Liska <mliska@suse.cz>
3791 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
3792 w/ -fsanitize=bounds.
3794 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
3796 * config/i386/i386.c (ix86_init_builtins): Calculate
3797 FLOAT128_FTYPE_CONST_STRING function type only once.
3798 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
3799 built-in functions are available for x86-32 and x86-64 targets.
3801 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
3804 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
3806 (FLOAT128_FTYPE_CONST_STRING): New function type.
3807 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
3808 [IX86_BUILTIN_NANSQ]: Ditto.
3809 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
3810 (ix86_init_builtin_types): Declare const_string_type_node.
3811 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
3813 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
3814 * doc/extend.texi (x86 Built-in Functions): Document
3815 __builtin_nanq and __builtin_nansq.
3817 2016-06-11 Jiong Wang <jiong.wang@arm.com>
3820 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
3821 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
3822 length for pop patterns.
3823 (arm_attr_length_push_multi): Update comments.
3824 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
3826 (*pop_multiple_with_writeback_and_return): Likewise.
3827 (*pop_multiple_with_return): Likewise.
3829 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
3832 * fold-const.c (optimize_bit_field_compare): Don't try to use
3833 word_mode unconditionally for reading the bit field, look at
3834 DECL_BIT_FIELD_REPRESENTATIVE instead.
3836 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
3839 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
3840 vector integer type.
3842 2016-06-10 Jakub Jelinek <jakub@redhat.com>
3845 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
3846 without LABEL_DECL, set *handled_ops_p to false instead of true.
3848 2016-06-10 Martin Sebor <msebor@redhat.com>
3851 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
3852 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
3853 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
3855 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
3856 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
3857 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
3858 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
3859 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
3860 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
3861 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
3862 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
3864 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
3866 * config/arm/arm.h (pool_vector_label,
3867 return_used_this_function): Remove.
3869 2016-06-10 Jeff Law <law@redhat.com>
3871 PR tree-optimization/71335
3872 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
3873 zero length paths here.
3874 (convert_and_register_jump_thread_path): Remove hacks related to
3875 duplicated blocks in the jump thread path.
3876 (fsm_find_control_statement_thread_paths): Avoid putting the same
3877 block on the thread path twice, but ensure the thread path is
3878 unchanged from the caller's point of view.
3880 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
3882 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
3883 * predict.def (PRED_LOOP_BRANCH): Remove.
3885 2016-06-10 David Malcolm <dmalcolm@redhat.com>
3887 * Makefile.in (OBJS): Add ggc-tests.o.
3888 (GTFILES): Add ggc-tests.c.
3889 * ggc-tests.c: New file.
3890 * selftest-run-tests.c (selftest::run_tests): Call
3891 selftest::ggc_tests_c_tests.
3892 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
3894 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
3896 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
3898 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
3901 * varasm.c (place_block_symbol): Adjust alignment for asan protected
3902 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
3904 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
3906 * profile.c: Include cfgloop.h.
3907 (branch_prob): Compute estimated number of iterations.
3908 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
3909 recompute estimate number of iterations from profile.
3911 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
3914 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
3915 must be grouped on top of stack. Don't force early clobber
3916 on ordinary reg outputs.
3918 2016-06-10 Richard Biener <rguenther@suse.de>
3920 * targhooks.c (default_builtin_vectorization_cost): Adjust
3923 2016-06-10 Richard Biener <rguenther@suse.de>
3925 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
3926 to fold the RHS to a constant if possible.
3928 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
3931 * tree-nested.c (convert_nonlocal_omp_clauses)
3932 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
3933 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
3934 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
3936 * gimplify.c (gimplify_adjust_omp_clauses): Discard
3938 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
3940 * omp-low.c (scan_sharing_clauses): Don't expect
3943 2016-06-10 Alan Hayward <alan.hayward@arm.com>
3945 PR tree-optimization/71407
3946 PR tree-optimization/71416
3947 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
3950 2016-06-10 Richard Biener <rguenther@suse.de>
3953 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
3955 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
3957 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
3959 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
3960 Jiong Wang <jiong.wang@arm.com>
3962 PR rtl-optimization/70751
3963 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
3964 spilled into memory.
3966 2016-06-09 Jonathan Yong <10walls@gmail.com>
3969 2015-09-21 Jonathan Yong <10walls@gmail.com>
3971 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
3972 sysroot/usr/lib/32api for additional win32 libraries,
3973 fixes failing Cygwin bootstrapping.
3975 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
3977 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
3980 2016-06-09 David Malcolm <dmalcolm@redhat.com>
3983 * pretty-print.c (pp_indent): Specify that %p is printed in a
3984 host-dependent manner.
3985 (test_pp_format): Remove the test for %p.
3987 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
3989 * config/mips/mips.c (mips_output_jump): Fix formatting.
3991 2016-06-09 Richard Biener <rguenther@suse.de>
3993 PR tree-optimization/71462
3994 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
3997 2016-06-09 Martin Liska <mliska@suse.cz>
3999 * predict.c (dump_prediction): Add new argument.
4000 (enum predictor_reason): New enum.
4001 (struct predictor_hash): New struct.
4002 (predictor_hash::hash): New function.
4003 (predictor_hash::equal): Likewise.
4004 (not_removed_prediction_p): New function.
4005 (prune_predictions_for_bb): Likewise.
4006 (combine_predictions_for_bb): Prune predictions.
4008 2016-06-09 Martin Liska <mliska@suse.cz>
4010 * predict.c (filter_predictions): New function.
4011 (remove_predictions_associated_with_edge): Use the filter
4013 (equal_edge_p): New function.
4015 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
4017 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
4018 Correct usage of @samp vs @option, add @samp where appropriate.
4019 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
4020 Add armv6s-m and document it, as it is no official ARM name.
4022 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4024 * ifcvt.c (struct noce_if_info): Add transform_name field.
4025 (noce_try_move): Set if_info->transform_name to the function name.
4026 (noce_try_ifelse_collapse): Likewise.
4027 (noce_try_store_flag): Likewise.
4028 (noce_try_inverse_constants): Likewise.
4029 (noce_try_store_flag_constants): Likewise.
4030 (noce_try_addcc): Likewise.
4031 (noce_try_store_flag_mask): Likewise.
4032 (noce_try_cmove): Likewise.
4033 (noce_try_cmove_arith): Likewise.
4034 (noce_try_minmax): Likewise.
4035 (noce_try_abs): Likewise.
4036 (noce_try_sign_mask): Likewise.
4037 (noce_try_bitop): Likewise.
4038 (noce_convert_multiple_sets): Likewise.
4039 (noce_process_if_block): Print if_info->transform_name to
4040 dump_file if transformation succeeded.
4042 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4044 * config/arm/cortex-a57.md (cortex_a57_alu):
4047 2016-06-08 Martin Sebor <msebor@redhat.com>
4048 Jakub Jelinek <jakub@redhat.com>
4052 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
4053 BUILT_IN_MUL_OVERFLOW_P): New builtins.
4054 * builtins.c: Include gimple-fold.h.
4055 (fold_builtin_arith_overflow): Handle
4056 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
4057 (fold_builtin_3): Likewise.
4058 * doc/extend.texi (Integer Overflow Builtins): Document
4059 __builtin_{add,sub,mul}_overflow_p.
4061 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
4063 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
4064 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
4066 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
4068 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
4069 Rewrite, looking one level down for records and arrays.
4071 2016-06-08 David Malcolm <dmalcolm@redhat.com>
4073 * pretty-print.c: Include "selftest.h".
4074 (pp_format): Fix comment.
4075 (identifier_to_locale): Likewise.
4076 (selftest::test_basic_printing): New function.
4077 (selftest::assert_pp_format): New function.
4078 (selftest::test_pp_format): New function.
4079 (selftest::pretty_print_c_tests): New function.
4080 * selftest-run-tests.c (selftest::run_tests): Call
4081 selftest::pretty_print_c_tests.
4082 * selftest.h (pretty_print_c_tests): New declaration.
4084 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
4086 * invoke.texi (max-loop-headers-insns): Document.
4087 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
4088 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
4089 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
4091 2016-06-08 Richard Biener <rguenther@suse.de>
4093 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
4094 on strided SLP loads and fall back to scalar loads in case
4095 we can't chunk them.
4097 2016-06-08 Richard Biener <rguenther@suse.de>
4099 PR tree-optimization/71452
4100 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
4101 type used for the SSA rewrite has enough precision to cover
4102 the dynamic type of the location.
4104 2016-06-08 Jakub Jelinek <jakub@redhat.com>
4105 Richard Biener <rguenther@suse.de>
4108 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
4109 the same as DECL_P (base0) for indirect_base0. Use equality_code
4110 in one further place.
4112 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
4114 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
4115 to one word if the field is known to overlap other words.
4116 (extract_bit_field_1): Likewise.
4117 (store_split_bit_field): Remove compensating code.
4118 (extract_split_bit_field): Likewise.
4120 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
4124 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
4126 2016-06-08 Jiong Wang <jiong.wang@arm.com>
4128 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
4130 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
4131 (arch64_addpv4sf): Delete.
4132 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
4133 "gen_aarch64_addpv4sf".
4134 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
4136 (vpadds_f32): Likewise.
4137 (vpaddq_f32): Likewise.
4138 (vpaddq_f64): Likewise.
4140 2016-06-08 Jiong Wang <jiong.wang@arm.com>
4142 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
4144 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
4145 to VALLF. Rename to "fabd<mode>3".
4146 "*fabd_scalar<mode>3): Delete.
4147 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
4149 (vabdd_f64): Likewise.
4150 (vabd_f32): Likewise.
4151 (vabd_f64): Likewise.
4152 (vabdq_f32): Likewise.
4153 (vabdq_f64): Likewise.
4155 2016-06-08 Jiong Wang <jiong.wang@arm.com>
4157 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
4159 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
4160 "aarch64_rsqrts<mode>".
4161 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
4162 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
4164 (vrsqrtsd_f64): Likewise.
4165 (vrsqrts_f32): Likewise.
4166 (vrsqrts_f64): Likewise.
4167 (vrsqrtsq_f32): Likewise.
4168 (vrsqrtsq_f64): Likewise.
4170 2016-06-08 Jiong Wang <jiong.wang@arm.com>
4172 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
4174 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
4175 "aarch64_rsqrte<mode>".
4176 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
4177 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
4179 (vrsqrted_f64): Likewise.
4180 (vrsqrte_f32): Likewise.
4181 (vrsqrte_f64): Likewise.
4182 (vrsqrteq_f32): Likewise.
4183 (vrsqrteq_f64): Likewise.
4185 2016-06-08 Jiong Wang <jiong.wang@arm.com>
4187 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
4191 * config/aarch64/aarch64-simd.md
4192 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
4193 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
4194 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
4196 (vcvt_n_f32_u32): Likewise.
4197 (vcvt_n_s32_f32): Likewise.
4198 (vcvt_n_u32_f32): Likewise.
4199 (vcvtq_n_f32_s32): Likewise.
4200 (vcvtq_n_f32_u32): Likewise.
4201 (vcvtq_n_f64_s64): Likewise.
4202 (vcvtq_n_f64_u64): Likewise.
4203 (vcvtq_n_s32_f32): Likewise.
4204 (vcvtq_n_s64_f64): Likewise.
4205 (vcvtq_n_u32_f32): Likewise.
4206 (vcvtq_n_u64_f64): Likewise.
4207 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
4208 (VSDQ_SDI): Likewise.
4209 (fcvt_target): Support V4DI, V4SI and V2SI.
4210 (FCVT_TARGET): Likewise.
4212 2016-06-08 Jiong Wang <jiong.wang@arm.com>
4214 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
4215 (TYPES_BINOP_SUS): Likewise.
4216 (aarch64_simd_builtin_data): Update include file name.
4217 (aarch64_builtins): Likewise.
4218 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
4219 for conversion between scalar float-point and fixed-point.
4223 * config/aarch64/aarch64.md
4224 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
4225 pattern for conversion between scalar float to fixed-pointer.
4226 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
4227 (UNSPEC_FCVTZS): New UNSPEC enumeration.
4228 (UNSPEC_FCVTZU): Likewise.
4229 (UNSPEC_SCVTF): Likewise.
4230 (UNSPEC_UCVTF): Likewise.
4231 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
4233 (vcvtd_n_f64_u64): Likewise.
4234 (vcvtd_n_s64_f64): Likewise.
4235 (vcvtd_n_u64_f64): Likewise.
4236 (vcvtd_n_f32_s32): Likewise.
4237 (vcvts_n_f32_u32): Likewise.
4238 (vcvtd_n_s32_f32): Likewise.
4239 (vcvts_n_u32_f32): Likewise.
4240 * config/aarch64/iterators.md (fcvt_target): Support integer to float
4242 (FCVT_TARGET): Likewise.
4243 (FCVT_FIXED2F): New iterator.
4244 (FCVT_F2FIXED): Likewise.
4245 (fcvt_fixed_insn): New define_int_attr.
4247 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
4249 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
4250 some statements was removed.
4252 2016-06-08 Alan Hayward <alan.hayward@arm.com>
4254 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
4255 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
4256 (vect_can_advance_ivs_p): likewise.
4257 (vect_update_ivs_after_vectorizer): likewise.
4258 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
4259 (vect_analyze_scalar_cycles_1): likewise.
4260 (vect_analyze_loop_operations): likewise.
4261 (report_vect_op): likewise.
4262 (vect_is_slp_reduction): likewise.
4263 (vect_is_simple_reduction): likewise.
4264 (get_initial_def_for_induction): likewise.
4265 (vect_transform_loop): likewise.
4266 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
4267 (vect_recog_sad_pattern): likewise.
4268 (vect_recog_widen_sum_pattern): likewise.
4269 (vect_recog_widening_pattern): likewise.
4270 (vect_recog_divmod_pattern): likewise.
4271 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
4272 (vect_analyze_slp_instance): likewise.
4273 (vect_transform_slp_perm_load): likewise.
4274 (vect_schedule_slp_instance): likewise.
4276 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
4278 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
4279 (return_prediction): PRED_CONST_RETURN predict return as not taken.
4280 * predict.def (PRED_CONTINUE): Change hitrate 50->67
4281 (PRED_LOOP_BRANCH): Document predictor as broken.
4282 (PRED_LOOP_EXIT): Change hitrate 91->92.
4283 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
4284 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
4285 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
4286 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
4287 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
4288 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
4289 (PRED_CALL): Chane hitrate 71->67.
4290 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
4291 (PRED_GOTO): Document as unused right now.
4292 (PRED_CONST_RETURN): Change hitrate 67->69
4293 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
4294 (PRED_NULL_RETURN): Change hitrate 91->90.
4295 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
4296 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
4297 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
4299 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
4301 * config/rs6000/altivec.h: Add __builtin_vec_mul.
4302 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
4303 special case Altivec builtin.
4304 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
4305 VSX_BUILTIN_VEC_MUL (replaced with special case code).
4306 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4307 code for ALTIVEC_BUILTIN_VEC_MUL.
4308 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4309 for __builtin_vec_mul.
4311 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
4313 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
4316 2016-06-07 David Malcolm <dmalcolm@redhat.com>
4318 * spellcheck.c (selftest::test_find_closest_string): New function.
4319 (spellcheck_c_tests): Call the above.
4321 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4323 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
4325 2016-06-07 Jakub Jelinek <jakub@redhat.com>
4327 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
4328 Yv=Yv,C alternatives.
4330 2016-06-07 Richard Biener <rguenther@suse.de>
4333 * common.opt (ffast-math): Make Optimization.
4335 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
4336 Prachi Godbole <prachi.godbole@imgtec.com>
4338 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
4339 `fabs' and `fneg' type attributes.
4340 (p5600_fpu_fabs): Add `fmove' to the comment.
4342 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
4344 * gimple.c: Include builtins.h
4345 (gimple_inexpensive_call_p): New function.
4346 * gimple.h (gimple_inexpensive_call_p): Declare.
4347 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
4348 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
4351 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
4353 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
4354 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
4355 warning_at_rich_loc, warning_n, pedwarn, permerror,
4356 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
4357 sorry, fatal_error, internal_error, internal_error_no_backtrace):
4360 2016-06-07 Richard Biener <rguenther@suse.de>
4362 PR tree-optimization/71428
4363 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
4364 BIT_FIELD_REF op vs. load.
4366 2016-06-07 Richard Biener <rguenther@suse.de>
4369 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
4372 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
4374 * config/pa/pa.md (call): Generate indirect long calls to non-local
4375 functions on TARGET_64BIT.
4376 (call_value): Likewise.
4378 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
4380 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
4381 pattern and subsequent splitters.
4382 (call_val_reg_64bit_post_reload): Likewise.
4384 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
4387 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
4388 propagate_op_to_single_use.
4390 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
4393 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
4395 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
4397 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
4398 (enum x86_dirflag_state): New enum.
4399 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
4400 (machine_function): Remove needs_cld.
4401 (ix86_current_function_needs_cld): Remove.
4402 * config/i386/i386.c (ix86_set_func_type): Set
4403 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
4404 (ix86_expand_prologue): Do not emit CLD here.
4405 (ix86_dirflag_mode_needed): New function.
4406 (ix86_dirflag_mode_entry): Ditto.
4407 (ix86_mode_needed): Handle X86_DIRFLAG entity.
4408 (ix86_mode_after): Ditto.
4409 (ix86_mode_entry): Ditto.
4410 (ix86_mode_exit): Ditto.
4411 (ix86_emit_mode_set): Ditto.
4412 * config/i386/i386.md (strmov_singleop): Set
4413 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
4414 Do not set ix86_current_function_needs_cld.
4416 (strset_singleop): Ditto.
4418 (cmpstrnqi_nz_1): Ditto.
4419 (cmpstrnqi_1): Ditto.
4420 (strlenqi_1): Ditto.
4422 2016-06-06 Jakub Jelinek <jakub@redhat.com>
4424 PR tree-optimization/71259
4425 * tree-vect-slp.c (vect_get_constant_vectors): For
4426 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
4427 one for constant op, and use COND_EXPR for non-constant.
4429 2016-06-06 David Malcolm <dmalcolm@redhat.com>
4431 * Makefile.in (OBJS): Add function-tests.o,
4432 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
4433 selftest-run-tests.o.
4434 (OBJS-libcommon): Add selftest.o.
4435 (OBJS-libcommon-target): Add selftest.o.
4436 (all.internal): Add "selftest".
4437 (all.cross): Likewise.
4438 (selftest): New phony target.
4439 (s-selftest): New target.
4440 (selftest-gdb): New phony target.
4441 (COLLECT2_OBJS): Add selftest.o.
4442 * bitmap.c: Include "selftest.h".
4443 (selftest::test_gc_alloc): New function.
4444 (selftest::test_set_range): New function.
4445 (selftest::test_clear_bit_in_middle): New function.
4446 (selftest::test_copying): New function.
4447 (selftest::test_bitmap_single_bit_set_p): New function.
4448 (selftest::bitmap_c_tests): New function.
4449 * common.opt (fself-test): New.
4450 * diagnostic-show-locus.c: Include "selftest.h".
4451 (make_range): New function.
4452 (test_range_contains_point_for_single_point): New function.
4453 (test_range_contains_point_for_single_line): New function.
4454 (test_range_contains_point_for_multiple_lines): New function.
4455 (assert_eq): New function.
4456 (test_get_line_width_without_trailing_whitespace): New function.
4457 (selftest::diagnostic_show_locus_c_tests): New function.
4458 * et-forest.c: Include "selftest.h".
4459 (selftest::test_single_node): New function.
4460 (selftest::test_simple_tree): New function.
4461 (selftest::test_disconnected_nodes): New function.
4462 (selftest::et_forest_c_tests): New function.
4463 * fold-const.c: Include "selftest.h".
4464 (selftest::assert_binop_folds_to_const): New function.
4465 (selftest::assert_binop_folds_to_nonlvalue): New function.
4466 (selftest::test_arithmetic_folding): New function.
4467 (selftest::fold_const_c_tests): New function.
4468 * function-tests.c: New file.
4469 * gimple.c: Include "selftest.h".
4470 Include "gimple-pretty-print.h".
4471 (selftest::verify_gimple_pp): New function.
4472 (selftest::test_assign_single): New function.
4473 (selftest::test_assign_binop): New function.
4474 (selftest::test_nop_stmt): New function.
4475 (selftest::test_return_stmt): New function.
4476 (selftest::test_return_without_value): New function.
4477 (selftest::gimple_c_tests): New function.
4478 * hash-map-tests.c: New file.
4479 * hash-set-tests.c: New file.
4480 * input.c: Include "selftest.h".
4481 (selftest::assert_loceq): New function.
4482 (selftest::test_accessing_ordinary_linemaps): New function.
4483 (selftest::test_unknown_location): New function.
4484 (selftest::test_builtins): New function.
4485 (selftest::test_reading_source_line): New function.
4486 (selftest::input_c_tests): New function.
4487 * rtl-tests.c: New file.
4488 * selftest-run-tests.c: New file.
4489 * selftest.c: New file.
4490 * selftest.h: New file.
4491 * spellcheck.c: Include "selftest.h".
4492 (selftest::levenshtein_distance_unit_test_oneway): New function,
4493 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
4494 (selftest::levenshtein_distance_unit_test): Likewise.
4495 (selftest::spellcheck_c_tests): Likewise.
4496 * toplev.c: Include selftest.h.
4497 (toplev::run_self_tests): New.
4498 (toplev::main): Handle -fself-test.
4499 * toplev.h (toplev::run_self_tests): New.
4500 * tree.c: Include "selftest.h".
4501 (selftest::test_integer_constants): New function.
4502 (selftest::test_identifiers): New function.
4503 (selftest::test_labels): New function.
4504 (selftest::tree_c_tests): New function.
4505 * tree-cfg.c: Include "selftest.h".
4506 (selftest::push_fndecl): New function.
4507 (selftest::test_linear_chain): New function.
4508 (selftest::test_diamond): New function.
4509 (selftest::test_fully_connected): New function.
4510 (selftest::tree_cfg_c_tests): New function.
4511 * vec.c: Include "selftest.h".
4512 (selftest::safe_push_range): New function.
4513 (selftest::test_quick_push): New function.
4514 (selftest::test_safe_push): New function.
4515 (selftest::test_truncate): New function.
4516 (selftest::test_safe_grow_cleared): New function.
4517 (selftest::test_pop): New function.
4518 (selftest::test_safe_insert): New function.
4519 (selftest::test_ordered_remove): New function.
4520 (selftest::test_unordered_remove): New function.
4521 (selftest::test_block_remove): New function.
4522 (selftest::reverse_cmp): New function.
4523 (selftest::test_qsort): New function.
4524 (selftest::vec_c_tests): New function.c.
4525 * wide-int.cc: Include selftest.h and wide-int-print.h.
4526 (selftest::from_int <wide_int>): New function.
4527 (selftest::from_int <offset_int>): New function.
4528 (selftest::from_int <widest_int>): New function.
4529 (selftest::assert_deceq): New function.
4530 (selftest::assert_hexeq): New function.
4531 (selftest::test_printing <VALUE_TYPE>): New function template.
4532 (selftest::test_ops <VALUE_TYPE>): New function template.
4533 (selftest::test_comparisons <VALUE_TYPE>): New function template.
4534 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
4536 (selftest::wide_int_cc_tests): New function.
4538 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4541 * ifcvt.c (noce_try_ifelse_collapse): New function.
4543 (noce_process_if_block): Call noce_try_ifelse_collapse.
4544 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
4545 (simplify_ternary_operation): Use the above to simplify
4546 conditional CLZ/CTZ expressions.
4548 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4551 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
4552 define_insn_and_split.
4554 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4557 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
4559 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
4562 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
4563 Implicitly clobber memory for basic asm with non-empty assembler
4564 string. Use targetm.md_asm_adjust also here.
4565 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
4566 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
4567 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
4568 non-empty assembler string.
4569 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
4570 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
4571 (decode_asm_operands): Handle basic asm in PARALLEL block.
4572 (extract_insn): Handle basic asm in PARALLEL block.
4573 * doc/extend.texi: Mention new behavior of basic asm.
4574 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
4575 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
4576 branch_needs_nop_p): Use asm_noperands.
4578 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
4580 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
4581 Include the M7 SPARC DFA scheduler.
4582 New attribute v3pipe.
4583 Annotate insns with v3pipe where appropriate.
4584 Define cpu_feature vis4.
4585 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
4586 Add (V8QI "8") to vbits.
4587 Add insns {add,sub}v8qi3
4588 Add insns ss{add,sub}v8qi3
4589 Add insns us{add,sub}{v8qi,v4hi}3
4590 Add insns {min,max}{v8qi,v4hi,v2si}3
4591 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
4592 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
4593 * config/sparc/niagara4.md: Add a comment explaining the
4594 discrepancy between the documented latenty numbers and the
4596 * config/sparc/niagara7.md: New file.
4597 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
4598 supports SPARC5 and VIS 4.0 instructions.
4599 * configure: Regenerate.
4600 * config.in: Likewise.
4601 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
4602 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
4603 TARGET_CPU_niagara7.
4604 (ASM_CPU64_DEFAULT_SPEC): Likewise.
4605 (CPP_CPU_SPEC): Handle niagara7.
4606 (ASM_CPU_SPEC): Likewise.
4607 * config/sparc/sparc-opts.h (processor_type): Add
4609 (mvis4): New option.
4610 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
4611 (AS_NIAGARA7_FLAG): Define.
4612 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
4613 (CPP_CPU64_DEFAULT_SPEC): Likewise.
4614 (CPP_CPU_SPEC): Handle niagara7.
4615 (ASM_CPU_SPEC): Likewise.
4616 * config/sparc/sparc.c (niagara7_costs): Define.
4617 (sparc_option_override): Handle niagara7 and adjust cache-related
4618 parameters with better values for niagara cpus. Also support VIS4.
4619 (sparc32_initialize_trampoline): Likewise.
4620 (sparc_use_sched_lookahead): Likewise.
4621 (sparc_issue_rate): Likewise.
4622 (sparc_register_move_cost): Likewise.
4623 (dump_target_flag_bits): Support VIS4.
4624 (sparc_vis_init_builtins): Likewise.
4625 (sparc_builtins): Likewise.
4626 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
4628 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
4630 * config/sparc/sparc.opt (sparc_processor_type): New value
4632 * config/sparc/visintrin.h (__attribute__): Prototypes for the
4634 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
4636 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
4639 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
4641 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
4643 2016-06-06 Richard Biener <rguenther@suse.de>
4645 PR tree-optimization/71398
4646 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
4649 2016-06-05 James Bowman <james.bowman@ftdichip.com>
4651 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
4652 ft32_expand_prolog, ft32_expand_epilogue):
4653 Handle pretend_args.
4654 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
4655 * config/ft32/ft32.md: Add pretend_returner.
4657 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
4660 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
4661 Copy op1 RTX to avoid invalid sharing.
4662 (ix86_expand_vector_move_misalign): Ditto.
4664 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
4666 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
4669 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
4671 * predict.c (predicted_by_loop_heuristics_p): New function.
4672 (predict_iv_comparison): Use it.
4673 (predict_loops): Walk from innermost loops; do not predict edges
4674 leaving multiple loops multiple times; implement
4675 PRED_LOOP_ITERATIONS_MAX heuristics.
4676 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
4678 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
4680 * cfg.c (check_bb_profile): Do not report mismatched profiles when
4681 only edges out of BB are EH edges.
4683 2016-06-04 Martin Sebor <msebor@redhat.com>
4684 Marcin Baczyński <marbacz@gmail.com>
4687 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
4688 a void expression in a void function.
4690 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
4692 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
4693 aux; dump reasons of decisions.
4694 (should_duplicate_loop_header_p): Likewise.
4695 (do_while_loop_p): Likewise.
4696 (ch_base::copy_headers): Dump asi num insns duplicated.
4698 2016-06-04 Jakub Jelinek <jakub@redhat.com>
4700 PR tree-optimization/71405
4701 * tree-ssa.c (execute_update_addresses_taken): For clobber with
4702 incompatible type, build a new clobber with the right type instead
4703 of building a VIEW_CONVERT_EXPR around it.
4705 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
4707 PR tree-optimization/52171
4708 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
4709 by_pieces_ninsns instead of move_by_pieces_ninsns.
4711 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
4713 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
4714 for reg+reg addressing mode.
4716 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4718 * rs6000-c.c (c/c-tree.h): Add #include.
4719 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
4720 in C++ when found in the base position of vec_ld or vec_st.
4722 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
4724 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
4725 use of profile unless profile status is PROFILE_READ.
4726 * profile.c (compute_branch_probabilities): Set profile status
4727 only after reporting predictor hitrates.
4729 2016-06-03 Joseph Myers <joseph@codesourcery.com>
4733 * common.opt (ffp-int-builtin-inexact): New option.
4734 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
4735 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
4736 (ceil@var{m}2): Document dependence on this option.
4737 * ipa-inline-transform.c (inline_call): Handle
4738 flag_fp_int_builtin_inexact.
4739 * ipa-inline.c (can_inline_edge_p): Likewise.
4740 * config/i386/i386.md (rintxf2): Do not test
4741 flag_unsafe_math_optimizations.
4742 (rint<mode>2_frndint): New define_insn.
4743 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
4744 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
4745 for 387 instead of extending and truncating.
4746 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
4747 !flag_trapping_math instead of flag_unsafe_math_optimizations.
4748 Change to frndint<mode>2_<rounding>.
4749 (frndintxf2_<rounding>_i387): Likewise. Change to
4750 frndint<mode>2_<rounding>_i387.
4751 (<rounding_insn>xf2): Likewise.
4752 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
4753 !flag_trapping_math instead of flag_unsafe_math_optimizations for
4754 x87. Test TARGET_ROUND || !flag_trapping_math ||
4755 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
4756 SSE. Use ROUND_NO_EXC in constant operand of
4757 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
4758 for 387 instead of extending and truncating.
4760 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
4761 Julia Koval <julia.koval@intel.com>
4773 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
4774 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
4775 all registers, except for function return registers if there are
4776 no caller-saved registers.
4777 (ix86_set_func_type): New function.
4778 (ix86_set_current_function): Call ix86_set_func_type to set
4779 no_caller_saved_registers and func_type. Call reinit_regs if
4780 caller-saved registers are changed. Don't allow MPX, SSE, MMX
4781 nor x87 instructions in interrupt handler nor function with
4782 no_caller_saved_registers attribute.
4783 (ix86_function_ok_for_sibcall): Return false if there are no
4784 caller-saved registers.
4785 (type_natural_mode): Don't warn ABI change for MMX in interrupt
4787 (ix86_function_arg_advance): Skip for callee in interrupt handler.
4788 (ix86_function_arg): Return special arguments in interrupt handler.
4789 (ix86_promote_function_mode): Promote pointer to word_mode only
4790 for normal functions.
4791 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
4793 (ix86_epilogue_uses): New function.
4794 (ix86_hard_regno_scratch_ok): Likewise.
4795 (ix86_save_reg): Preserve all registers in interrupt handler
4796 after reload. Preserve all registers, except for function return
4797 registers, if there are no caller-saved registers after reload.
4798 (find_drap_reg): Always use callee-saved register if there are
4799 no caller-saved registers.
4800 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
4801 for interrupt handler.
4802 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
4803 Emit cld instruction if stringops are used in interrupt handler
4804 or interrupt handler isn't a leaf function.
4805 (ix86_expand_epilogue): Generate interrupt return for interrupt
4806 handler and pop the 'ERROR_CODE' off the stack before interrupt
4807 return in exception handler.
4808 (ix86_expand_call): Disallow calling interrupt handler directly.
4809 If there are no caller-saved registers, mark all registers that
4810 are clobbered by the call which returns as clobbered.
4811 (ix86_handle_no_caller_saved_registers_attribute): New function.
4812 (ix86_handle_interrupt_attribute): Likewise.
4813 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
4815 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
4816 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
4817 accumulation in interrupt function if stack may be realigned to
4819 (EPILOGUE_USES): New.
4820 (function_type): New enum.
4821 (machine_function): Add func_type and no_caller_saved_registers.
4822 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
4823 (interrupt_return): New pattern.
4824 * doc/extend.texi: Document x86 interrupt and
4825 no_caller_saved_registers attributes.
4827 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
4829 PR tree-optimization/52171
4830 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
4831 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
4832 Look for constant strings. Move some code to emit_block_cmp_hints
4834 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
4835 * defaults.h (COMPARE_MAX_PIECES): New macro.
4836 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
4837 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
4838 (clear_by_pieces_1): Don't declare. Move definition before use.
4839 (can_do_by_pieces): New static function.
4840 (can_move_by_pieces): Use it. Return bool.
4841 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
4842 OP. All callers changed. Handle COMPARE_BY_PIECES.
4843 (class pieces_addr); New.
4844 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
4845 pieces_addr::adjust, pieces_addr::increment_address,
4846 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
4848 (class op_by_pieces_d): New.
4849 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
4851 (class move_by_pieces_d, class compare_by_pieces_d,
4852 class store_by_pieces_d): New subclasses of op_by_pieces_d.
4853 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
4854 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
4855 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
4856 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
4857 compare_by_pieces_d::finish_mode): New member functions.
4858 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
4860 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
4861 (emit_block_cmp_hints): New function.
4862 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
4863 use the newly defined classes.
4864 * expr.h (by_pieces_constfn): New typedef.
4865 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
4866 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
4867 (move_by_pieces_ninsns): Don't declare.
4868 (can_move_by_pieces): Change return value to bool.
4869 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
4870 (compare_by_pieces_branch_ratio): New hook.
4871 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
4872 (by_pieces_ninsns): Declare.
4873 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
4875 (default_compare_by_pieces_branch_ratio): New function.
4876 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
4877 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
4878 * doc/tm.texi: Regenerate.
4879 * tree-ssa-strlen.c: Include "builtins.h".
4880 (handle_builtin_memcmp): New static function.
4881 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
4882 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
4884 2016-06-03 Alan Hayward <alan.hayward@arm.com>
4886 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
4887 relevant stmts which are simple and invariant.
4888 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
4889 instead of simple and invariant
4891 2016-06-03 Alan Hayward <alan.hayward@arm.com>
4893 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
4894 (vectorizable_reduction): Check for new relevant state.
4895 (vectorizable_live_operation): vectorize live stmts using
4896 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
4897 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
4898 (vect_stmt_relevant_p): Check for stmts which are only used live.
4899 (process_use): Use of a stmt does not inherit it's live value.
4900 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
4901 (vect_analyze_stmt): Check for new relevant state.
4902 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
4903 outside the loop, but not inside it.
4905 2016-06-03 Alan Hayward <alan.hayward@arm.com>
4907 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
4908 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
4909 (vect_get_vec_def_for_operand): Split out code.
4911 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
4913 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
4915 2016-06-03 Alan Hayward <alan.hayward@arm.com>
4917 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
4919 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4921 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
4923 2016-06-03 Jakub Jelinek <jakub@redhat.com>
4926 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
4927 to noreturn e->callee->decl that has void return type and void
4928 arguments, adjust gimple_call_fntype and remove lhs even if it had
4929 previously addressable type.
4931 2016-06-02 Jeff Law <law@redhat.com>
4933 PR tree-optimization/71328
4934 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
4935 error when checking for a jump back onto the copied path.
4937 2016-06-02 David Malcolm <dmalcolm@redhat.com>
4939 * config/microblaze/microblaze.c (get_branch_target): Add return
4940 NULL_RTX for the non-CALL_P case.
4941 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
4942 (insert_wic): Remove unused local "j".
4944 2016-06-02 Martin Liska <mliska@suse.cz>
4946 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
4948 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
4949 Julia Koval <julia.koval@intel.com>
4951 * function.c (assign_parm_setup_stack): Force source into a
4953 * target.def (function_incoming_arg): Update documentation to
4954 allow arbitrary address computation based on hard register.
4955 * doc/tm.texi: Regenerated.
4957 2016-06-02 Martin Liska <mliska@suse.cz>
4959 * predict.c (combine_predictions_for_bb): Fix first match in
4960 cases where a first predictor contains more than one occurence
4961 in list of predictors. Take the best value in such case.
4963 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4965 PR rtl-optimization/71295
4966 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
4967 offset would go over the size of the inner mode reject it.
4969 2016-06-02 Jakub Jelinek <jakub@redhat.com>
4971 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
4972 x=x,x and v=v,m instead of x=x,m.
4974 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
4975 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
4976 alternative to v=rm,C.
4978 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
4979 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
4980 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
4981 instead of vex for the last two above mentioned alternatives.
4983 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4986 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
4988 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
4990 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
4992 2016-06-01 David Malcolm <dmalcolm@redhat.com>
4994 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
4995 from int to unsigned.
4997 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
4999 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
5000 alternatives, eliminating preferred register class. Add support
5001 for the MTVSRDD instruction in ISA 3.0.
5002 (vsx_splat_v4si_internal): Use splat_input_operand instead of
5003 reg_or_indexed_operand.
5004 (vsx_splat_v4sf_internal): Likewise.
5006 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
5009 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
5010 for loading up all 0's or all 1's.
5012 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
5014 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
5016 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
5018 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
5020 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
5021 * gcc.c (set_source_date_epoch_envvar): New function, sets
5022 the SOURCE_DATE_EPOCH environment variable to the current time.
5024 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
5026 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
5027 the factor for live Phi nodes.
5029 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
5031 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
5032 * tree-parloops.c (parallelize_loops): likewise.
5033 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
5034 tree_unswitch_outer_loop): likewise.
5036 2016-06-01 Jakub Jelinek <jakub@redhat.com>
5039 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
5040 around creation of the temporary.
5042 2016-06-01 Richard Biener <rguenther@suse.de>
5044 PR tree-optimization/71366
5045 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
5046 (unloop_loops): Move removing edges here ...
5047 (try_unroll_loop_completely): ... from here.
5048 (try_peel_loop): ... and here.
5049 (tree_unroll_loops_completely_1): Track parent loops via
5050 bitmap of header BBs.
5051 (tree_unroll_loops_completely): Adjust for that.
5053 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
5055 * config/rs6000/altivec.h (vec_slv): New macro.
5056 (vec_srv): New macro.
5057 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
5058 (UNSPEC_VSRV): New value.
5061 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
5062 (vsrv): New builtin definition.
5063 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
5064 define argument types for new builtin.
5065 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
5067 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
5070 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
5071 Jocelyn Mayer <l_indien@magic.fr>
5074 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
5075 detect processor family for signature_CENTAUR_ebx.
5076 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
5077 signature_CENTAUR_ebx.
5078 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
5079 <default>: Pass x86-64 for has_longmode.
5081 2016-06-01 Nathan Sidwell <nathan@acm.org>
5083 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
5086 2016-06-01 Richard Biener <rguenther@suse.de>
5088 PR tree-optimization/71261
5089 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
5090 of stmts successfully put in the bool pattern. Remove
5091 single-use restriction.
5092 (adjust_bool_pattern_cast): Add cast at the use site via the
5093 pattern def sequence.
5094 (adjust_bool_pattern): Remove recursion, maintain a hash-map
5095 of patterned defs. Use the pattern def seqence instead of
5096 multiple independent patterns.
5097 (sort_after_uid): New qsort compare function.
5098 (adjust_bool_stmts): New function to process stmts in the bool
5099 pattern in IL order.
5100 (vect_recog_bool_pattern): Adjust.
5101 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
5102 (ifcvt_walk_pattern_tree): Likewise.
5103 (stmt_is_root_of_bool_pattern): Likewise.
5104 (ifcvt_repair_bool_pattern): Likewise.
5105 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
5107 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
5109 * loop-unroll.c (decide_unroll_constant_iterations,
5110 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
5111 likely upper bounds.
5112 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
5114 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
5116 * tree-core.h (enum omp_clause_code): Remove
5117 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
5119 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5121 * config/arm/sync.md (arm_store_exclusive<mode>):
5122 Use 'H' output modifier on operands[2] rather than creating a new
5123 entry in out-of-bounds memory of the operands array.
5124 (arm_store_release_exclusivedi): Likewise.
5126 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5128 * config/arm/arm.c (arm_fusion_enabled_p): New function.
5129 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
5130 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
5131 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
5133 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
5135 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
5136 into account live statements for mask producers.
5138 2016-06-01 Richard Biener <rguenther@suse.de>
5140 PR tree-optimization/71311
5141 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
5142 restrict to non-INTEGER_CST @0.
5144 2016-06-01 Richard Biener <rguenther@suse.de>
5146 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
5147 (relational patterns): Use :c to avoid pattern duplications.
5149 2016-06-01 Richard Biener <rguenther@suse.de>
5151 * genmatch.c (comparison_code_p): New predicate.
5152 (swap_tree_comparison): New function.
5153 (commutate): Add for_vec parameter to append new for entries.
5154 Support commutating relational operators by swapping it alongside
5156 (lower_commutative): Adjust.
5157 (dt_simplify::gen): Do not pass artificial operators to gen
5159 (decision_tree::gen): Do not add artificial operators as parameters.
5160 (parser::parse_expr): Verify operator commutativity when :c is
5161 applied. Allow :C to override this.
5162 * match.pd: Adjust patterns to use :C instead of :c where required.
5164 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
5166 PR tree-optimization/71077
5167 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
5168 the combining step, use boolean_false_node and boolean_true_node
5169 as the designated false/true return values.
5171 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
5173 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
5174 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
5175 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
5178 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
5180 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
5181 of flags impliying the register renaming.
5182 * toplev.c (process_options): Do not imply flag_rename_registers with
5185 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
5187 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
5188 default implementation.
5190 2016-05-31 Nathan Sidwell <nathan@acm.org>
5192 * dwarf2out.c (cur_line_info_table): Add GTY marker.
5194 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
5196 * config/sh/constraints.md (b): Remove constraint.
5197 * config/sh/predicates.md (arith_reg_operand): Remove
5199 * config/sh/sh-modes.def (PDI): Remove.
5200 * config/sh/sh.c (sh_target_reg_class,
5201 sh_optimize_target_register_callee_saved): Remove functions.
5202 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
5203 (sh_expand_epilogue): Update comment.
5204 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
5205 sh_secondary_reload): Remove TARGET_REGS related code.
5206 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
5207 TARGET_REGISTER_P): Remove macros.
5208 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
5209 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
5210 TR1_REG, TR2_REG): Remove constants.
5211 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
5213 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
5215 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
5216 define_expand patterns.
5217 (adddi3_compact): Rename to adddi3.
5218 (subdi3_compact): Rename to subdi3.
5219 (*negdi2): Rename to negdi2.
5220 (*abs<mode>2): Rename to abs<mode>2.
5222 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
5224 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
5225 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
5226 (atomic_sub_fetchsi): ... this new pattern.
5227 (mvtc): Add CC_REG clobber.
5229 2016-05-31 Marek Polacek <polacek@redhat.com>
5231 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
5233 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5235 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
5236 aarch64_fusion_enabled_p to check for fusion capabilities.
5238 2016-05-31 Richard Biener <rguenther@suse.de>
5240 PR tree-optimization/71352
5241 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
5242 minus one and a negate.
5244 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5246 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
5247 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
5249 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
5250 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
5251 Remove use of aarch64_simd_attr_length_move, set length attribute
5253 (*aarch64_be_movoi): Likewise.
5254 (*aarch64_be_movci): Likewise.
5255 (*aarch64_be_movxi): Likewise.
5257 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
5259 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
5260 It no longer does that.
5261 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
5263 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
5265 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
5266 attribute __unused__.
5268 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
5270 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
5271 * config/arm/arm.c (arm_arch_thumb1): Define.
5272 (arm_option_override): Initialize arm_arch_thumb1.
5273 * config/arm/arm.h (arm_arch_thumb1): Declare.
5274 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
5275 support Thumb-1 ISA.
5277 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
5280 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
5281 `Yv' for scalar operand.
5283 2016-05-31 Tom de Vries <tom@codesourcery.com>
5285 PR tree-optimization/69068
5286 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
5287 phis with more than two args.
5289 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
5291 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
5292 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
5295 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
5297 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
5299 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
5301 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
5302 cpu_32, cpu_64, tune_32 and tune_64.
5303 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
5305 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
5307 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
5309 2016-05-30 Andi Kleen <ak@linux.intel.com>
5311 * auto-profile.c (read_profile): Replace asserts with errors
5312 when file does not exist.
5313 * gcov-io.c (gcov_read_words): Dito.
5315 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
5317 * tree-cfg.c (print_loop): Print likely upper bounds.
5319 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
5321 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
5322 * opts.c (default_options): Enable peel loops at -O3.
5323 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
5324 (try_peel_loop): Do not re-peel already peeled loops;
5325 use likely upper bounds; fix profile updating.
5326 (pass_complete_unroll::execute): Initialize peeled_loops.
5328 2016-05-30 Martin Liska <mliska@suse.cz>
5330 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
5331 computed costs by frequency of BB they belong to.
5332 (get_scaled_computation_cost_at): New function.
5334 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
5335 Marc Glisse <marc.glisse@inria.fr>
5337 PR tree-optimization/71289
5338 * match.pd (-1 / B < A, A > -1 / B): New transformations.
5340 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
5342 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
5344 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
5346 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
5347 for peeled copies; avoid underflow when updating estimates; correctly
5350 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
5352 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
5353 r236875. Corrected oe3 to oe2 as obvious.
5355 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
5359 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
5360 that inserted stmt will not dominate stmts that defines its operand.
5361 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
5362 (rewrite_expr_tree_parallel): Likewise.
5364 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
5367 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
5368 all fields including stmt_to_insert are swapped.
5370 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
5372 * predict.h (force_edge_cold): Declare.
5373 * predict.c (force_edge_cold): New function.
5374 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
5376 (canonicalize_loop_induction_variables): Fix formating.
5378 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
5380 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
5381 (visium_expand_copysign): Use gen_int_mode directly.
5382 (visium_compute_frame_size): Minor tweaks.
5384 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
5386 * tree-vect-loop.c (vect_analyze_loop_2): Use
5387 likely_max_stmt_executions_int.
5389 2016-05-30 Tom de Vries <tom@codesourcery.com>
5391 PR tree-optimization/69067
5392 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
5394 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
5397 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
5398 New peepholes to remove unneeded fild/fistp pairs.
5399 (define_peephole2 atomic_loaddi_fpu): Ditto.
5401 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
5403 * predict.c (maybe_hot_frequency_p): Avoid division.
5405 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
5407 * doc/install.texi: Use https for shop.fsf.org.
5409 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
5411 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
5412 likely_max_stmt_executions_int.
5414 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
5416 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
5417 likely_max_stmt_executions_int.
5419 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
5421 * profile.c (compute_branch_probabilities): Do not report hitrates
5423 (branch_prob): Report hitrates here.
5424 * predict.c (gimple_predict_edge): Do not assert profile status;
5425 fix formatting issues.
5427 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
5429 * predict.c (edge_predicted_by_p): New function.
5430 (predict_paths_for_bb): Do not put multiple predictions of the same type
5433 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
5435 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
5438 2016-05-28 Alan Modra <amodra@gmail.com>
5440 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
5442 2016-05-28 Alan Modra <amodra@gmail.com>
5444 PR rtl-optimization/71275
5445 * ira.c (ira): Free dominance info.
5447 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
5449 * doc/sourcebuild.texi: New address for upstream Go repository.
5451 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
5453 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
5454 (TARGET_ARM_V7M): Likewise.
5456 2016-05-26 Jeff Law <law@redhat.com>
5458 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
5459 (thread_across_edge): Remove calls to find_jump_threads_backwards.
5460 * passes.def: Add jump threading passes before DOM/VRP.
5461 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
5462 argument to a basic block from an edge. Remove tests which are
5464 (pass_data_thread_jumps, class pass_thread_jumps): New.
5465 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
5466 (make_pass_thread_jumps): Likewise.
5467 * tree-pass.h (make_pass_thread_jumps): Declare.
5469 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
5471 * config/visium/visium-protos.h (split_double_move): Rename into...
5472 (visium_split_double_move): ...this.
5473 (visium_split_double_add): Declare.
5474 * config/visium/visium.c (split_double_move): Rename into...
5475 (visium_split_double_move): ...this.
5476 (visium_split_double_add): New function.
5477 (visium_expand_copysign): Renumber operands for consistency.
5478 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
5479 (DFmode move splitter): Likewise.
5480 (*addi3_insn): Split by means of visium_split_double_add.
5481 (*adddi3_insn_flags): Delete.
5482 (*plus_plus_sltu<subst_arith>): New insn.
5483 (*subdi3_insn): Split by means of visium_split_double_add.
5484 (subdi3_insn_flags): Delete.
5485 (*minus_minus_sltu<subst_arith>): New insn.
5486 (*negdi2_insn): Split by means of visium_split_double_add.
5487 (*negdi2_insn_flags): Delete.
5489 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
5491 * configure.ac: Treat a --with-headers option without argument
5492 the same as the default (i.e. consult sys-include directory).
5493 * configure: Regenerate.
5495 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5497 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
5498 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
5500 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
5501 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
5503 2016-05-27 Jiong Wang <jiong.wang@arm.com>
5506 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
5507 tree-stdarg analysis results.
5508 (aarch64_setup_incoming_varargs): Likewise.
5510 2016-05-27 Jiong Wang <jiong.wang@arm.com>
5512 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
5513 va_list_gpr_counter_field and va_list_fpr_counter_field.
5515 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
5518 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
5519 * config/aarch64/aarch64.c
5520 (aarch64_cannot_change_mode_class): Remove function.
5521 * config/aarch64/aarch64-protos.h
5522 (aarch64_cannot_change_mode_class): Remove.
5524 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
5526 * cfgloop.c (record_niter_bound): Record likely upper bounds.
5527 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
5528 get_likely_max_loop_iterations_int): New.
5529 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
5530 any_likely_upper_bound.
5531 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
5533 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
5534 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
5536 (unroll_loop_constant_iterations): Likewise.
5537 (unroll_loop_runtime_iterations): Likewise.
5538 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
5539 * lto-streamer-out.c (output_cfg): Likewise.
5540 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
5542 (canonicalize_loop_induction_variables): Dump likely upper bounds.
5543 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
5544 (likely_max_loop_iterations): New.
5545 (likely_max_loop_iterations_int): New.
5546 (likely_max_stmt_executions): New.
5547 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
5548 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
5549 likely_max_stmt_executions): Declare.
5551 2016-05-27 Marek Polacek <polacek@redhat.com>
5554 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
5556 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5558 * config/s390/s390.md (2x risbg splitters): Use
5559 reg_overlap_mentioned_p instead of rtx_equal_p.
5561 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
5563 * combine.c (make_compound_operation): Take known zero bits into
5564 account when checking for possible zero_extend.
5566 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5568 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
5569 Use const_int_operand for operand 2 predicate. Simplify expand code
5572 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
5575 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
5578 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5580 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
5581 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
5582 that returns CC_SESWPmode and CC_ZESWPmode.
5583 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
5585 (aarch64_rtx_costs): Likewise.
5587 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
5589 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
5590 for ISA 3.0 min/max support.
5591 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
5592 conditional move support.
5593 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
5594 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
5596 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
5597 conditional moves where the comparison type is different from move
5599 (fp_minmax): New code iterator for smin/smax.
5600 (minmax): New code attributes for min/max.
5601 (SMINMAX): Likewise.
5602 (smax<mode>3): Combine min, max insns into one insn using the
5603 fp_minmax code iterator. Add support for ISA 3.0 min/max
5604 instructions that don't need -ffast-math.
5605 (s<minmax><mode>3): Likewise.
5606 (smax<mode>3_vsx): Likewise.
5607 (smin<mode>3): Likewise.
5608 (s<minmax><mode>3_vsx): Likewise.
5609 (smin<mode>3_vsx): Likewise.
5610 (pre-VSX min/max splitters): Likewise.
5611 (s<minmax><mode>3_fpr): Likewise.
5612 (movsfcc): Rewrite floating point conditional moves to combine
5613 SFmode/DFmode into a single insn.
5614 (mov<mode>cc): Likewise.
5615 (movdfcc): Likewise.
5616 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
5617 SFDF2 iterators to handle all combinations.
5618 (fseldfsf4): Likewise.
5619 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
5620 (fseldfdf4): Likewise.
5621 (fselsfdf4): Likewise.
5622 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
5623 comparison instructions that set a 0/-1 mask, and use it for
5624 floating point conditional move via XXSEL.
5625 (fpmask<mode>): Likewise.
5626 (xxsel<mode>): Likewise.
5627 * config/rs6000/predicates.md (min_max_operator): Delete, no
5629 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
5630 instructions that generate a 0/-1 mask for use with XXSEL.
5631 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
5632 say whether floating point min/max is available, either through
5633 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
5634 (TARGET_MINMAX_DF): Likewise.
5636 2016-05-27 Alan Modra <amodra@gmail.com>
5638 PR rtl-optimization/71275
5639 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
5640 for update_equiv_regs and combine_and_move_insns.
5642 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
5644 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
5645 if_then_else or cond RTXes to calculate attribute value.
5646 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
5647 <attr "length_immediate>: Ditto.
5648 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
5649 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
5650 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
5651 <attr "type">: Ditto.
5652 <attr "prefix_data16">: Ditto.
5653 <attr "prefix_extra">: Ditto.
5654 <attr "length_immediate">: Ditto.
5655 <attr "prefix">: Ditto.
5656 (vec_set<mode>_0) <attr "isa">: Ditto.
5657 <attr "prefix_extra">: Ditto.
5658 <attr "length_immediate">: Ditto.
5659 <attr "prefix">: Ditto.
5660 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
5661 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
5662 (sse2_storelpd) <attr "prefix_data16">: Ditto.
5663 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
5664 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
5665 <attr "length_immediate">: Ditto.
5666 <attr "prefix">: Ditto.
5667 (sse2_movsd) <attr "length_immediate">: Ditto.
5668 <attr "prefix">: Ditto.
5669 (vec_concatv2df) <attr "isa">: Ditto.
5670 <attr "prefix">: Ditto.
5671 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
5672 (*vec_extractv2di_1) <attr "isa">: Ditto.
5673 <attr "type">: Ditto.
5674 <attr "length_immediate">: Ditto.
5675 <attr "prefix_rex">: Ditto.
5676 <attr "prefix_extra">: Ditto.
5677 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
5678 <attr "prefix_extra">: Ditto.
5679 <attr "length_immediate">: Ditto.
5680 (vec_concatv2di) <attr "isa">: Ditto.
5681 <attr "prefix_extra">: Ditto.
5682 <attr "length_immediate">: Ditto.
5683 <attr "prefix">: Ditto.
5685 2016-05-26 Martin Liska <mliska@suse.cz>
5687 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
5689 (operator+): Likewise.
5690 (operator-): Likewise.
5691 (comp_cost::operator+=): Likewise.
5692 (comp_cost::operator-=): Likewise.
5693 (comp_cost::operator/=): Likewise.
5694 (comp_cost::operator*=): Likewise.
5695 (operator<): Likewise.
5696 (operator==): Likewise.
5697 (operator<=): Likewise.
5699 (infinite_cost_p): Likewise.
5700 (add_costs): Likewise.
5701 (sub_costs): Likewise.
5702 (compare_costs): Likewise.
5703 (set_group_iv_cost): Use the newly introduced functions.
5704 (get_address_cost): Likewise.
5705 (get_shiftadd_cost): Likewise.
5706 (force_expr_to_var_cost): Likewise.
5707 (split_address_cost): Likewise.
5708 (ptr_difference_cost): Likewise.
5709 (difference_cost): Likewise.
5710 (get_computation_cost_at): Likewise.
5711 (determine_group_iv_cost_generic): Likewise.
5712 (determine_group_iv_cost_address): Likewise.
5713 (determine_group_iv_cost_cond): Likewise.
5714 (autoinc_possible_for_pair): Likewise.
5715 (determine_group_iv_costs): Likewise.
5716 (cheaper_cost_pair): Likewise.
5717 (iv_ca_recount_cost): Likewise.
5718 (iv_ca_set_no_cp): Likewise.
5719 (iv_ca_set_cp): Likewise.
5720 (iv_ca_cost): Likewise.
5721 (iv_ca_new): Likewise.
5722 (iv_ca_dump): Likewise.
5723 (iv_ca_narrow): Likewise.
5724 (iv_ca_prune): Likewise.
5725 (iv_ca_replace): Likewise.
5726 (try_add_cand_for): Likewise.
5727 (try_improve_iv_set): Likewise.
5728 (find_optimal_iv_set): Likewise.
5730 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
5732 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
5733 that internal functions will clobber all caller-saved registers.
5735 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
5737 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
5738 Return a better case_values_threshold when optimizing.
5740 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
5742 * config/aarch64/aarch64-simd.md (aarch64_combinez):
5743 Add ? to integer variant.
5744 (aarch64_combinez_be): Likewise.
5746 2016-05-26 Jakub Jelinek <jakub@redhat.com>
5748 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
5749 instead of x constraint.
5750 (vcvtps2ph256<mask_name>): Likewise.
5752 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
5753 alternative. Formatting fix.
5755 * config/i386/sse.md
5756 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
5758 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
5759 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
5760 maybe_evex prefix instead of vex.
5761 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
5762 EXT_REX_SSE_REG_P (op0) case in the splitter.
5764 2016-05-25 Jeff Law <law@redhat.com>
5766 PR tree-optimization/71272
5767 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
5768 Update comments. Add test for empty path.
5770 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
5772 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
5773 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
5774 special case builtin.
5775 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
5776 code for ALTIVEC_BUILTIN_VEC_CMPNE.
5777 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
5778 for __builtin_vec_cmpne.
5780 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
5782 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
5783 redundant test and bail out if the type of the new operand is not
5784 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
5786 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
5788 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
5789 (x_ix86_target_flags_explicit): Remove.
5790 * config/i386/i386.c (ix86_function_specific_save): Do not copy
5791 x_ix86_target_flags_explicit.
5792 (ix86_function_specific_restore): Ditto.
5794 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
5795 H.J. Lu <hongjiu.lu@intel.com>
5798 * common/config/i386/i386-common.c
5799 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
5800 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
5801 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
5802 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
5803 (-mgeneral-regs-only): Add new option.
5804 * config/i386/i386.c (ix86_option_override_internal): Don't enable
5805 x87 instructions if only general registers are allowed.
5806 (ix86_target_string): Add ix86_flags argument. Handle additional
5807 flags options through ix86_flags argument. Update all callers.
5808 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
5810 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5812 PR rtl-optimization/66940
5813 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
5814 decrementing desired_val will not overflow before performing these
5817 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
5819 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
5820 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
5821 * config/i386/i386.c (enum ix86_builtins): Add
5822 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
5823 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
5824 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
5825 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
5826 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
5827 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
5828 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
5829 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
5830 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
5831 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
5832 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
5833 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
5834 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
5835 __builtin_ia32_cvtps2dq512_mask.
5836 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
5837 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
5838 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
5839 * config/i386/sse.md
5840 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
5842 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
5843 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
5845 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
5846 (avx512f_vec_pack_sfix_v8df): New define_expand.
5847 (avx512f_roundpd512): Rename to ...
5848 (avx512f_round<castmode>512): ... this. Change iterator.
5849 (avx512f_roundps512_sfix): New define_expand.
5850 (round<mode>2_sfix): Change iterator.
5852 2016-05-25 Nick Clifton <nickc@redhat.com>
5854 * config/msp430/msp430.c (msp430_attr): Produce an error if a
5855 static interrupt handler is detected.
5856 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
5857 default linker script.
5858 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
5859 the low part of a symbolic pointer.
5861 2016-05-25 Richard Biener <rguenther@suse.de>
5863 PR tree-optimization/71261
5864 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
5865 interesting stmt instead of immediate uses when looking
5866 for the use operand to replace.
5868 2016-05-25 Martin Liska <mliska@suse.cz>
5870 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
5872 2016-05-25 Richard Biener <rguenther@suse.de>
5874 PR tree-optimization/71264
5875 * tree-vect-stmts.c (vect_init_vector): Properly deal with
5878 2016-05-25 Martin Liska <mliska@suse.cz>
5880 PR tree-optimization/71239
5881 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
5882 if DECL_SIZE is NULL.
5884 2016-05-25 Richard Biener <rguenther@suse.de>
5886 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
5887 * tree-if-conv.c (pass_data_if_conversion): Use it.
5889 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
5891 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
5892 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
5893 * varpool.c (varpool_node::get_availability): Likewise.
5895 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
5897 * config/rs6000/altivec.md (VNEG iterator): New iterator for
5898 VNEGW/VNEGD instructions.
5899 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
5900 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
5901 support for ISA 3.0 VNEGW/VNEGD instructions.
5903 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
5905 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
5906 pointers inside OACC_DATA regions.
5907 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
5908 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
5909 (gimplify_adjust_omp_clauses): Fix typo in comment.
5911 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
5913 * config/rs6000/altivec.md (VParity): New mode iterator for vector
5914 parity built-in functions.
5915 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
5917 (p9v_parity<mode>2): Likewise.
5918 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
5920 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
5921 (parity<mode>2): ISA 3.0 expander for vector parity.
5922 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
5924 (BU_P9_64BIT_MISC_0): Likewise.
5925 (BU_P9_MISC_0): Likewise.
5926 (BU_P9V_AV_1): Likewise.
5927 (BU_P9V_AV_2): Likewise.
5928 (BU_P9V_AV_3): Likewise.
5929 (BU_P9V_AV_P): Likewise.
5930 (BU_P9V_VSX_1): Likewise.
5931 (BU_P9V_OVERLOAD_1): Likewise.
5932 (BU_P9V_OVERLOAD_2): Likewise.
5933 (BU_P9V_OVERLOAD_3): Likewise.
5934 (VCTZB): Add vector count trailing zeros support.
5938 (VPRTYBD): Add vector parity support.
5939 (VPRTYBQ): Likewise.
5940 (VPRTYBW): Likewise.
5941 (VCTZ): Add overloaded vector count trailing zeros support.
5942 (VPRTYB): Add overloaded vector parity support.
5943 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5944 overloaded vector count trailing zeros and parity instructions.
5945 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
5946 vector parity support.
5947 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
5948 trailing zeros support.
5949 (vec_cntlz): Likewise.
5950 (vec_vctzb): Likewise.
5951 (vec_vctzd): Likewise.
5952 (vec_vctzh): Likewise.
5953 (vec_vctzw): Likewise.
5954 (vec_vprtyb): Add ISA 3.0 vector parity support.
5955 (vec_vprtybd): Likewise.
5956 (vec_vprtybw): Likewise.
5957 (vec_vprtybq): Likewise.
5958 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5959 the ISA 3.0 vector count trailing zeros and vector parity built-in
5962 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
5964 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
5965 when there is stmt_to_insert.
5967 2016-05-24 Martin Sebor <msebor@redhat.com>
5970 * tree.h (complete_or_array_type_p): New inline function.
5972 2016-05-24 Jakub Jelinek <jakub@redhat.com>
5974 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
5975 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
5976 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
5978 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
5979 Limit 1st alternative to noavx isa, split 2nd alternative into one
5980 noavx and one avx alternative, use *x and Bm in the former and
5981 x and m in the latter.
5983 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
5984 of sse4 for the first alternative, drop %v from the template
5985 and d operand modifier. Split second alternative into one sse4_noavx
5986 and one avx alternative, use *x instead of *v in the former and v
5987 instead of *v in the latter.
5988 (*sse4_1_extractps): Use noavx isa instead of * for the first
5989 alternative, drop %v from the template. Split second alternative into
5990 one noavx and one avx alternative, use *x instead of *v in the
5991 former and v instead of *v in the latter.
5992 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
5993 with noavx and the last one with avx.
5994 (sse4_1_phminposuw): Guard first alternative with noavx isa,
5995 split the second one into one noavx and one avx alternative,
5996 use *x and Bm in the former and x and m in the latter one.
5997 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
6000 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
6001 first two alternatives to noavx, use *x instead of *v in the second
6002 one, add avx alternative without *.
6003 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
6004 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
6005 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
6007 2016-05-24 Jeff Law <law@redhat.com>
6009 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
6010 New function, extracted from...
6011 (fsm_find_control_statement_thread_paths): Here. Use the new function.
6012 Allow simple copies and constant initializations in the SSA chain.
6014 2016-05-24 Marek Polacek <polacek@redhat.com>
6017 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
6020 2016-05-24 Jakub Jelinek <jakub@redhat.com>
6023 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
6024 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
6025 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
6026 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
6027 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
6029 2016-05-24 Richard Biener <rguenther@suse.de>
6031 PR tree-optimization/71240
6032 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
6035 2016-05-24 Richard Biener <rguenther@suse.de>
6037 PR tree-optimization/71230
6038 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
6040 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
6042 * tree-vectorizer.h (vectorizable_comparison): Delete.
6043 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
6044 PURE_SLP_STMT check.
6045 * tree-vect-stmts.c (vectorizable_call): Likewise.
6046 (vectorizable_simd_clone_call): Likewise.
6047 (vectorizable_conversion): Likewise.
6048 (vectorizable_assignment): Likewise.
6049 (vectorizable_shift): Likewise.
6050 (vectorizable_operation): Likewise.
6051 (vectorizable_load): Likewise.
6052 (vectorizable_condition): Likewise.
6053 (vectorizable_store): Likewise. Assert that we don't have
6055 (vectorizable_comparison): Make static. Remove redundant
6056 PURE_SLP_STMT check.
6057 (vect_transform_stmt): Assert that we always have an slp_node
6060 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6062 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
6063 operands[2] against 1 with comparison against CONST1_RTX.
6064 (<shift>di3_neon): Likewise.
6065 * config/arm/predicates.md (const0_operand): Replace with comparison
6068 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6070 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
6071 operands[2] against 1 with comparison against CONST1_RTX.
6072 (ashrdi3): Likewise.
6073 (lshrdi3): Likewise.
6074 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
6076 (ashrsi3): Likewise.
6077 (lshrsi3): Likewise.
6078 (rotrsi3): Likewise.
6079 (define_split above *compareqi_eq0): Likewise.
6080 (define_split above "prologue"): Likewise.
6081 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
6082 * config/arm/predicates.md (shift_operator): Likewise.
6083 (shift_nomul_operator): Likewise.
6084 (sat_shift_operator): Likewise.
6085 (thumb1_cmp_operand): Likewise.
6086 (const_neon_scalar_shift_amount_operand): Replace manual range
6087 check with IN_RANGE.
6088 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
6089 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
6091 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6093 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
6094 with HOST_WIDE_INT_1.
6096 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
6097 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
6098 (arm_canonicalize_comparison): Likewise.
6099 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
6101 (thumb1_size_rtx_costs): Likewise.
6102 (vfp_const_double_index): Replace cast of 1 to unsigned
6103 HOST_WIDE_INT with HOST_WIDE_INT_1U.
6104 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
6106 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
6107 HOST_WIDE_INT with HOST_WIDE_INT_1U.
6108 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
6109 HOST_WIDE_INT with HOST_WIDE_INT_1.
6111 2016-05-24 Marek Polacek <polacek@redhat.com>
6113 * tree-cfg.h (should_remove_lhs_p): New predicate.
6114 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
6115 * gimplify.c (gimplify_modify_expr): Likewise.
6116 * tree-cfg.c (verify_gimple_call): Likewise.
6117 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
6118 * gimple-fold.c: Include "tree-cfg.h".
6119 (gimple_fold_call): Use should_remove_lhs_p.
6121 2016-05-24 Richard Biener <rguenther@suse.de>
6123 PR tree-optimization/71253
6124 * cfganal.h (control_dependences): Make robust against edge
6126 (control_dependences::control_dependences): Remove edge_list argument.
6127 (control_dependences::get_edge): Remove.
6128 (control_dependences::get_edge_src): Add.
6129 (control_dependences::get_edge_dest): Likewise.
6130 (control_dependences::m_el): Make a vector of edge src/dest index.
6131 * cfganal.c (control_dependences::find_control_dependence): Adjust.
6132 (control_dependences::control_dependences): Likewise.
6133 (control_dependences::~control_dependence): Likewise.
6134 (control_dependences::get_edge): Remove.
6135 (control_dependences::get_edge_src): Add.
6136 (control_dependences::get_edge_dest): Likewise.
6137 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
6139 (perform_tree_ssa_dce): Adjust.
6140 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
6142 (pass_loop_distribution::execute): Adjust. Do loop destroying
6143 conditional on changed.
6145 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6148 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
6149 return. Reindent transformation comment and mention the ARM state
6152 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
6155 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
6156 after build_and_add_sum creates new use stmt.
6158 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
6160 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
6161 load_lanes/grouped_load classification comes first. Don't check
6162 whether the vectorization factor is a multiple of the group size
6165 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
6167 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
6168 GROUP_GAP for single-element interleaving.
6169 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
6172 2016-05-24 Richard Biener <rguenther@suse.de>
6176 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
6177 bases which are accessed with non-invariant indices.
6178 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
6179 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
6181 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
6184 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
6185 (add_to_ops_vec): Add stmt_to_insert.
6186 (add_repeat_to_ops_vec): Init stmt_to_insert.
6187 (insert_stmt_before_use): New.
6188 (transform_add_to_multiply): Remove mult_stmt insertion and add it
6190 (get_ops): Init stmt_to_insert.
6191 (maybe_optimize_range_tests): Likewise.
6192 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
6193 (rewrite_expr_tree_parallel): Likewise.
6194 (reassociate_bb): Likewise.
6196 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6199 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
6200 ISA 3.0 xxperm fusion alternative.
6201 (altivec_vperm_v8hiv16qi): Likewise.
6202 (altivec_vperm_<mode>_uns_internal): Likewise.
6203 (vperm_v8hiv4si): Likewise.
6204 (vperm_v16qiv8hi): Likewise.
6206 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6207 Kelvin Nilsen <kelvin@gcc.gnu.org>
6209 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
6210 vpermr/xxpermr on ISA 3.0.
6211 (altivec_expand_vec_perm_le): Likewise.
6212 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
6213 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
6216 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
6218 * config/i386/i386.h (IS_STACK_MODE): Enable for
6219 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
6220 SSE_FLOAT_MODE_P macros.
6221 * config/i386/i386.c (ix86_preferred_reload_class): Use
6222 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
6223 Cleanup regclass processing for CONST_DOUBLE_P.
6224 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
6225 (ix86_rtx_costs): Remove redundant TARGET_80387 check
6226 with IS_STACK_MODE macro.
6227 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
6229 (*movdf_internal): Use IS_STACK_MODE macro.
6230 (*movsf_internal): Ditto.
6232 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
6234 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
6235 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
6237 2016-05-23 Jeff Law <law@redhat.com>
6239 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
6241 (fsm_find_control_statement_thread_paths): Call it.
6243 2016-05-23 Martin Jambor <mjambor@suse.cz>
6246 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
6247 from_global_constant if t is not NULL.
6249 2016-05-23 Marek Polacek <polacek@redhat.com>
6252 * common.opt (Wswitch-unreachable): New option.
6253 * doc/invoke.texi: Document -Wswitch-unreachable.
6254 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
6257 2016-05-23 Bin Cheng <bin.cheng@arm.com>
6259 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
6260 TMR_INDEX is non-NULL.
6262 2016-05-23 Richard Biener <rguenther@suse.de>
6264 PR tree-optimization/71230
6265 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
6266 (try_special_add_to_ops): ... here. Always test for single-use.
6268 2016-05-23 Martin Jambor <mjambor@suse.cz>
6270 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
6271 default block if a PHI node in the original one would be resized.
6273 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
6275 PR tree-optimization/58135
6276 * tree-vect-slp.c: When group size is not multiple
6277 of vector size, allow splitting of store group at
6280 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
6282 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
6284 2016-05-22 Jakub Jelinek <jakub@redhat.com>
6286 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
6287 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
6288 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
6291 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
6292 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
6293 v constraint instead of x and vinserti32x4 insn.
6295 * config/i386/sse.md (i128vldq): New mode iterator.
6296 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
6297 avx512dq and avx512vl alternatives.
6299 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
6300 constraint, use maybe_evex prefix instead of vex.
6301 (vec_dupv4sf): Use v constraint instead of x for output
6302 operand except for noavx alternative, use Yv constraint
6303 instead of x for input. Use maybe_evex prefix instead of vex.
6304 (*vec_dupv4si): Likewise.
6305 (*vec_dupv2di): Likewise.
6307 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
6310 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
6311 (linearize_expr_tree): Call try_special_add_to_ops.
6312 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
6314 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6316 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
6317 to computed stack_usage.
6319 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
6322 * config/avr/avr.md (define_expand "mov<mode>"): If the source
6323 operand is subreg (symbol_ref) then move the symbol ref to register.
6325 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
6327 * tree.c (array_at_struct_end_p): Look through MEM_REF.
6329 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
6332 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
6335 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
6337 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
6338 ranges by calling get_single_symbol and tidy up. Look more closely
6339 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
6341 2016-05-20 Jeff Law <law@redhat.com>
6343 * bitmap.c (bitmap_find_bit): Remove useless test.
6345 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
6347 * function.c (thread_prologue_and_epilogue_insns): Commit the
6348 insertion of the epilogue.
6350 2016-05-20 Martin Jambor <mjambor@suse.cz>
6352 PR tree-optimization/70884
6353 * tree-sra.c (initialize_constant_pool_replacements): Do not check
6354 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
6355 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
6356 of constant pool data as a reason for scalarization.
6358 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
6360 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
6361 for naked functions.
6362 (thumb1_expand_prologue): Likewise.
6364 2016-05-20 Nathan Sidwell <nathan@acm.org>
6366 * config/nvptx/nptx.c (nvptx_option_override): Only set
6367 flag_toplevel_reorder, if not explicitly specified. Set
6368 flag_no_common, unless explicitly specified.
6370 2016-05-20 David Malcolm <dmalcolm@redhat.com>
6372 * calls.c (can_implement_as_sibling_call_p): Mark param
6373 reg_parm_stack_space with ATTRIBUTE_UNUSED.
6375 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
6377 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
6378 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
6379 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
6381 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
6382 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
6385 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
6387 * config/nvptx/nvptx.md (sincossf3): New pattern.
6389 2016-05-20 David Malcolm <dmalcolm@redhat.com>
6391 * calls.c (maybe_complain_about_tail_call): New function.
6392 (initialize_argument_information): Call
6393 maybe_complain_about_tail_call when clearing *may_tailcall.
6394 (can_implement_as_sibling_call_p): Call
6395 maybe_complain_about_tail_call when returning false.
6396 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
6397 ensure try_tail_call is set. Call maybe_complain_about_tail_call
6398 if tail-call optimization fails.
6399 * cfgexpand.c (expand_call_stmt): Initialize
6400 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
6401 * gimple-pretty-print.c (dump_gimple_call): Dump
6402 gimple_call_must_tail_p.
6403 * gimple.c (gimple_build_call_from_tree): Call
6404 gimple_call_set_must_tail with the value of
6405 CALL_EXPR_MUST_TAIL_CALL.
6406 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
6407 (gimple_call_set_must_tail): New function.
6408 (gimple_call_must_tail_p): New function.
6409 * print-tree.c (print_node): Update printing of TREE_STATIC
6410 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
6411 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
6412 trailing comment listing applicable flags.
6413 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
6415 2016-05-20 David Malcolm <dmalcolm@redhat.com>
6417 * calls.c (expand_call): Move "Rest of purposes for tail call
6418 optimizations to fail" to...
6419 (can_implement_as_sibling_call_p): ...this new function, and
6420 split into multiple "if" statements.
6422 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
6424 * cfgloop.h (expected_loop_iterations_unbounded,
6425 expected_loop_iterations): Unconstify.
6426 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
6427 profile with known upper bound; return 3 when profile is absent.
6428 (expected_loop_iterations): Update.
6430 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
6432 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
6433 and get_max_loop_iterations_int.
6435 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
6437 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
6438 realistic upper bounds here.
6440 2016-05-20 Jakub Jelinek <jakub@redhat.com>
6443 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
6444 calls if the LHS is variable length or has addressable type.
6445 If targets[0]->decl is a noreturn call with void return type and
6446 zero arguments, adjust fntype and remove lhs in that case.
6448 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
6450 PR tree-optimization/71079
6451 PR tree-optimization/71206
6452 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
6454 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6456 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
6457 (get_vec_alignment_for_array_decl): Likewise.
6458 (get_vec_alignment_for_record_decl): Likewise.
6459 (increase_alignment::execute): Move code to find alignment to
6460 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
6461 (type_align_map): New hash_map.
6463 2016-05-20 Richard Guenther <rguenther@suse.de>
6465 PR tree-optimization/29756
6466 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
6467 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
6468 * fold-const.c (operand_equal_p): Likewise.
6469 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
6470 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
6471 * tree-inline.c (estimate_operator_cost): Likewise.
6472 * tree-pretty-print.c (dump_generic_node): Likewise.
6473 * tree-ssa-operands.c (get_expr_operands): Likewise.
6474 * cfgexpand.c (expand_debug_expr): Likewise.
6475 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
6476 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
6477 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
6478 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
6479 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
6480 (execute_update_addresses_taken): Do it.
6482 2016-05-20 Richard Biener <rguenther@suse.de>
6484 PR tree-optimization/71185
6485 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
6486 register operations.
6488 2016-05-20 Richard Biener <rguenther@suse.de>
6490 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
6491 gimple_seq_add_seq_without_update.
6492 (release_bb_predicate): Assert we have no operands to free.
6493 (if_convertible_loop_p_1): Calculate post dominators later.
6494 Do not free BB predicates here.
6495 (combine_blocks): Do not recompute BB predicates.
6496 (version_loop_for_if_conversion): Save BB predicates around
6499 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
6501 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
6502 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
6503 code. Ignore sibcalls on EDGE_IGNORE edges.
6504 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
6505 on edges for sibcalls that run without prologue. The rest of the
6506 function is combined from...
6507 (fix_fake_fallthrough_edge): ... this, and ...
6508 (try_shrink_wrapping): ... a part of this. Remove the bb_with
6509 function argument, make it a local variable.
6511 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
6513 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
6514 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
6515 for 32-bit mode and SEH for 64-bit.
6516 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
6517 TARGET_64BIT_DEFAULT.
6519 2016-05-19 Ryan Burn <contact@rnburn.com>
6521 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
6522 * gengtype.c (open_base_files): Add cilk.h to ifiles.
6524 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
6526 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
6527 force pending loads from memory.
6529 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
6531 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
6532 (UNSPEC_DARN_32): New unspec constant.
6533 (UNSPEC_DARN_RAW): New unspec constant.
6534 (darn_32): New instruction.
6535 (darn_raw): New instruction.
6536 (darn): New instruction.
6537 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
6538 support and documentation for this macro.
6539 (BU_P9_MISC_1): New macro definition.
6540 (BU_P9_64BIT_MISC_0): New macro definition.
6541 (BU_P9_MISC_0): New macro definition.
6542 (darn_32): New builtin definition.
6543 (darn_raw): New builtin definition.
6544 (darn): New builtin definition.
6545 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
6546 RS6000_BUILTIN_0 directives to surround each occurrence of
6547 #include "rs6000-builtin.def".
6548 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
6549 RS6000_BTM_64BIT flags to the returned mask, depending on
6551 (def_builtin): Correct an error in the assignments made to the
6552 debugging variable attr_string.
6553 (rs6000_expand_builtin): Add support for no-operand built-in
6555 (builtin_function_type): Remove fatal_error assertion that is no
6557 (rs6000_common_init_builtins): Add support for no-operand built-in
6559 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
6561 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
6563 (RS6000_BTM_64BIT): New macro definition.
6564 * doc/extend.texi: Document __builtin_darn (void),
6565 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
6568 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
6570 * tree-vect-loop.c (vect_analyze_loop_2): Use also
6571 max_loop_iterations_int.
6573 2016-05-19 Marek Polacek <polacek@redhat.com>
6575 PR tree-optimization/71031
6576 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
6577 condition and adjust the code a bit.
6579 2016-05-19 Martin Liska <mliska@suse.cz>
6581 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
6582 auto_vec instead of vec.
6584 2016-05-19 Martin Liska <mliska@suse.cz>
6586 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
6588 2016-05-19 Martin Liska <mliska@suse.cz>
6590 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
6592 2016-05-19 Martin Liska <mliska@suse.cz>
6594 * ipa-pure-const.c (set_function_state): Remove an existing
6596 (remove_node_data): Do not free it as it's released
6597 in set_function_state.
6599 2016-05-19 Martin Liska <mliska@suse.cz>
6601 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
6604 2016-05-19 Martin Liska <mliska@suse.cz>
6606 * omp-simd-clone.c (simd_clone_adjust): Release vector.
6608 2016-05-19 Martin Liska <mliska@suse.cz>
6610 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
6611 an auto_vec instead of re-creating it.
6613 2016-05-19 Martin Liska <mliska@suse.cz>
6615 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
6616 auto_vec instead of vec.
6618 2016-05-19 Martin Liska <mliska@suse.cz>
6620 * lto-section-in.c (lto_get_section_data): Call
6621 lto_check_version with additional argument.
6622 * lto-streamer.c (lto_check_version): Add new argument.
6623 * lto-streamer.h (lto_check_version): Likewise.
6625 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6627 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
6628 Don't add cost of inner memory when handling sign-extended loads.
6630 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
6632 PR rtl-optimization/71148
6633 * cse.c (cse_main): Free dominance info.
6634 (rest_of_handle_cse): Don't free dominance info.
6635 (rest_of_handle_cse2): Likewise.
6636 (rest_of_handle_cse_after_global_opts): Likewise.
6638 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6641 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
6642 NULL_TREE early if NEON is not available. Remove now redundant check
6643 in ARM_CHECK_BUILTIN_MODE.
6645 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
6648 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
6649 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
6650 * doc/cpp.texi: Document new macros.
6652 2016-05-19 Bin Cheng <bin.cheng@arm.com>
6654 PR tree-optimization/69848
6655 * tree-vect-loop.c (vectorizable_reduction): Don't factor
6656 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
6658 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
6660 * function.c (thread_prologue_and_epilogue_insn): Move the
6661 "goto epilogue_done" one block later.
6663 2016-05-19 Richard Biener <rguenther@suse.de>
6665 PR tree-optimization/70729
6666 * passes.def: Move LIM pass before PRE. Remove no longer
6667 required copyprop and move first DCE out of the loop pipeline.
6669 2016-05-18 David Malcolm <dmalcolm@redhat.com>
6672 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
6673 (OBJS-libcommon-target): ...here.
6674 * opts-common.c: Include spellcheck.h.
6675 (cmdline_handle_error): Build a vec of valid options and use it
6676 to suggest provide hints for misspelled arguments.
6678 2016-05-18 Jakub Jelinek <jakub@redhat.com>
6681 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
6682 lhs if it has TREE_ADDRESSABLE type.
6684 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
6687 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
6688 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
6690 2016-05-18 Martin Jambor <mjambor@suse.cz>
6693 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
6694 input for NOP_EXPR pass-through functions.
6695 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
6696 aggregate global constant VAR_DECLs in constant jump functions.
6698 2016-05-18 Martin Jambor <mjambor@suse.cz>
6701 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
6702 from TREE_READONLY parameters.
6704 2016-05-18 Martin Jambor <mjambor@suse.cz>
6707 * cgraph.h (cgraph_indirect_call_info): New field
6708 guaranteed_unmodified.
6709 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
6710 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
6712 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
6713 pass the parameter value to ipa_find_agg_cst_for_param.
6714 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
6715 guaranteed_unmodified, store AA results there instead of bailing out
6717 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
6718 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
6719 (find_constructor_constant_at_offset): New function.
6720 (ipa_find_agg_cst_from_init): Likewise.
6721 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
6722 static initializers of contants, report back through a new paameter
6723 from_global_constant if that was the case.
6724 (try_make_edge_direct_simple_call): Also pass parameter value to
6725 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
6727 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
6728 (ipa_read_indirect_edge_info): Likewise.
6729 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
6730 (ipa_load_from_parm_agg): Likewise.
6732 2016-05-18 Jiong Wang <jiong.wang@arm.com>
6734 PR rtl-optimization/71150
6735 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
6738 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
6741 * config/rs6000/constraints.md (wE constraint): New constraint
6742 for a vector constant that can be loaded with XXSPLTIB.
6743 (wM constraint): New constraint for a vector constant of a 1's.
6744 (wS constraint): New constraint for a vector constant that can be
6745 loaded with XXSPLTIB and a vector sign extend instruction.
6746 * config/rs6000/predicates.md (xxspltib_constant_split): New
6747 predicates for wE/wS constraints.
6748 (xxspltib_constant_nosplit): Likewise.
6749 (easy_vector_constant): Add support for constants that can be
6750 loaded via XXSPLTIB.
6751 (all_ones_constant): New predicate for vector constant with all
6753 (splat_input_operand): Add support for ISA 3.0 word splat operations.
6754 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
6755 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
6756 instruction and possibly with a sign extension.
6757 (output_vec_const_move): Add support for XXSPLTIB. If we are
6758 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
6759 instead of XXLXOR/XXLORC.
6760 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
6762 (rs6000_legitimize_reload_address): Likewise.
6763 (rs6000_output_move_128bit): Use output_vec_const_move to emit
6765 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
6766 combine VSX_M and VSX_M2 into one iterator.
6768 (VSINT_84): New iterators for loading constants with XXSPLTIB.
6769 (VSINT_842): Likewise.
6770 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
6771 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
6772 XXSPLTIB instruction.
6773 (xxspltib_<mode>_nosplit): Likewise.
6774 (xxspltib_<mode>_split): New insn to load up constants with
6775 XXSPLTIB and a sign extend instruction.
6776 (vsx_mov<mode>): Replace single move that handled all vector types
6777 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
6778 moves (when -mvsx-timode is in effect) into the main vector
6779 moves. Eliminate separate moves for <VSr> <VSa>, where the
6780 preferred register class (<VSr>) is listed first, and the
6781 secondary register class (<VSa>) is listed second with a '?' to
6782 discourage use. Prefer loading 0/-1 in any VSX register for ISA
6783 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
6784 that if the register was involved in a slow operation, the
6785 clear/set operation does not wait for the slow operation to
6786 finish. Adjust the length attributes for 32-bit mode. Use
6787 rs6000_output_move_128bit and drop the use of the string
6788 instructions for 32-bit movti when -mvsx-timode is in effect. Use
6789 spacing so that the alternatives and attributes don't generate
6790 long lines, and put things in columns, so that it is easier to
6791 match up the operands and attributes with the insn alternatives.
6792 (vsx_mov<mode>_64bit): Likewise.
6793 (vsx_mov<mode>_32bit): Likewise.
6794 (vsx_movti_64bit): Fold movti into normal vector moves.
6795 (vsx_movti_32bit): Likewise.
6796 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
6798 (vsx_splat_v4si_internal): Likewise.
6799 (vsx_splat_v4sf_internal): Likewise.
6800 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
6801 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
6802 extend vector elements.
6803 (vsx_sign_extend_hi_<mode>): Likewise.
6804 (vsx_sign_extend_si_v2di): Likewise.
6805 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
6807 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
6808 constraints. Add trailing period to wL documentation.
6810 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
6813 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
6814 * tree-dfa.c (replace_abnormal_ssa_names): New function.
6815 * tree-call-cdce.c: Include tree-dfa.h.
6816 (can_guard_call_p): New function, extracted from...
6817 (can_use_internal_fn): ...here.
6818 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
6820 (shrink_wrap_one_built_in_call): Likewise.
6821 (use_internal_fn): Likewise.
6822 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
6823 and return void. Call replace_abnormal_ssa_names.
6824 (pass_call_cdce::execute): Check can_guard_call_p during the
6825 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
6826 will always change something.
6828 2016-05-18 Martin Jambor <mjambor@suse.cz>
6831 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
6832 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
6834 2016-05-18 Martin Jambor <mjambor@suse.cz>
6837 * ipa-inline.h (condition): New field size.
6838 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
6839 for comaprison and store it into the new condition.
6840 (evaluate_conditions_for_known_args): Use condition size to check
6841 access sizes for all but CHANGED conditions.
6842 (unmodified_parm_1): New parameter size_p, store access size into it.
6843 (unmodified_parm): Likewise.
6844 (unmodified_parm_or_parm_agg_item): Likewise.
6845 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
6846 (set_cond_stmt_execution_predicate): Extract access sizes and store
6848 (set_switch_stmt_execution_predicate): Likewise.
6849 (will_be_nonconstant_expr_predicate): Likewise.
6850 (will_be_nonconstant_predicate): Likewise.
6851 (inline_read_section): Stream condition size.
6852 (inline_write_summary): Likewise.
6854 2016-05-18 Richard Biener <rguenther@suse.de>
6856 * tree-ssa-loop-im.c (determine_max_movement): Properly add
6857 condition cost to PHI cost instead of total_cost.
6859 2016-05-18 Martin Liska <mliska@suse.cz>
6862 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
6865 2016-05-18 Richard Biener <rguenther@suse.de>
6867 * lto-streamer.h (LTO_major_version): Bump to 6.
6869 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
6871 * function.c (make_split_prologue_seq, make_prologue_seq,
6872 make_epilogue_seq): New functions, factored out from...
6873 (thread_prologue_and_epilogue_insns): Here.
6875 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
6877 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
6878 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
6879 of before. Add a comment.
6881 2016-05-18 Bin Cheng <bin.cheng@arm.com>
6883 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
6884 expression pointer, not pointer to the pointer.
6886 2016-05-18 Jakub Jelinek <jakub@redhat.com>
6888 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
6889 (avx2_pbroadcast<mode>): Add another alternative with v instead
6890 of x constraints in it, using <pbroadcast_evex_isa> isa.
6891 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
6893 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
6894 constraint x instead of v in second alternative, add avx512bw
6897 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
6898 constraint x instead of v in second alternative, add avx512bw
6901 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
6902 constraint x instead of v in second alternative, add avx512bw
6905 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
6906 avx512bw alternative.
6908 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
6910 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
6912 (define_insn "*andnottf3"): Ditto.
6913 (define_insn "*<code><mode>3"/any_logic): Ditto.
6914 (define_insn "*<code>tf3"/any_logic): Ditto.
6915 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
6916 operand to block AVX-512VL insn variant emit when it is not enabled.
6918 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
6920 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
6921 constraint fot SF mode.
6923 2016-05-18 Petr Murzin <petr.murzin@intel.com>
6924 Kirill Yukhin <kirill.yukhin@intel.com>
6926 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
6928 (define_insn "rsqrt14<mode>"): Ditto.
6929 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
6930 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
6931 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
6932 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
6933 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
6935 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
6936 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
6937 * config/i386/i386.c (ix86_print_operand): Expand check for size
6938 override codes for Intel syntax.
6940 2016-05-18 Richard Biener <rguenther@suse.de>
6942 PR tree-optimization/71168
6943 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
6944 initialization earlier.
6946 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
6948 * config/aarch64/aarch64-simd.md
6949 (aarch64_reduc_plus_internal<mode>): Rename to...
6950 (reduc_plus_scal): ...This, and remove previous implementation.
6952 2016-05-18 Richard Biener <rguenther@suse.de>
6954 * passes.def: Put late dse and cd_dce in canonical order.
6956 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
6958 * ipa-inline-transform.c (preserve_function_body_p): Look for
6959 first non-thunk clone.
6960 (save_function_body): Save into first non-thunk.
6961 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
6963 (lto_output_node): Inline thunks don't need body in every
6965 * lto-streamer-in.c: Do not fixup thunk clones.
6966 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
6968 * tree-inline.c (copy_bb): Be prepared for target node to be new after
6971 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
6974 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
6975 (reassociate_bb): Call transform_add_to_multiply.
6977 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
6979 * config/aarch64/aarch64.c (all_extensions): Removed unused
6982 2016-05-17 Nathan Sidwell <nathan@acm.org>
6984 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
6985 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
6987 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
6989 PR tree-optimization/54579
6991 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
6993 2016-05-17 Marek Polacek <polacek@redhat.com>
6996 * tree-inline.c (expand_call_inline): Call
6997 maybe_remove_unused_call_args.
6999 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
7001 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
7002 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
7003 * doc/md.texi (fmin@var{m}3): Likewise.
7005 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
7007 * match.pd (X & C): New transformation.
7009 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
7011 * match.pd (~X & Y): New transformation.
7013 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
7015 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
7016 information for new SSA_NAME.
7017 (simplify_conversion_using_ranges): Get range through get_range_info
7018 instead of get_value_range.
7020 2016-05-17 Jiong Wang <jiong.wang@arm.com>
7022 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
7023 Remove inline assembly.
7024 (vmvn_s16): Likewise.
7025 (vmvn_s32): Likewise.
7026 (vmvn_u8): Likewise.
7027 (vmvn_u16): Likewise.
7028 (vmvn_u32): Likewise.
7029 (vmvnq_s8): Likewise.
7030 (vmvnq_s16): Likewise.
7031 (vmvnq_s32): Likewise.
7032 (vmvnq_u8): Likewise.
7033 (vmvnq_u16): Likewise.
7034 (vmvnq_u32): Likewise.
7035 (vmvn_p8): Likewise.
7036 (vmvnq_p16): Likewise.
7038 2016-05-17 Jiong Wang <jiong.wang@arm.com>
7040 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
7042 (vmul_n_s16): Likewise.
7043 (vmul_n_s32): Likewise.
7044 (vmul_n_u16): Likewise.
7045 (vmul_n_u32): Likewise.
7046 (vmulq_n_f32): Likewise.
7047 (vmulq_n_f64): Likewise.
7048 (vmulq_n_s16): Likewise.
7049 (vmulq_n_s32): Likewise.
7050 (vmulq_n_u16): Likewise.
7051 (vmulq_n_u32): Likewise.
7053 2016-05-17 Jiong Wang <jiong.wang@arm.com>
7055 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
7056 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
7058 2016-05-17 Jiong Wang <jiong.wang@arm.com>
7060 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
7061 to *aarch64_fma4_elt_from_dup<mode>.
7062 (*aarch64_fnma4_elt_to_128df): Rename to
7063 *aarch64_fnma4_elt_from_dup<mode>.
7064 * config/aarch64/arm_neon.h (vfma_n_f64): New.
7065 (vfms_n_f32): Likewise.
7066 (vfms_n_f64): Likewise.
7067 (vfmsq_n_f32): Likewise.
7068 (vfmsq_n_f64): Likewise.
7070 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
7072 * wide-int.h: Change fixed_wide_int_storage from class to struct.
7074 2016-05-17 Richard Biener <rguenther@suse.de>
7076 PR tree-optimization/71132
7077 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
7078 Only add control dependences for blocks in the loop.
7079 (build_rdg): Adjust.
7080 (generate_code_for_partition): Return whether loop should
7081 be destroyed and delay that.
7082 (distribute_loop): Likewise.
7083 (pass_loop_distribution::execute): Record loops to be destroyed
7084 and perform delayed destroying of loops.
7086 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7089 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
7091 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
7093 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
7095 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
7098 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
7099 insertion point for instructions generated by validize_mem.
7101 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
7103 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
7106 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
7108 * config/aarch64/aarch64.c
7109 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
7110 rather than a macro.
7112 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
7114 * doc/invoke.texi (AArch64 Options): Various updates.
7116 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
7118 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
7119 into instrumentation thunks.
7120 * cif-code.def (CIF_CHKP): New.
7122 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
7124 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
7126 2016-05-16 Martin Jambor <mjambor@suse.cz>
7128 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
7129 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
7131 2016-05-16 Marek Polacek <polacek@redhat.com>
7133 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
7136 2016-05-16 Martin Jambor <mjambor@suse.cz>
7139 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
7140 the outlined kernel function.
7142 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
7144 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
7145 (ISA_HAS_DLSA): Ditto.
7147 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
7149 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
7151 2016-05-16 Nathan Sidwell <nathan@acm.org>
7153 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
7154 (nvptx_name_replacement): Restore. Add comment.
7155 (write_fn_proto, write_fn_proto_from_insn,
7156 nvptx_output_call_insn): Restore
7157 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
7159 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
7161 * config/aarch64/aarch64.md
7162 (add<mode>3_compareC_cconly_imm): Remove use of %w.
7163 (add<mode>3_compareC_imm): Likewise.
7164 (<optab>si3_uxtw): Split into register and immediate variants.
7165 (andsi3_compare0_uxtw): Likewise.
7166 (and<mode>3_compare0): Likewise.
7167 (and<mode>3nr_compare0): Likewise.
7168 (stack_protect_test_<mode>): Don't use %x for memory operands.
7170 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
7172 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
7174 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
7176 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
7177 Split integer shifts into shift_reg and bfm.
7178 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
7179 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
7180 (ror<mode>3_insn): Likewise.
7181 (<optab>si3_insn_uxtw): Likewise.
7182 (<optab><mode>3_insn): Change to rotate_imm.
7183 (extr<mode>5_insn_alt): Likewise.
7184 (extrsi5_insn_uxtw): Likewise.
7185 (extrsi5_insn_uxtw_alt): Likewise.
7187 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
7189 * doc/tm.texi: Regenerate.
7190 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
7191 (TARGET_INVALID_RETURN_TYPE): Remove.
7192 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
7193 TARGET_INVALID_RETURN_TYPE.
7194 * target.def (invalid_parameter_type): Remove.
7195 (invalid_return_type): Remove.
7197 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
7199 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
7200 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
7202 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
7204 (preserve_function_body_p): No need to preserve function body
7205 * cif-codes.def (CIF_THUNK): Remove.
7206 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
7208 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
7210 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
7212 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
7214 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
7217 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
7219 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
7220 (inline_small_functions): Do not look for function symbol when
7223 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
7225 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
7228 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
7229 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7230 Jiong Wang <jiong.wang@arm.com>
7232 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
7233 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
7234 Define __ARM_FP16_ARGS when appropriate.
7235 * config/arm/arm.c (arm_invalid_parameter_type): Remove
7237 (arm_invalid_return_type): Likewise.
7238 (TARGET_INVALID_PARAMETER_TYPE): Remove.
7239 (TARGET_INVALID_RETURN_TYPE): Remove.
7240 (aapcs_vfp_sub_candidate): Allow HFmode.
7241 (aapcs_vfp_allocate): Add comment. Support HFmode.
7242 (aapcs_vfp_allocate_return_reg): Likewise.
7243 (struct aapcs_cp_arg_layout): Slightly reword comments for
7244 is_return_candidate and allocate_return_reg.
7245 (output_mov_vfp): Update assert.
7246 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
7248 (arm_invalid_parameter_type): Remove.
7249 (amr_invalid_return_type): Remove.
7250 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
7251 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
7252 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
7254 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
7256 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
7257 * config/aarch64/arch64-protos.h
7258 (aarch64_legitimize_reload_address): Remove.
7259 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
7262 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
7264 * configure.ac: Add ACX_NONCANONICAL_HOST.
7265 * configure: Regenerate.
7266 * Makefile.in: Set host_noncanonical.
7268 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
7271 * config/i386/i386.md (*movtf_internal): Before register allocation,
7272 do not allow FP constants for CM_MEDIUM memory model, allow only
7273 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
7274 (*movxf_internal): Ditto.
7275 (*movdf_internal): Ditto.
7276 (*movsf_internal): Ditto.
7278 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
7280 PR rtl-optimization/67483
7281 * combine.c (make_compound_operation): Don't call extract_left_shift
7282 with negative shift amounts.
7284 2016-05-13 Jakub Jelinek <jakub@redhat.com>
7287 * fold-const.c (fold_checksum_tree): Allow modification
7288 of TYPE_ALIAS_SET during folding.
7290 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
7291 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
7292 (ix86_split_to_parts): Likewise. Fix up formatting.
7294 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
7296 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
7297 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
7300 2016-05-13 Nathan Sidwell <nathan@acm.org>
7302 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
7303 (nvptx_name_replacement): Delete.
7304 (write_fn_proto, write_fn_proto_from_insn,
7305 nvptx_output_call_insn): Remove nvptx_name_replacement call.
7306 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
7307 * langhooks.c (add_builtin_funcction_common): Call
7308 targetm.mangle_decl_assembler_name.
7310 * config/nvptx/nvptx.c (write_fn_proto): Handle
7311 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
7313 2016-05-13 Martin Liska <mliska@suse.cz>
7315 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
7316 and PRIu64 in printf format.
7318 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7320 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
7323 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7325 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
7326 Change --param max-completely-peeled-times to
7327 --param max-completely-peel-times in dump file printing.
7329 2016-05-13 Richard Biener <rguenther@suse.de>
7331 PR tree-optimization/42587
7332 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
7333 (find_bswap_or_nop_1): Likewise.
7334 (bswap_replace): Likewise.
7336 2016-05-13 Martin Liska <mliska@suse.cz>
7338 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
7339 Initialize a variable with default value.
7341 2016-05-13 Martin Liska <mliska@suse.cz>
7343 * doc/invoke.texi: Enhance explanation of error recovery
7346 2016-05-13 Martin Liska <mliska@suse.cz>
7348 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
7349 (struct cost_pair): Change inv_expr_id (int) to inv_expr
7350 (iv_inv_expr_ent *).
7351 (struct iv_inv_expr_ent): Comment struct fields.
7352 (sort_iv_inv_expr_ent): New function.
7353 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
7354 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
7355 a hash_map between iv_inv_expr_ent and number of usages.
7356 (niter_for_exit): Fix coding style.
7357 (tree_ssa_iv_optimize_init): Use renamed variable.
7358 (determine_base_object): Fix coding style.
7359 (alloc_iv): Likewise.
7360 (find_interesting_uses_outside): Likewise.
7361 (add_candidate_1): Likewise.
7362 (add_standard_iv_candidates): Likewise.
7363 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
7364 (prepare_decl_rtl): Fix coding style.
7365 (get_address_cost): Likewise.
7366 (get_shiftadd_cost): Likewise.
7367 (force_expr_to_var_cost): Likewise.
7368 (compare_aff_trees): Likewise.
7369 (get_expr_id): Restructure the function.
7370 (get_loop_invariant_expr_id): Renamed to
7371 get_loop_invariant_expr.
7372 (get_computation_cost_at): Replace usage of inv_expr_id with
7374 (get_computation_cost): Likewise.
7375 (determine_group_iv_cost_generic): Likewise.
7376 (determine_group_iv_cost_address): Likewise.
7377 (iv_period): Fix coding style.
7378 (iv_elimination_compare_lt): Likewise.
7379 (may_eliminate_iv): Likewise.
7380 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
7382 (determine_group_iv_costs): Dump invariant expressions.
7383 (iv_ca_recount_cost): Use the newly added hash_map.
7384 (iv_ca_set_remove_invariants): Fix coding style.
7385 (iv_ca_set_add_invariants): Fix coding style.
7386 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
7388 (iv_ca_set_cp): Likewise.
7389 (iv_ca_new): Initialize the newly added hash_map and remove
7390 initialization of fields.
7391 (iv_ca_free): Delete the hash_map.
7392 (iv_ca_dump): Dump invariant expressions.
7393 (iv_ca_extend): Fix coding style.
7394 (try_add_cand_for): Likewise.
7395 (create_new_ivs): Dump information about # of avg iterations and
7396 # of used invariant expressions.
7397 (rewrite_use_compare): Fix coding style.
7398 (free_loop_data): Set default value for max_inv_expr_id.
7400 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
7402 * cse.c (rest_of_handle_cse): Use cleanup_cfg
7403 returned value cse_cfg_altered computation.
7404 (rest_of_handle_cse2): Likewise.
7405 (rest_of_handle_cse_after_global_opts): Likewise.
7407 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7410 * config/arm/arm.c (arm32_output_mi_thunk): New.
7411 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
7412 to split Thumb1 vs TARGET_32BIT functionality.
7413 (arm_thumb1_mi_thunk): New.
7415 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7417 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
7420 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7423 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
7425 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
7427 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
7428 (expand_builtin_trap): Emit a regular call.
7429 (set_builtin_user_assembler_name): Remove obsolete cases.
7430 * dse.c (scan_insn): Adjust.
7431 * except.c: Include calls.h.
7432 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
7433 emit a regular call to setjmp.
7434 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
7435 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
7436 (emit_block_move_via_libcall): Delete.
7437 (block_move_fn): Delete.
7438 (init_block_move_fn): Likewise.
7439 (emit_block_move_libcall_fn): Likewise.
7440 (emit_block_op_via_libcall): New function.
7441 (set_storage_via_libcall): Tidy up and use memset builtin.
7442 (block_clear_fn): Delete.
7443 (init_block_clear_fn): Likewise.
7444 (clear_storage_libcall_fn): Likewise.
7445 (expand_assignment): Call emit_block_move_via_libcall.
7446 Do not include gt-expr.h.
7447 * expr.h (emit_block_op_via_libcall): Declare.
7448 (emit_block_copy_via_libcall): New inline function.
7449 (emit_block_move_via_libcall): Likewise.
7450 (emit_block_comp_via_libcall): Likewise.
7451 (block_clear_fn): Delete.
7452 (init_block_move_fn): Likewise.
7453 (init_block_clear_fn): Likewise.
7454 (emit_block_move_via_libcall): Likewise.
7455 (set_storage_via_libcall): Add default parameter value.
7456 * libfuncs.h (enum libfunc_index): Remove obsolete values.
7457 (abort_libfunc): Delete.
7458 (memcpy_libfunc): Likewise.
7459 (memmove_libfunc): Likewise.
7460 (memcmp_libfunc): Likewise.
7461 (memset_libfunc): Likewise.
7462 (setbits_libfunc): Likewise.
7463 (setjmp_libfunc): Likewise.
7464 (longjmp_libfunc): Likewise.
7465 (profile_function_entry_libfunc): Likewise.
7466 (profile_function_exit_libfunc): Likewise.
7467 (gcov_flush_libfunc): Likewise.
7468 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
7469 and DECL_VISIBILITY on the declaration.
7470 (init_optabs): Do not initialize obsolete libfuncs.
7471 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
7472 * tree-core.h (ECF_RET1): Define.
7473 (ECF_TM_PURE): Adjust.
7474 (ECF_TM_BUILTIN): Likewise.
7475 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
7476 (build_common_builtin_nodes): Initialize abort builtin.
7477 Add ECF_RET1 on memcpy, memmove and memset builtins.
7478 Pass final flags for alloca and alloca_with_align builtins.
7479 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
7481 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
7482 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
7483 set_storage_via_libcall and call emit_block_copy_via_libcall.
7485 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
7487 * config/i386/i386.md (*call_got_x32): Change operand 0 to
7488 DImode before it is passed to ix86_output_call_operand.
7489 (*call_value_got_x32): Ditto for operand 1.
7491 2016-05-12 Jiong Wang <jiong.wang@arm.com>
7493 PR rtl-optimization/70904
7494 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
7495 reload for wide mode.
7497 2016-05-12 Marek Polacek <polacek@redhat.com>
7500 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
7501 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
7502 * langhooks.h (incomplete_type_error): Likewise.
7503 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
7504 parameter, pass it down to incomplete_type_error.
7505 * tree.h (size_in_bytes): New inline overload.
7506 (size_in_bytes_loc): Renamed from size_in_bytes.
7508 2016-05-12 Richard Biener <rguenther@suse.de>
7510 PR tree-optimization/71059
7511 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
7512 nary before looking up or entering the expression into the VN
7514 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
7515 Make sure to re-use NARYs without result as inserted by
7518 2016-05-12 Richard Biener <rguenther@suse.de>
7520 PR tree-optimization/71062
7521 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
7523 * tree-ssa-structalias.c (set_uids_in_ptset): Set
7524 vars_contains_restrict if the var is a restrict tag.
7525 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
7526 do not disambiguate pointers against it.
7527 (dump_points_to_solution): Re-structure and adjust for new
7528 vars_contains_restrict flag.
7529 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
7531 2016-05-12 Martin Liska <mliska@suse.cz>
7533 * doc/invoke.texi: Explain connection between
7534 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
7536 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
7538 PR tree-optimization/71006
7539 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
7540 consider COND_EXPR as a mask producer.
7542 2016-05-12 Marek Polacek <polacek@redhat.com>
7545 * opts.c (common_handle_option): Detect missing argument for --help^.
7547 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7550 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
7551 when popping the PC and within an interrupt handler routine.
7552 Add missing tab to output of "ldmfd".
7553 (output_return_instruction): Output LDMFD with SP update rather
7554 than POP when returning from interrupt handler.
7556 2016-05-12 Jakub Jelinek <jakub@redhat.com>
7558 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
7559 TARGET_64BIT && TARGET_AVX512DQ.
7560 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
7561 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
7562 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
7563 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
7564 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
7565 (*vec_extractv4si_zext): Add avx512dq alternative.
7566 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
7567 use v instead of x constraint in other alternatives where possible.
7569 * config/i386/sse.md (sse2_loadld): Use v instead of x
7570 constraint in alternatives 0,1,4.
7572 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
7573 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
7574 v constraints instead of x and <pinsr_evex_isa> isa attribute.
7577 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
7578 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
7579 is not emitted unless TARGET_AVX512BW.
7580 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
7581 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
7582 for the result operand.
7584 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
7585 constraint instead of x in avx alternatives. Use maybe_evex instead
7588 * config/i386/constraints.md (Yv): New constraint.
7589 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
7590 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
7591 * config/i386/i386.md (avx512fvecmode): New mode attr.
7592 (*pushtf): Use v constraint instead of x.
7593 (*movtf_internal): Likewise. For TARGET_AVX512VL and
7594 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
7595 (*absneg<mode>2): Use Yv constraint instead of x constraint.
7596 (*absnegtf2_sse): Likewise.
7597 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
7598 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
7599 avx512f alternatives.
7600 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
7602 2016-05-12 Richard Biener <rguenther@suse.de>
7604 PR tree-optimization/71060
7605 * tree-data-ref.c (initialize_data_dependence_relation): Do not
7606 require exact match of DR_BASE_OBJECT but only matching address and
7609 2016-05-12 Richard Biener <rguenther@suse.de>
7611 PR tree-optimization/70986
7612 * cfganal.c: Include cfgloop.h.
7613 (dfs_find_deadend): Prefer to take edges exiting loops.
7615 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7617 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
7618 compile and run time.
7620 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
7623 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
7625 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
7627 * config/i386/i386.c (legitimize_pic_address): Use
7628 copy_to_suggested_reg instead of gen_movsi.
7630 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7632 * config/rs6000/predicates.md (quad_memory_operand): Move most of
7633 the code into quad_address_p and call it to share code with
7634 vsx_quad_dform_memory_operand.
7635 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
7637 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
7638 bit instead of being a separate word. Split -mpower9-dform into
7639 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
7640 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
7641 for the register class supporting 128-bit quad word memory offsets.
7642 (mode_supports_vsx_dform_quad): Helper function to return if the
7643 register class uses quad word memory offsets.
7644 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
7645 (rs6000_debug_reg_global): Always print if we are using LRA or not.
7646 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
7647 instructions are enabled, set up the appropriate addr_masks for
7649 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
7650 -mpower9-dform-scalar, instead of -mpower9-dform.
7651 (rs6000_option_override_internal): Split -mpower9-dform into two
7652 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
7653 -mpower9-dform switch sets or clears both. If we are not using
7654 the LRA register allocator, do not enable -mpower9-dform-vector by
7655 default. If we are using LRA, enable -mpower9-dform-vector and
7656 -mvsx-timode if it is appropriate. Issue a warning if either
7657 -mpower9-dform-vector or -mvsx-timode are explicitly used without
7659 (quad_address_offset_p): New helper function to return if the
7660 offset is legal for quad word memory instructions.
7661 (quad_address_p): New function to determin if GPR or vector
7662 register quad word memory addresses are legal.
7663 (mem_operand_gpr): Validate quad word address offsets.
7664 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
7665 d-form (register + offset) instructions.
7666 (offsettable_ok_by_alignment): Likewise.
7667 (rs6000_legitimate_offset_address_p): Likewise.
7668 (legitimate_lo_sum_address_p): Likewise.
7669 (rs6000_legitimize_address): Likewise.
7670 (rs6000_legitimize_reload_address): Add more debug statements for
7672 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
7673 d-form instructions.
7674 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
7675 d-form instructions. Distinguish different cases in debug
7676 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
7677 d-form instructions.
7678 (rs6000_preferred_reload_class): Likewise.
7679 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
7680 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
7681 of the ISA 2.06 indexed memory instructions.
7682 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
7683 use them to save/restore the saved vector registers instead of
7684 using Altivec instructions.
7685 (rs6000_emit_epilogue): Likewise.
7686 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
7687 (rs6000_opt_masks): Split -mpower9-dform into
7688 -mpower9-dform-scalar and -mpower9-dform-vector.
7689 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
7691 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
7692 ISA 3.0 vector indexed memory instructions, and fold the code into
7693 the normal mov<mode> patterns.
7694 (p9_vecstore_<mode>): Likewise.
7695 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
7697 (vsx_movti_64bit): Likewise.
7698 (vsx_movti_32bit): Likewise.
7699 * config/rs6000/constraints.md (wO constraint): New constraint for
7700 ISA 3.0 vector d-form support.
7701 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
7702 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
7703 include -mpower9-dform-vector until we switch over to LRA.
7704 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
7705 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
7706 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
7707 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7708 for -mpower9-dform and -mlra.
7709 * doc/md.texi (wO constraint): Document wO constraint.
7711 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
7713 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
7714 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
7715 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
7716 Move handling of non-insn arguments inline into the sole user:
7717 (output_trans_func): ...here.
7718 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
7719 in emitted function prototype.
7720 (output_internal_insn_latency_func): Ditto. Simplify.
7721 (output_internal_maximal_insn_latency_func): Ditto. Delete
7722 always-unused argument.
7723 (output_insn_latency_func): Ditto.
7724 (output_maximal_insn_latency_func): Ditto.
7726 2016-05-11 Richard Biener <rguenther@suse.de>
7728 PR tree-optimization/71055
7729 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
7730 sth with precision not equal to access size verify we don't chop
7733 2016-05-11 Richard Biener <rguenther@suse.de>
7736 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
7737 (dwarf2out_finish): Move retry_incomplete_types call ...
7738 (dwarf2out_early_finish): ... here.
7740 2016-05-11 Richard Biener <rguenther@suse.de>
7743 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
7744 if the langhook insists on it.
7745 * fold-const.c (make_bit_field_ref): Add arg for the original
7746 reference and preserve its alias-set.
7747 (decode_field_reference): Take exp by reference and adjust it
7748 to the original memory reference.
7749 (optimize_bit_field_compare): Adjust callers.
7750 (fold_truth_andor_1): Likewise.
7751 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
7753 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
7756 * cfgrtl.h (delete_insn_and_edges): Now return bool.
7757 * cfgrtl.c (delete_insn_and_edges): Likewise.
7758 * config/i386/i386.c (convert_scalars_to_vector): Remove
7760 * cse.c (cse_insn): Compute cse_cfg_altered.
7761 (delete_trivially_dead_insns): Likewise.
7762 (cse_cc_succs): Likewise.
7763 (rest_of_handle_cse): Free dominance info if required.
7764 (rest_of_handle_cse2): Likewise.
7765 (rest_of_handle_cse_after_global_opts): Likewise.
7767 2016-05-11 Alan Modra <amodra@gmail.com>
7769 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
7770 abi_v4_pass_in_fpr): New functions.
7771 (rs6000_function_arg_boundary): Exclude complex IBM long double
7772 from 64-bit alignment when ABI_V4.
7773 (rs6000_function_arg, rs6000_function_arg_advance_1,
7774 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
7776 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
7778 PR rtl-optimization/71028
7779 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
7780 jump with just a return in the fallthrough block if the branch
7781 block contains just a return as well.
7783 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
7785 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
7786 * match.pd ((X & Y) ^ Y): ... this.
7787 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
7788 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
7790 2016-05-10 David Malcolm <dmalcolm@redhat.com>
7792 * read-md.c (require_char_ws): New function.
7793 (read_string): Simplify using require_char_ws.
7794 (handle_constants): Likewise.
7795 (handle_enum): Likewise.
7796 (handle_file): Likewise.
7797 * read-md.h (require_char_ws): New declaration.
7798 * read-rtl.c (read_conditions): Simplify using require_char_ws.
7799 (read_mapping): Likewise.
7800 (read_rtx_code): Likewise.
7801 (read_nested_rtx): Likewise.
7803 2016-05-10 James Norris <jnorris@codesourcery.com>
7805 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
7806 if offloading is enabled and -fopenacc or -fopenmp is specified.
7807 (CRTOFFLOADEND): Likewise.
7808 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
7809 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
7811 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
7813 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
7814 gotoff_operand code paths. Use copy_to_suggested_regs and
7815 expand_simple_binop where appropriate. Cleanup.
7817 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
7820 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
7822 (dimode_scalar_chain::vector_const_cost): New.
7823 (dimode_scalar_chain::compute_convert_gain): Handle constants.
7824 (dimode_scalar_chain::convert_op): Likewise.
7825 (dimode_scalar_chain::convert_insn): Likewise.
7827 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
7829 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
7830 unary operation, not a binary one.
7832 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
7835 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
7836 calls with type casted fndecl.
7838 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
7840 PR tree-optimization/70786
7841 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
7842 * calls.c (initialize_argument_information): Bind bounds
7843 with corresponding args passed by reference.
7845 2016-05-10 Jakub Jelinek <jakub@redhat.com>
7848 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
7849 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
7850 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
7853 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7856 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
7857 code for a zero scale factor.
7858 (vsx_xvcvdpuxds_scale): Likewise.
7860 2016-05-10 David Malcolm <dmalcolm@redhat.com>
7862 * diagnostic-show-locus.c (layout::layout): Call show_ruler
7863 if show_ruler_p was set on the context.
7864 (layout::show_ruler): New method.
7865 * diagnostic.h (struct diagnostic_context): Add field
7868 2016-05-10 Richard Biener <rguenther@suse.de>
7870 PR tree-optimization/71039
7871 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
7872 (chk_uses): New function.
7873 (propagate_with_phi): Verify we can safely replicate the lhs of an
7874 aggregate assignment on all incoming edges.
7876 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
7878 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
7880 (rx_atomic_sequence): New class.
7881 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
7882 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
7884 (rx_atomic_sequence::rx_atomic_sequence,
7885 rx_atomic_sequence::~rx_atomic_sequence): New functions.
7886 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
7887 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
7888 CTRLREG_INTB): New constants.
7889 (FETCHOP): New code iterator.
7890 (fethcop_name, fetchop_name2): New iterator code attributes.
7891 (QIHI): New mode iterator.
7892 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
7893 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
7894 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
7896 2016-05-10 Martin Liska <mliska@suse.cz>
7898 * tree-inline.c (remap_dependence_clique): Do not remap
7899 debugging statements.
7901 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7903 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
7904 ("*fixuns_truncdfdi2_z13")
7905 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
7906 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
7907 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
7909 2016-05-10 Richard Biener <rguenther@suse.de>
7911 PR tree-optimization/70497
7912 PR tree-optimization/28367
7913 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
7915 (visit_reference_op_load): ... here.
7916 (vn_reference_lookup_3): Use it to handle subreg-like accesses
7917 with simplified BIT_FIELD_REFs.
7918 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
7919 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
7922 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
7924 * dwarf2out.c (add_abstract_origin_attribute): Adjust
7925 documentation comment. For BLOCK nodes, add a
7926 DW_AT_abstract_origin attribute that points to the DIE generated
7927 for the origin BLOCK.
7928 (gen_lexical_block_die): Call add_abstract_origin_attribute for
7929 blocks from inlined functions.
7931 2016-05-10 Alan Modra <amodra@gmail.com>
7934 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
7935 regrename modifying insns saving lr before __morestack call.
7936 * config/rs6000/rs6000.md (split_stack_return): Similarly for
7937 insns restoring lr after __morestack call.
7939 2016-05-09 Jakub Jelinek <jakub@redhat.com>
7941 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
7942 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
7944 * config/i386/sse.md (vec_interleave_high<mode>,
7945 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
7946 <avx512>_vpermt2var<mode>3_maskz): Likewise.
7948 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
7950 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
7951 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
7952 parallel reassociation for power8 and forward.
7954 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
7956 * config/i386/i386.md (absneg splitters with general regs): Use
7957 general_reg_operand predicate.
7958 (btsq peephole2): Use x86_64_immediate_operand to check if new
7959 value is suitable for immediate operand. Generate emitted insn
7960 using RTL expressions.
7961 (btcq peephole2): Ditto.
7962 (btrq peephole2): Ditto. Generate correct immediate operand
7965 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
7967 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
7970 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
7972 * tree-affine.c (wide_int_constant_multiple_p): Add missing
7973 pointer dereference.
7975 2016-05-09 Richard Biener <rguenther@suse.de>
7977 PR tree-optimization/70985
7978 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
7979 op0 isn't a gimple register.
7981 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
7983 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
7984 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
7985 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
7986 (i6400_fpu_mult): New cpu units.
7987 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
7988 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
7989 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
7990 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
7991 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
7992 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
7993 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
7994 (i6400_msa_long_float4, i6400_msa_long_float5)
7995 (i6400_msa_long_float8, i6400_msa_fdiv_df)
7996 (i6400_msa_fdiv_sf): New reservations.
7997 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
7998 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
7999 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
8000 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
8001 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
8002 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
8003 (msa_short_cmp, msa_short_float2, msa_short_logic3)
8004 (msa_short_store4, msa_long_load, msa_short_store)
8005 (msa_long_logic, msa_long_float2, msa_long_float4)
8006 (msa_long_float5, msa_long_float8, msa_long_mult)
8007 (msa_long_fdiv, msa_long_div): New reservations.
8009 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
8010 Sameera Deshpande <sameera.deshpande@imgtec.com>
8011 Matthew Fortune <matthew.fortune@imgtec.com>
8012 Graham Stott <graham.stott@imgtec.com>
8013 Chao-ying Fu <chao-ying.fu@imgtec.com>
8015 * config.gcc: Add MSA header file for mips*-*-* target.
8016 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
8017 (Ubv8i, Urv8): New constraints.
8018 * config/mips/mips-ftypes.def: Add function types for MSA
8020 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
8021 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
8022 * config/mips/mips-msa.md: New file.
8023 * config/mips/mips-protos.h
8024 (mips_split_128bit_const_insns): New prototype.
8025 (mips_msa_idiv_insns): Likewise.
8026 (mips_split_128bit_move): Likewise.
8027 (mips_split_128bit_move_p): Likewise.
8028 (mips_split_msa_copy_d): Likewise.
8029 (mips_split_msa_insert_d): Likewise.
8030 (mips_split_msa_fill_d): Likewise.
8031 (mips_expand_msa_branch): Likewise.
8032 (mips_const_vector_same_val_p): Likewise.
8033 (mips_const_vector_same_bytes_p): Likewise.
8034 (mips_const_vector_same_int_p): Likewise.
8035 (mips_const_vector_shuffle_set_p): Likewise.
8036 (mips_const_vector_bitimm_set_p): Likewise.
8037 (mips_const_vector_bitimm_clr_p): Likewise.
8038 (mips_msa_vec_parallel_const_half): Likewise.
8039 (mips_msa_output_division): Likewise.
8040 (mips_ldst_scaled_shift): Likewise.
8041 (mips_expand_vec_cond_expr): Likewise.
8042 * config/mips/mips.c (enum mips_builtin_type): Add
8043 MIPS_BUILTIN_MSA_TEST_BRANCH.
8044 (mips_gen_const_int_vector_shuffle): New prototype.
8045 (mips_const_vector_bitimm_set_p): New function.
8046 (mips_const_vector_bitimm_clr_p): Likewise.
8047 (mips_const_vector_same_val_p): Likewise.
8048 (mips_const_vector_same_bytes_p): Likewise.
8049 (mips_const_vector_same_int_p): Likewise.
8050 (mips_const_vector_shuffle_set_p): Likewise.
8051 (mips_symbol_insns): Forbid loading symbols via immediate for
8053 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
8055 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
8057 (mips_lx_address_p): Add support load indexed address for MSA.
8058 (mips_address_insns): Add calculation of instructions needed for
8059 stores and loads for MSA.
8060 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
8061 CONST_VECTOR for MSA and let it fall through.
8062 (mips_ldst_scaled_shift): New function.
8063 (mips_subword_at_byte): Likewise.
8064 (mips_msa_idiv_insns): Likewise.
8065 (mips_legitimize_move): Validate MSA moves.
8066 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
8067 calculation of costs for MSA division.
8068 (mips_split_move_p): Check if MSA moves need splitting.
8069 (mips_split_move): Split MSA moves if necessary.
8070 (mips_split_128bit_move_p): New function.
8071 (mips_split_128bit_move): Likewise.
8072 (mips_split_msa_copy_d): Likewise.
8073 (mips_split_msa_insert_d): Likewise.
8074 (mips_split_msa_fill_d): Likewise.
8075 (mips_output_move): Handle MSA moves.
8076 (mips_expand_msa_branch): New function.
8077 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
8078 Reinstate 'y' modifier.
8079 (mips_file_start): Add MSA .gnu_attribute.
8080 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
8082 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
8083 (mips_class_max_nregs): Add register size for MSA supported mode.
8084 (mips_cannot_change_mode_class): Allow conversion between MSA
8085 vector modes and TImode.
8086 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
8088 (mips_secondary_reload_class): Force MSA loads/stores via memory.
8089 (mips_preferred_simd_mode): Add preffered modes for MSA.
8090 (mips_vector_mode_supported_p): Add MSA supported modes.
8091 (mips_autovectorize_vector_sizes): New function.
8092 (mips_msa_output_division): Likewise.
8093 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
8094 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
8095 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
8096 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
8097 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
8098 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
8099 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
8100 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
8101 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
8102 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
8103 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
8104 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
8105 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
8106 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
8107 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
8108 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
8109 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
8110 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
8111 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
8112 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
8113 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
8114 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
8115 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
8116 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
8117 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
8118 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
8119 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
8120 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
8121 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
8122 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
8123 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
8124 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
8125 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
8126 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
8127 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
8128 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
8129 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
8130 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
8131 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
8132 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
8133 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
8134 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
8135 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
8136 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
8137 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
8138 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
8139 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
8140 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
8141 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
8142 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
8143 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
8144 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
8145 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
8146 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
8147 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
8148 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
8149 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
8150 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
8151 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
8152 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
8153 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
8154 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
8155 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
8156 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
8157 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
8158 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
8159 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
8160 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
8161 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
8162 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
8163 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
8164 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
8165 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
8166 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
8167 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
8168 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
8169 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
8170 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
8171 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
8172 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
8173 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
8174 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
8175 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
8176 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
8177 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
8178 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
8179 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
8180 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
8181 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
8182 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
8183 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
8184 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
8185 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
8186 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
8187 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
8188 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
8189 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
8190 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
8191 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
8192 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
8193 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
8194 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
8195 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
8196 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
8197 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
8198 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
8199 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
8200 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
8201 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
8202 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
8203 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
8204 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
8205 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
8206 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
8207 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
8208 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
8209 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
8210 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
8211 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
8212 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
8213 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
8214 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
8215 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
8216 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
8217 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
8218 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
8219 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
8220 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
8221 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
8222 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
8223 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
8224 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
8225 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
8226 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
8227 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
8228 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
8229 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
8230 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
8231 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
8232 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
8233 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
8234 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
8235 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
8236 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
8237 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
8238 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
8239 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
8240 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
8241 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
8242 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
8243 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
8245 (mips_get_builtin_decl_index): New array.
8246 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
8247 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
8248 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
8249 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
8250 (mips_init_builtins): Initialize mips_get_builtin_decl_index
8252 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
8254 (mips_expand_builtin_insn): Prepare operands for
8255 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
8256 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
8257 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
8258 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
8259 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
8260 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
8261 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
8262 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
8263 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
8264 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
8265 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
8266 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
8267 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
8268 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
8269 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
8270 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
8271 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
8272 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
8273 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
8274 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
8275 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
8276 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
8277 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
8278 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
8279 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
8280 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
8281 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
8282 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
8283 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
8284 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
8285 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
8286 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
8287 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
8288 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
8289 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
8290 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
8291 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
8292 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
8293 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
8294 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
8295 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
8296 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
8297 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
8298 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
8299 These are set implicitly and an error is reported if overridden.
8300 (mips_expand_builtin_msa_test_branch): New function.
8301 (mips_expand_msa_shuffle): Likewise.
8302 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
8303 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
8304 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
8305 (mips_expand_vec_unpack): Add support for MSA.
8306 (mips_expand_vector_init): Likewise.
8307 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
8308 instead of const0_rtx.
8309 (mips_msa_vec_parallel_const_half): New function.
8310 (mips_gen_const_int_vector): Likewise.
8311 (mips_gen_const_int_vector_shuffle): Likewise.
8312 (mips_expand_msa_cmp): Likewise.
8313 (mips_expand_vec_cond_expr): Likewise.
8314 * config/mips/mips.h
8315 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
8316 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
8318 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
8319 (ISA_HAS_MSA): New macro.
8320 (UNITS_PER_MSA_REG): Likewise.
8321 (BITS_PER_MSA_REG): Likewise.
8322 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
8323 (MSA_REG_FIRST): New macro.
8324 (MSA_REG_LAST): Likewise.
8325 (MSA_REG_NUM): Likewise.
8326 (MSA_REG_P): Likewise.
8327 (MSA_REG_RTX_P): Likewise.
8328 (MSA_SUPPORTED_MODE_P): Likewise.
8329 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
8330 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
8331 * config/mips/mips.md: Include mips-msa.md.
8332 (alu_type): Add simd_add.
8333 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
8334 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
8335 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
8336 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
8337 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
8338 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
8339 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
8340 simd_move, simd_load, simd_store. Choose "multi" for moves
8342 (qword_mode): New attribute.
8343 (insn_count): Add instruction count for quad moves.
8344 Increase the count for MIPS SIMD division.
8345 (UNITMODE): Add UNITMODEs for vector types.
8346 (addsub): New code iterator.
8347 * config/mips/mips.opt (mmsa): New option.
8348 * config/mips/msa.h: New file.
8349 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
8351 * config/mips/mti-linux.h: Likewise.
8352 * config/mips/predicates.md
8353 (const_msa_branch_operand): New constraint.
8354 (const_uimm3_operand): Likewise.
8355 (const_uimm4_operand): Likewise.
8356 (const_uimm5_operand): Likewise.
8357 (const_uimm8_operand): Likewise.
8358 (const_imm5_operand): Likewise.
8359 (aq10b_operand): Likewise.
8360 (aq10h_operand): Likewise.
8361 (aq10w_operand): Likewise.
8362 (aq10d_operand): Likewise.
8363 (const_m1_operand): Likewise.
8364 (reg_or_m1_operand): Likewise.
8365 (const_exp_2_operand): Likewise.
8366 (const_exp_4_operand): Likewise.
8367 (const_exp_8_operand): Likewise.
8368 (const_exp_16_operand): Likewise.
8369 (const_vector_same_val_operand): Likewise.
8370 (const_vector_same_simm5_operand): Likewise.
8371 (const_vector_same_uimm5_operand): Likewise.
8372 (const_vector_same_uimm6_operand): Likewise.
8373 (const_vector_same_uimm8_operand): Likewise.
8374 (par_const_vector_shf_set_operand): Likewise.
8375 (reg_or_vector_same_val_operand): Likewise.
8376 (reg_or_vector_same_simm5_operand): Likewise.
8377 (reg_or_vector_same_uimm6_operand): Likewise.
8378 * doc/extend.texi (MIPS SIMD Architecture Functions): New
8380 * doc/invoke.texi (-mmsa): Document new option.
8382 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8384 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
8385 * configure: Regenerate.
8386 * config.in: Regenerate.
8387 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
8389 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
8390 (ENDFILE_VTV_SPEC): Define.
8392 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
8394 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
8395 registers in all interrupt handlers if necessary.
8396 (rl78_option_override): Add warning.
8397 (MUST_SAVE_MDUC_REGISTERS): New macro.
8398 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
8399 * config/rl78/rl78.c (check_mduc_usage): New function.
8400 (mduc_regs): New structure to hold MDUC register data.
8401 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
8402 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
8403 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
8404 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
8405 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
8406 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
8408 2016-05-09 Bin Cheng <bin.cheng@arm.com>
8410 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
8411 (tree-ssa-loop-niter.h): Ditto.
8412 (idx_within_array_bound, ref_within_array_bound): New functions.
8413 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
8414 Factor out check on writable base object to ...
8415 (base_object_writable): ... here.
8417 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8419 * config/arm/arm.md (probe_stack): Add modes to set source
8422 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
8424 * regrename.c (base_reg_class_for_rename): New static function.
8425 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
8427 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
8429 * cgraph.c (thunk_adjust): Export.
8430 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
8431 * cgraphunit.c (thunk_adjust): Export.
8432 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
8434 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
8436 * tree-inline.c (expand_call_inline): Expand thunks inline.
8438 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
8441 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
8442 (*sse2_vd_cvtss2sd): Ditto.
8443 * config/i386/i386.md
8444 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
8445 Generate *sse2_vd_cvtsd2ss pattern.
8446 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
8447 Generate *sse2_vd_cvtss2sd pattern.
8449 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
8451 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
8452 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
8455 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
8457 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
8458 * config/sh/sh.c: Define and declare variables on first use throughout
8460 (current_function_interrupt): Change to bool type.
8461 (frame_insn): Rename to emit_frame_insn and update users.
8462 (push_regs): Use bool for 'interrupt_handler' argument.
8463 (save_schedule_s): Remove.
8464 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
8465 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
8466 targetm.asm_out.unaligned_op.di.
8467 (gen_far_branch): Remove redundant forward declaration.
8468 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
8469 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
8470 (sh_set_return_address, sh_function_ok_for_sibcall,
8471 scavenge_reg): Update comments.
8472 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
8473 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
8474 (sh_attr_renesas_p): Remove unnecessary parentheses.
8475 (branch_dest): Simplify.
8476 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
8477 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
8478 (CUMULATIVE_ARGS): Change macro to typedef.
8479 (current_function_interrupt): Change to bool type.
8480 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
8481 Surround with __cplusplus ifdef.
8482 (sh_compare_op0, sh_compare_op1): Remove.
8483 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
8485 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
8487 * config/arm/arm.md: (arch): Add neon.
8488 (arch_enabled): Return yes for arch neon when TARGET_NEON.
8489 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
8490 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
8491 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
8492 attributes for alt renumbering. Mark alt 3 as non-predicable.
8493 (thumb2_movdf_vfp): Likewise.
8495 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
8497 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
8498 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
8499 (*andqi_1): Add preferred_for_speed attribute to disparage
8500 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
8501 (*<code>qi_1): Ditto.
8502 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
8503 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
8504 (*ashlqi3_1): Ditto.
8505 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
8506 Add preferred_for_size attribute to disparage alternative 0 and
8507 preferred_for_speed attribute to disparage alternative 1 for
8508 TARGET_PARTIAL_REG_STALL targets.
8510 2016-05-07 Tom de Vries <tom@codesourcery.com>
8512 PR tree-optimization/70956
8513 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
8516 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
8518 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
8519 * config/sh/sh.c (sh_cbranch_distance): Implement it.
8520 * config/sh/sh.md (branch_zero): Remove define_attr.
8521 (define_delay): Disable delay slot if branch distance is one insn.
8523 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
8525 * config/i386/i386.md (LEAMODE): New mode attribute.
8526 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
8527 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
8528 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
8529 operand 2 predicate.
8530 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
8531 (*lea<mode>_general_3): Ditto.
8532 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
8534 2016-05-06 Jakub Jelinek <jakub@redhat.com>
8536 * genmddump.c (main): Convert argv from char ** to const char **.
8538 2016-05-06 David Malcolm <dmalcolm@redhat.com>
8540 * coretypes.h (OVERRIDE): New macro.
8543 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
8545 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
8546 allow coalescing if the types are compatible.
8548 2016-05-06 David Malcolm <dmalcolm@redhat.com>
8550 * pass_manager.h (pass_manager::register_pass_name): New method.
8551 (pass_manager::get_pass_by_name): New method.
8552 (pass_manager::create_pass_tab): New method.
8553 (pass_manager::m_name_to_pass_map): New field.
8554 * passes.c (name_to_pass_map): Delete global in favor of field
8555 "m_name_to_pass_map" of pass_manager.
8556 (register_pass_name): Rename from a function to...
8557 (pass_manager::register_pass_name): ...this method, updating
8558 for renaming of global "name_to_pass_map" to field
8559 "m_name_to_pass_map".
8560 (create_pass_tab): Rename from a function to...
8561 (pass_manager::create_pass_tab): ...this method, updating
8562 for renaming of global "name_to_pass_map" to field.
8563 (get_pass_by_name): Rename from a function to...
8564 (pass_manager::get_pass_by_name): ...this method.
8565 (enable_disable_pass): Convert use of get_pass_by_name to
8566 a method call, locating the pass_manager singleton.
8568 2016-05-06 David Malcolm <dmalcolm@redhat.com>
8570 * genattr-common.c (main): Convert argv from char ** to const char **.
8571 * genattr.c (main): Likewise.
8572 * genattrtab.c (main): Likewise.
8573 * genautomata.c (initiate_automaton_gen): Likewise.
8575 * gencodes.c (main): Likewise.
8576 * genconditions.c (main): Likewise.
8577 * genconfig.c (main): Likewise.
8578 * genconstants.c (main): Likewise.
8579 * genemit.c (main): Likewise.
8580 * genenums.c (main): Likewise.
8581 * genextract.c (main): Likewise.
8582 * genflags.c (main): Likewise.
8583 * genmddeps.c (main): Likewise.
8584 * genopinit.c (main): Likewise.
8585 * genoutput.c (main): Likewise.
8586 * genpeep.c (main): Likewise.
8587 * genpreds.c (main): Likewise.
8588 * genrecog.c (main): Likewise.
8589 * gensupport.c (init_rtx_reader_args_cb): Likewise.
8590 (init_rtx_reader_args): Likewise.
8591 * gensupport.h (init_rtx_reader_args_cb): Likewise.
8592 (init_rtx_reader_args): Likewise.
8593 * gentarget-def.c (main): Likewise.
8594 * read-md.c (read_md_files): Likewise.
8595 * read-md.h (read_md_files): Likewise.
8597 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
8599 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
8600 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
8601 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
8602 Remove unused predicate.
8603 (register_and_not_fp_reg_operand): Ditto.
8605 2016-05-06 Martin Liska <mliska@suse.cz>
8607 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
8608 instead of vec as the vector is local to the function.
8610 2016-05-06 Jakub Jelinek <jakub@redhat.com>
8612 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
8613 avx512bw alternative.
8615 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
8616 before the ashr<mode>3 pattern.
8618 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
8619 v instead of x in vex or maybe_vex alternatives, use
8620 maybe_evex instead of vex in prefix.
8622 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
8623 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
8624 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
8625 in vex or maybe_vex alternatives, use maybe_evex instead of vex
8628 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
8629 v instead of x in vex or maybe_vex alternatives, use
8630 maybe_evex instead of vex in prefix.
8632 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
8633 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
8634 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
8635 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
8636 alternatives, use maybe_evex instead of vex in prefix.
8638 * config/i386/sse.md (vec_interleave_lowv4sf,
8639 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
8640 v instead of x in vex or maybe_vex alternatives, use
8641 maybe_evex instead of vex in prefix.
8643 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
8644 v instead of x in vex or maybe_vex alternatives, use
8645 maybe_evex instead of vex in prefix.
8647 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
8648 v constraint instead of x.
8650 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
8652 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
8653 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
8656 2016-05-06 Richard Biener <rguenther@suse.de>
8658 PR tree-optimization/70948
8659 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8660 Properly clobber all fields of va_list for __builtin_va_start.
8662 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
8665 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
8666 loop latch destination.
8668 2016-05-06 Martin Liska <mliska@suse.cz>
8670 * tree-ssa-uninit.c: Apply manual changes
8671 to the GNU coding style.
8672 (prune_uninit_phi_opnds): Rename from
8673 prune_uninit_phi_opnds_in_unrealizable_paths.
8675 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8677 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
8678 mspace): Remove deprecated options.
8679 * doc/invoke.texi (SH options): Remove -mspace.
8681 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8683 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
8685 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8687 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
8688 corresponding combine split pattern.
8690 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8693 * config/sh/predicates.md (long_displacement_mem_operand): New.
8694 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
8695 Add movi20, movi20s alternatives. Adjust length attribute for
8697 (movsi_ie): Allow for any FPU. Adjust length attribute for
8699 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
8700 attribute for alternatives.
8701 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
8702 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
8703 length attribute for alternatives.
8705 2016-05-06 Richard Biener <rguenther@suse.de>
8707 PR tree-optimization/70960
8708 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
8710 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8713 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
8714 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
8716 2016-05-06 Marek Polacek <polacek@redhat.com>
8719 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
8721 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8724 * config/sh/sh.md (*rotcr): Add another variant.
8726 2016-05-06 Richard Biener <rguenther@suse.de>
8729 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
8731 2016-05-06 Richard Biener <rguenther@suse.de>
8734 * fold-const.c (split_tree): Always convert to the original type
8737 2016-05-06 Richard Biener <rguenther@suse.de>
8739 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
8740 (fwprop_addr): Likewise.
8742 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
8745 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
8747 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
8748 * config/i386/i386.md (push mem splitter): Use find_constant_src in
8749 the splitter condition.
8750 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
8751 the splitter condition.
8752 (FP float_extend load splitter): Ditto.
8754 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
8756 * config/i386/i386.md (peehole2 patterns): Change true_regnum
8757 to REGNO in all peephole2 patterns.
8758 (post-reload splitters): Change true_regnum to REGNO in
8759 post-reload splitters.
8760 (zero_extend splitters): Use general_reg_operand and
8761 nonimmediate_gr_operand predicates.
8763 2016-05-05 Jakub Jelinek <jakub@redhat.com>
8765 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
8766 v constraint instead of x.
8768 2016-05-05 Alan Modra <amodra@gmail.com>
8771 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
8772 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
8773 TARGET_NO_FP_IN_TOC for -mrelocatable.
8774 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
8775 TARGET_RELOCATABLE test.
8776 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
8777 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
8778 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
8779 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
8780 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
8781 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
8782 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
8783 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
8784 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
8785 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
8787 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
8788 (rs6000_stack_info): Likewise.
8789 (rs6000_elf_asm_out_constructor): Likewise.
8790 (rs6000_elf_asm_out_destructor): Likewise.
8791 (rs6000_elf_declare_function_name): Likewise.
8792 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
8793 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
8796 2016-05-05 Alan Modra <amodra@gmail.com>
8798 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
8800 2016-05-05 Alan Modra <amodra@gmail.com>
8802 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
8803 out-of-line gpr restore for one or two regs if that would add
8806 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
8809 * config/i386/i386.md
8810 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
8811 Change to post-epilogue_completed late splitter. Use sse_reg_operand
8812 as operand 0 predicate.
8813 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
8815 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
8816 Ditto. Emit the pattern using RTX.
8818 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
8819 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
8820 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
8821 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
8823 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
8824 sse_reg_operand as operand 0 predicate.
8826 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
8827 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
8828 instead of gen_rtx_REG.
8829 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
8832 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
8834 * function.c (emit_use_return_register_into_block): Delete.
8835 (gen_return_pattern): Delete.
8836 (emit_return_into_block): Delete.
8837 (active_insn_between): Delete.
8838 (convert_jumps_to_returns): Delete.
8839 (emit_return_for_exit): Delete.
8840 (thread_prologue_and_epilogue_insns): Delete all code dealing with
8841 simple_return for shrink-wrapped blocks.
8842 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
8843 end of blocks that need one.
8844 (get_unconverted_simple_return): Delete.
8845 (convert_to_simple_return): Delete.
8846 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
8847 (convert_to_simple_return): Ditto.
8849 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
8851 * cfgcleanup.c (bb_is_just_return): New function.
8852 (try_optimize_cfg): Simplify jumps to return, branches to return,
8853 and branches around return.
8855 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
8857 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
8860 2016-05-04 Jakub Jelinek <jakub@redhat.com>
8864 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
8865 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
8866 assert flags & OEP_HASH_CHECK, instead of asserting it
8867 never happens. Handle TARGET_EXPR.
8868 * fold-const.c (operand_equal_p): For hash verification,
8869 or in OEP_HASH_CHECK into flags.
8871 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
8873 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
8875 (compute_samebase_partition_bases): Fix typo.
8877 2016-05-04 Jakub Jelinek <jakub@redhat.com>
8879 * config/i386/sse.md (vec_interleave_highv8sf,
8880 vec_interleave_lowv8sf, vec_interleave_highv4df,
8881 vec_interleave_lowv4df): Remove constraints from expanders.
8883 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
8885 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
8887 * tree-inline.c (expand_call_inline): Fix path dealing with
8888 making lhs of call statement undefined.
8890 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
8892 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
8893 Check availability on NODE, too.
8894 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
8895 (cgraph_node::call_for_symbol_and_aliases): Likewise.
8896 (varpool_node::call_for_symbol_and_aliase): Likewise.
8897 * ipa-pure-const.c (add_new_function): Analyze all bodies.
8898 (propagate_pure_const): Propagate across interposable functions, too.
8899 (skip_function_for_local_pure_const): Do not skip interposable bodies
8901 (pass_local_pure_const::execute): Update.
8903 2016-05-04 Marek Polacek <polacek@redhat.com>
8905 * doc/invoke.texi: Document -Wdangling-else.
8907 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
8909 * config.gcc: Error out when conflicting multilib is detected. Do not
8910 loop over multilibs since no combination is legal.
8912 2016-05-04 Alan Modra <amodra@gmail.com>
8914 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
8915 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
8916 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
8919 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
8921 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
8922 Clean up p5600 comments.
8924 2016-05-04 Richard Biener <rguenther@suse.de>
8926 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
8927 constructor simplifications.
8928 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
8930 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
8932 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
8933 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
8934 result.set_rtx is null instead of aborting.
8935 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
8937 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
8938 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
8939 *mov<mode>_store_postinc): New patterns.
8941 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
8943 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
8944 as commutative. Check both conversions are NOP.
8945 ((A & B) OP (C & B)): Remove.
8947 2016-05-04 Alan Modra <amodra@gmail.com>
8949 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
8951 2016-05-04 Alan Modra <amodra@gmail.com>
8954 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
8955 when cr2,3,4 are all fixed regs.
8957 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
8959 PR rtl-optimization/57193
8960 * opts.c (default_options_table): Revert OPT_frename_registers change.
8961 * doc/invoke.texi (-frename-registers, -O2): Likewise.
8963 2016-05-03 Martin Sebor <msebor@redhat.com>
8966 * builtins.c (fold_builtin_FILE): New function.
8967 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
8968 (fold_builtin_0): Call them.
8969 * gimplify.c (gimplify_call_expr): Remove the handling of
8970 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
8973 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
8974 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
8978 * doc/extend.texi (Function Names as Strings): Update __func__,
8979 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
8982 2016-05-03 Jakub Jelinek <jakub@redhat.com>
8983 Richard Biener <rguenther@suse.de>
8985 PR tree-optimization/70916
8986 * tree-if-conv.c: Include cfganal.h.
8987 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
8988 and remove_fake_exit_edges around the optimization pass.
8990 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
8992 * cgraph.c (symbol_table::create_edge): Set inline_failed.
8993 (cgraph_edge::make_direct): Likewise.
8994 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
8995 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
8996 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
8997 (CIF_THUNK): New code.
8998 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
8999 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
9000 (compute_inline_parameters): Set inline_failed for thunks.
9001 (inline_analyze_function): Cleanup.
9002 * ipa-inline.c (can_inline_edge_p): Do not deal with
9003 call_stmt_cannot_inline_p.
9004 (can_early_inline_edge_p): Likewise.
9005 (early_inliner): Initialize inline_failed.
9006 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
9008 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
9010 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
9011 from nonimm_ssenomem_operand.
9012 (nonimm_ssenomem_operand): New predicate.
9013 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
9014 as operand 0 predicate.
9015 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
9016 Disable unsupported alternatives using "enabled" attribute.
9017 Use register_ssemem_operand as operand 0 predicate.
9018 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
9020 2016-05-03 Marek Polacek <polacek@redhat.com>
9023 * input.c (expansion_point_location): New function.
9024 * input.h (expansion_point_location): Declare.
9026 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
9028 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
9029 occurence with frame_offset_ ones.
9031 2016-05-03 Alan Modra <amodra@gmail.com>
9033 PR rtl-optimization/70890
9034 * ira.c (combine_and_move_insns): When moving def_insn, remove
9037 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
9039 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
9040 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
9041 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
9042 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
9044 2016-05-03 Alan Modra <amodra@gmail.com>
9046 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
9047 for SAVE_MULTIPLE/STORE_MULTIPLE.
9049 2016-05-03 Jakub Jelinek <jakub@redhat.com>
9051 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
9052 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
9054 2016-05-03 Richard Biener <rguenther@suse.de>
9056 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
9058 (gimplify_arg): Likewise.
9059 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
9060 re-writing the result to a decl if required.
9061 (internal_get_tmp_var): Add allow_ssa parameter
9062 and override into_ssa with it.
9063 (get_formal_tmp_var): Adjust.
9064 (get_initialized_tmp_var): Add allow_ssa parameter.
9065 (gimplify_arg): Add allow_ssa parameter and avoid generating
9066 SSA names for the result false.
9067 (gimplify_call_expr): If the call may return twice do not
9068 gimplify parameters into SSA.
9069 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
9070 (gimplify_modify_expr): Adjust assert. For noreturn calls
9071 with a SSA name LHS adjust its def.
9072 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
9073 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
9074 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
9075 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
9076 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
9077 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
9078 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
9079 (optimize_target_teams): Do not allow SSA names for clause operands.
9080 (gimplify_expr): Likewise for where we mark the result addressable.
9081 * passes.def (pass_init_datastructures): Remove.
9082 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
9083 (rewrite_stmt): Likewise.
9084 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
9085 (replace_locals_op): Replace SSA names.
9086 (copy_gimple_seq_and_replace_locals): Init src_cfun.
9087 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
9088 * cgraph.c (release_function_body): Free CFG annotations only
9089 when we have a CFG. Simplify.
9090 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
9091 force_gimple_operand instead of get_initialized_tmp_var.
9092 * tree-pass.h (make_pass_init_datastructures): Remove.
9093 * tree-ssa.c (execute_init_datastructures): Remove.
9094 (pass_data_init_datastructures): Likewise.
9095 (class pass_init_datastructures): Likewise.
9096 (make_pass_init_datastructures): Likewise.
9097 * omp-low.c (create_omp_child_function): Init SSA data structures.
9098 (grid_expand_target_grid_body): Likewise.
9099 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
9100 name before adding it to names_to_release.
9101 (remove_bb): Always release SSA defs.
9102 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
9103 before dereferencing it.
9104 * cgraphunit.c (init_lowered_empty_function): Always
9105 int SSA data structures.
9106 * tree-ssanames.c (release_defs): Remove assert that we are in
9108 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
9110 2016-05-03 Jakub Jelinek <jakub@redhat.com>
9111 Uros Bizjak <ubizjak@gmail.com>
9113 PR rtl-optimization/70467
9114 * config/i386/predicates.md (x86_64_hilo_int_operand,
9115 x86_64_hilo_general_operand): New predicates.
9116 * config/i386/constraints.md (Wd): New constraint.
9117 * config/i386/i386.md (mode attr di): Use Wd instead of e.
9118 (general_hilo_operand): New mode attr.
9119 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
9120 instead of <general_operand>.
9121 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
9122 x86_64_hilo_general_operand instead of <general_operand>.
9124 2016-05-03 Jakub Jelinek <jakub@redhat.com>
9126 PR tree-optimization/70916
9127 * tree-if-conv.c (constant_or_ssa_name): Removed.
9128 (fold_build_cond_expr): Use is_gimple_val instead of
9129 constant_or_ssa_name.
9131 PR tree-optimization/70916
9132 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
9133 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
9136 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
9137 (optimize_atomic_bit_test_and): New function.
9138 (pass_fold_builtins::execute): Use it.
9139 * optabs.def (atomic_bit_test_and_set_optab,
9140 atomic_bit_test_and_complement_optab,
9141 atomic_bit_test_and_reset_optab): New optabs.
9142 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
9143 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
9144 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
9145 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
9146 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
9147 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
9148 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
9149 * doc/md.texi (atomic_bit_test_and_set@var{mode},
9150 atomic_bit_test_and_complement@var{mode},
9151 atomic_bit_test_and_reset@var{mode}): Document.
9152 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
9153 atomic_bit_test_and_complement<mode>,
9154 atomic_bit_test_and_reset<mode>): New expanders.
9155 (atomic_bit_test_and_set<mode>_1,
9156 atomic_bit_test_and_complement<mode>_1,
9157 atomic_bit_test_and_reset<mode>_1): New insns.
9159 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
9161 PR rtl-optimization/70687
9162 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
9163 instead of unsigned HOST_WIDE_INT.
9165 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
9167 PR rtl-optimization/44281
9168 * hard-reg-set.h (struct target_hard_regs): New field
9169 x_fixed_nonglobal_reg_set.
9170 (fixed_nonglobal_reg_set): New macro.
9171 * reginfo.c (init_reg_sets_1): Initialize it.
9172 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
9174 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
9176 2016-05-03 Bin Cheng <bin.cheng@arm.com>
9178 PR tree-optimization/56541
9179 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
9180 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
9181 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
9182 (any_complicated_phi): new static variable.
9183 (aggressive_if_conv): delete.
9184 (if_convertible_phi_p): support phis with more than two arguments.
9185 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
9186 critical pred edges.
9187 (ifcvt_split_critical_edges): support phis with more than two
9188 arguments by checking new parameter. only split critical edges
9190 (tree_if_conversion): handle simd pragma marked loop using new
9191 local variable aggressive_if_conv. check any_complicated_phi.
9193 2016-05-03 Bin Cheng <bin.cheng@arm.com>
9195 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
9198 2016-05-03 Bin Cheng <bin.cheng@arm.com>
9200 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
9203 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
9205 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
9206 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
9207 define_insn_and_split.
9208 (mulsi3_i): New define_insn_and_split.
9209 (mulsi3_call): Convert to define_insn.
9210 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
9213 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9215 * machmode.h (mode_complex): Add support to give the complex mode
9217 (GET_MODE_COMPLEX_MODE): Likewise.
9218 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
9219 stored by build_complex_type and gfc_build_complex_type instead of
9220 trying to figure out the appropriate mode based on the size. Raise
9221 an assertion error, if the type was not set.
9222 * genmodes.c (struct mode_data): Add field for the complex type of
9224 (blank_mode): Likewise.
9225 (make_complex_modes): Remember the complex mode created in the
9227 (emit_mode_complex): Write out the mode_complex array to map a
9228 type mode to the complex version.
9229 (emit_insn_modes_c): Likewise.
9230 * tree.c (build_complex_type): Set the complex type to use before
9231 calling layout_type.
9232 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
9233 support for __float128 complex datatypes.
9234 (rs6000_hard_regno_mode_ok): Likewise.
9235 (rs6000_setup_reg_addr_masks): Likewise.
9236 (rs6000_complex_function_value): Likewise.
9237 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
9238 __float128 and __ibm128 complex.
9239 (FLOAT128_IBM_P): Likewise.
9240 (ALTIVEC_ARG_MAX_RETURN): Likewise.
9241 * doc/extend.texi (Additional Floating Types): Document that
9242 -mfloat128 must be used to enable __float128. Document complex
9243 __float128 and __ibm128 support.
9245 2016-05-02 Jakub Jelinek <jakub@redhat.com>
9248 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
9249 char/short arguments promoted to int because of promote_prototypes.
9251 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
9253 * config/i386/predicates.md (register_ssemem_operand): New predicate.
9254 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
9255 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
9256 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
9257 alternatives using "enabled" attribute. Use register_ssemem_operand
9258 as operand 1 predicate.
9259 (*cmpi<unord>xf_i387): Split XFmode pattern from
9260 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
9261 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
9262 *absneg<mode>2_i387. Disable unsupported alternatives using
9263 "enabled" attribute.
9264 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
9266 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
9268 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
9270 (oacc_loop_process): Check mask for loop termination.
9272 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
9274 * cif-code.def (CIF_THUNK): Add.
9275 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
9278 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
9280 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
9281 (dump_inline_summary): Dump it.
9282 (fp_expression_p): New predicate.
9283 (estimate_function_body_sizes): Use it.
9284 (inline_merge_summary): Merge fp_expressions.
9285 (inline_read_section): Read fp_expressions.
9286 (inline_write_summary): Write fp_expressions.
9287 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
9288 codegen boundary if either caller or callee is !fp_expressions.
9289 * ipa-inline.h (inline_summary): Add fp_expressions.
9290 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
9291 to fp_expressions be sure the fp generation flags are updated.
9293 2016-05-02 Jakub Jelinek <jakub@redhat.com>
9295 PR rtl-optimization/70467
9296 * cse.c (cse_insn): Handle no-op MEM moves after folding.
9298 PR rtl-optimization/70467
9299 * ipa-pure-const.c (check_call): Handle internal calls even in
9300 ipa mode like in local mode.
9302 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
9304 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
9306 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
9308 * match.pd (X u< X, X u> X): New transformations.
9310 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
9312 * flag-types.h (enum warn_strict_overflow_code): Move ...
9313 * coretypes.h: ... here.
9314 * fold-const.h (fold_overflow_warning): Declare.
9315 * fold-const.c (fold_overflow_warning): Make non-static.
9316 (fold_comparison): Move the transformation of X +- C1 CMP C2
9317 into X CMP C2 -+ C1 ...
9318 * match.pd: ... here.
9319 * gimple-fold.c (fold_stmt_1): Protect with
9320 fold_defer_overflow_warnings.
9322 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
9324 * omp-low.c (struct oacc_loop): Add 'inner' field.
9325 (new_oacc_loop_raw): Initialize it to zero.
9326 (oacc_loop_fixed_partitions): Initialize it.
9327 (oacc_loop_auto_partitions): Partition outermost loop to outermost
9328 available partitioning.
9330 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
9332 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
9334 (umulsidi3): Likewise.
9335 (indirect_jump): Fix jump instruction assembly patterns.
9337 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
9340 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
9341 (nvptx_function_value): Assert non-NULL cfun.
9343 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
9345 PR rtl-optimization/70886
9346 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
9348 * cselib.h (rtx_equal_for_cselib_1): Declare.
9349 (rtx_equal_for_cselib_p: New inline function.
9350 * cselib.c (rtx_equal_for_cselib_p): Delete.
9351 (rtx_equal_for_cselib_1): Make public.
9353 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
9355 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
9356 (register_mixssei387nonimm_operand): Remove predicate.
9357 * config/i386/i386.md (*fop_<mode>_comm): Merge from
9358 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
9359 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
9360 for TARGET_MIX_SSE_I387 alternatives.
9361 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
9362 Disable unsupported alternatives using "enabled" attribute. Use
9363 nonimm_ssenomem_operand as operand 1 predicate. Also check
9364 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
9366 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
9368 * tree.c (cst_and_fits_in_hwi): Simplify.
9370 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
9372 * tree.h (wi::to_wide): New function.
9373 * expr.c (expand_expr_real_1): Use wi::to_wide.
9374 * fold-const.c (int_const_binop_1): Likewise.
9375 (extract_muldiv_1): Likewise.
9377 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
9379 * wide-int.h: Update offset_int and widest_int documentation.
9380 (WI_SIGNED_SHIFT_RESULT): New macro.
9381 (wi::binary_shift): Define signed_shift_result_type for
9382 shifts on offset_int- and widest_int-like types.
9383 (generic_wide_int): Support <<= and >>= if << and >> are supported.
9384 * tree.h (int_bit_position): Use shift operators instead of wi::
9386 * alias.c (adjust_offset_for_component_ref): Likewise.
9387 * expr.c (get_inner_reference): Likewise.
9388 * fold-const.c (fold_comparison): Likewise.
9389 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
9390 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
9391 * tree-dfa.c (get_ref_base_and_extent): Likewise.
9392 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
9393 (stmt_kills_ref_p): Likewise.
9394 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
9395 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
9396 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9397 (ao_ref_init_from_vn_reference): Likewise.
9399 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
9401 * wide-int.h: Update offset_int and widest_int documentation.
9402 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
9403 (wi::binary_traits): Allow ordered comparisons between offset_int and
9404 offset_int, between widest_int and widest_int, and between either
9405 of these types and basic C types.
9406 (operator <, <=, >, >=): Define for the same combinations.
9407 * tree.h (tree_int_cst_lt): Use comparison operators instead
9408 of wi:: comparisons.
9409 (tree_int_cst_le): Likewise.
9410 * gimple-fold.c (fold_array_ctor_reference): Likewise.
9411 (fold_nonarray_ctor_reference): Likewise.
9412 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
9413 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
9414 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
9415 * tree-sra.c (completely_scalarize): Likewise.
9416 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
9417 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
9418 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
9419 (check_for_binary_op_overflow): Likewise.
9420 (search_for_addr_array): Likewise.
9421 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
9423 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
9425 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
9426 (arc_save_restore): Likewise.
9427 (arc_dwarf_register_span): Likewise.
9428 (arc_output_pic_addr_const): Initialize suffix variable.
9430 2016-05-02 Martin Liska <mliska@suse.cz>
9432 * symbol-summary.h (function_summary::function_summary):
9433 Remove checking assert for all cgraph nodes.
9434 (function_summary::get): Check summary_uid.
9435 (symtab_insertion): Check summary_uid.
9437 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
9439 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
9440 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
9442 (arc_dwarf_register_span): Remove enum keyword.
9443 (compact_memory_operand_p): New function.
9444 * config/arc/arc.h (reg_class): Add code density register classes.
9445 (REG_CLASS_NAMES): Likewise.
9446 (REG_CLASS_CONTENTS): Likewise.
9447 * config/arc/arc.md (*movqi_insn): Add code density instructions.
9448 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
9449 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
9450 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
9451 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
9453 (h, Rcd, Rsd, Rzd): New register constraints.
9454 (T): Use compact_memory_operand_p function.
9455 * config/arc/predicates.md (compact_load_memory_operand): Remove.
9457 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
9459 * config/sh/sh.md (*negnegt, *movtt): Remove.
9461 2016-05-02 Marek Polacek <polacek@redhat.com>
9462 Tom de Vries <tom@codesourcery.com>
9464 PR tree-optimization/70700
9465 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
9466 bigger than FIRST_REF_NODE.
9468 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
9471 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
9473 (prepare_cbranch_operands): Don't use scratch register. Assume that
9474 function is used when pseudos can be created.
9475 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
9476 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
9477 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
9478 define_expand. Allow it only when pseudos can be created.
9479 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
9481 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
9483 * config/i386/constraints.md (BC): Only allow -1 operands.
9484 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
9485 Add "enabled" attribute. Update XI mode attribute calculation.
9486 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
9487 (*movoi_internal_avx): Update XI mode attribute calculation.
9488 (*movti_internal): Ditto.
9490 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
9492 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
9493 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
9495 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
9497 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
9498 statement on instruction code. Remove trailing spaces.
9499 (altivec_expand_stv_builtin): Likewise.
9501 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
9503 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
9504 (TARGET_FPU_DOUBLE): Simplify.
9505 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
9506 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
9507 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
9508 with 'TARGET_FPU_DOUBLE'.
9509 * config/sh/sh.md: Likewise.
9511 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
9513 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
9514 SH_DIV_STR_FOR_SIZE): Remove.
9515 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
9516 SH_DIV_STR_FOR_SIZE): Remove.
9518 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
9520 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
9521 logical_reg_operand): Delete.
9522 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
9523 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
9524 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
9525 match_operand and match_test.
9526 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
9527 variables on their first use. Return bool values.
9528 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
9529 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
9530 arith_reg_operand for input operand. Remove empty constraints.
9532 (*xorsi3_compact): Rename to xorsi3.
9533 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
9534 (*zero_extend<mode>si2_disp_mem): Update comment.
9537 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
9539 * config/sh/t-sh: Remove SH5 support.
9540 * config.gcc: Likewise.
9541 * configure: Likewise.
9543 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9545 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
9547 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
9549 * config/sh/sh.c (register_sh_passes, sh_option_override,
9550 sh_print_operand, prepare_move_operands,
9551 sh_can_follow_jump): Remove TARGET_SH1 checks.
9552 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
9553 PROMOTE_MODE): Likewise.
9554 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
9557 2016-04-30 Alan Modra <amodra@gmail.com>
9559 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
9560 restoring when fixed_reg_p, but allow out-of-line or stmw save.
9561 Check for user regs later to avoid unnecessary looping over regs.
9562 Merge user reg check with non-saved reg check. Don't force
9563 inline VR restore when static chain used.
9564 (rs6000_frame_related): Omit eh_frame info for user regs when
9566 (fixed_regs_p): Delete.
9568 2016-04-30 Alan Modra <amodra@gmail.com>
9570 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
9571 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
9574 2016-04-30 Alan Modra <amodra@gmail.com>
9577 * config/rs6000/rs6000.c (fixed_reg_p): New function.
9578 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
9581 2016-04-30 Alan Modra <amodra@gmail.com>
9583 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
9584 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
9585 flag_pic test for Darwin.
9587 2016-04-30 Alan Modra <amodra@gmail.com>
9589 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
9590 throw_calls_crossed.
9591 (REG_FREQ_CALLS_CROSSED): Delete.
9592 (REG_N_THROWING_CALLS_CROSSED): Delete.
9593 * regstat.c (regstat_bb_compute_ri): Don't calculate
9594 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
9595 (dump_reg_info): Don't print call cross frequency.
9596 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
9597 and REG_N_THROWING_CALLS_CROSSED.
9599 2016-04-30 Alan Modra <amodra@gmail.com>
9601 * regs.h (struct reg_info_t): Delete live_length.
9602 (REG_LIVE_LENGTH): Delete macro.
9603 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
9604 local_live, local_processed and local_live_last_luid params.
9605 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
9607 (regstat_compute_ri): Adjust for above. Don't set
9609 (dump_reg_info): Don't print live length.
9610 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
9611 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
9612 Localize loop_depth var.
9614 2016-04-30 Alan Modra <amodra@gmail.com>
9616 * ira.c (enum valid_equiv): New.
9617 (validate_equiv_mem): Return enum.
9618 (update_equiv_mem): Create replacement in more cases.
9619 (add_store_equivs): Update validate_equiv_mem call.
9621 2016-04-30 Alan Modra <amodra@gmail.com>
9623 * ira.c (combine_and_move_insns): Rather than scanning insns,
9624 use DF infrastucture to find use and def insns.
9626 2016-04-30 Alan Modra <amodra@gmail.com>
9628 ira.c (combine_and_move_insns): Move invariant conditions..
9629 (ira.c): ..to here. Call combine_and_move_insns before
9630 add_store_equivs. Call grow_reg_equivs later. Allocate
9631 req_equiv later using max_reg_num() rather than global max_regno.
9632 (contains_replace_regs): Delete.
9633 (add_store_equivs): Remove contains_replace_regs test.
9635 2016-04-30 Alan Modra <amodra@gmail.com>
9637 * ira.c (struct equiv_mem_data): New.
9638 (equiv_mem, equiv_mem_modified): Delete static vars.
9639 (validate_equiv_mem_from_store): Use "data" param to communicate..
9640 (validate_equiv_mem): ..from here.
9642 2016-04-30 Alan Modra <amodra@gmail.com>
9644 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
9646 (update_reg_equivs): ..here. Move allocation and freeing of
9647 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
9648 end_alias_analysis to..
9651 2016-04-30 Alan Modra <amodra@gmail.com>
9653 * ira.c (pdx_subregs): Delete.
9654 (struct equivalence): Add pdx_subregs field.
9655 (set_paradoxical_subreg): Remove pdx_subregs param. Update
9657 (update_equiv_regs): Don't create or free pdx_subregs. Update
9660 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9662 * config/rs6000/altivec.h: Change definitions of vec_xl and
9664 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
9665 (LD_ELEMREV_V2DI): New.
9666 (LD_ELEMREV_V4SF): New.
9667 (LD_ELEMREV_V4SI): New.
9668 (LD_ELEMREV_V8HI): New.
9669 (LD_ELEMREV_V16QI): New.
9670 (ST_ELEMREV_V2DF): New.
9671 (ST_ELEMREV_V2DI): New.
9672 (ST_ELEMREV_V4SF): New.
9673 (ST_ELEMREV_V4SI): New.
9674 (ST_ELEMREV_V8HI): New.
9675 (ST_ELEMREV_V16QI): New.
9678 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9679 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
9680 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
9681 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
9682 (altivec_expand_builtin): Add handling for
9683 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
9684 (rs6000_invalid_builtin): Add error-checking for
9685 RS6000_BTM_P9_VECTOR.
9686 (altivec_init_builtins): Define builtins used to implement vec_xl
9688 (rs6000_builtin_mask_names): Define power9-vector.
9689 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
9690 (RS6000_BTM_P9_VECTOR): Define.
9691 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
9692 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
9693 (vsx_ld_elemrev_v2df): Likewise.
9694 (vsx_ld_elemrev_v4sf): Likewise.
9695 (vsx_ld_elemrev_v4si): Likewise.
9696 (vsx_ld_elemrev_v8hi): Likewise.
9697 (vsx_ld_elemrev_v16qi): Likewise.
9698 (vsx_st_elemrev_v2df): Likewise.
9699 (vsx_st_elemrev_v2di): Likewise.
9700 (vsx_st_elemrev_v4sf): Likewise.
9701 (vsx_st_elemrev_v4si): Likewise.
9702 (vsx_st_elemrev_v8hi): Likewise.
9703 (vsx_st_elemrev_v16qi): Likewise.
9704 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
9707 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
9709 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
9711 (simplify_control_stmt_condition_1): ... here. Recurse into
9712 BIT_AND_EXPRs and BIT_IOR_EXPRs.
9714 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
9717 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
9718 (zero_extendqi<mode>2_dot): Revert earlier conversion from
9719 define_insn_and_split to define_insn.
9720 (zero_extendqi<mode>2_dot2): Same.
9721 (extendqi<mode>2_dot): Same.
9722 (extendqi<mode>2_dot2): Same.
9724 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
9726 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
9727 (probe_stack): New expander.
9728 (probe_stack_<mode>): New insn pattern.
9730 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
9732 * config/i386/i386.md
9733 (operations with memory inputs setting flags peephole2):
9734 Remove uneeded REG_P checks. Cleanup pattern generation.
9736 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
9738 * tree-vect-loop.c (vect_transform_loop): Fix
9739 nb_iterations_upper_bound computation for vectorized loop.
9741 2016-04-29 Marek Polacek <polacek@redhat.com>
9742 Jakub Jelinek <jakub@redhat.com>
9745 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
9746 TARGET_EXPR_SLOT as a base.
9748 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
9750 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
9751 with 'rCm2' constraints to limit possible immediate size.
9752 (*load_zeroextendqisi_update): Likewise.
9753 (*load_signextendqisi_update): Likewise.
9754 (*loadhi_update): Likewise.
9755 (*load_zeroextendhisi_update): Likewise.
9756 (*load_signextendhisi_update): Likewise.
9757 (*loadsi_update): Likewise.
9758 (*loadsf_update): Likewise.
9760 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
9762 * config/i386/predicates.md (constm1_operand): Fix comparison.
9764 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
9766 * testsuite/gcc.target/arc/ieee_eq.c: New test.
9768 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
9770 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
9771 remaining SH5 related settings.
9772 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
9773 shmedia_prepare_call_address): Delete.
9774 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
9775 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
9776 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
9777 UNSUPPORTED_SH2A): Remove m5 checks.
9778 (sh_divide_strategy_e): Remove SH5 division strategies.
9779 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
9780 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
9782 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
9784 * config/s390/s390.c (s390_rtx_costs): Update documentation.
9786 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9788 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
9789 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
9791 * config/s390/vector.md ("mov<mode>"): Likewise.
9793 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
9795 * config/s390/constraints.md ("U", "W"): Invoke
9796 s390_mem_constraint with "ZR" and "ZT".
9797 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
9798 addresses when using LRA. Accept also short displacements for S
9799 and T constraints. Do not check for long displacement target for
9800 S and T constraints.
9801 (s390_mem_constraint): Remove handling of U and W constraints.
9802 * config/s390/s390.md (various patterns): Remove the short
9803 displacement constraints (Q and R) if a long displacement
9804 constraint is present. Add longdisp as required CPU capability.
9805 * config/s390/vector.md: Likewise.
9806 * config/s390/vx-builtins.md: Likewise.
9808 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9811 * reload1.c (reload): Call finish_spills before
9812 restarting reload loop. Skip select_reload_regs
9813 if update_eliminables_and_spill returns true.
9815 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
9817 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
9818 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
9819 (umulhisi3_imm): Update predicates and constraint letters.
9820 (umulhisi3_reg): Declare instruction as commutative.
9821 * config/arc/constraints.md (J12, J16): New constraints.
9822 * config/arc/predicates.md (short_unsigned_const_operand): New
9824 (arc_short_operand): Likewise.
9825 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
9827 2016-04-29 Richard Biener <rguenther@suse.de>
9829 PR tree-optimization/13962
9830 PR tree-optimization/65686
9831 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
9832 * tree-ssa-alias.c (ptrs_compare_unequal): New function
9833 using PTA to compare pointers.
9834 * match.pd: Add pattern for pointer equality compare simplification
9835 using ptrs_compare_unequal.
9837 2016-04-29 Richard Biener <rguenther@suse.de>
9839 * stor-layout.c (layout_type): Do not build a pointer-to-element
9842 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
9844 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
9845 Use SWI mode iterator. Use general_reg_operand predicate.
9846 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
9847 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
9850 2016-04-29 Jakub Jelinek <jakub@redhat.com>
9853 * fold-const.c (operand_equal_p): Don't verify hash value equality
9855 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
9858 2016-04-28 Jakub Jelinek <jakub@redhat.com>
9861 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
9862 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
9863 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
9864 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
9865 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
9867 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
9869 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
9870 to info. Don't initialize separate fields to 0. Clean up
9873 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
9875 * config/i386/i386.md (peephole2s for operations with memory inputs):
9876 Use SWI mode iterator.
9877 (peephole2s for operations with memory outputs): Ditto.
9878 Do not check for stack checking probe.
9880 (probe_stack): Remove expander.
9882 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
9883 Andrew Burgess <andrew.burgess@embecosm.com>
9885 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
9886 operands as 32-bits.
9888 2016-04-28 Jason Merrill <jason@redhat.com>
9890 * gdbinit.in: Skip line-map.h.
9892 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
9893 Andrew Burgess <andrew.burgess@embecosm.com>
9895 * config/arc/arc.c (arc_conditional_register_usage): Take
9896 TARGET_RRQ_CLASS into account.
9897 (arc_print_operand): Support printing 'p' and 's' operands.
9898 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
9900 (TARGET_RRQ_CLASS): Define.
9901 (IS_POWEROF2_OR_0_P): Define.
9902 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
9904 (*tst_movb): New define_insn.
9905 (*tst): Avoid recognition if it could prevent '*tst_movb'
9906 combination; replace c/CnL with c/Chs alternative.
9907 (*tst_bitfield_tst): New define_insn.
9908 (*tst_bitfield_asr): New define_insn.
9909 (*tst_bitfield): New define_insn.
9910 (andsi3_i): Add Rrq variant.
9911 (extzv): New define_expand.
9912 (insv): New define_expand.
9913 (*insv_i): New define_insn.
9914 (*movb): New define_insn.
9915 (*movb_signed): New define_insn.
9916 (*movb_high): New define_insn.
9917 (*movb_high_signed): New define_insn.
9918 (*movb_high_signed + 1): New define_split pattern.
9919 (*mrgb): New define_insn.
9920 (*mrgb + 1): New define_peephole2 pattern.
9921 (*mrgb + 2): New define_peephole2 pattern.
9922 * config/arc/arc.opt (mbitops): New option for nps400, uses
9923 TARGET_NPS_BITOPS_DEFAULT.
9924 * config/arc/constraints.md (q): Make register class conditional.
9925 (Rrq): New register constraint.
9926 (Chs): New constraint.
9927 (Clo): New constraint.
9928 (Chi): New constraint.
9929 (Cbf): New constraint.
9930 (Cbn): New constraint.
9931 (C18): New constraint.
9932 (Cbi): New constraint.
9934 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
9936 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
9938 (bitmap_intersection_of_preds): Ditto.
9939 (bitmap_union_of_succs): Ditto.
9940 (bitmap_union_of_preds): Ditto.
9941 * sbitmap.c (do_popcount): Delete.
9942 (BITMAP_DEBUGGING): Delete.
9943 (sbitmap_verify_popcount): Delete.
9944 (sbitmap_alloc): Don't initialize the popcount field.
9945 (sbitmap_alloc_with_popcount): Delete.
9946 (sbitmap_resize): Don't resize the popcount array.
9947 (sbitmap_vector_alloc): Don't initialize the popcount field.
9948 (bitmap_copy): Don't copy the popcount array.
9949 (bitmap_clear): Don't clear the popcount array.
9950 (bitmap_clear): Delete the popcount array handling.
9951 (bitmap_ior_and_compl): Delete the popcount assert.
9952 (bitmap_not): Ditto.
9953 (bitmap_and_compl): Ditto.
9954 (bitmap_and): Delete the popcount array handling.
9955 (bitmap_xor): Ditto.
9956 (bitmap_ior): Ditto.
9957 (bitmap_or_and): Delete the popcount assert.
9958 (bitmap_and_or): Ditto.
9959 (popcount_table): Delete.
9960 (sbitmap_elt_popcount): Delete.
9961 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
9962 (bitmap_set_bit): Delete the popcount assert.
9963 (bitmap_clear_bit): Ditto.
9964 (sbitmap_free): Don't free the popcount array.
9965 (sbitmap_alloc_with_popcount): Delete declaration.
9966 (sbitmap_popcount): Ditto.
9968 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
9969 Andrew Burgess <andrew.burgess@embecosm.com>
9971 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
9972 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
9973 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
9974 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
9975 * config/arc/arc.opt (mcmem): New option.
9976 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
9977 supply length for r/m alternative.
9978 (*extendqisi2_ac): Likewise.
9979 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
9981 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
9982 (movhi_insn): Likewise.
9983 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
9984 (*zero_extendqihi2_i): Add r/Ucm alternative.
9985 (*zero_extendqisi2_ac): Likewise.
9986 (*zero_extendhisi2_i): Likewise.
9987 * config/arc/constraints.md (Uex): New memory constraint.
9988 (Ucm): New define_constraint.
9989 * config/arc/predicates.md (long_immediate_loadstore_operand):
9990 Return 0 for MEM with cmem_address address.
9991 (cmem_address_0): New predicates.
9992 (cmem_address_1): Likewise.
9993 (cmem_address_2): Likewise.
9994 (cmem_address): Likewise.
9996 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
9998 * config/rs6000/rs6000.c (machine_function): Rename
9999 insn_chain_scanned_p to spe_insn_chain_scanned_p.
10000 (rs6000_stack_info): Adjust.
10002 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
10003 Andrew Burgess <andrew.burgess@embecosm.com>
10005 * config/arc/constraints.md (Usd): Convert to define_constraint.
10009 2016-04-28 Jakub Jelinek <jakub@redhat.com>
10012 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
10013 Add new peephole2 where the first insn is *mov<mode>_or instead of
10014 *mov<mode>_internal.
10016 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
10018 * tracer.c (bb_seen): Make static.
10020 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
10022 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
10023 support, setup defaults.
10024 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
10025 * config/arc/arc.c (arc_init): Add NPS400 support.
10026 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
10027 (TARGET_ARC700): NPS400 is also an ARC700.
10028 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
10030 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
10033 * config/nds32/nds32.md (casesi): Don't access the operands array
10036 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
10038 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
10039 (or $-1,reg peephole2): Ditto.
10040 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
10042 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
10044 * doc/extend.texi (Common Function Attributes) [optimize]:
10045 Discourage use of the optimize attribute.
10047 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
10049 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
10050 special case builtin.
10051 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10052 ALTIVEC_BUILTIN_VEC_ADDE.
10053 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
10054 support for ALTIVEC_BUILTIN_VEC_ADDE.
10055 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
10056 for __builtin_vec_adde.
10058 2016-04-28 Jakub Jelinek <jakub@redhat.com>
10060 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
10061 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
10063 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10066 * doc/sourcebuild.texi (Effective-Target Keywords, Other
10067 attributes): Document cilkplus_runtime.
10069 2016-04-28 Martin Jambor <mjambor@suse.cz>
10071 * tree-cfg.c (verify_expr): Verify that local declarations belong to
10072 this function. Call verify_expr on MEM_REFs and bases of other
10073 handled_components.
10075 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10077 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
10078 for WORD_REGISTER_OPERATIONS to runtime check.
10080 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
10082 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
10084 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
10086 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
10087 big-endian compilation.
10088 * config/arc/arc.md (addf3): Likewise.
10089 (subdf3): Likewise.
10090 (muldf3): Likewise.
10092 2016-04-28 Richard Biener <rguenther@suse.de>
10094 PR tree-optimization/70840
10095 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
10096 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
10097 Mark x * pow(x,c) -> pow(x,c+1) commutative.
10098 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
10100 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10102 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
10103 and explain why in a comment.
10105 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
10107 * config/arc/arc.md (cpu_facility): Add fpx variant.
10108 (subdf3): Prohibit use reverse sub when assist operations option
10110 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
10111 instructions only when FPX is enabled.
10112 * testsuite/gcc.target/arc/trsub.c: New test.
10114 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
10116 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
10117 mult_operator when calculating "type" attribute.
10118 (*fop_<mode>_1_i387): Ditto.
10119 (*fop_xf_1_i387): Ditto.
10120 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
10121 Use std::swap to swap operands. Use RTL expressions to generate
10124 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
10125 Joern Rennecke <joern.rennecke@embecosm.com>
10127 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
10129 (emit_pic_move): Remove.
10130 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
10131 * config/arc/arc.c (emit_pic_move): Removed.
10132 (TARGET_HAVE_TLS): Define.
10133 (arc_conditional_register_usage): Test for arc_tp_regno.
10134 (arc_print_operand, arc_print_operand_address): Handle TLS
10136 (arc_needs_pcl_p): New function.
10137 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
10138 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
10139 (arc_raw_symbolic_reference_mentioned_p): Likewise.
10140 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
10141 (arc_legitimize_tls_address): Likewise.
10142 (DTPOFF_ZERO_SYM): Define.
10143 (arc_legitimize_pic_address): Make it static, handle TLS cases.
10144 (arc_output_pic_addr_const): Print TLS unspecs.
10145 (prepare_pic_move): New function, replaces emit_pic_move.
10146 (arc_legitimate_constant_p): Handle TLS unspecs.
10147 (arc_legitimate_address_p): Likewise.
10148 (arc_rewrite_small_data_p): Use assert for TLS constants.
10149 (prepare_move_operands): Use prepare_pic_move.
10150 (arc_legitimize_address): Legitimize tls addresses.
10151 (arc_epilogue_uses): Check for arc_tp_regno.
10152 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
10153 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
10155 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
10157 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
10158 %(arc_tls_extra_start_spec).
10159 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
10160 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
10162 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
10163 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
10164 (UNSPEC_TLS_OFF): Add.
10166 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
10167 (get_thread_pointersi): New patterns.
10168 * config/arc/arc.opt (mtp-regno): New option.
10169 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
10170 (move_dest_operand): Likewise.
10171 * configure: Regenerate.
10172 * configure.ac: Add arc*-*-* case to test for tls.
10173 * doc/invoke.texi (ARC options): Document mtp-regno.
10175 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
10177 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
10178 the new ARC HS SIMD instructions.
10179 (arc_preferred_simd_mode): New function.
10180 (arc_autovectorize_vector_sizes): Likewise.
10181 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
10182 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
10183 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
10184 (arc_init_builtins): Add new SIMD builtin types.
10185 (arc_split_move): Handle 64 bit vector moves.
10186 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
10187 (TARGET_PLUS_QMACW): Define.
10188 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
10189 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
10190 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
10191 (VSUBADD4H): New builtins.
10192 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
10193 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
10195 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
10196 Matthias Klose <doko@debian.org>
10198 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
10200 2016-04-28 Richard Biener <rguenther@suse.de>
10202 PR middle-end/70777
10203 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
10206 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
10208 * common/config/sh/sh-common.c: Remove SH5 support.
10209 * config/sh/constraints.md: Likewise.
10210 * config/sh/config/sh/elf.h: Likewise.
10211 * config/sh/linux.h: Likewise.
10212 * config/sh/netbsd-elf.h: Likewise.
10213 * config/sh/predicates.md: Likewise.
10214 * config/sh/sh-c.c: Likewise.
10215 * config/sh/sh-protos.h: Likewise.
10216 * config/sh/sh.c: Likewise.
10217 * config/sh/sh.h: Likewise.
10218 * config/sh/sh.md: Likewise.
10219 * config/sh/sh.opt: Likewise.
10220 * config/sh/sync.md: Likewise.
10221 * config/sh/sh64.h: Delete.
10222 * config/sh/shmedia.h: Likewise.
10223 * config/sh/shmedia.md: Likewise.
10224 * config/sh/sshmedia.h: Likewise.
10225 * config/sh/t-netbsd-sh5-64: Likewise.
10226 * config/sh/t-sh64: Likewise.
10227 * config/sh/ushmedia.h: Likewise.
10229 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
10231 * config/i386/i386.md (sign_extend to memory peephole2s): Use
10232 general_reg_operand instead of register_operand predicate.
10234 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10236 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
10238 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
10240 * match.pd (A - B > A, A + B < A): New transformations.
10242 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
10244 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
10245 which defaults to true. Emit an outer pair of parentheses only if
10246 EMIT_PARENS. When continuing a chain of && or || (or & or |),
10247 don't emit parentheses for the right-hand operand.
10249 2016-04-27 Jeff Law <law@redhat.com>
10251 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
10253 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10255 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
10256 (altivec_lvx_<mode>_internal): Document.
10257 (altivec_lvx_<mode>_2op): New define_insn.
10258 (altivec_lvx_<mode>_1op): Likewise.
10259 (altivec_lvx_<mode>_2op_si): Likewise.
10260 (altivec_lvx_<mode>_1op_si): Likewise.
10261 (altivec_stvx_<mode>): Remove.
10262 (altivec_stvx_<mode>_internal): Document.
10263 (altivec_stvx_<mode>_2op): New define_insn.
10264 (altivec_stvx_<mode>_1op): Likewise.
10265 (altivec_stvx_<mode>_2op_si): Likewise.
10266 (altivec_stvx_<mode>_1op_si): Likewise.
10267 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10268 Expand vec_ld and vec_st during parsing.
10269 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
10271 (altivec_expand_stvx_be): Likewise.
10272 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
10273 address-masking behavior in RTL.
10274 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
10275 address-masking behavior in RTL.
10276 (altivec_expand_builtin): Change builtin code arguments for calls
10277 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
10278 (insn_is_swappable_p): Avoid incorrect swap optimization in the
10279 presence of lvx/stvx patterns.
10280 (alignment_with_canonical_addr): New function.
10281 (alignment_mask): Likewise.
10282 (find_alignment_op): Likewise.
10283 (recombine_lvx_pattern): Likewise.
10284 (recombine_stvx_pattern): Likewise.
10285 (recombine_lvx_stvx_patterns): Likewise.
10286 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
10287 stvx patterns from expand.
10288 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
10290 (vector_altivec_store_<mode>): Likewise.
10292 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
10294 * config/aarch64/aarch64.md
10295 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
10296 remove the "fp" attributes.
10297 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
10298 add the "simd" attributes.
10299 (*movdf_aarch64): Likewise.
10300 (*movtf_aarch64): Remove the "fp" attributes.
10301 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
10302 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
10304 2016-04-27 David Malcolm <dmalcolm@redhat.com>
10306 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
10307 rtx to rtx_code_label *.
10308 * rtl.h (maybe_set_first_label_num): Likewise.
10310 2016-04-27 David Malcolm <dmalcolm@redhat.com>
10312 * df-core.c (df_add_problem): Make the problem param be const.
10313 (df_remove_problem): Make local "problem" be const.
10314 * df-problems.c (problem_RD): Make const.
10315 (problem_LR): Likewise.
10316 (problem_LIVE): Likewise.
10317 (problem_MIR): Likewise.
10318 (problem_CHAIN): Likewise.
10319 (problem_WORD_LR): Likewise.
10320 (problem_NOTE): Likewise.
10321 (problem_MD): Likewise.
10322 * df-scan.c (problem_SCAN): Likewise.
10323 * df.h (struct df_problem): Make field "dependent_problem" be
10325 (struct dataflow): Likewise for field "problem".
10326 (df_add_problem): Make param const.
10328 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
10330 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
10331 inter-unit moves to/from vector registers are enabled. Do not disable
10334 2016-04-27 David Malcolm <dmalcolm@redhat.com>
10336 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
10337 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
10339 (enum df_problem_id): ...this new enum.
10340 (struct df_problem): Convert field "id" from "int" to
10341 enum df_problem_id.
10343 2016-04-27 David Malcolm <dmalcolm@redhat.com>
10345 * rtl.def: Update comment for "things in the instruction chain" to
10346 reflect the removal of the leading "i" field for INSN_UID in
10347 r210360. Fix bogus apostrophe.
10349 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
10351 * config/i386/i386.md
10352 (lea arith with mem operand + setcc peephole2): Set operator mode.
10354 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
10357 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
10358 (dimode_scalar_to_vector_candidate_p): This.
10359 (timode_scalar_to_vector_candidate_p): New function.
10360 (scalar_to_vector_candidate_p): Likewise.
10361 (timode_check_non_convertible_regs): Likewise.
10362 (timode_remove_non_convertible_regs): Likewise.
10363 (remove_non_convertible_regs): Likewise.
10364 (remove_non_convertible_regs): Renamed to ...
10365 (dimode_remove_non_convertible_regs): This.
10366 (scalar_chain::~scalar_chain): Make it virtual.
10367 (scalar_chain::compute_convert_gain): Make it pure virtual.
10368 (scalar_chain::mark_dual_mode_def): Likewise.
10369 (scalar_chain::convert_insn): Likewise.
10370 (scalar_chain::convert_registers): Likewise.
10371 (scalar_chain::add_to_queue): Make it protected.
10372 (scalar_chain::emit_conversion_insns): Likewise.
10373 (scalar_chain::replace_with_subreg): Likewise.
10374 (scalar_chain::replace_with_subreg_in_insn): Likewise.
10375 (scalar_chain::convert_op): Likewise.
10376 (scalar_chain::convert_reg): Likewise.
10377 (scalar_chain::make_vector_copies): Likewise.
10378 (scalar_chain::convert_registers): New pure virtual function.
10379 (class dimode_scalar_chain): New class.
10380 (class timode_scalar_chain): Likewise.
10381 (scalar_chain::mark_dual_mode_def): Renamed to ...
10382 (dimode_scalar_chain::mark_dual_mode_def): This.
10383 (timode_scalar_chain::mark_dual_mode_def): New function.
10384 (timode_scalar_chain::convert_insn): Likewise.
10385 (dimode_scalar_chain::convert_registers): Likewise.
10386 (scalar_chain::compute_convert_gain): Renamed to ...
10387 (dimode_scalar_chain::compute_convert_gain): This.
10388 (scalar_chain::replace_with_subreg): Renamed to ...
10389 (dimode_scalar_chain::replace_with_subreg): This.
10390 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
10391 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
10392 (scalar_chain::make_vector_copies): Renamed to ...
10393 (dimode_scalar_chain::make_vector_copies): This.
10394 (scalar_chain::convert_reg): Renamed to ...
10395 (dimode_scalar_chain::convert_reg ): This.
10396 (scalar_chain::convert_op): Renamed to ...
10397 (dimode_scalar_chain::convert_op): This.
10398 (scalar_chain::convert_insn): Renamed to ...
10399 (dimode_scalar_chain::convert_insn): This.
10400 (scalar_chain::convert): Call convert_registers.
10401 (convert_scalars_to_vector): Change to scalar_chain pointer to
10402 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
10403 in 32-bit mode. Delete scalar_chain pointer. Call
10404 free_dominance_info in 64-bit mode.
10405 (pass_stv::gate): Remove TARGET_64BIT check.
10406 (ix86_option_override): Put the 64-bit STV pass before the CSE
10409 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
10411 * dwarf2out.h (struct dw_loc_descr_node): Remove the
10412 dw_loc_frame_offset field.
10413 * dwarf2out.c (new_loc_descr): Likewise.
10414 (resolve_args_picking_1): Turn the VISITED hash set into a
10415 FRAME_OFFSET hash map. Use it to associate a frame offset to
10416 visited nodes. Remove uses of the CHECKING_P macro.
10417 (resolve_args_picking): Update call to resolve_args_picking_1.
10419 2016-04-27 Martin Liska <mliska@suse.cz>
10421 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
10422 (free_loop_data): Release vuses of groups.
10424 2016-04-27 Bin Cheng <bin.cheng@arm.com>
10426 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
10427 instead of redundant use_id and boolean have_use_for.
10428 (struct iv_use): Change sub_id into group_id. Remove field next.
10429 Move fields: related_cands, n_map_members, cost_map and selected
10431 (struct iv_group): ... here. New structure.
10432 (struct iv_common_cand): Use structure declaration directly.
10433 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
10434 (MAX_CONSIDERED_USES): Rename macro to ...
10435 (MAX_CONSIDERED_GROUPS): ... here.
10436 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
10437 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
10438 (dump_uses): Rename to ...
10439 (dump_groups): ... here. Update all uses.
10440 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
10441 (find_induction_variables): Refactor format of dump information.
10442 (record_sub_use): Delete.
10443 (record_use): Update all uses.
10444 (record_group): New function.
10445 (record_group_use, find_interesting_uses_op): Call above functions.
10447 (find_interesting_uses_cond): Ditto.
10448 (group_compare_offset): New function.
10449 (split_all_small_groups): Rename to ...
10450 (split_small_address_groups_p): ... here. Update all uses.
10451 (split_address_groups): Update all uses.
10452 (find_interesting_uses): Refactor format of dump information.
10453 (add_candidate_1): Update all uses. Remove redundant check on iv,
10455 (add_candidate, record_common_cand): Remove redundant assert.
10456 (add_iv_candidate_for_biv): Update use.
10457 (add_iv_candidate_derived_from_uses): Update all uses.
10458 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
10459 (alloc_use_cost_map): Ditto.
10460 (set_use_iv_cost, get_use_iv_cost): Rename to ...
10461 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
10462 (determine_use_iv_cost_generic): Ditto.
10463 (determine_group_iv_cost_generic): Ditto.
10464 (determine_use_iv_cost_address): Ditto.
10465 (determine_group_iv_cost_address): Ditto.
10466 (determine_use_iv_cost_condition): Ditto.
10467 (determine_group_iv_cost_cond): Ditto.
10468 (determine_use_iv_cost): Ditto.
10469 (determine_group_iv_cost): Ditto.
10470 (set_autoinc_for_original_candidates): Update all uses.
10471 (find_iv_candidates): Update all uses. Refactor dump information.
10472 (determine_use_iv_costs): Ditto.
10473 (determine_iv_costs): Ditto.
10474 (iv_ca_cand_for_use): Rename to ...
10475 (iv_ca_cand_for_group): ... here. Update all uses.
10476 (iv_ca_add_use, iv_ca_add_group): Ditto.
10477 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
10478 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
10479 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
10480 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
10481 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
10482 (create_new_iv, adjust_iv_update_pos): Ditto.
10483 (rewrite_use_address): Delete.
10484 (rewrite_use_address_1): Rename to ...
10485 (rewrite_use_address): ... here.
10486 (rewrite_use_compare): Update all uses.
10487 (rewrite_use): Delete.
10488 (rewrite_uses): Rename to ...
10489 (rewrite_groups): ... here. Update all uses.
10490 (remove_unused_ivs, free_loop_data): Update all uses.
10491 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
10493 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10495 * rtlanal.c (nonzero_bits1): Convert preprocessor check
10496 for WORD_REGISTER_OPERATIONS to runtime check.
10498 2016-04-27 Richard Biener <rguenther@suse.de>
10501 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
10502 aggregate_value_p to determine if a function result is
10503 returned by reference.
10504 (ipa_pta_execute): Functions having their address taken are
10505 not automatically nonlocal.
10507 2016-04-27 Jakub Jelinek <jakub@redhat.com>
10510 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
10511 * fold-const.c (operand_equal_p): If flag_checking and
10512 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
10513 and if it returns non-zero, assert iterative_hash_expr on both
10516 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
10518 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
10520 2016-04-27 Nick Clifton <nickc@redhat.com>
10522 PR middle-end/49889
10523 * varasm.c (merge_weak): Generate an error if an attempt is made
10524 to convert a non-weak static function into a weak, public function.
10526 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10528 * params.def (MAX_PARTITION_SIZE): New param.
10529 * doc/invoke.texi: Document lto-max-partition.
10531 2016-04-27 Richard Biener <rguenther@suse.de>
10534 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
10535 function cummulating used_from_other_partition, externally_visible
10536 and force_output from aliases.
10537 (refered_from_nonlocal_var): Likewise.
10538 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
10539 node flags properly.
10541 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
10543 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
10544 (-Wmemset-elt-size): New item.
10546 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
10549 * stor-layout.h (internal_reference_types): Delete.
10550 * stor-layout.c (reference_types_internal): Likewise.
10551 (internal_reference_types): Likewise.
10552 (layout_type) <REFERENCE_TYPE>: Adjust.
10554 2016-04-27 Jakub Jelinek <jakub@redhat.com>
10557 * tree.h (inchash::add_expr): Add FLAGS argument.
10558 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
10559 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
10560 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
10561 Formatting fix. Adjust recursive calls. For tcc_comparison,
10562 if swap_tree_comparison (code) is smaller than code, hash that
10563 and arguments in the other order. Hash CONVERT_EXPR the same
10564 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
10565 of ADDR_EXPR of decl as the decl itself. Add or remove
10566 OEP_ADDRESS_OF from recursive flags as needed. For
10567 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
10568 operands commutatively and only the third one normally.
10569 For internal CALL_EXPR hash in CALL_EXPR_IFN.
10571 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
10573 * config/rtems.h (LIB_SPEC): Add -latomic.
10575 2016-04-27 Joel Sherrill <joel@rtems.org>
10577 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
10578 xilink.ld and flags not relevant to RTEMS.
10580 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
10582 * toplev.c (backend_init_target): Avoid calling init_reload when using
10585 2016-04-26 Jakub Jelinek <jakub@redhat.com>
10587 * reorg.c (try_merge_delay_insns): Declare i and j inside the
10588 for loops rather than one for the whole function.
10590 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
10592 * match.pd (X + CST CMP X): New transformation.
10594 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
10596 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
10597 * fold-const.c (fold_binary_loc): Remove 2 transformations
10598 superseded by match.pd.
10599 * match.pd (x+x -> x*2): Generalize to integers.
10601 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
10603 * config/i386/i386.md (operation on memory peephole): Duplicate an
10604 existing peephole and adapt it to match lea rather than an operation
10607 PR rtl-optimization/57193
10608 * opts.c (default_options_table): Add OPT_frename_registers at -O2
10610 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
10612 2016-04-26 Bin Cheng <bin.cheng@arm.com>
10614 * tree-if-conv.c (any_pred_load_store): New static variable.
10615 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
10616 any_pred_load_store instead of and_mask_load_store.
10617 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
10618 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
10619 (combine_blocks, tree_if_conversion): Ditto.
10621 2016-04-26 Bin Cheng <bin.cheng@arm.com>
10623 PR tree-optimization/70771
10624 PR tree-optimization/70775
10625 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
10626 virtual PHI nodes. Delete parameter.
10627 (if_convertible_loop_p_1): Delete argument to above function.
10628 (predicate_all_scalar_phis): Delete code handling single-argument
10630 (tree_if_conversion): Mark and update virtual SSA.
10632 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10635 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
10636 (x86_elf_aligned_common): Rename to ...
10637 (x86_elf_aligned_decl_common): ... this.
10638 Add decl arg. Switch to .lbss for largecomm object. Use
10639 LARGECOMM_SECTION_ASM_OP.
10640 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
10642 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
10643 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
10645 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
10646 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
10648 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10651 * config/i386/i386.c (SECTION_LARGE): Define.
10652 (x86_64_elf_select_section): Set it for large data/bss sections.
10653 Only clear SECTION_WRITE for .lrodata.
10654 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
10656 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
10657 * varasm.c (default_elf_asm_named_section): Grow flagchars.
10658 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
10660 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
10661 * doc/tm.texi: Regenerate.
10663 2016-04-26 Jakub Jelinek <jakub@redhat.com>
10666 * configure.ac (--enable-checking): Document extra flag, for
10667 non-release builds default to --enable-checking=yes,extra.
10668 If misc checking and extra checking, define CHECKING_P to 2 instead
10670 * common.opt (fchecking=): Add.
10671 * doc/invoke.texi (-fchecking=): Document.
10672 * doc/install.texi: Document --enable-checking changes.
10673 * configure: Regenerated.
10674 * config.in: Regenerated.
10676 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
10678 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
10679 attribute instead of which_alternative.
10680 * config/i386/sse.md (*mov<mode>_internal): Ditto.
10681 Use EXT_REX_SSE_REG_P where appropriate.
10683 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
10685 * config/i386/predicates.md (const0_operand): Do not match
10686 const_wide_int code.
10687 (const1_operand): Ditto.
10689 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
10691 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
10692 for SSE constm1 operands and TARGET_AVX512VL.
10693 (*movti_internal): Ditto.
10694 (*mov<mode>_or): Use constm1_operand predicate.
10695 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
10696 for SSE vector_all_ones operands and TARGET_AVX512VL.
10697 * config/i386/predicates.md (constm1_operand): New predicate.
10698 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
10699 emission of constant -1 load.
10701 2016-04-25 Jason Merrill <jason@redhat.com>
10703 * gdbinit.in: Skip is-a.h.
10705 * attribs.c (register_scoped_attributes): Fix logic.
10706 * attribs.h: Declare register_scoped_attributes.
10708 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10710 * config/rs6000/rs6000-builtin.def: Correct pasto error for
10711 stxvd2x and stxvw4x built-in functions.
10713 2016-04-25 DJ Delorie <dj@redhat.com>
10715 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
10716 (ashrhi3): Likewise.
10717 (lshrhi3): Likewise.
10719 2016-04-25 Richard Biener <rguenther@suse.de>
10721 PR tree-optimization/70780
10722 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
10723 wasn't visited yet.
10724 (compute_antic): Mark blocks with abnormal preds as visited as
10725 they have a final empty antic-in solution already.
10727 2016-04-25 Michael Collison <michael.collison@linaro.org>
10729 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
10731 2016-04-25 Michael Collison <michael.collison@linaro.org>
10733 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
10734 mode is VQI to improve mixed mode vectorization.
10735 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
10736 define_insn to match low half of signed vaddw.
10737 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
10738 define_insn to match high half of signed vaddw.
10739 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
10740 define_insn to match low half of unsigned vaddw.
10741 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
10742 define_insn to match high half of unsigned vaddw.
10743 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
10744 (arm_simd_check_vect_par_cnst_half_p): Likewise.
10745 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
10747 (arm_simd_check_vect_par_cnst_half_p): Likewise.
10748 * config/arm/predicates.md (vect_par_constant_high): Support
10749 big endian and simplify by calling
10750 arm_simd_check_vect_par_cnst_half
10751 (vect_par_constant_low): Likewise.
10753 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
10755 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
10756 predicate for operand 2.
10758 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
10759 H.J. Lu <hongjiu.lu@intel.com>
10761 * config/i386/i386-protos.h (standard_sse_constant_p): Add
10762 machine_mode argument.
10763 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
10764 constm1_rtx operands. For VOIDmode constants, get mode from
10765 pred_mode. Check mode size if the mode is supported by ABI.
10766 (standard_sse_constant_opcode): Do not use standard_constant_p.
10767 Strictly check ABI support for all-ones operands.
10768 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
10769 immediates. Update calls to standard_sse_constant_p.
10770 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
10771 (ix86_rtx_costs): Ditto.
10772 * config/i386/i386.md (*movxi_internal_avx512f): Use
10773 nonimmediate_or_sse_const_operand instead of vector_move_operand.
10774 Use (v,BC) alternative instead of (v,C). Use register_operand
10775 checks instead of MEM_P.
10776 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
10777 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
10778 isa attribute. Use register_operand checks instead of MEM_P.
10779 (*movti_internal): Use nonimmediate_or_sse_const_operand for
10780 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
10781 alternative and corresponding sse2 isa attribute.
10782 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
10783 to standard_sse_constant_p.
10784 (FP constant splitters): Ditto.
10785 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
10787 * config/i386/predicates.md (constm1_operand): Remove.
10788 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
10789 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
10790 vector_all_ones_operand instead of constm1_operand.
10792 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10794 * print-rtl.c (print_rtx_insn_vec): New function.
10795 * print-rtl.h: New prototype.
10796 * store-motion.c (struct st_expr): Make avail_stores a vector.
10797 (st_expr_entry): Adjust.
10798 (free_st_expr_entry): Likewise.
10799 (print_store_motion_mems): Likewise.
10800 (find_moveable_store): Likewise.
10801 (compute_store_table): Likewise.
10802 (delete_store): Likewise.
10803 (build_store_vectors): Likewise.
10805 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10807 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
10809 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10811 * vec.h (vec_safe_contains): New function.
10812 (vec::contains): Likewise.
10813 (vec::begin): Likewise.
10814 (vec::end): Likewise.
10816 2016-04-23 Jakub Jelinek <jakub@redhat.com>
10819 * cfgexpand.c (expand_stack_vars): Fix typo.
10821 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
10823 * system.h (list, map, set, vector): Include conditionally.
10824 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
10825 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
10826 * ipa-icf.c (INCLUDE_LIST): Define.
10827 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
10828 * config/sh/sh.c (INCLUDE_VECTOR): Define.
10829 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
10830 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
10831 * cp/logic.cc (INCLUDE_LIST): Define.
10832 * fortran/trans-common.c (INCLUDE_MAP): Define.
10834 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
10836 * auto-profile.c: Remove <string.h> include.
10837 * ipa-icf-gimple.c: Remove <list> include.
10838 * diagnostic.c: Remove <new> include.
10839 * genmatch.c: Likewise.
10840 * pretty-print.c: Likewise.
10841 * toplev.c: Likewise
10842 * c/c-objc-common.c: Likewise.
10843 * cp/error.c: Likewise.
10844 * fortran/error.c: Likewise.
10846 2016-04-22 Richard Biener <rguenther@suse.de>
10848 * lto-streamer-in.c (input_ssa_names): Do not allocate
10849 GIMPLE_NOP for all SSA names.
10850 * lto-streamer-out.c (output_ssa_names): Do not output
10851 SSA names that should have been released.
10853 2016-04-22 Richard Biener <rguenther@suse.de>
10855 PR tree-optimization/70740
10856 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
10859 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
10862 * config/i386/predicates.md (call_insn_operand): Replace
10863 sibcall_memory_operand with memory_operand.
10865 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
10867 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
10868 has_single_use() tests.
10869 (register_edge_assert_for_1): Likewise.
10870 (find_assert_locations_1): Check the liveness bitmap instead of
10871 checking has_single_use().
10873 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
10876 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
10877 Extract AVX-512BW constraint from AVX.
10879 2016-04-21 Richard Biener <rguenther@suse.de>
10881 PR tree-optimization/70725
10882 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
10883 for phi_convertible_by_degenerating_args.
10884 (predicate_all_scalar_phis): Handle single-argument PHIs.
10886 2016-04-21 Richard Biener <rguenther@suse.de>
10888 PR middle-end/70747
10889 * fold-const.c (fold_comparison): Return properly typed
10892 2016-04-21 Bin Cheng <bin.cheng@arm.com>
10894 PR tree-optimization/70715
10895 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
10896 after expanding BASE using expand_simple_operations.
10898 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
10900 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
10901 New transformations.
10903 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
10905 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
10907 2016-04-20 Jan Hubicka <jh@suse.cz>
10909 * ipa-inline.c (can_inline_edge_p): Pass caller info to
10910 ultiimate_alias_target.
10911 (update_callee_keys): Likewise.
10912 (lookup_recursive_calls): Likewise.
10913 (speculation_useful_p): Likewise.
10915 2016-04-20 Jan Hubicka <jh@suse.cz>
10918 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
10919 (set_nothrow_flag_1): ... this; handle interposition correctly;
10920 recurse on aliases and thunks.
10921 (cgraph_node::set_nothrow_flag): New.
10922 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
10923 functions compiled with non-call exceptions that binds to current
10925 (propagate_nothrow): Be safe WRT interposition.
10926 * cgraph.h (set_nothrow_flag): Update prototype.
10928 2016-04-18 Jan Hubicka <jh@suse.cz>
10930 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
10931 max_loop_iterations_int.
10932 (tree_unswitch_outer_loop): Likewise.
10934 2016-04-20 Bin Cheng <bin.cheng@arm.com>
10936 PR tree-optimization/69489
10937 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
10938 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
10939 Revise dump message.
10940 (if_convertible_bb_p): Remove check on edge count of basic block's
10943 2016-04-20 Bin Cheng <bin.cheng@arm.com>
10945 PR tree-optimization/56625
10946 PR tree-optimization/69489
10947 * tree-data-ref.h (DR_INNERMOST): New macro.
10948 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
10949 hashing struct innermost_loop_behavior.
10950 (ref_DR_map): Remove.
10951 (innermost_DR_map): New map.
10952 (baseref_DR_map): Revise comment.
10953 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
10954 to innermost_DR_map accroding to its innermost loop behavior.
10955 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
10956 to its innermost loop behavior.
10957 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
10958 Add initialization for innermost_DR_map. Record memory reference
10959 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
10960 have innermost loop behavior.
10961 (if_convertible_loop_p): Remove release for ref_DR_map. Release
10964 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
10966 * config/i386/i386.md (*lea<mode>_general_1): Rename from
10967 *lea_general_1. Use explicit SWI12 mode interator.
10968 (*lea<mode>_general_2): Rename from *lea_general_2.
10969 Use explicit SWI12 mode interator.
10970 (*lea<mode>_general_3): Rename from *lea_general_3.
10971 Use explicit SWI12 mode interator.
10972 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
10973 Use explicit SWI12 mode interator.
10974 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
10975 Use explicit SWI48 mode interator.
10977 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
10979 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
10980 Short-cut unaligned load and store cases. Handle all integer
10982 (ix86_expand_vector_move_misalign): Short-cut unaligned load
10983 and store cases. Call ix86_avx256_split_vector_move_misalign
10984 directly without checking mode class.
10986 2016-04-20 Andrew Pinski <apinski@cavium.com>
10987 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10990 * config/aarch64/aarch64.md (sibcall): Force call
10991 address to be DImode for ILP32.
10992 (sibcall_value): Likewise.
10994 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
10996 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
10998 2016-04-20 Richard Biener <rguenther@suse.de>
11000 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
11001 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
11002 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
11003 (maybe_push_res_to_seq): Adjust.
11004 * gimple-fold.c (maybe_build_generic_op): Likewise.
11006 2016-04-20 Marek Polacek <polacek@redhat.com>
11008 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
11011 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
11013 * config/i386/sse.md (vec_unpacks_lo_hi): Always
11014 use kmovw to support AVX512F target.
11016 2016-04-20 Bin Cheng <bin.cheng@arm.com>
11018 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
11020 2016-04-20 Marek Polacek <polacek@redhat.com>
11022 PR tree-optimization/70725
11023 * tree-if-conv.c (is_false_predicate): New function.
11024 (predicate_mem_writes): Use it.
11026 2016-04-20 Richard Biener <rguenther@suse.de>
11028 PR tree-optimization/70726
11029 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
11030 shift amounts from a pattern stmt operand.
11032 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11035 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
11036 stack_restore_from_fpr pattern when restoring r15.
11037 (s390_optimize_prologue): Strip away the memory barrier in the
11038 parallel when trying to get rid of restore insns.
11039 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
11040 definition for loading the stack pointer from an FPR. Compared to
11041 the normal move insn this pattern includes a full memory barrier.
11043 2016-04-19 Jakub Jelinek <jakub@redhat.com>
11045 PR middle-end/70680
11046 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
11047 implicitly linear or lastprivate iterator on the outer context.
11049 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
11051 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
11053 * config/i386/i386.md (ssememalign): Removed.
11054 * config/i386/sse.md: Remove ssememalign attribute from patterns.
11056 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
11059 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
11060 const short * to __builtin_ia32_loaddquhi512_mask.
11061 (_mm512_maskz_loadu_epi16): Likewise.
11062 (_mm512_mask_storeu_epi16): Pass short * to
11063 __builtin_ia32_storedquhi512_mask.
11064 (_mm512_mask_loadu_epi8): Pass const char * to
11065 __builtin_ia32_loaddquqi512_mask.
11066 (_mm512_maskz_loadu_epi8): Likewise.
11067 (_mm512_mask_storeu_epi8): Pass char * to
11068 __builtin_ia32_storedquqi512_mask.
11069 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
11070 const double * to __builtin_ia32_loadupd512_mask.
11071 (_mm512_mask_loadu_pd): Likewise.
11072 (_mm512_maskz_loadu_pd): Likewise.
11073 (_mm512_storeu_pd): Pass double * to
11074 __builtin_ia32_storeupd512_mask.
11075 (_mm512_mask_storeu_pd): Likewise.
11076 (_mm512_loadu_ps): Pass const float * to
11077 __builtin_ia32_loadups512_mask.
11078 (_mm512_mask_loadu_ps): Likewise.
11079 (_mm512_maskz_loadu_ps): Likewise.
11080 (_mm512_storeu_ps): Pass float * to
11081 __builtin_ia32_storeups512_mask.
11082 (_mm512_mask_storeu_ps): Likewise.
11083 (_mm512_mask_loadu_epi64): Pass const long long * to
11084 __builtin_ia32_loaddqudi512_mask.
11085 (_mm512_maskz_loadu_epi64): Likewise.
11086 (_mm512_mask_storeu_epi64): Pass long long *
11087 to __builtin_ia32_storedqudi512_mask.
11088 (_mm512_loadu_si512): Pass const int * to
11089 __builtin_ia32_loaddqusi512_mask.
11090 (_mm512_mask_loadu_epi32): Likewise.
11091 (_mm512_maskz_loadu_epi32): Likewise.
11092 (_mm512_storeu_si512): Pass int * to
11093 __builtin_ia32_storedqusi512_mask.
11094 (_mm512_mask_storeu_epi32): Likewise.
11095 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
11096 char * to __builtin_ia32_storedquqi256_mask.
11097 (_mm_mask_storeu_epi8): Likewise.
11098 (_mm256_mask_loadu_epi16): Pass const short * to
11099 __builtin_ia32_loaddquhi256_mask.
11100 (_mm256_maskz_loadu_epi16): Likewise.
11101 (_mm_mask_loadu_epi16): Pass const short * to
11102 __builtin_ia32_loaddquhi128_mask.
11103 (_mm_maskz_loadu_epi16): Likewise.
11104 (_mm256_mask_loadu_epi8): Pass const char * to
11105 __builtin_ia32_loaddquqi256_mask.
11106 (_mm256_maskz_loadu_epi8): Likewise.
11107 (_mm_mask_loadu_epi8): Pass const char * to
11108 __builtin_ia32_loaddquqi128_mask.
11109 (_mm_maskz_loadu_epi8): Likewise.
11110 (_mm256_mask_storeu_epi16): Pass short * to.
11111 __builtin_ia32_storedquhi256_mask.
11112 (_mm_mask_storeu_epi16): Pass short * to.
11113 __builtin_ia32_storedquhi128_mask.
11114 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
11115 const double * to __builtin_ia32_loadupd256_mask.
11116 (_mm256_maskz_loadu_pd): Likewise.
11117 (_mm_mask_loadu_pd): Pass onst double * to
11118 __builtin_ia32_loadupd128_mask.
11119 (_mm_maskz_loadu_pd): Likewise.
11120 (_mm256_mask_storeu_pd): Pass double * to
11121 __builtin_ia32_storeupd256_mask.
11122 (_mm_mask_storeu_pd): Pass double * to
11123 __builtin_ia32_storeupd128_mask.
11124 (_mm256_mask_loadu_ps): Pass const float * to
11125 __builtin_ia32_loadups256_mask.
11126 (_mm256_maskz_loadu_ps): Likewise.
11127 (_mm_mask_loadu_ps): Pass const float * to
11128 __builtin_ia32_loadups128_mask.
11129 (_mm_maskz_loadu_ps): Likewise.
11130 (_mm256_mask_storeu_ps): Pass float * to
11131 __builtin_ia32_storeups256_mask.
11132 (_mm_mask_storeu_ps): ass float * to
11133 __builtin_ia32_storeups128_mask.
11134 (_mm256_mask_loadu_epi64): Pass const long long * to
11135 __builtin_ia32_loaddqudi256_mask.
11136 (_mm256_maskz_loadu_epi64): Likewise.
11137 (_mm_mask_loadu_epi64): Pass const long long * to
11138 __builtin_ia32_loaddqudi128_mask.
11139 (_mm_maskz_loadu_epi64): Likewise.
11140 (_mm256_mask_storeu_epi64): Pass long long * to
11141 __builtin_ia32_storedqudi256_mask.
11142 (_mm_mask_storeu_epi64): Pass long long * to
11143 __builtin_ia32_storedqudi128_mask.
11144 (_mm256_mask_loadu_epi32): Pass const int * to
11145 __builtin_ia32_loaddqusi256_mask.
11146 (_mm256_maskz_loadu_epi32): Likewise.
11147 (_mm_mask_loadu_epi32): Pass const int * to
11148 __builtin_ia32_loaddqusi128_mask.
11149 (_mm_maskz_loadu_epi32): Likewise.
11150 (_mm256_mask_storeu_epi32): Pass int * to
11151 __builtin_ia32_storedqusi256_mask.
11152 (_mm_mask_storeu_epi32): Pass int * to
11153 __builtin_ia32_storedqusi128_mask.
11154 * config/i386/i386-builtin-types.def (PCSHORT): New.
11155 (PINT64): Likewise.
11156 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
11157 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
11158 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
11159 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
11160 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
11161 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
11162 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
11163 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
11164 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
11165 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
11166 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
11167 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
11168 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
11169 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
11170 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
11171 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
11172 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
11173 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
11174 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
11175 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
11176 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
11177 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
11178 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
11179 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
11180 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
11181 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
11182 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
11183 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
11184 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
11185 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
11186 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
11187 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
11188 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
11189 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
11190 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
11191 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
11192 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
11193 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
11194 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
11195 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
11196 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
11197 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
11198 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
11199 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
11200 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
11201 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
11202 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
11203 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
11204 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
11206 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
11207 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
11209 (ix86_expand_vector_move_misalign): Likewise.
11210 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
11211 to scalar function prototype for unaligned load/store builtins.
11212 (ix86_expand_special_args_builtin): Updated.
11213 * config/i386/sse.md (UNSPEC_LOADU): Removed.
11214 (UNSPEC_STOREU): Likewise.
11215 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
11216 (VI_ULOADSTORE_F_AVX512VL): Likewise.
11217 (ssescalarsize): Handle V4TI, V2TI and V1TI.
11218 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
11219 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
11220 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
11221 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
11222 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
11223 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
11224 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
11225 (<avx512>_storedqu<mode>_mask): Likewise.
11226 (*sse4_2_pcmpestr_unaligned): Likewise.
11227 (*sse4_2_pcmpistr_unaligned): Likewise.
11228 (*mov<mode>_internal): Renamed to ...
11229 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
11230 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
11231 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
11232 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
11234 2016-04-19 Richard Biener <rguenther@suse.de>
11236 PR tree-optimization/70171
11237 * tree-ssa-phiprop.c: Include stor-layout.h.
11238 (phiprop_insert_phi): Handle the aggregate copy case.
11239 (propagate_with_phi): Likewise.
11241 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
11243 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
11244 instead of simplify_gen_subreg (... , 0).
11245 (ix86_delegitimize_address): Ditto.
11246 (ix86_split_divmod): Ditto.
11247 (ix86_split_copysign_const): Ditto.
11248 (ix86_split_copysign_var): Ditto.
11249 (ix86_expand_args_builtin): Ditto.
11250 (ix86_expand_round_builtin): Ditto.
11251 (ix86_expand_special_args_builtin): Ditto.
11252 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
11253 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
11254 (udivmodqi4): Ditto.
11255 (absneg splitters): Ditto.
11256 (*jcc_bt<mode>_1): Ditto.
11258 2016-04-19 Richard Biener <rguenther@suse.de>
11260 PR tree-optimization/70724
11261 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
11262 restoring out from ...
11263 (free_scc_vn): ... here.
11264 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
11265 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
11267 (pass_fre::execute): Restore SSA info.
11269 2016-04-19 Richard Biener <rguenther@suse.de>
11271 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
11272 * gimple-walk.c (walk_gimple_op): Initialize it.
11273 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
11274 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
11275 remapping SSA names of defs.
11276 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
11279 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
11281 PR middle-end/70689
11282 * lra-constraints.c (equiv_substition_p): New.
11283 (process_alt_operands): Use it.
11284 (swap_operands): Swap it.
11285 (curr_insn_transform): Update it.
11287 2016-04-18 Michael Matz <matz@suse.de>
11289 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
11290 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
11291 * tree-core.h (tree_type_common.align): Use bit-field.
11292 (tree_type_common.spare): New.
11293 (tree_decl_common.off_align): Make smaller.
11294 (tree_decl_common.align): Use bit-field.
11296 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
11297 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
11298 (scan_sharing_clauses): Ditto.
11299 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
11300 (omp_finish_file): Ditto.
11301 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
11302 (layout_decl): Ditto.
11303 (relayout_decl): Ditto.
11304 (finalize_record_size): Use SET_TYPE_ALIGN.
11305 (finalize_type_size): Ditto.
11306 (finish_builtin_struct): Ditto.
11307 (layout_type): Ditto.
11308 (initialize_sizetypes): Ditto.
11309 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
11310 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
11311 (lookup_field_for_decl): Use SET_DECL_ALIGN.
11312 (get_chain_field): Ditto.
11313 (get_trampoline_type): Ditto.
11314 (get_nl_goto_field): Ditto.
11315 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
11317 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
11318 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
11319 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
11320 (build_qualified_type): Use SET_TYPE_ALIGN.
11321 (build_aligned_type, build_range_type_1): Ditto.
11322 (build_atomic_base): Ditto.
11323 (build_common_tree_nodes): Ditto.
11324 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
11325 (expand_one_stack_var_at): Ditto.
11326 * coverage.c (build_var): Use SET_DECL_ALIGN.
11327 * except.c (init_eh): Ditto.
11328 * function.c (assign_parm_setup_block): Ditto.
11329 * symtab.c (increase_alignment_1): Ditto.
11330 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
11331 * tree-vect-stmts.c (ensure_base_align): Ditto.
11332 * varasm.c (align_variable): Ditto.
11333 (assemble_variable): Ditto.
11334 (build_constant_desc): Ditto.
11335 (output_constant_def_contents): Ditto.
11337 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
11338 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
11339 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
11340 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
11341 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
11343 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
11346 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
11347 replace %vmovsd with "%vmovq".
11348 (vec_concatv2df): Likewise.
11350 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
11352 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
11353 (*vec_extractv2si_0): Ditto.
11354 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
11355 (zero_extended_scalar_load_operand splitters): Ditto.
11356 (vec_extract splitters): Ditto.
11357 (*vec_extractv4si_0_zext): Ditto.
11358 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
11359 and lowpart_subreg.
11360 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
11361 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
11362 (*sse4_1_extractps): Use lowpart_subreg.
11363 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
11365 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11367 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
11369 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
11370 Mention Solaris 11 packaging changes.
11371 Update gas and gld requirements.
11372 Remove reference to pre-Solaris 10 bug.
11373 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
11375 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
11378 2016-04-17 Jan Hubicka <jh@suse.cz>
11380 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
11381 max_loop_iterations_int.
11383 2016-04-18 Richard Biener <rguenther@suse.de>
11385 PR tree-optimization/43434
11386 * tree-ssa-structalias.c (struct vls_data): New.
11387 (visit_loadstore): Handle all pointer-based accesses.
11388 (compute_dependence_clique): Compute a bitmap of restrict tags
11389 assigned bases and pass it to visit_loadstore.
11391 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
11394 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
11395 armv8.1-a and armv8.1-a+crc.
11397 2016-04-18 Richard Biener <rguenther@suse.de>
11399 PR tree-optimization/70701
11400 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
11401 references after translating through a memcpy.
11403 2016-04-18 Richard Biener <rguenther@suse.de>
11405 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
11406 (compute_antic): ... here. For partial antic use regular
11407 postorder and scrap iteration.
11408 (compute_partial_antic_aux): Remove unused return value.
11409 (init_pre): Do not allocate postorder.
11410 (fini_pre): Do not free postorder.
11412 2016-04-18 Richard Biener <rguenther@suse.de>
11414 PR middle-end/37870
11415 * expmed.c (extract_bit_field_1): Remove broken case
11416 using a wider MODE_INT mode.
11418 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
11420 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
11421 unless compiling with at least GCC-4.8.
11423 2016-04-17 Jan Hubicka <jh@suse.cz>
11426 * graphite.c (graphite_finalize): Update call to
11427 tree_estimate_probability.
11428 * predict.h (tree_estimate_probability): Update prototype.
11430 2016-04-17 Jan Hubicka <jh@suse.cz>
11432 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
11433 (tree_estimate_probability): Likewise.
11434 (pass_profile::execute): Update.
11435 (report_predictor_hitrates): New function.
11436 * profile.c (compute_branch_probabilities): Use it.
11437 * predict.h (report_predictor_hitrates): Declare.
11439 2016-04-17 Jan Hubicka <jh@suse.cz>
11442 * cgraph.h (cgraph_node::set_const_flag,
11443 cgraph_node::set_pure_flag): Update prototype to return bool;
11445 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
11446 of interposable symbol are interposable, too.
11447 (cgraph_set_const_flag_1): Rename to ...
11448 (set_const_flag_1): ... this one; change to self recursive function
11449 instead of call_for_symbol_thunks_and_aliases. Handle correctly
11450 clearnig the flag in all variants and also virtual thunks of const
11451 functions are pure; track if any change was done.
11452 (cgraph_node::set_const_flag): Update.
11453 (struct set_pure_flag_info): New struct.
11454 (cgraph_set_pure_flag_1): Rename to ...
11455 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
11456 rather than pointer encoded flags; track if any changes was done;
11457 handle correctly clearning flag and setting flag of aliases already
11459 (cgraph_node::set_pure_flag): Update.
11460 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
11462 2016-04-17 Tom de Vries <tom@codesourcery.com>
11465 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
11466 backslash in label.
11468 2016-04-17 Tom de Vries <tom@codesourcery.com>
11470 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
11471 '{}<> ' as escape-for-record.
11473 2016-04-17 Tom de Vries <tom@codesourcery.com>
11475 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
11478 2016-04-17 Tom de Vries <tom@codesourcery.com>
11481 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
11482 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
11483 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
11484 * passes.c (finish_optimization_passes): Only call
11485 finish_graph_dump_file if dfi->graph_dump_initialized.
11486 (execute_function_dump, pass_init_dump_file): Use
11487 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
11489 2016-04-17 Tom de Vries <tom@codesourcery.com>
11491 PR tree-optimization/70256
11492 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
11493 (debug_varmap): New function.
11495 2016-04-17 Tom de Vries <tom@codesourcery.com>
11498 * passes.c (pass_manager::register_pass): Propagate pflags.
11500 2016-04-17 Tom de Vries <tom@codesourcery.com>
11503 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
11504 * passes.c (pass_manager::pass_manager): Declare and init p_start in
11505 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
11506 check if it's equal to p_start.
11507 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
11509 2016-04-15 Jan Hubicka <jh@suse.cz>
11512 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
11513 function does not bind to current def.
11514 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
11515 handle conservatively calls to functions that does not need to bind
11517 (check_call): Update call of worse_state.
11518 (ignore_edge_for_nothrow): Update.
11519 (ignore_edge_for_pure_const): Likewise.
11520 (propagate_pure_const): Update calls to worse_state.
11521 (skip_function_for_local_pure_const): Reformat comments.
11523 2016-04-15 Jan Hubicka <jh@suse.cz>
11526 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
11527 (cgraph_node::function_symbol): Likewise.
11528 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
11529 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
11530 (symtab_node::ultimate_alias_target): Add REF parameter.
11531 (symtab_node::binds_to_current_def_p): Declare.
11532 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
11533 (cgraph_node::function_symbol): Likewise.
11534 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
11535 (cgraph_node::get_availability): Likewise.
11536 (cgraph_edge::binds_to_current_def_p): New inline function.
11537 (varpool_node::get_availability): Add REF parameter.
11538 (varpool_node::ultimate_alias_target): Likewise.
11539 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
11540 (symtab_node::binds_to_current_def_p): Likewise.
11541 * varpool.c (varpool_node::get_availability): Likewise.
11543 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
11546 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
11547 Fix mode size check.
11549 2016-04-15 Jakub Jelinek <jakub@redhat.com>
11551 * BASE-VER: Set to 7.0.0.
11553 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
11555 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
11557 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11559 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
11560 architecture revisions.
11562 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
11564 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
11565 * config/i386/i386.c (ix86_using_red_zone): No longer static.
11566 * config/i386/i386.md (stack decrement to push peepholes): Guard
11567 with !x86_using_red_zone ().
11569 2016-04-15 Jakub Jelinek <jakub@redhat.com>
11572 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
11573 to dump_generic_node.
11574 (NIY): Pass also flags to do_niy.
11576 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
11578 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
11579 (simd_clone_vector_of_formal_parm_types)
11580 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
11581 (simd_clone_mangle, simd_clone_create)
11582 (simd_clone_adjust_return_type, create_tmp_simd_array)
11583 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
11584 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
11585 (ipa_simd_modify_function_body, simd_clone_linear_addend)
11586 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
11587 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
11588 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
11589 * omp-simd-clone.c: ... this new file.
11590 (simd_clone_vector_of_formal_parm_types): Make it static.
11591 * Makefile.in (OBJS): Add omp-simd-clone.o.
11593 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
11596 * config/i386/sse.md: Use proper memory operand modifiers.
11599 2016-04-15 Richard Biener <rguenther@suse.de>
11600 Alan Modra <amodra@gmail.com>
11602 PR tree-optimization/70130
11603 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
11604 when alignment stays not the same and no not use the realign
11607 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
11610 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
11611 direct move handlers for KFmode. Change TFmode handlers test from
11612 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
11614 2016-04-14 Jakub Jelinek <jakub@redhat.com>
11617 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
11618 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
11619 (inlined_polymorphic_ctor_dtor_block_p): Use it.
11620 * tree-ssa-live.c (remove_unused_scope_block_p): When
11621 in_ctor_dtor_block, avoid discarding not just BLOCKs with
11622 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
11623 block_ultimate_origin is FUNCTION_DECL.
11624 (remove_unused_locals): If current_function_decl is
11625 polymorphic_ctor_dtor_p, pass initial true to
11626 remove_unused_scope_block_p' is_ctor_dtor_block.
11628 2016-04-14 Martin Sebor <msebor@redhat.com>
11633 * doc/extend.texi (Variable Length): Revert.
11635 2016-04-14 Marek Polacek <polacek@redhat.com>
11636 Jan Hubicka <hubicka@ucw.cz>
11639 * tree.c (verify_type): Disable the canonical type of main variant
11642 2016-04-14 Jason Merrill <jason@redhat.com>
11644 * cfgexpand.c, expr.c: Revert previous change.
11646 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
11648 PR middle-end/70643
11649 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
11650 when building a mem ref for the incoming reduction variable.
11652 2016-04-14 Richard Biener <rguenther@suse.de>
11654 PR tree-optimization/70614
11655 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
11656 loop if the evolution dropped to chrec_dont_know.
11657 (interpret_condition_phi): Likewise.
11659 2016-04-14 Richard Biener <rguenther@suse.de>
11661 PR tree-optimization/70623
11662 * tree-ssa-pre.c (changed_blocks): Make global ...
11663 (compute_antic): ... local here. Move and fix worklist
11664 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
11665 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
11666 worklist handling, dump when ANTIC_IN changed.
11667 (compute_partial_antic_aux): Remove worklist handling.
11668 (init_pre): Do not compute post dominators. Add a comment about
11669 the CFG order chosen.
11670 (fini_pre): Do not free post dominators.
11672 2016-04-13 Martin Sebor <msebor@redhat.com>
11677 * doc/extend.texi (Variable Length): Document C++ specifics.
11679 2016-04-13 Jakub Jelinek <jakub@redhat.com>
11682 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
11683 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
11684 eh edges have been purged.
11687 * tree-sra.c (create_access_replacement,
11688 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
11690 * tree-pretty-print.c (dump_fancy_name): New function.
11691 (dump_decl_name, dump_generic_node): Use it.
11693 2016-04-13 Jason Merrill <jason@redhat.com>
11695 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
11696 * expr.c (expand_expr_real_1): Likewise.
11698 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
11700 * config/i386/i386.md (kunpckhi): Swap operands.
11701 (kunpcksi): Likewise.
11702 (kunpckdi): Likewise.
11703 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
11704 (vec_pack_trunc_<mode>): Likewise.
11706 2016-04-13 Jakub Jelinek <jakub@redhat.com>
11709 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
11711 PR middle-end/70633
11712 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
11713 gimplification turns some element into non-constant.
11716 * rtl.h (convert_memory_address_addr_space_1): New prototype.
11717 * explow.c (convert_memory_address_addr_space_1): No longer static,
11718 add NO_EMIT argument and don't call convert_modes if true, pass
11719 it down recursively, remove break after return.
11720 (convert_memory_address_addr_space): Adjust caller.
11721 * simplify-rtx.c (simplify_unary_operation_1): Call
11722 convert_memory_address_addr_space_1 instead of convert_memory_address,
11723 if it returns NULL, don't simplify.
11725 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
11728 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
11730 2016-04-12 Jakub Jelinek <jakub@redhat.com>
11732 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
11733 Bump the upper SIMDLEN limits, so that if the return type or
11734 characteristic type if the return type is void can be passed in
11735 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
11738 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
11741 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
11742 Do not use "=" constraint on an input constraint.
11743 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
11744 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
11745 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
11746 generates (neg (abs ...)) instead of (abs ...).
11748 2016-04-12 Jakub Jelinek <jakub@redhat.com>
11750 PR rtl-optimization/70596
11751 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
11752 just invalidate LRA data and reset them. Adjust dump wording.
11754 2016-04-12 Martin Liska <mliska@suse.cz>
11757 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
11759 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
11761 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
11762 max_loop_iterations_int.
11763 (tree_unswitch_outer_loop): Likewise.
11764 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
11765 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
11767 2016-04-12 Tom de Vries <tom@codesourcery.com>
11769 PR tree-optimization/68756
11770 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
11771 instead of new_name.
11773 2016-04-12 Jakub Jelinek <jakub@redhat.com>
11775 PR tree-optimization/70602
11776 * tree-sra.c (generate_subtree_copies): Don't write anything into
11777 constant pool decls.
11779 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
11780 regardless whether there are depend clauses or not.
11782 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
11785 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
11786 target attribute and pragma from changing the -mfloat128
11787 and -mfloat128-hardware options.
11789 * doc/extend.texi (Additional Floating Types): Document PowerPC
11790 __float128 restrictions.
11792 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
11795 * config/aarch64/driver-aarch64.c
11796 (aarch64_get_extension_string_for_isa_flags): New.
11797 (arch_extension): Rename to...
11798 (aarch64_arch_extension): ...This.
11799 (ext_to_feat_string): Rename to...
11800 (aarch64_extensions): ...This.
11801 (aarch64_core_data): Keep track of architecture extension flags.
11802 (cpu_data): Rename to...
11803 (aarch64_cpu_data): ...This.
11804 (aarch64_arch_driver_info): Keep track of architecture extension
11806 (get_arch_name_from_id): Rename to...
11807 (get_arch_from_id): ...This, change return type.
11808 (host_detect_local_cpu): Update and reformat for renames, handle
11809 extensions through common infrastructure.
11811 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
11814 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
11815 track of a canonical flag name.
11816 (all_extensions): Likewise.
11817 (arch_to_arch_name): Also track extension flags enabled by the arch.
11818 (all_architectures): Likewise.
11819 (aarch64_parse_extension): Move to here.
11820 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
11822 (aarch64_rewrite_selected_cpu): Update for above change.
11823 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
11824 are handled, such that the single explicit value enabled by an
11825 extension is kept seperate from the implicit values it also enables.
11826 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
11828 (aarch64_parse_extension): New.
11829 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
11830 here to config/aarch64/aarch64-protos.h.
11831 (aarch64_parse_extension): Move from here to
11832 common/config/aarch64/aarch64-common.c.
11833 (aarch64_option_print): Update.
11834 (aarch64_declare_function_name): Likewise.
11835 (aarch64_start_file): Likewise.
11836 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
11837 the canonical flag for extensions.
11838 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
11841 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
11843 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
11846 2016-04-09 Tom de Vries <tom@codesourcery.com>
11848 PR tree-optimization/68953
11849 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
11850 first to last subscript.
11852 2016-04-09 Jakub Jelinek <jakub@redhat.com>
11854 PR tree-optimization/70586
11855 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
11858 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
11862 PR tree-optimization/70373
11863 PR middle-end/70533
11864 PR middle-end/70534
11865 PR middle-end/70535
11866 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
11867 clauses for acc parallel reductions as necessary. Error on those
11869 * omp-low.c (scan_sharing_clauses): Don't install variables which
11870 are used in acc parallel reductions.
11871 (lower_rec_input_clauses): Remove dead code.
11872 (lower_oacc_reductions): Add support for reference reductions.
11873 (lower_reduction_clauses): Remove dead code.
11874 (lower_omp_target): Don't remap variables appearing in acc parallel
11876 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
11878 2016-04-08 Jakub Jelinek <jakub@redhat.com>
11880 PR middle-end/70593
11881 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
11882 with multiple SSA_NAME defs, force the outputs other than first
11883 to be live before calling live_track_process_def on each output.
11885 PR rtl-optimization/70574
11886 * fwprop.c (forward_propagate_and_simplify): Don't add
11887 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
11888 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
11889 paradoxical subregs within *loc.
11891 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
11893 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
11894 -ftree-parallelize-loops={0,1}.
11895 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
11896 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
11897 * config/ia64/hpux.h (LIB_SPEC): Likewise.
11898 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11899 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
11901 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
11904 * asan.c (instrument_derefs): If we get unknown location, extract it
11905 with EXPR_LOCATION.
11906 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
11908 2016-04-08 Tom de Vries <tom@codesourcery.com>
11910 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
11911 implicit firstprivate clause.
11913 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11916 * config/arm/thumb2.md (tst + branch-> lsls + branch
11917 peephole below *orsi_not_shiftsi_si): Require that condition
11918 register is dead after the peephole.
11919 (second peephole after the above): Likewise.
11921 2016-04-08 Alan Modra <amodra@gmail.com>
11924 * builtins.c (fold_builtin_classify): For IBM extended precision,
11925 look at just the high-order double to test for NaN.
11926 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
11927 test just the high double for Inf but both doubles for subnormal
11930 2016-04-07 Jakub Jelinek <jakub@redhat.com>
11932 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
11933 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
11934 node->simdclone->mask_mode != VOIDmode masks.
11935 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
11936 earlier, use it instead of node->simdclone.
11937 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
11938 Set clonei->mask_mode.
11940 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
11943 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
11944 Pass it through to cp_parser_already_scoped_statement.
11945 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
11946 it through to cp_parser_statement.
11947 (cp_parser_statement): Pass IF_P through to
11948 cp_parser_iteration_statement.
11949 (cp_parser_pragma): Adjust call to
11950 cp_parser_iteration_statement.
11952 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
11955 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
11956 resolve a future -Wparentheses warning.
11957 * omp-low.c (scan_sharing_clauses): Likewise.
11958 * tree-parloops.c (eliminate_local_variables): Likewise.
11960 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
11962 PR rtl-optimization/70398
11963 * lra-constraints.c (process_address_1): Check zero scale and code
11964 for reloading with zero scale.
11966 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
11968 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
11969 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
11971 2016-04-06 Jakub Jelinek <jakub@redhat.com>
11973 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
11974 Add support for AVX512F clones, include them by default for
11975 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
11976 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
11979 PR middle-end/70550
11980 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
11981 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
11982 firstprivate clauses.
11983 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
11984 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
11985 (lower_omp_target): Set TREE_NO_WARNING for
11986 non-addressable possibly uninitialized vars which are copied into
11987 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
11989 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
11991 * config/pa/predicates.md (integer_store_memory_operand): Accept
11992 REG+D operands with a large offset when reload_in_progress is true.
11993 (floating_point_store_memory_operand): Likewise.
11995 2016-04-05 Jakub Jelinek <jakub@redhat.com>
11998 * match.pd (nested int casts): Limit to GIMPLE.
12000 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
12003 * ipa-devirt.c (maybe_record_node): Fix comment; use
12004 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
12006 2016-04-05 Jakub Jelinek <jakub@redhat.com>
12008 PR rtl-optimization/70542
12009 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
12010 if there are any uses other than insn or debug insns.
12012 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
12013 Jakub Jelinek <jakub@redhat.com>
12015 PR tree-optimization/70509
12016 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
12017 Shift HOST_WIDE_INT_1U instead of 1.
12019 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
12021 PR tree-optimization/70509
12022 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
12023 of the vector base type for index.
12025 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
12028 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
12030 2016-04-05 Richard Biener <rguenther@suse.de>
12032 PR tree-optimization/70526
12033 * tree-sra.c (build_ref_for_offset): Use prev_base to
12034 extract the alias pointer type.
12036 2016-04-05 Richard Biener <rguenther@suse.de>
12038 * dse.c (struct store_info): Remove alias_set member.
12039 (struct read_info_type): Likewise.
12040 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
12041 spill_deleted, clear_alias_set_lookup): Remove.
12042 (get_group_info): Remove dead base == NULL_RTX case.
12043 (dse_step0): Remove initialization of removed variables.
12044 (delete_dead_store_insn): Reomve alias set dumping.
12045 (free_read_records): Remove alias_set handling.
12046 (canon_address): Remove alias_set_out parameter.
12047 (record_store): Remove spill_alias_set, it's always zero.
12048 (check_mem_read_rtx): Likewise.
12049 (dse_step2): Rename from ...
12050 (dse_step2_nospill): ... this. Adjust.
12051 (scan_stores): Rename from ...
12052 (scan_stores_nospill): ... this.
12053 (scan_reads): Rename from ...
12054 (scan_reads_nospill): ... this.
12055 (scan_stores_spill, scan_reads_spill): Remove.
12056 (dse_step3_scan): Remove for_spills argument which is always false.
12057 (dse_step3): Likewise.
12058 (dse_step5): Rename from ...
12059 (dse_step5_nospill): ... this. Remove alias_set handling.
12060 (rest_of_handle_dse): Adjust.
12062 2016-04-05 Jakub Jelinek <jakub@redhat.com>
12065 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
12066 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
12067 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
12068 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
12070 2016-04-05 Richard Biener <rguenther@suse.de>
12072 PR middle-end/70499
12073 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
12074 non-register type temporaries into SSA.
12076 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
12079 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
12080 calls when sanitizing.
12081 (possible_polymorphic_call_target_p): Fix formatting.
12083 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12084 Jakub Jelinek <jakub@redhat.com>
12086 PR middle-end/70457
12087 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
12088 to ensure a call statement is compatible with a built-in's
12090 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
12093 2016-04-04 Richard Biener <rguenther@suse.de>
12095 PR rtl-optimization/70484
12096 * rtl.h (canon_output_dependence): Declare.
12097 * alias.c (canon_output_dependence): New function.
12098 * dse.c (record_store): Use canon_output_dependence rather
12099 than canon_true_dependence.
12101 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
12104 * cgraph.h (symtab_node::copy_visibility_from): New function.
12105 * symtab.c (symtab_node::copy_visibility_from): New function.
12106 * ipa-visibility.c (optimize_weakref): New function.
12107 (function_and_variable_visibility): Use it.
12109 2016-04-04 Martin Liska <mliska@suse.cz>
12112 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
12113 value that is really in range handled by SBR instruction.
12114 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
12115 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
12116 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
12118 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
12122 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
12123 set, but not for SP_REG operands.
12125 2016-04-02 Martin Sebor <msebor@redhat.com>
12128 * fold-const.c (maybe_nonzero_address): New function.
12129 (fold_comparison): Call it. Fold equality and relational
12130 expressions involving null pointers.
12131 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
12133 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
12135 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
12136 the "Y" constraint (scalar FP 0.0 immediate).
12138 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
12139 Add the "const_double" to the list of operand constraints.
12141 2016-04-01 Jakub Jelinek <jakub@redhat.com>
12143 PR rtl-optimization/70467
12144 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
12145 If low word of the last operand is 0, just emit addition/subtraction
12148 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12151 * config/s390/s390.c (s390_expand_insv): Check for everything
12152 constant instead of just VOIDmode stuff.
12154 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12157 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
12159 2016-04-01 Nathan Sidwell <nathan@acm.org>
12161 * tree.def (TRY_CATCH_EXPR): Correct documentation.
12163 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
12165 PR rtl-optimization/70461
12166 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
12169 2016-03-31 Martin Liska <mliska@suse.cz>
12172 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
12173 a tree value or an immediate integer value to a buffer
12174 that is eventually copied to a BRIG section.
12175 (emit_immediate_operand): Call the function here.
12176 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
12177 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
12178 of class' fields that are removed.
12179 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
12180 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
12181 m_brig_repr_size fields.
12183 2016-03-31 Martin Liska <mliska@suse.cz>
12186 * hsa-gen.c (hsa_function_representation::update_dominance): New
12188 (convert_addr_to_flat_segment): Likewise.
12189 (gen_hsa_memory_set): New alignment argument.
12190 (gen_hsa_ctor_assignment): Likewise.
12191 (gen_hsa_insns_for_single_assignment): Provide alignment
12192 to gen_hsa_ctor_assignment.
12193 (gen_hsa_insns_for_direct_call): Add new argument.
12194 (expand_lhs_of_string_op): New function.
12195 (expand_string_operation_builtin): Likewise.
12196 (expand_memory_copy): New function.
12197 (expand_memory_set): New function.
12198 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
12199 (convert_switch_statements): Change signature.
12200 (generate_hsa): Use a return value of the function.
12201 (pass_gen_hsail::execute): Do not call
12202 convert_switch_statements here.
12203 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
12204 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
12205 (hsa_function_representation::update_dominance): New function.
12207 2016-03-31 Martin Liska <mliska@suse.cz>
12210 * hsa-brig.c (emit_directive_variable): Emit alignment
12211 according to hsa_symbol::m_align.
12212 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
12213 (dump_hsa_symbol): Dump alignment of HSA symbols.
12214 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
12215 (gen_hsa_addr_with_align): New function.
12216 (hsa_bitmemref_alignment): Use newly added function.
12217 (gen_hsa_insns_for_load): Likewise.
12218 (gen_hsa_insns_for_store): Likewise.
12219 (gen_hsa_memory_copy): New argument added.
12220 (gen_hsa_insns_for_single_assignment): Respect
12221 alignment for assignments processed via gen_hsa_memory_copy.
12222 (gen_hsa_insns_for_direct_call): Likewise.
12223 (gen_hsa_insns_for_return): Likewise.
12224 (gen_function_def_parameters): Set default alignment.
12225 * hsa.c (hsa_object_alignment): New function.
12226 (hsa_byte_alignment): Pasted function.
12227 * hsa.h (hsa_symbol::m_align): New field.
12229 2016-03-31 Bin Cheng <bin.cheng@arm.com>
12231 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
12232 scratch field for goto case.
12234 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
12236 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
12238 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
12241 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
12242 (scalar_chain::convert_insn): Call convert_op for reg
12243 moves to handle undefined registers.
12245 2016-03-31 Nathan Sidwell <nathan@acm.org>
12248 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
12249 Assert we don't want to move backwards.
12251 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
12254 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
12256 2016-03-31 Jakub Jelinek <jakub@redhat.com>
12258 PR rtl-optimization/70460
12259 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
12260 with operand from REG_LABEL_OPERAND, instead substitute
12261 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
12262 Don't do anything for REG_NON_LOCAL_GOTO jumps.
12264 2016-03-31 Martin Liska <mliska@suse.cz>
12266 * passes.c (execute_one_pass): Do not call
12267 todo_after for a discarded function.
12269 2016-03-31 Bin Cheng <bin.cheng@arm.com>
12271 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
12272 (no_cost, infinite_cost): Initialize the new field.
12273 (get_computation_cost_at): Record setup cost.
12274 (determine_use_iv_cost_address): Skip cost computation for sub
12275 uses if we can estimate it without losing accuracy.
12277 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
12279 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
12281 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
12282 max_loop_iterations_int.
12283 (tree_unswitch_outer_loop): Likewise.
12284 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
12285 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
12287 2016-03-30 Richard Biener <rguenther@suse.de>
12289 PR middle-end/70450
12290 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
12292 2016-03-30 Jakub Jelinek <jakub@redhat.com>
12295 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
12296 in gen_blendm expander.
12298 2016-03-30 Nick Clifton <nickc@redhat.com>
12301 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
12302 case where we are already provided with an SImode SUBREG.
12304 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
12307 * config/i386/i386.c (ix86_expand_epilogue): Properly check
12308 conflict between DRAP register and __builtin_eh_return.
12310 2016-03-30 Michael Matz <matz@suse.de>
12311 Richard Biener <rguenther@suse.de>
12314 * ipa-polymorphic-call.c (struct type_change_info): Change
12315 speculative to an unsigned allowing to limit the work we do.
12316 (csftc_abort_walking_p): New inline function..
12317 (check_stmt_for_type_change): Limit the number of may-defs
12318 skipped for speculative devirtualization to
12319 max-speculative-devirt-maydefs.
12320 * params.def (max-speculative-devirt-maydefs): New param.
12321 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
12323 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
12326 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
12329 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
12331 PR tree-optimization/59124
12332 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
12333 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
12335 2016-03-29 Jeff Law <law@redhat.com>
12337 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
12339 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
12341 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
12344 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
12346 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
12347 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
12348 gcrt0.o if linking dynamically.
12350 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
12353 * ipa-devirt.c (methods_equal_p): New function.
12354 (compare_virtual_tables): Use it.
12355 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
12356 * cgraphclones.c (clone_function_name_1): Use
12357 symbol_table::symbol_suffix_separator.
12358 * coverage.c (build_var): Likewise.
12359 * symtab.c (symbol_table::symbol_suffix_separator): New.
12361 2016-03-29 Jakub Jelinek <jakub@redhat.com>
12363 PR rtl-optimization/70429
12364 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
12365 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
12366 mode != result_mode.
12369 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
12371 PR tree-optimization/70405
12372 * ssa-iterators.h (num_imm_uses): Add missing braces.
12374 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
12376 PR rtl-optimization/68695
12377 * ira-color.c (allocno_copy_cost_saving): New.
12378 (improve_allocation): Use it.
12380 2016-03-29 Richard Henderson <rth@redhat.com>
12382 PR middle-end/70355
12383 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
12385 2016-03-29 Richard Biener <rguenther@suse.de>
12387 PR middle-end/70424
12388 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
12389 use alignment returned by get_pointer_alignment_1 if it is
12390 bigger than BITS_PER_UNIT.
12391 * builtins.c (get_pointer_alignment_1): Do not return true
12392 for alignment extracted from SSA info.
12394 2016-03-28 James Bowman <james.bowman@ftdichip.com>
12396 * config/ft32/ft32.opt (mnodiv): New.
12397 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
12398 * doc/invoke.texi (FT32 Options -mnodiv): New.
12400 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
12403 * config/i386/i386.md (define_split, andn): Fix modes.
12405 2016-03-26 Richard Biener <rguenther@suse.de>
12406 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12409 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
12411 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
12412 as 2nd argument to cl_optimization_restore().
12414 2016-03-25 Richard Henderson <rth@redhat.com>
12417 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
12418 * config/aarch64/aarch64-protos.h: Declare it.
12419 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
12421 2016-03-25 Alan Modra <amodra@gmail.com>
12424 * config/rs6000/constraints.md (j): Simplify.
12425 * config/rs6000/predicates.md (easy_fp_constant): Exclude
12427 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
12428 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
12429 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
12430 in all constraint alternatives.
12431 (movtd_64bit_nodm): Delete "j" constraint alternative.
12433 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
12435 * tree-ssa-propagate.c: Enhance docs for
12436 SSA_PROP_NOT_INTERESTING.
12438 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
12440 * doc/extend.texi: Fix typo in documentation to pure attribute.
12442 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
12445 * config/pa/pa.md (bswapdi2): Use a scratch register.
12447 2016-03-24 Richard Henderson <rth@redhat.com>
12449 PR middle-end/69845
12450 * fold-const.c (extract_muldiv_1): Correct test for multiplication
12453 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
12455 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
12456 using ix86_expand_binary_operator instead of gen_andsi3.
12458 2016-03-24 Richard Biener <rguenther@suse.de>
12460 PR tree-optimization/70396
12461 * tree-vect-stmts.c (vectorizable_comparison): Use
12462 get_vectype_for_scalar_type.
12464 2016-03-24 Richard Biener <rguenther@suse.de>
12466 PR middle-end/70370
12467 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
12468 with register bases.
12470 2016-03-24 Richard Biener <rguenther@suse.de>
12472 PR tree-optimization/70372
12473 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
12474 build_all_ones_cst to also handle vector types correctly.
12476 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
12479 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
12482 2016-03-23 Marek Polacek <polacek@redhat.com>
12485 * doc/invoke.texi: Document -Wignored-attributes.
12487 2016-03-23 Bin Cheng <bin.cheng@arm.com>
12489 PR tree-optimization/69042
12490 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
12491 parameter from 30 to 40.
12493 2016-03-23 Bin Cheng <bin.cheng@arm.com>
12495 PR tree-optimization/69042
12496 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
12497 for use with constant offset stripped in base.
12499 2016-03-23 Richard Biener <rguenther@suse.de>
12501 PR middle-end/70251
12502 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
12503 mode compatibility check.
12504 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
12506 2016-03-23 Jeff Law <law@redhat.com>
12508 PR tree-optimization/64058
12509 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
12511 (struct ssa_conflicts): Move up earlier in the file.
12512 (conflicts_, var_map_): New static variables.
12513 (initialize_conflict_count): New function to initialize the
12514 CONFLICT_COUNT field for each conflict pair.
12515 (compare_pairs): Lazily initialize the conflict count and use it
12516 as the first tie-breaker.
12517 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
12518 and wipe conflicts_ and map_ around the call to qsort. Remove
12519 special case for 2 coalesce pairs.
12520 * bitmap.c (bitmap_count_unique_bits): New function.
12521 (bitmap_count_bits_in_word): New function, extracted from
12523 (bitmap_count_bits): Use bitmap_count_bits_in_word.
12524 * bitmap.h (bitmap_count_unique_bits): Declare it.
12526 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
12529 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
12530 transparent alias chain for decl assembler name.
12531 * config/sol2.c (solaris_assemble_visibility): Likewise.
12533 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12535 * config/arm/arm1020e.md (1020call_op): Reduce reservation
12537 (v10_fdivs): Likewise.
12538 (v10_fdivd): Likewise.
12540 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12543 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
12544 to not call fclose twice on file.
12546 2016-03-23 Jakub Jelinek <jakub@redhat.com>
12548 PR tree-optimization/70354
12549 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
12550 oprnd0 is wider than oprnd1 and there is a cast from the wider
12551 type to oprnd1, mask it with the mask of the narrower type.
12554 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
12555 Optimize TARGET_STV splitters, if high or low word of last argument
12558 2016-03-22 Jeff Law <law@redhat.com>
12561 tree-ssa-threadbackward.c
12562 (fsm_find_control_statement_thread_paths): Correctly distinguish
12563 between old style jump threads vs FSM jump threads.
12565 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
12568 * config/i386/i386.c (scalar_chain::convert_op): Support
12569 uninitialized register usage case.
12571 2016-03-22 Richard Biener <rguenther@suse.de>
12573 PR middle-end/70251
12574 * genmatch.c (gen_transform): Adjust last parameter to a three-state
12576 (capture::gen_transform): ... to change behavior when substituting
12577 a condition into cond or not-cond expr context.
12578 (dt_simplify::gen_1): Adjust.
12579 * gimple-match-head.c: Include gimplify.h for unshare_expr.
12580 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
12581 last change and instead change to
12582 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
12583 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
12585 2016-03-22 Anthony Green <green@moxielogic.com>
12587 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
12588 issue for moxiebox targets.
12589 (CC1PLUS_SPEC): Ditto.
12591 2016-03-22 Richard Biener <rguenther@suse.de>
12593 PR middle-end/70333
12594 * fold-const.c (extract_muldiv_1): Properly perform multiplication
12597 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
12599 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
12601 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
12604 * config/i386/i386.c (def_builtin): Handle
12605 OPTION_MASK_ISA_AVX512VL to be and-ed with other
12607 (const struct builtin_description bdesc_special_args[]):
12608 Remove duplicate ISA bits.
12610 2016-03-22 Jakub Jelinek <jakub@redhat.com>
12613 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
12614 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
12615 in a way that works also for AVX512BW.
12618 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
12619 instead of source if operands[1] is xmm16 and above and
12620 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
12621 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
12624 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
12625 on assign if (*from_p) is a comparison, set it to
12626 TREE_NO_WARNING (*from_p).
12628 2016-03-21 Jakub Jelinek <jakub@redhat.com>
12630 PR middle-end/70326
12631 * lra.c (restore_scratches): Ignore deleted insns.
12633 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
12634 Jakub Jelinek <jakub@redhat.com>
12636 PR tree-optimization/70317
12637 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
12640 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
12643 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
12644 of ix86_expand_move.
12646 (movti): Use general_operand for operand 1 predicate.
12648 2016-03-21 Martin Liska <mliska@suse.cz>
12650 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
12652 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
12654 2016-03-21 Martin Liska <mliska@suse.cz>
12657 * ipa-icf.c (sem_function::parse): Skip static
12658 constructors and destructors.
12660 2016-03-21 Jakub Jelinek <jakub@redhat.com>
12663 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
12664 function-like macro, peek following token(s) if it is followed
12665 by CPP_OPEN_PAREN token with optional padding in between, and
12666 if not, don't treat it like a macro.
12668 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
12669 Alexander Monakov <amonakov@ispras.ru>
12671 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
12672 for the stabs debug format.
12674 2016-03-21 Richard Biener <rguenther@suse.de>
12676 PR tree-optimization/70310
12677 * tree-vect-generic.c (expand_vector_condition): Fold the built
12680 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
12683 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
12684 Block third alternative for AVX-512VL target,
12686 2016-03-21 Martin Liska <mliska@suse.cz>
12689 * hsa-brig.c (emit_function_directives): Mark unemitted
12690 global variables for emission.
12691 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
12692 (get_symbol_for_decl): Likewise.
12693 * hsa.h (struct hsa_symbol): New flag.
12695 2016-03-21 Richard Biener <rguenther@suse.de>
12697 PR tree-optimization/70288
12698 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
12699 we do not estimate unsimplified all-constant conditionals or
12700 switches as optimized away.
12702 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
12704 PR rtl-optimization/69102
12705 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
12706 when we have a readonly dependency context.
12708 2016-03-18 Jeff Law <law@redhat.com>
12710 PR rtl-optimization/70263
12711 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
12712 (update_equiv_regs): When trying to move a store to after the insn
12713 that sets the source of the store, make sure the store occurs after
12714 the insn that sets the source of the store. When successful note
12715 the REG_EQUIV note created in the dump file.
12717 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
12718 Bernd Schmidt <bschmidt@redhat.com>
12720 * doc/extend.texi: Document more potential problems with basic asms.
12722 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
12724 PR rtl-optimization/70278
12725 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
12728 2016-03-18 Jason Merrill <jason@redhat.com>
12730 * calls.c (load_register_parameters): Fix zero size sibcall logic.
12732 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
12734 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
12735 values to 128b regs.
12737 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
12739 PR tree-optimization/70252
12740 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
12741 boolean vector has a proper number of elements.
12742 (supportable_narrowing_operation): Likewise.
12744 2016-03-18 Tom de Vries <tom@codesourcery.com>
12747 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
12749 2016-03-18 Jakub Jelinek <jakub@redhat.com>
12751 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
12752 instead of replace_rtx for DEBUG_INSNs.
12754 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12756 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
12757 load type reservations.
12759 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
12762 * config/pa/constraints.md: Revert 2015-02-13 change. Use
12763 define_constraint for "Q" and "T" constraints.
12765 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
12767 Tweak the pipeline model for Exynos M1
12769 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
12772 2016-03-17 David Malcolm <dmalcolm@redhat.com>
12775 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
12776 where one or both locations aren't within a line_map.
12778 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
12781 * opts.c (finish_options): Don't set flag_pie to the default if
12782 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
12785 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
12787 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
12788 true as ALL_REGS argument to replace_rtx.
12790 2016-03-17 Richard Biener <rguenther@suse.de>
12793 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
12796 2016-03-17 Jakub Jelinek <jakub@redhat.com>
12799 * rtl.h (replace_rtx): Add ALL_REGS argument.
12800 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
12801 equality and assert mode is the same, instead of just rtx pointer
12803 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
12804 true as ALL_REGS argument to replace_rtx.
12806 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
12808 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
12809 for boolean vector with vector mode only.
12810 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
12812 2016-03-17 Nick Clifton <nickc@redhat.com>
12815 * config/rx/rx.c (rx_print_integer): Print negative constants in
12818 2016-03-17 Jakub Jelinek <jakub@redhat.com>
12821 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
12823 2016-03-16 Richard Henderson <rth@redhat.com>
12824 Richard Biener <rguenth@suse.de>
12826 PR middle-end/70240
12827 PR middle-end/68215
12829 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
12830 first operand as is_gimple_condexpr.
12832 PR middle-end/70240
12833 PR middle-end/68215
12835 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
12836 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
12837 Do not gimplify the result.
12838 (do_unop): Adjust call to tree_vec_extract.
12839 (do_binop): Likewise.
12840 (do_compare): Likewise.
12841 (do_plus_minus): Likewise.
12842 (do_negate): Likewise.
12843 (expand_vector_condition): Likewise.
12844 (do_cond): Likewise.
12846 2016-03-16 Richard Henderson <rth@redhat.com>
12849 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
12850 (aarch64_classify_address): Use it.
12851 (aarch64_legitimize_address): Force all subexpressions of PLUS
12852 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
12854 2016-03-16 Jakub Jelinek <jakub@redhat.com>
12855 Richard Biener <rguenth@suse.de>
12858 * rtlanal.c (replace_rtx): For REG, if from is a REG,
12859 return to even if only REGNO is equal, and assert
12862 2016-03-11 Jeff Law <law@redhat.com>
12864 PR rtl-optimization/70224
12865 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
12867 2016-03-16 Richard Henderson <rth@redhat.com>
12869 PR middle-end/70199
12870 * function.h (struct function): Add has_forced_label_in_static.
12871 * gimplify.c (force_labels_r): Set it.
12872 * lto-streamer-in.c (input_struct_function_base): Read it.
12873 * lto-streamer-out.c (output_struct_function_base): Write it.
12874 * tree-inline.c (has_label_address_in_static_1): Remove.
12875 (copy_forbidden): Remove fndecl parameter; test
12876 has_forced_label_in_static.
12877 (inline_forbidden_p): Update call to copy_forbidden.
12878 (tree_versionable_function_p): Likewise.
12879 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
12880 (chkp_versioning): Likewise.
12881 * tree-inline.h (copy_forbidden): Update decl.
12883 2016-03-16 Marek Polacek <polacek@redhat.com>
12886 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
12887 function being thunked if the result type doesn't have fixed size.
12888 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
12889 doesn't have fixed size.
12891 2016-03-16 Bin Cheng <bin.cheng@arm.com>
12893 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
12894 reporting malformed loop nest.
12896 2016-03-16 Tom de Vries <tom@codesourcery.com>
12899 * ipa-devirt.c (possible_polymorphic_call_targets): Move
12900 nodes.length () == 1 test to before first nodes[0] access.
12902 2016-03-16 Tom de Vries <tom@codesourcery.com>
12904 PR tree-optimization/68715
12905 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
12906 single_pred_p test.
12908 2016-03-16 Tom de Vries <tom@codesourcery.com>
12910 PR tree-optimization/68809
12911 * graphite-scop-detection.c (same_close_phi_node): Test if result types
12914 2016-03-16 Carlos O'Donell <carlos@redhat.com>
12915 Sandra Loosemore <sandra@codesourcery.com>
12917 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
12918 on leaf attribute. Mention ELF interposition problems.
12920 2016-03-16 Alan Modra <amodra@gmail.com>
12922 PR rtl-optimization/69195
12923 PR rtl-optimization/47992
12924 * ira.c (indirect_jump_optimize): Ignore artificial defs.
12927 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
12930 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
12932 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12934 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
12936 2016-03-15 Jakub Jelinek <jakub@redhat.com>
12938 PR rtl-optimization/70222
12939 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
12940 optimization if mode is different from result_mode, queue up masking
12941 of the result in outer_op. Formatting fix.
12943 PR middle-end/70239
12944 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
12947 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
12949 PR rtl-optimization/69032
12950 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
12951 looping backwards over basic block insns.
12953 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
12956 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
12957 to non-speculative when propagating trap bits.
12959 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
12961 PR rtl-optimization/63384
12962 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
12963 DEBUG_INSN_P insns.
12965 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
12968 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
12969 factored out from ...
12970 (sched_analyze_insn): ... here.
12971 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
12972 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
12973 get_implicit_reg_pending_clobbers in it.
12974 (setup_id_reg_sets): Use setup_id_implicit_regs.
12975 (deps_init_id): Ditto.
12977 2016-03-15 Tom de Vries <tom@codesourcery.com>
12980 * cgraph.c (cgraph_node::get_body): Save, reset and restore
12982 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
12983 execute_function_dump.
12984 (execute_one_pass): Don't dump function if it will be dumped after ipa
12987 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
12989 * genrecog.c (match_pattern_2): If pred is NULL don't call
12990 safe_predicate_mode on it.
12992 2016-03-14 Jakub Jelinek <jakub@redhat.com>
12994 PR middle-end/70219
12995 * lra-constraints.c (delete_move_and_clobber): Change assertion
12996 to also allow dregno == 0.
12998 2016-03-14 Richard Henderson <rth@redhat.com>
13001 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
13002 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
13003 (reassociate_bb): Use optimize_vec_cond_expr; avoid
13004 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
13007 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
13010 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
13012 (lra_create_live_ranges_1): initialize hard register biggest_mode to
13014 * lra-constraints.c (split_reg): For hard regs, try to find the
13015 biggest single-register mode used in the function.
13017 2016-03-14 Richard Biener <rguenther@suse.de>
13019 PR tree-optimization/56365
13020 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
13021 constants to compare against.
13023 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
13026 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
13027 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
13028 (define_split for the GPR case): Use int_reg_operand instead of
13029 gpc_reg_operand for the output.
13031 2016-03-14 Tom de Vries <tom@codesourcery.com>
13033 PR tree-optimization/70045
13034 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
13035 create_empty_if_region_on_edge argument.
13037 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
13039 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
13040 (STACK_CHECK_PROTECT): Likewise.
13041 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
13042 (STACK_CHECK_PROTECT): Likewise.
13043 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
13044 (STACK_CHECK_PROTECT): Likewise.
13045 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
13046 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13047 (STACK_CHECK_PROTECT): Likewise.
13049 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
13051 PR rtl-optimization/69307
13052 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
13053 registers in modes that span more than one register.
13055 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
13058 * lra-constraints.c (delete_move_and_clobber): New.
13059 (remove_inheritance_pseudos): Use it.
13061 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
13064 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
13065 the libcall is LCT_THROW.
13066 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
13067 for the checking routine.
13069 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
13072 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
13073 optimization if we have direct move.
13074 (roundu32<mode>2_fprs): Likewise.
13076 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
13079 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
13081 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
13082 Arguments swapped. All callers changed. Take reg_renumber into
13083 account, and Calculate and compare register ranges for hard regs.
13085 2016-03-11 Jeff Law <law@redhat.com>
13087 PR tree-optimization/70190
13088 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13089 Handle cases where we can not extract the taken edge, even though we
13090 found a constant value.
13092 PR tree-optimization/64058
13093 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
13094 (num_coalesce_pairs): Move up earlier in file.
13095 (find_coalesce_pair): Initialize the INDEX field for each pair
13097 (compare_pairs): No longer sort on the elements in each pair.
13098 Instead break ties with the index of the coalesce pair.
13100 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13103 * config/aarch64/aarch64-protos.h
13104 (aarch64_save_restore_target_globals): New prototype.
13105 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
13106 Call the above when popping pragma.
13107 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
13109 (aarch64_set_current_function): Rewrite using the above.
13111 2016-03-11 Jakub Jelinek <jakub@redhat.com>
13113 PR tree-optimization/70177
13114 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
13115 (extract_ops_from_tree): ... this. In the 2 argument
13116 overload remove _1 suffix.
13117 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
13118 (extract_ops_from_tree): ... this.
13119 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
13121 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
13122 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
13123 extract_ops_from_tree instead of 2 operand one.
13125 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
13127 PR tree-optimization/70013
13128 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
13129 for constant-pool entries.
13131 2016-03-11 Jakub Jelinek <jakub@redhat.com>
13133 PR rtl-optimization/70174
13134 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
13135 followed by gen_lowpart on force_reg instead of just gen_lowpart.
13137 PR tree-optimization/70169
13138 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
13139 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
13142 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
13143 Jakub Jelinek <jakub@redhat.com>
13146 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
13147 of uninitialized values.
13149 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13151 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
13153 ("*trunctddd2"): New pattern definition.
13154 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
13157 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13159 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
13160 definitions for BFP and DFP rounding modes.
13161 ("fixuns_truncdddi2", "fixuns_trunctddi2")
13162 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
13163 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
13164 ("fix_trunctf<mode>2"): Use the new constants instead of magic
13167 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13169 * config/s390/constraints.md: Adjust comment.
13170 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
13171 s390_decompose_addrstyle_without_index.
13172 * config/s390/predicates.md (shift_count_or_setmem_operand):
13173 Rename to setmem_operand.
13174 * config/s390/s390-protos.h
13175 (s390_decompose_shift_count): Rename to
13176 s390_decompose_addrstyle_without_index.
13177 * config/s390/s390.c (s390_decompose_shift_count)
13178 (s390_mem_constraint, print_shift_count_operand)
13179 (print_operand_address, print_operand): Rename
13180 s390_decompose_shift_count to
13181 s390_decompose_addrstyle_without_index and rename
13182 print_shift_count_operand to print_addrstyle_operand troughout the
13184 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
13185 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
13186 Rename shift_count_or_setmem_operand to setmem_operand.
13187 * config/s390/vx-builtins.md ("vec_insert<mode>")
13188 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
13191 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13194 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
13195 Handle overlapping retval and newval.
13197 2016-03-10 Nick Clifton <nickc@redhat.com>
13200 * config/aarch64/aarch64.c
13201 (aarch64_override_options_after_change_1): When forcing
13202 flag_omit_frame_pointer to be true, use a special value that can
13203 be detected if this function is called again, thus preventing
13204 flag_omit_leaf_frame_pointer from being forced to be false.
13206 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13208 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
13209 Set x_flag_omit_leaf_frame_pointer when handling
13210 -momit-leaf-frame-pointer.
13212 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
13215 * cgraph.c (cgraph_node::dump): Dump split_part and
13216 indirect_call_target.
13217 * cgraph.h (cgraph_node): Add indirect_call_target flag.
13218 * ipa.c (has_addr_references_p): Cleanup.
13219 (is_indirect_call_target_p): New.
13220 (walk_polymorphic_call_targets): Do not mark virtuals that may be
13221 called indirectly as local.
13222 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
13224 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
13227 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
13228 on cxa_pure_virtual.
13230 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
13233 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
13235 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
13238 * tree.c (need_assembler_name_p): Only record main variant type names.
13240 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
13243 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
13244 Always define to 0 or 1.
13245 (TARGET_FIX_ERR_A53_843419): New macro.
13246 * config/aarch64/aarch64-elf-raw.h
13247 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
13248 * config/aarch64/aarch64-linux.h: Likewise.
13249 * config/aarch64/aarch64.c
13250 (aarch64_override_options_after_change_1): Do not default
13251 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
13253 (aarch64_attributes): Handle fix-cortex-a53-843419.
13254 (aarch64_can_inline_p): Likewise.
13255 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
13257 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
13258 Jakub Jelinek <jakub@redhat.com>
13260 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
13261 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
13262 DECL_COMMONS if flag_unconstrained_commons is set.
13263 * tree-dfa.c (get_ref_base_and_extent): Likewise.
13264 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
13265 (funconstrained-commons): Document.
13267 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
13269 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
13270 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
13272 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
13274 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
13275 has a proper number of elements.
13277 2016-03-10 Alan Modra <amodra@gmail.com>
13279 PR rtl-optimization/69195
13280 PR rtl-optimization/47992
13281 * ira.c (recorded_label_ref): Delete.
13282 (update_equiv_regs): Return void.
13283 (indirect_jump_optimize): New function.
13284 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
13285 before regstat_compute_ri. Don't rebuild_jump_labels here.
13286 Delete update_regstat.
13288 2016-03-10 Richard Biener <rguenther@suse.de>
13290 PR tree-optimization/70128
13291 * tree-ssa-structalias.c (set_uids_in_ptset): Set
13292 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
13294 2016-03-09 Jakub Jelinek <jakub@redhat.com>
13296 PR tree-optimization/70152
13297 * tree-sra.c (replace_removed_params_ssa_names): Copy over
13298 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
13301 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
13302 instead of gen_sse2_loadlpd.
13303 * config/i386/sse.md (*vec_concatv2df): Rename to...
13304 (vec_concatv2df): ... this.
13306 PR tree-optimization/70127
13307 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
13309 2016-03-09 David Malcolm <dmalcolm@redhat.com>
13313 * diagnostic-show-locus.c (compatible_locations_p): New function.
13314 (layout::layout): Sanitize ranges using compatible_locations_p.
13316 2016-03-09 David Malcolm <dmalcolm@redhat.com>
13320 * diagnostic-show-locus.c (layout_range::layout_range): Replace
13321 location_range param with three const expanded_locations * and a
13323 (layout::layout): Replace call to
13324 rich_location::lazily_expand_location with get_expanded_location.
13325 Extract the range and perform location expansion here, passing
13326 the results to the layout_range ctor.
13327 * diagnostic.c (source_range::debug): Delete.
13328 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
13329 of rich_location::get_expanded_location.
13330 * gcc-rich-location.c (get_range_for_expr): Delete.
13331 (gcc_rich_location::add_expr): Reimplement to avoid the
13332 rich_location::add_range overload that took a location_range,
13333 passing a location_t instead.
13335 2016-03-09 Richard Biener <rguenther@suse.de>
13336 Jakub Jelinek <jakub@redhat.com>
13338 PR tree-optimization/70138
13339 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
13340 Also skip vect_double_reduction_def.
13342 2016-03-09 Jakub Jelinek <jakub@redhat.com>
13345 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
13346 if the operand is "m".
13348 2016-03-09 Nathan Sidwell <nathan@acm.org>
13350 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
13352 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
13354 * config/i386/i386.c (processor_target_table): Fix cost table
13355 intialization order for znver1.
13357 2016-03-08 Jakub Jelinek <jakub@redhat.com>
13359 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
13360 - becuase -> because.
13361 * ipa-reference.c (ignore_module_statics): Likewise.
13362 * cgraph.c (cgraph_node::get_body): Likewise.
13363 * ipa-inline.c (early_inliner): Likewise.
13364 * ipa-devirt.c (types_same_for_odr): Likewise.
13365 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
13366 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
13368 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13370 * tree-ssa-math-opts.c: Fix typo in comment.
13372 2016-03-08 Jakub Jelinek <jakub@redhat.com>
13375 * config/i386/i386.c (scalar_chain::make_vector_copies,
13376 scalar_chain::convert_reg): Call end_sequence in between
13377 get_insns and emit_conversion_insns rather than after both
13380 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
13383 * config/i386/i386.h (machine_function): Add
13384 pc_thunk_call_expanded flag.
13385 (ix86_pc_thunk_call_expanded): New define.
13386 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
13387 (*set_got): Rename insn pattern from set_got.
13388 (*set_got_labelled): Rename inst pattern from set_got_labelled.
13389 * config/i386/i386.c (ix86_compute_frame_layout): Use
13390 ix86_pc_thunk_call_expanded to prevent red-zone.
13392 2016-03-07 Martin Jambor <mjambor@suse.cz>
13394 * hsa.h (hsa_get_ctor_statements): Declare.
13395 (hsa_get_dtor_statements): Likewise.
13396 (hsa_get_kernel_dispatch_type): Likewise.
13397 * hsa.c (hsa_get_ctor_statements): New function.
13398 (hsa_get_dtor_statements): Likewise.
13399 (hsa_get_kernel_dispatch_type): Likewise.
13400 * hsa-brig.c (hsa_cdtor_statements): Removed.
13401 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
13402 hsa_get_dtor_statements.
13403 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
13404 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
13406 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
13408 * config/arm/arm-cores.def (cortex-r8): New.
13409 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
13410 * config/arm/arm-tune.md: Likewise.
13411 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
13413 2016-03-07 Martin Sebor <msebor@redhat.com>
13415 PR rtl-optimization/19705
13416 * doc/invoke.texi (Options That Control Optimization): Clarify
13417 -fno-branch-count-reg.
13419 2016-02-26 Richard Biener <rguenther@suse.de>
13420 Jeff Law <law@redhat.com>
13422 PR tree-optimization/69740
13423 * cfghooks.c (remove_edge): Request loop fixups if we delete
13424 an edge that might turn an irreducible loop into a natural
13426 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
13427 Move after definition of loops_state_clear.
13429 2016-03-07 Bin Cheng <bin.cheng@arm.com>
13431 PR rtl-optimization/69052
13432 * rtlanal.c (commutative_operand_precedence): Set higher precedence
13435 2016-03-07 Tom de Vries <tom@codesourcery.com>
13437 PR tree-optimization/70116
13438 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
13439 is_tm_ending stmts and ubsan/asan internal functions.
13440 (find_duplicate): Use it. Don't test is_tm_ending here.
13442 2016-03-07 Richard Biener <rguenther@suse.de>
13444 PR tree-optimization/70115
13445 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
13446 (propagate_constants_for_unrolling): Use replace_uses_by.
13448 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
13450 PR middle-end/69916
13451 * omp-low.c (struct oacc_loop): Add ifns.
13452 (new_oacc_loop_raw): Initialize it.
13453 (finish_oacc_loop): Clear mask & flags if no ifns.
13454 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
13455 (oacc_loop_xform_loop): Add ifns arg & adjust.
13456 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
13458 2016-03-07 Richard Henderson <rth@redhat.com>
13461 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
13462 (insert_value_copy_on_edge): Likewise.
13464 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13466 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
13468 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13471 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
13473 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
13475 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
13477 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
13479 Fix sseimul type attribute.
13480 * config/i386/znver1.md
13481 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
13482 znver1_sseimul_avx256_load) : Fix the type attribute.
13483 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
13484 pipe usage and latency.
13486 2016-03-05 Jakub Jelinek <jakub@redhat.com>
13489 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
13490 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
13493 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
13496 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
13498 PR rtl-optimization/69941
13499 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
13500 the reg share its mode.
13502 2016-03-04 Jeff Law <law@redhat.com>
13504 PR tree-optimization/69196
13505 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13506 If the both SSA_NAMEs are anonymous, then consider them unassociated
13507 and include the PHI in the statement count.
13509 2016-03-05 Tom de Vries <tom@codesourcery.com>
13511 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
13512 construct in oacc routine. Check for oacc region in oacc routine.
13514 2016-03-04 Jakub Jelinek <jakub@redhat.com>
13517 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
13518 2016-02-22 changes, instead don't recurse if RECUR is already true.
13519 Don't change *dynamic_check if RECUR. Adjust recursive caller
13520 to pass true to the new argument.
13521 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
13524 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
13525 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
13527 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
13529 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
13531 PR rtl-optimization/57676
13532 * lra-assigns.c (lra_assign): Guard test for maximum iterations
13533 with flag_checking.
13535 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
13537 * tree-vect-patterns.c (search_type_for_mask): Handle
13538 comparison of booleans.
13540 2016-03-04 Jakub Jelinek <jakub@redhat.com>
13542 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
13546 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
13547 all other ops that have dw_val_class_die_ref operands,
13548 and DW_OP_GNU_entry_value.
13550 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13552 PR rtl-optimization/69904
13553 * config/arm/arm.c (arm_cannot_copy_insn_p):
13554 Return true for load-exclusive instructions.
13556 2016-03-03 Jakub Jelinek <jakub@redhat.com>
13559 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
13560 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
13561 the pattern no matter if it is used just by non-pattern, pattern
13563 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
13564 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
13565 oprnd1 def_stmt is in pattern, don't look through it.
13567 2016-03-03 Marek Polacek <polacek@redhat.com>
13569 PR middle-end/70050
13570 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
13572 2016-03-03 Martin Liska <mliska@suse.cz>
13574 PR tree-optimization/70043
13575 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
13576 previous statement if we see a debug statement.
13578 2016-03-03 Richard Biener <rguenther@suse.de>
13580 PR tree-optimization/55936
13581 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
13582 parameter and guard unsafe equivalence use.
13583 (vrp_evaluate_conditional_warnv_with_ops): Always use
13584 safe equivalences but not via the quadratic compare_names
13587 2016-03-03 Michael Collison <michael.collison@linaro.org>
13590 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
13591 for operand 1 to s_register_operand. Change predicate for operand
13592 2 to arm_not_immediate_operand.
13594 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
13596 * doc/tm.texi: Regenerated.
13598 2016-03-02 Richard Henderson <rth@redhat.com>
13601 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
13602 simplification when all args are positive non-fixed registers.
13604 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13606 * target.def (lra_p): Specify that new ports should use LRA.
13608 2016-03-02 Jakub Jelinek <jakub@redhat.com>
13611 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
13612 gimplify_type_sizes the type they refer to.
13613 (omp_notice_variable): Handle reference vars to VLAs.
13614 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
13615 reference to VLA decls in the second pass instead of first pass.
13617 2016-03-02 Tom de Vries <tom@codesourcery.com>
13619 PR tree-optimization/68659
13620 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
13621 new_expr == NULL_TREE.
13622 (get_new_name): Handle ADDR_EXPR.
13624 2016-03-02 Bin Cheng <bin.cheng@arm.com>
13626 PR rtl-optimization/69052
13627 * loop-invariant.c (canonicalize_address): New function.
13628 (inv_can_prop_to_addr_use): Check validity of address expression
13629 which is canonicalized by above function.
13631 2016-03-02 Alan Modra <amodra@gmail.com>
13634 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
13637 2016-03-02 Jakub Jelinek <jakub@redhat.com>
13640 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
13641 (*movhi_internal): Put mask moves from and to memory separately
13642 from moves from/to GPRs.
13644 2016-03-02 Richard Biener <rguenther@suse.de>
13646 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
13647 GENERIC expressions in GIMPLE.
13649 2016-03-02 Richard Biener <rguenther@suse.de>
13651 * config/i386/i386.c (type_natural_mode): Fix typo.
13653 2016-03-02 Nick Clifton <nickc@redhat.com>
13655 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
13657 2016-03-02 Richard Biener <rguenther@suse.de>
13658 Uros Bizjak <ubizjak@gmail.com>
13661 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
13663 2016-03-02 Richard Biener <rguenther@suse.de>
13665 PR middle-end/67278
13666 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
13668 2016-03-02 Marek Polacek <polacek@redhat.com>
13671 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
13672 "is promoted to" warning.
13674 2016-03-01 DJ Delorie <dj@redhat.com>
13676 * config.gcc: Deprecate mep-*.
13678 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
13680 PR middle-end/70025
13681 * lra-constraints.c (regno_val_use_in): New.
13682 (match_reload): Use it instead of regno_use_in.
13684 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
13686 PR rtl-optimization/70007
13687 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
13688 references present in REG_EQUAL notes attached to non-SET patterns.
13690 2016-03-01 Jeff Law <law@redhat.com>
13692 PR tree-optimization/69196
13693 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13694 Appropriately clamp the number of statements to copy when the
13695 thread path does not traverse a loop backedge.
13697 PR tree-optimization/69196
13698 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13699 Do count some PHIs in the thread path against the insn count. Decrease
13700 final statement count by one as the control statement in the last
13701 block will get removed. Remove special cased code for handling PHIs
13704 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
13707 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
13708 asm dialect alternatives to explicit GOTPCREL calls.
13710 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
13713 * ira.c (do_reload): Issue warning for generic stack checking here...
13714 * reload1.c (reload): ...instead of here and streamline it.
13716 2016-03-01 Nick Clifton <nickc@redhat.com>
13718 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
13720 2016-03-01 Richard Biener <rguenther@suse.de>
13722 PR tree-optimization/69983
13723 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
13724 types and fall back to operand_equal_p.
13726 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13729 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13731 * config/s390/constraints.md ("jm8"): New constraint.
13732 * config/s390/predicates.md ("const_int_8bitset_operand"): New
13734 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
13736 ("*setmem_long<setmem_and>"): New pattern.
13737 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
13739 ("*setmem_long_31z<setmem_and>"): New pattern.
13740 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
13741 New substitution rules with the required attributes.
13744 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13747 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13749 * gensupport.c (process_substs_on_one_elem): Split loop to
13750 complete mark_operands_used_in_match_dup on all expressions in the
13752 (adjust_operands_numbers): Inline into process_substs_on_one_elem
13753 and remove function.
13755 2016-03-01 Richard Biener <rguenther@suse.de>
13757 PR middle-end/70022
13758 * fold-const.c (fold_indirect_ref_1): Fix range checking for
13759 vector BIT_FIELD_REF extract.
13761 2016-03-01 Richard Biener <rguenther@suse.de>
13763 PR tree-optimization/69994
13764 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
13766 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
13768 PR tree-optimization/69956
13769 * tree-vect-stmts.c (supportable_widening_operation): Support
13770 multi-step conversion of boolean vectors.
13771 (supportable_narrowing_operation): Likewise.
13773 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13775 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
13778 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13780 * config/s390/subst.md (DSI_VI): New mode iterator.
13781 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
13782 * config/s390/vector.md ("vec_set<mode>"): Move expander before
13783 the insn definition.
13784 ("*vec_set<mode>"): Change predicate and add alternative to
13785 support only either register or const_int operands as element
13787 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
13789 ("vec_extract<mode>"): New expander.
13790 ("*vec_extract<mode>"): New insn definition supporting reg and
13791 const_int element selectors.
13792 ("*vec_extract<mode>_plus"): New insn definition supporting
13793 reg+const_int element selectors.
13794 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
13795 following expander+insn definition.
13796 ("<vec_shifts_name><mode>3"): New expander.
13797 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
13799 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13801 * config/s390/s390.md ("*tabort_1"): Change predicate to
13802 nonmemory_operand. Add a second alternative to cover
13803 register as well as const int operands.
13804 ("*tabort_1_plus"): New pattern definition.
13806 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13808 * config/s390/s390.md ("*ashrdi3_cc_31")
13809 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
13810 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
13811 Merge insn definitions into ...
13812 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
13813 New pattern definition.
13814 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
13815 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
13816 ("*ashr<mode>3_and"): Merge insn definitions into ...
13817 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
13818 New pattern definition.
13819 * config/s390/subst.md ("addr_style_op_cc_subst")
13820 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
13821 substitutions patterns plus attributes.
13822 Add ashiftrt to SUBST iterator.
13824 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13826 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
13827 op2 to nonmemory_operand.
13828 ("*<shift>di3_31", "*<shift>di3_31_and"):
13829 Merge into single pattern definition ...
13830 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
13831 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
13832 pattern definition ...
13833 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
13834 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
13837 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13839 * config/s390/predicates.md (const_int_6bitset_operand): New
13841 * config/s390/s390.md: Include subst.md.
13842 ("rotl<mode>3"): New expander.
13843 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
13845 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
13846 * config/s390/subst.md: New file.
13848 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13850 * config/s390/s390.md ("op_type", "atype", "length" attributes):
13851 Remove RRR type. It doesn't really exist.
13852 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
13854 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
13855 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
13856 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
13857 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
13858 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
13859 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
13860 `enabled' attribute.
13862 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13864 * gensupport.c (process_substs_on_one_elem): Split loop to
13865 complete mark_operands_used_in_match_dup on all expressions in the
13867 (adjust_operands_numbers): Inline into process_substs_on_one_elem
13868 and remove function.
13870 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
13873 * config/sparc/sparc.c (NWORDS_UP): Rename to...
13874 (CEIL_NWORDS): ...this. Use CEIL macro.
13875 (compute_fp_layout): Adjust to above renaming.
13876 (function_arg_union_value): Likewise.
13877 (sparc_arg_partial_bytes): Likewise.
13878 (sparc_function_arg_advance): Likewise.
13880 2016-02-29 Jeff Law <law@redhat.com>
13882 PR tree-optimization/70005
13883 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
13884 where an object with a boolean range is compared against a value
13887 PR tree-optimization/69999
13888 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
13889 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
13892 2016-02-29 Richard Biener <rguenther@suse.de>
13894 PR tree-optimization/69994
13895 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
13896 (get_unary_op): Look through nop conversions.
13897 (ops_equal_values_p): New function, look for equality diregarding
13899 (eliminate_plus_minus_pair): Use ops_equal_values_p
13900 (repropagate_negates): Do not use get_unary_op here.
13902 2016-02-29 Martin Liska <mliska@suse.cz>
13904 * system.h: Poison ENABLE_CHECKING macro.
13906 2016-02-29 Martin Liska <mliska@suse.cz>
13908 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
13909 is presented in dump flags.
13910 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
13911 (hsa_regalloc): Likewise.
13913 2016-02-19 Richard Biener <rguenther@suse.de>
13915 PR tree-optimization/69980
13916 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
13917 permutation of those we need to keep.
13919 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
13922 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
13923 (NWORDS_UP): ...this
13924 (init_cumulative_args): Minor tweaks.
13925 (sparc_promote_function_mode): Likewise.
13926 (scan_record_type): Delete.
13927 (traverse_record_type): New function template.
13928 (classify_data_t): New structure type.
13929 (classify_registers): New inline function.
13930 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
13931 exhausted. Instantiate traverse_record_type on classify_registers and
13932 deal with the case of a structure passed in slot #15 with no FP field
13934 (assign_data_t): New structure type.
13935 (compute_int_layout): New static function.
13936 (compute_fp_layout): Likewise.
13937 (count_registers): New inline function.
13938 (assign_int_registers): New static function.
13939 (assign_fp_registers): Likewise.
13940 (assign_registers): New inline function.
13941 (function_arg_record_value_1): Delete.
13942 (function_arg_record_value_2): Likewise.
13943 (function_arg_record_value_3): Likewise.
13944 (function_arg_record_value): Adjust to above changes. Instantiate
13945 traverse_record_type on count_registers to first count the number of
13946 registers to be used and then on assign_registers to assign them.
13947 (function_arg_union_value): Adjust to above renaming.
13948 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
13949 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
13950 case of a structure passed in slot #15
13951 (sparc_function_arg_advance): Likewise.
13952 (function_arg_padding): Minor tweak.
13954 2016-02-29 Richard Biener <rguenther@suse.de>
13956 PR tree-optimization/69720
13957 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
13958 the adjustment_def path for possibly vectorized defs.
13959 (vect_create_epilog_for_reduction): Handle vectorized initial
13962 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
13964 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
13966 2016-02-27 Jeff Law <law@redhat.com>
13969 2016-02-26 Richard Biener <rguenther@suse.de>
13970 Jeff Law <law@redhat.com>
13972 PR tree-optimization/69740
13973 * cfghooks.c (remove_edge): Request loop fixups if we delete
13974 an edge that might turn an irreducible loop into a natural
13977 2016-02-27 Jakub Jelinek <jakub@redhat.com>
13979 PR rtl-optimization/69896
13980 * tree-vect-generic.c (get_compute_type): Avoid single element
13983 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
13985 Rename the AArch64 tuning option and related functions to enable the
13986 Newton series for the reciprocal square root to reflect its
13987 approximative characteristic.
13989 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
13990 function to "aarch64_emit_approx_rsqrt".
13991 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
13992 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
13993 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
13994 (xgene1_tunings): Likewise.
13995 (use_rsqrt_p): Likewise.
13996 (aarch64_emit_swrsqrt): Use new function name.
13997 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
13998 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
13999 text explaining this option.
14000 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
14002 2016-02-26 Jakub Jelinek <jakub@redhat.com>
14005 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14006 complain about -mallow-movmisalign without -mvsx if
14007 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
14009 2016-02-26 Joel Sherrill <joel@rtems.org>
14011 * config.gcc: Add x86_64-*-rtems*.
14012 * config/i386/rtems-64.h: New file.
14014 2016-02-26 Joel Sherrill <joel@rtems.org>
14016 * config.gcc: Add aarch64-*-rtems*.
14017 * config/aarch64/rtems.h: New file.
14019 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
14022 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
14023 shift amount using %h. Add comment.
14025 2016-02-26 Richard Biener <rguenther@suse.de>
14026 Jeff Law <law@redhat.com>
14028 PR tree-optimization/69740
14029 * cfghooks.c (remove_edge): Request loop fixups if we delete
14030 an edge that might turn an irreducible loop into a natural
14033 2016-02-26 Martin Jambor <mjambor@suse.cz>
14035 PR middle-end/69920
14036 * tree-sra.c (sra_modify_assign): Do not remove loads of
14037 uninitialized aggregates to SSA_NAMEs.
14039 2016-02-26 Richard Henderson <rth@redhat.com>
14042 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
14043 pseudo in case the target rtx matches the source of the left
14046 2016-02-26 Martin Jambor <mjambor@suse.cz>
14049 * hsa.h (hsa_type_packed_p): Declare.
14050 * hsa.c (hsa_type_packed_p): New function.
14051 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
14053 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
14054 * hsa-brig.c (emit_basic_insn): Likewise.
14056 2016-02-26 Martin Jambor <mjambor@suse.cz>
14059 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
14061 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
14063 2016-02-26 Martin Jambor <mjambor@suse.cz>
14065 * hsa.h (is_a_helper): New overload for hsa_op_immed for
14066 hsa_op_with_type operands.
14067 (hsa_unsigned_type_for_type): Declare.
14068 * hsa.c (hsa_unsigned_type_for_type): New function.
14069 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
14070 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
14071 the finalizer. Do not emit extra move.
14073 2016-02-26 Martin Jambor <mjambor@suse.cz>
14075 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
14076 atomic operations in private segment.
14078 2016-02-26 Martin Jambor <mjambor@suse.cz>
14080 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
14081 statements to wi->info. Also disallow omp simd constructs.
14082 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
14083 for not gridifying. Dump special string for omp_for.
14085 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14088 * config/aarch64/aarch64.c (aarch64_set_current_function):
14089 Save/restore target globals when switching to
14090 target_option_default_node.
14092 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14095 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
14096 Return 0 if !SHIFT_COUNT_TRUNCATED.
14098 2016-02-26 Jakub Jelinek <jakub@redhat.com>
14099 Eric Botcazou <ebotcazou@adacore.com>
14101 PR rtl-optimization/69891
14102 * dse.c (scan_insn): If we can't figure out memset arguments
14103 or they are non-constant, call clear_rhs_from_active_local_stores.
14105 2016-02-26 Martin Liska <mliska@suse.cz>
14107 * doc/extend.texi: Mention clog10, clog10f an clog10l
14108 in Builtins section.
14110 2016-02-26 Martin Liska <mliska@suse.cz>
14112 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
14114 (resolve_args_picking_1): Likewise.
14115 * dwarf2out.h (struct GTY): Likewise.
14117 2016-02-26 Martin Liska <mliska@suse.cz>
14119 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
14120 with flag_checking.
14121 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
14123 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
14124 Martin Liska <mliska@suse.cz>
14126 * doc/install.texi: Mention --enable-valgrind-annotations.
14128 2016-02-26 Richard Biener <rguenther@suse.de>
14130 PR tree-optimization/69551
14131 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
14132 looking through aliases adjust DECL_PT_UID to refer to the
14133 ultimate alias target.
14135 2016-02-25 Martin Liska <mliska@suse.cz>
14137 PR middle-end/69919
14138 * alloc-pool.c (after_memory_report): New variable.
14139 * alloc-pool.h (base_pool_allocator ::release): Do not use
14140 the infrastructure if after_memory_report.
14141 * toplev.c (toplev::main): Mark after memory report.
14143 2016-02-25 Richard Biener <rguenther@suse.de>
14145 PR tree-optimization/48795
14146 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
14148 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
14151 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
14152 offloading is enabled and -fopenacc or -fopenmp is specified.
14153 (CRTOFFLOADEND): Likewise.
14154 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
14155 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
14156 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
14157 (offload_objects_file_name): New static var.
14158 (tool_cleanup): Remove offload_objects_file_name file.
14159 (find_offloadbeginend): Replace with ...
14160 (find_crtoffloadtable): ... this.
14161 (run_gcc): Remove offload_argc and offload_argv.
14162 Get offload_objects_file_name from -foffload-objects=... option.
14163 Read names of object files with offload from this file, pass them to
14164 compile_images_for_offload_targets. Don't call find_offloadbeginend and
14165 don't pass offloadbegin and offloadend to the linker. Don't pass
14166 offload non-LTO files to the linker, because now they're not claimed.
14168 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
14171 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
14172 on builtin_unreachable.
14174 2016-02-25 Jakub Jelinek <jakub@redhat.com>
14176 PR rtl-optimization/69896
14177 * regcprop.c: Include cfgrtl.h.
14178 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
14179 than remembered mode, either delete it (if noop_move_p), or
14180 treat like copy_p but not noop_p instruction.
14182 2016-02-24 Jakub Jelinek <jakub@redhat.com>
14185 * dwarf2out.c (gen_variable_die): Work around buggy LTO
14186 - allow NULL decl for Fortran DW_TAG_common_block variables.
14188 2016-02-24 Jason Merrill <jason@redhat.com>
14190 * common.opt (flifetime-dse): Add -flifetime-dse=1.
14192 2016-02-24 Richard Biener <rguenther@suse.de>
14193 Jakub Jelinek <jakub@redhat.com>
14195 PR middle-end/69760
14196 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
14197 conditionally executed ops to well-defined overflow behavior.
14199 2016-02-24 Jakub Jelinek <jakub@redhat.com>
14201 PR middle-end/69915
14202 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
14205 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14207 PR rtl-optimization/69886
14208 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
14209 argument. Use it when checking validity of set instructions.
14210 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
14211 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
14213 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
14214 * store-motion.c (find_moveable_store): Update
14215 can_assign_to_reg_without_clobbers_p callsite.
14217 2016-02-24 Richard Biener <rguenther@suse.de>
14219 PR middle-end/68963
14220 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
14222 (record_nonwrapping_iv): Do not fall back to the low/high bound
14223 for non-constant IV bases if the stmt is not always executed.
14225 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14227 * config/arm/arm-cores.def (cortex-a32): New entry.
14228 * config/arm/arm-tables.opt: Regenerate.
14229 * config/arm/arm-tune.md: Regenerate.
14230 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
14231 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
14232 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
14233 for -mcpu and -mtune.
14235 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14238 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
14239 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
14240 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
14241 (atomic_loaddi_1): Delete.
14242 (atomic_loaddi): Rewrite expander using the above changes.
14244 2016-02-24 Jakub Jelinek <jakub@redhat.com>
14247 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
14250 2016-02-24 Jakub Jelinek <jakub@redhat.com>
14251 Richard Biener <rguenth@suse.de>
14253 PR middle-end/69909
14254 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
14255 set_mem_attributes if tem is SSA_NAME which got expanded
14258 2016-02-24 Richard Biener <rguenther@suse.de>
14260 PR tree-optimization/69907
14261 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
14262 end of permutations for BB vectorization.
14264 2016-02-24 Christian Bruel <christian.bruel@st.com>
14266 * config/arm/arm-c.c (arm_option_override): Initialize
14267 target_option_current_node.
14268 * config/arm/arm.c (arm_pragma_target_parse): Replace
14269 build_target_option_node call by target_option_current_node.
14270 Set target_option_current_node.
14273 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
14276 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
14277 define_insn_and_split to define_insn.
14278 (zero_extendqi<mode>2_dot2): Same.
14279 (extendqi<mode>2_dot): Same.
14280 (extendqi<mode>2_dot2): Same.
14282 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
14284 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
14285 and add bypass for AES{D,E} and AESMC pairs.
14286 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
14289 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
14291 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
14292 series for reciprocal square root in Exynos M1.
14294 2016-02-23 Martin Sebor <msebor@redhat.com>
14297 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
14298 __builtin_alloca_with_align.
14300 2016-02-23 Richard Henderson <rth@redhat.com>
14302 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
14303 (ix86_register_pragmas): Remove __seg_tls.
14304 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
14305 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
14306 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
14307 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
14308 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
14309 * doc/extend.texi (__seg_tls): Remove item.
14311 2016-02-23 Richard Biener <rguenther@suse.de>
14313 * alloc-pool.h (struct allocation_object): Make id member
14314 conditional on CHECKING_P again.
14315 (get_instance): Adjust.
14316 (base_pool_allocator): Likewise.
14318 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
14320 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
14321 (parallelize_loops): In OpenACC kernels mode, set n_threads to
14323 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
14325 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
14327 2016-02-23 Richard Biener <rguenther@suse.de>
14329 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
14330 * bitmap.h (struct bitmap_usage): Likewise.
14331 (bitmap_move): Declare.
14332 * bitmap.c (register_overhead): Take size_t argument.
14333 (bitmap_move): New function.
14334 * df-problems.c (df_rd_transfer_function): Use bitmap_move
14335 to properly account overhead.
14336 * tree.c (free_node): Use tree_size.
14338 2016-02-23 Jakub Jelinek <jakub@redhat.com>
14341 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
14342 when inverting comparison.
14345 * common.opt (Wunreachable-code): Add Warning flag.
14347 2016-02-23 Mark Wielaard <mjw@redhat.com>
14348 Jakub Jelinek <jakub@redhat.com>
14351 * cgraphunit.c (check_global_declaration): Check main_input_filename
14352 and DECL_SOURCE_FILE are not NULL.
14354 2016-02-23 Martin Jambor <mjambor@suse.cz>
14356 PR tree-optimization/69666
14357 * tree-sra.c (sra_modify_assign): Do not attempt to create
14358 default_def replacements for unscalarizable regions.
14360 2016-02-20 Mark Wielaard <mjw@redhat.com>
14363 * cgraphunit.c (check_global_declaration): Check level of
14364 warn_unused_const_variable and main_input_filename.
14365 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
14366 (-Wunused-variable): For C implies -Wunused-const-variable=1.
14367 (-Wunused-const-variable): Explain levels 1 and 2.
14369 2016-02-22 Jakub Jelinek <jakub@redhat.com>
14372 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
14373 identical arguments. Formatting and spelling fixes.
14376 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
14381 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
14382 and m68k-devices.def.
14383 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
14384 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
14386 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
14388 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
14389 and HImode registers.
14391 2016-02-22 Richard Biener <rguenther@suse.de>
14393 PR tree-optimization/69882
14394 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
14395 preserve permutations present because of gaps.
14396 (vect_supported_load_permutation_p): Always continue checking
14397 permutations after vect_attempt_slp_rearrange_stmts.
14399 2016-02-22 Bin Cheng <bin.cheng@arm.com>
14401 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
14402 min_profitable_estimate, rather than min_profitable_iters.
14404 2016-02-22 Jakub Jelinek <jakub@redhat.com>
14407 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
14408 SImode for last match_operand.
14410 2016-02-22 Martin Liska <mliska@suse.cz>
14412 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
14413 return bitsize - 1 as the return value.
14415 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
14419 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
14420 Handle negative shift counts.
14421 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
14422 force_reg on the shift constant.
14423 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
14424 (lshrsi3_d): Handle negative shift counts.
14426 2016-02-22 Richard Biener <rguenther@suse.de>
14427 Tom de Vries <tom@codesourcery.com>
14429 * graph.c: Include dumpfile.h.
14430 (print_graph_cfg): Split into three overloads.
14431 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
14433 2016-02-22 Tom de Vries <tom@codesourcery.com>
14435 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
14438 2016-02-22 Richard Biener <rguenther@suse.de>
14441 * ipa-inline-transform.c (inline_call): When not updating
14442 overall summaries adjust self size by the growth estimate.
14443 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
14444 hash-set, do not update overall summaries here. Renamed from ...
14445 (inline_to_all_callers): ... this which is now wrapping the
14446 above and performing delayed overall summary update.
14447 (early_inline_small_functions): Delay updating of the overall
14450 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
14452 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
14455 2016-02-19 Jakub Jelinek <jakub@redhat.com>
14458 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
14459 :%* in %:gt() argument.
14460 (greater_than_spec_func): Adjust for expecting only numbers,
14461 if there are more than two numbers, compare the last two.
14463 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
14465 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
14466 -Wnarrowing with -std.
14468 2016-02-19 Jakub Jelinek <jakub@redhat.com>
14471 * expr.c (store_field): Don't use bit-field path if exp is
14472 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
14473 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
14474 and the assignment can be performed by bitwise copy. Formatting
14477 PR middle-end/69838
14478 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
14479 call copy_reg_eh_region_note_forward on before and/or after sequences
14480 and remove note from insn if it no longer can throw.
14483 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
14484 if TARGET_AVX512BW.
14486 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14488 * config/s390/vector.md: Add missing commutative operand markers
14489 to the patterns which qualify for one.
14490 * config/s390/vx-builtins.md: Likewise.
14492 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14494 * config/s390/vector.md (VI, VI_QHS): Add single element vector
14495 types to mode iterators.
14496 (vec_double): ... and mode attribute.
14497 * config/s390/vx-builtins.md (non_vec_int): Likewise.
14499 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14501 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
14502 Change the predicate of op2 from nonimmediate to general and let
14503 reload fix it if necessary.
14505 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14507 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
14509 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14511 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
14514 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14516 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
14517 * config/s390/s390.c (s390_expand_vec_movstr): New function.
14518 * config/s390/s390.md ("movstr<P:mode>"): Call
14519 s390_expand_vec_movstr.
14521 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14523 * config/s390/s390.md: Add missing output modifier for operand 1
14524 to print it as address properly.
14526 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14528 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
14529 * config/s390/2964.md: New file.
14530 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
14531 of insn grouping attributes depending on the CPU level.
14532 (s390_get_unit_mask): New function.
14533 (s390_sched_score): Remove the OOO from the scheduling macros.
14534 Add loop to calculate a score for the instruction mix.
14535 (s390_sched_reorder): Likewise plus improve debug output.
14536 (s390_sched_variable_issue): Rename macros as above. Calculate
14537 the unit distances after actually scheduling an insn. Improve
14539 (s390_sched_init): Clear last_scheduled_unit_distance array.
14540 * config/s390/s390.md: Include 2964.md.
14542 2016-02-18 Jakub Jelinek <jakub@redhat.com>
14545 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
14546 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
14547 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
14548 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
14549 *avx512f_<code>v8div16qi2_mask_1): New insns.
14551 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
14554 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
14557 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
14558 earlyclobber from target. Use wF constraint for fused memory
14560 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
14562 2016-02-18 Jakub Jelinek <jakub@redhat.com>
14563 Martin Liska <mliska@suse.cz>
14566 * cfgexpand.c (asan_sanitize_stack_p): New function.
14567 (partition_stack_vars): Use the function.
14568 (expand_stack_vars): Likewise.
14569 (defer_stack_allocation): Likewise.
14570 (expand_used_vars): Likewise.
14572 2016-02-18 Richard Biener <rguenther@suse.de>
14574 PR middle-end/69553
14575 * fold-const.c (operand_equal_p): Properly compare offsets for
14576 IMAGPART_EXPR and ARRAY_REF.
14578 2016-02-18 Nick Clifton <nickc@redhat.com>
14582 * config/arm/arm.c (arm_option_override_internal): Disable
14583 interworking if the target does not support thumb instructions.
14584 (arm_reload_in_hi): Handle the case where a register to register
14585 move needs reloading because there is no simple pattern to handle
14587 (arm_reload_out_hi): Likewise.
14589 2016-02-18 Richard Biener <rguenther@suse.de>
14591 PR middle-end/69854
14592 * match.pd: Don't use fold_binary or fold_unary for folding
14595 2016-02-17 Jakub Jelinek <jakub@redhat.com>
14598 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
14599 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
14600 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
14601 warn on gimple_no_warning_p statements.
14603 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
14605 * doc/extend.texi (C++ Attributes): Correct description of
14606 warn_unused type attribute.
14608 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14610 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
14611 correct instruction.
14613 2016-02-17 Richard Biener <rguenther@suse.de>
14615 PR rtl-optimization/69609
14616 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
14617 (find_traces_1_round): When ending a trace update cached priority
14619 (bb_to_key): Use cached priority when available.
14620 (copy_bb): Initialize cached priority.
14621 (reorder_basic_blocks_software_trace_cache): Likewise.
14623 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14626 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
14628 (aarch64_comparison_operator): Break overly long line into two.
14629 (aarch64_comparison_operation): Likewise.
14630 * config/aarch64/aarch64.md (cstorecc4): Use
14631 aarch64_comparison_operator_mode instead of
14632 aarch64_comparison_operator.
14633 (cstore<mode>4): Likewise.
14634 (aarch64_cstore<mode>): Likewise.
14635 (*cstoresi_insn_uxtw): Likewise.
14636 (cstore<mode>_neg): Likewise.
14637 (*cstoresi_neg_uxtw): Likewise.
14639 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14642 * config/arm/predicates.md (arm_comparison_operator_mode):
14644 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
14645 instead of arm_comparison_operator.
14646 (*mov_negscc): Likewise.
14647 (*mov_notscc): Likewise.
14648 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
14649 (*thumb2_mov_negscc): Likewise.
14650 (*thumb2_mov_negscc_strict_it): Likewise.
14651 (*thumb2_mov_notscc): Likewise.
14652 (*thumb2_mov_notscc_strict_it): Likewise.
14654 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
14656 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
14657 Add missing return.
14659 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
14661 * config/visium/visium.c (machine_libfunc_index): New enum.
14662 (machine_libfuncs): New structure.
14663 (visium_libfuncs): New static variable.
14664 (TARGET_INIT_LIBFUNCS): Define to...
14665 (visium_init_libfuncs): ...this. New function.
14666 (expand_block_move_4): Use the appropriate libfunc.
14667 (expand_block_move_2): Likewise.
14668 (expand_block_move_1): Likewise.
14669 (expand_block_set_4): Likewise.
14670 (expand_block_set_2): Likewise.
14671 (expand_block_set_1): Likewise.
14672 (visium_trampoline_init): Likewise.
14674 2016-02-17 Nick Clifton <nickc@redhat.com>
14676 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
14677 TI's devices.csv file as of March 2016.
14679 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
14682 * opts-global.c (handle_common_deferred_options): Introduce and
14683 initialize two global variables to remember command-line options
14684 specifying a stack-limiting register.
14685 * opts.h: Add extern declarations of the two new global variables.
14686 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
14687 variable based on the values of the two new global variables.
14689 2016-02-16 Jakub Jelinek <jakub@redhat.com>
14692 * common.opt (Wnonnull-compare): New warning.
14693 * doc/invoke.texi (-Wnonnull): Remove text about comparison
14694 of arguments against NULL.
14695 (-Wnonnull-compare): Document.
14696 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
14697 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
14698 * passes.def (pass_warn_nonnull_compare): Add.
14699 * gimple-ssa-nonnull-compare.c: New file.
14701 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
14703 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
14704 AARCH64_EXTRA_TUNE_RECIP_SQRT.
14706 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
14708 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
14709 reciprocal sqrt for -mlow-precision-recip-sqrt.
14711 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
14712 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14714 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
14715 always use lane loads to construct non-constant vectors.
14717 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
14719 * config/aarch64/aarch64.md
14720 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
14721 constraints for operand 3.
14722 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
14724 2016-02-16 Jakub Jelinek <jakub@redhat.com>
14725 Richard Biener <rguenther@suse.de>
14727 PR tree-optimization/69820
14728 * tree-vect-patterns.c (type_conversion_p): Return false if
14729 *orig_type is unsigned single precision or boolean.
14730 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
14733 2016-02-16 Jakub Jelinek <jakub@redhat.com>
14735 PR rtl-optimization/69764
14736 PR rtl-optimization/69771
14737 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
14738 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
14740 2016-02-16 Richard Biener <rguenther@suse.de>
14742 PR tree-optimization/69776
14743 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
14745 (indirect_refs_may_alias_p): Likewise.
14746 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
14747 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
14748 according to tbaa_p.
14749 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
14750 (optimize_stmt): For redundant store discovery do not allow tbaa.
14752 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
14754 PR tree-optimization/69714
14755 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
14756 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
14758 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
14760 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
14761 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
14762 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
14763 * config/arc/arc.c (arc_init): Check FPU options.
14764 (get_arc_condition_code): Handle new CC_FPU* modes.
14765 (arc_select_cc_mode): Likewise.
14766 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
14767 register pair only. Allow access for ARCv2 accumulator.
14768 (gen_compare_reg): Whenever we have FPU support use FPU compare
14770 (arc_reorg): Don't generate brcc insns when FPU compare
14771 instructions are involved.
14772 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
14773 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
14774 floating point emulation.
14775 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
14776 (REVERSE_CONDITION): Add new CC_FPU* modes.
14777 (TARGET_FP_SP_BASE): Define.
14778 (TARGET_FP_DP_BASE): Likewise.
14779 (TARGET_FP_SP_FUSED): Likewise.
14780 (TARGET_FP_DP_FUSED): Likewise.
14781 (TARGET_FP_SP_CONV): Likewise.
14782 (TARGET_FP_DP_CONV): Likewise.
14783 (TARGET_FP_SP_SQRT): Likewise.
14784 (TARGET_FP_DP_SQRT): Likewise.
14785 (TARGET_FP_DP_AX): Likewise.
14786 * config/arc/arc.md (ARCV2_ACC): New constant.
14787 (type): New fpu type attribute.
14788 (SDF): Conditional iterator.
14789 (cstore<mode>, cbranch<mode>): Change expand condition.
14790 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
14791 handles FPU/FPX cases as well.
14792 * config/arc/arc.opt (mfpu): New option.
14793 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
14795 (adddf3, muldf3, subdf3): Removed.
14796 * config/arc/predicates.md (proper_comparison_operator): Recognize
14798 * config/arc/fpu.md: New file.
14799 * doc/invoke.texi (ARC Options): Document mfpu option.
14801 2016-02-16 Richard Biener <rguenther@suse.de>
14803 PR rtl-optimization/69291
14804 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
14805 noce_operand_ok check.
14807 2016-02-16 Tom de Vries <tom@codesourcery.com>
14810 * omp-low.c (simd_clone_create): Remove call to
14811 symtab->call_cgraph_insertion_hooks.
14813 2016-02-16 Jakub Jelinek <jakub@redhat.com>
14815 PR tree-optimization/69802
14816 * tree-ssa-reassoc.c (update_range_test): If op is
14817 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
14818 op == 1 test of precision 1 integral op, otherwise handle
14819 that case as op itself. Fix up formatting.
14820 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
14823 2016-02-16 Richard Biener <rguenther@suse.de>
14825 PR tree-optimization/69586
14826 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
14827 types for conversion sources.
14829 2016-02-16 Richard Biener <rguenther@suse.de>
14831 PR middle-end/69801
14832 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
14833 mask OEP_ADDRESS_OF.
14835 2016-02-16 Alan Modra <amodra@gmail.com>
14838 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
14839 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
14840 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
14842 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
14843 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
14844 (p8_fmrgow_<mode>): Likewise.
14845 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
14847 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
14848 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
14849 to use movdi_internal64. Remove op0_di.
14850 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
14852 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
14854 Add support for the FCCMP insn types
14856 * config/aarch64/aarch64.md (fccmp): Change insn type.
14857 (fccmpe): Likewise.
14858 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
14859 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
14860 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
14861 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
14862 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
14863 * config/arm/types.md (fccmps): Add new insn type.
14864 (fccmpd): Likewise.
14866 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
14868 * alias.c (get_alias_set): Fix a typo in comment.
14870 2016-02-15 Richard Biener <rguenther@suse.de>
14872 PR tree-optimization/69595
14873 * match.pd: Complete range test simplification to true.
14875 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
14877 PR rtl-optimization/69648
14878 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
14879 pic_offset_table_rtx.
14881 PR rtl-optimization/69752
14882 * ira.c (update_equiv_regs): When looking for more than a single SET,
14883 also take other side effects into account.
14885 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
14887 * config/s390/s390.c (s390_function_profiler): Add a new sequence
14888 for z900+ CPUs in 31-bit mode.
14890 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
14892 * common/config/s390/s390-common.c (s390_supports_split_stack):
14894 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
14895 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
14896 * config/s390/s390.c (struct machine_function): New field
14897 split_stack_varargs_pointer.
14898 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
14899 in s390_emit_prologue.
14900 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
14902 (morestack_ref): New global.
14903 (SPLIT_STACK_AVAILABLE): New macro.
14904 (s390_expand_split_stack_prologue): New function.
14905 (s390_live_on_entry): New function.
14906 (s390_va_start): Use split-stack vararg pointer if appropriate.
14907 (s390_asm_file_end): Emit the split-stack note sections.
14908 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
14909 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
14910 (UNSPECV_SPLIT_STACK_CALL): New unspec.
14911 (UNSPECV_SPLIT_STACK_DATA): New unspec.
14912 (split_stack_prologue): New expand.
14913 (split_stack_space_check): New expand.
14914 (split_stack_data): New insn.
14915 (split_stack_call): New expand.
14916 (split_stack_call_*): New insn.
14917 (split_stack_cond_call): New expand.
14918 (split_stack_cond_call_*): New insn.
14920 2016-02-15 Richard Biener <rguenther@suse.de>
14922 PR tree-optimization/69783
14923 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14924 Add trivially correct cases.
14926 2016-02-15 Tom de Vries <tom@codesourcery.com>
14929 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
14931 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
14933 2016-02-15 Richard Biener <rguenther@suse.de>
14935 PR tree-optimization/69776
14936 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
14937 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
14938 indicate whether we can use TBAA to disambiguate against stores.
14939 Use alias-set zero if not.
14940 (visit_reference_op_store): Do not use TBAA when looking up
14942 * tree-ssa-pre.c (compute_avail): Use TBAA here.
14943 (eliminate_dom_walker::before_dom_children): But not when looking
14944 up redundant stores.
14946 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
14948 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
14950 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
14952 * config/i386/znver1.md
14953 (znver1_pop, znver1_pop_mem,
14954 znver1_load_imov_double_store,
14955 znver1_load_imov_direct_store,
14956 znver1_load_imov_direct_load,
14957 znver1_load_imov_double_load): Add new.
14958 (znver1_insn, znver1_insn_load): Add icmov type.
14959 (znver1_sseavx_fma,
14960 znver1_sseavx_fma_load,
14962 znver1_avx256_fma_load): Fix pipe usage.
14964 2016-02-14 Alan Modra <amodra@gmail.com>
14967 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
14968 with an invalid hard reg, reload just the reg not the entire
14969 pre/post-inc/dec address expression.
14971 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
14974 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
14975 fixed R1_REG scratch reg.
14976 (sibcall_value_pcrel_fdpic): Likewise.
14978 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
14982 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
14984 2016-02-12 Walter Lee <walt@tilera.com>
14986 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
14987 * config/tilegx/t-tilegx: Likewise.
14989 2016-02-12 David Malcolm <dmalcolm@redhat.com>
14992 * diagnostic-show-locus.c (struct line_span): New struct.
14993 (layout::get_first_line): Delete.
14994 (layout::get_last_line): Delete.
14995 (layout::get_num_line_spans): New member function.
14996 (layout::get_line_span): Likewise.
14997 (layout::print_heading_for_line_span_index_p): Likewise.
14998 (layout::get_expanded_location): Likewise.
14999 (layout::calculate_line_spans): Likewise.
15000 (layout::m_first_line): Delete.
15001 (layout::m_last_line): Delete.
15002 (layout::m_line_spans): New field.
15003 (layout::layout): Update comment. Replace m_first_line and
15004 m_last_line with m_line_spans, replacing their initialization
15005 with a call to calculate_line_spans.
15006 (diagnostic_show_locus): When printing source lines and
15007 annotations, rather than looping over a single span
15008 of lines, instead loop over each line_span within
15009 the layout, with an inner loop over the lines within them.
15010 Call the context's start_span callback when changing line spans.
15011 * diagnostic.c (diagnostic_initialize): Initialize start_span.
15012 (diagnostic_build_prefix): Break out the building of the location
15013 part of the string into...
15014 (diagnostic_get_location_text): ...this new function, rewriting
15015 it from nested ternary expressions to a sequence of "if"
15017 (default_diagnostic_start_span_fn): New function.
15018 * diagnostic.h (diagnostic_start_span_fn): New typedef.
15019 (diagnostic_context::start_span): New field.
15020 (default_diagnostic_start_span_fn): New prototype.
15022 2016-02-12 David Malcolm <dmalcolm@redhat.com>
15025 * gcc.c (driver::finalize): Fix cleanup of "specs".
15027 2016-02-12 David Malcolm <dmalcolm@redhat.com>
15031 * gcc.c (driver::driver): Initialize m_option_suggestions.
15032 (driver::~driver): Clean up m_option_suggestions.
15033 (suggest_option): Convert to...
15034 (driver::suggest_option): ...this, and split out into
15035 driver::build_option_suggestions and find_closest_string.
15036 (driver::build_option_suggestions): New function, from
15037 first half of suggest_option. Special-case
15038 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
15039 the sanitizer_opts array. For options of enum types, add the
15040 various enum values to the candidate strings.
15041 (driver::handle_unrecognized_options): Remove "const".
15042 * gcc.h (driver::handle_unrecognized_options): Likewise.
15043 (driver::build_option_suggestions): New decl.
15044 (driver::suggest_option): New decl.
15045 (driver::m_option_suggestions): New field.
15046 * opts-common.c (add_misspelling_candidates): New function.
15047 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
15048 and make non-static.
15049 * opts.h (sanitizer_opts): New array decl.
15050 (add_misspelling_candidates): New function decl.
15051 * spellcheck.c (find_closest_string): New function.
15052 * spellcheck.h (find_closest_string): New function decl.
15054 2016-02-12 Jakub Jelinek <jakub@redhat.com>
15056 PR rtl-optimization/69764
15057 PR rtl-optimization/69771
15058 * optabs.c (expand_binop_directly): For shift_optab_p, force
15059 convert_modes with VOIDmode if xop1 has VOIDmode.
15061 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
15064 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
15065 to correctly determine instrumentation thunks.
15067 2016-02-12 Jakub Jelinek <jakub@redhat.com>
15070 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
15071 type by reference, force lhs on the call.
15074 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
15075 Compute retval and retbnd early in all cases if split_part_return_p
15076 and return_bb is not EXIT. Remove all clobber stmts and reset
15077 all debug stmts that refer to SSA_NAMEs defined in split part,
15078 except if it is retval, in that case replace the old retval with the
15079 lhs of the call to the split part.
15081 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
15084 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
15086 PR middle-end/66726
15087 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
15088 whose result is used in PHI.
15089 (maybe_optimize_range_tests): Likewise.
15090 (final_range_test_p): Likweise.
15092 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
15094 PR middle-end/66726
15095 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
15096 whose result is used in PHI.
15097 (maybe_optimize_range_tests): Likewise.
15098 (final_range_test_p): Likweise.
15100 2016-02-12 Jakub Jelinek <jakub@redhat.com>
15102 * cgraph.c: Spelling fixes - behaviour -> behavior and
15103 neighbour -> neighbor.
15104 * target.def: Likewise.
15105 * sel-sched.c: Likewise.
15106 * config/mips/mips.c: Likewise.
15107 * config/arc/arc.md: Likewise.
15108 * config/arm/cortex-a57.md: Likewise.
15109 * config/arm/arm.c: Likewise.
15110 * config/arm/neon.md: Likewise.
15111 * config/arm/arm-c.c: Likewise.
15112 * config/vms/vms-c.c: Likewise.
15113 * config/s390/s390.c: Likewise.
15114 * config/i386/znver1.md: Likewise.
15115 * config/i386/i386.c: Likewise.
15116 * config/ia64/hpux-unix2003.h: Likewise.
15117 * config/msp430/msp430.md: Likewise.
15118 * config/rx/rx.c: Likewise.
15119 * config/rx/rx.md: Likewise.
15120 * config/aarch64/aarch64-simd.md: Likewise.
15121 * config/aarch64/aarch64.c: Likewise.
15122 * config/nvptx/nvptx.c: Likewise.
15123 * config/bfin/bfin.c: Likewise.
15124 * config/cris/cris.opt: Likewise.
15125 * config/rs6000/rs6000.c: Likewise.
15126 * target.h: Likewise.
15127 * spellcheck.c: Likewise.
15128 * ira-build.c: Likewise.
15129 * tree-inline.c: Likewise.
15130 * builtins.c: Likewise.
15131 * lra-constraints.c: Likewise.
15132 * explow.c: Likewise.
15133 * hwint.h: Likewise.
15134 * targhooks.c: Likewise.
15135 * tree-vect-data-refs.c: Likewise.
15136 * expr.c: Likewise.
15137 * doc/tm.texi: Likewise.
15138 * doc/extend.texi: Likewise.
15139 * doc/install.texi: Likewise.
15140 * doc/md.texi: Likewise.
15141 * tree-ssa-tail-merge.c: Likewise.
15142 * sched-int.h: Likewise.
15143 * match.pd: Likewise.
15144 * sched-ebb.c: Likewise.
15145 * target.def (omit_struct_return_reg): Likewise.
15146 * gimple-ssa-isolate-paths.c: Likewise.
15147 (find_implicit_erroneous_behaviour): Renamed to...
15148 (find_implicit_erroneous_behavior): ... this.
15149 (find_explicit_erroneous_behaviour): Renamed to...
15150 (find_explicit_erroneous_behavior): ... this.
15151 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
15153 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
15155 PR rtl-optimization/64682
15156 PR rtl-optimization/69567
15157 PR rtl-optimization/69737
15158 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
15159 in I2 as well, just lose it.
15161 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15163 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
15165 (aarch64_last_printed_tune_string): Likewise.
15166 (aarch64_declare_function_name): Only output .arch assembler
15167 directive if it will be different from the previously output
15168 directive. Same for .tune comment but only if -dA is set.
15169 (aarch64_start_file): New function.
15170 (TARGET_ASM_FILE_START): Define.
15172 2016-02-11 David Malcolm <dmalcolm@redhat.com>
15175 * Makefile.in (PLUGIN_HEADERS): Add params.list.
15177 2016-02-11 Jakub Jelinek <jakub@redhat.com>
15180 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
15181 -Wmaybe-uninitialized warning.
15183 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
15186 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
15188 2016-02-11 Richard Biener <rguenther@suse.de>
15190 PR rtl-optimization/69291
15191 * ifcvt.c (noce_try_store_flag_constants): Do not allow
15192 subexpressions affected by changing the result.
15194 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
15197 * lra-constraints.c (curr_insn_transform): Find in/out operands
15198 for secondary memory moves. Update dups.
15200 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
15202 PR tree-optimization/69652
15203 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
15204 to nested loop, did source re-formatting, skip debug statements,
15205 add check on statement with volatile operand, remove dead scalar
15208 2016-02-10 Jakub Jelinek <jakub@redhat.com>
15209 Patrick Palka <ppalka@gcc.gnu.org>
15213 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
15214 calls if the return type is TREE_ADDRESSABLE.
15215 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
15216 * ipa-split.c (split_function): Fix doubled "we" in comment.
15217 Use void return type for the split part even if
15218 !split_point->split_part_set_retval.
15220 2016-02-10 Bin Cheng <bin.cheng@arm.com>
15222 PR tree-optimization/68021
15223 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
15224 when computing the value of biv cand by itself.
15226 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
15228 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
15229 (cortexa57_tunings): Likewise.
15230 (cortexa72_tunings): Likewise.
15231 (arch_macro_fusion_pair_p): Add support for AES fusion.
15232 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
15233 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
15234 Allow virtual registers before reload so early scheduling works.
15235 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
15236 correct latency and pipeline.
15237 (cortex_a57_crypto_complex): Likewise.
15238 (cortex_a57_crypto_xor): Likewise.
15239 (define_bypass): Add AES bypass.
15241 2016-02-10 Richard Biener <rguenther@suse.de>
15243 PR tree-optimization/69726
15244 * passes.def: Add DCE pass before late uninit.
15245 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
15246 really fixup if-conversions job.
15248 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
15250 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
15251 (arm_cortex_a57_tune): Likewise.
15252 (aarch_macro_fusion_pair_p): Add support for AES fusion.
15253 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
15255 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
15257 * timevar.def (TV_PHASE_DBGINFO): Delete.
15258 (TV_PHASE_CHECK_DBGINFO): Likewise.
15259 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
15261 2016-02-10 Richard Biener <rguenther@suse.de>
15263 PR tree-optimization/69719
15264 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
15265 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
15267 2016-02-09 Andrew Pinski <apinski@cavium.com>
15270 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
15271 get_vcond_mask_icode returns false.
15273 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
15276 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
15277 an ADDIS that adds a pointer to a large constant that sets the
15278 upper16 bits with a load operation.
15280 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
15283 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
15285 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
15287 (vzipq_s16): Likewise.
15288 (vzipq_s32): Likewise.
15289 (vzipq_f32): Likewise.
15290 (vzipq_u8): Likewise.
15291 (vzipq_u16): Likewise.
15292 (vzipq_u32): Likewise.
15293 (vzipq_p8): Likewise.
15294 (vzipq_p16): Likewise.
15296 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
15299 * config/arm/arm.c (neon_endian_lane_map): New function.
15300 (neon_vector_pair_endian_lane_map): New function.
15301 (arm_evpc_neon_vuzp): Allow for big endian lane order.
15302 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
15304 (vuzpq_s16): Likewise.
15305 (vuzpq_s32): Likewise.
15306 (vuzpq_f32): Likewise.
15307 (vuzpq_u8): Likewise.
15308 (vuzpq_u16): Likewise.
15309 (vuzpq_u32): Likewise.
15310 (vuzpq_p8): Likewise.
15311 (vuzpq_p16): Likewise.
15313 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
15316 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
15319 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
15321 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
15322 truncate const_int operand 1 to QImode.
15324 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
15326 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
15327 corresponding to an abnormal edge.
15329 2016-02-09 Tom de Vries <tom@codesourcery.com>
15331 PR tree-optimization/69599
15332 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
15334 (find_func_aliases_for_builtin_call, find_func_clobbers)
15335 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
15338 2016-02-09 Richard Biener <rguenther@suse.de>
15340 PR tree-optimization/69715
15341 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
15342 LHS on calls as non-rewritable.
15344 2016-02-09 Tom de Vries <tom@codesourcery.com>
15347 * lto-wrapper.c (append_diag_options): New function.
15348 (compile_offload_image): Call append_diag_options.
15350 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
15353 * doc/extend.texi (Flag Output Operands): Correct sectioning.
15354 Minor copy-edit to fix verb tenses.
15356 2016-02-08 Jakub Jelinek <jakub@redhat.com>
15358 PR tree-optimization/69209
15359 * ipa-split.c (split_function): If split part is not
15360 returning retval, retval has gimple type but is not
15361 gimple value, force it into a SSA_NAME first.
15363 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
15365 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
15368 2016-02-08 Jason Merrill <jason@redhat.com>
15371 * convert.c (convert_to_integer_1): Check dofold on truncation
15373 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
15374 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
15375 Rename from *_nofold.
15376 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
15377 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
15379 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
15382 * tree.c (build_common_tree_nodes): Remove short_double argument.
15383 All callers changed.
15384 * tree.h (build_common_tree_nodes): Adjust declaration.
15385 * doc/invoke.texi (-fshort-double): Remove documentation.
15386 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
15387 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
15388 * lto-wrapper.c (merge_and_complain, append_compiler_options)
15389 (append_linker_options): Don't handle OPT_fshort_double.
15391 PR rtl-optimization/68730
15392 * lra-remat.c (insn_to_cand_activation): New static variable.
15393 (lra_remat): Allocate and free it.
15394 (create_cand): New arg activation. Initialize a field in
15395 insn_to_cand_activation if it is nonnull.
15396 (create_cands): Pass the activation insn to create_cand when making
15397 a candidate involving an output reload. Reorganize code a little.
15398 (do_remat): Keep track of active status of candidates in a separate
15401 2016-02-08 Richard Biener <rguenther@suse.de>
15403 PR tree-optimization/69719
15404 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
15405 Properly use absolute of the difference of the two offsets to
15406 compare or adjust the segment length.
15408 2016-02-08 Richard Biener <rguenther@suse.de>
15409 Jeff Law <law@redhat.com>
15412 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
15413 types for anonymous SSA names.
15415 2016-02-08 Richard Biener <rguenther@suse.de>
15417 PR rtl-optimization/69274
15418 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
15420 2016-02-08 Jeff Law <law@redhat.com>
15422 PR tree-optimization/65917
15423 * tree-ssa-dom.c (record_temporary_equivalences): Record both
15424 equivalences from if (x == y) style conditionals.
15425 (loop_depth_of_name): Remove.
15426 (record_equality): Remove loop depth check.
15427 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
15428 (const_and_copies::record_const_or_copy_raw): New member function.
15429 * tree-ssa-scopedtables.c
15430 (const_and_copies::record_const_or_copy_raw): New, factored out of
15431 (const_and_copies::record_const_or_copy): Call new member function.
15433 2016-02-05 Jeff Law <law@redhat.com>
15435 PR tree-optimization/68541
15436 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
15437 (count_stmts_in_block): New function.
15438 (poor_ifcvt_candidate_code): Likewise.
15439 (is_feasible_trace): Add some heuristics to determine when path
15440 splitting is profitable.
15441 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
15442 is a diamond with a single exit.
15444 2016-02-05 Martin Sebor <msebor@redhat.com>
15447 * doc/invoke.texi: Update -Wplacement-new to take an optional
15450 2016-02-06 Richard Henderson <rth@redhat.com>
15453 * tree.c (tree_nop_conversion_p): Do not strip casts into or
15454 out of non-standard address spaces.
15456 2016-02-05 Jakub Jelinek <jakub@redhat.com>
15458 PR rtl-optimization/69691
15459 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
15461 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
15463 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
15464 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
15465 (*ieee128_mfvsrd_64bit): Likewise.
15466 (*ieee128_mfvsrd_32bit): Likewise.
15468 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
15472 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
15474 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
15475 instrumented_version.
15477 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
15479 * doc/invoke.texi (Optimize Options): In table of --param options
15480 rename second occurrence of tracer-min-branch-ratio to
15481 tracer-min-branch-probability, rename
15482 tracer-min-branch-ratio-feedback to
15483 tracer-min-branch-probability-feedback and clarify description,
15484 rename sched-spec-state-edge-prob-cutoff to
15485 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
15486 to selsched-insns-to-rename, rename lto-minpartition to
15487 lto-min-partition, delete reorder-blocks-duplicate and
15488 reorder-blocks-duplicate-feedback.
15490 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15492 * config/s390/s390.c (s390_register_info_set_ranges): Remove
15495 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
15497 * doc/extend.texi: S/390: Correct some typos.
15499 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15501 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
15503 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15506 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
15507 (s390_register_info_gprtofpr): Use new macros above.
15508 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
15510 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
15511 its name. Adjust restore and save gpr ranges.
15512 (s390_register_info_set_ranges): New function.
15513 (s390_register_info): Use new macros above. Call
15514 s390_register_info_set_ranges.
15515 (s390_optimize_register_info): Likewise.
15516 (s390_hard_regno_rename_ok): Use new macros.
15517 (s390_hard_regno_scratch_ok): Likewise.
15518 (s390_emit_epilogue): Likewise.
15519 (s390_can_use_return_insn): Likewise.
15520 (s390_optimize_prologue): Likewise.
15521 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
15523 2016-02-05 Jakub Jelinek <jakub@redhat.com>
15526 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
15528 (ix86_option_override_internal): Disable TARGET_STV even for
15529 -m{incoming,preferred}-stack-boundary=3.
15531 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15533 * config.gcc: Mark deprecated rtems targets as obsolete.
15535 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
15537 PR rtl-optimization/64682
15538 PR rtl-optimization/69567
15539 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
15540 before I2 only if the register is both used and set in I2.
15542 2016-02-04 DJ Delorie <dj@redhat.com>
15544 * config/msp430/msp430.c (msp430_start_function): Add function type.
15546 2016-02-04 Jakub Jelinek <jakub@redhat.com>
15549 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
15551 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
15553 PR rtl-optimization/69577
15555 2015-10-29 Richard Henderson <rth@redhat.com>
15559 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
15560 sse check to the exact conditions of PR 67609.
15562 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
15565 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
15566 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
15567 not allowed into the traditional Altivec registers.
15568 (movtd_64bit_nodm): Likewise.
15569 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
15571 2016-02-04 David Malcolm <dmalcolm@redhat.com>
15573 * config/aarch64/cortex-a57-fma-steering.c
15574 (aarch64_register_fma_steering): Remove "static" from arguments
15577 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
15580 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
15581 twice when complex.
15583 2016-02-04 Mike Frysinger <vapier@gentoo.org>
15585 * doc/invoke.texi: Delete -mno-fma4.
15587 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
15589 PR rtl-optimization/69577
15590 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
15591 (find_subregs_of_mode): Update accordingly. Iterate over partial
15594 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
15596 * config/arm/arm-protos.h (neon_reinterpret): Remove.
15597 * config/arm/arm.c (neon_reinterpret): Remove.
15598 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
15599 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
15600 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
15601 vreinterpretti): Remove.
15602 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
15603 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
15604 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
15605 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
15606 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
15607 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
15608 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
15609 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
15610 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
15611 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
15612 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
15613 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
15614 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
15615 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
15616 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
15617 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
15618 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
15619 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
15620 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
15621 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
15622 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
15623 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
15624 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
15625 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
15626 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
15627 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
15628 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
15629 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
15630 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
15631 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
15632 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
15633 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
15634 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
15635 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
15636 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
15637 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
15638 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
15639 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
15640 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
15641 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
15642 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
15643 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
15644 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
15645 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
15646 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
15647 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
15648 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
15649 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
15650 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
15651 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
15652 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
15653 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
15654 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
15655 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
15656 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
15657 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
15658 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
15659 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
15660 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
15661 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
15662 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
15663 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
15664 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
15665 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
15666 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
15667 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
15668 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
15669 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
15670 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
15671 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
15672 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
15673 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
15674 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
15675 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
15676 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
15677 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
15678 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
15679 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
15680 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
15681 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
15682 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
15683 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
15684 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
15685 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
15686 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
15687 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
15688 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
15689 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
15690 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
15691 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
15692 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
15693 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
15694 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
15695 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
15696 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
15697 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
15698 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
15699 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
15700 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
15701 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
15702 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
15703 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
15704 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
15706 2016-02-04 Martin Liska <mliska@suse.cz>
15709 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
15710 that are gimple_store_p.
15711 (maybe_instrument_call): Likewise.
15713 2016-02-04 Bin Cheng <bin.cheng@arm.com>
15715 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
15716 register scaling out of memory reference and comment why.
15718 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15722 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
15723 folding the source of a SET.
15725 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15729 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
15730 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
15732 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
15736 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
15739 2016-02-04 Christian Bruel <christian.bruel@st.com>
15741 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
15742 * config/arm/arm.c (arm_set_current_function): Likewise.
15744 2016-02-04 Jakub Jelinek <jakub@redhat.com>
15745 Ilya Enkovich <enkovich.gnu@gmail.com>
15746 H.J. Lu <hongjiu.lu@intel.com>
15749 * config/i386/i386.c (convert_scalars_to_vector): Remove
15750 stack alignment fixes.
15751 (ix86_option_override_internal): Disable TARGET_STV if stack
15752 might not be aligned enough.
15753 (ix86_minimum_alignment): Assert that TARGET_STV is false.
15755 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
15757 * config/i386/x86-tune.def: Disable default prefetching
15760 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
15761 Vladimir Makarov <vmakarov@redhat.com>
15764 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
15765 in validating fused toc addresses.
15767 2016-02-03 Jakub Jelinek <jakub@redhat.com>
15770 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
15771 range->m_caret fields if range->m_show_caret_p is false.
15774 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
15775 Force oldval into register if it does not satisfy reg_or_short_operand
15776 predicate. Fix up formatting.
15778 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
15779 Alexandre Oliva <aoliva@redhat.com>
15782 * lra-constraints.c (simplify_operand_subreg): Check additionally
15783 address validity after potential reloading.
15784 (process_address_1): Check insns validity. In case of failure do
15787 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
15790 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
15793 2016-02-02 Jakub Jelinek <jakub@redhat.com>
15795 * wide-int.cc (canonize_uhwi): New function.
15796 (wi::divmod_internal): Use it.
15798 2016-02-02 James Norris <jnorris@codesourcery.com
15800 * gimplify.c (omp_notice_variable): Add usage check.
15802 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
15804 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
15805 like LE, GE, LT, GT when emitting relational operator.
15807 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
15809 * ira-costs.c (find_costs_and_classes): Add extra argument.
15810 * target.def (ira_change_pseudo_allocno_class): Add parameter.
15811 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
15812 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
15813 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
15814 Add best_class parameter, and return it if not ALL_REGS.
15815 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
15817 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
15818 Update target hook.
15820 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
15822 * config/aarch64/aarch64.c
15823 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
15824 (aarch64_ira_change_pseudo_allocno_class): New function.
15826 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
15829 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
15831 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15833 * config/avr/avr.c (avr_option_override): Set
15834 PARAM_ALLOW_STORE_DATA_RACES to 1.
15836 2016-02-02 Richard Biener <rguenther@suse.de>
15838 PR tree-optimization/69595
15839 * match.pd: Add range test simplifications to true/false.
15841 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
15843 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
15844 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
15847 2016-02-02 Richard Biener <rguenther@suse.de>
15849 PR tree-optimization/69606
15850 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
15851 info on the result before moving a stmt.
15853 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
15855 PR middle-end/68542
15856 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
15857 branch with vector comparison.
15858 * config/i386/sse.md (VI48_AVX): New mode iterator.
15859 (define_expand "cbranch<mode>4): Add support for conditional branch
15860 with vector comparison.
15861 * tree-vect-loop.c (optimize_mask_stores): New function.
15862 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
15863 has_mask_store field of vect_info.
15864 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
15865 vectorized loops having masked stores after vec_info destroy.
15866 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
15867 correspondent macros.
15868 (optimize_mask_stores): Add prototype.
15870 2016-02-02 Alan Modra <amodra@gmail.com>
15873 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
15876 2016-02-02 Alan Modra <amodra@gmail.com>
15879 * config/rs6000/rs6000.c (need_toc_init): New var, set it
15880 whenever toc_label_name used.
15881 (rs6000_file_start): Don't set up toc section here,
15882 (rs6000_output_function_epilogue): do so here instead,
15883 (rs6000_xcoff_file_start): and here.
15884 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
15885 (load_toc_aix_di): Likewise.
15887 2016-02-01 Jakub Jelinek <jakub@redhat.com>
15889 PR rtl-optimization/69592
15890 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
15891 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
15892 (num_sign_bit_copies_binary_arith_p): New inline function.
15893 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
15895 2016-02-01 Jeff Law <law@redhat.com>
15897 PR tree-optimization/69580
15898 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
15899 * tree-ssa-threadbackward.c
15900 (fsm_find_control_statement_thread_paths): Do not try to walk
15901 through large PHI nodes.
15903 2016-02-01 Jakub Jelinek <jakub@redhat.com>
15905 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
15906 when count is incremented above limit, don't analyze further
15909 * omp-low.c (oacc_parse_default_dims): Avoid
15910 -Wsign-compare warning, make sure value fits into int
15911 rather than just unsigned int.
15913 2016-02-01 Bin Cheng <bin.cheng@arm.com>
15915 PR tree-optimization/67921
15916 * fold-const.c (split_tree): New parameters. Convert pointer
15917 type variable part to proper type before negating.
15918 (fold_binary_loc): Pass new arguments to split_tree.
15920 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
15922 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
15923 (nvptx_goacc_validate_dims): Extend to handle global defaults.
15924 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
15925 * doc/tm.texti: Rebuilt.
15926 * doc/invoke.texi (fopenacc-dim): Document.
15927 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
15928 (append_compiler_options): Likewise.
15929 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
15930 (oacc_parse_default_dims): New.
15931 (oacc_validate_dims): Add USED arg. Select non-unity default when
15933 (oacc_loop_fixed_partitions): Return mask of used partitions.
15934 (oacc_loop_auto_partitions): Emit dump info.
15935 (oacc_loop_partition): Return mask of used partitions.
15936 (execute_oacc_device_lower): Parse default dimension arg. Adjust
15937 loop partitioning and validation calls.
15939 2016-02-01 Richard Biener <rguenther@suse.de>
15941 PR middle-end/69556
15942 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
15944 2016-02-01 Richard Biener <rguenther@suse.de>
15946 PR tree-optimization/69574
15947 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
15948 of asserting return chrec_dont_know.
15950 2016-02-01 Martin Liska <mliska@suse.cz>
15952 * mem-stats-traits.h: Add copyright header.
15953 * mem-stats.h: Likewise.
15955 2016-02-01 Richard Biener <rguenther@suse.de>
15957 PR tree-optimization/69579
15958 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
15959 Do not propagate through abnormal PHI results.
15961 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
15963 * postreload.c (reload_cse_simplify): Remove dead code.
15965 2016-02-01 Jakub Jelinek <jakub@redhat.com>
15967 PR rtl-optimization/69570
15968 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
15969 if there is more than one set, not if there is a single set.
15971 2016-02-01 Richard Henderson <rth@redhat.com>
15974 * combine.c (make_compound_operation): When looking through a
15975 subreg, make sure to re-extend to the width of the outer mode.
15977 2016-01-30 Jakub Jelinek <jakub@redhat.com>
15979 PR tree-optimization/69546
15980 * wide-int.cc (wi::divmod_internal): For unsigned division
15981 where both operands fit into uhwi, if o1 is 1 and o0 has
15982 msb set, if divident_prec is larger than bits per hwi,
15983 clear another quotient word and return 2 instead of 1.
15984 Similarly for remainder with msb in HWI set, if dividend_prec
15985 is larger than bits per hwi.
15987 2016-01-29 Martin Jambor <mjambor@suse.cz>
15989 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
15990 Use short lowercase names.
15991 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
15992 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
15993 acq_rel one. Protect warning agains segfaults if
15994 get_memory_order_name returns NULL.
15995 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
15996 with release semantics. Do not warn if get_memory_order already did.
15997 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
15998 semantics. Fix check for relaxed or acquire semantics. Do not warn
15999 if get_memory_order already did.
16001 2016-01-29 Sebastian Pop <s.pop@samsung.com>
16003 * doc/install.texi: Document that isl-0.16 is supported.
16005 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
16008 * config/i386/constraints.md (Bm): Describe as special memory
16010 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
16011 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
16012 * genpreds.c (struct constraint_data): Add is_special_memory.
16013 (have_special_memory_constraints, special_memory_start): New
16015 (special_memory_end): Ditto.
16016 (add_constraint): Add new arg is_special_memory. Add code to
16017 process its true value. Update have_special_memory_constraints.
16018 (process_define_constraint): Pass the new arg.
16019 (process_define_register_constraint): Ditto.
16020 (choose_enum_order): Process special memory.
16021 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
16022 function insn_extra_special_memory_constraint.
16023 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
16024 * gensupport.c (process_rtx): Process
16025 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
16026 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
16027 * ira-lives.c (single_reg_class): Use
16028 insn_extra_special_memory_constraint.
16029 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
16030 * lra-constraints.c (process_alt_operands): Ditto.
16031 (curr_insn_transform): Use insn_extra_special_memory_constraint.
16032 * recog.c (asm_operand_ok, preprocess_constraints): Process
16034 * reload.c (find_reloads): Ditto.
16035 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
16036 * stmt.c (parse_input_constraint): Use
16037 insn_extra_special_memory_constraint.
16039 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
16042 * lra-splill.c (lra_final_code_change): Revert r229087 by
16043 removing all sub-registers.
16045 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
16048 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
16050 2016-01-29 Jakub Jelinek <jakub@redhat.com>
16053 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
16054 SSE1, copy target into the temporary reg first before recursing
16057 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
16059 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
16062 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
16064 * ginclude/stdarg.h: Test __cplusplus instead of
16065 __GXX_EXPERIMENTAL_CXX0X__.
16067 2016-01-29 Richard Biener <rguenther@suse.de>
16069 PR tree-optimization/69547
16070 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
16071 Do not mark clobbers necessary.
16072 (mark_all_reaching_defs_necessary_1): Likewise.
16074 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
16076 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
16077 declaration name with %qs and print it in both error messages.
16078 Also fix indentation.
16080 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
16083 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
16084 trailing blank line from error message.
16086 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
16089 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
16092 2016-01-29 Richard Biener <rguenther@suse.de>
16094 PR middle-end/69537
16095 * match.pd: Allow all integral types when simplifying a
16096 widening or sign-changing conversion.
16098 2016-01-28 Sebastian Pop <s.pop@samsung.com>
16100 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
16101 back to setting codegen_error to fail codegen.
16103 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
16106 * config/i386/constraints.md (C): Only accept constant zero operand.
16107 (BC): New constraint.
16108 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
16109 instead of C constraint.
16110 * doc/md.texi (Machine Constraints): Update description
16113 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
16116 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
16118 2016-01-28 Jakub Jelinek <jakub@redhat.com>
16120 PR middle-end/69542
16121 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
16124 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
16126 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
16127 branches if using guessed profile.
16129 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
16131 * graphite-optimize-isl.c (optimize_isl): Fix dump.
16133 2016-01-28 Richard Henderson <rth@redhat.com>
16136 * config/aarch64/aarch64-modes.def (CC_Cmode): New
16137 * config/aarch64/aarch64-protos.h: Update.
16138 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
16139 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
16140 (aarch64_get_condition_code_1): Handle CC_Cmode.
16141 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
16142 (*add<mode>3_compareC_cconly_imm): New.
16143 (*add<mode>3_compareC_cconly): New.
16144 (*add<mode>3_compareC_imm): New.
16145 (add<mode>3_compareC): New.
16146 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
16147 to be first. Use aarch64_carry_operation.
16148 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
16149 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
16150 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
16151 (subti3): Use subdi3_compare1.
16152 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
16153 (sub<mode>3_compare1): New.
16154 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
16155 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
16156 (*subsi3_carryin_uxtw): Likewise.
16157 (*ngc<mode>, *ngcsi_uxtw): Likewise.
16158 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
16159 * config/aarch64/iterators.md (DWI): New.
16160 * config/aarch64/predicates.md (aarch64_carry_operation): New.
16161 (aarch64_borrow_operation): New.
16163 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
16165 * graphite-optimize-isl.c (optimize_isl): Print a different debug
16166 message when isl does not return a valid schedule.
16168 2016-01-28 Sebastian Pop <s.pop@samsung.com>
16170 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
16171 Remove comments from class declarations: they are already in the code
16174 2016-01-28 Sebastian Pop <s.pop@samsung.com>
16176 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
16178 (ternary_op_to_tree): Same.
16179 (unary_op_to_tree): Same.
16180 (nary_op_to_tree): Same.
16181 (gcc_expression_from_isl_expr_op): Same.
16182 (gcc_expression_from_isl_expression): Same.
16183 (graphite_create_new_loop): Same.
16184 (graphite_create_new_loop_guard): Same.
16185 (build_iv_mapping): Same.
16186 (graphite_create_new_guard): Same.
16187 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
16188 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
16190 2016-01-28 Sebastian Pop <s.pop@samsung.com>
16192 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
16193 instead of setting codegen_error to fail codegen.
16195 2016-01-28 Jason Merrill <jason@redhat.com>
16197 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
16199 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
16201 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
16202 Remove CONST_INT_P check in CCMP cost calculation.
16204 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
16206 * config/aarch64/aarch64.c (generic_vector_cost):
16207 Set vec_permute_cost.
16208 (cortexa57_vector_cost): Likewise.
16209 (exynosm1_vector_cost): Likewise.
16210 (xgene1_vector_cost): Likewise.
16211 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
16212 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
16213 Add vec_permute_cost entry.
16215 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
16217 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
16219 (add<mode>3_compare0): Likewise.
16220 (addsi3_compare0_uxtw): Likewise.
16221 (add<mode>3nr_compare0): Likewise.
16222 (compare_neg<mode>): Likewise.
16223 (<optab><mode>3): Likewise.
16225 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
16227 * tree-vect-stmts.c (vectorizable_comparison): Add
16228 NULL check for vectype.
16230 2016-01-28 Richard Biener <rguenther@suse.de>
16232 PR tree-optimization/69466
16233 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
16234 Account for PHIs we couldn't duplicate.
16236 2016-01-28 Martin Liska <mliska@suse.cz>
16239 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
16240 instead of ENABLE_VALGRIND_CHECKING.
16242 2016-01-27 Richard Henderson <rth@redhat.com>
16245 * lra-remat.c (subreg_regs): New.
16246 (dump_candidates_and_remat_bb_data): Dump it.
16247 (operand_to_remat): Reject if operand in subreg_regs.
16248 (set_bb_regs): Collect subreg_regs.
16249 (lra_remat): Init and free subreg_regs. Compute
16250 calculate_local_reg_remat_bb_data before create_cands.
16252 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
16255 * config/i386/i386.c (ix86_update_stack_boundary): Don't
16256 change stack_alignment_needed for __tls_get_addr call.
16258 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
16260 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
16262 2016-01-27 Jeff Law <law@redhat.com>
16264 PR tree-optimization/68398
16265 PR tree-optimization/69196
16266 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
16267 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
16268 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
16269 Only count PHIs in the last block in the path. The others will
16270 const/copy propagate away. Add heuristic to allow more irreducible
16271 subloops to be created when it is likely profitable to do so.
16273 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
16274 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
16275 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
16277 2016-01-27 Jakub Jelinek <jakub@redhat.com>
16280 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
16281 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
16282 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
16283 * tree-streamer-in.c: Include asan.h.
16284 (streamer_get_builtin_tree): For builtins in sanitizer
16285 range call initialize_sanitizer_builtins and retry.
16287 2016-01-27 Ian Lance Taylor <iant@google.com>
16289 * common.opt (fkeep-gc-roots-live): New undocumented option.
16290 * tree-ssa-loop-ivopts.c (add_candidate_1): If
16291 -fkeep-gc-roots-live, skip pointers.
16292 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
16295 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
16298 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
16299 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
16301 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
16304 * configure.ac: NetBSD provides SSP in its C library.
16305 * configure: Updated.
16307 2016-01-27 Richard Biener <rguenther@suse.de>
16309 PR tree-optimization/69166
16310 * tree-vect-loop.c (vect_is_simple_reduction): Always check
16311 reduction code for commutativity / associativity.
16313 2016-01-27 Martin Jambor <mjambor@suse.cz>
16315 PR tree-optimization/69355
16316 * tree-sra.c (analyze_access_subtree): Correct hole detection when
16317 total_scalarization fails.
16319 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
16321 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
16324 2016-01-27 Christian Bruel <christian.bruel@st.com>
16327 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
16328 Move arm_reset_previous_fndecl and set_target_option_current_node in
16329 the conditional part. Call save_restore_target_globals.
16330 * config/arm/arm.c (arm_set_current_function):
16331 Refactor to better support #pragma target and attribute mix.
16332 Call save_restore_target_globals.
16333 * config/arm/arm-protos.h (save_restore_target_globals): New function.
16335 2016-01-27 Martin Liska <mliska@suse.cz>
16337 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
16338 reference for an HSA kernel and its host function.
16340 2016-01-27 Jakub Jelinek <jakub@redhat.com>
16342 PR tree-optimization/69399
16343 * wide-int.h (wi::lrshift): For larger precisions, only
16344 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
16346 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
16348 * config/arc/predicates.md (proper_comparison_operator): Reject
16349 constant-constant comparison.
16351 2016-01-26 Tom de Vries <tom@codesourcery.com>
16353 PR tree-optimization/69110
16354 * tree-data-ref.c (initialize_data_dependence_relation): Handle
16355 DR_NUM_DIMENSIONS == 0.
16357 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
16358 Sebastian Pop <s.pop@samsung.com>
16360 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
16361 isl_ast_op_cond and isl_ast_op_select.
16362 (gcc_expression_from_isl_expr_op): Same.
16364 2016-01-26 Jason Merrill <jason@redhat.com>
16367 * tree.c (recompute_constructor_flags): Split out from
16369 (verify_constructor_flags): New.
16370 * tree.h: Declare them.
16372 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
16374 PR rtl-optimization/69217
16375 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
16376 are no TYPE_FIELDS set for the record type.
16378 2016-01-26 Jakub Jelinek <jakub@redhat.com>
16381 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
16382 toc_label_name unconditionally.
16383 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
16384 SYMBOL_REF string. Use toc_label_name instead of constructing
16386 (rs6000_elf_declare_function_name): Use toc_label_name instead of
16387 constructing LCTOC1.
16389 2016-01-26 Martin Sebor <msebor@redhat.com>
16392 * doc/extend.texi (Common Type Attributes): Move text that talks about
16393 attribute packed from attribute aligned to the section discussing
16394 the former attribute for clarity.
16396 2016-01-26 Richard Henderson <rth@redhat.com>
16398 PR middle-end/60908
16399 * trans-mem.c (tm_region_init): Mark entry block as visited.
16401 2016-01-26 David Malcolm <dmalcolm@redhat.com>
16404 * diagnostic-show-locus.c (layout::print_source_line): Replace
16405 call to pp_newline with call to layout::print_newline.
16406 (layout::print_annotation_line): Likewise.
16407 (layout::move_to_column): Likewise.
16408 (layout::print_any_fixits): After printing any fixits, print a
16409 trailing newline, if necessary.
16410 (layout::print_newline): New method, resetting any colorization
16412 (diagnostic_show_locus): Move the pp_newline to before the
16413 early bailout. Remove dummy block enclosing the layout instance.
16414 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
16415 of pp_newline_and_flush with pp_flush.
16416 (diagnostic_append_note): Delete use of pp_newline.
16417 (diagnostic_append_note_at_rich_loc): Delete.
16418 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
16419 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
16420 when newline characters are added to the buffer.
16422 2016-01-26 Michael Matz <matz@suse.de>
16424 * configure.ac (ac_cv_std_swap_in_utility): New test.
16425 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
16426 * configure: Regenerate.
16427 * config.in: Regenerate.
16429 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
16431 * config/arc/arc.md (cstoresi4): Force operand into register.
16432 (arcset<code>): Fix predicate.
16433 (arcsetltu): Likewise.
16434 (arcsetgeu): Likewise.
16435 (arcsethi): Likewise.
16436 (arcsetls): Likewise.
16438 2016-01-26 Jakub Jelinek <jakub@redhat.com>
16440 PR tree-optimization/69483
16441 * gimple-fold.c (canonicalize_constructor_val): Return NULL
16442 if base has error_mark_node type.
16444 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
16447 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
16448 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
16450 (vget_lane_f16): Handle big-endian.
16451 (vgetq_lane_f16): Likewise.
16452 (vset_lane_f16): Likewise.
16453 (vsetq_lane_f16): Likewise.
16454 * config/arm/iterators.md (VQXMOV): Add V8HF.
16455 (VDQ): Add V4HF and V8HF.
16456 (V_reg): Handle V4HF and V8HF.
16457 (Is_float_mode): Likewise.
16458 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
16459 neon_vdup_nv8hf): New patterns.
16460 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
16461 Use VD_LANE iterator.
16462 (neon_vld1_dup<mode>): Use VQ2 iterator.
16464 2016-01-26 Nathan Sidwell <nathan@acm.org>
16466 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
16467 (set_oacc_fn_attrib): Add IS_KERNEL arg.
16468 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
16469 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
16470 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
16471 (oacc_validate_dims): Add LEVEL arg, don't return level.
16472 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
16473 oacc_validate_dims.
16474 (execute_oacc_device_lower): Adjust, add more dump output.
16475 * tree-ssa-loop.c (gate_oacc_kernels): Use
16476 oacc_fn_attrib_kernels_p.
16477 * tree-parloops.c (create_parallel_loop): Adjust
16478 set_oacc_fn_attrib call.
16480 2016-01-26 Jakub Jelinek <jakub@redhat.com>
16483 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
16484 (append_compiler_options): Handle -fcilkplus.
16485 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
16487 2016-01-26 Nick Clifton <nickc@redhat.com>
16490 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
16491 been marked as DECL_ONE_ONLY but we do not the means to make it
16492 so, then do not allow it to bind locally.
16494 2016-01-26 Jakub Jelinek <jakub@redhat.com>
16497 * opts.h (parse_sanitizer_options): New prototype.
16498 * opts.c (sanitizer_opts): New array.
16499 (parse_sanitizer_options): New function.
16500 (common_handle_option): Use parse_sanitizer_options.
16502 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
16505 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
16506 alignment adjustment to ...
16507 (ix86_update_stack_boundary): Here. Don't over-align stack for
16509 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
16510 if __tls_get_addr is called.
16512 2016-01-26 Christian Bruel <christian.bruel@st.com>
16514 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
16516 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
16518 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
16520 2016-01-26 Richard Biener <rguenther@suse.de>
16522 PR middle-end/69467
16523 * match.pd: Guard X * CST CMP 0 pattern with single_use.
16525 2016-01-26 Richard Biener <rguenther@suse.de>
16527 PR tree-optimization/69452
16528 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
16529 (move_computations_dom_walker::before_dom_children): Rename
16531 (move_computations_worker): This.
16532 (move_computations): Perform an RPO rather than a DOM walk.
16534 2016-01-26 Jakub Jelinek <jakub@redhat.com>
16537 * combine.c (combine_instructions): For REG_EQUAL note with
16538 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
16539 to the underlying register.
16540 * doc/rtl.texi (REG_EQUAL): Document the behavior of
16541 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
16543 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
16546 * config/aarch64/aarch64-builtins.c
16547 (aarch64_init_simd_builtin_types): Do not set structural
16548 equality to __Poly{8,16,64,128}_t types.
16550 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
16552 PR tree-optimization/69400
16553 * wide-int.cc (wi_pack): Take the precision as argument and
16554 perform canonicalization here rather than in the callers.
16555 Use the main loop to handle all full-width HWIs. Add a
16556 zero HWI if in_len isn't a full result.
16557 (wi::divmod_internal): Update accordingly.
16558 (wi::mul_internal): Likewise. Simplify.
16560 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
16561 Sebastian Pop <s.pop@samsung.com>
16563 * graphite-poly.c (apply_poly_transforms): Simplify.
16564 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
16565 (print_isl_map): Same.
16566 (print_isl_union_map): Same.
16567 (print_isl_schedule): New.
16568 (debug_isl_schedule): New.
16569 * graphite-dependences.c (scop_get_reads): Do not call
16570 isl_union_map_add_map that is undocumented isl functionality.
16571 (scop_get_must_writes): Same.
16572 (scop_get_may_writes): Same.
16573 (scop_get_original_schedule): Remove.
16574 (scop_get_dependences): Do not call isl_union_map_compute_flow that
16575 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
16576 (compute_deps): Remove.
16577 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
16578 (debug_schedule_ast): New.
16579 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
16580 set_separate_option.
16581 (graphite_regenerate_ast_isl): Add dump.
16582 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
16583 from scop->transformed_schedule.
16584 (graphite_regenerate_ast_isl): Add more dump.
16585 * graphite-optimize-isl.c (optimize_isl): Set
16586 scop->transformed_schedule. Check whether schedules are equal.
16587 (apply_poly_transforms): Move here.
16588 * graphite-poly.c (apply_poly_transforms): ... from here.
16589 (free_poly_bb): Static.
16590 (free_scop): Static.
16591 (pbb_number_of_iterations_at_time): Remove.
16592 (print_isl_ast): New.
16593 (debug_isl_ast): New.
16594 (debug_scop_pbb): New.
16595 * graphite-scop-detection.c (print_edge): Move.
16596 (print_sese): Move.
16597 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
16598 (build_scop_scattering): Remove.
16599 (create_pw_aff_from_tree): Assert instead of bailing out.
16600 (add_condition_to_pbb): Remove unused code, do not fail.
16601 (add_conditions_to_domain): Same.
16602 (add_conditions_to_constraints): Remove.
16603 (build_scop_context): New.
16604 (add_iter_domain_dimension): New.
16605 (build_iteration_domains): Initialize pbb->iterators.
16606 Call add_conditions_to_domain.
16609 (index_outermost_in_loop): New.
16610 (index_pbb_in_loop): New.
16611 (outermost_pbb_in): New.
16612 (add_in_sequence): New.
16613 (add_outer_projection): New.
16614 (outer_projection_mupa): New.
16615 (add_loop_schedule): New.
16616 (build_schedule_pbb): New.
16617 (build_schedule_loop): New.
16618 (embed_in_surrounding_loops): New.
16619 (build_schedule_loop_nest): New.
16620 (build_original_schedule): New.
16621 (build_poly_scop): Call build_original_schedule.
16622 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
16623 (free_poly_dr): Remove.
16624 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
16625 (free_poly_bb): Remove.
16626 (debug_loop_vec): Remove.
16627 (print_isl_ast): Declare.
16628 (debug_isl_ast): Declare.
16629 (scop_do_interchange): Remove.
16630 (scop_do_strip_mine): Remove.
16631 (scop_do_block): Remove.
16632 (flatten_all_loops): Remove.
16633 (optimize_isl): Remove.
16634 (pbb_number_of_iterations_at_time): Remove.
16635 (debug_scop_pbb): Declare.
16636 (print_schedule_ast): Declare.
16637 (debug_schedule_ast): Declare.
16638 (struct scop): Remove schedule. Add original_schedule,
16639 transformed_schedule.
16640 (free_gimple_poly_bb): Remove.
16641 (print_generated_program): Remove.
16642 (debug_generated_program): Remove.
16643 (unify_scattering_dimensions): Remove.
16644 * sese.c (print_edge): ... here.
16645 (print_sese): ... here.
16646 (debug_edge): ... here.
16647 (debug_sese): ... here.
16648 * sese.h (print_edge): Declare.
16649 (print_sese): Declare.
16650 (dump_edge): Declare.
16651 (dump_sese): Declare.
16653 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
16654 Sebastian Pop <s.pop@samsung.com>
16656 * Makefile.in: Set ISLVER in site.exp.
16658 2016-01-25 Jakub Jelinek <jakub@redhat.com>
16660 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
16661 DECL_VALUE_EXPR of new_var even for the non-array case. Look
16662 through DECL_VALUE_EXPR for expansion.
16664 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
16666 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
16667 the frame info after reload completed.
16669 2016-01-25 Jeff Law <law@redhat.com>
16671 PR tree-optimization/69196
16672 PR tree-optimization/68398
16673 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
16674 tree-ssa-threadupdate.c.
16675 (determine_bb_domination_status): Prototype
16676 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
16677 (determine_bb_domination_status): No longer static.
16678 (valid_jump_thread_path): Remove code to detect characteristics
16679 of the jump thread path not associated with correctness.
16680 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
16681 Correct test for thread path length. Count PHIs for real operands as
16682 statements that need to be copied. Do not count ASSERT_EXPRs.
16683 Look at all the blocks in the thread path. Compute and selectively
16684 filter thread paths based on threading through the latch, threading
16685 a multiway branch or crossing a multiway branch.
16687 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16689 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
16690 decl with __attribute__ ((unused)) annotation.
16692 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
16695 * tree-vect-stmts.c (vectorizable_condition): Check vectype
16696 of operands is compatible with a statement vectype.
16698 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
16700 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
16701 improve wording for mixed storage order support.
16703 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
16705 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
16706 (vcvt_u64_f64): Likewise.
16707 (vcvta_s64_f64): Likewise.
16708 (vcvta_u64_f64): Likewise.
16709 (vcvtm_s64_f64): Likewise.
16710 (vcvtm_u64_f64): Likewise.
16711 (vcvtn_s64_f64): Likewise.
16712 (vcvtn_u64_f64): Likewise.
16713 (vcvtp_s64_f64): Likewise.
16714 (vcvtp_u64_f64): Likewise.
16716 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
16718 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
16719 (arc_init): Check validity mll64 option.
16720 (arc_save_restore): Use double load/store instruction.
16721 (arc_expand_movmem): Likewise.
16722 (arc_split_move): Don't split if we have double load/store
16723 instructions. Returns a boolean.
16724 (arc_process_double_reg_moves): Change function to return boolean
16725 instead of a sequence of instructions.
16726 (arc_dwarf_register_span): New function.
16727 * config/arc/arc-protos.h (arc_split_move): Change prototype.
16728 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
16729 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
16730 (*movdf_insn): Likewise.
16731 * config/arc/arc.opt (mll64): New option.
16732 * config/arc/predicates.md (even_register_operand): New predicate.
16733 * doc/invoke.texi (ARC Options): Add mll64 documentation.
16735 2016-01-25 Richard Biener <rguenther@suse.de>
16738 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
16739 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
16741 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
16743 2016-01-25 Richard Biener <rguenther@suse.de>
16745 PR tree-optimization/69376
16746 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
16748 (VN_INFO_ANTI_RANGE_P): New inline.
16749 (VN_INFO_RANGE_TYPE): Likewise.
16750 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
16751 SSA_NAME_ANTI_RANGE_P.
16752 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
16753 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16754 Properly query VN_INFO_RANGE_TYPE.
16756 2016-01-25 Nick Clifton <nickc@redhat.com>
16759 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
16761 2016-01-23 Tom de Vries <tom@codesourcery.com>
16763 PR tree-optimization/69426
16764 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
16767 2016-01-23 Jakub Jelinek <jakub@redhat.com>
16769 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
16770 "the the" with "the" in the comments.
16771 * ipa-devirt.c (build_type_inheritance_graph,
16772 update_type_inheritance_graph): Likewise.
16773 * tree.c (build_function_type_list_1): Likewise.
16774 * cfgloopmanip.c (scale_loop_profile): Likewise.
16775 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
16776 * gimple-ssa-split-paths.c
16777 (find_block_to_duplicate_for_splitting_paths): Likewise.
16778 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
16779 * expr.c (convert_move): Likewise.
16780 * var-tracking.c (vt_stack_adjustments): Likewise.
16781 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
16782 * tree-vrp.c (test_for_singularity): Likewise.
16784 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
16785 directly instead of building a temporary tree.
16788 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
16789 remove <algorithm> include.
16791 2016-01-22 Jakub Jelinek <jakub@redhat.com>
16794 * config/i386/i386.c: Include dojump.h.
16795 (expand_small_movmem_or_setmem,
16796 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
16798 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
16799 if dynamic_check != -1.
16801 2016-01-21 Jeff Law <law@redhat.com>
16803 PR middle-end/69347
16804 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
16805 record_temporary_equivalences. Rewritten to avoid unnecessary calls
16806 into dominated_by_p.
16807 (cprop_into_successor_phis): Avoid unnecessary tests.
16809 2016-01-22 Richard Henderson <rth@redhat.com>
16812 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
16813 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
16815 2016-01-22 Michael Matz <matz@suse.de>
16817 * system.h (string, algorithm): Include only conditionally.
16818 (new): Include always under C++.
16819 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
16820 * final.c (toplevel): Ditto.
16821 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
16822 * genconditions.c (write_header): Make gencondmd.c define
16824 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
16826 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
16827 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
16829 2016-01-22 Christian Bruel <christian.bruel@st.com>
16832 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
16834 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16837 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
16838 define_insn_and_split. Ensure operands[1] and operands[0] do not
16839 get assigned the same register.
16841 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
16843 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
16845 2016-01-22 Christian Bruel <christian.bruel@st.com>
16847 * config/arm/arm-c.c (arm_pragma_target_parse):
16848 Remove warn_builtin_macro_redefined overwrite.
16850 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
16852 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
16853 flag_non_call_exceptions compatibility.
16855 2016-01-22 Jakub Jelinek <jakub@redhat.com>
16858 * dwarf2out.c (add_child_die_after): New function.
16859 (dwarf_qual_info_t): New type.
16860 (dwarf_qual_info): New variable.
16861 (qualified_die_p): New function.
16862 (modified_type_die): For -fdebug-types-section, ensure
16863 canonical order of qualifiers. Put qualified DIEs adjacent
16864 to the corresponding non-qualified type DIE and search there
16865 for existing qualified DIEs.
16867 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
16869 * doc/extend.texi (scalar_storage_order type attribute): Document
16870 restriction on type punning and aliasing, and remove future tense.
16872 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
16875 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
16878 2016-01-21 Jeff Law <law@redhat.com>
16880 PR middle-end/69347
16881 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
16882 useless call to record_temporary_equivalences.
16883 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
16884 allocate 10 slots in the bb_path vector and let it grow as needed.
16885 (fsm_find_control_statement_thread_paths): Similarly for the next_path
16888 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
16890 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
16892 * configure: Regenerate.
16894 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
16896 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
16897 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
16899 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
16901 PR middle-end/66178
16902 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
16903 drop EXPAND_INITIALIZER.
16904 * rtl.h (contains_symbolic_reference_p): Declare.
16905 * rtlanal.c (contains_symbolic_reference_p): New function.
16906 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
16907 a subtraction into a NOT if symbolic constants are involved.
16909 2016-01-21 Anton Blanchard <anton@samba.org>
16910 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16913 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
16915 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
16918 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
16920 * config/microblaze/microblaze.c
16921 (get_branch_target): New.
16922 (insert_wic_for_ilb_runout): New.
16924 (microblaze_machine_dependent_reorg): New.
16925 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
16926 * config/microblaze/microblaze.md
16927 (UNSPEC_IPREFETCH): Define.
16928 (iprefetch): New pattern
16929 * config/microblaze/microblaze.opt
16930 (mxl-prefetch): New flag.
16932 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
16934 * config/microblaze/microblaze.h
16935 (FIXED_REGISTERS): Update in macro.
16936 (CALL_USED_REGISTERS): Update in macro.
16938 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
16940 PR rtl-optimization/68920
16941 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
16944 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
16946 PR rtl-optimization/68990
16947 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
16948 pseudo instead of inheritance ones.
16950 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
16951 Nick Clifton <nickc@redhat.com>
16955 * config/mips/mips.c (mips_compute_frame_info): Initialise
16956 args_size and hard_frame_pointer_offset fields of the frame
16957 structure before calling mips_global_pointer.
16959 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
16961 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
16963 * configure: Regenerate.
16965 2016-01-21 Richard Biener <rguenther@suse.de>
16967 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
16969 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
16971 * config/s390/s390.c (s390_asm_declare_function_size): Add code
16972 to actually emit the .size directive.
16974 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
16975 Jakub Jelinek <jakub@redhat.com>
16979 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
16980 args array size by one to avoid buffer overflow.
16982 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
16984 * config/s390/s390.md (pool_section_start): Use switch_to_section
16985 to select proper read-only data section instead of hardcoding
16987 (pool_section_end): Use switch_to_section to match the above.
16989 2016-01-21 Richard Biener <rguenther@suse.de>
16991 PR tree-optimization/69378
16992 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
16993 (set_ssa_val_to): Use it for dominance checks taking into
16994 account not executable edges.
16996 2016-01-21 Jakub Jelinek <jakub@redhat.com>
16999 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
17000 for bitsize instead of GET_MODE_PRECISION (mode).
17002 2016-01-20 Martin Sebor <msebor@redhat.com>
17005 * extend.texi (__sync Builtins): Clarify the semantics of
17006 __sync_fetch_and_OP built-ins on pointers.
17007 (__atomic Builtins): Same.
17009 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17010 Sebastian Pop <s.pop@samsung.com>
17012 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
17013 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
17014 (is_valid_rename): Same.
17015 (translate_isl_ast_to_gimple::get_rename): Same.
17016 (translate_isl_ast_to_gimple::rename_all_uses): Same.
17017 (translate_isl_ast_to_gimple::rename_uses): Same.
17018 (get_new_name): Check for close_phi nodes.
17019 (copy_loop_phi_args): Use phi_node_kind.
17020 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
17021 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
17023 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17024 Sebastian Pop <s.pop@samsung.com>
17026 Revert commit r229783.
17027 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
17028 Remove use of parameter_rename_map.
17029 (copy_def): Remove.
17030 (copy_internal_parameters): Remove.
17031 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
17032 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
17033 (free_sese_info): Do not free parameter_rename_map.
17034 (set_rename): Do not use parameter_rename_map.
17035 (rename_uses): Update call to set_rename.
17036 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
17037 * sese.h (parameter_rename_map_t): Remove.
17038 (struct sese_info_t): Remove field parameter_rename_map.
17040 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17041 Sebastian Pop <s.pop@samsung.com>
17043 * graphite-isl-ast-to-gimple.c: Fix comment.
17044 * graphite-scop-detection.c (defined_in_loop_p): New.
17045 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
17046 names defined in loop.
17048 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17049 Sebastian Pop <s.pop@samsung.com>
17051 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
17052 Discard unstructured if-then-else regions.
17054 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17055 Sebastian Pop <s.pop@samsung.com>
17057 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
17058 (cleanup_loop_iter_dom): Remove.
17059 (build_loop_iteration_domains): Remove.
17060 (build_scop_context): Remove.
17061 (build_scop_iteration_domain): Remove.
17062 (add_loop_constraints): New.
17063 (build_iteration_domains): New.
17064 (build_poly_scop): Call build_iteration_domains.
17066 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17067 Sebastian Pop <s.pop@samsung.com>
17069 * graphite-scop-detection.c
17070 (scop_detection::harmful_loop_in_region): Free dom and loops.
17071 (scop_detection::loop_body_is_valid_scop): Free bbs.
17073 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17074 Sebastian Pop <s.pop@samsung.com>
17076 * graphite-scop-detection.c (record_loop_in_sese): New.
17077 (gather_bbs::before_dom_children): Call record_loop_in_sese.
17078 (build_scops): Remove call to build_sese_loop_nests.
17079 * sese.c (sese_record_loop): Remove.
17080 (build_sese_loop_nests): Remove.
17081 (new_sese_info): Remove region->loops.
17082 (free_sese_info): Same.
17083 * sese.h (sese_contains_loop): Same.
17084 (build_sese_loop_nests): Remove.
17085 (sese_contains_loop): Remove.
17087 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17088 Sebastian Pop <s.pop@samsung.com>
17090 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
17091 loop_is_valid_in_scop.
17092 (scop_detection::harmful_stmt_in_region): Renamed
17093 harmful_loop_in_region.
17094 Call loop_is_valid_in_scop.
17096 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17097 Sebastian Pop <s.pop@samsung.com>
17099 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
17102 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17103 Sebastian Pop <s.pop@samsung.com>
17105 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
17106 * graphite.h (struct poly_bb): Remove field is_reduction.
17107 (PBB_IS_REDUCTION): Remove.
17109 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
17110 Sebastian Pop <s.pop@samsung.com>
17112 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
17113 (add_pdr_constraints): Same.
17114 (scop_get_reads): Same.
17115 (scop_get_must_writes): Same.
17116 (scop_get_may_writes): Same.
17117 (scop_get_original_schedule): Same.
17118 (extend_schedule): Same.
17119 (apply_schedule_on_deps): Same.
17120 (carries_deps): Same.
17121 (compute_deps): Same.
17122 (scop_get_dependences): Same.
17123 * graphite-isl-ast-to-gimple.c
17124 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
17125 * graphite-optimize-isl.c (get_schedule_for_band): Same.
17126 (get_schedule_for_band_list): Same.
17127 (get_schedule_map): Same.
17128 (apply_schedule_map_to_scop): Same.
17129 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
17130 (build_loop_iteration_domains): Same.
17131 (add_condition_to_pbb): Same.
17132 (add_param_constraints): Same.
17133 (pdr_add_memory_accesses): Same.
17134 (pdr_add_data_dimensions): Same.
17136 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
17138 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
17141 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
17143 * common.opt (feliminate-dwarf2-dups): Replace references to
17144 "DWARF 2" with just "DWARF".
17145 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
17146 * doc/extend.texi: Likewise.
17147 * doc/cpp.texi: Likewise.
17148 * doc/invoke.texi: Likewise.
17149 (Option Summary): Add -gdwarf to list of Debugging Options.
17150 (Debugging Options): Document -gdwarf.
17151 * doc/contrib.texi: Spell "DWARF" like that.
17153 2016-01-21 Jakub Jelinek <jakub@redhat.com>
17155 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
17156 warning. Fix up formatting.
17158 PR middle-end/67653
17159 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
17160 attempt to mark memory input operand addressable and
17161 call prepare_gimple_addressable in that case. Don't adjust
17162 input_location for diagnostics, use error_at instead.
17164 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
17166 * config/rs6000/ppc-auxv.h: New file.
17167 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
17168 (cpu_is): Likewise.
17169 (cpu_supports): Likewise.
17170 * config/rs6000/rs6000.c: include "ppc-auxv.h".
17171 (cpu_is_info): New variable.
17172 (cpu_supports_info): Likewise.
17173 (tcb_verification_symbol): Likewise.
17174 (cpu_builtin_p): Likewise.
17175 (cpu_expand_builtin): New function.
17176 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
17177 (rs6000_init_builtins): Likewise.
17178 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
17179 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
17180 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
17181 * configure: Regenerate.
17182 * config.in: Likewise.
17183 * doc/extend.texi (PowerPC Built-in Functions): Document
17184 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
17186 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
17189 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
17191 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
17194 2016-01-20 Richard Henderson <rth@redhat.com>
17200 * tree.c (tm_define_builtin): New.
17201 (find_tm_vector_type): New.
17202 (build_tm_vector_builtins): New.
17203 (build_common_builtin_nodes): Call it.
17205 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
17207 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
17208 (arm_fp_ok): Likewise.
17209 (arm_fp): Likewise.
17210 (arm_crypto): Likewise.
17212 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
17213 Richard Biener <rguenther@suse.de>
17215 PR tree-optimization/69328
17216 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
17217 vectors have same number of elements.
17218 (vectorizable_condition): Fix masked version recognition.
17220 2016-01-20 Richard Biener <rguenther@suse.de>
17222 PR tree-optimization/69345
17223 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
17224 (VN_INFO_PTR_INFO): Likewise.
17225 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
17226 info when it is equal between non-dominating SSA names.
17227 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
17228 Make sure to look at original SSA infos.
17230 2016-01-20 Jeff Law <law@redhat.com>
17233 * config/m68k/predicates.md (pow2_m1_operand): New predicate
17235 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
17236 (pc_or_label_operand): New predicate.
17237 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
17238 tests for small integers that are 2^n - 1.
17240 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
17242 * doc/invoke.texi (Options Summary): Add '.' after @xref.
17244 2016-01-19 Jeff Law <law@redhat.com>
17246 PR middle-end/69347
17247 * tree-ssa-threadbackwards.c
17248 (fsm_find_control_statement_thread_paths): Do not try to lookup
17249 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
17251 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
17253 * doc/lto.texi: Remove text that says only Gold has linker plugin
17256 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
17258 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
17259 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
17260 the DIE accordingly.
17261 (modified_type_die): Add REVERSE parameter and pass it recursively,
17262 as well as to base_type_die. Adjust presence check accordingly.
17263 (base_type_for_mode): Adjust call to modified_type_die.
17264 (add_type_attribute): Add REVERSE parameter and pass it to
17266 (generic_parameter_die): Adjust call to add_type_attribute.
17267 (add_scalar_info): Likewise.
17268 (add_subscript_info): Likewise.
17269 (gen_array_type_die): Likewise.
17270 (gen_descr_array_type_die): Likewise.
17271 (gen_entry_point_die): Likewise.
17272 (gen_enumeration_type_die): Likewise.
17273 (gen_formal_parameter_die): Likewise.
17274 (gen_subprogram_die): Likewise.
17275 (gen_variable_die ): Likewise.
17276 (gen_const_die): Likewise.
17277 (gen_field_die): Likewise.
17278 (gen_pointer_type_die): Likewise.
17279 (gen_reference_type_die): Likewise.
17280 (gen_ptr_to_mbr_type_die): Likewise.
17281 (gen_inheritance_die): Likewise.
17282 (gen_subroutine_type_die): Likewise.
17283 (gen_typedef_die): Likewise.
17284 (force_type_die): Adjust call to modified_type_die.
17286 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
17288 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
17289 flow throughout the file. Fix broken link to Objective-C 2.0
17291 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
17294 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
17296 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
17298 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
17301 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
17302 (maybe_record_node): Record cxa_pure_virtual as the only possible
17303 target if there are not ohter candidates.
17304 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
17306 2016-01-19 Richard Biener <rguenther@suse.de>
17308 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
17309 (get_memory_order): Likewise.
17311 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
17313 * tree-vect-stmts.c (vectorizable_store): Check
17316 2016-01-19 David Malcolm <dmalcolm@redhat.com>
17319 * gcc.c (driver::decode_argv): Add call to
17320 init_opts_obstack before init_options_struct.
17321 * opts.c (init_opts_obstack): Remove idempotency.
17322 (init_options_struct): Replace call to init_opts_obstack
17323 with a gcc_assert to verify that it has already been called.
17324 * toplev.c (toplev::main): Add call to init_opts_obstack before
17325 calls to init_options_struct.
17326 (toplev::finalize): Move cleanup of opts_obstack next to
17327 cleanup of save_decoded_options, clearing the latter, and
17328 save_decoded_options_count.
17330 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17333 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
17334 attribute to unconditional. Remove %? from output template.
17336 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
17337 Jiong Wang <jiong.wang@arm.com>
17339 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
17340 generated from different expand order.
17342 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
17344 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
17345 Add support for CCMP costing.
17347 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
17349 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
17350 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
17351 (fccmpe<mode>): Likewise.
17352 (fcmp): Rename to fcmp and globalize pattern.
17354 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
17355 (aarch64_gen_ccmp_next): Add FP support.
17357 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
17359 * target.def (gen_ccmp_first): Update documentation.
17360 (gen_ccmp_next): Likewise.
17361 * doc/tm.texi (gen_ccmp_first): Update documentation.
17362 (gen_ccmp_next): Likewise.
17363 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
17364 expand_ccmp_expr_1. Improve comments.
17365 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
17366 (ccmp_ior<mode>): Remove pattern.
17367 (cmp<mode>): Remove expand.
17368 (cmp): Globalize pattern.
17369 (cstorecc4): Use cc_register.
17370 (mov<mode>cc): Remove ccmp_cc_register check.
17371 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
17372 Simplify after removal of CC_DNE/* modes.
17373 (aarch64_ccmp_mode_to_code): Remove.
17374 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
17375 In 'k' case use integer as condition.
17376 (aarch64_nzcv_codes): Remove inverted cases.
17377 (aarch64_code_to_ccmode): Remove.
17378 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
17379 comparison with CC register to be used in folowing CCMP/branch/CSEL.
17380 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
17381 pattern. Return the comparison with CC register. Invert conditions
17382 when bitcode is OR.
17383 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
17384 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
17386 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
17388 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
17389 instrumented_version.
17391 2016-01-19 Richard Biener <rguenther@suse.de>
17393 PR tree-optimization/69336
17394 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
17395 handled components with get_ref_base_and_extent.
17396 (equal_mem_array_ref_p): Adjust.
17398 2016-01-19 Jakub Jelinek <jakub@redhat.com>
17401 * shrink-wrap.c: Include valtrack.h.
17402 (move_insn_for_shrink_wrap): Add DEBUG argument. If
17403 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
17404 in between insn and where it will be moved to. Call
17405 dead_debug_insert_temp.
17406 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
17407 first and dead_debug_local_finish at the end.
17408 For uses and defs bitmap, handle all regs in between REGNO and
17409 END_REGNO, not just the first one.
17411 2016-01-19 Richard Biener <rguenther@suse.de>
17413 PR tree-optimization/69352
17414 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
17415 (equal_mem_array_ref_p): Constrain size and max size properly.
17416 Compare the reverse flag.
17418 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
17420 * ira.c (ira): Update regstat data if we deleted insns.
17422 2016-01-19 Jakub Jelinek <jakub@redhat.com>
17424 PR rtl-optimization/68955
17425 PR rtl-optimization/64557
17426 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
17427 here. Fix up formatting.
17428 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
17430 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
17433 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
17434 assume that the node has body.
17435 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
17438 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
17440 * lto-streamer-out.c (lto_output): Do not stream instrumentation
17443 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
17445 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
17446 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
17448 2016-01-19 Martin Jambor <mjambor@suse.cz>
17449 Martin Liska <mliska@suse.cz>
17450 Michael Matz <matz@suse.de>
17452 * Makefile.in (OBJS): Add new source files.
17453 (GTFILES): Add hsa.c.
17454 * common.opt (disable_hsa): New variable.
17455 (-Whsa): New warning.
17456 * config.in (ENABLE_HSA): New.
17457 * configure.ac: Treat hsa differently from other accelerators.
17458 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
17459 $enable_offloading.
17460 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
17461 * doc/install.texi (Configuration): Document --with-hsa-runtime,
17462 --with-hsa-runtime-include, --with-hsa-runtime-lib and
17463 --with-hsa-kmt-lib.
17464 * doc/invoke.texi (-Whsa): Document.
17465 (hsa-gen-debug-stores): Likewise.
17466 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
17467 to invoke offload compiler for hsa acclerator.
17468 * opts.c (common_handle_option): Determine whether HSA offloading
17469 should be performed.
17470 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
17471 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
17472 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
17473 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
17474 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
17475 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
17476 GF_OMP_FOR_KIND_GRID_LOOP.
17477 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
17478 (pp_gimple_stmt_1): Likewise.
17479 * gimple-walk.c (walk_gimple_stmt): Likewise.
17480 * gimple.c (gimple_build_omp_grid_body): New function.
17481 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
17482 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
17483 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
17484 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
17485 GF_OMP_TEAMS_GRID_PHONY.
17486 (gimple_statement_omp_single_layout): Updated comments.
17487 (gimple_build_omp_grid_body): New function.
17488 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
17489 (gimple_omp_for_grid_phony): New function.
17490 (gimple_omp_for_set_grid_phony): Likewise.
17491 (gimple_omp_parallel_grid_phony): Likewise.
17492 (gimple_omp_parallel_set_grid_phony): Likewise.
17493 (gimple_omp_teams_grid_phony): Likewise.
17494 (gimple_omp_teams_set_grid_phony): Likewise.
17495 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
17496 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
17497 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
17498 (BUILT_IN_GOMP_TARGET): Updated type.
17499 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
17500 (adjust_for_condition): New function.
17501 (get_omp_for_step_from_incr): Likewise.
17502 (extract_omp_for_data): Moved parts to adjust_for_condition and
17503 get_omp_for_step_from_incr.
17504 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
17505 (fixup_child_record_type): Bail out if receiver_decl is NULL.
17506 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
17507 (scan_omp_parallel): Do not create child functions for phony
17509 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
17510 (scan_omp_1_op): Checking assert we are not remapping to
17511 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
17512 (parallel_needs_hsa_kernel_p): New function.
17513 (expand_parallel_call): Register apprpriate parallel child
17514 functions as HSA kernels.
17515 (grid_launch_attributes_trees): New type.
17516 (grid_attr_trees): New variable.
17517 (grid_create_kernel_launch_attr_types): New function.
17518 (grid_insert_store_range_dim): Likewise.
17519 (grid_get_kernel_launch_attributes): Likewise.
17520 (get_target_argument_identifier_1): Likewise.
17521 (get_target_argument_identifier): Likewise.
17522 (get_target_argument_value): Likewise.
17523 (push_target_argument_according_to_value): Likewise.
17524 (get_target_arguments): Likewise.
17525 (expand_omp_target): Call get_target_arguments instead of looking
17526 up for teams and thread limit.
17527 (grid_expand_omp_for_loop): New function.
17528 (grid_arg_decl_map): New type.
17529 (grid_remap_kernel_arg_accesses): New function.
17530 (grid_expand_target_kernel_body): New function.
17531 (expand_omp): Call it.
17532 (lower_omp_for): Do not emit phony constructs.
17533 (lower_omp_taskreg): Do not emit phony constructs but create for them
17534 a temporary variable receiver_decl.
17535 (lower_omp_taskreg): Do not emit phony constructs.
17536 (lower_omp_teams): Likewise.
17537 (lower_omp_grid_body): New function.
17538 (lower_omp_1): Call it.
17539 (grid_reg_assignment_to_local_var_p): New function.
17540 (grid_seq_only_contains_local_assignments): Likewise.
17541 (grid_find_single_omp_among_assignments_1): Likewise.
17542 (grid_find_single_omp_among_assignments): Likewise.
17543 (grid_find_ungridifiable_statement): Likewise.
17544 (grid_target_follows_gridifiable_pattern): Likewise.
17545 (grid_remap_prebody_decls): Likewise.
17546 (grid_copy_leading_local_assignments): Likewise.
17547 (grid_process_kernel_body_copy): Likewise.
17548 (grid_attempt_target_gridification): Likewise.
17549 (grid_gridify_all_targets_stmt): Likewise.
17550 (grid_gridify_all_targets): Likewise.
17551 (execute_lower_omp): Call grid_gridify_all_targets.
17552 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
17553 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
17554 (tree_omp_clause): Added union field dimension.
17555 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
17556 * tree.c (omp_clause_num_ops): Added number of arguments of
17557 OMP_CLAUSE__GRIDDIM_.
17558 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
17559 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
17560 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
17561 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
17562 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
17563 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
17564 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
17565 * tree-pass.h (make_pass_gen_hsail): Declare.
17566 (make_pass_ipa_hsa): Likewise.
17567 * ipa-hsa.c: New file.
17568 * lto-section-in.c (lto_section_name): Add hsa section name.
17569 * lto-streamer.h (lto_section_type): Add hsa section.
17570 * timevar.def (TV_IPA_HSA): New.
17571 * hsa-brig-format.h: New file.
17572 * hsa-brig.c: New file.
17573 * hsa-dump.c: Likewise.
17574 * hsa-gen.c: Likewise.
17577 * toplev.c (compile_file): Call hsa_output_brig.
17578 * hsa-regalloc.c: New file.
17580 2016-01-18 Jeff Law <law@redhat.com>
17582 PR tree-optimization/69320
17583 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
17584 ranged object, do nothing if the RHS constant is not [0..1].
17585 (optimize_stmt): Comparing a boolean ranged object against a
17586 constant outside [0..1] results in a compile-time constant.
17588 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
17591 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
17593 * doc/invoke.texi (Invoking GCC): Add new section to menu.
17594 (Option Summary): Update to reflect new section and moved options.
17595 (C++ Dialect Options): Move -fstats to new section.
17596 (Debugging Options): Move all dump, statistics, and other GCC
17597 developer options to new section. Rewrite section introduction
17598 and re-order remaining options to put the more basic ones first.
17599 (Optimization Options): Move -fira-verbose and -flto-report* to
17601 (Developer Options): New section incorporating moved options.
17602 * doc/cppopts.texi (-dM): Update cross-reference.
17604 2016-01-18 Richard Henderson <rth@redhat.com>
17607 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
17608 operands to pseudo only if CSE is expected. Split long immediate
17609 operands only after reload, and for the stack pointer.
17610 (*add<GPI>3_pluslong): Remove.
17611 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
17612 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
17613 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
17614 (*add<GPI>3 peepholes): New.
17615 (*add<GPI>3 splitters): New.
17616 * config/aarch64/constraints.md (Upl): New.
17617 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
17619 2016-01-18 Richard Biener <rguenther@suse.de>
17621 PR tree-optimization/69297
17622 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
17624 (vect_bb_vectorization_profitable_p): Clear visited flag again.
17626 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
17628 PR middle-end/68542
17629 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
17630 of mixind vector and scalar types.
17631 (fold_relational_const): Add handling of vector
17632 comparison with boolean result.
17633 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
17634 comparison of vector operands with boolean result for EQ/NE only.
17635 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
17636 (verify_gimple_cond): Likewise.
17637 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
17640 2016-01-18 Joseph Myers <joseph@codesourcery.com>
17642 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
17645 2016-01-18 Richard Biener <rguenther@suse.de>
17647 PR middle-end/69308
17648 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
17650 2016-01-18 Tom de Vries <tom@codesourcery.com>
17652 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
17654 2016-01-18 Tom de Vries <tom@codesourcery.com>
17656 * omp-low.c (set_oacc_fn_attrib): Make extern.
17657 * omp-low.h (set_oacc_fn_attrib): Declare.
17658 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
17659 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
17660 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
17661 Add and handle function parameter oacc_kernels_p.
17662 (find_reduc_addr, get_omp_data_i_param): New function.
17663 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
17664 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
17665 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
17666 Calculate dominance info. Skip loops that are not in a kernels region
17667 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
17668 (pass_parallelize_loops::execute): Call parallelize_loops with
17669 oacc_kernels_p argument.
17670 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
17671 New member function.
17672 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
17673 * passes.def: Add argument to pass_parallelize_loops instantation.
17675 2016-01-18 Tom de Vries <tom@codesourcery.com>
17677 * tree-parloops.c (pass_parallelize_loops::execute): Allow
17678 pass_parallelize_loops to be run outside the loop pipeline.
17680 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
17682 * tree-scalar-evolution.c (follow_copies_to_constant): New.
17683 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
17685 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
17688 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
17689 using get_ref_base_and_extent.
17690 (equal_mem_array_ref_p): New.
17691 (hashable_expr_equal_p): Add call to previous.
17693 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
17696 * tree-sra.c (disqualified_constants, constant_decl_p): New.
17697 (sra_initialize): Allocate disqualified_constants.
17698 (sra_deinitialize): Free disqualified_constants.
17699 (disqualify_candidate): Update disqualified_constants when appropriate.
17700 (create_access): Scan for constant-pool entries as we go along.
17701 (scalarizable_type_p): Add check against type_contains_placeholder_p.
17702 (maybe_add_sra_candidate): Allow constant-pool entries.
17703 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
17704 (initialize_constant_pool_replacements): New.
17705 (sra_modify_assign): Avoid mangling assignments created by previous,
17706 and don't generate writes into constant pool.
17707 (sra_modify_function_body): Call initialize_constant_pool_replacements.
17709 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
17711 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
17712 andnot instruction.
17713 (scalar_chain::convert_op): Likewise.
17714 * config/i386/i386.md (*andndi3_doubleword): New.
17716 2016-01-18 Richard Biener <rguenther@suse.de>
17718 PR tree-optimization/69170
17719 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
17720 building a vector from scalar results of a pattern stmt.
17722 2016-01-18 Jakub Jelinek <jakub@redhat.com>
17724 * haifa-sched.c (autopref_multipass_init): Work around
17725 -Wmaybe-uninitialized warning.
17727 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
17729 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
17730 against the constant 0.
17732 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17734 PR tree-optimization/68799
17735 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
17736 look up phi candidates in the statement-candidate map.
17737 (phi_add_costs): Likewise.
17738 (record_phi_increments): Likewise.
17739 (phi_incr_cost): Likewise.
17740 (ncd_with_phi): Likewise.
17741 (all_phi_incrs_profitable): Likewise.
17743 2016-01-17 Jakub Jelinek <jakub@redhat.com>
17745 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
17746 -Wmaybe-uninitialized warning.
17748 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
17750 * doc/invoke.texi (Invoking GCC): Add new section to menu.
17751 (Option Summary): Update to reflect new section and moved options.
17752 (C++ Dialect Options): Move -fvtable-verify and related options.
17753 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
17754 and profiling-related options.
17755 (Optimization Options): Move profile generation options and
17756 -fstack-protector and related options.
17757 (Instrumentation Options): New section incorporating moved options.
17758 (Code Generation Options): Move -finstrument-functions and
17759 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
17761 2016-01-16 Tom de Vries <tom@codesourcery.com>
17763 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
17765 2016-01-16 Tom de Vries <tom@codesourcery.com>
17767 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
17769 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
17771 * hash-table.h (hash_table::empty): Turn into an inline wrapper
17772 that checks whether the table is already empty. Rename the
17773 original implementation to...
17774 (hash_table::empty_slot): ...this new private function.
17776 2016-01-15 David Malcolm <dmalcolm@redhat.com>
17778 PR diagnostic/68899
17779 * diagnostic-show-locus.c (layout::print_source_line): Move x
17780 offset of line until after call to
17781 get_line_width_without_trailing_whitespace.
17783 2016-01-15 Jeff Law <law@redhat.com>
17785 PR tree-optimization/69270
17786 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
17787 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
17788 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
17789 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
17790 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
17791 ssa_name_has_boolean_range and constant_boolean_node.
17793 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
17795 PR rtl-optimization/69030
17796 * lra-spills.c (remove_pseudos): Check nrefs and make the function
17798 (spill_pseudos): Delete debug insn for dead pseudo.
17799 (lra_spill): Initiate spill_hard_reg and slots memory separately.
17801 2016-01-15 Jiong Wang <jiong.wang@arm.com>
17803 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
17805 (TYPES_UNOPUS): Likewise.
17806 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
17807 builtin type, from UNOP to UNOPUS.
17808 (lbtruncuv4sf): Likewise.
17809 (lbtruncuv2df): Likewise.
17810 (lrounduv2sf): Likewise.
17811 (lrounduv4sf): Likewise.
17812 (lrounduv2df): Likewise.
17813 (lroundusf): Likewise.
17814 (lroundusf): Likewise.
17815 (lceiluv2sf): Likewise.
17816 (lceiluv4sf): Likewise.
17817 (lceiluv2df): Likewise.
17818 (lceilusf): Likewise.
17819 (lceiludf): Likewise.
17820 (lflooruv2sf): Likewise.
17821 (lflooruv4sf): Likewise.
17822 (lflooruv2df): Likewise.
17823 (lfloorusf): Likewise.
17824 (lfloorudf): Likewise.
17825 (lfrintnuv2sf): Likewise.
17826 (lfrintnuv4sf): Likewise.
17827 (lfrintnuv2df): Likewise.
17828 (lfrintnusf): Likewise.
17829 (lfrintnudf): Likewise.
17830 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
17832 (vcvtq_u32_f32): Likewise.
17833 (vcvtq_u64_f64): Likewise.
17834 (vcvta_u32_f32): Likewise.
17835 (vcvtaq_u32_f32): Likewise.
17836 (vcvtaq_u64_f64): Likewise.
17837 (vcvtm_u32_f32): Likewise.
17838 (vcvtmq_u32_f32): Likewise.
17839 (vcvtmq_u64_f64): Likewise.
17840 (vcvtn_u32_f32): Likwise.
17841 (vcvtnq_u32_f32): Likewise.
17842 (vcvtnq_u64_f64): Likewise.
17843 (vcvtp_u32_f32): Likewise.
17844 (vcvtpq_u32_f32): Likewise.
17845 (vcvtpq_u64_f64): Likewise.
17846 (vcvtmd_u64_f64): Likewise.
17847 (vcvtms_u32_f32): Likewise.
17848 (vcvtad_u64_f64): Likewise.
17849 (vcvtas_u32_f32): Likewise.
17850 (vcvtnd_u64_f64): Likewise.
17851 (vcvtns_u32_f32): Likewise.
17852 (vcvtpd_u64_f64): Likewise.
17853 (vcvtps_u32_f32): Likewise.
17855 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17857 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
17858 CSEL of zero_extended registers.
17860 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17862 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
17863 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
17865 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17867 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
17868 false when argument string is not found in the attributes table
17871 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
17874 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
17875 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
17876 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
17877 precision estimate.
17879 2016-01-15 Richard Biener <rguenther@suse.de>
17881 PR tree-optimization/66856
17882 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
17883 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
17884 (vect_create_new_slp_node): Increment stmt reference count.
17885 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
17886 an SLP tree before swapping operands.
17887 (vect_build_slp_tree): Likewise.
17888 (destroy_bb_vec_info): Free stmt info after SLP instances.
17889 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
17890 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
17891 (STMT_VINFO_NUM_SLP_USES): New macro.
17893 2016-01-15 Richard Biener <rguenther@suse.de>
17896 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
17897 (add_linkage_name): ... here.
17898 (gen_typedef_die): Use add_linkage_name_raw instead of
17899 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
17902 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
17904 * gimplify.c (oacc_default_clause): Decode reference and pointer
17905 types for both kernels and parallel regions.
17907 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
17909 PR middle-end/69246
17910 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
17912 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
17914 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
17915 (convert_scalars_to_vector): Likewise.
17917 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
17919 * doc/extend.texi (Type Traits): Fix grammar.
17921 2016-01-15 Martin Jambor <mjambor@suse.cz>
17923 * tree-inline.c (remap_decl): Use existing dclarations if
17924 remapping a type and prevent_decl_creation_for_types.
17925 (replace_locals_stmt): Do an initial remapping of non-VLA typed
17926 decls first. Do real remapping with
17927 prevent_decl_creation_for_types set.
17928 * tree-inline.h (copy_body_data): New field
17929 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
17932 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
17934 * config/s390/s390.opt (mmvcle): More verbose help text.
17936 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
17938 * config/s390/s390.opt: Add period to -mzvector option text.
17940 2016-01-15 Richard Biener <rguenther@suse.de>
17942 PR tree-optimization/68961
17943 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
17944 of invariants in stores again.
17946 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
17948 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
17950 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
17952 * config/i386/i386.c (ix86_expand_branch): Don't split
17953 DI mode xor instruction to SI mode.
17955 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
17958 * ipa-icf.c (sem_function::merge): Virtual functions may become
17959 reachable even if they address is not taken and there are no
17962 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
17964 * lto-streamer-out.c (subtract_estimated_size): New function.
17965 (get_symbol_initial_value): Use it.
17967 2016-01-15 Christian Bruel <christian.bruel@st.com>
17970 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
17971 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
17972 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
17973 use add_builtin_function_ext_scope instead of add_builtin_function.
17974 (neon_set_p, neon_crypto_set_p): Remove.
17975 (arm_init_builtins): Always call arm_init_neon_builtins and
17976 arm_init_crypto_builtins.
17977 (arm_expand_builtin): Check that builtins are allowed for the arch.
17978 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
17979 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
17980 arm_init_neon_builtins call.
17982 2016-01-15 Richard Biener <rguenther@suse.de>
17984 PR tree-optimization/69117
17985 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
17986 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
17987 of the leader conservatively.
17988 (free_scc_vn): Restore original SSA name infos.
17990 2016-01-14 Jeff Law <law@redhat.com>
17992 PR tree-optimization/69270
17993 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
17994 single bit of precision, verify it's also unsigned.
17995 (record_edge_info): Use constant_boolean_node rather than fold_convert
17996 to convert boolean_true/boolean_false to the right type.
17998 2016-01-14 Richard Henderson <rth@redhat.com>
18001 * loop-doloop.c (record_reg_sets): New.
18002 (doloop_optimize): Reject the transform if the sequence
18003 clobbers registers live at the end of the loop block.
18004 (doloop_optimize_loops): Enable df_live if needed.
18006 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
18008 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
18009 * config/rs6000/rs6000.c: Likewise.
18010 * config/rs6000/rs6000.h: Likewise.
18011 * config/rs6000/rs6000.md: Likewise.
18012 * doc/extend.texi: Likewsie.
18014 2016-01-14 Jeff Law <law@redhat.com>
18016 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
18019 2016-01-14 Richard Henderson <rth@redhat.com>
18023 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
18024 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
18025 instead of builtin_decl_declared_p to test for declaration.
18027 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
18029 * doc/loop.texi (Loop Analysis and Representation): Document
18030 loop_depth function.
18032 2016-01-14 Tom de Vries <tom@codesourcery.com>
18034 PR tree-optimization/68773
18035 * omp-low.c (expand_omp_target): Don't set force_output.
18036 * varpool.c (varpool_node::get_create): Same.
18037 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
18038 offload_funcs with force_output.
18040 2016-01-14 Jakub Jelinek <jakub@redhat.com>
18043 * lra-eliminations.c (move_plus_up): Don't change anything if either
18044 the outer or inner subreg mode is not MODE_INT.
18045 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
18046 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
18048 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
18050 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
18051 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
18052 reduc_uplus_@var{m}): Remove.
18053 * expr.c (expand_expr_real_2): Remove expansion path for
18054 reduc_[us](min|max|plus) optabs.
18055 * optabs-tree.c (scalar_reduc_to_vector): Remove.
18056 * optabs-tree.h (scalar_reduc_to_vector): Remove.
18057 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
18058 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
18059 * tree-vect-loop.c (vectorizable_reduction): Remove test for
18060 reduc_[us](min|max|plus) optabs.
18062 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
18064 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
18065 (reduc_plus_scal_v2sf): New.
18066 (reduc_smax_v2sf): Rename to...
18067 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
18068 (reduc_smin_v2sf): Rename to...
18069 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
18071 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
18073 * alias.c (compare_base_symbol_refs): New function.
18074 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
18077 2016-01-14 Jakub Jelinek <jakub@redhat.com>
18079 PR middle-end/68146
18080 PR tree-optimization/69155
18081 * tree-complex.c: Include cfganal.h.
18082 (phis_to_revisit): New variable.
18083 (extract_component): Add phiarg_p argument. Assert that returned
18084 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
18085 (update_phi_components): Partly rewrite to use loop over real/imag
18086 components instead of code duplication. If extract_component returns
18087 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
18088 create_tmp_reg into the PHI node instead, and mention the phi triplet
18089 in phis_to_revisit.
18090 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
18091 in phis_to_revisit at the end.
18093 2016-01-14 Richard Biener <rguenther@suse.de>
18095 PR tree-optimization/68060
18096 * tree-vect-loop.c (vect_is_simple_reduction): Check the
18097 outer loop reduction is only used in the inner loop before
18098 detecting a double reduction.
18100 2016-01-14 Jakub Jelinek <jakub@redhat.com>
18103 * combine.c (expand_field_assignment): Punt if compute_mode is
18104 unsupported scalar mode.
18106 2016-01-14 Richard Biener <rguenther@suse.de>
18108 PR tree-optimization/66856
18109 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
18110 SLP node only if it built successfully.
18111 (vect_analyze_slp_instance): Adjust.
18113 2016-01-14 Jeff Law <law@redhat.com>
18115 PR tree-optimization/69270
18116 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
18117 (record_edge_info): Use it. Convert boolean_{true,false}_node
18118 to the type of op0.
18120 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
18123 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
18124 use block_ultimate_origin
18125 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
18127 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
18129 * doc/invoke.texi (Submodel Options): Rename section to
18130 "Machine-Dependent Options" to better reflect its content.
18131 Rewrite introductory text to remove archaic CPU names.
18134 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
18136 * doc/invoke.texi (Code Gen Options): Move section up in file,
18137 before target-specific options. Update menu and option summary
18138 to reflect the new section ordering.
18140 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
18142 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
18143 (C++ Dialect Options): Add cross-reference to -std option.
18144 * doc/standards.texi (C++ Language): Document C++14 support.
18146 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
18148 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
18149 for pack/unpack functions for __ibm128.
18150 (PACK_IF): Likewise.
18151 (UNPACK_IF): Likewise.
18153 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
18154 support for __ibm128 pack/unpack functions.
18155 (rs6000_invalid_builtin): Likewise.
18156 (rs6000_init_builtins): Likewise.
18157 (rs6000_opt_masks): Likewise.
18159 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
18160 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
18162 (RS6000_BTM_COMMON): Likewise.
18164 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
18165 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
18166 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
18167 128-bit floating point. Add support for the double values to be
18168 in Altivec registers for TF/IF packing and unpacking, but restrict
18169 TD packing sub-fields to be FPR registers. Don't allow overlapped
18170 register support for packing. Allow pack inputs to be memory
18171 locations. Don't build generator functions for unpack<mode>_dm
18172 and unpack<mode>_nodm.
18173 (unpack<mode>_dm): Likewise.
18174 (unpack<mode>_nodm): Likewise.
18175 (pack<mode>): Likewise.
18177 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
18178 built-in functions to pack/unpack explicit __ibm128 values.
18179 (__builtin_unpack_ibm128): Likewise.
18181 * doc/extend.texi (PowerPC Built-in Functions): Document
18182 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
18184 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
18187 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
18188 Add new arg loc and pass it down as context.
18189 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
18190 to the location to use for the warning.
18191 (check_function_arguments): New arg loc. All callers changed. Pass
18192 it to check_function_nonnull.
18193 * c-common.h (check_function_arguments): Adjust declaration.
18195 2016-01-13 Jakub Jelinek <jakub@redhat.com>
18197 PR tree-optimization/69156
18198 * gimple.c (validate_type): Removed.
18199 (gimple_builtin_call_types_compatible_p): Use
18200 useless_type_conversion_p instead of validate_type.
18201 * value-prof.c (gimple_stringop_fixed_value): Fold
18202 icall_size to correct type.
18204 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
18206 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
18209 2016-01-13 Richard Henderson <rth@redhat.com>
18212 * target.def (builtin_tm_load, builtin_tm_store): Remove.
18213 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
18214 (ix86_builtin_tm_store): Remove.
18215 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
18216 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
18217 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
18218 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
18219 * doc/tm.texi: Rebuild.
18221 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
18222 (BUILT_IN_TM_MEMCPY_RTWN): New.
18223 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
18224 fallback from vector to integer helpers.
18225 (build_tm_load): Handle vector types directly, instead of
18227 (build_tm_store): Likewise.
18228 (expand_assign_tm): Prepare for register types not handled by
18229 the above. Copy them to memory and use memcpy.
18230 * tree.c (tm_define_builtin): New.
18231 (find_tm_vector_type): New.
18232 (build_tm_vector_builtins): New.
18233 (build_common_builtin_nodes): Call it.
18235 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
18237 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
18238 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
18240 2016-01-13 Tom de Vries <tom@codesourcery.com>
18242 PR tree-optimization/69169
18243 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
18244 handled_struct_type param.
18245 (create_variable_info_for, intra_create_variable_infos): Call
18246 create_variable_info_for_1 with extra arg.
18248 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
18250 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
18251 and "armv8.1-a+crc" entries.
18253 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
18256 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
18257 Change first operand predicate from register_or_constm1_operand
18258 to register_operand.
18259 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
18260 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
18261 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
18262 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
18263 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
18264 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
18265 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
18266 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
18267 comparison with constm1_rtx from vec_prefetch_gen part.
18269 2016-01-13 Richard Biener <rguenther@suse.de>
18271 PR tree-optimization/69013
18272 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
18273 Exchange assert for a test.
18275 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18278 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
18280 2016-01-13 Richard Biener <rguenther@suse.de>
18282 PR tree-optimization/69242
18283 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
18284 assert with a check.
18286 2016-01-13 Richard Biener <rguenther@suse.de>
18288 PR tree-optimization/69186
18289 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
18290 Properly guard vect_update_misalignment_for_peel call.
18292 2016-01-12 Jeff Law <law@redhat.com>
18294 PR tree-optimization/pr67755
18295 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
18296 "need_profile_correction".
18297 (thread_block_1): Initialize new field to false by default. If we
18298 have multiple thread paths through a common joiner to different
18299 final targets, then set new field to true.
18300 (compute_path_counts): Only do count adjustment when it's really
18303 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
18305 * doc/invoke.texi (Spec Files): Move section down in file, past
18306 all command-line option descriptions.
18308 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18310 PR middle-end/54809
18311 * doc/gty.texi: Remove documentation of mark_hook.
18312 * gengtype.c (struct write_types_data): Remove code to support
18313 mark_hook attribute.
18314 (walk_type): Likewise.
18315 (write_func_for_structure): Likewise.
18317 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
18319 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
18320 Directory Options, and -specs= to Overall Options.
18321 (Overall Options): Adjust similarly. Reorder to group related
18322 options together. Make -specs= cross-reference the spec file details.
18323 (Directory Options): Adjust similarly.
18325 2016-01-12 Jeff Law <law@redhat.com>
18327 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
18329 2016-01-12 Olivier Hainque <hainque@adacore.com>
18331 * gcc.c (spec_undefvar_allowed): New global.
18332 (process_command): Set to true when running for --version or --help,
18334 (getenv_spec_function): When the variable is not defined, use the
18335 variable name as the variable value if we're allowed not to issue
18338 2016-01-12 Bin Cheng <bin.cheng@arm.com>
18340 PR tree-optimization/68911
18341 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
18342 information computed for expression "init + nit * step".
18344 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
18346 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
18347 about name of GCC executable. Remove deleted node from menu.
18348 (Directory Options) <-B>: Remove cross-reference to deleted node.
18349 (Target Options): Delete section.
18351 2016-01-12 Christian Bruel <christian.bruel@st.com>
18354 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
18355 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
18357 2016-01-12 Jakub Jelinek <jakub@redhat.com>
18360 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
18361 aligned_mem is properly set for AVX512-VL floating point masked
18365 * ifcvt.c (cond_exec_process_if_block): When removing the last
18366 insn from then_bb, remove also any possible barriers that follow it.
18368 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
18372 * config/i386/iamcu.h (SIZE_TYPE): New macro.
18373 (PTRDIFF_TYPE): Likewise.
18374 (WCHAR_TYPE): Likewise.
18375 (WCHAR_TYPE_SIZE): Likewise.
18376 (STDINT_LONG32): Likewise.
18378 2016-01-12 Richard Biener <rguenther@suse.de>
18380 PR tree-optimization/69053
18381 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
18382 convert initial value for cond reductions.
18384 2016-01-12 Richard Biener <rguenther@suse.de>
18386 PR tree-optimization/69007
18387 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
18388 widen_sum after dot_prod and sad.
18390 2016-01-12 Richard Biener <rguenther@suse.de>
18392 PR tree-optimization/69168
18393 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
18394 pattern stmt SLP type.
18395 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
18396 end up unused so cope with that case.
18398 2016-01-12 Richard Biener <rguenther@suse.de>
18400 PR tree-optimization/69157
18401 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
18402 stmts def type only during analyze phase.
18403 (vectorizable_call): Likewise.
18404 (vectorizable_simd_clone_call): Likewise.
18405 (vectorizable_conversion): Likewise.
18406 (vectorizable_assignment): Likewise.
18407 (vectorizable_shift): Likewise.
18408 (vectorizable_operation): Likewise.
18409 (vectorizable_store): Likewise.
18410 (vectorizable_load): Likewise.
18412 2016-01-12 Richard Biener <rguenther@suse.de>
18414 PR tree-optimization/69174
18415 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
18417 (vectorizable_load): Properly compute the number of loads needed
18418 for permuted strided SLP loads and do not spuriously assign
18419 to SLP_TREE_VEC_STMTS.
18421 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
18423 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
18424 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
18425 (MD_EXEC_PREFIX): Remove.
18426 (MD_STARTFILE_PREFIX) Removee.
18427 (FILE_NAME_ABSOLUTE_P): Remove.
18428 (CPP_SPEC): Do not read macros from sys/version.h.
18429 (LINK_COMMAND_SPEC): Remove.
18430 (LOCAL_INCLUDE_DIR): Remove.
18431 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
18432 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
18433 (POST_LINK_SPEC): Define to invoke stubify after linker
18434 (LIBSTDCXX): Remove define
18435 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
18436 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
18437 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
18438 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
18439 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
18440 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
18441 (i386_djgpp_asm_named_section): Add propotype of new procedure
18443 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
18444 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
18445 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
18446 in config/i386/djgpp.h).
18447 (STANDARD_STARTFILE_PREFIX_2): Define identical to
18448 STANDARD_STARTFILE_PREFIX_1.
18449 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
18450 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
18451 installation errors.
18452 (MAX_OFILE_ALIGNMENT): Define to 128.
18453 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
18455 * config/i386/djgpp.c: New file. Add implementation of
18456 i386_djgpp_asm_named_section.
18458 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
18460 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
18461 Add rule for building djgpp.o.
18463 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18465 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
18466 (rtx_is_swappable_p): Reductions are swappable.
18467 (insn_is_swappable_p): V2DF reductions are swappable.
18469 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
18471 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
18472 reloads for other unsupported memory operands.
18474 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
18475 Jim Wilson <jim.wilson@linaro.org>
18478 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
18479 copy_to_mode_reg instead of force_reg.
18481 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
18484 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
18485 TARGET_80387 is true.
18487 2016-01-11 Jakub Jelinek <jakub@redhat.com>
18490 * lra-eliminations.c (move_plus_up): Only move plus up
18491 if subreg of the constant can be simplified into constant
18492 and use the simplified subreg of the constant instead of
18493 the original constant.
18495 * fold-const.c (fold_convertible_p): Don't return true
18496 for conversion of VECTOR_TYPE to same sized integral type.
18497 (fold_convert_loc): Fix up formatting. Fold conversion of
18498 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
18499 instead of NOP_EXPR.
18501 PR tree-optimization/69214
18502 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
18503 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
18506 PR tree-optimization/69207
18507 * tree-vect-slp.c (vect_get_constant_vectors): For
18508 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
18509 fold_convertible_p to vector_type's element type, and always
18510 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
18512 2016-01-11 Richard Biener <rguenther@suse.de>
18514 PR tree-optimization/69173
18515 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
18516 fixup the cycle if all stmts are in a pattern.
18518 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
18520 PR middle-end/68999
18521 * alias.c (base_alias_check): Move check for addresses with
18522 alignment ANDs before the call for compare_base_decls.
18523 (memrefs_conflict_p): Return -1 for different decls
18524 that went through alignment adjustments.
18526 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18528 PR rtl-optimization/68796
18529 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
18530 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
18531 and QImode comparisons against zero with CC_NZmode.
18532 * config/aarch64/iterators.md (short_mask): New mode_attr.
18534 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
18536 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
18537 (<avx512>_store<mode>_mask): Likewise.
18539 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
18540 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18542 PR rtl-optimization/68841
18543 * ifcvt.c (struct noce_if_info): Add orig_x field.
18544 (bbs_ok_for_cmove_arith): Add to_rename parameter.
18545 Don't record conflicts on to_rename if it's present.
18546 Allow memory destinations in sets.
18547 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
18548 blocks, passing orig_x to the checks.
18549 (noce_process_if_block): Set if_info->orig_x appropriately.
18551 2016-01-11 Tom de Vries <tom@codesourcery.com>
18553 PR tree-optimization/69069
18554 * tree-parloops.c (create_parallel_loop): Add missing phi args.
18556 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
18558 PR rtl-optimization/68920
18559 * config/i386/i386.c (ix86_option_override_internal): Restrict number
18560 of conditional moves for RTL if-conversion to 1 for
18561 TARGET_ONE_IF_CONV_INSN.
18562 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
18563 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
18564 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
18565 parameter to restirct number of conditional moves for
18567 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
18568 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
18571 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
18574 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
18575 onepart vars. Fix typo in comment. Fix reversed condition in
18577 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
18580 * var-tracking.c (dump_onepart_variable_differences): New.
18581 (dataflow_set_different): If a detailed dump is requested,
18582 delay early returns and dump differences between onepart
18583 variables present before and after, and added variables.
18585 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
18588 * expr.c (expand_expr_real_1): For boolean vector constants
18589 with a scalar mode use const_scalar_mask_from_tree.
18590 (const_scalar_mask_from_tree): New.
18591 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
18592 assigned to a mask type to handle constants.
18594 2016-01-11 Martin Jambor <mjambor@suse.cz>
18597 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
18598 useless parameters if we cannot change function signature.
18600 2016-01-11 Martin Jambor <mjambor@suse.cz>
18603 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
18606 2016-01-11 Tom de Vries <tom@codesourcery.com>
18608 PR tree-optimization/69109
18609 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
18612 2016-01-11 Tom de Vries <tom@codesourcery.com>
18614 PR tree-optimization/69108
18615 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
18616 res is not used in a phi.
18618 2016-01-11 Yury Gribov <y.gribov@samsung.com>
18621 * common.opt (frandom-seed): Fix parameter name.
18622 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
18624 2016-01-11 Tom de Vries <tom@codesourcery.com>
18626 PR tree-optimization/69058
18627 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
18630 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
18632 * config/arc/arc.opt (mdiv-rem): Add period to the end.
18633 (mcode-density): Likewise.
18635 2016-01-10 Tom de Vries <tom@codesourcery.com>
18637 PR tree-optimization/69062
18638 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
18639 (parallelize_loops): Don't paralelize loop that has phi with address
18642 2016-01-10 Tom de Vries <tom@codesourcery.com>
18644 PR tree-optimization/69039
18645 * tree-parloops.c (try_create_reduction_list): Only allow single exit
18648 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
18650 PR middle-end/68743
18651 * match.pd: Require target has function_c99_misc before doing
18652 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
18654 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
18656 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
18658 * configure: Regenerate.
18660 2016-01-09 Jakub Jelinek <jakub@redhat.com>
18662 PR middle-end/50865
18663 PR tree-optimization/69097
18664 * fold-const.h (expr_not_equal_to): New prototype.
18665 * fold-const.c: Include stringpool.h and tree-ssanames.h.
18666 (expr_not_equal_to): New function.
18667 * match.pd (X % -Y is the same as X % Y): Don't optimize
18668 unless X is known not to be equal to minimum or Y is known
18669 not to be equal to -1.
18670 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
18671 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
18672 (simplify_stmt_using_ranges): Adjust caller.
18673 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
18674 substitute_and_fold.
18676 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
18678 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
18681 2016-01-08 Jakub Jelinek <jakub@redhat.com>
18683 PR tree-optimization/69167
18684 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
18685 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
18687 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
18689 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
18690 Richard Biener <rguenther@suse.de>
18692 PR tree-optimization/68707
18693 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
18694 instances that can be handled via vect_load_lanes.
18696 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
18698 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
18699 if we can't determine address equivalence.
18700 * alias.c (compare_base_decl): Update for changed return value of
18701 symtab_node::equal_address_to.
18703 2016-01-08 Jason Merrill <jason@redhat.com>
18707 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
18708 * expr.c (store_field): Not here.
18709 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
18710 call with TREE_ADDRESSABLE type.
18711 * tree-cfg.c (verify_gimple_call): Adjust.
18713 2016-01-08 Olivier Hainque <hainque@adacore.com>
18715 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
18718 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
18720 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
18721 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
18722 (reduc_smin_v2sf): Rename to...
18723 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
18724 (reduc_splus_v2sf): Rename to...
18725 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
18727 2016-01-08 Jakub Jelinek <jakub@redhat.com>
18729 PR tree-optimization/69162
18730 * gimplify.c (gimplify_va_arg_expr): Encode original type of
18731 valist argument in another argument.
18732 (gimplify_modify_expr): Adjust for the above change. Cleanup.
18733 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
18734 to determine the va_list type, build a MEM_REF instead of
18735 build_fold_indirect_ref.
18737 PR tree-optimization/69172
18738 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
18741 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
18743 PR tree-optimization/67781
18744 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
18745 and cmpnop in two steps: first the ones not accessed in original
18746 gimple expression in a endian independent way and then the ones not
18747 accessed in the final result in an endian-specific way.
18749 2016-01-08 Jakub Jelinek <jakub@redhat.com>
18751 PR tree-optimization/69083
18752 * tree-vect-slp.c (vect_get_constant_vectors): For
18753 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
18754 element type. If op is fold_convertible_p to vector_type's element
18755 type, use NOP_EXPR instead of VCE.
18757 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
18759 PR rtl-optimization/67778
18760 PR rtl-optimization/68634
18761 PR rtl-optimization/68909
18762 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
18763 block from the stack until done with it. Remove a superfluous
18764 bitmap set. Remove a superfluous bitmap test.
18766 2016-01-07 Martin Sebor <msebor@redhat.com>
18769 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
18770 constraint on the type of arguments.
18772 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
18774 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
18775 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
18776 unaligned_access on the gcc_options set.
18777 * config/arm/arm.c (arm_option_override_internal): Use
18778 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
18780 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
18783 * config/i386/i386.c (ix86_frame_pointer_required): Enable
18784 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
18786 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
18789 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
18792 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
18793 depending on frame_pointer_needed before remaining integer and SSE
18794 registers are saved.
18796 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
18799 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
18801 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
18804 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
18805 Use the "xBm" constraint.
18806 (float<sseintvecmodelower><mode>2<mask_name><round_name):
18808 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
18809 (sse_cvtsi2ssq<round_name>): Likewise.
18810 (sse_cvtss2si<round_name>): Likewise.
18811 (sse_cvtss2siq<round_name>): Likewise.
18812 (sse2_cvtsi2sdq<round_name>): Likewise.
18813 (sse2_cvtsd2si<round_name>): Likewise.
18814 (sse2_cvtsd2siq<round_name>): Likewise.
18815 * config/i386/subst.md (round_nimm_scalar_predicate): New
18818 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
18820 PR middle-end/67639
18821 * varasm.c (make_decl_rtl): Mark invalid register vars as
18824 PR rtl-optimization/66206
18825 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
18826 All callers changed.
18828 2016-01-07 Jakub Jelinek <jakub@redhat.com>
18830 PR tree-optimization/69141
18831 * tree-ssa-pre.c: Include langhooks.h.
18832 (eliminate_dom_walker::before_dom_children): Use
18833 lang_hooks.decl_printable_name instead of
18834 cgraph_node::get ()->name ().
18836 PR middle-end/68960
18837 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
18838 it and DECL_ALIGN too.
18840 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
18842 * config/mips/mips-ftypes.def: Sort to lexicographical order.
18844 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
18847 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
18848 depending on frame_pointer_needed before remaining integer and SSE
18849 registers are saved.
18851 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18853 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
18854 mode iterator with VSX_M2.
18855 (*p9_vecstore_<mode>): Likewise.
18856 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
18857 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
18858 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
18859 (define_split for VSX_LE128 stores): Likewise.
18860 (define_peephole2 for TImode LE swaps): Likewise.
18861 (define_split for VSX_LE128 post-reload stores): Likewise.
18863 2016-01-06 Marek Polacek <polacek@redhat.com>
18866 * convert.c (convert_to_integer_1): Adjust call to
18867 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
18868 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
18869 EXPR instead of ARG.
18870 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
18872 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
18875 * doc/extend.texi (RL78 Variable Attributes): New section.
18877 2016-01-05 Marek Polacek <polacek@redhat.com>
18880 * builtins.c (get_memmodel): Use expansion point location rather than
18881 the input location. Call warning_at rather than warning.
18882 (expand_builtin_atomic_compare_exchange): Likewise.
18883 (expand_builtin_atomic_load): Likewise.
18884 (expand_builtin_atomic_store): Likewise.
18885 (expand_builtin_atomic_clear): Likewise.
18887 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
18890 * config/i386/i386.c (ix86_expand_vector_logical_operator):
18891 Replace nonimmediate_operand with vector_operand.
18892 * config/i386/predicates.md (vector_operand): New predicate.
18893 (general_vector_operand): Replace nonimmediate_operand with
18895 * config/i386/sse.md: Replace nonimmediate_operand with
18896 vector_operand and m constraint with Bm constraint on SSE
18897 patterns with 16-byte memory operand.
18898 * config/i386/subst.md (round_nimm_predicate): Replace
18899 nonimmediate_operand with vector_operand.
18900 (round_saeonly_nimm_predicate): Likewise.
18901 (round_saeonly_nimm_scalar_predicate): New.
18903 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
18906 * config/i386/constraints.md (Bm): New constraint.
18907 * config/i386/predicates.md (vector_memory_operand): New
18909 * config/i386/sse.md: Replace xm with xBm in plusminus and
18910 any_logic patterns.
18912 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
18915 * doc/extend.texi (V850 Function Attributes): New section.
18916 (V850 Variable Attributes): New section.
18918 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
18921 * doc/extend.texi (MicroBlaze Function Attributes): Document
18922 interrupt_handler and fast_interrupt attributes.
18924 2016-01-05 Sergei Trofimovich <siarheit@google.com>
18927 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
18928 for local symbolic operands.
18929 * config/ia64/predicates.md (local_symbolic_operand64): New
18932 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18934 PR rtl-optimization/68651
18935 * combine.c (combine_simplify_rtx): Canonicalize x + x into
18938 2016-01-05 Nathan Sidwell <nathan@acm.org>
18940 * alias.c (compare_base_decls): Use symtab_node::get.
18942 2016-01-05 Nick Clifton <nickc@redhat.com>
18945 * ira-costs.c (copy_cost): Initialise the t_icode field of the
18946 secondary_reload_info structure.
18949 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
18950 decls if weak support is available.
18952 2016-01-04 Martin Sebor <msebor@redhat.com>
18954 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
18956 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
18958 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
18959 OPTION_MASK_P9_DFORM.
18961 * config/rs6000/constraints.md (wo constraint): New constraint for
18964 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
18966 (rs6000_init_hard_regno_mode_ok): Likewise.
18968 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
18971 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
18972 expanders not to have constraints. Add support for ISA 3.0 xxperm
18973 instruction. Add support for fusing xxlor with xxperm.
18974 (altivec_vperm_<mode>_internal): Likewise.
18975 (altivec_vperm_v8hiv16qi): Likewise.
18976 (altivec_vperm_<mode>v16q): Likewise.
18977 (altivec_vperm_<mode>_uns): Likewise.
18978 (vperm_v8hiv4si): Likewise.
18979 (vperm_v16qiv8hi): Likewise.
18981 * doc/md.texi (RS/6000 constraints): Document wo constraint.
18983 2016-01-04 Jakub Jelinek <jakub@redhat.com>
18985 Update copyright years.
18987 * gcc.c (process_command): Update copyright notice dates.
18988 * gcov-dump.c (print_version): Ditto.
18989 * gcov.c (print_version): Ditto.
18990 * gcov-tool.c (print_version): Ditto.
18991 * gengtype.c (create_file): Ditto.
18992 * doc/cpp.texi: Bump @copying's copyright year.
18993 * doc/cppinternals.texi: Ditto.
18994 * doc/gcc.texi: Ditto.
18995 * doc/gccint.texi: Ditto.
18996 * doc/gcov.texi: Ditto.
18997 * doc/install.texi: Ditto.
18998 * doc/invoke.texi: Ditto.
19000 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
19002 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
19003 modes larger than TImode as TImode if NEON is not enabled.
19005 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
19008 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
19009 mode for %f0-%f31 only if TARGET_FPU.
19011 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
19014 * config/sparc/sparc.c (scan_record_type): Take into account subfields
19015 to compute the PACKED_P predicate.
19016 (function_arg_record_value): Minor tweaks.
19018 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
19020 * doc/install.texi (--with-multilib-list): Describe the meaning of the
19021 option for arm*-*-* targets.
19023 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
19025 * doc/extend.texi (Common Function Attributes): Move docs for
19026 MSP430-specific attributes to....
19027 (MSP430 Function Attributes): ...here. Delete the redundant
19028 entries and copy-edit the remaining text.
19029 (MSP430 Variable Attributes): Use uniform format for index
19030 entries and add a cross-reference to the corresponding function
19033 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
19035 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
19037 (x86 Options): Likewise.
19039 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
19043 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
19044 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
19045 to corresponding attribute.
19047 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
19049 * doc/extend.texi (Common Function Attributes) <noplt>: Move
19050 to correct alphabetization of table. Copy-edit and correct
19052 <stack_protect>: Likewise.
19053 <target_clones>: Likewise.
19055 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
19056 Correct punctuation.
19057 (Code Gen Options) <-fno-plt>: Copy-edit.
19059 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
19062 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
19063 SI values. Explicitly convert SI to DI and vice-versa.
19065 2016-01-01 Jakub Jelinek <jakub@redhat.com>
19067 PR tree-optimization/69070
19068 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
19069 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
19072 * ubsan.c (ubsan_instrument_float_cast): Call
19073 initialize_sanitizer_builtins.
19076 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
19078 Copyright (C) 2016 Free Software Foundation, Inc.
19080 Copying and distribution of this file, with or without modification,
19081 are permitted in any medium without royalty provided the copyright
19082 notice and this notice are preserved.