re PR tree-optimization/77916 (ICE in verify_gimple_in_cfg: invalid (pointer) operand...
[gcc.git] / gcc / ChangeLog
1 2016-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2
3 PR tree-optimization/77916
4 PR tree-optimization/77937
5 * gimple-ssa-strength-reduction.c (analyze_increments): Remove
6 stopgap fix.
7 (insert_initializers): Requirement of initializer for -1 should be
8 based on pointer-typedness of the candidate basis.
9
10 2016-10-19 Bin Cheng <bin.cheng@arm.com>
11
12 PR tree-optimization/78005
13 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Compute
14 upper (included) bound for niters of prolog loop.
15 (vect_gen_scalar_loop_niters): Change parameter VF to VFM1.
16 Compute niters of scalar loop above which vectorized loop is
17 preferred, as well as the upper (included) bound for the niters.
18 (vect_do_peeling): Record niter bound for loops accordingly.
19
20 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
21
22 PR lto/77458
23 * tree-core.h (enum tree_index): Put the complex types after their
24 component types.
25 * tree-streamer.c (verify_common_node_recorded): New function.
26 (preload_common_nodes) <TREE_CODE (node) == COMPLEX_TYPE>: Use it.
27
28 2016-10-19 Martin Liska <mliska@suse.cz>
29
30 * cgraph.h (cgraph_edge::binds_to_current_def_p):
31 Replace NULL with false as a return value.
32
33 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
34
35 PR tree-optimization/78024
36 * omp-low.c (oacc_loop_discovery): Call clear_bb_flags before, and
37 don't clear BB_VISITED after processing.
38
39 2016-10-19 Richard Biener <rguenther@suse.de>
40
41 * domwalk.c (dom_walker::walk): Use RPO order.
42
43 2016-10-19 Richard Biener <rguenther@suse.de>
44
45 * tree-vrp.c (evrp_dom_walker::evrp_dom_walker): Initialize
46 stmts_to_remove.
47 (evrp_dom_walker::~evrp_dom_walker): Free it.
48 (evrp_dom_walker::stmts_to_remove): Add.
49 (evrp_dom_walker::before_dom_children): Mark PHIs and stmts
50 whose output we fully propagate for removal. Propagate
51 into BB destination PHI arguments.
52 (execute_early_vrp): Remove queued stmts. Dump value ranges
53 before stmt removal.
54
55 2016-10-18 Aldy Hernandez <aldyh@redhat.com>
56
57 * Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o.
58 * passes.def: Add two instances of pass_walloca.
59 * tree-pass.h (make_pass_walloca): New.
60 * gimple-ssa-warn-alloca.c: New file.
61 * doc/invoke.texi: Document -Walloca, -Walloca-larger-than=, and
62 -Wvla-larger-than= options.
63
64 2016-10-18 Thomas Schwinge <thomas@codesourcery.com>
65
66 * cfg.c (clear_bb_flags): Use FOR_ALL_BB_FN.
67 * config/nvptx/nvptx.c (nvptx_find_sese): Likewise.
68
69 2016-10-18 Kelvin Nilsen <kelvin@gcc.gnu.org>
70
71 * config/rs6000/altivec.h (vec_xl_len): New macro.
72 (vec_xst_len): New macro.
73 (vec_cmpnez): New macro.
74 (vec_cntlz_lsbb): New macro.
75 (vec_cnttz_lsbb): New macro.
76 (vec_xlx): New macro.
77 (vec_xrx): New macro.
78 (vec_all_nez): New C++ predicate template.
79 (vec_any_eqz): New C++ predicate template.
80 (vec_all_ne): Revised C++ predicate template under _ARCH_PWR9
81 conditional compilation.
82 (vec_any_eq): Revised C++ predicate template under _ARCH_PWR9
83 conditional compilation.
84 (vec_all_nez): New macro.
85 (vec_any_eqz): New macro.
86 (vec_all_ne): Revised macro under _ARCH_PWR9 conditional
87 compilation.
88 (vec_any_eq): Revised macro under _ARCH_PWR9 conditional
89 compilation.
90 * config/rs6000/vector.md (VI): Moved this mode iterator
91 definition from altivec.md to vector.md.
92 (UNSPEC_NEZ_P): New value.
93 (vector_ne_<mode>_p): New expansion for implementation of
94 vec_all_ne and vec_any_eq built-in functions.
95 (vector_nez_<mode>_p): New expansion for implementation of
96 vec_all_nez and vec_any_eqz built-in functions.
97 (vector_ne_v2di_p): New expansion for implementation of vec_all_ne
98 and vec_any_eq built-in function.
99 (cr6_test_for_zero): New commentary to explain this expansion.
100 (cr6_test_for_zero_reverse): New commentary to explain this expansion.
101 (cr6_test_for_lt): New commentary to explain this expansion.
102 (cr6_test_for_lt_reverse): New commentary to explain this
103 expansion.
104 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
105 overloaded function prototypes for vec_all_ne, vec_all_nez,
106 vec_any_eq, vec_any_eqz, vec_cmpnez, vec_cntlz_lsbb,
107 vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, and vec_xrx
108 built-in functions.
109 (altivec_resolve_overloaded_builtin): Modify the handling of
110 ALTIVEC_BUILTIN_VEC_CMPNE to use the Power9 instructions when
111 the compiler is configured to support TARGET_P9_VECTOR.
112 * config/rs6000/rs6000-builtin.def (BU_ALTIVEC_P): Add commentary
113 to explain the special processing that is given to predicate
114 built-ins introduced using this macro.
115 (BU_ALTIVEC_OVERLOAD_P): Add commentary to alert maintainers to
116 the special processing given to predicate built-ins introduced
117 using this macro.
118 (BU_VSX_P): Likewise.
119 (BU_P8V_AV_P): Likewise.
120 (BU_P9V_AV_P): Likewise.
121 (BU_P9V_AV_X): New macro.
122 (BU_P9V_64BIT_AV_X): New macro.
123 (BU_P9V_VSX_3): New macro.
124 (BU_P9V_OVERLOAD_P): New macro.
125 (LXVL): New BU_P9V_64BIT_VSX_2.
126 (VEXTUBLX): New BU_P9V_AV_2.
127 (VEXTUBRX): Likewise.
128 (VEXTUHLX): Likewise.
129 (VEXTUHRX): Likewise.
130 (VEXTUWLX): Likewise.
131 (VEXTUWRX): Likewise.
132 (STXVL): New BU_P9V_64BIT_AV_X.
133 (VCLZLSBB): New BU_P9V_AV_1.
134 (VCTZLSBB): Likewise.
135 (CMPNEB): New BU_P9V_AV_2.
136 (CMPNEH): Likewise.
137 (CMPNEW): Likewise.
138 (CMPNEF): Likewise.
139 (CMPNED): Likewise.
140 (VCMPNEB_P): New BU_P9V_AV_P.
141 (VCMPNEH_P): Likewise.
142 (VCMPNEW_P): Likewise.
143 (VCMPNED_P): Likewise.
144 (VCMPNEFP_P): Likewise.
145 (VCMPNEDP_P): Likewise.
146 (CMPNEZB): New BU_P9V_AV_2.
147 (CMPNEZH): Likewise.
148 (CMPNEZW): Likewise.
149 (VCMPNEZB_P): New BU_P9V_AV_P.
150 (VCMPNEZH_P): Likewise.
151 (VCMPNEZW_P): Likewise.
152 (LXVL): New BU_P9V_OVERLOAD_2.
153 (STXVL): New BU_P9V_OVERLOAD_3.
154 (VEXTULX): New BU_P9V_OVERLOAD_2.
155 (VEXTURX): Likewise.
156 (CMPNEZ): Likewise.
157 (VCMPNEZ_P): New BU_P9V_OVERLOAD_P.
158 (VCMPNE_P): Likewise.
159 (VCLZLSBB): New BU_P9V_OVERLOAD_1.
160 (VCTZLSBB): Likewise.
161 * config/rs6000/rs6000.c (altivec_expand_predicate_builtin): Add
162 comment to explain mode used for scratch register.
163 (altivec_expand_stxvl_builtin): New function.
164 (altivec_expand_builtin): Add case for new constant P9V_BUILTIN_STXVL.
165 (altivec_init_builtins): Add initialized variable
166 void_ftype_v16qi_pvoid_long and use this type to define the
167 built-in function __builtin_altivec_stxvl.
168 * config/rs6000/vsx.md (UNSPEC_LXVL): New value.
169 (UNSPEC_STXVL): New value.
170 (UNSPEC_VCLZLSBB): New value.
171 (UNSPEC_VCTZLSBB): New value.
172 (UNSPEC_VEXTUBLX): New value.
173 (UNSPEC_VEXTUHLX): New value.
174 (UNSPEC_VEXTUWLX): New value.
175 (UNSPEC_VEXTUBRX): New value.
176 (UNSPEC_VEXTUHRX): New value.
177 (UNSPEC_VEXTUWRX): New value.
178 (UNSPEC_VCMPNEB): New value.
179 (UNSPEC_VCMPNEZB): New value.
180 (UNSPEC_VCMPNEH): New value.
181 (UNSPEC_VCMPNEZH): New value.
182 (UNSPEC_VCMPNEW): New value.
183 (UNSPEC_VCMPNEZW): New value.
184 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
185 vector of integer modes.
186 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
187 vector of float or double modes.
188 (*vector_nez_<mode>_p): New insn for vector test all not equal or
189 zero.
190 (lxvl): New expand for load VSX vector with length.
191 (*lxvl): New insn for load VSX vector with length.
192 (stxvl): New expand for store VSX vector with length.
193 (*stxvl): New insn for store VSX vector with length.
194 (vcmpneb): New insn for vector of byte compare not equal.
195 (vcmpnezb): New insn for vector of byte compare not equal or zero.
196 (vcmpneh): New insn for vector of half word compare not equal.
197 (vcmpnezh): New insn for vector of half word compare not equal or
198 zero.
199 (vcmpnew): New insn for vector of word compare not equal.
200 (vcmpne<VSs>): New insn for vector of float or double compare not
201 equal.
202 (vcmpnezw): New insn for vector of word compare not equal or zero.
203 (vclzlsbb): New insn for vector count leading zero
204 least-significant bits byte.
205 (vctzlsbb): New insn for vector count trailing zero least
206 signficant bits byte.
207 (vextublx): New insn for vector extract unsigned byte left
208 indexed.
209 (vextubrx): New insn for vector extract unsigned byte right
210 indexed.
211 (vextuhlx): New insn for vector extract unsigned half word left
212 indexed.
213 (vextuhrx): New insn for vector extract unsigned half word right
214 indexed.
215 (vextuwlx): New insn for vector extract unsigned word left
216 indexed.
217 (vextuwrx): New insn for vector extract unsigned word right
218 indexed.
219 * config/rs6000/rs6000.h (RS6000_BTC_CONST): Enhance comment to
220 clarify intent of this constant.
221 * config/rs6000/altivec.md (VI): Move this mode iterator to vsx.md.
222 * doc/extend.texi (PowerPC Altivec Built-in Functions): Add
223 documentation for vec_all_nez, vec_any_eqz, vec_cmpnez,
224 vec_cntlz_lsbb, vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx,
225 and vec_xrx functions.
226
227 2016-10-18 Andrew Pinski <apinski@cavium.com>
228
229 PR tree-opt/65950
230 * predict.c (is_exit_with_zero_arg): New function.
231 (tree_bb_level_predictions): Don't consider paths leading to exit(0)
232 as nottaken.
233
234 2016-10-18 Uros Bizjak <ubizjak@gmail.com>
235
236 PR target/77991
237 * config/i386/i386.c (legitimize_tls_address)
238 <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
239 convert dest to Pmode if different than Pmode.
240
241 2016-10-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
242
243 PR tree-optimization/77916
244 * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate
245 stopgap fix, as pointers with -1 increment are still broken.
246
247 2016-10-18 David Edelsohn <dje.gcc@gmail.com>
248
249 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Move storage
250 mapping class decoration from here...
251 (rs6000_xcoff_encode_section): ...to here.
252
253 (rs6000_savres_strategy) [AIX,ELFv2]: Inline FPR save and restore
254 if shrink-wrapping and optimizing for speed.
255
256 2016-10-18 Richard Biener <rguenther@suse.de>
257
258 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
259 not visited but non-executable predecessors. Return taken edge.
260 Simplify conditions and refactor propagation vs. folding step.
261
262 2016-10-18 Segher Boessenkool <segher@kernel.crashing.org>
263
264 * config/rs6000/rs6000.c (rs6000_savres_strategy): Do not select
265 {SAVE,REST}_MULTIPLE if shrink-wrapping separate components.
266 (rs6000_get_separate_components): Assert we do not have those
267 strategies selected.
268
269 2016-10-18 Richard Biener <rguenther@suse.de>
270
271 * tree-ssa-propagate.h (substitute_and_fold): Adjust prototype.
272 * tree-ssa-propagate.c (ssa_prop_fini): Remove final BB_VISITED
273 clearing.
274 (substitute_and_fold_dom_walker): Adjust constructor.
275 (substitute_and_fold_dom_walker::before_dom_children): Remove
276 do_dce flag and handling (always true).
277 (substitute_and_fold): Likewise.
278 * tree-vrp.c (vrp_finalize): Adjust.
279 (execute_early_vrp): Remove final BB_VISITED clearing.
280 * tree-ssa-ccp.c (ccp_finalize): Adjust.
281 * tree-ssa-copy.c (fini_copy_prop): Likewise.
282 * ira.c (ira): Call clear_bb_flags.
283
284 2016-10-18 Richard Biener <rguenther@suse.de>
285
286 * genmatch.c (dt_operand::gen_gimple_expr): Use get_name to
287 get at the operand to look at with TREE_OPERAND for generic
288 sub-nodes.
289
290 2016-10-18 David Malcolm <dmalcolm@redhat.com>
291
292 * genattrtab.c (attr_string): Use rtx_reader_ptr for call to
293 copy_md_ptr_loc.
294 (gen_attr): Use rtx_reader_ptr for lookup_enum_type call.
295 (write_test_expr): Use rtx_reader_ptr for calls to
296 fprint_c_condition.
297 (write_attr_value): Likewise.
298 * genconditions.c (write_one_condition): Use rtx_reader_ptr for
299 call to print_md_ptr_loc.
300 (write_one_condition): Likewise for calls to print_c_condition.
301 * genconstants.c: Include "statistics.h" and "vec.h".
302 (main): Update for conversion to member functions.
303 * genemit.c (emit_c_code): Use rtx_reader_ptr for
304 call to print_md_ptr_loc.
305 * genenums.c: Include "statistics.h" and "vec.h".
306 (main): Update for conversion of traverse_enum_types to a method.
307 * genmddeps.c: Include "statistics.h" and "vec.h".
308 * genoutput.c (process_template): Use rtx_reader_ptr for call to
309 print_md_ptr_loc.
310 * genpreds.c (write_predicate_subfunction): Likewise.
311 (write_predicate_expr): Likewise for calls to print_c_condition.
312 * genrecog.c (print_test): Likewise.
313 * gensupport.c (process_rtx): Likewise for calls to
314 copy_md_ptr_loc and join_c_conditions.
315 (alter_test_for_insn): Likewise for call to join_c_conditions.
316 (process_substs_on_one_elem): Likewise.
317 (gen_mnemonic_setattr): Update for move of string_obstack to a
318 field of rtx_reader.
319 (mnemonic_htab_callback): Likewise. Fix formatting.
320 (gen_mnemonic_attr): Likewise.
321 * gentarget-def.c (def_target_insn): Use rtx_reader_ptr for calls
322 to print_c_condition.
323 * read-md.c: Include "statistics.h" and "vec.h".
324 (string_obstack): Convert this global to field "m_string_obstack"
325 of class rtx_reader.
326 (ptr_locs): Likewise, as "m_ptr_locs".
327 (ptr_loc_obstack): Likewise, as "m_ptr_loc_obstack".
328 (joined_conditions): Likewise, as "m_joined_conditions".
329 (joined_conditions_obstack): Likewise, as "m_joined_conditions_obstack".
330 (md_constants): Likewise, as "m_md_constants".
331 (enum_types): Likewise, as "m_enum_types".
332 (set_md_ptr_loc): Convert to...
333 (rtx_reader::set_md_ptr_loc): ...member function.
334 (get_md_ptr_loc): Convert to...
335 (rtx_reader::get_md_ptr_loc): ...member function.
336 (copy_md_ptr_loc): Convert to...
337 (rtx_reader::copy_md_ptr_loc): ...member function.
338 (fprint_md_ptr_loc): Convert to...
339 (rtx_reader::fprint_md_ptr_loc): ...member function.
340 (print_md_ptr_loc): Convert to...
341 (rtx_reader::print_md_ptr_loc): ...member function.
342 (join_c_conditions): Convert to...
343 (rtx_reader::join_c_conditions): ...member function.
344 (fprint_c_condition): Convert to...
345 (rtx_reader::fprint_c_condition): ...member function.
346 (print_c_condition): Convert to...
347 (rtx_reader::print_c_condition): ...member function.
348 (read_name): Convert to...
349 (rtx_reader::read_name): ...member function.
350 (read_escape): Convert to...
351 (rtx_reader::read_escape): ...member function.
352 (read_quoted_string): Convert to...
353 (rtx_reader::read_quoted_string): ...member function.
354 (read_braced_string): Convert to...
355 (rtx_reader::read_braced_string): ...member function.
356 (read_string): Convert to...
357 (rtx_reader::read_string): ...member function.
358 (read_skip_construct): Convert to...
359 (rtx_reader::read_skip_construct): ...member function.
360 (handle_constants): Convert to...
361 (rtx_reader::handle_constants): ...member function.
362 (traverse_md_constants): Convert to...
363 (rtx_reader::traverse_md_constants): ...member function.
364 (handle_enum): Convert to...
365 (rtx_reader::handle_enum): ...member function.
366 (lookup_enum_type): Convert to...
367 (rtx_reader::lookup_enum_type): ...member function.
368 (traverse_enum_types): Convert to...
369 (rtx_reader::traverse_enum_types): ...member function.
370 (rtx_reader::rtx_reader): Move initializations
371 of various former global data from rtx_reader::read_md_files to
372 here, as fields, along with the call to unlock_std_streams.
373 (rtx_reader::~rtx_reader): Clean up m_base_dir, and clean up
374 the new fields.
375 (rtx_reader::read_md_files): Move initializations of various
376 global data from here to the ctor.
377 * read-md.h (read_name): Convert to...
378 (rtx_reader::read_name): ...member function.
379 (rtx_reader::read_escape): New method decl.
380 (read_quoted_string): Convert to...
381 (rtx_reader::read_quoted_string): ...member function.
382 (rtx_reader::read_braced_string): New method decl.
383 (read_string): Convert to...
384 (rtx_reader::read_string): ...member function.
385 (rtx_reader::read_skip_construct): New method decl.
386 (rtx_reader::set_md_ptr_loc): New method decl.
387 (rtx_reader::get_md_ptr_loc): New method decl.
388 (copy_md_ptr_loc): Convert to...
389 (rtx_reader::copy_md_ptr_loc): ...member function.
390 (fprint_md_ptr_loc): Convert to...
391 (rtx_reader::fprint_md_ptr_loc): ...member function.
392 (print_md_ptr_loc): Convert to...
393 (rtx_reader::print_md_ptr_loc): ...member function.
394 (rtx_reader::lookup_enum_type): New method decl.
395 (rtx_reader::traverse_enum_types): New method decl.
396 (rtx_reader::handle_constants): New method decl.
397 (traverse_md_constants): Convert to...
398 (rtx_reader::traverse_md_constants): ...member function.
399 (rtx_reader::handle_enum): New method decl.
400 (rtx_reader::join_c_conditions): New method decl.
401 (fprint_c_condition): Convert to...
402 (rtx_reader::fprint_c_condition): ...member function.
403 (print_c_condition): Convert to...
404 (rtx_reader::print_c_condition): ...member function.
405 (rtx_reader::apply_iterator_to_string): New method decl.
406 (rtx_reader::copy_rtx_for_iterators): New method decl.
407 (rtx_reader::read_conditions): New method decl.
408 (rtx_reader::record_potential_iterator_use): New method decl.
409 (rtx_reader::read_mapping): New method decl.
410 (rtx_reader::read_rtx): New method decl.
411 (rtx_reader::read_rtx_code): New method decl.
412 (rtx_reader::read_rtx_operand): New method decl.
413 (rtx_reader::read_nested_rtx): New method decl.
414 (rtx_reader::read_rtx_variadic): New method decl.
415 (rtx_reader::get_string_obstack): New method.
416 (rtx_reader::get_md_constants): New method.
417 (string_obstack): Convert global variable decl to...
418 (rtx_reader::m_string_obstack): ...this new field.
419 (rtx_reader::m_ptr_locs): New field.
420 (rtx_reader::m_ptr_loc_obstack): New field.
421 (rtx_reader::m_joined_conditions): New field.
422 (rtx_reader::m_joined_conditions_obstack): New field.
423 (rtx_reader::m_md_constants): New field.
424 (rtx_reader::m_enum_types): New field.
425 * read-rtl.c (apply_iterator_to_string): Convert to...
426 (rtx_reader::apply_iterator_to_string): ...member function.
427 (copy_rtx_for_iterators): Convert to...
428 (rtx_reader::copy_rtx_for_iterators): ...member function.
429 (add_condition_to_string): Use rtx_reader_ptr for
430 calls join_c_conditions.
431 (apply_iterators): Use rtx_reader_ptr for calls to
432 join_c_conditions and copy_rtx_for_iterators.
433 (read_conditions): Convert to...
434 (rtx_reader::read_conditions): ...member function.
435 (record_potential_iterator_use): Convert to...
436 (rtx_reader::record_potential_iterator_use): ...member function.
437 (read_mapping): Convert to...
438 (rtx_reader::read_mapping): ...member function.
439 (read_subst_mapping): Use rtx_reader_ptr for read_string call.
440 (read_rtx): Convert to...
441 (rtx_reader::read_rtx): ...member function.
442 (read_rtx_code): Convert to...
443 (rtx_reader::read_rtx_code): ...member function.
444 (read_rtx_operand): Convert to...
445 (rtx_reader::read_rtx_operand): ...member function. Update for move
446 of string_obstack to a field.
447 (read_nested_rtx): Convert to..
448 (rtx_reader::read_nested_rtx): ...member function.
449 (read_rtx_variadic): Convert to..
450 (rtx_reader::read_rtx_variadic): ...member function.
451
452 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
453
454 * tree-vrp.c (get_value_range): Check get_ptr_nonnull.
455
456 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
457
458 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Set value range
459 for pointer type too.
460 (ipcp_update_vr): set_ptr_nonnull for pointer.
461
462 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
463
464 * tree-ssa-alias.h (pt_solution_singleton_or_null_p): Renamed from
465 pt_solution_singleton_p.
466 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use renamed
467 pt_solution_singleton_or_null_p from pt_solution_singleton_p.
468 * tree-ssa-structalias.c (find_what_p_points_to): Preserve
469 pointer nonnull computed by VRP.
470 Also Conservatively set pt.null to 1.
471 (pt_solution_reset): Conservatively set pt.null to 1.
472 (pt_solution_singleton_or_null_p): Renamed from
473 pt_solution_singleton_p.
474 * tree-ssanames.h (set_ptr_nonnull): Declare.
475 (get_ptr_nonnull): Likewise.
476 * tree-ssanames.c (set_ptr_nonnull): New.
477 (get_ptr_nonnull): Likewise.
478 * tree-vrp.c (vrp_finalize): Set ptr that are nonnull.
479 (evrp_dom_walker::before_dom_children): Likewise.
480
481 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
482
483 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
484 * config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
485 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
486 * config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
487 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to.
488 * config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
489 (rs6000_option_override_internal): Clear it if ABI_AIX.
490 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
491 * config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here.
492
493 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
494
495 * gimple-ssa-strength-reduction.c (record_increment): Remove
496 garbage comment.
497
498 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
499
500 * expmed.c (expand_shift_1): Add MAY_FAIL parameter and do not assert
501 that the result is non-zero if it is true.
502 (maybe_expand_shift): New wrapper around expand_shift_1.
503 (emit_store_flag): Call maybe_expand_shift in lieu of expand_shift.
504
505 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
506
507 PR tree-optimization/77916
508 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
509 Don't allow a MINUS_EXPR for pointer arithmetic for either known
510 or unknown strides.
511 (record_increment): Increments of -1 for unknown strides just use
512 a multiply initializer like other negative values.
513 (analyze_increments): Remove stopgap solution for -1 increment
514 applied to pointer arithmetic.
515
516 2016-10-17 Yuri Rumyantsev <ysrumyan@gmail.com>
517
518 * dominance.c (dom_info::dom_info): Add new constructor for region
519 which is vector of basic blocks.
520 (dom_init): New method to initialize members common for both
521 constructors.
522 (dom_info::dom_info): Invoke dom_init for partial initialization.
523 (dom_info::get_idom): Add check to corner cases on basic blocks which
524 are not in region.
525 (dom_info::calc_dfs_tree): Check M_FAKE_EXIT_EDGE instead of M_REVERSE
526 to detect unreachable bbs.
527 (dom_info::calc_idoms): Likewise.
528 (compute_dom_fast_query_in_region): New function.
529 (calculate_dominance_info_for_region): Likewise.
530 (free_dominance_info_for_region): Likewise.
531 * dominance.h: Add prototypes for introduced region-based functions
532 tree-if-conv.c: (build_region): New function.
533 (if_convertible_loop_p_1): Invoke local version of post-dominators
534 calculation before basic block predication with subsequent freeing
535 post-dominator info.
536 (tree_if_conversion): Remove free of post-dominator info
537 (pass_if_conversion::execute): Delete detection of infinite loops
538 and fake edges to exit block since post-dominator calculation is
539 performed per if-converted loop only.
540
541 2016-10-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
542
543 PR target/77308
544 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
545 register explicitly.
546 * config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Don't FAIL if
547 optimizing for size.
548
549 2016-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
550
551 * config/aarch64/aarch64.c: Delete inclusion of
552 cortex-a57-fma-steering.h.
553 (aarch64_override_options): Delete call
554 to aarch64_register_fma_steering.
555 * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare.
556 * config/aarch64/cortex-a57-fma-steering.h: Delete.
557 * config/aarch64/aarch64-passes.def: New file.
558 * config/aarch64/cortex-a57-fma-steering.c
559 (aarch64_register_fma_steering): Delete definition.
560 (make_pass_fma_steering): Remove static qualifier.
561 * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive.
562 (cortex-a57-fma-steering.o): Remove dependency on
563 cortex-a57-fma-steering.h.
564
565 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
566
567 * explow.c (validize_mem): Do not modify the argument in-place.
568
569 2016-10-17 Thomas Schwinge <thomas@codesourcery.com>
570
571 * tree-streamer.c (record_common_node): Explicitly list expected
572 tree codes.
573
574 2016-10-17 Richard Biener <rguenther@suse.de>
575
576 PR tree-optimization/77988
577 * tree-vrp.c (remove_range_assertions): Use replace_uses_by.
578
579 2016-10-17 Marek Polacek <polacek@redhat.com>
580
581 * Makefile.in (C_COMMON_OBJS): Add c-family/c-attribs.o.
582
583 2016-10-17 Richard Biener <rguenther@suse.de>
584
585 * bb-reorder.c (reorder_basic_blocks_simple): Clear BB_VISITED
586 before using it.
587
588 2016-10-17 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
589
590 PR tree-optimization/71636
591 * match.pd (x & ((1 << b) - 1) -> x & ~(~0 << b)): New pattern.
592
593 2016-10-17 Richard Biener <rguenther@suse.de>
594
595 * gimplify.c (gimplify_function_tree): Do not move the outer
596 binds block.
597
598 2016-10-17 Jakub Jelinek <jakub@redhat.com>
599
600 * langhooks.h (struct lang_hooks_for_decls): Remove
601 function_decl_explicit_p, function_decl_deleted_p and
602 function_decl_defaulted hooks. Add decl_dwarf_attribute hook.
603 * langhooks-def.h (lhd_decl_dwarf_attribute): Declare.
604 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
605 LANG_HOOKS_FUNCTION_DECL_DELETED_P,
606 LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Remove.
607 (LANG_HOOKS_DECL_DWARF_ATTRIBUTE): Define.
608 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
609 LANG_HOOKS_FUNCTION_DECL_DELETED_P and
610 LANG_HOOKS_FUNCTION_DECL_DEFAULTED. Add
611 LANG_HOOKS_DECL_DWARF_ATTRIBUTE.
612 * langhooks.c (lhd_decl_dwarf_attribute): New function.
613 * dwarf2out.c (gen_subprogram_die): Use
614 lang_hooks.decls.decl_dwarf_attribute instead of
615 lang_hooks.decls.function_decl_*.
616
617 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
618
619 PR ada/37139
620 PR ada/67205
621 * common.opt (-ftrampolines): New option.
622 * doc/invoke.texi (Code Gen Options): Document it.
623 * doc/tm.texi.in (Trampolines): Add TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
624 * doc/tm.texi: Regenerate.
625 * builtins.def: Add init_descriptor and adjust_descriptor.
626 * builtins.c (expand_builtin_init_trampoline): Do not issue a warning
627 on platforms with descriptors.
628 (expand_builtin_init_descriptor): New function.
629 (expand_builtin_adjust_descriptor): Likewise.
630 (expand_builtin) <BUILT_IN_INIT_DESCRIPTOR>: New case.
631 <BUILT_IN_ADJUST_DESCRIPTOR>: Likewise.
632 * calls.c (prepare_call_address): Remove SIBCALLP parameter and add
633 FLAGS parameter. Deal with indirect calls by descriptor and adjust.
634 Set STATIC_CHAIN_REG_P on the static chain register, if any.
635 (call_expr_flags): Set ECF_BY_DESCRIPTOR for calls by descriptor.
636 (expand_call): Likewise. Move around call to prepare_call_address
637 and pass all flags to it.
638 * cfgexpand.c (expand_call_stmt): Reinstate CALL_EXPR_BY_DESCRIPTOR.
639 * gimple.h (enum gf_mask): New GF_CALL_BY_DESCRIPTOR value.
640 (gimple_call_set_by_descriptor): New setter.
641 (gimple_call_by_descriptor_p): New getter.
642 * gimple.c (gimple_build_call_from_tree): SetCALL_EXPR_BY_DESCRIPTOR.
643 (gimple_call_flags): Deal with GF_CALL_BY_DESCRIPTOR.
644 * langhooks.h (struct lang_hooks): Add custom_function_descriptors.
645 * langhooks-def.h (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS): Define.
646 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS.
647 * rtl.h (STATIC_CHAIN_REG_P): New macro.
648 * rtlanal.c (find_first_parameter_load): Skip static chain registers.
649 * target.def (custom_function_descriptors): New POD hook.
650 * tree.h (FUNC_ADDR_BY_DESCRIPTOR): New flag on ADDR_EXPR.
651 (CALL_EXPR_BY_DESCRIPTOR): New flag on CALL_EXPR.
652 * tree-core.h (ECF_BY_DESCRIPTOR): New mask.
653 Document FUNC_ADDR_BY_DESCRIPTOR and CALL_EXPR_BY_DESCRIPTOR.
654 * tree.c (make_node_stat) <tcc_declaration>: Use FUNCTION_ALIGNMENT.
655 (build_common_builtin_nodes): Initialize init_descriptor and
656 adjust_descriptor.
657 * tree-nested.c: Include target.h.
658 (struct nesting_info): Add 'any_descr_created' field.
659 (get_descriptor_type): New function.
660 (lookup_element_for_decl): New function extracted from...
661 (create_field_for_decl): Likewise.
662 (lookup_tramp_for_decl): ...here. Adjust.
663 (lookup_descr_for_decl): New function.
664 (convert_tramp_reference_op): Deal with descriptors.
665 (build_init_call_stmt): New function extracted from...
666 (finalize_nesting_tree_1): ...here. Adjust and deal with descriptors.
667 * defaults.h (FUNCTION_ALIGNMENT): Define.
668 (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY.
669 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
670 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
671 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS):Likewise.
672 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
673
674 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
675
676 * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
677 constants in CONST_VECTORs.
678
679 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
680
681 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
682 register as destination of bmask.
683 (vector_init_bshuffle): Likewise.
684 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
685 (bmaskdi_vis): Enable only in 64-bit mode.
686
687 2016-10-15 Segher Boessenkool <segher@kernel.crashing.org>
688
689 * config/rs6000/rs6000.c (rs6000_get_separate_components): Do not
690 make LR a separately shrink-wrapped component unless savres_strategy
691 contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}. Do not wrap
692 GPRs unless both {SAVE,REST}_INLINE_GPRS. Do not disallow all
693 wrapping when not both {SAVE,REST}_INLINE_GPRS.
694
695 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
696
697 * optabs.c (expand_parity): Fix mode mismatch, add final conversion
698 and keep looping on failure.
699
700 2016-10-14 David Malcolm <dmalcolm@redhat.com>
701
702 * print-rtl-function.c (print_edge): Omit "(flags)" when none are
703 set.
704 (print_rtx_function): Update example in comment for...
705 * print-rtl.c (print_rtx_operand_code_r): In compact mode, print
706 non-virtual pseudos with a '%' sigil followed by the regno, offset
707 by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual
708 pseudo is dumped as "%0".
709
710 2016-10-14 Jakub Jelinek <jakub@redhat.com>
711
712 PR middle-end/77959
713 * expr.c (expand_expr_real_1) <case CONST_DECL>: For EXPAND_WRITE
714 return a MEM.
715
716 2016-10-14 Eric Botcazou <ebotcazou@adacore.com>
717
718 * config/sparc/sparc-passes.def: New file.
719 * config/sparc/t-sparc (PASSES_EXTRA): Add sparc-passes.def.
720 * config/sparc/sparc-protos.h (make_pass_work_around_errata): New.
721 * config/sparc/sparc.c (sparc_option_override): Don't register passes.
722
723 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
724
725 * loop-unroll.c (unroll_loop_runtime_iterations): Condition initial
726 loop peel to loops with exit test at the beginning.
727
728 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
729
730 PR rtl-optimization/68212
731 * cfgloopmanip.c (duplicate_loop_to_header_edge): Use preheader edge
732 frequency when computing scale factor for peeled copies.
733 * loop-unroll.c (unroll_loop_runtime_iterations): Fix freq/count
734 values for switch/peel blocks/edges.
735
736 2016-10-14 Pedro Alves <palves@redhat.com>
737
738 * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h.
739
740 2016-10-14 Catherine Moore <clm@codesourcery.com>
741
742 * gcc/config/mips/mips.c (mips_prepare_pch_save): Initialize
743 micromips_globals to zero.
744
745 2016-10-14 Richard Biener <rguenther@suse.de>
746
747 PR tree-optimization/77979
748 * tree-vrp.c (compare_name_with_value): Handle released SSA names
749 in the equivalency sets.
750 (compare_names): Likewise.
751
752 2016-10-14 Martin Liska <mliska@suse.cz>
753
754 * builtins.h(target_char_cst_p): Declare the function.
755 * builtins.c (fold_builtin_memchr): Remove.
756 (target_char_cst_p): Move the function from gimple-fold.c.
757 (fold_builtin_3): Do not call the function.
758 * gimple-fold.c (gimple_fold_builtin_memchr): New function.
759 (gimple_fold_builtin): Call the function.
760 * fold-const-call.c (fold_const_call_1): Handle CFN_BUILT_IN_MEMCHR.
761
762 2016-10-14 Martin Liska <mliska@suse.cz>
763
764 * builtins.c (fold_builtin_strcmp): Remove function.
765 (fold_builtin_strncmp): Likewise.
766 (fold_builtin_2): Remove call of the function.
767 (fold_builtin_3): Likewise.
768 * fold-const-call.c (fold_const_call): Add constant folding
769 for CFN_BUILT_IN_STRCASECMP and CFN_BUILT_IN_STRNCASECMP.
770 * fold-const-call.h (build_cmp_result): Declare the function.
771 * gimple-fold.c (gimple_load_first_char): New function.
772 (gimple_fold_builtin_string_compare): Likewise.
773 (gimple_fold_builtin): Call the function.
774
775 2016-10-14 Nathan Sidwell <nathan@acm.org>
776
777 * gcov-io.c (gcov_open): Deconstify 'mode'.
778
779 2016-10-14 Martin Liska <mliska@suse.cz>
780
781 * fold-const.c (c_getstr): Support of properly \0-terminated
782 string constants. New argument is added.
783 * fold-const.h: New argument is added.
784
785 2016-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
786
787 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
788 New function.
789 (aarch64_print_hint_for_core): Likewise.
790 (aarch64_print_hint_for_arch): Likewise.
791 (aarch64_validate_march): Use it. Fix indentation in type signature.
792 (aarch64_validate_mcpu): Use aarch64_print_hint_for_core_or_arch.
793 (aarch64_validate_mtune): Likewise.
794 (aarch64_handle_attr_arch): Likewise.
795 (aarch64_handle_attr_cpu): Likewise.
796 (aarch64_handle_attr_tune): Likewise.
797
798 2016-10-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
799
800 * optabs.def: Remove optab function gen_int_libfunc for sdivmod_optab
801 and udivmod_optab.
802
803 2016-10-13 Andreas Schwab <schwab@linux-m68k.org>
804
805 * config/m68k/m68k.c (m68k_option_override): Check
806 opt_fstack_limit_symbol_arg and opt_fstack_limit_register_no
807 instead of stack_limit_rtx.
808
809 2016-10-13 Jakub Jelinek <jakub@redhat.com>
810
811 * dwarf2out.c (gen_member_die): Handle inline static data member
812 definitions.
813
814 2016-10-13 Nathan Sidwell <nathan@acm.org>
815
816 * gcov-io.c (gcov_open): Fix documentation. Simplify setting
817 gcov_var.mode. Remove unnecessary fstat.
818
819 2016-10-13 Segher Boessenkool <segher@kernel.crashing.org>
820
821 PR bootstrap/77962
822 * function.c (thread_prologue_and_epilogue_insns): Call all
823 make_*logue_seq in the same order as traditional. Call them
824 all a second time if shrink_wrapped_separate.
825
826 2016-10-13 Marek Polacek <polacek@redhat.com>
827
828 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
829 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Don't
830 use -Wno-error.
831
832 2016-10-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
833
834 PR tree-optimization/77937
835 * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
836 to infinite when we have a pointer with an increment of -1.
837
838 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
839
840 * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
841 into ...
842 * memmodel.h: This file.
843 * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
844 caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
845 cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
846 combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
847 common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
848 common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
849 common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
850 compare-elim.c, config/aarch64/aarch64-builtins.c,
851 config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
852 config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
853 config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
854 config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
855 config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
856 config/darwin.c, config/epiphany/epiphany.c,
857 config/epiphany/mode-switch-use.c,
858 config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
859 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
860 config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
861 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
862 config/m68k/m68k.c, config/mcore/mcore.c,
863 config/microblaze/microblaze.c, config/mmix/mmix.c,
864 config/mn10300/mn10300.c, config/moxie/moxie.c,
865 config/msp430/msp430.c, config/nds32/nds32-cost.c,
866 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
867 config/nds32/nds32-memory-manipulation.c,
868 config/nds32/nds32-predicates.c, config/nds32/nds32.c,
869 config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
870 config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
871 config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
872 config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
873 config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
874 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
875 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
876 config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
877 coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
878 df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
879 dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
880 expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
881 ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
882 ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
883 ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
884 loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
885 lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
886 lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
887 lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
888 postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
889 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
890 reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
891 rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
892 sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
893 stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
894 targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
895 tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
896 tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
897 tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
898 var-tracking.c, varasm.c: Include memmodel.h.
899 * genattrtab.c (write_header): Include memmodel.h in generated file.
900 * genautomata.c (main): Likewise.
901 * gengtype.c (open_base_files): Likewise.
902 * genopinit.c (main): Likewise.
903 * genconditions.c (write_header): Include memmodel.h earlier in
904 generated file.
905 * genemit.c (main): Likewise.
906 * genoutput.c (output_prologue): Likewise.
907 * genpeep.c (main): Likewise.
908 * genpreds.c (write_insn_preds_c): Likewise.
909 * genrecog.c (write_header): Likewise.
910 * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
911
912 2016-10-13 David Malcolm <dmalcolm@redhat.com>
913
914 * function-tests.c (selftest::test_expansion_to_rtl): Add "true"
915 for new "compact" param of print_rtx_function. Check for "cinsn"
916 rather than "insn".
917 * print-rtl-function.c (flag_compact): New decl.
918 (print_rtx_function): Add param "compact" and use it to set
919 flag_compact, adding a description of the effect to the leading
920 comment, and updating the example output.
921 * print-rtl.c (flag_compact): New variable.
922 (print_rtx_operand_code_0): Omit the JUMP_LABEL reference in compact
923 mode.
924 (print_rtx_operand_code_i): When printing source locations, wrap
925 xloc.file in quotes. Don't print INSN_CODEs in compact mode.
926 (print_rtx_operand_code_r): Don't print regnos for hard regs and
927 virtuals in compact mode.
928 (print_rtx_operand_code_u): Don't print insn UIDs in compact mode,
929 apart from in LABEL_REFs.
930 (print_rtx_operand): In case 'w', don't print in hex in compact mode.
931 Don't print basic block ids in compact mode.
932 (print_rtx): In compact mode, prefix the code of insns with "c",
933 only print the INSN_UID of CODE_LABELs, and omit their LABEL_NUSES.
934 * print-rtl.h (print_rtx_function): Add "compact" param.
935
936 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
937
938 * arm.h (TARGET_VFP): Delete.
939 (TARGET_VFPD32): Remove references to TARGET_VFP.
940 (TARGET_VFP3, TARGET_VFP5): Likewise.
941 (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise.
942 (TARGET_NEON_FP16): Likewise.
943 (TARGET_FMA): Likewise.
944 (TARGET_CRYPTO): Likewise.
945 (TARGET_NEON): Likewise.
946 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
947 (FUNCTION_ARG_REGNO_P): Likewise.
948 * arm.c (arm_option_check_internal): Likewise.
949 (arm_option_override): Likewise.
950 (use_return_insn): Likewise.
951 (arm_function_value_regno_p): Likewise.
952 (arm_apply_result_size): Likewise.
953 (use_vfp_abi): Likewise.
954 (arm_legitimate_address_outer_p): Likewise.
955 (thumb2_legitimate_address_p): Likewise.
956 (arm_legitimate_index_p): Likewise.
957 (thumb2_legitimate_index_p): Likewise.
958 (arm_legitimate_address): Likewise.
959 (arm_get_vfp_saved_size): Likewise.
960 (arm_emit_vfp_multi_reg_pop): Likewise.
961 (arm_get_frame_offsets): Likewise.
962 (arm_save_coproc_regs): Likewise.
963 (arm_hard_regno_mode_ok): Likewise.
964 (arm_expand_epilogue_apcs_frame): Likewise.
965 (arm_expand_epilogue): Likewise.
966 (arm_file_start): Likewise.
967 (arm_conditional_register_usage): Likewise.
968 (arm_validize_comparison): Use vfp_compare_operand directly.
969 * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP.
970 (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting
971 unsupported usage.
972 (arm_atomic_assign_expand_fenv): Likewise.
973 * arm.md (divsf3): Likewise.
974 (arm_negsi2): Likewise.
975 (absdf2): Likewise.
976 (arm_movdi): Likewise.
977 (arm_movt): Likewise.
978 (cbranchsf4): Change predicate to vfp_compare_operand.
979 (cbranchdf4): Change predicate to vfp_compare_operand.
980 (cstorehf4): Change predicate to vfp_compare_operand.
981 (cstoresf4): Change predicate to vfp_compare_operand.
982 (cstoredf4): Change predicate to vfp_compare_operand.
983 (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP.
984 (movhi_insn_arch4, movhi_bytes): Likewise.
985 * constraints.md (Dt): Likewise.
986 (Dp): Likewise.
987 * iterators.md (SDF): Likewise.
988 * predicates.md (arm_float_compare_operand): Delete.
989 (const_double_vcvt_power_of_two_reciprocal): Remove references to
990 TARGET_VFP.
991 (const_double_vcvt_power_of_two): Likewise.
992 * thumb2.md thumb2_movsi_insn): Likewise.
993 * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise.
994 (movhf_vfp): Likewise.
995 (arm_movsi_vfp, thumb2_movsi_vfp): Likewise.
996 (movdi_vfp, movdi_vfp_cortexa8): Likewise.
997 (movsf_vfp, thumb2_movsf_vfp): Likewise.
998 (movdf_vfp, thumb2_movdf_vfp): Likewise.
999 (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise.
1000 (subsf3_vfp, divsf3_vfp): Likewise.
1001 (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise.
1002 (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise.
1003 (mulsf3negsfsubsf_vfp): Likewise.
1004 (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise.
1005 (floatunssisf2, sqrtsf2_vfp): Likewise.
1006 (movcc_vfp): Likewise.
1007 (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise.
1008 (cmpsf_vfp, cmpsf_trap_vfp): Likewise.
1009 (push_multi_vfp): Likewise.
1010 (set_fpscr, get_fpscr): Likewise.
1011 * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__.
1012
1013 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
1014
1015 * arm.h (TARGET_VFP): Unconditionally define to 1.
1016 (arm_fpu_desc): Remove 'model' field.
1017 (TARGET_FPU_MODEL): Delete.
1018 * arm.c (all_fpus): Don't initialize the model field.
1019 (arm_can_inline_p): Don't check the FPU model.
1020 * arm-fpus.def: Remove redundant model field from all FPU
1021 descriptions.
1022
1023 2016-10-13 Richard Biener <rguenther@suse.de>
1024
1025 PR middle-end/77826
1026 * genmatch.c (struct capture): Add value_match member.
1027 (commutate): Preserve value_match.
1028 (lower_opt_convert): Likewise.
1029 (lower_cond): Likewise.
1030 (replace_id): Likewise.
1031 (struct dt_operand): Add value_match member.
1032 (decision_tree::cmp_node): Compare it.
1033 (decision_tree::insert_operand): Honor it when finding and
1034 when appending a DT_MATCH.
1035 (dt_operand::gen_match_op): Generate a type check after
1036 operand_equal_p if ! value_match for both GENERIC and GIMPLE.
1037 (parser::get_internal_capture_id): New helper.
1038 (parser::finish_match_operand): New function lowering @@<id>.
1039 (parser::parse_capture): Parse @@<id> as value-match.
1040 (parser::parse_expr): Use get_internal_capture_id.
1041 (parser::parse_simplify): Call finish_match_operand.
1042 (walk_captures): New helper.
1043 * match.pd (X - (X / Y) * Y -> X % Y): Use value-matching instead
1044 of operand_equal_p.
1045 ((X /[ex] A) * A -> X): Likewise.
1046 ((X | Y) ^ X -> Y & ~ X): Handle constants properly by using
1047 convert[12] and value-matching.
1048 ((A | B) & (A | C) -> A | (B & C)): Likewise.
1049 ((X | Y) | Y -> X | Y): Likewise.
1050 ((X ^ Y) ^ Y -> X): Likewise.
1051 (A - (A & B) -> ~B & A): Likewise.
1052 ((T)(P + A) - (T)P -> (T) A): Likewise.
1053 ((T)P - (T)(P + A) -> -(T) A): Likewise.
1054 ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Likewise.
1055 * doc/match-and-simplify.texi: Amend capture section.
1056
1057 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
1058
1059 * config/arc/arc.md (umul_600): Remove predicated variant.
1060 (umul64_600): Likewise.
1061
1062 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
1063
1064 * config/arc/arc.h (INSN_LENGTH_ALIGNMENT): Change.
1065
1066 2016-10-13 Bin Cheng <bin.cheng@arm.com>
1067
1068 * tree-vect-loop.c (loop_niters_no_overflow): New func.
1069 (vect_transform_loop): Call loop_niters_no_overflow. Pass the
1070 no-overflow information to vect_do_peeling_for_loop_bound and
1071 vect_gen_vector_loop_niters.
1072
1073 2016-10-13 Bin Cheng <bin.cheng@arm.com>
1074
1075 * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only
1076 iterates 1 time.
1077
1078 2016-10-13 Bin Cheng <bin.cheng@arm.com>
1079
1080 * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release
1081 adjust_vec automatically.
1082 (slpeel_add_loop_guard): Remove param cond_expr_stmt_list. Rename
1083 param exit_bb to guard_to.
1084 (slpeel_checking_verify_cfg_after_peeling):
1085 (set_prologue_iterations):
1086 (create_lcssa_for_virtual_phi): New func which is factored out from
1087 slpeel_tree_peel_loop_to_edge.
1088 (slpeel_tree_peel_loop_to_edge):
1089 (iv_phi_p): New func.
1090 (vect_can_advance_ivs_p): Call iv_phi_p.
1091 (vect_update_ivs_after_vectorizer): Call iv_phi_p. Directly insert
1092 new gimple stmts in basic block.
1093 (vect_gen_niters_for_prolog_loop): Rename to...
1094 (vect_gen_prolog_loop_niters): ...Rename from. Change parameters and
1095 adjust implementation.
1096 (vect_update_inits_of_drs): Fix code style issue. Convert niters to
1097 sizetype if necessary.
1098 (vect_build_loop_niters): Move to here from tree-vect-loop.c. Change
1099 it to external function.
1100 (vect_gen_scalar_loop_niters, vect_gen_vector_loop_niters): New.
1101 (vect_gen_vector_loop_niters_mult_vf): New.
1102 (slpeel_update_phi_nodes_for_loops): New.
1103 (slpeel_update_phi_nodes_for_guard1): Reimplement.
1104 (find_guard_arg, slpeel_update_phi_nodes_for_guard2): Reimplement.
1105 (slpeel_update_phi_nodes_for_lcssa, vect_do_peeling): New.
1106 * tree-vect-loop.c (vect_build_loop_niters): Move to file
1107 tree-vect-loop-manip.c
1108 (vect_generate_tmps_on_preheader): Delete.
1109 (vect_transform_loop): Rename vectorization_factor to vf. Call
1110 vect_do_peeling instead of vect_do_peeling-* functions.
1111 * tree-vectorizer.h (vect_do_peeling): New decl.
1112 (vect_build_loop_niters, vect_gen_vector_loop_niters): New decls.
1113 (vect_do_peeling_for_loop_bound): Delete.
1114 (vect_do_peeling_for_alignment): Delete.
1115
1116 2016-10-13 Bin Cheng <bin.cheng@arm.com>
1117
1118 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Put
1119 duplicated loop after its preheader and after the original loop.
1120
1121 2016-10-13 Bin Cheng <bin.cheng@arm.com>
1122
1123 * tree-vect-loop.c (vect_analyze_loop_2): Check and skip loop if it
1124 has no enough iterations for LOOP_VINFO_PEELING_FOR_GAPS.
1125
1126 2016-10-13 Bin Cheng <bin.cheng@arm.com>
1127
1128 * tree-vect-loop.c (vectorizable_live_operation): Support handling
1129 for live variable outside loop but not in lcssa form.
1130
1131 2016-10-13 Bin Cheng <bin.cheng@arm.com>
1132
1133 * cfg.c (reset_original_copy_tables): New func.
1134 * cfg.h (reset_original_copy_tables): New decl.
1135
1136 2016-10-13 Jakub Jelinek <jakub@redhat.com>
1137
1138 PR c/77946
1139 * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of
1140 public_flag.
1141 * varasm.c (default_binds_local_p_3): Formatting fix.
1142
1143 2016-10-13 Bin Cheng <bin.cheng@arm.com>
1144
1145 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code
1146 style issue.
1147 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
1148 Remove useless code.
1149
1150 2016-10-13 Martin Liska <mliska@suse.cz>
1151
1152 PR tree-optimization/77943
1153 * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
1154 a different EH landing pads.
1155
1156 2016-10-13 Jakub Jelinek <jakub@redhat.com>
1157
1158 PR target/77957
1159 * hooks.h (hook_tree_void_null): Declare.
1160 * hooks.c (hook_tree_void_null): New function.
1161 * langhooks.c (lhd_return_null_tree_v): Remove.
1162 * langhooks-def.h (lhd_return_null_tree_v): Remove.
1163 * cfgexpand.c (stack_protect_prologue): If guard_decl is NULL,
1164 set y to const0_rtx.
1165 * function.c (stack_protect_epilogue): Likewise.
1166 * config/tilepro/tilepro.c (TARGET_STACK_PROTECT_GUARD): Redefine
1167 if TARGET_THREAD_SSP_OFFSET is defined.
1168 * config/s390/s390.c (TARGET_STACK_PROTECT_GUARD): Likewise.
1169 * config/sparc/sparc.c (TARGET_STACK_PROTECT_GUARD): Likewise.
1170 * config/tilegx/tilegx.c (TARGET_STACK_PROTECT_GUARD): Likewise.
1171 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Likewise.
1172 * config/i386/i386.c (TARGET_STACK_PROTECT_GUARD): Likewise.
1173 (ix86_stack_protect_guard): New function.
1174
1175 2016-10-13 Richard Biener <rguenther@suse.de>
1176
1177 * dwarf2out.c (tree_add_const_value_attribute): Do not try
1178 rtl_for_decl_init during early phase.
1179 (gen_variable_die): Do not create locations during early phase.
1180 (gen_label_die): Likewise.
1181 (decls_for_scope): Do not waste time handling BLOCK_NONLOCALIZED_VARs
1182 twice.
1183
1184 2016-10-12 Richard Biener <rguenther@suse.de>
1185
1186 * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from
1187 try_add_new_range and made to eturn new range.
1188 (evrp_dom_walker::before_dom_children): Push op1 value range before
1189 pushing op0 value range.
1190
1191 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1192
1193 PR tree-optimization/77937
1194 * gimple-ssa-strength-reduction.c (analyze_increments): Use
1195 POINTER_TYPE_P on the candidate type to determine whether
1196 candidates in this chain require pointer arithmetic.
1197
1198 2016-10-12 Eric Botcazou <ebotcazou@adacore.com>
1199
1200 * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
1201 correction if the type is smaller than a word.
1202 (visium_select_cc_mode): Add ... fall through ... comment.
1203
1204 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
1205
1206 * config/rs6000/rs6000.c (machine_function): Add new fields
1207 gpr_is_wrapped_separately and lr_is_wrapped_separately.
1208 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
1209 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
1210 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
1211 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
1212 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
1213 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
1214 (rs6000_get_separate_components): New function.
1215 (rs6000_components_for_bb): New function.
1216 (rs6000_disqualify_components): New function.
1217 (rs6000_emit_prologue_components): New function.
1218 (rs6000_emit_epilogue_components): New function.
1219 (rs6000_set_handled_components): New function.
1220 (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
1221 Don't emit GPR saves if gpr_is_wrapped_separately for that register.
1222 (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
1223 (rs6000_emit_epilogue): Don't emit GPR restores if
1224 gpr_is_wrapped_separately for that register. Don't make a
1225 REG_CFA_RESTORE note for registers we did not restore, either.
1226
1227 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
1228
1229 * function.c (thread_prologue_and_epilogue_insns): Call
1230 try_shrink_wrapping_separate. Compute the prologue_seq afterwards,
1231 if it has possibly changed. Compute the split_prologue_seq and
1232 epilogue_seq later, too.
1233 * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
1234 (dump_components): New function.
1235 (struct sw): New struct.
1236 (SW): New function.
1237 (init_separate_shrink_wrap): New function.
1238 (fini_separate_shrink_wrap): New function.
1239 (place_prologue_for_one_component): New function.
1240 (spread_components): New function.
1241 (disqualify_problematic_components): New function.
1242 (emit_common_heads_for_components): New function.
1243 (emit_common_tails_for_components): New function.
1244 (insert_prologue_epilogue_for_components): New function.
1245 (try_shrink_wrapping_separate): New function.
1246 * shrink-wrap.h: Declare try_shrink_wrapping_separate.
1247
1248 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
1249
1250 * regrename.c (build_def_use): Invalidate chains that have a
1251 REG_CFA_RESTORE on some instruction.
1252
1253 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
1254
1255 * dce.c (delete_unmarked_insns): Don't delete instructions with
1256 a REG_CFA_RESTORE note.
1257
1258 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
1259
1260 * common.opt (-fshrink-wrap-separate): New flag.
1261 * doc/invoke.texi: Document it.
1262 * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
1263 * doc/tm.texi: Regenerate.
1264 * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
1265 * target.def (shrink_wrap): New hook vector.
1266 (get_separate_components, components_for_bb, disqualify_components,
1267 emit_prologue_components, emit_epilogue_components,
1268 set_handled_components): New hooks.
1269
1270 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
1271
1272 * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
1273 vector return by reference only if -Wpsabi.
1274 (rs6000_pass_by_reference): Similarly, for argument passing.
1275
1276 2016-10-12 David Malcolm <dmalcolm@redhat.com>
1277
1278 * function-tests.c: Include "print-rtl.h".
1279 (selftest::test_expansion_to_rtl): Call print_rtx_function on the
1280 function, and verify what is dumped.
1281 * print-rtl-function.c (print_edge): New function.
1282 (begin_any_block): New function.
1283 (end_any_block): New function.
1284 (can_have_basic_block_p): New function.
1285 (print_rtx_function): Track the basic blocks of insns in the
1286 chain, wrapping those that are within blocks within "(block)"
1287 directives. Remove the "(cfg)" directive.
1288
1289 2016-10-12 David Malcolm <dmalcolm@redhat.com>
1290
1291 * selftest.c (selftest::read_file): New function.
1292 (selftest::test_read_file): New function.
1293 (selftest::selftest_c_tests): Call test_read_file.
1294 * selftest.h (selftest::read_file): New decl.
1295
1296 2016-10-12 Richard Biener <rguenther@suse.de>
1297
1298 PR debug/77947
1299 * cgraphunit.c (analyze_functions): Preserve cgraph nodes
1300 function context.
1301
1302 2016-10-12 Thomas Schwinge <thomas@codesourcery.com>
1303
1304 * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
1305
1306 * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
1307 dwarf2out_assembly_start.
1308
1309 * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
1310
1311 * Makefile.in (SELFTEST_FLAGS): New variable.
1312 (s-selftest, selftest-gdb, selftest-valgrind): Use it.
1313
1314 * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
1315 early_finish hook.
1316
1317 2016-10-12 Georg-Johann Lay <avr@gjlay.de>
1318
1319 * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
1320 dumped in RTL dumps.
1321
1322 2016-10-12 Martin Liska <mliska@suse.cz>
1323
1324 * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
1325 (gimple_fold_builtin_memory_op): Use the function.
1326 (gimple_fold_builtin_strchr): Likewise.
1327 (gimple_fold_builtin_strcat): Likewise.
1328 (gimple_build): Likewise.
1329
1330 2016-10-12 Nathan Sidwell <nathan@acm.org>
1331
1332 * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
1333
1334 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
1335
1336 * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
1337 equivalent 32-bit constant (modulo 2**32) when that yields
1338 smaller instructions.
1339 (size_of_int_loc_descriptor): Update accordingly.
1340
1341 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
1342
1343 * dwarf2out.c (dwarf2out_early_global_decl): For nested
1344 functions, call dwarf2out_decl on the parent function first.
1345
1346 2016-10-12 Richard Biener <rguenther@suse.de>
1347
1348 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
1349 on the conversion.
1350
1351 2016-10-12 Richard Biener <rguenther@suse.de>
1352
1353 * tree-ssa-propagate.c
1354 (substitute_and_fold_dom_walker::before_dom_children): Do not
1355 ignore ASSERT_EXPRs but only preserve them.
1356 * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
1357 that have been propagated into.
1358 (vrp_finalize): Enable DCE for substitute_and_fold.
1359
1360 2016-10-12 Richard Biener <rguenther@suse.de>
1361
1362 PR tree-optimization/77920
1363 * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
1364 (simplify_min_or_max_using_ranges): Pass in gsi and use it.
1365 (simplify_abs_using_ranges): Likewise.
1366 (simplify_conversion_using_ranges): Likewise.
1367 (simplify_stmt_using_ranges): Adjust.
1368
1369 2016-10-12 Jakub Jelinek <jakub@redhat.com>
1370
1371 PR tree-optimization/77929
1372 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
1373 (*ops)[ranges[i].idx]->op != ranges[i].exp case.
1374
1375 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1376
1377 PR target/77934
1378 * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
1379 needs a base register for arg 1.
1380
1381 2016-10-12 Jakub Jelinek <jakub@redhat.com>
1382
1383 * common.opt (Wimplicit-fallthrough) Turn into alias to
1384 -Wimplicit-fallthrough=3. Remove EnabledBy.
1385 (Wimplicit-fallthrough=): New option.
1386 * gimplify.c (warn_implicit_fallthrough_r): Use
1387 OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
1388 * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
1389 to -Wimplicit-fallthrough=3.
1390 (-Wimplicit-fallthrough=): Document.
1391
1392 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
1393
1394 * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
1395 and GEU in DImode if TARGET_SUBXC.
1396 * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
1397 (seqdi<W:mode>_zero_subxc): Delete.
1398 (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
1399 (neg_seqdi<W:mode>_zero_vis3): Delete.
1400 (plus_seqdi<W:mode>_zero): Likewise.
1401 (minus_seqdi<W:mode>_zero): Likewise.
1402 (plus_plus_sltu<W:mode>): Accept only register.
1403 (addx<W:mode>): Likewise.
1404 (plus_sltu<W:mode>_vis3): Likewise.
1405 (plus_plus_sltu<W:mode>_vis3): Likewise.
1406 (neg_sgeu<W:mode>_vis3): Delete.
1407 (minus_sgeu<W:mode>_vis3): Likewise.
1408 (addxc<W:mode>): Accept only registers.
1409 (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
1410 (minus_neg_sltu<W:mode>_subxc): Accept only register.
1411 (neg_plus_sltu<W:mode>_subxc): Likewise.
1412 (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
1413 (minus_minus_sltu<W:mode>_subxc): Accept only register.
1414 (sgeu<W:mode>_insn_subxc): Delete.
1415 (plus_sgeu<W:mode>_subxc): Likewise.
1416 (subxc<W:mode>): Accept only register.
1417 (scc splitter): Split always GEU again.
1418
1419 2016-10-11 Jeff Law <law@redhat.com>
1420
1421 PR tree-optimization/77424
1422 * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
1423 dead conditionals. Assert that all e->aux fields are NULL.
1424
1425 2016-10-11 David Malcolm <dmalcolm@redhat.com>
1426
1427 * print-rtl.c (print_rtx): Rename "i" to "idx". Split out the
1428 operand-printing "switch" statement into...
1429 (print_rtx_operand_code_0): ...this new function, ...
1430 (print_rtx_operand_code_e): ...this new function, ...
1431 (print_rtx_operand_codes_E_and_V): ...this new function, ...
1432 (print_rtx_operand_code_i): ...this new function, ...
1433 (print_rtx_operand_code_r): ...this new function, ...
1434 (print_rtx_operand_code_u): ...this new function, ...
1435 (print_rtx_operand): ...and this new function.
1436
1437 2016-10-11 Uros Bizjak <ubizjak@gmail.com>
1438
1439 * config/alpha/alpha-passes.def: New file.
1440 * config/alpha/t-alpha: New file.
1441 * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
1442 (make_pass_handle_trap_shadows): New prototype.
1443 (make_pass_align_insns): Ditto.
1444 * config/alpha/alpha.c (alpha_option_override): Don't register
1445 passes here.
1446 * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
1447
1448 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1449
1450 PR target/77924
1451 * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
1452 distinct __ibm128 IBM extended double type if long doubles are
1453 128-bits and the default format for long double is IEEE 128-bit.
1454
1455 2016-10-11 Richard Biener <rguenther@suse.de>
1456
1457 * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
1458 (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
1459 (verify_die): New function.
1460 (dwarf2out_finish): Call it.
1461 (output_line_info): Handle case of -gsplit-dwarf without
1462 DWARF2_ASM_LINE_DEBUG_INFO.
1463
1464 2016-10-11 Richard Biener <rguenther@suse.de>
1465
1466 PR debug/77931
1467 * gimple-low.c (lower_gimple_bind): Handle arbitrary common
1468 sub-chains of BLOCK_VARS and gimple_bind_vars.
1469
1470 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
1471
1472 * config/i386/znver1.md : Fix imov/imovx load type reservations.
1473
1474 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
1475
1476 * config/sparc/sparc.opt (msubxc): New option.
1477 * doc/invoke.texi (SPARC options): Document it and tidy up.
1478 * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
1479 * doc/tm.texi: Regenerate.
1480 * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
1481 (CCNZ): ...this.
1482 (CCX_NOOV): Rename into...
1483 (CCXNZ): ...this.
1484 (CCC): New.
1485 (CCXC): Likewise.
1486 * config/sparc/predicates.m (fcc_register_operand): Simplify.
1487 (fcc0_register_operand): Likewise.
1488 (icc_register_operand): New.
1489 (icc_or_fcc_register_operand): Simplify.
1490 (nz_comparison_operator): New.
1491 (c_comparison_operator): Likewise.
1492 (noov_compare_operator): Rename into...
1493 (icc_comparison_operator): ...this. Use above predicates.
1494 (noov_compare64_operator): Rename into...
1495 (v9_comparison_operator): ...this and tidy up.
1496 (fcc_comparison_operator): New.
1497 (icc_or_fcc_comparison_operator): Likewise.
1498 (v9_register_compare_operator): Rename info...
1499 (v9_register_comparison_operator): ...this.
1500 * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
1501 (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
1502 for Niagara-7.
1503 (sparc_fixed_condition_code_regs): New function.
1504 (select_cc_mode): Remove ATTRIBUTE_UNUSED. Adjust for CCNZ/CCXNZ
1505 renaming and add support for CCC/CCXC.
1506 (output_cbranch): Likewise.
1507 (sparc_print_operand): Likewise.
1508 (gen_v9_scc): Remove obsolete assertion.
1509 (emit_scc_insn): Emit RTL directly for EQ and NE. Add direct support
1510 for EQ in DImode if TARGET_SUBXC. Remove test on TARGET_VIS3 for GEU.
1511 (output_cbcond): Remove bogus handling of CC modes.
1512 (sparc_register_move_cost): Return 100 for NO_REGS.
1513 * config/sparc/sparc.md (W): New mode iterator.
1514 (length): Adjust for noov_compare64_operator renaming.
1515 (cmpsi_sne): New instruction.
1516 (cmpdi_sne): Likewise.
1517 (seqdi_special): Delete.
1518 (seqdi_special): Likewise.
1519 (snesi<P:mode>_special): Likewise.
1520 (snedi_special): Likewise.
1521 (snedi_special_vis3): Likewise.
1522 (snesi patterns): Use W iterator.
1523 (snedi patterns): Likewise. Add TARGET_SUBXC patterns.
1524 (sltu patterns): Likewise.
1525 (sgeu patterns): Likewise.
1526 (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
1527 (normal_branch): Use icc_comparison_operator predicate.
1528 (inverted_branch): Likewise.
1529 (cbcond_sp32): Use comparison_operator predicate.
1530 (cbcond_sp64): Likewise.
1531 (normal_int_branch_sp64): Adjust for renaming
1532 (inverted_int_branch_sp64): Likewise.
1533 (mov<I:mode>_cc_reg_sp64): Likewise.
1534 (movsf_cc_reg_sp6): Likewise.
1535 (movdf_cc_reg_sp64): Likewise.
1536 (movtf_cc_reg_hq_sp64): Likewise.
1537 (movtf_cc_reg_sp64): Likewise.
1538 (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
1539 (movsf_cc_v9): Likewise.
1540 (movdf_cc_v9): Likewise.
1541 (movtf_cc_hq_v9): Likewise.
1542 (movtf_cc_v9): Likewise.
1543 (adddi3): Call gen_adddi3_sp32.
1544 (adddi3_insn_sp32): Rename to...
1545 (adddi3_sp32): ...this. Accept only register_operand as operand #1
1546 and use CCCmode for the carry.
1547 (addx_extend_sp32): Use CCCmode for the carry.
1548 (addx_extend_sp64): Delete.
1549 (adddi3_extend_sp32): Use CCCmode for the carry.
1550 (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
1551 (subdi3): Call gen_subdi3_sp32.
1552 (subdi3_insn_sp32): Rename to...
1553 (subdi3_sp32): ...this and use CCmode for the carry.
1554 (subx_extend_sp32): Use CCCmode for the carry.
1555 (subx_extend_sp64): Delete.
1556 (subdi3_extend_sp32): Use CCmode for the carry.
1557 (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
1558 (negdi3): Call gen_negdi3_sp32.
1559 (negdi3_sp32): Use CCCmode for the carry.
1560 (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
1561 (cmp_nz_ashift_1): Use CCNZ mode.
1562 (cmp_nz_set_ashift_1): Likewise.
1563 (ctrapsi4): Use comparison_operator predicate.
1564 (ctrapdi4): Likewise.
1565 (trapsi_insn): Use icc_comparison_operator predicate.
1566 (trapdi_insn): Likewise.
1567 (edge8 patterns): Use CCNZmode.
1568 (edge16 patterns): Likewise.
1569 (edge32 patterns): Likewise.
1570
1571 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
1572
1573 * config/visium/visium-modes.def (CC_NOOV): Rename into...
1574 (CCNZ): ...this.
1575 (CC_BTST): Rename into...
1576 (CCC): ...this.
1577 * config/visium/predicates.md (real_add_operand): New.
1578 (visium_btst_operator): Rename into...
1579 (visium_equality_comparison_operator): ...this.
1580 (visium_noov_operator): Rename into...
1581 (visium_nz_comparison_operator): ...this.
1582 (visium_c_comparison_operator): New.
1583 (visium_branch_operator): Adjust and deal with all CC modes.
1584 * config/visium/visium.c (visium_adjust_cost): Adjust.
1585 (visium_split_double_add): Use the *_set_carry patterns.
1586 (visium_select_cc_mode): Add support for CCC mode and adjust.
1587 (output_cbranch): Adjust and use the carry-based operators for
1588 floating-point comparisons.
1589 * config/visium/visium.md (flags_subst_arith): Adjust.
1590 (addsi3_insn_set_carry): New instruction.
1591 (subsi3_insn_set_carry): Likewise.
1592 (negsi2_insn_set_carry): Likewise.
1593 (btst): Adjust.
1594 (cmp<mode>_sne): Likewise.
1595 (cbranch<mode>4): Use ordered_comparison_operator.
1596 (cbranch<mode>4_insn): Likewise.
1597 (cbranchsi4_btst_insn): Adjust.
1598
1599 2016-10-11 Tom de Vries <tom@codesourcery.com>
1600
1601 PR middle-end/77558
1602 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
1603 special-casing.
1604
1605 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
1606
1607 * tree.h (build_complex_type): Add second parameter with default.
1608 * tree.c (build_complex_type): Add NAMED second parameter and adjust
1609 recursive call. Create a TYPE_DECL only if NAMED is true.
1610 (build_common_tree_nodes): Pass true in calls to build_complex_type.
1611
1612 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
1613
1614 New avr-passes.def to register AVR specific passes.
1615
1616 * config/avr/avr-passes.def: New file.
1617 * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
1618 * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
1619 (make_avr_pass_recompute_note): New proto.
1620 * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
1621 (avr_pass_recompute_notes): Use anonymous namespace.
1622 (avr_register_passes): Remove function...
1623 (avr_option_override): ...and its call.
1624
1625 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
1626
1627 * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
1628 PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
1629 PTF_AVOID_BRANCHLIKELY_SPEED for others.
1630 (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
1631 flags.
1632 * config/mips/mips.c (mips_option_override): Enable the branch
1633 likely depending on the tune flags and optimization level.
1634 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
1635 (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
1636 (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
1637 (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
1638
1639 2016-10-11 Richard Biener <rguenther@suse.de>
1640
1641 * lto-streamer-out.c (collect_block_tree_leafs): New helper.
1642 (output_function): Properly stream the whole block tree.
1643 * lto-streamer-in.c (input_function): Likewise.
1644
1645 2016-10-11 Marek Polacek <polacek@redhat.com>
1646
1647 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
1648
1649 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
1650
1651 * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
1652 (evrp_dom_walker::before_dom_children): Infer and push new value
1653 ranges for x in y < x.
1654
1655 2016-10-10 Joseph Myers <joseph@codesourcery.com>
1656
1657 PR target/77586
1658 * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
1659 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
1660 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
1661 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
1662 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
1663 (IA64_NO_LIBGCC_TFMODE): Likewise.
1664
1665 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
1666
1667 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
1668 copying.
1669
1670 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
1671
1672 * config.gcc: Add aarch64-*-freebsd* support.
1673 * config.host: Likewise.
1674 * config/aarch64/aarch64-freebsd.h: New file.
1675 * config/aarch64/t-aarch64-freebsd: Ditto.
1676
1677 2016-10-10 Jeff Law <law@redhat.com>
1678
1679 PR tree-optimization/71947
1680 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
1681 B with A within a single statement.
1682
1683 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1684
1685 PR tree-optimization/77824
1686 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
1687 zero cost for copies.
1688 (find_candidates_dom_walker::before_dom_children): Replace
1689 MODIFY_EXPR with SSA_NAME.
1690 (replace_mult_candidate): Likewise.
1691 (replace_profitable_candidates): Likewise.
1692
1693 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1694
1695 * config/s390/s390.h: Wrap more macros args in brackets and fix
1696
1697 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
1698
1699 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
1700
1701 2016-10-10 Andreas Schwab <schwab@suse.de>
1702
1703 PR target/77738
1704 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
1705 pseudo is not DImode.
1706
1707 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
1708
1709 * common/config/arc/arc-common.c (arc_option_optimization_table):
1710 Remove compact casesi option.
1711 * config/arc/arc.c (arc_override_options): Use compact casesi
1712 option only for pre-ARCv2 cores.
1713 * doc/invoke.texi (mcompact-casesi): Update text.
1714
1715 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1716
1717 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
1718 Add macro to say we can efficiently handle overlapping unaligned
1719 loads.
1720 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
1721 poor code for processors older than p8.
1722
1723 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
1724
1725 * gen-pass-instances.awk: Remove GNUism.
1726
1727 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1728
1729 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
1730 NULL of (*ipcp_transformations)][node->uid].
1731
1732 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
1733
1734 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
1735 (MALLOC_ABI_ALIGNMENT): Define.
1736
1737 2016-10-09 Jakub Jelinek <jakub@redhat.com>
1738
1739 * tree-ssa.c (target_for_debug_bind, verify_phi_args,
1740 ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
1741 VAR_OR_FUNCTION_DECL_P macros.
1742 * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
1743 chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
1744 chkp_find_bounds_1): Likewise.
1745 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
1746 * hsa-gen.c (get_symbol_for_decl): Likewise.
1747 * cgraphunit.c (check_global_declaration, analyze_functions,
1748 handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
1749 Likewise.
1750 * gimple-fold.c (can_refer_decl_in_current_unit_p,
1751 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
1752 Likewise.
1753 * tree.c (set_decl_section_name, copy_node_stat,
1754 need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
1755 merge_dllimport_decl_attributes, handle_dll_attribute,
1756 decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
1757 verify_type): Likewise.
1758 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
1759 find_explicit_erroneous_behavior): Likewise.
1760 * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
1761 * ipa.c (process_references): Likewise.
1762 * tree-chkp-opt.c (chkp_get_check_result): Likewise.
1763 * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
1764 notice_global_symbol, assemble_variable, mark_decl_referenced,
1765 build_constant_desc, output_constant_def_contents, do_assemble_alias,
1766 make_decl_one_only, default_section_type_flags,
1767 categorize_decl_for_section, default_encode_section_info): Likewise.
1768 * trans-mem.c (requires_barrier): Likewise.
1769 * gimple-expr.c (mark_addressable): Likewise.
1770 * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
1771 expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
1772 expand_debug_expr): Likewise.
1773 * tree-dump.c (dequeue_and_dump): Likewise.
1774 * ubsan.c (instrument_bool_enum_load): Likewise.
1775 * tree-pretty-print.c (print_declaration): Likewise.
1776 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1777 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
1778 * asan.c (asan_protect_global, instrument_derefs): Likewise.
1779 * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
1780 pass_build_ssa::execute): Likewise.
1781 * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
1782 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
1783 Likewise.
1784 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
1785 Likewise.
1786 * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
1787 can_be_nonlocal, remap_decls, copy_debug_stmt,
1788 initialize_inlined_parameters, add_local_variables,
1789 reset_debug_binding, replace_locals_op): Likewise.
1790 * dse.c (can_escape): Likewise.
1791 * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
1792 Likewise.
1793 * tree-diagnostic.c (default_tree_printer): Likewise.
1794 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
1795 unpack_ts_decl_with_vis_value_fields,
1796 lto_input_ts_decl_common_tree_pointers): Likewise.
1797 * builtins.c (builtin_save_expr, fold_builtin_expect,
1798 readonly_data_expr): Likewise.
1799 * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
1800 create_variable_info_for, set_uids_in_ptset, visit_loadstore):
1801 Likewise.
1802 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
1803 * gimplify.c (force_constant_size, gimplify_bind_expr,
1804 gimplify_decl_expr, gimplify_var_or_parm_decl,
1805 gimplify_compound_lval, gimplify_init_constructor,
1806 gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
1807 gimplify_type_sizes): Likewise.
1808 * cgraphbuild.c (record_reference, record_type_list, mark_address,
1809 mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
1810 * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
1811 remove_unused_locals): Likewise.
1812 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
1813 ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
1814 * function.c (instantiate_expr, instantiate_decls_1,
1815 setjmp_vars_warning, add_local_decl): Likewise.
1816 * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
1817 Likewise.
1818 * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
1819 va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
1820 optimize_va_list_gpr_fpr_size): Likewise.
1821 * tree-nrv.c (pass_nrv::execute): Likewise.
1822 * tsan.c (instrument_expr): Likewise.
1823 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
1824 * vtable-verify.c (verify_bb_vtables): Likewise.
1825 * tree-dfa.c (ssa_default_def, set_ssa_default_def,
1826 get_ref_base_and_extent): Likewise.
1827 * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
1828 Likewise.
1829 * tree-sra.c (static bool constant_decl_p, find_var_candidates,
1830 analyze_all_variable_accesses): Likewise.
1831 * tree-nested.c (get_nonlocal_debug_decl,
1832 convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
1833 note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
1834 get_local_debug_decl, convert_local_omp_clauses,
1835 convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
1836 Likewise.
1837 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
1838 * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
1839 * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
1840 dbxout_symbol, dbxout_common_check): Likewise.
1841 * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
1842 string_constant): Likewise.
1843 * hsa.c (hsa_get_declaration_name): Likewise.
1844 * passes.c (rest_of_decl_compilation): Likewise.
1845 * tree-ssanames.c (make_ssa_name_fn): Likewise.
1846 * tree-streamer-out.c (pack_ts_decl_common_value_fields,
1847 pack_ts_decl_with_vis_value_fields,
1848 write_ts_decl_common_tree_pointers): Likewise.
1849 * stor-layout.c (place_field): Likewise.
1850 * symtab.c (symtab_node::maybe_create_reference,
1851 symtab_node::verify_base, symtab_node::make_decl_local,
1852 symtab_node::copy_visibility_from,
1853 symtab_node::can_increase_alignment_p): Likewise.
1854 * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
1855 decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
1856 fortran_common, add_location_or_const_value_attribute,
1857 add_scalar_info, add_linkage_name, set_block_abstract_flags,
1858 local_function_static, gen_variable_die, dwarf2out_late_global_decl,
1859 optimize_one_addr_into_implicit_ptr,
1860 optimize_location_into_implicit_ptr): Likewise.
1861 * gimple-low.c (record_vars_into): Likewise.
1862 * ipa-visibility.c (update_vtable_references): Likewise.
1863 * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
1864 Likewise.
1865 * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
1866 DFS::DFS_write_tree_body, write_symbol): Likewise.
1867 * langhooks.c (lhd_warn_unused_global_decl,
1868 lhd_set_decl_assembler_name): Likewise.
1869 * attribs.c (decl_attributes): Likewise.
1870 * except.c (output_ttype): Likewise.
1871 * varpool.c (varpool_node::get_create, ctor_for_folding,
1872 varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
1873 * fold-const.c (fold_unary_loc): Likewise.
1874 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
1875 ipa_find_agg_cst_from_init): Likewise.
1876 * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
1877 expand_omp_target, lower_omp_regimplify_p,
1878 grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
1879 find_link_var_op): Likewise.
1880 * tree-chrec.c (chrec_contains_symbols): Likewise.
1881 * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
1882 gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
1883 execute_fixup_cfg): Likewise.
1884
1885 PR tree-optimization/77901
1886 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
1887 if ranges[i].exp is SSA_NAME when looking for >= and only when
1888 ranges[i].exp is NULL or SSA_NAME when looking for the other
1889 comparison.
1890
1891 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1892
1893 * ipa-cp.c (ipcp_alignment_lattice): Remove.
1894 (ipcp_param_lattices): Remove field alignment.
1895 (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
1896 (set_all_contains_variable): Remove call to
1897 ipcp_alignment_lattice::set_to_bottom.
1898 (initialize_node_lattices): Likewise.
1899 (propagate_alignment_accross_jump_function): Remove.
1900 (propagate_constants_accross_call): Remove call to
1901 propagate_alignment_accross_jump_function.
1902 (ipcp_store_alignment_results): Remove.
1903 (ipcp_driver): Remove call to ipcp_store_alignment_results.
1904 (propagate_bits_accross_jump_function): Handle ancestor jump function.
1905 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
1906 pretty-printing of alignment jump function.
1907 (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
1908 (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
1909 alignments and remove computing ipa_alignment jump function.
1910 (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
1911 (ipa_write_jump_functions): Remove streaming for ipa_alignment.
1912 (ipa_read_jump_function): Remove reading of ipa_alignment.
1913 (write_ipcp_transformation_info): Remove streaming for alignment
1914 propagation summary.
1915 (read_ipcp_transformation_info): Remove reading of alignment
1916 propagation summary.
1917 (ipcp_update_alignments): Remove.
1918 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
1919 type.
1920 (ipcp_transform_function): Remove call to ipcp_update_alignments()
1921 and remove assignment to (*ipcp_transformations)[node->uid].alignments.
1922 * ipa-prop.h (ipa_alignment): Remove.
1923 (ipa_jump_func): Remove field alignment.
1924 (ipcp_transformation_summary): Remove field alignments.
1925 * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
1926 * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
1927 (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
1928
1929 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
1930
1931 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
1932
1933 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
1934 change.
1935 (visium_expand_fp_cstore): Likewise.
1936
1937 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1938
1939 * diagnostic-core.h (warning_at_rich_loc_n): Declare.
1940 * diagnostic.c (warning_at_rich_loc_n): New function.
1941 (diagnostic_n_impl_richloc): Likewise.
1942 (diagnostic_n_impl): Move most of the function to
1943 diagnostic_n_impl_richloc and call it.
1944
1945 2016-10-08 Jakub Jelinek <jakub@redhat.com>
1946
1947 * gen-pass-instances.awk: Rewritten.
1948 * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
1949 $(PASSES_EXTRA) after passes.def to the script.
1950 * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
1951 * config/i386/i386-passes.def: New file.
1952 * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
1953 make_pass_stv): Declare.
1954 * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
1955 false.
1956 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
1957 or !TARGET_64BIT.
1958 (pass_stv::clone, pass_stv::set_pass_param): New methods.
1959 (pass_stv::timode_p): New non-static data member.
1960 (ix86_option_override): Don't register passes here.
1961
1962 * doc/invoke.texi: Document accepting Else, fallthrough.
1963
1964 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
1965 style changes.
1966
1967 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
1968 FALLTHRU comment styles.
1969
1970 2016-10-07 Andrew Pinski <apinski@cavium.com>
1971
1972 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
1973 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
1974 * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
1975 Likewise.
1976 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
1977 Likewise.
1978 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
1979 Likewise.
1980 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
1981 (AARCH64_ARCH): Likewise.
1982 * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
1983 Likewise.
1984 (AARCH64_CORE): Likewise.
1985 (AARCH64_ARCH): Likewise.
1986 * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
1987 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
1988 * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
1989 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
1990 (AARCH64_ARCH): Likewise.
1991 (AARCH64_CORE): Likewise.
1992 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
1993 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
1994 (AARCH64_CORE): Likewise.
1995 (AARCH64_ARCH): Likewise.
1996
1997 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
1998
1999 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
2000 -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
2001 floating point type infrastructre, and -mfloat128 that enables the
2002 keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
2003 if -mfloat128-type. Define __ibm128 to be long double by default.
2004 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
2005 the IEEE 128-bit floating point type infrastructure should
2006 automatically be enabled.
2007 (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
2008 instead of -mfloat128 to enable KFmode.
2009 (rs6000_option_override_internal): Split the option -mfloat128
2010 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit
2011 systems, automatically set -mfloat128-type, but don't enable it on
2012 other operating systems. Move setting the long double size and
2013 IEEE quad support before the IEEE 128-bit floating point changes.
2014 (rs6000_init_builtins): Do not create a unique type for __ibm128
2015 if long double is IBM extended double, instead rely on __ibm128
2016 being defined as 'long double'. If -mfloat128-type and not
2017 -mfloat128, create the KFmode type with an undocumented __ieee128
2018 keyword.
2019 (rs6000_init_libfuncs): Use -mfloat128-type instead of
2020 -mfloat128 for tests about the types, but keep tests for
2021 -mfloat128 to enable the keyword support.
2022 (rs6000_complex_function_value): Likewise.
2023 (rs6000_scalar_mode_supported_p): Likewise.
2024 (rs6000_floatn_mode): Likewise.
2025 (rs6000_c_mode_for_suffix): Likewise.
2026 (rs6000_opt_masks): Add -mfloat128-type.
2027 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
2028 -mfloat128-type being split from -mfloat128. Add
2029 -mfloat128-hardware, which was missing.
2030 * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
2031 -mfloat128 and -mfloat128-type:
2032 (-mfloat128-type): Likewise.
2033 * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
2034 that 64-bit Linux systems with enable -mfloat128-type by default
2035 on VSX systems.
2036 * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
2037 (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
2038 -mfloat128-type instead of -mfloat128.
2039 (FLOAT128_2REG_P): Likewise.
2040 (MASK_FLOAT128_TYPE): Likewise.
2041 (ALTIVEC_ARG_MAX_RETURN): Likewise.
2042 (RS6000_BTM_FLOAT128): Likewise.
2043 (TARGET_FLOAT128): Poison old identifiers.
2044 (OPTION_MASK_FLOAT128): Likewise.
2045 (MASK_FLOAT128): Likewise.
2046 * config/rs6000/rs6000.md (FP): Likewise.
2047 (FLOAT128): Likewise.
2048 (fix_trunc<mode>di2): Likewise.
2049 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
2050 (floatdi<mode>2): Likewise.
2051 (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
2052 (neg<mode>2, FLOAT128 iterator): Likewise.
2053 (abs<mode>2, FLOAT128 iterator): Likewise.
2054 (ieee_128bit_negative_zero): Likewise.
2055 (ieee_128bit_vsx_neg<mode>2): Likewise.
2056 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
2057 (ieee_128bit_vsx_abs<mode>2): Likewise.
2058 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
2059 (ieee_128bit_vsx_nabs<mode>2): Likewise.
2060 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
2061 (extendiftf2): Likewise.
2062 (extendifkf2): Likewise.
2063 (extendtfkf2): Likewise.
2064 (trunciftf2): Likewise.
2065 (truncifkf2): Likewise.
2066 (trunckftf2): Likewise.
2067 (trunctfif2): Likewise.
2068 (extendkftf2): Likewise.
2069 (trunctfkf2): Likewise.
2070
2071 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2072
2073 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
2074 before merging in bytes to pass down to real_from_target.
2075
2076 2016-10-07 Richard Biener <rguenther@suse.de>
2077
2078 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
2079 required hack.
2080 (substitute_and_fold_dom_walker::before_dom_children):
2081 Substitute and fold before pass specific folding to avoid
2082 feeding that with SSA names that will be later released.
2083 * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
2084 introduced by folding and visited by evaluate_stmt called during
2085 ccp_fold_stmt.
2086 (likely_value): Likewise.
2087 (evaluate_stmt): Likewise.
2088 * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
2089 (simplify_div_or_mod_using_ranges): Likewise.
2090 (simplify_min_or_max_using_ranges): Likewise.
2091 (simplify_abs_using_ranges): Likewise.
2092 (simplify_conversion_using_ranges): Likewise.
2093 (simplify_float_conversion_using_ranges): Likewise.
2094 (simplify_stmt_using_ranges): Likewise.
2095
2096 2016-10-07 Marek Polacek <polacek@redhat.com>
2097
2098 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
2099 FALLTHROUGH_LABEL_P here...
2100 (warn_implicit_fallthrough_r): ...not here.
2101
2102 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
2103
2104 PR tree-optimization/77880
2105 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
2106 necessary.
2107
2108 2016-10-07 Marek Polacek <polacek@redhat.com>
2109
2110 PR c++/77803
2111 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
2112
2113 2016-10-07 Richard Biener <rguenther@suse.de>
2114
2115 * bitmap.h: Document constraints on bitmap modification while
2116 iterating over it.
2117
2118 2016-10-07 Richard Biener <rguenther@suse.de>
2119
2120 * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
2121 * bitmap.h (bmp_iter_set): When advancing to the next element
2122 check that we didn't remove the current one.
2123 (bmp_iter_and): Likewise.
2124 (bmp_iter_and_compl): Likewise.
2125 * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
2126 we currently iterate on but keep a one-level queue.
2127 * sched-deps.c (remove_from_deps): Do not clear current bit
2128 but keep a one-level queue.
2129
2130 2016-10-07 Jakub Jelinek <jakub@redhat.com>
2131
2132 PR tree-optimization/77664
2133 * tree-ssa-reassoc.c (update_range_test): Also clear low and high
2134 for the other ranges.
2135 (optimize_range_tests_diff): Fix up formatting.
2136 (optimize_range_tests_var_bound): New function.
2137 (optimize_range_tests): Use it.
2138
2139 2016-10-07 Martin Liska <mliska@suse.cz>
2140
2141 * coverage.c (build_gcov_exit_decl): Fix priority what
2142 should be really 99.
2143
2144 2016-10-07 Richard Biener <rguenther@suse.de>
2145
2146 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
2147 vars in gimple_bind_vars but not in BLOCK_VARS.
2148
2149 2016-10-07 Richard Biener <rguenther@suse.de>
2150
2151 PR tree-optimization/77879
2152 * tree-ssa-structalias.c (handle_const_call): Properly handle
2153 NRV return slots.
2154 (handle_pure_call): Likewise.
2155
2156 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2157
2158 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
2159 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
2160 possible overflow.
2161
2162 2016-10-06 Andrew Pinski <apinski@cavium.com>
2163
2164 * config/aarch64/aarch64-cores.def: Add a comment before each
2165 set of cores.
2166
2167 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
2168
2169 PR tree-optimization/77862
2170 * tree-vrp.c (add_equivalence): Use get_value_range so that
2171 num_vr_values is checked before accessing vr_values.
2172
2173 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
2174
2175 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
2176 POINTER_TYPE_P.
2177
2178 2016-10-05 Jeff Law <law@redhat.com>
2179
2180 PR tree-optimization/71661
2181 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
2182 removal of a forwarder exposes a new natural loop.
2183
2184 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
2185
2186 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
2187 Introduce ssesuffix variable.
2188 (<mask_codefor><code><mode>3<mask_name>): Ditto.
2189 (*<code><mode>3): Ditto.
2190
2191 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
2192
2193 * postreload.c (reload_cse_simplify): Skip also USE when detecting
2194 noop move.
2195
2196 2016-10-06 Richard Biener <rguenther@suse.de>
2197
2198 PR tree-optimization/77855
2199 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
2200 instead of removing the current item while iterating over the set
2201 which is not safe.
2202
2203 2016-10-06 James Clarke <jrtc27@jrtc27.com>
2204 Eric Botcazou <ebotcazou@adacore.com>
2205
2206 PR target/77759
2207 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
2208 (classify_registers): Don't set it
2209 (function_arg_slotno): Don't initialize and test it. Tidy up.
2210
2211 2016-10-06 Richard Biener <rguenther@suse.de>
2212
2213 PR tree-optimization/77839
2214 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
2215 lattice transition.
2216
2217 2016-10-06 Martin Liska <mliska@suse.cz>
2218
2219 * gcc.c: Set -fprofile-update=atomic when profiling is
2220 enabled and -pthread is set. Warn when one combines
2221 -pthread and -fprofile-update=single for an app using
2222 profiling code.
2223
2224 2016-10-06 Martin Liska <mliska@suse.cz>
2225
2226 PR bootstrap/77788
2227 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
2228 * gimple-ssa-strength-reduction.c (slsr_process_cast):
2229 Initialize a pointer to NULL.
2230 (slsr_process_copy): Likewise.
2231 * input.c (location_get_source_line): Likewise.
2232 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
2233
2234 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
2235
2236 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
2237 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
2238 (ix86_handle_option): Deleted handle of OPT_mpcommit.
2239 * config.gcc: Deleted pcommitintrin.h
2240 * config/i386/pcommitintrin.h: Deleted file.
2241 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
2242 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
2243 detection.
2244 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
2245 __PCOMMIT__.
2246 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
2247 (PTA_PCOMMIT): Deleted define.
2248 (ix86_option_override_internal): Deleted handle of option.
2249 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
2250 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
2251 __builtin_ia32_pcommit): Deleted.
2252 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
2253 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
2254 (pcommit): Deleted instruction.
2255 * config/i386/i386.opt: Mention -mpcommit deprecation.
2256 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
2257
2258 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
2259
2260 PR target/77874
2261 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
2262 Remove wrong assert.
2263 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
2264 Use <round_constraint> as operand 1 constraint.
2265
2266 2016-10-05 Jakub Jelinek <jakub@redhat.com>
2267
2268 PR sanitizer/66343
2269 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
2270 (ubsan_instrument_float_cast): And not here.
2271
2272 PR sanitizer/66343
2273 * ubsan.c (ubsan_ids): New GTY(()) array.
2274 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
2275 instead of static local counters.
2276
2277 2016-10-05 Martin Sebor <msebor@redhat.com>
2278
2279 PR bootstrap/77819
2280 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
2281 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
2282 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
2283 (default_printf_pointer_format): Define function.
2284 * targhooks.c (linux_printf_pointer_format): Define new function.
2285 * targhooks.h (linux_printf_pointer_format): Declare.
2286 (gnu_libc_printf_pointer_format): Remove declaration.
2287
2288 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2289
2290 * fold-const.c (native_encode_real): Fix logic for selecting offset
2291 to write to when BYTES_BIG_ENDIAN.
2292
2293 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
2294
2295 * builtins.c (fold_builtin_strchr): Remove function.
2296 (fold_builtin_strrchr): Likewise.
2297 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
2298 * gimple-fold.c (target_char_cst_p): New function.
2299 (gimple_fold_builtin_strchr) Add more foldings.
2300 (gimple_fold_builtin): Add index, strrchr, rindex cases.
2301
2302 2016-10-05 Richard Biener <rguenther@suse.de>
2303
2304 PR middle-end/77863
2305 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
2306 capture ids in c-exprs.
2307
2308 2016-10-05 Richard Biener <rguenther@suse.de>
2309
2310 PR middle-end/77826
2311 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
2312 with types_match for GIMPLE code gen to handle type mismatched
2313 constants properly.
2314 (dt_operand::gen): Adjust.
2315 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
2316 and constant A.
2317
2318 2016-10-05 Richard Biener <rguenther@suse.de>
2319
2320 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
2321
2322 2016-10-05 Richard Biener <rguenther@suse.de>
2323
2324 PR middle-end/77842
2325 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
2326
2327 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
2328
2329 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
2330 version check to protect only DW_TAG_imported_module generation.
2331
2332 2016-10-05 Richard Biener <rguenther@suse.de>
2333
2334 PR middle-end/55152
2335 * match.pd (min(a,-a) -> -abs(a)): New pattern.
2336
2337 2016-10-04 Ian Lance Taylor <iant@golang.org>
2338
2339 * explow.c (allocate_dynamic_stack_space): Call
2340 do_pending_stack_adjust before handling flag_split_stack.
2341
2342 2016-10-04 David Malcolm <dmalcolm@redhat.com>
2343
2344 * genattrtab.c (make_internal_attr): Supply dummy column number to
2345 file_location ctor.
2346 (main): Likewise.
2347 * genoutput.c (init_insn_for_nothing): Likewise.
2348 * gensupport.c (add_define_attr): Likewise.
2349 * read-md.c (message_at_1): Print column number.
2350 (fatal_with_file_and_line): Likewise.
2351 (rtx_reader::read_char): Track column numbers.
2352 (rtx_reader::unread_char): Likewise.
2353 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
2354 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
2355 (rtx_reader::handle_file): Initialize m_read_md_colno.
2356 (rtx_reader::get_current_location): Supply column number to
2357 file_location ctor.
2358 * read-md.h (struct file_location): Add field "colno".
2359 (file_location::file_location): Likewise.
2360 (rtx_reader::get_colno): New accessor.
2361 (rtx_reader::m_read_md_colno): New field.
2362 (rtx_reader::m_last_line_colno): New field.
2363
2364 2016-10-04 Jakub Jelinek <jakub@redhat.com>
2365
2366 * doc/extend.texi (Java Exceptions): Remove.
2367 (java_interface): Remove.
2368
2369 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
2370
2371 PR tree-optimization/77808
2372 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
2373 and addr are different before copying points-to information.
2374
2375 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
2376
2377 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
2378 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
2379 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
2380 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
2381
2382 2016-10-04 Richard Biener <rguenther@suse.de>
2383
2384 PR tree-optimization/77399
2385 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
2386 verify the target can convert.
2387
2388 2016-10-04 Richard Biener <rguenther@suse.de>
2389
2390 PR middle-end/77833
2391 * explow.c (plus_constant): Verify the mode of the constant
2392 pool offset before calling plus_constant.
2393
2394 2016-10-04 Richard Biener <rguenther@suse.de>
2395
2396 PR middle-end/77407
2397 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
2398 type support, mark with :C.
2399 (X / -X -> -1): Mark with :C.
2400
2401 2016-10-04 Jakub Jelinek <jakub@redhat.com>
2402
2403 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
2404 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
2405 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
2406 * doc/tm.texi: Regenerated.
2407 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
2408 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
2409 * config/darwin.h (JCR_SECTION_NAME): Remove.
2410 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
2411 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
2412 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
2413 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
2414 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
2415 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
2416
2417 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2418
2419 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
2420 between "because" and "param" in dump message in call to fprintf.
2421
2422 2016-10-03 Jeff Law <law@redhat.com>
2423
2424 PR tree-optimization/71550
2425 PR tree-optimization/71403
2426 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
2427 (profitable_jump_thread_path): Also return boolean indicating if
2428 the realized path will create an irreducible loop.
2429 Remove loop depth tests from 71403.
2430 (fsm_find_control_statement_thread_paths): Remove loop depth tests
2431 from 71403. If threading will create an irreducible loop, then
2432 throw away loop iteration and related information.
2433
2434 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
2435
2436 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
2437 -Woverloaded-virtual checks for warning options.
2438 * configure: Regenerate.
2439
2440 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
2441
2442 PR preprocessor/77699
2443 * input.c (maybe_grow): Don't allocate one byte extra headroom.
2444 (get_next_line): Return false on error.
2445 (read_next_line): Removed, use get_next_line instead.
2446 (read_line_num): Don't copy the line.
2447 (location_get_source_line): Don't use static data.
2448 (selftest::test_reading_source_line): Add more test cases.
2449
2450 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2451
2452 Revert
2453 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2454
2455 * ifcvt.c (noce_try_avoid_const_materialization): New function.
2456 (noce_process_if_block): Use it.
2457
2458 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
2459
2460 * doc/invoke.texi: Update -Wint-in-bool-context.
2461
2462 2016-10-02 Jakub Jelinek <jakub@redhat.com>
2463
2464 * dwarf2out.c (output_fde, output_call_frame_info,
2465 dwarf2out_do_cfi_startproc, set_indirect_string,
2466 gen_internal_sym, output_die, output_line_info): Use
2467 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
2468 ASM_GENERATE_INTERNAL_LABEL output.
2469
2470 2016-10-01 Richard Biener <rguenther@suse.de>
2471
2472 PR middle-end/77798
2473 * genmatch.c (get_operand_type): Add operand position arg
2474 and handle COND_EXPR comparison operand with fixed boolean_type_node.
2475 (expr::gen_transform): Adjust.
2476 (dt_simplify::gen_1): Likewise.
2477
2478 2016-10-01 Jakub Jelinek <jakub@redhat.com>
2479
2480 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
2481 comments. Simplify asserts, remove unnecessary conditions.
2482 Formatting fixes.
2483 (*<code><mode>3): Likewise.
2484
2485 2016-09-30 Jakub Jelinek <jakub@redhat.com>
2486
2487 * doc/invoke.texi (-Wregister): Document.
2488
2489 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
2490
2491 * configure.ac: Split CHECKING_P into CHECKING_P and
2492 ENABLE_EXTRA_CHECKING.
2493 * configure: Regenerated.
2494 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
2495 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
2496
2497 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
2498
2499 PR other/31566
2500 * gcc.c (process_command): For @filename handling, output
2501 the correct name if the file does not exist.
2502
2503 2016-09-30 Marek Polacek <polacek@redhat.com>
2504
2505 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
2506 * config/alpha/predicates.md: Likewise.
2507
2508 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2509
2510 * ifcvt.c (noce_try_avoid_const_materialization): New function.
2511 (noce_process_if_block): Use it.
2512
2513 2016-09-30 Martin Liska <mliska@suse.cz>
2514
2515 * doc/invoke.texi: Document asan-use-after-return that
2516 it's disabled by default in runtime.
2517
2518 2016-09-30 Richard Biener <rguenther@suse.de>
2519
2520 * tree-vrp.c (intersect_ranges): If we failed to handle
2521 the intersection choose a constant singleton range if available.
2522
2523 2016-09-30 Richard Biener <rguenther@suse.de>
2524
2525 PR tree-optimization/77399
2526 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
2527 float <-> int conversions.
2528
2529 2016-09-30 Alan Modra <amodra@gmail.com>
2530
2531 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
2532
2533 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
2534
2535 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
2536 ext_level before calling CPUID with 0x80000008.
2537 Simplify xgetbv checks.
2538
2539 2016-09-29 David Malcolm <dmalcolm@redhat.com>
2540
2541 * Makefile.in (OBJS): Add print-rtl-function.o.
2542 * print-rtl-function.c: New file.
2543 * print-rtl.h (print_rtx_function): New decl.
2544
2545 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
2546
2547 PR target/77756
2548 * config/i386/cpuid.h (__get_cpuid_count): New.
2549 (__get_cpuid): Rename __level to __leaf.
2550
2551 2016-09-29 Marek Polacek <polacek@redhat.com>
2552
2553 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
2554
2555 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
2556
2557 * builtins.c (expand_builtin_memcmp): don't swap args unless
2558 result is only being compared with zero.
2559
2560 2016-09-29 Marek Polacek <polacek@redhat.com>
2561
2562 * dwarf2out.c (loc_descriptor): Add fall through comment.
2563 (add_const_value_attribute): Likewise.
2564
2565 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
2566
2567 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
2568 with "v6t2". Move "arch" attribute above "pool_range".
2569 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
2570 with "v6t2".
2571 (*thumb2_movhi_vfp): Likewise.
2572 (*arm_movhi_fp16): Likewise.
2573 (*thumb2_movhi_fp16): Likewise.
2574 (*arm_movsi_vfp): Remove "arch" attribute.
2575 (*thumb2_movsi_vfp): Likewise.
2576
2577 2016-09-29 Martin Liska <mliska@suse.cz>
2578
2579 * doc/extend.texi: Remove limitation of Objective C for
2580 __attribute__((constructor)) and __attribute__((destructor)).
2581
2582 2016-09-29 Richard Biener <rguenther@suse.de>
2583
2584 PR tree-optimization/77768
2585 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2586 Handle stores to readonly memory when removing redundant stores.
2587
2588 2016-09-29 Richard Biener <rguenther@suse.de>
2589
2590 PR middle-end/77407
2591 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
2592 X / -X -> -1 simplifications.
2593
2594 2016-09-29 Richard Biener <rguenther@suse.de>
2595
2596 PR middle-end/55152
2597 * match.pd: Add max(a,-a) -> abs(a) pattern.
2598 * tree-ssa-phiopt.c (minmax_replacement): Disable for
2599 HONOR_SIGNED_ZEROS types.
2600
2601 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
2602
2603 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
2604 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
2605
2606 2016-09-29 Richard Biener <rguenther@suse.de>
2607
2608 * tree-vrp.c (set_defs_to_varying): New helper avoiding
2609 writing to vr_const_varying.
2610 (vrp_initialize): Call it.
2611 (vrp_visit_stmt): Likewise.
2612 (evrp_dom_walker::before_dom_children): Likewise.
2613
2614 2016-09-29 Richard Biener <rguenther@suse.de>
2615
2616 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
2617 constructors with vector elements.
2618
2619 2016-09-29 Richard Biener <rguenther@suse.de>
2620
2621 PR tree-optimization/77768
2622 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
2623 with stores to a place we know has a constant value.
2624
2625 2016-09-29 Alan Modra <amodra@gmail.com>
2626
2627 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
2628 * doc/invoke.texi: Document it.
2629 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
2630 (rs6000_passes_float): Comment.
2631 (rs6000_passes_long_double): New static var.
2632 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
2633 (init_cumulative_args): Set up to emit fp .gnu_attribute for
2634 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
2635 to include fp values returned in vectors.
2636 Set rs6000_passes_long_double.
2637 (rs6000_function_arg_advance_1): Likewise for function args.
2638 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
2639 and SPE. Emit long double tag value too.
2640 (rs6000_opt_vars): Add gnu-attr.
2641 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
2642 * configure: Regenerate.
2643 * config.in: Regenerate.
2644
2645 2016-09-28 Jakub Jelinek <jakub@redhat.com>
2646
2647 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
2648 of 0 < x.
2649 (format_floating, format_string, format_directive,
2650 get_destination_size, pass_sprintf_length::handle_gimple_call):
2651 Likewise.
2652
2653 2016-09-28 Jakub Jelinek <jakub@redhat.com>
2654
2655 * gimple-ssa-sprintf.c: Fix comment formatting.
2656 (format_integer): Use is_gimple_assign.
2657 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
2658 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
2659 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
2660 (pass_sprintf_length::execute): Use is_gimple_call.
2661
2662 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
2663
2664 * gimple-fold.c (gimple_fold_builtin): After failing to fold
2665 strchr, also try the generic folding.
2666
2667 2016-09-28 Martin Sebor <msebor@redhat.com>
2668
2669 PR c/77762
2670 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
2671 Fix typos.
2672
2673 2016-09-28 Martin Sebor <msebor@redhat.com>
2674
2675 PR middle-end/77683
2676 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
2677 length modifier is not expected.
2678 (format_floating): Ignore l length modifier and fail gracefuly
2679 when it isn't one of the other expected ones.
2680
2681 2016-09-28 Martin Sebor <msebor@redhat.com>
2682
2683 PR bootstrap/77753
2684 * varasm.c (assemble_addr_to_section): Increase local buffer size.
2685
2686 2016-09-27 Richard Biener <rguenther@suse.de>
2687
2688 * dwarf2out.c (cu_die_list): New global.
2689 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
2690 main_comp_unit_die to cu_die_list if we created it.
2691 Move break_out_includes ...
2692 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
2693 the cu_die_list.
2694
2695 2016-09-28 Richard Biener <rguenther@suse.de>
2696
2697 * dwarf2out.c (struct die_struct): Add removed flag.
2698 (lookup_type_die): If the DIE is marked as removed, clear
2699 TYPE_SYMTAB_DIE and return NULL.
2700 (lookup_decl_die): If the DIE is marked as removed, remove it
2701 from the hash and return NULL.
2702 (mark_removed): New helper.
2703 (prune_unused_types_prune): Call it for removed DIEs.
2704 (gen_subprogram_die): Move the premark_used_types call to after
2705 DIEs for the functions scopes are generated.
2706 (process_scope_var): Do not re-create pruned types or type decls.
2707 Make sure to also re-parent type decls.
2708 (dwarf2out_finish): Move unused type pruning and debug_types
2709 handling ...
2710 (dwarf2out_early_finish): ... here.
2711
2712 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
2713
2714 * config/arc/arc-c.c: New file.
2715 * config/arc/arc-c.def: Likewise.
2716 * config/arc/t-arc: Likewise.
2717 * config.gcc: Include arc-c.o as c and cpp object.
2718 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
2719 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
2720 arc_cpu_cpp_builtins.
2721
2722 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
2723
2724 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
2725 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
2726
2727 2016-09-28 Nathan Sidwell <nathan@acm.org>
2728
2729 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
2730 printing.
2731
2732 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
2733
2734 PR tree-optimization/61056
2735 * gimple-fold.c (gimple_fold_builtin_strchr):
2736 New function to optimize strchr (s, 0) to strlen.
2737 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
2738
2739 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
2740
2741 PR tree-optimization/77724
2742 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
2743 Add tree_fits_shwi_p check.
2744
2745 2016-09-27 Jakub Jelinek <jakub@redhat.com>
2746
2747 * auto-inc-dec.c (try_merge): Remove break after return.
2748 * cselib.c (autoinc_split): Likewise.
2749 * explow.c (promote_mode): Likewise.
2750 * fixed-value.c (fixed_arithmetic): Likewise.
2751 * hsa.c (hsa_internal_fn::get_arity): Likewise.
2752 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
2753 * trans-mem.c (get_attrs_for): Likewise.
2754 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
2755 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
2756 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
2757 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
2758 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
2759 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
2760 * config/cris/cris.c (cris_op_str): Likewise.
2761 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
2762 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
2763
2764 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
2765
2766 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
2767 IFN_GOACC_REDUCTION_CODES): New.
2768 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
2769 ifn_goacc_reduction_kind): Use them.
2770 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
2771 of internal functions, when applicable.
2772
2773 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
2774
2775 * config/mips/constraints.md (d): Fix documentation.
2776 * doc/md.texi (Machine Constraints): Update accordingly.
2777
2778 2016-09-27 Richard Biener <rguenther@suse.de>
2779
2780 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
2781 cur_line_info_table initialization ...
2782 (dwarf2out_assembly_start): ... here.
2783
2784 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
2785
2786 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
2787 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
2788 (*thumb2_movhi_vfp): Likewise.
2789 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
2790 template. Expand predicable attribute to mark VMOV.F16 as not
2791 predicable. Add "arch" attribute.
2792 (*thumb2_movhi_fp16): Likewise.
2793 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
2794 (*thumb2_movsi_vfp): Add "arch" attribute.
2795
2796 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
2797
2798 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
2799 VAR_DECL string.
2800
2801 2016-09-27 Marek Polacek <polacek@redhat.com>
2802
2803 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
2804 comment.
2805
2806 * config/c6x/c6x.h: Adjust fall through comment.
2807 * config/sh/sh.c (final_prescan_insn): Likewise.
2808 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
2809 (visium_expand_fp_cstore): Likewise.
2810
2811 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2812
2813 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
2814 expected by -Wimplicit-fallthrough.
2815 (thumb1_size_rtx_costs): Likewise.
2816 (thumb2_reorg): Likewise.
2817 (tls_mentioned_p): Add "Fall through" comment.
2818 (thumb2_reorg): Likewise.
2819 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
2820 comment form expected by -Wimplicit-fallthrough.
2821
2822 2016-09-27 Martin Liska <mliska@suse.cz>
2823
2824 PR gcov-profile/46266
2825 * input.h (RESERVED_LOCATION_P): New macro.
2826 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
2827 instread of comparison with UNKNOWN_LOCATION.
2828
2829 2016-09-27 Richard Biener <rguenther@suse.de>
2830
2831 PR tree-optimization/77745
2832 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2833 When removing redundant stores make sure to check compatibility
2834 of the TBAA state for downstream accesses.
2835 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
2836 value-numbering virtual operands for store matches.
2837
2838 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
2839
2840 PR target/51244
2841 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
2842 movrt patterns. Match them before anything else in the SET case.
2843
2844 2016-09-27 Martin Liska <mliska@suse.cz>
2845
2846 PR gcov-profile/7970
2847 PR gcov-profile/16855
2848 PR gcov-profile/44779
2849 * coverage.c (build_gcov_exit_decl): New function.
2850 (coverage_obj_init): Call the function and generate __gcov_exit
2851 destructor.
2852 * doc/gcov.texi: Document when __gcov_exit function is called.
2853
2854 2016-09-27 Marek Polacek <polacek@redhat.com>
2855
2856 PR bootstrap/77751
2857 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
2858 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
2859 -Wno-error instead of -Wno-implicit-fallthrough.
2860
2861 2016-09-27 Martin Liska <mliska@suse.cz>
2862
2863 PR bootstrap/77749
2864 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
2865
2866 2016-09-27 Jakub Jelinek <jakub@redhat.com>
2867
2868 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
2869 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
2870 comments. Remove break after return.
2871 (ix86_fp_compare_code_to_integer, has_dispatch,
2872 ix86_simd_clone_usable): Remove break after return.
2873
2874 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
2875
2876 PR rlt-optimization/77714
2877 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
2878 REG_EQUAL note.
2879
2880 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
2881
2882 PR ipa/77677
2883 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
2884 extract_range_from_unary_expr to convert value_range.
2885 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
2886 (extract_range_from_unary_expr): This.
2887 * tree-vrp.h (extract_range_from_unary_expr): Declare.
2888
2889 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
2890
2891 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
2892
2893 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2894
2895 * config/i386/i386.c (ix86_print_operand)
2896 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
2897 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
2898 (epilogue_renumber): Likewise.
2899
2900 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
2901
2902 PR middle-end/77719
2903 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
2904 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
2905
2906 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
2907
2908 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
2909 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
2910 is_mm_seq_cst, is_mm_sync): Move to ...
2911 * memmodel.h: This. New file.
2912 * builtins.c: Include memmodel.h.
2913 * optabs.c: Likewise.
2914 * tsan.c: Likewise.
2915 * config/aarch64/aarch64.c: Likewise.
2916 * config/alpha/alpha.c: Likewise.
2917 * config/arm/arm.c: Likewise.
2918 * config/i386/i386.c: Likewise.
2919 * config/ia64/ia64.c: Likewise.
2920 * config/mips/mips.c: Likewise.
2921 * config/rs6000/rs6000.c: Likewise.
2922 * config/sparc/sparc.c: Likewise.
2923 * genconditions.c: Include memmodel.h in generated file.
2924 * genemit.c: Likewise.
2925 * genoutput.c: Likewise.
2926 * genpeep.c: Likewise.
2927 * genpreds.c: Likewise.
2928 * genrecog.c: Likewise.
2929
2930 2016-09-26 David Malcolm <dmalcolm@redhat.com>
2931
2932 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
2933 "c" instead when parsing characters. Move operand parsing into...
2934 (read_rtx_operand): ...this new function, renaming "i" to "idx",
2935 and tightening the scope of various locals.
2936
2937 2016-09-26 Liu Hao <lh_mouse@126.com>
2938
2939 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
2940
2941 2016-09-26 Marek Polacek <polacek@redhat.com>
2942
2943 * system.h: Use __has_attribute to check whether the fallthrough
2944 attribute is supported.
2945
2946 2016-09-26 Marek Polacek <polacek@redhat.com>
2947
2948 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
2949 gimple_call_internal_p.
2950 * ipa-split.c (find_return_bb): Likewise.
2951 (execute_split_functions): Likewise.
2952 * omp-low.c (dump_oacc_loop_part): Likewise.
2953 (oacc_loop_xform_head_tail): Likewise.
2954 * predict.c (predict_loops): Likewise.
2955 * sanopt.c (pass_sanopt::execute): Likewise.
2956 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
2957 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
2958 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
2959 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
2960 (expand_ifn_va_arg): Likewise.
2961 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
2962 (optimize_mask_stores): Likewise.
2963 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
2964 (vect_transform_stmt): Likewise.
2965 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
2966 * tsan.c (instrument_memory_accesses): Likewise.
2967
2968 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2969 Alexander Monakov <amonakov@ispras.ru>
2970
2971 * regrename.c (rename_chains): Check
2972 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
2973 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
2974 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2975
2976 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2977
2978 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
2979 (s390_sched_score): Likewise.
2980
2981 2016-09-26 Martin Liska <mliska@suse.cz>
2982
2983 * doc/gcov.texi: Update program output of gcov tool.
2984
2985 2016-09-26 Martin Liska <mliska@suse.cz>
2986
2987 PR gcov-profile/23332
2988 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
2989 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
2990 * value-prof.c (dump_histogram_value): Do not handle
2991 HIST_TYPE_CONST_DELTA.
2992 (stream_in_histogram_value): Likewise.
2993 (gimple_find_values_to_profile): Likewise.
2994 * value-prof.h (enum hist_type): Likewise.
2995
2996 2016-09-26 Martin Liska <mliska@suse.cz>
2997
2998 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
2999 from default sanitize recover values.
3000 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
3001 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
3002 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
3003 consistent.
3004 * opts.c (finish_options): Do a generic loop over options
3005 that can be recovered.
3006 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
3007 SANITIZE_RETURN.
3008 (common_handle_option): Likewise.
3009 * opts.h: Declare can_recover to sanitizer_opts_s.
3010
3011 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
3012
3013 * target.def(elf_flags_numeric): Change documentation to present tense.
3014 * doc/tm.texi: Regenerate.
3015
3016 2016-09-26 Marek Polacek <polacek@redhat.com>
3017
3018 PR c/7652
3019 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
3020 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
3021 -Wno-switch-fallthrough.
3022 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
3023 (expand_builtin): Likewise.
3024 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
3025 * convert.c (convert_to_real_1): Likewise.
3026 (convert_to_integer_1): Likewise.
3027 * final.c (output_alternate_entry_point): Likewise.
3028 * genattrtab.c (make_canonical): Likewise.
3029 (write_test_expr): Likewise.
3030 * genpreds.c (validate_exp): Likewise.
3031 * gimple-ssa-strength-reduction.c
3032 (find_candidates_dom_walker::before_dom_children): Likewise.
3033 * godump.c (go_format_type): Likewise.
3034 * reload1.c (elimination_effects): Likewise.
3035 * resource.c (mark_referenced_resources): Likewise.
3036 (mark_set_resources): Likewise.
3037 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
3038 * varasm.c (output_addressed_constants): Likewise.
3039
3040 2016-09-26 Marek Polacek <polacek@redhat.com>
3041
3042 PR c/7652
3043 * common.opt (Wimplicit-fallthrough): New option.
3044 * doc/extend.texi: Document statement attributes and the fallthrough
3045 attribute.
3046 * doc/invoke.texi: Document -Wimplicit-fallthrough.
3047 * gimple.h (gimple_call_internal_p): New function.
3048 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
3049 (struct label_entry): New struct.
3050 (find_label_entry): New function.
3051 (case_label_p): New function.
3052 (collect_fallthrough_labels): New function.
3053 (last_stmt_in_scope): New function.
3054 (should_warn_for_implicit_fallthrough): New function.
3055 (warn_implicit_fallthrough_r): New function.
3056 (maybe_warn_implicit_fallthrough): New function.
3057 (expand_FALLTHROUGH_r): New function.
3058 (expand_FALLTHROUGH): New function.
3059 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
3060 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
3061 (gimplify_label_expr): New function.
3062 (gimplify_case_label_expr): Set location.
3063 (gimplify_expr): Call gimplify_label_expr.
3064 * internal-fn.c (expand_FALLTHROUGH): New function.
3065 * internal-fn.def (FALLTHROUGH): New internal function.
3066 * langhooks.c (lang_GNU_OBJC): New function.
3067 * langhooks.h (lang_GNU_OBJC): Declare.
3068 * system.h (gcc_fallthrough): Define.
3069 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
3070 * tree.h (FALLTHROUGH_LABEL_P): Define.
3071
3072 2016-09-26 Richard Biener <rguenther@suse.de>
3073
3074 * dwarf2out.c (stripattributes): Remove unused function.
3075 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
3076 Push dwarf_split_debug_info handling into init_sections_and_labels.
3077 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
3078 (DEBUG_MACRO_SECTION_FLAGS): Remove.
3079 (debug_macinfo_section_name): New global.
3080 (output_macinfo): Use debug_macinfo_section_name.
3081 (init_sections_and_labels): Split out section and label generation
3082 from dwarf2out_init. Set debug_macinfo_section_name.
3083 (dwarf2out_init): Move text section label generation and emission
3084 to ...
3085 (dwarf2out_assembly_start): ... here.
3086 (dwarf2out_finish): Call init_sections_and_labels before DWARF
3087 output starts.
3088
3089 2016-09-26 Richard Biener <rguenther@suse.de>
3090
3091 PR debug/77692
3092 * cgraphunit.c (analyze_functions): Before early removing
3093 global vars calls the late_global_decl debug handler mark
3094 the variable as readonly.
3095
3096 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
3097
3098 PR target/51244
3099 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
3100 (sh_rtx_costs): Handle SET of movt and movrt patterns.
3101 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
3102 declare new overloads.
3103 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
3104 operand.
3105
3106 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3107
3108 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
3109 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
3110
3111 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
3112
3113 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
3114 * configure: Regenerate.
3115
3116 2016-09-24 Marek Polacek <polacek@redhat.com>
3117
3118 PR c/77490
3119 * doc/invoke.texi: Document -Wbool-operation.
3120
3121 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3122
3123 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
3124 * config/rs6000/rs6000.c (expand_block_compare): New function used by
3125 cmpmemsi pattern to do builtin expansion of memcmp ().
3126 (compute_current_alignment): Add helper function for
3127 expand_block_compare used to compute alignment as the compare proceeds.
3128 (select_block_compare_mode): Used by expand_block_compare to select
3129 the mode used for reading the next chunk of bytes in the compare.
3130 (do_load_for_compare): Used by expand_block_compare to emit the load
3131 insns for the compare.
3132 (rs6000_emit_dot_insn): Moved this function to avoid a forward
3133 reference from expand_block_compare ().
3134 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
3135 prototype for this function.
3136 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
3137 target option for controlling how much code inline expansion of
3138 memcmp() will be allowed to generate.
3139
3140 2016-09-23 Jakub Jelinek <jakub@redhat.com>
3141
3142 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
3143 hook_bool_mode_false, hook_bool_mode_true,
3144 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
3145 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
3146 hook_bool_const_rtx_insn_const_rtx_insn_true,
3147 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
3148 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
3149 hook_bool_const_tree_hwi_hwi_const_tree_false,
3150 hook_bool_const_tree_hwi_hwi_const_tree_true,
3151 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
3152 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
3153 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
3154 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
3155 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
3156 hook_bool_const_tree_true, hook_bool_tree_tree_false,
3157 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
3158 hook_bool_rtx_insn_true, hook_bool_rtx_false,
3159 hook_bool_uintp_uintp_false,
3160 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
3161 hook_rtx_tree_int_null, hook_uint_mode_0,
3162 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
3163 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
3164 hook_constcharptr_const_rtx_insn_null,
3165 hook_constcharptr_const_tree_const_tree_null,
3166 hook_constcharptr_int_const_tree_null,
3167 hook_constcharptr_int_const_tree_const_tree_null,
3168 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
3169 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
3170 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
3171
3172 * vec.h (vNULL): Extend comment to say = vNULL initialization
3173 isn't needed for static vars.
3174
3175 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
3176 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
3177 = vNULL initialization of file scope vec.
3178 * passes.c (pass_tab, enabled_pass_uid_range_tab,
3179 disabled_pass_uid_range_tab): Likewise.
3180 * haifa-sched.c (sched_luids, h_i_d): Likewise.
3181 * tree-chkp-opt.c (check_infos): Likewise.
3182 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
3183
3184 * vec.h (vnull::operator vec): Add constexpr keyword for
3185 C++11 and later.
3186
3187 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
3188
3189 PR tree-optimization/77654
3190 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
3191 to duplicate_ssa_name_ptr_info.
3192
3193 2016-09-23 David Malcolm <dmalcolm@redhat.com>
3194
3195 PR preprocessor/77672
3196 * input.c (selftest::test_lexer_string_locations_simple): Update
3197 test to expect location information of the terminator character
3198 at the location of the final closing quote.
3199 (selftest::test_lexer_string_locations_hex): Likewise.
3200 (selftest::test_lexer_string_locations_oct): Likewise.
3201 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
3202 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
3203 (selftest::test_lexer_string_locations_ucn4): Likewise.
3204 (selftest::test_lexer_string_locations_ucn8): Likewise.
3205 (selftest::test_lexer_string_locations_u8): Likewise.
3206 (selftest::test_lexer_string_locations_utf8_source): Likewise.
3207 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
3208 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
3209 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
3210 (selftest::test_lexer_string_locations_macro): Likewise.
3211 (selftest::test_lexer_string_locations_long_line): Likewise.
3212
3213 2016-09-23 Richard Biener <rguenther@suse.de>
3214
3215 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
3216 virtual definition to virtual use if the call devirtualizes
3217 to a const or pure function.
3218 (visit_use): Also visit calls we can devirtualize to a
3219 const or pure function.
3220
3221 2016-09-23 Richard Biener <rguenther@suse.de>
3222
3223 PR tree-optimization/77697
3224 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
3225 signal error if we have sth ternary or unhandled.
3226
3227 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3228
3229 * config/arm/arm_neon.h (vabd_f16): New.
3230 (vabdq_f16): New.
3231 (vabs_f16): New.
3232 (vabsq_f16): New.
3233 (vadd_f16): New.
3234 (vaddq_f16): New.
3235 (vcage_f16): New.
3236 (vcageq_f16): New.
3237 (vcagt_f16): New.
3238 (vcagtq_f16): New.
3239 (vcale_f16): New.
3240 (vcaleq_f16): New.
3241 (vcalt_f16): New.
3242 (vcaltq_f16): New.
3243 (vceq_f16): New.
3244 (vceqq_f16): New.
3245 (vceqz_f16): New.
3246 (vceqzq_f16): New.
3247 (vcge_f16): New.
3248 (vcgeq_f16): New.
3249 (vcgez_f16): New.
3250 (vcgezq_f16): New.
3251 (vcgt_f16): New.
3252 (vcgtq_f16): New.
3253 (vcgtz_f16): New.
3254 (vcgtzq_f16): New.
3255 (vcle_f16): New.
3256 (vcleq_f16): New.
3257 (vclez_f16): New.
3258 (vclezq_f16): New.
3259 (vclt_f16): New.
3260 (vcltq_f16): New.
3261 (vcltz_f16): New.
3262 (vcltzq_f16): New.
3263 (vcvt_f16_s16): New.
3264 (vcvt_f16_u16): New.
3265 (vcvt_s16_f16): New.
3266 (vcvt_u16_f16): New.
3267 (vcvtq_f16_s16): New.
3268 (vcvtq_f16_u16): New.
3269 (vcvtq_s16_f16): New.
3270 (vcvtq_u16_f16): New.
3271 (vcvta_s16_f16): New.
3272 (vcvta_u16_f16): New.
3273 (vcvtaq_s16_f16): New.
3274 (vcvtaq_u16_f16): New.
3275 (vcvtm_s16_f16): New.
3276 (vcvtm_u16_f16): New.
3277 (vcvtmq_s16_f16): New.
3278 (vcvtmq_u16_f16): New.
3279 (vcvtn_s16_f16): New.
3280 (vcvtn_u16_f16): New.
3281 (vcvtnq_s16_f16): New.
3282 (vcvtnq_u16_f16): New.
3283 (vcvtp_s16_f16): New.
3284 (vcvtp_u16_f16): New.
3285 (vcvtpq_s16_f16): New.
3286 (vcvtpq_u16_f16): New.
3287 (vcvt_n_f16_s16): New.
3288 (vcvt_n_f16_u16): New.
3289 (vcvtq_n_f16_s16): New.
3290 (vcvtq_n_f16_u16): New.
3291 (vcvt_n_s16_f16): New.
3292 (vcvt_n_u16_f16): New.
3293 (vcvtq_n_s16_f16): New.
3294 (vcvtq_n_u16_f16): New.
3295 (vfma_f16): New.
3296 (vfmaq_f16): New.
3297 (vfms_f16): New.
3298 (vfmsq_f16): New.
3299 (vmax_f16): New.
3300 (vmaxq_f16): New.
3301 (vmaxnm_f16): New.
3302 (vmaxnmq_f16): New.
3303 (vmin_f16): New.
3304 (vminq_f16): New.
3305 (vminnm_f16): New.
3306 (vminnmq_f16): New.
3307 (vmul_f16): New.
3308 (vmul_lane_f16): New.
3309 (vmul_n_f16): New.
3310 (vmulq_f16): New.
3311 (vmulq_lane_f16): New.
3312 (vmulq_n_f16): New.
3313 (vneg_f16): New.
3314 (vnegq_f16): New.
3315 (vpadd_f16): New.
3316 (vpmax_f16): New.
3317 (vpmin_f16): New.
3318 (vrecpe_f16): New.
3319 (vrecpeq_f16): New.
3320 (vrnd_f16): New.
3321 (vrndq_f16): New.
3322 (vrnda_f16): New.
3323 (vrndaq_f16): New.
3324 (vrndm_f16): New.
3325 (vrndmq_f16): New.
3326 (vrndn_f16): New.
3327 (vrndnq_f16): New.
3328 (vrndp_f16): New.
3329 (vrndpq_f16): New.
3330 (vrndx_f16): New.
3331 (vrndxq_f16): New.
3332 (vrsqrte_f16): New.
3333 (vrsqrteq_f16): New.
3334 (vrecps_f16): New.
3335 (vrecpsq_f16): New.
3336 (vrsqrts_f16): New.
3337 (vrsqrtsq_f16): New.
3338 (vsub_f16): New.
3339 (vsubq_f16): New.
3340
3341 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3342
3343 * config.gcc (extra_headers): Add arm_fp16.h
3344 * config/arm/arm_fp16.h: New.
3345 * config/arm/arm_neon.h: Include "arm_fp16.h".
3346
3347 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3348
3349 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
3350 variants).
3351 (vmulf): New (v8hf, v4hf variants).
3352 (vfma): New (v8hf, v4hf variants).
3353 (vfms): New (v8hf, v4hf variants).
3354 (vsub): New (v8hf, v4hf variants).
3355 (vcage): New (v8hf, v4hf variants).
3356 (vcagt): New (v8hf, v4hf variants).
3357 (vcale): New (v8hf, v4hf variants).
3358 (vcalt): New (v8hf, v4hf variants).
3359 (vceq): New (v8hf, v4hf variants).
3360 (vcgt): New (v8hf, v4hf variants).
3361 (vcge): New (v8hf, v4hf variants).
3362 (vcle): New (v8hf, v4hf variants).
3363 (vclt): New (v8hf, v4hf variants).
3364 (vceqz): New (v8hf, v4hf variants).
3365 (vcgez): New (v8hf, v4hf variants).
3366 (vcgtz): New (v8hf, v4hf variants).
3367 (vcltz): New (v8hf, v4hf variants).
3368 (vclez): New (v8hf, v4hf variants).
3369 (vabd): New (v8hf, v4hf variants).
3370 (vmaxf): New (v8hf, v4hf variants).
3371 (vmaxnm): New (v8hf, v4hf variants).
3372 (vminf): New (v8hf, v4hf variants).
3373 (vminnm): New (v8hf, v4hf variants).
3374 (vpmaxf): New (v4hf variant).
3375 (vpminf): New (v4hf variant).
3376 (vpadd): New (v4hf variant).
3377 (vrecps): New (v8hf, v4hf variants).
3378 (vrsqrts): New (v8hf, v4hf variants).
3379 (vabs): New (v8hf, v4hf variants).
3380 (vneg): New (v8hf, v4hf variants).
3381 (vrecpe): New (v8hf, v4hf variants).
3382 (vrnd): New (v8hf, v4hf variants).
3383 (vrnda): New (v8hf, v4hf variants).
3384 (vrndm): New (v8hf, v4hf variants).
3385 (vrndn): New (v8hf, v4hf variants).
3386 (vrndp): New (v8hf, v4hf variants).
3387 (vrndx): New (v8hf, v4hf variants).
3388 (vrsqrte): New (v8hf, v4hf variants).
3389 (vmul_lane): Add v4hf and v8hf variants.
3390 (vmul_n): Add v4hf and v8hf variants.
3391 (vext): New (v8hf, v4hf variants).
3392 (vcvts): New (v8hi, v4hi variants).
3393 (vcvts): New (v8hf, v4hf variants).
3394 (vcvtu): New (v8hi, v4hi variants).
3395 (vcvtu): New (v8hf, v4hf variants).
3396 (vcvts_n): New (v8hf, v4hf variants).
3397 (vcvtu_n): New (v8hi, v4hi variants).
3398 (vcvts_n): New (v8hi, v4hi variants).
3399 (vcvtu_n): New (v8hf, v4hf variants).
3400 (vbsl): New (v8hf, v4hf variants).
3401 (vcvtas): New (v8hf, v4hf variants).
3402 (vcvtau): New (v8hf, v4hf variants).
3403 (vcvtms): New (v8hf, v4hf variants).
3404 (vcvtmu): New (v8hf, v4hf variants).
3405 (vcvtns): New (v8hf, v4hf variants).
3406 (vcvtnu): New (v8hf, v4hf variants).
3407 (vcvtps): New (v8hf, v4hf variants).
3408 (vcvtpu): New (v8hf, v4hf variants).
3409
3410 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3411
3412 * config/arm/arm-builtins.c (hf_UP): New.
3413 (si_UP): New.
3414 (vfp_builtin_data): New. Update comment.
3415 (enum arm_builtins): Include "arm_vfp_builtins.def".
3416 (ARM_BUILTIN_VFP_PATTERN_START): New.
3417 (arm_init_vfp_builtins): New.
3418 (arm_init_builtins): Add arm_init_vfp_builtins.
3419 (arm_expand_vfp_builtin): New.
3420 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
3421 long line.
3422 * config/arm/arm_vfp_builtins.def: New file.
3423 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
3424 (arm-builtins.o): Likewise.
3425
3426 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
3427
3428 PR ipa/77677
3429 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
3430 from constant while creating value range.
3431
3432 2016-09-23 Renlin Li <renlin.li@arm.com>
3433
3434 * ira.c (ira): Move ira_use_lra_p initialization code to ...
3435 (ira_init_once): Here.
3436
3437 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
3438 Jakub Jelinek <jakub@redhat.com>
3439
3440 * hooks.h (hook_uint_uintp_false): Rename to...
3441 (hook_bool_uint_uintp_false): ... this.
3442 * hooks.c (hook_uint_uintp_false): Rename to...
3443 (hook_bool_uint_uintp_false): ... this.
3444 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
3445 instead of hook_uint_uintp_false.
3446
3447 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3448
3449 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
3450 (arm_init_builtins): Move body of a loop to the standalone
3451 function arm_init_neon_builtin.
3452 (arm_expand_neon_builtin_1): New. Update comment. Function body
3453 moved from arm_neon_builtin with some white-space fixes.
3454 (arm_expand_neon_builtin): Move code into the standalone function
3455 arm_expand_neon_builtin_1.
3456
3457 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3458
3459 * config/arm/iterators.md (VCVTHI): New.
3460 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
3461 (NEON_VAGLTE): New.
3462 (VFM_LANE_AS): New.
3463 (VH_CVTTO): New.
3464 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
3465 (V_HALF): Add V4HF. Fix white-space.
3466 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
3467 (V_s_elem): Likewise.
3468 (V_sz_elem): Fix white-space.
3469 (V_elem_ch): Likewise.
3470 (VH_elem_ch): New.
3471 (scalar_mul_constraint): Add V8HF and V4HF.
3472 (Is_float_mode): Fix white-space.
3473 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
3474 (q): Add HF. Fix white-space.
3475 (float_sup): New.
3476 (float_SUP): New.
3477 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
3478 (neon_vfm_lane_as): New.
3479 * config/arm/neon.md (add<mode>3_fp16): New.
3480 (sub<mode>3_fp16): New.
3481 (mul<mode>3add<mode>_neon): New.
3482 (fma<VH:mode>4_intrinsic): New.
3483 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
3484 (fmsub<VH:mode>4_intrinsic): New.
3485 (<absneg_str><mode>2): New.
3486 (neon_v<absneg_str><mode>): New.
3487 (neon_v<fp16_rnd_str><mode>): New.
3488 (neon_vrsqrte<mode>): New.
3489 (neon_vpaddv4hf): New.
3490 (neon_vadd<mode>): New.
3491 (neon_vsub<mode>): New.
3492 (neon_vmulf<mode>): New.
3493 (neon_vfma<VH:mode>): New.
3494 (neon_vfms<VH:mode>): New.
3495 (neon_vc<cmp_op><mode>): New.
3496 (neon_vc<cmp_op><mode>_fp16insn): New
3497 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
3498 (neon_vca<cmp_op><mode>): New.
3499 (neon_vca<cmp_op><mode>_fp16insn): New.
3500 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
3501 (neon_vc<cmp_op>z<mode>): New.
3502 (neon_vabd<mode>): New.
3503 (neon_v<maxmin>f<mode>): New.
3504 (neon_vp<maxmin>fv4hf: New.
3505 (neon_<fmaxmin_op><mode>): New.
3506 (neon_vrecps<mode>): New.
3507 (neon_vrsqrts<mode>): New.
3508 (neon_vrecpe<mode>): New (VH variant).
3509 (neon_vdup_lane<mode>_internal): New.
3510 (neon_vdup_lane<mode>): New.
3511 (neon_vcvt<sup><mode>): New (VCVTHI variant).
3512 (neon_vcvt<sup><mode>): New (VH variant).
3513 (neon_vcvt<sup>_n<mode>): New (VH variant).
3514 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
3515 (neon_vcvt<vcvth_op><sup><mode>): New.
3516 (neon_vmul_lane<mode>): New.
3517 (neon_vmul_n<mode>): New.
3518 * config/arm/unspecs.md (UNSPEC_VCALE): New
3519 (UNSPEC_VCALT): New.
3520 (UNSPEC_VFMA_LANE): New.
3521 (UNSPECS_VFMS_LANE): New.
3522
3523 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
3524
3525 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
3526 ("*extzv<mode><clobbercc_or_nocc>"):
3527 Correct a typo in a comment.
3528 Merged patterns.
3529 ("*insv<mode>_zEC12", "*insv<mode>_z10")
3530 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
3531 ("*insv<mode>_zEC12_appendbitsleft")
3532 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
3533 ("*insv<mode>_z10_appendbitsleft"): Ditto.
3534 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
3535 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
3536 Provide pattern with operands switched.
3537 ("*pre_z10_extv<mode>"):
3538 Use new subst patterns.
3539 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
3540 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
3541 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
3542 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
3543 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
3544 ("*<risbg_n>_sidi_ior_and_lshiftrt")
3545 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
3546 New patterns.
3547 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
3548 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
3549 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
3550 on zEC12.
3551 ("SINT"): New mode_iterator with SI, HI, QI.
3552 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
3553 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
3554 duplication.
3555
3556 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
3557
3558 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
3559 new interface of s390_contiguous_bitmask_p.
3560 ("contiguous_bitmask_nowrap_operand"): New predicate.
3561 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
3562 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
3563 of s390_contiguous_bitmask_p.
3564 ("NxxDw"): Rename NxxDq constraint to NxxDw.
3565 ("NxxSw"): New constraint.
3566 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
3567 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
3568 interface.
3569 (s390_contiguous_bitmask_nowrap_p): Export.
3570 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
3571 former s390_contiguous_bitmask_p.
3572 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
3573 detect contiguous bit ranges with wraparound. Change signature to
3574 return START and END position instead of POS and LENGTH.
3575 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
3576 ranges with wraparound.
3577 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
3578 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
3579 Adapt to new signature of s390_contiguous_bitmask_p.
3580
3581 2016-09-23 Bin Cheng <bin.cheng@arm.com>
3582
3583 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
3584 (create_intersect_range_checks): New.
3585 (vect_create_cond_for_alias_checks): Call above function.
3586
3587 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3588
3589 * config/arm/iterators.md (Code iterators): Fix some white-space
3590 in the comments.
3591 (GLTE): New.
3592 (ABSNEG): New
3593 (FCVT): Moved from vfp.md.
3594 (VCVT_HF_US_N): New.
3595 (VCVT_SI_US_N): New.
3596 (VCVT_HF_US): New.
3597 (VCVTH_US): New.
3598 (FP16_RND): New.
3599 (absneg_str): New.
3600 (FCVTI32typename): Moved from vfp.md.
3601 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
3602 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
3603 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
3604 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
3605 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
3606 (vcvth_op): New.
3607 (fp16_rnd_str): New.
3608 (fp16_rnd_insn): New.
3609 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
3610 (UNSPEC_VCVT_HF_U_N): New.
3611 (UNSPEC_VCVT_SI_S_N): New.
3612 (UNSPEC_VCVT_SI_U_N): New.
3613 (UNSPEC_VCVTH_S): New.
3614 (UNSPEC_VCVTH_U): New.
3615 (UNSPEC_VCVTA_S): New.
3616 (UNSPEC_VCVTA_U): New.
3617 (UNSPEC_VCVTM_S): New.
3618 (UNSPEC_VCVTM_U): New.
3619 (UNSPEC_VCVTN_S): New.
3620 (UNSPEC_VCVTN_U): New.
3621 (UNSPEC_VCVTP_S): New.
3622 (UNSPEC_VCVTP_U): New.
3623 (UNSPEC_VCVTP_S): New.
3624 (UNSPEC_VCVTP_U): New.
3625 (UNSPEC_VRND): New.
3626 (UNSPEC_VRNDA): New.
3627 (UNSPEC_VRNDI): New.
3628 (UNSPEC_VRNDM): New.
3629 (UNSPEC_VRNDN): New.
3630 (UNSPEC_VRNDP): New.
3631 (UNSPEC_VRNDX): New.
3632 * config/arm/vfp.md (<absneg_str>hf2): New.
3633 (neon_vabshf): New.
3634 (neon_v<fp16_rnd_str>hf): New.
3635 (neon_vrndihf): New.
3636 (addhf3): New.
3637 (subhf3): New.
3638 (divhf3): New.
3639 (mulhf3): New.
3640 (*mulsf3neghf_vfp): New.
3641 (*negmulhf3_vfp): New.
3642 (*mulsf3addhf_vfp): New.
3643 (*mulhf3subhf_vfp): New.
3644 (*mulhf3neghfaddhf_vfp): New.
3645 (*mulhf3neghfsubhf_vfp): New.
3646 (fmahf4): New.
3647 (neon_vfmahf): New.
3648 (fmsubhf4_fp16): New.
3649 (neon_vfmshf): New.
3650 (*fnmsubhf4): New.
3651 (*fnmaddhf4): New.
3652 (neon_vsqrthf): New.
3653 (neon_vrsqrtshf): New.
3654 (FCVT): Move to iterators.md.
3655 (FCVTI32typename): Likewise.
3656 (neon_vcvth<sup>hf): New.
3657 (neon_vcvth<sup>si): New.
3658 (neon_vcvth<sup>_nhf_unspec): New.
3659 (neon_vcvth<sup>_nhf): New.
3660 (neon_vcvth<sup>_nsi_unspec): New.
3661 (neon_vcvth<sup>_nsi): New.
3662 (neon_vcvt<vcvth_op>h<sup>si): New.
3663 (neon_<fmaxmin_op>hf): New.
3664
3665 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
3666
3667 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
3668 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
3669 ("*insv<mode>_zEC12_appendbitsleft")
3670 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
3671 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
3672
3673 2016-09-23 Jakub Jelinek <jakub@redhat.com>
3674
3675 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
3676 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
3677 construct values without normalization.
3678 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
3679 static local lhs_ops to vNULL.
3680
3681 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3682 Jiong Wang <jiong.wang@arm.com>
3683
3684 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
3685 available when FP16 instructions are available.
3686 (output_move_vfp): Add support for 16-bit data moves.
3687 (arm_validize_comparison): Fix some white-space. Support HFmode
3688 by conversion to SFmode.
3689 * config/arm/arm.md (truncdfhf2): Fix a comment.
3690 (extendhfdf2): Likewise.
3691 (cstorehf4): New.
3692 (movsicc): Fix some white-space.
3693 (movhfcc): New.
3694 (movsfcc): Fix some white-space.
3695 (*cmovhf): New.
3696 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
3697 instructions are available.
3698 (*thumb2_movhi_vfp): Likewise.
3699 (*arm_movhi_fp16): New.
3700 (*thumb2_movhi_fp16): New.
3701 (*movhf_vfp_fp16): New.
3702 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
3703 (*movhf_vfp): Likewise.
3704 (extendhfsf2): Enable when VFP FP16 instructions are available.
3705 (truncsfhf2): Enable when VFP FP16 instructions are available.
3706
3707 2016-09-23 Martin Liska <mliska@suse.cz>
3708
3709 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
3710
3711 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3712
3713 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
3714 V4HF modes.
3715 (arm_evpc_neon_vtrn): Likewise.
3716 (arm_evpc_neon_vrev): Likewise.
3717 (arm_evpc_neon_vext): Likewise.
3718 * config/arm/arm_neon.h (vbsl_f16): New.
3719 (vbslq_f16): New.
3720 (vdup_n_f16): New.
3721 (vdupq_n_f16): New.
3722 (vdup_lane_f16): New.
3723 (vdupq_lane_f16): New.
3724 (vext_f16): New.
3725 (vextq_f16): New.
3726 (vmov_n_f16): New.
3727 (vmovq_n_f16): New.
3728 (vrev64_f16): New.
3729 (vrev64q_f16): New.
3730 (vtrn_f16): New.
3731 (vtrnq_f16): New.
3732 (vuzp_f16): New.
3733 (vuzpq_f16): New.
3734 (vzip_f16): New.
3735 (vzipq_f16): New.
3736 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
3737 (vdup_lane): New (v8hf, v4hf variants).
3738 (vext): New (v8hf, v4hf variants).
3739 (vbsl): New (v8hf, v4hf variants).
3740 * config/arm/iterators.md (VDQWH): New.
3741 (VH): New.
3742 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
3743 (Scalar_mul_8_16): Fix white-space.
3744 (Is_d_reg): Add V4HF and V8HF.
3745 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
3746 (neon_vdup_lane<mode>): New.
3747 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
3748 (*neon_vtrn<mode>_insn): Likewise.
3749 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
3750 (*neon_vzip<mode>_insn): Likewise
3751 (neon_vuzp<mode>_internal): Likewise.
3752 (*neon_vuzp<mode>_insn): Likewise
3753 * config/arm/vec-common.md (vec_perm_const<mode>): New.
3754
3755 2016-09-23 Jiong Wang <jiong.wang@arm.com>
3756 Matthew Wahab <matthew.wahab@arm.com>
3757
3758 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
3759 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
3760 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
3761 available. Also fix some white-space.
3762 * config/arm/vfp.md (*arm_movhi_vfp): New.
3763 (*thumb2_movhi_vfp): New.
3764
3765 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3766
3767 * config/arm/arm-c.c (arm_cpu_builtins): Define
3768 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
3769 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
3770
3771 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3772
3773 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
3774 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
3775 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
3776 arm_v8_2a_fp16_neon_hw.
3777 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
3778 arm_v8_2a_neon.
3779
3780 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3781
3782 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
3783 arm_fp16_alternative_ok and arm_fp16_none_ok.
3784
3785 2016-09-23 Martin Liska <mliska@suse.cz>
3786
3787 * ipa-icf.c (sem_variable::merge): Replace adress with address.
3788
3789 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
3790
3791 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
3792 ("armv8.2-a"): New.
3793 ("armv8.2-a+fp16"): New.
3794 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
3795 (FL2_FP16INST): New.
3796 (FL2_FOR_ARCH8_2A): New.
3797 * config/arm/arm-tables.opt: Regenerate.
3798 * config/arm/arm.c (arm_arch8_2): New.
3799 (arm_fp16_inst): New.
3800 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
3801 for incompatible fp16-format settings.
3802 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
3803 (TARGET_NEON_FP16INST): New.
3804 (arm_arch8_2): Declare.
3805 (arm_fp16_inst): Declare.
3806 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
3807 march=armv8.2-a and march=armv8.2-a+fp16.
3808 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
3809 and armv8.2-a+fp16.
3810 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
3811 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
3812
3813 2016-09-23 Martin Liska <mliska@suse.cz>
3814
3815 * doc/extend.texi: Remove fused-madd from i386 target options.
3816
3817 2016-09-23 Martin Liska <mliska@suse.cz>
3818
3819 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
3820 Handle movbe.
3821
3822 2016-09-23 Martin Liska <mliska@suse.cz>
3823
3824 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
3825 Handle crc32.
3826
3827 2016-09-23 Martin Liska <mliska@suse.cz>
3828
3829 PR target/71652
3830 * config/i386/i386.c (ix86_option_override_internal): Change
3831 signature and return false when there's an error related to
3832 arch string.
3833 (release_options_strings): New function.
3834 (ix86_valid_target_attribute_tree): Call the function.
3835
3836 2016-09-23 Jakub Jelinek <jakub@redhat.com>
3837
3838 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
3839 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
3840 (gen_hsa_ctor_assignment): Likewise.
3841 * print-tree.c (print_node): Likewise.
3842 * tree-dump.c (dequeue_and_dump): Likewise.
3843 * tree-sra.c (sra_modify_constructor_assign): Likewise.
3844 * expr.c (store_constructor): Likewise.
3845 * fold-const.c (operand_equal_p): Likewise.
3846 * tree-pretty-print.c (dump_generic_node): Likewise.
3847 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
3848 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
3849
3850 2016-09-23 Richard Biener <rguenther@suse.de>
3851
3852 * hooks.h (hook_uint_uintp_false): Declare.
3853
3854 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3855
3856 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
3857 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
3858
3859 2016-09-22 Martin Sebor <msebor@redhat.com>
3860
3861 PR target/77676
3862 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
3863 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
3864 (target_int_min): Correct computation.
3865 (format_integer): Use long long as the argument for the ll length
3866 modifier.
3867 (format_floating): Use target_int_max().
3868 (get_string_length): Same.
3869 (format_string): Avoid setting the bounded flag for strings
3870 of unknown length.
3871 (try_substitute_return_value): Avoid setting range info when
3872 the result isn't bounded.
3873 * varasm.c (assemble_name): Increase buffer size.
3874
3875 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
3876 Terry Guo <terry.guo@arm.com>
3877
3878 * target.def (elf_flags_numeric): New target hook.
3879 * targhooks.h (default_asm_elf_flags_numeric): New.
3880 * varasm.c (default_asm_elf_flags_numeric): New.
3881 (default_elf_asm_named_section): Use new target hook.
3882 * config/arm/arm.opt (mpure-code): New.
3883 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
3884 * config/arm/arm.c (arm_asm_init_sections): Add section
3885 attribute to default text section if -mpure-code.
3886 (arm_option_check_internal): Diagnose use of option with
3887 non supported targets and/or options.
3888 (arm_asm_elf_flags_numeric): New.
3889 (arm_function_section): New.
3890 (arm_elf_section_type_flags): New.
3891 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
3892 for -mpure-code.
3893 * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
3894 * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
3895
3896 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
3897
3898 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
3899
3900 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3901
3902 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
3903 * rtl.h: Adjust prototype.
3904
3905 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3906
3907 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
3908 (prev_active_insn): Likewise.
3909 (active_insn_p): Likewise.
3910 * rtl.h: Adjust prototypes.
3911 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
3912 * config/arc/arc.md: Likewise.
3913 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
3914 (branch_needs_nop_p): Likewise.
3915 (use_skip_p): Likewise.
3916 * config/sh/sh.c (gen_block_redirect): Likewise.
3917 (split_branches): Likewise.
3918 * reorg.c (optimize_skip): Likewise.
3919 (fill_simple_delay_slots): Likewise.
3920 (fill_slots_from_thread): Likewise.
3921 (relax_delay_slots): Likewise.
3922 * resource.c (mark_target_live_regs): Likewise.
3923
3924 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3925
3926 * config/cris/cris.c (cris_asm_output_case_end): Change argument
3927 type to rtx_insn *.
3928 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
3929 (prev_nonnote_nondebug_insn): Likewise.
3930 * config/cris/cris-protos.h: Adjust prototype.
3931 * rtl.h: Likewise.
3932 * jump.c (rtx_renumbered_equal_p): Adjust.
3933
3934 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3935
3936 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
3937 * rtl.h: Adjust prototype.
3938 * config/sh/sh.md: Adjust.
3939 * dwarf2out.c (add_var_loc_to_decl): Likewise.
3940
3941 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3942
3943 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
3944 (prev_nondebug_insn): Likewise.
3945 * loop-doloop.c (doloop_condition_get): Likewise.
3946 * rtl.h: Adjust prototype.
3947 * cfgloop.h: Likewise.
3948
3949 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3950
3951 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
3952 (prev_nonnote_insn): Likewise.
3953 * jump.c (reversed_comparison_code_parts): Likewise.
3954 (reversed_comparison): Likewise.
3955 * rtl.h: Adjust prototypes.
3956 * config/arc/arc.md: Adjust.
3957 * cse.c (find_comparison_args): Likewise.
3958 * reorg.c (redundant_insn): Change return type to rtx_insn *.
3959 (fix_reg_dead_note): Change argument type to rtx_insn *.
3960 (delete_prior_computation): Likewise.
3961 (delete_computation): Likewise.
3962 (fill_slots_from_thread): Adjust.
3963 (relax_delay_slots): Likewise.
3964 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3965 (simplify_relational_operation_1): Likewise.
3966 (simplify_ternary_operation): Likewise.
3967
3968 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3969
3970 * config/arc/arc-protos.h (arc_label_align): Change type of
3971 variables from rtx to rtx_insn *.
3972 * config/arc/arc.c (arc_label_align): Likewise.
3973 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
3974 * config/bfin/bfin.c (workaround_speculation): Likewise.
3975 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
3976 (find_last_same_clock): Likewise.
3977 (reorg_split_calls): Likewise.
3978 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
3979 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
3980 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
3981 (same_cmp_following_p): Likewise.
3982 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
3983 (same_cmp_following_p): Likwise.
3984 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
3985 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
3986 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
3987 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
3988 (rl78_alloc_physical_registers_cmp): Likewise.
3989 (rl78_alloc_physical_registers_umul): Likewise.
3990 (rl78_calculate_death_notes): Likewise.
3991 * config/s390/s390-protos.h (s390_label_align): Likewise.
3992 * config/s390/s390.c (s390_label_align): Likewise.
3993 * config/sh/sh.c (barrier_align): Likewise.
3994 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
3995 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
3996 (emit_cbcond_nop): Likewise.
3997
3998 2016-09-22 Martin Liska <mliska@suse.cz>
3999
4000 PR ipa/77653
4001 * ipa-icf.c (sem_variable::merge): Yield merge operation if
4002 alias address matters, not necessarily address of original.
4003
4004 2016-09-22 Richard Biener <rguenther@suse.de>
4005
4006 PR middle-end/77697
4007 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
4008 fold fails.
4009
4010 2016-09-22 Richard Biener <rguenther@suse.de>
4011
4012 PR middle-end/77677
4013 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
4014 from constant folding results.
4015 (gimple_resimplify2): Likewise.
4016 (gimple_resimplify3): Likewise.
4017
4018 2016-09-22 Richard Biener <rguenther@suse.de>
4019
4020 PR middle-end/77678
4021 * expr.c (expand_expr_real_1): Guard array access against negative
4022 offset.
4023
4024 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4025
4026 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
4027 of MPFR_RNDN.
4028 (format_floating): Likewise.
4029
4030 2016-09-22 Jakub Jelinek <jakub@redhat.com>
4031
4032 PR fortran/77665
4033 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
4034 for all IFN_GOMP_SIMD_* internal fns, not just for
4035 IFN_GOMP_SIMD_ORDERED_*.
4036
4037 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
4038
4039 PR target/77670
4040 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
4041 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
4042 instructions when you want to invert the test.
4043 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
4044 correct order for XXSEL.
4045 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
4046 for using XSCMP{EQ,GT,GE}DP.
4047
4048 2016-09-21 David Malcolm <dmalcolm@redhat.com>
4049
4050 * genconstants.c (main): Introduce noop_reader and convert call
4051 to read_md_files to a method call.
4052 * genenums.c (main): Likewise.
4053 * genmddeps.c (main): Likewise.
4054 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
4055 rtx_reader_ptr->get_top_level_filename ().
4056 (write_tm_preds_h): Likewise.
4057 (write_insn_preds_c): Likewise.
4058 * gensupport.c (class gen_reader): New subclass of rtx_reader.
4059 (rtx_handle_directive): Convert to...
4060 (gen_reader::handle_unknown_directive): ...this.
4061 (init_rtx_reader_args_cb): Convert return type from bool to
4062 rtx_reader *. Create a gen_reader instance, using it for the
4063 call to read_md_files. Return it if no errors occur.
4064 (init_rtx_reader_args): Convert return type from bool to
4065 rtx_reader *.
4066 * gensupport.h (init_rtx_reader_args_cb): Likewise.
4067 (init_rtx_reader_args_cb): Likewise.
4068 * read-md.c (struct file_name_list): Move to class rtx_reader.
4069 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
4070 (read_md_filename): Delete in favor of
4071 rtx_reader::m_read_md_filename.
4072 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
4073 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
4074 (base_dir): Delete in favor of rtx_reader::m_base_dir.
4075 (first_dir_md_include): Delete in favor of
4076 rtx_reader::m_first_dir_md_include.
4077 (last_dir_md_include_ptr): Delete in favor of
4078 rtx_reader::m_last_dir_md_include_ptr.
4079 (max_include_len): Delete.
4080 (rtx_reader_ptr): New.
4081 (fatal_with_file_and_line): Use get_filename and get_lineno
4082 accessors of rtx_reader_ptr.
4083 (require_char_ws): Likewise.
4084 (rtx_reader::read_char): New method, based on ::read_char.
4085 (rtx_reader::unread_char): New method, based on ::unread_char.
4086 (read_escape): Use get_filename and get_lineno accessors of
4087 rtx_reader_ptr.
4088 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
4089 (read_string): Use get_filename and get_lineno accessors of
4090 rtx_reader_ptr.
4091 (rtx_reader::rtx_reader): New ctor.
4092 (rtx_reader::~rtx_reader): New dtor.
4093 (handle_include): Convert from a function to...
4094 (rtx_reader::handle_include): ...this method, converting
4095 handle_directive from a callback to a virtual function.
4096 (handle_file): Likewise, converting to...
4097 (rtx_reader::handle_file): ...this method.
4098 (handle_toplevel_file): Likewise, converting to...
4099 (rtx_reader::handle_toplevel_file): ...this method.
4100 (rtx_reader::get_current_location): New method.
4101 (parse_include): Convert from a function to...
4102 (rtx_reader::add_include_path): ...this method, dropping redundant
4103 update to unused max_include_len.
4104 (read_md_files): Convert from a function to...
4105 (rtx_reader::read_md_files): ...this method, converting
4106 handle_directive from a callback to a virtual function.
4107 (noop_reader::handle_unknown_directive): New method.
4108 * read-md.h (directive_handler_t): Delete this typedef.
4109 (in_fname): Delete.
4110 (read_md_file): Delete.
4111 (read_md_lineno): Delete.
4112 (read_md_filename): Delete.
4113 (class rtx_reader): New class.
4114 (rtx_reader_ptr): New decl.
4115 (class noop_reader): New subclass of rtx_reader.
4116 (read_char): Reimplement in terms of rtx_reader::read_char.
4117 (unread_char): Reimplement in terms of rtx_reader::unread_char.
4118 (read_md_files): Delete.
4119 * read-rtl.c (read_rtx_code): Update for deletion of globals
4120 read_md_filename and read_md_lineno.
4121
4122 2016-09-21 Jason Merrill <jason@redhat.com>
4123
4124 * input.h (from_macro_definition_at): New.
4125
4126 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
4127
4128 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
4129
4130 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
4131
4132 PR tree-optimization/77550
4133 * tree-vect-stmts.c (create_array_ref): Change parameters.
4134 (get_group_alias_ptr_type): New function.
4135 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
4136
4137 2016-09-21 Marek Polacek <polacek@redhat.com>
4138
4139 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
4140 Add falls through comment.
4141
4142 2016-09-21 Richard Biener <rguenther@suse.de>
4143
4144 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
4145 (replace_child): Likewise.
4146 (remove_child_TAG): Adjust.
4147 (move_marked_base_types): Likewise.
4148 (prune_unused_types_prune): Clear die_sib of removed children.
4149
4150 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
4151
4152 PR target/77326
4153 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
4154 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
4155
4156 2016-09-21 Richard Biener <rguenther@suse.de>
4157
4158 PR tree-optimization/77648
4159 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
4160 with complex RHS.
4161 (make_transitive_closure_constraints): Adjust comment.
4162 (make_any_offset_constraints): New function.
4163 (handle_rhs_call): Make sure to first expand a pointer to all
4164 subfields before transitively closing it.
4165 (handle_const_call): Likewise. Properly expand returned
4166 pointers as well.
4167 (handle_pure_call): Likewise.
4168
4169 2016-09-21 Richard Biener <rguenther@suse.de>
4170 Jakub Jelinek <jakub@redhat.com>
4171
4172 PR tree-optimization/77621
4173 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
4174 group at non-vectorizable stmts.
4175
4176 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
4177
4178 PR tree-optimization/72835
4179 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
4180 (make_new_ssa_for_all_defs): Likewise.
4181 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
4182
4183 2016-09-20 Martin Sebor <msebor@redhat.com>
4184
4185 PR middle-end/49905
4186 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
4187 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
4188 * config/linux.c (gnu_libc_printf_pointer_format): New function.
4189 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
4190 * config/sol2.c (solaris_printf_pointer_format): New function.
4191 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
4192 options.
4193 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
4194 * doc/tm.texi: Regenerate.
4195 * gimple-fold.h (get_range_strlen): New function.
4196 (get_maxval_strlen): Declare existing function.
4197 * gimple-fold.c (get_range_strlen): Add arguments and compute both
4198 maximum and minimum.
4199 (get_range_strlen): Define overload.
4200 (get_maxval_strlen): Adjust.
4201 * gimple-ssa-sprintf.c: New file and pass.
4202 * passes.def (pass_sprintf_length): Add new pass.
4203 * targhooks.h (default_printf_pointer_format): Declare new function.
4204 (gnu_libc_printf_pointer_format): Same.
4205 (solaris_libc_printf_pointer_format): Same.
4206 * targhooks.c (default_printf_pointer_format): Define new function.
4207 * tree-pass.h (make_pass_sprintf_length): Declare new function.
4208 * print-tree.c: Increase buffer size.
4209
4210 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
4211
4212 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
4213
4214 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
4215
4216 * common.opt: New option -fipa-vrp.
4217 * ipa-cp.c (ipa_get_vr_lat): New.
4218 (ipcp_vr_lattice::print): Likewise.
4219 (print_all_lattices): Call ipcp_vr_lattice::print.
4220 (ipcp_vr_lattice::meet_with): New.
4221 (ipcp_vr_lattice::meet_with_1): Likewise.
4222 (ipcp_vr_lattice::top_p): Likewise.
4223 (ipcp_vr_lattice::bottom_p): Likewsie.
4224 (ipcp_vr_lattice::set_to_bottom): Likewise.
4225 (set_all_contains_variable): Call VR set_to_bottom.
4226 (initialize_node_lattices): Init VR lattices.
4227 (propagate_vr_accross_jump_function): New.
4228 (propagate_constants_accross_call): Call
4229 propagate_vr_accross_jump_function.
4230 (ipcp_store_vr_results): New.
4231 (ipcp_driver): Handle VR.
4232 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
4233 (ipa_set_jf_unknown): Likewise.
4234 (ipa_compute_jump_functions_for_edge): Likewise.
4235 (ipa_node_params_t::duplicate): Likewise.
4236 (ipa_write_jump_function): Likewise.
4237 (ipa_read_jump_function): Likewise.
4238 (write_ipcp_transformation_info): Likewise.
4239 (read_ipcp_transformation_info): Likewise.
4240 (ipcp_update_vr): New.
4241 (ipcp_transform_function): Handle VR.
4242 * ipa-prop.h (struct ipa_vr): New.
4243 * cgraph.c: Include tree-vrp.h.
4244 * cgraphunit.c: Likewise.
4245 * ipa-utils.c: Likewise.
4246 * ipa.c: Likewise.
4247 * opts.c: Likewise.
4248 * toplev.c: Likewise.
4249 * ipa-devirt.c: Likewise.
4250 * ipa-inline-transform.c: Likewise.
4251 * ipa-inline.c: Likewise.
4252 * ipa-profile.c: Likewise.
4253
4254 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
4255
4256 * doc/invoke.texi: Document -fdump-tree-evrp.
4257 * passes.def: Define new pass_early_vrp.
4258 * timevar.def: Define new TV_TREE_EARLY_VRP.
4259 * tree-pass.h (make_pass_early_vrp): New.
4260 * tree-ssa-propagate.c: Make replace_uses_in non static.
4261 * tree-ssa-propagate.h: Export replace_uses_in.
4262 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
4263 (extract_range_from_assert): Factor out
4264 extract_range_for_var_from_comparison_expr.
4265 (vrp_initialize_lattice): New.
4266 (vrp_initialize): Factor out vrp_initialize_lattice.
4267 (vrp_valueize): Fix it to reject complex value ranges.
4268 (vrp_free_lattice): New.
4269 (evrp_dom_walker::before_dom_children): Likewise.
4270 (evrp_dom_walker::after_dom_children): Likewise.
4271 (evrp_dom_walker::push_value_range): Likewise.
4272 (evrp_dom_walker::pop_value_range): Likewise.
4273 (execute_early_vrp): Likewise.
4274 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
4275 (make_pass_early_vrp): New.
4276
4277 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
4278
4279 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
4280 instead of exact_log2.
4281
4282 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
4283
4284 PR target/77621
4285 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
4286 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
4287 (ix86_add_stmt_cost): Penalize DFmode vector operations
4288 for !TARGET_VECTORIZE_DOUBLE.
4289
4290 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
4291
4292 * doc/invoke.texi (Warning Options): Simplify language.
4293 (Optimize Options): Complete sentence.
4294
4295 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
4296
4297 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
4298 early_finish hook.
4299
4300 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
4301
4302 PR target/71395
4303 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
4304 inits on power8 and above, use the VMRGEW instruction instead of a
4305 permute.
4306
4307 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
4308 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
4309 initialization.
4310
4311 2016-09-20 Tamar Christina <tamar.christina@arm.com>
4312
4313 * config/aarch64/arm_neon.h
4314 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
4315 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
4316 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
4317
4318 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4319
4320 * config/var/vax.h (ELIMINABLE_REGS): Define.
4321 (INITIAL_ELIMINATION_OFFSET): Define.
4322
4323 2016-09-20 Jakub Jelinek <jakub@redhat.com>
4324
4325 PR middle-end/77624
4326 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
4327 cast to void * if the cast is from some other pointer type.
4328
4329 2016-09-20 Richard Biener <rguenther@suse.de>
4330
4331 PR tree-optimization/77646
4332 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
4333 a VDEF.
4334
4335 2016-09-20 Tamar Christina <tamar.christina@arm.com>
4336
4337 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
4338 attributes to all inlined functions and make them extern.
4339
4340 2016-09-20 Richard Biener <rguenther@suse.de>
4341
4342 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
4343 hook.
4344 * debug.c (do_nothing_debug_hooks): Adjust.
4345 * dbxout.c (dbx_debug_hooks): Likewise.
4346 * sdbout.c (sdb_debug_hooks): Likewise.
4347 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
4348 (dwarf2out_finish): Move producer, filename and
4349 path annotation ...
4350 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
4351 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
4352
4353 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
4354
4355 PR c++/77434
4356 * doc/invoke.texi: Document -Wint-in-bool-context.
4357
4358 PR middle-end/77421
4359 * dwarf2out.c (output_loc_operands): Fix an assertion.
4360
4361 2016-09-19 Joseph Myers <joseph@codesourcery.com>
4362
4363 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
4364 (CR_DECIMAL_DIG): New macro.
4365
4366 2016-09-19 Joseph Myers <joseph@codesourcery.com>
4367
4368 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
4369 element.
4370
4371 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
4372
4373 PR rtl-optimization/77416
4374 * lra-remat.c (operand_to_remat): Process hard coded insn
4375 registers.
4376
4377 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4378
4379 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
4380 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
4381
4382 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
4383
4384 * target.def (lra_p): Wordsmithing.
4385 * doc/tm.texi: Regenerate.
4386
4387 2016-09-19 Jakub Jelinek <jakub@redhat.com>
4388 Jan Hubicka <jh@suse.cz>
4389
4390 PR target/77587
4391 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
4392 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
4393 Call ultimate_alias_target just once, not up to 4 times.
4394
4395 2016-09-19 Richard Biener <rguenther@suse.de>
4396
4397 * dwarf2out.c (early_dwarf_finished): New global.
4398 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
4399 is false.
4400 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
4401 if called from LTO exit early.
4402 (dwarf2out_late_global_decl): When being during the early
4403 debug phase do not add locations but only const value attributes.
4404 Adjust the way we generate early DIEs for LTO.
4405
4406 2016-09-19 Richard Biener <rguenther@suse.de>
4407
4408 PR middle-end/77605
4409 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
4410 proper niter to bound the loops.
4411
4412 2016-09-19 Richard Biener <rguenther@suse.de>
4413
4414 PR tree-optimization/77514
4415 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
4416 search for folded stmt.
4417
4418 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
4419
4420 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
4421 * tree-pass.h (make_pass_early_thread_jumps): Declare.
4422 * tree-ssa-threadbackward.c (fsm_find_thread_path,
4423 fsm_find_thread_path, profitable_jump_thread_path,
4424 fsm_find_control_statement_thread_paths,
4425 find_jump_threads_backwards): Add speed_p parameter.
4426 (pass_data_early_thread_jumps): New pass.
4427 (make_pass_early_thread_jumps): New function.
4428
4429 2016-09-17 Andreas Schwab <schwab@suse.de>
4430
4431 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
4432 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
4433
4434 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
4435
4436 * recog.c (rest_of_handle_split_after_reload): Delete.
4437 (pass_split_after_reload::gate): New method.
4438 (pass_split_after_reload::execute): Call split_all_insns directly.
4439
4440 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
4441
4442 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
4443 parameters for functions taking long long arguments.
4444
4445 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4446
4447 PR target/77613
4448 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
4449 splat with truncate.
4450
4451 2016-09-16 Jason Merrill <jason@redhat.com>
4452
4453 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
4454 New.
4455 * hwint.c (exact_log2): Use pow2p_hwi.
4456 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
4457 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
4458 * builtins.c (get_object_alignment_2, get_object_alignment)
4459 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
4460 least_bit_hwi.
4461 * calls.c (compute_argument_addresses, store_one_arg): Use
4462 least_bit_hwi.
4463 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
4464 * combine.c (force_to_mode): Use least_bit_hwi.
4465 (contains_muldiv, find_split_point, combine_simplify_rtx)
4466 (simplify_if_then_else, simplify_set, force_to_mode)
4467 (if_then_else_cond, simplify_and_const_int_1)
4468 (simplify_compare_const): Use pow2p_hwi.
4469 * cse.c (fold_rtx): Use pow2p_hwi.
4470 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
4471 Use least_bit_hwi.
4472 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
4473 (init_expmed_one_conv): Use pow2p_hwi.
4474 * expr.c (is_aligning_offset): Use pow2p_hwi.
4475 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
4476 (fold_binary_loc): Use pow2p_hwi.
4477 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
4478 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
4479 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
4480 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
4481 Use least_bit_hwi.
4482 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
4483 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
4484 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
4485 * omp-low.c (oacc_loop_fixed_partitions)
4486 (oacc_loop_auto_partitions): Use least_bit_hwi.
4487 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
4488 * stor-layout.c (place_field): Use least_bit_hwi.
4489 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
4490 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
4491 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
4492 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
4493 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
4494 * tree-vect-data-refs.c (vect_analyze_group_access_1)
4495 (vect_grouped_store_supported, vect_grouped_load_supported)
4496 (vect_permute_load_chain, vect_shift_permute_load_chain)
4497 (vect_transform_grouped_load): Use pow2p_hwi.
4498 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
4499 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
4500 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
4501 least_bit_hwi.
4502 * tsan.c (instrument_expr): Use least_bit_hwi.
4503 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
4504
4505 2016-09-16 Andreas Schwab <schwab@suse.de>
4506
4507 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
4508 OFFSET, not offset.
4509 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
4510
4511 2016-09-16 Jakub Jelinek <jakub@redhat.com>
4512
4513 PR target/77526
4514 * combine.c (rest_of_handle_combine): If any edges have been purged,
4515 free dominators if available.
4516
4517 2016-09-16 Jakub Jelinek <jakub@redhat.com>
4518 Eric Botcazou <ebotcazou@adacore.com>
4519
4520 PR middle-end/77594
4521 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
4522 through into expand_addsub_overflow after expand_neg_overflow.
4523
4524 2016-09-15 David Malcolm <dmalcolm@redhat.com>
4525
4526 * diagnostic-show-locus.c
4527 (selftest::test_fixit_insert_containing_newline): New function.
4528 (selftest::test_fixit_replace_containing_newline): New function.
4529 (selftest::diagnostic_show_locus_c_tests): Call the above.
4530
4531 2016-09-15 Bin Cheng <bin.cheng@arm.com>
4532
4533 PR tree-optimization/77503
4534 * tree-vect-loop.c (vectorizable_reduction): Record reduction
4535 code for CONST_COND_REDUCTION at analysis stage and use it at
4536 transform stage.
4537 * tree-vectorizer.h (struct _stmt_vec_info): New field.
4538 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
4539 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
4540 field.
4541
4542 2016-09-15 Richard Biener <rguenther@suse.de>
4543
4544 PR middle-end/77544
4545 * fold-const.c (split_tree): Do not split constant ~X.
4546
4547 2016-09-15 Jakub Jelinek <jakub@redhat.com>
4548
4549 PR rtl-optimization/77425
4550 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
4551 is NULL.
4552
4553 PR middle-end/77475
4554 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
4555 use %qs instead of %s where desirable, use argument instead of arg in
4556 the diagnostic wording, add list of supported strategies and
4557 spellcheck hint.
4558 (ix86_option_override_internal): Emit target("m...") instead of
4559 option("m...") in the diagnostic. Use %qs instead of %s in invalid
4560 -march/-mtune option diagnostic. Add list of supported arches/tunings
4561 and spellcheck hint. Remove prefix, suffix and sw variables, use
4562 main_args_p ? "..." : "..." in diagnostics to make translation
4563 possible.
4564
4565 2016-09-15 Richard Biener <rguenther@suse.de>
4566
4567 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
4568 extra offset argument.
4569 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
4570 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
4571 to reflect new offset parameter.
4572 * doc/tm.texi: Regenerate.
4573 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
4574 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
4575 offset argument.
4576 (darwin_asm_output_dwarf_offset): Likewise.
4577 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
4578 argument.
4579 (darwin_asm_output_dwarf_offset): Pass offset argument through.
4580 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
4581 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
4582
4583 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
4584
4585 PR fortran/72743
4586 * ipa-icf.c (set_alias_uids): New function.
4587 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
4588 all the merged variable's referring aliases.
4589
4590 2016-09-15 Richard Biener <rguenther@suse.de>
4591
4592 PR tree-optimization/77514
4593 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
4594 only forced_stmts sequence.
4595
4596 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
4597
4598 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
4599 * cfgexpand.c (update_alias_info_with_stack_vars): Use
4600 FOR_EACH_SSA_NAME to iterate over SSA variables.
4601 (pass_expand::execute): Likewise.
4602 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
4603 * tree-cfg.c (dump_function_to_file): Likewise.
4604 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
4605 (update_ssa): Likewise.
4606 * tree-ssa-alias.c (dump_alias_info): Likewise.
4607 * tree-ssa-ccp.c (ccp_finalize): Likewise.
4608 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
4609 (create_outofssa_var_map): Likewise.
4610 (coalesce_ssa_name): Likewise.
4611 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
4612 * tree-ssa-pre.c (compute_avail): Likewise.
4613 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
4614 (scc_vn_restore_ssa_info): Likewise.
4615 (free_scc_vn): Likwise.
4616 (run_scc_vn): Likewise.
4617 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
4618 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
4619 * tree-ssa-copy.c (fini_copy_prop): Likewise.
4620 * tree-ssa.c (verify_ssa): Likewise.
4621
4622 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
4623
4624 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
4625 and mips64r2 as default 32-bit and 64-bit architectures.
4626 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
4627 as default 32-bit and 64-bit architectures.
4628
4629 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
4630
4631 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
4632 of succ edge.
4633
4634 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
4635
4636 * target.def (lra_p): Change commentary (for the manual) for the
4637 new default.
4638 * doc/tm.texi: Regenerate.
4639
4640 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
4641
4642 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
4643 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
4644 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
4645 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
4646
4647 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
4648
4649 * targhooks.c (default_lra_p): Return true instead of false.
4650
4651 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
4652
4653 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
4654 hook_bool_void_false.
4655 * config/avr/avr.c: Ditto.
4656 * config/bfin/bfin.c: Ditto.
4657 * config/c6x/c6x.c: Ditto.
4658 * config/cr16/cr16.c: Ditto.
4659 * config/cris/cris.c: Ditto.
4660 * config/epiphany/epiphany.c: Ditto.
4661 * config/fr30/fr30.c: Ditto.
4662 * config/frv/frv.c: Ditto.
4663 * config/h8300/h8300.c: Ditto.
4664 * config/ia64/ia64.c: Ditto.
4665 * config/iq2000/iq2000.c: Ditto.
4666 * config/lm32/lm32.c: Ditto.
4667 * config/m32c/m32c.c: Ditto.
4668 * config/m32r/m32r.c: Ditto.
4669 * config/m68k/m68k.c: Ditto.
4670 * config/mcore/mcore.c: Ditto.
4671 * config/microblaze/microblaze.c: Ditto.
4672 * config/mmix/mmix.c: Ditto.
4673 * config/mn10300/mn10300.c: Ditto.
4674 * config/moxie/moxie.c: Ditto.
4675 * config/msp430/msp430.c: Ditto.
4676 * config/nios2/nios2.c: Ditto.
4677 * config/nvptx/nvptx.c: Ditto.
4678 * config/pa/pa.c: Ditto.
4679 * config/pdp11/pdp11.c: Ditto.
4680 * config/rl78/rl78.c: Ditto.
4681 * config/sparc/sparc.c: Ditto.
4682 * config/spu/spu.c: Ditto.
4683 * config/stormy16/stormy16.c: Ditto.
4684 * config/tilegx/tilegx.c: Ditto.
4685 * config/tilepro/tilepro.c: Ditto.
4686 * config/v850/v850.c: Ditto.
4687 * config/vax/vax.c: Ditto.
4688 * config/visium/visium.c: Ditto.
4689 * config/xtensa/xtensa.c: Ditto.
4690
4691 2016-09-14 Jakub Jelinek <jakub@redhat.com>
4692
4693 PR sanitizer/68260
4694 * tsan.c: Include target.h.
4695 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
4696 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
4697 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
4698 BUILT_IN_ATOMIC_TEST_AND_SET entries.
4699 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
4700
4701 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
4702 Martin Liska <mliska@suse.cz>
4703
4704 PR middle-end/77574
4705 * predict.c (force_edge_cold): Add braces to a condition.
4706
4707 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
4708
4709 PR rtl-optimization/77289
4710 * lra-constraints.c (get_final_hard_regno): Removed.
4711 (get_hard_regno): Add new parameter final_p.
4712 (get_reg_class): Directly call lra_get_elimination_hard_regno.
4713 (operands_match_p): Adjust call to get_hard_regno.
4714 (uses_hard_regs_p): Likewise.
4715 (process_alt_operands): Likewise.
4716
4717 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
4718
4719 PR target/70713
4720 * config/msp430/msp430.c (msp430_start_function): Emit an error
4721 if a function is both weak and specifies an interrupt number.
4722
4723 2016-09-13 Jakub Jelinek <jakub@redhat.com>
4724
4725 PR tree-optimization/77454
4726 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
4727 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
4728 Formatting fix.
4729
4730 2016-09-13 Tamar Christina <tamar.christina@arm.com>
4731
4732 * config/aarch64/aarch64-builtins.c
4733 (aarch64_init_simd_builtins): Fix builtin type signature printing.
4734
4735 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
4736
4737 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
4738 SFmode and SCmode arguments by reference.
4739
4740 2016-09-13 David Malcolm <dmalcolm@redhat.com>
4741
4742 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
4743 Rename to...
4744 (selftest::test_one_liner_fixit_insert_before): ...this, and update
4745 for renaming of add_fixit_insert to add_fixit_insert_before.
4746 (selftest::test_one_liner_fixit_insert_after): New function.
4747 (selftest::test_one_liner_fixit_validation_adhoc_locations):
4748 Update for renaming of add_fixit_insert to add_fixit_insert_before.
4749 (selftest::test_one_liner_many_fixits): Likewise.
4750 (selftest::test_diagnostic_show_locus_one_liner): Update for
4751 renaming, call new test function.
4752 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
4753 renaming of add_fixit_insert to add_fixit_insert_before.
4754 (selftest::test_fixit_consolidation): Likewise.
4755 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
4756 Likewise.
4757 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
4758 (selftest::test_applying_fixits_insert_before): ...this.
4759 (selftest::test_applying_fixits_insert): Update for renaming of
4760 add_fixit_insert to add_fixit_insert_before.
4761 (selftest::test_applying_fixits_insert_after): New function.
4762 (selftest::test_applying_fixits_insert_after_at_line_end): New
4763 function.
4764 (selftest::test_applying_fixits_insert_after_failure): New function.
4765 (selftest::test_applying_fixits_multiple): Update for renaming of
4766 add_fixit_insert to add_fixit_insert_before.
4767 (selftest::change_line): Likewise.
4768 (selftest::test_applying_fixits_unreadable_file): Likewise.
4769 (selftest::test_applying_fixits_line_out_of_range): Likewise.
4770 (selftest::test_applying_fixits_column_validation): Likewise.
4771 (selftest::test_applying_fixits_column_validation): Likewise.
4772 (selftest::edit_context_c_tests): Update for renamed test function;
4773 call new test functions.
4774
4775 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
4776
4777 PR tree-optimization/77536
4778 PR rtl-optimization/68212
4779 * config/rs6000/rs6000.md (div->recip splitter): Remove
4780 optimize_insn_for_speed_p condition.
4781
4782 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
4783
4784 * optabs.c (prepare_cmp_insn): Update documentation comment.
4785
4786 2016-09-13 Jakub Jelinek <jakub@redhat.com>
4787 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4788
4789 PR middle-end/77475
4790 * opts.h (candidates_list_and_hint): Declare.
4791 * opts-common.c (candidates_list_and_hint): New function.
4792 (cmdline_handle_error): Use it.
4793
4794 2016-09-12 David Malcolm <dmalcolm@redhat.com>
4795
4796 * edit-context.c (edited_line::get_len): New accessor.
4797 (edited_file::print_diff): Split out hunk-printing into...
4798 (edited_file::print_diff_hunk): New method.
4799 (edited_file::print_diff_line): New method.
4800
4801 2016-09-12 Andrew Pinski <apinski@cavium.com>
4802
4803 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
4804 New tuning option.
4805 * config/aarch64/aarch64.c (thunderx_tunings): Enable
4806 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
4807 (aarch64_operands_ok_for_ldpstp): Return false if
4808 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
4809 was SImode and the alignment is less than 8 byte.
4810 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
4811
4812 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
4813
4814 PR target/77570
4815 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
4816
4817 2016-09-12 Marek Polacek <polacek@redhat.com>
4818
4819 * doc/extend.texi: Use lowercase "boolean".
4820 * doc/invoke.texi: Likewise.
4821 * doc/md.texi: Likewise.
4822 * target.def: Likewise.
4823 * doc/tm.texi: Regenerated.
4824
4825 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4826
4827 PR middle-end/77426
4828 * expmed.c (synth_mult): Delete duplicate mode check.
4829
4830 2016-09-10 Tom de Vries <tom@codesourcery.com>
4831
4832 PR C/71602
4833 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
4834 va_list type only.
4835 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
4836 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
4837
4838 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
4839
4840 PR rtl-optimization/77289
4841 * lra-constraints.c (get_final_hard_regno): Add support for non hard
4842 register numbers. Remove support for subregs.
4843 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
4844 (get_reg_class): Delete removed get_final_hard_regno() argument.
4845 (uses_hard_regs_p): Call get_final_hard_regno().
4846
4847 2016-09-09 Martin Sebor <msebor@redhat.com>
4848
4849 PR c/77520
4850 PR c/77521
4851 * pretty-print.c (pp_quoted_string): New function.
4852 (pp_format): Call it for %c and %s directives.
4853
4854 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
4855
4856 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
4857 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
4858 INITIAL_ELIMINATION_OFFSET) : Update documentation.
4859 * target.def (frame_pointer_required, can_eliminate): Likewise.
4860 * doc/tm.texi: Regenerated.
4861 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
4862 ELIMINABLE_REGS.
4863 * df-scan.c (df_hard_reg_init): Likewise.
4864 * ira.c (ira_setup_eliminable_regset): Likewise.
4865 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
4866 init_elim_table): Likewise.
4867 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
4868 set_initial_elim_offsets, update_eliminables,
4869 init_elim_table): Likewise.
4870 * rtlanal.c (get_initial_register_offset): Likewise.
4871 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
4872 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
4873 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
4874 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
4875 * config/fr30/fr30.h: Fix comment.
4876 * config/frv/frv.c: Likewise.
4877 * config/frv/frv.h: Likewise.
4878 * config/ft32/ft32.h: Likewise.
4879 * config/visium/visium.h: Likewise.
4880 * config/pa/pa64-linux.h: Likewise.
4881 * config/v850/v850.h: Likewise.
4882 * config/cris/cris.c: Likewise.
4883 * config/ia64/ia64.h: Likewise.
4884 * config/moxie/moxie.h: Likewise.
4885 * config/m32r/m32r.h: Likewise.
4886
4887 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
4888
4889 PR target/77267
4890 * config.in: Regenerate.
4891 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
4892 New macro.
4893 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
4894 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
4895 static-libmpxwrappers case.
4896 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
4897 MPX_LD_AS_NEEDED_GUARD_POP.
4898 * configure: Regenerate.
4899 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
4900 defined if linker support "--push-state"/"--pop-state".
4901
4902 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
4903
4904 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
4905
4906 2016-09-09 Joseph Myers <joseph@codesourcery.com>
4907
4908 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
4909 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
4910 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
4911 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
4912 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
4913 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
4914 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
4915 Document.
4916 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
4917 width macros from TS 18661-1.
4918 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
4919
4920 2016-09-08 Jakub Jelinek <jakub@redhat.com>
4921
4922 PR fortran/77516
4923 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
4924 OMP_CLAUSE_SAFELEN_EXPR.
4925
4926 2016-09-07 David Malcolm <dmalcolm@redhat.com>
4927
4928 * Makefile.in (OBJS): Add substring-locations.o.
4929 * langhooks-def.h (class substring_loc): New forward decl.
4930 (lhd_get_substring_location): New decl.
4931 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
4932 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
4933 * langhooks.c (lhd_get_substring_location): New function.
4934 * langhooks.h (class substring_loc): New forward decl.
4935 (struct lang_hooks): Add field get_substring_location.
4936 * substring-locations.c: New file, taking definition of
4937 format_warning_va and format_warning_at_substring from
4938 c-family/c-format.c, making them non-static.
4939 * substring-locations.h (class substring_loc): Move class here
4940 from c-family/c-common.h. Add and rewrite comments.
4941 (format_warning_va): New decl.
4942 (format_warning_at_substring): New decl.
4943 (get_source_location_for_substring): Add comment.
4944
4945 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
4946
4947 * config/i386/i386.c: Add 'U' suffix to processor feature bits
4948 to avoid -Wnarrowing warning.
4949 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
4950 * opts.c: Likewise for SANITIZER_OPT bitmasks.
4951
4952 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
4953
4954 * config/aarch64/aarch64.c (aarch64_legitimize_address):
4955 Avoid use of base_offset if offset already in range.
4956
4957 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
4958
4959 * config/sh/sh-protos.h (struct sh_atomic_model,
4960 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
4961 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
4962 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
4963 * config/sh/sh.h (struct sh_atomic_model,
4964 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
4965 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
4966 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
4967 Guard with __cplusplus.
4968
4969 2016-09-06 Jakub Jelinek <jakub@redhat.com>
4970
4971 PR target/69255
4972 * config/i386/i386.c (ix86_expand_builtin): For builtin with
4973 unsupported or unknown ISA, use expand_call.
4974
4975 2016-09-06 Martin Liska <mliska@suse.cz>
4976
4977 PR gcov-profile/77378
4978 PR gcov-profile/77466
4979 * tree-profile.c (tree_profiling): Detect whether target can use
4980 -fprofile-update=atomic.
4981
4982 2016-09-06 Richard Biener <rguenther@suse.de>
4983
4984 PR tree-optimization/77479
4985 * tree-vrp.c (update_value_range): Extend overflow handling to
4986 VARYING.
4987
4988 2016-09-05 Jakub Jelinek <jakub@redhat.com>
4989
4990 PR target/77476
4991 * config/i386/i386.md (isa): Add x64_avx512bw.
4992 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
4993 (kmov_isa): New mode attr.
4994 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
4995 (*zero_extend<mode>si2): Likewise.
4996 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
4997
4998 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
4999
5000 * doc/invoke.texi (SPU Options): nops -> NOPs.
5001 (x86 Options): Ditto.
5002
5003 2016-09-05 Jakub Jelinek <jakub@redhat.com>
5004
5005 PR middle-end/77475
5006 * toplev.c (process_options): Temporarily set input_location
5007 to UNKNOWN_LOCATION around targetm.target_option.override () call.
5008
5009 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
5010
5011 PR rtl-optimization/77452
5012 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
5013 inner-mode reference to a CONST_VECTOR constant in the constant pool.
5014
5015 2016-09-05 Marek Polacek <polacek@redhat.com>
5016
5017 PR c/77423
5018 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
5019
5020 2016-09-05 Jakub Jelinek <jakub@redhat.com>
5021
5022 PR other/77421
5023 * gensupport.c (alter_output_for_subst_insn): Remove redundant
5024 *insn_out == '*' test. Don't copy unnecessary to yet another
5025 memory buffer, and don't leak it.
5026
5027 PR rtl-optimization/77425
5028 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
5029
5030 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
5031
5032 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
5033
5034 2016-09-02 David Malcolm <dmalcolm@redhat.com>
5035
5036 * common.opt (fdiagnostics-generate-patch): New option.
5037 * diagnostic.c: Include "edit-context.h".
5038 (diagnostic_initialize): Initialize context->edit_context_ptr.
5039 (diagnostic_finish): Delete context->edit_context_ptr.
5040 (diagnostic_report_diagnostic): Add fix-it hints from the
5041 diagnostic to context->edit_context_ptr, if any.
5042 * diagnostic.h (class edit_context): Add forward decl.
5043 (struct diagnostic_context): Add field "edit_context_ptr".
5044 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
5045 -fdiagnostics-generate-patch.
5046 (-fdiagnostics-generate-patch): New item.
5047 * toplev.c: Include "edit-context.h".
5048 (process_options): Set global_dc->edit_context_ptr to a new
5049 edit_context if the options need one.
5050 (toplev::main): Handle -fdiagnostics-generate-patch by using
5051 global_dc->edit_context_ptr.
5052
5053 2016-09-02 Jakub Jelinek <jakub@redhat.com>
5054
5055 PR c/65467
5056 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
5057 map and firstprivate clauses on target construct for _Atomic
5058 qualified decls.
5059 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
5060 on target construct for _Atomic qualified decls.
5061 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
5062 decls.
5063 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
5064 _Atomic qualified arguments not mentioned in uniform clause.
5065
5066 2016-09-02 David Malcolm <dmalcolm@redhat.com>
5067
5068 * Makefile.in (OBJS-libcommon): Add edit-context.o.
5069 * diagnostic-color.c (color_dict): Add "diff-filename",
5070 "diff-hunk", "diff-delete", and "diff-insert".
5071 (parse_gcc_colors): Update default value of GCC_COLORS in comment
5072 to reflect above changes.
5073 * doc/invoke.texi (-fdiagnostics-color): Update description of
5074 default GCC_COLORS, and of the supported capabilities.
5075 * edit-context.c: New file.
5076 * edit-context.h: New file.
5077 * input.c (struct fcache): Add field "missing_trailing_newline".
5078 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
5079 true.
5080 (add_file_to_cache_tab): Likewise.
5081 (fcache::fcache): Likewise.
5082 (get_next_line): Update c->missing_trailing_newline.
5083 (location_missing_trailing_newline): New function.
5084 * input.h (location_missing_trailing_newline): New decl.
5085 * selftest-run-tests.c (selftest::run_tests): Call
5086 edit_context_c_tests.
5087 * selftest.h (edit_context_c_tests): New decl.
5088
5089 2016-09-02 Jakub Jelinek <jakub@redhat.com>
5090 Richard Biener <rguenth@suse.de>
5091
5092 PR tree-optimization/77444
5093 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
5094 as steptype, remove redundant initialization.
5095
5096 2016-09-02 Jakub Jelinek <jakub@redhat.com>
5097
5098 PR sanitizer/77396
5099 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
5100 (sanopt_optimize_walker): Optimize away
5101 __asan_before_dynamic_init (...) followed by
5102 __asan_after_dynamic_init () without intervening memory loads/stores.
5103 * ipa-pure-const.c (special_builtin_state): Handle
5104 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
5105 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
5106
5107 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5108
5109 * cfg.c (free_original_copy_tables): Replace second assignment of
5110 bb_copy = NULL by bb_original = NULL.
5111
5112 2016-09-02 Jakub Jelinek <jakub@redhat.com>
5113
5114 PR other/77421
5115 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
5116 assignment added in r216794.
5117
5118 2016-09-02 David Malcolm <dmalcolm@redhat.com>
5119
5120 * Makefile.in (OBJS): Add typed-splay-tree.o.
5121 * selftest-run-tests.c (selftest::run_tests): Call
5122 typed_splay_tree_c_tests.
5123 * selftest.h (typed_splay_tree_c_tests): New decl.
5124 * typed-splay-tree.c: New file.
5125 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
5126 (typed_splay_tree::max): New method.
5127 (typed_splay_tree::min): New method.
5128 (typed_splay_tree::foreach): New method.
5129 (typed_splay_tree::closure): New struct.
5130 (typed_splay_tree::inner_foreach_fn): New function.
5131
5132 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5133
5134 * ipa-cp.c (ipcp_store_bits_results): Change option name from
5135 -fipa-cp-bit to -fipa-bit-cp.
5136
5137 2016-09-01 Martin Sebor <msebor@redhat.com>
5138
5139 PR tree-optimization/71831
5140 * tree-object-size.h: Return bool instead of the size and add
5141 argument for the size.
5142 * tree-object-size.c (compute_object_offset): Update signature.
5143 (addr_object_size): Same.
5144 (compute_builtin_object_size): Return bool instead of the size
5145 and add argument for the size. Handle POINTER_PLUS_EXPR when
5146 optimization is disabled.
5147 (expr_object_size): Adjust.
5148 (plus_stmt_object_size): Adjust.
5149 (pass_object_sizes::execute): Adjust.
5150 * builtins.c (fold_builtin_object_size): Adjust.
5151 * doc/extend.texi (Object Size Checking): Update.
5152 * ubsan.c (instrument_object_size): Adjust.
5153
5154 2016-09-01 Martin Sebor <msebor@redhat.com>
5155
5156 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
5157 it fits the output of the formatted function regardless of its
5158 arguments.
5159 * gcc/genmodes.c (parser::parse_expr): Same.
5160 * gimplify.c (gimplify_asm_expr): Same.
5161 * passes.c (pass_manager::register_one_dump_file): Same.
5162 * print-tree.c (print_node): Same.
5163
5164 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
5165
5166 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
5167
5168 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
5169
5170 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
5171
5172 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
5173
5174 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
5175 * config/rs6000/vector.md: Ditto.
5176 * config/rs6000/vsx.md: Ditto.
5177
5178 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
5179
5180 * ipa-inline-analysis.c (param_change_prob): Get to the base object
5181 first in all cases.
5182
5183 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
5184
5185 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
5186 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
5187 *return_and_restore_gpregs_<mode>_r11,
5188 *return_and_restore_gpregs_<mode>_r12,
5189 *return_and_restore_gpregs_<mode>_r1,
5190 *return_and_restore_fpregs_<mode>_r11,
5191 *return_and_restore_fpregs_<mode>_r12,
5192 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
5193 directly instead of via the "l" constraint. Renumber operands.
5194 Fix whitespace.
5195
5196 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
5197
5198 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
5199 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
5200 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
5201 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
5202 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
5203 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
5204 *call_value_nonlocal_darwin64, reload_macho_picbase,
5205 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
5206 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
5207 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
5208 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
5209 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
5210 *save_fpregs_<mode>_r1): Ditto.
5211 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
5212 *return_and_restore_gpregs_spe): Ditto.
5213
5214 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
5215
5216 * config/rs6000/rs6000.md
5217 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
5218 the use of the link register.
5219 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
5220
5221 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5222 Michael Meissner <meissner@linux.vnet.ibm.com>
5223
5224 PR target/72827
5225 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
5226 reg+reg addressing for TImode.
5227 (rs6000_legitimate_address_p): Only allow register indirect
5228 addressing for TImode, even without TARGET_QUAD_MEMORY.
5229
5230 2016-09-01 Richard Biener <rguenther@suse.de>
5231
5232 PR middle-end/77436
5233 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
5234 check whether the result fits the desired result type.
5235
5236 2016-09-01 Nathan Sidwell <nathan@acm.org>
5237
5238 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
5239
5240 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
5241
5242 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
5243 New function.
5244 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
5245
5246 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5247
5248 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
5249 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
5250 for comparisons of integer ZERO_EXTEND against zero.
5251
5252 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
5253
5254 * config/i386/i386.c (ix86_option_override_internal): Also disable the
5255 STV pass if -mstackrealign is enabled.
5256
5257 2016-08-31 Ilya Verbin <iverbin@gmail.com>
5258
5259 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
5260 AVX512IFMA.
5261
5262 2016-08-31 David Malcolm <dmalcolm@redhat.com>
5263
5264 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
5265 (layout_range::intersects_line_p): New method.
5266 (test_range_contains_point_for_single_point): Rename to...
5267 (test_layout_range_for_single_point): ...this, and add testing
5268 for layout_range::intersects_line_p.
5269 (test_range_contains_point_for_single_line): Rename to...
5270 (test_layout_range_for_single_line): ...this, and add testing
5271 for layout_range::intersects_line_p.
5272 (test_range_contains_point_for_multiple_lines): Rename to...
5273 (test_layout_range_for_multiple_lines): ...this, and add testing
5274 for layout_range::intersects_line_p.
5275 (layout::layout): Populate m_fixit_hints.
5276 (layout::get_expanded_location): Handle the case of a line-span
5277 for a fix-it hint.
5278 (layout::validate_fixit_hint_p): New method.
5279 (get_line_span_for_fixit_hint): New function.
5280 (layout::calculate_line_spans): Add spans for fixit-hints.
5281 (layout::should_print_annotation_line_p): New method.
5282 (layout::print_any_fixits): Drop param "richloc", instead using
5283 validated fixits in m_fixit_hints. Add "const" to hint pointers.
5284 (diagnostic_show_locus): Avoid printing blank annotation lines.
5285 (selftest::test_diagnostic_context::test_diagnostic_context):
5286 Initialize show_column and start_span.
5287 (selftest::test_diagnostic_context::start_span_cb): New static
5288 function.
5289 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
5290 (selftest::diagnostic_show_locus_c_tests): Update for function
5291 renamings. Call test_diagnostic_show_locus_fixit_lines.
5292
5293 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
5294
5295 PR tree-optimization/73714
5296 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
5297
5298 2016-08-31 David Malcolm <dmalcolm@redhat.com>
5299
5300 * selftest.c: Move "namespace selftest {" to top of file,
5301 removing explicit "selftest::" qualifiers throughout.
5302
5303 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
5304
5305 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
5306 New types.
5307 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
5308 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
5309 Replace builtin with vector extension.
5310 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
5311 New types.
5312 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
5313 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
5314 Replace builtin with vector extension.
5315 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
5316 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
5317 Replace builtin with vector extension.
5318 * config/i386/xmmintrin.h (__m128_u): New type.
5319 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
5320 (_mm_load_ps, _mm_store_ps): Simplify.
5321
5322 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
5323
5324 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
5325
5326 2016-08-30 David Malcolm <dmalcolm@redhat.com>
5327
5328 * diagnostic-show-locus.c (colorizer::begin_state): Support more
5329 than 3 ranges per diagnostic by alternating between color 1 and
5330 color 2.
5331 (layout::layout): Replace use of rich_location::MAX_RANGES
5332 with richloc->get_num_locations ().
5333 (layout::calculate_line_spans): Replace use of
5334 rich_location::MAX_RANGES with m_layout_ranges.length ().
5335 (layout::print_annotation_line): Handle arbitrary numbers of
5336 ranges in caret-printing by defaulting to '^'.
5337 (selftest::test_one_liner_many_fixits): New function.
5338 (test_diagnostic_show_locus_one_liner): Call it.
5339 * diagnostic.c (diagnostic_initialize): Update for renaming
5340 of rich_location::MAX_RANGES to
5341 rich_location::STATICALLY_ALLOCATED_RANGES.
5342 * diagnostic.h (struct diagnostic_context): Likewise.
5343
5344 2016-08-30 David Malcolm <dmalcolm@redhat.com>
5345
5346 * selftest.c (selftest::named_temp_file::named_temp_file): New
5347 ctor.
5348 (selftest::temp_source_file::~temp_source_file): Move to...
5349 (selftest::named_temp_file::~named_temp_file): ...here.
5350 (selftest::test_named_temp_file): New function.
5351 (selftest::selftest_c_tests): Call test_named_temp_file.
5352 * selftest.h (class named_temp_file): New class.
5353 (class temp_source_file): Convert to a subclass of named_temp_file.
5354
5355 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
5356
5357 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
5358 USEs of LR_REGNO in returns and sibcalls.
5359 (rs6000_output_mi_thunk): Similar.
5360 (rs6000_sibcall_aix): Similar.
5361 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
5362 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
5363 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
5364 Remove the USE of LR_REGNO from the patterns as well. Delete an
5365 obsolete comment.
5366 (return_internal_<mode>): Delete.
5367
5368 2016-08-30 Tamar Christina <tamar.christina@arm.com>
5369
5370 * gcc/config/aarch64/aarch64-simd.md
5371 (aarch64_ld2<mode>_dreg_le): New.
5372 (aarch64_ld2<mode>_dreg_be): New.
5373 (aarch64_ld2<mode>_dreg): Removed.
5374 (aarch64_ld3<mode>_dreg_le): New.
5375 (aarch64_ld3<mode>_dreg_be): New.
5376 (aarch64_ld3<mode>_dreg): Removed.
5377 (aarch64_ld4<mode>_dreg_le): New.
5378 (aarch64_ld4<mode>_dreg_be): New.
5379 (aarch64_ld4<mode>_dreg): Removed.
5380 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
5381
5382 2016-08-30 David Malcolm <dmalcolm@redhat.com>
5383
5384 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
5385 redundant location param.
5386 (test_one_liner_fixit_remove): Likewise.
5387 (test_one_liner_fixit_replace): Likewise.
5388 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
5389 * gcc-rich-location.c
5390 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
5391 get_range_from_loc. Drop overload taking a const char *.
5392 * gcc-rich-location.h
5393 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
5394 a const char *.
5395
5396 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
5397
5398 * config/linux.c (linux_libc_has_function): Return true on musl.
5399
5400 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
5401
5402 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
5403
5404 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
5405
5406 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
5407 used for abnormal egdes.
5408
5409 2016-08-30 Jakub Jelinek <jakub@redhat.com>
5410
5411 PR tree-optimization/72866
5412 * tree-vect-patterns.c (search_type_for_mask): Turn into
5413 a small wrapper, move all code to ...
5414 (search_type_for_mask_1): ... this new function. Add caching
5415 and adjust recursive calls.
5416
5417 PR debug/77363
5418 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
5419 instead of lookup_type_die (type_main_variant (type)) even for array
5420 types.
5421
5422 PR middle-end/77377
5423 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
5424 constant pool reference return x instead of c.
5425
5426 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
5427
5428 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
5429 include MQ.
5430
5431 2016-08-29 David Malcolm <dmalcolm@redhat.com>
5432
5433 * input.c
5434 (selftest::test_make_location_nonpure_range_endpoints): Fix
5435 header comment.
5436
5437 2016-08-29 David Malcolm <dmalcolm@redhat.com>
5438
5439 * diagnostic-show-locus.c
5440 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
5441 function.
5442 (selftest::test_diagnostic_show_locus_one_liner): Call it.
5443 * input.c (get_pure_location): Move to libcpp/line-map.c.
5444 * input.h (get_pure_location): Convert decl to an inline function
5445 calling implementation in libcpp.
5446
5447 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
5448
5449 PR target/77403
5450 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
5451 template for intel asm dialect.
5452 (vec_set_hi_<mode><mask_name>): Ditto.
5453
5454 2016-08-29 David Malcolm <dmalcolm@redhat.com>
5455
5456 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
5457 (selftest::fail_formatted): Likewise.
5458
5459 2016-08-29 David Malcolm <dmalcolm@redhat.com>
5460
5461 * input.c (make_location): Call get_start and get_finish
5462 on the endpoints to avoid storing packed ranges or ad-hoc
5463 ranges in them.
5464 (selftest::test_make_location_nonpure_range_endpoints): New function.
5465 (selftest::input_c_tests): Call it.
5466 * input.h (get_start): New inline function.
5467
5468 2016-08-29 Tom de Vries <tom@codesourcery.com>
5469
5470 PR c/77398
5471 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
5472 with assert.
5473
5474 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
5475
5476 * Makefile.in (gcov-iov.h): Add dummy recipe.
5477
5478 2016-08-29 Nathan Sidwell <nathan@acm.org>
5479
5480 * config/nvptx/nvptx.c: #include tree-vrp.h.
5481
5482 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
5483
5484 PR target/77324
5485 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
5486 HIGH+LO construct during reload.
5487
5488 2016-08-28 Tom de Vries <tom@codesourcery.com>
5489
5490 PR lto/70955
5491 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
5492 'sysv_abi va_list' attribute.
5493 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
5494 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
5495 attributes.
5496
5497 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5498
5499 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
5500 * emit-rtl.c (unshare_all_rtl_1): Adjust.
5501 (unshare_all_rtl_again): Likewise.
5502 * function.c (assign_stack_local_1): Likewise.
5503 (assign_stack_temp_for_type): Likewise.
5504
5505 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5506
5507 * cfgbuild.c (make_edges): Adjust.
5508 * cfgrtl.c (can_delete_label_p): Likewise.
5509 * dwarf2cfi.c (create_trace_edges): Likewise.
5510 * except.c (sjlj_emit_dispatch_table): Likewise.
5511 * function.h (struct expr_status): make x_forced_labels a vector.
5512 * jump.c (rebuild_jump_labels_1): Adjust.
5513 * reload1.c (set_initial_label_offsets): Likewise.
5514 * stmt.c (force_label_rtx): Likewise.
5515 (expand_label): Likewise.
5516
5517 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5518
5519 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
5520
5521 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
5522
5523 PR tree-optimization/71077
5524 PR tree-optimization/68542
5525 * fold-const.c (fold_relational_const): Fix folding of
5526 VECTOR_CST comparisons that have a scalar boolean result type.
5527 (selftest::test_vector_folding): New static function.
5528 (selftest::fold_const_c_tests): Call it.
5529
5530 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
5531
5532 * doc/extend.texi (SPU Built-in Functions): Remove stale
5533 references to material formerly at IBM and Sony.
5534
5535 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
5536
5537 PR target/77349
5538 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
5539
5540 2016-08-26 David Malcolm <dmalcolm@redhat.com>
5541
5542 * diagnostic-show-locus.c
5543 (selftest::test_fixit_consolidation): New function.
5544 (selftest::diagnostic_show_locus_c_tests): Call it.
5545 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
5546 constructor based on source_range.
5547
5548 2016-08-26 David Malcolm <dmalcolm@redhat.com>
5549
5550 * diagnostic-color.c (color_dict): Add "fixit-insert" and
5551 "fixit-delete".
5552 (parse_gcc_colors): Update description of default GCC_COLORS.
5553 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
5554 (colorizer::set_fixit_insert): New method.
5555 (colorizer::set_fixit_delete): New method.
5556 (colorizer::get_color_by_name): New method.
5557 (colorizer::STATE_FIXIT_INSERT): New constant.
5558 (colorizer::STATE_FIXIT_DELETE): New constant.
5559 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
5560 fields in favor of new field "m_stop_color". Add fields
5561 "m_fixit_insert" and "m_fixit_delete".
5562 (colorizer::colorizer): Update for above changes. Replace
5563 colorize_start calls with calls to get_color_by_name.
5564 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
5565 STATE_FIXIT_DELETE. Update for field renamings.
5566 (colorizer::finish_state): Simplify by using m_stop_color,
5567 rather than multiple identical "*_ce" fields.
5568 (colorizer::get_color_by_name): New method.
5569 (layout::print_any_fixits): Print insertions and replacements
5570 using the "fixit-insert" color, and deletions using the
5571 "fixit-delete" color.
5572 * doc/invoke.texi (-fdiagnostics-color): Update description of
5573 default GCC_COLORS, and of the supported capabilities.
5574
5575 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
5576
5577 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
5578 current_function_static_stack_size variable with the static
5579 stack frame size of the current function when
5580 flag_stack_usage_info is enabled.
5581
5582 2016-08-26 Nathan Sidwell <nathan@acm.org>
5583
5584 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
5585 assignment inside if condition.
5586
5587 2016-08-26 Richard Biener <rguenther@suse.de>
5588
5589 PR tree-optimization/69047
5590 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
5591 extracts similar to what FRE does.
5592 (non_rewritable_mem_ref_base): Likewise.
5593
5594 2016-08-26 Joseph Myers <joseph@codesourcery.com>
5595
5596 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
5597 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
5598 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5599 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5600 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
5601 Likewise.
5602 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5603 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5604 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5605 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
5606 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5607
5608 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5609
5610 PR target/70473
5611 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
5612 reservation duration to 15 cycles.
5613 (cortex_a8_vfp_macs): Likewise.
5614 (cortex_a8_vfp_macd): Likewise.
5615 (cortex_a8_vfp_divs): Likewise.
5616 (cortex_a8_vfp_divd): Likewise.
5617
5618 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5619
5620 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
5621 (aarch_macro_fusion_pair_p): Use above to avoid early return.
5622
5623 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5624 Martin Jambhor <mjambor@suse.cz>
5625
5626 * common.opt: New option -fipa-bit-cp.
5627 * doc/invoke.texi: Document -fipa-bit-cp.
5628 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
5629 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
5630 * tree-ssa-ccp.h: New header file.
5631 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
5632 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
5633 Replace all occurences of tree parameter by two new params: signop, int.
5634 (bit_value_unop_1): Change to bit_value_unop and export it.
5635 Replace all occurences of tree parameter by two new params: signop,
5636 int.
5637 (bit_value_binop): Change call from bit_value_binop_1 to
5638 bit_value_binop.
5639 (bit_value_assume_aligned): Likewise.
5640 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
5641 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
5642 to ccp_finalize.
5643 (ccp_finalize): Skip processing if val->mask == 0.
5644 * ipa-cp.c: Include tree-ssa-ccp.h
5645 (ipcp_bits_lattice): New class.
5646 (ipcp_param_lattice (bits_lattice): New member.
5647 (print_all_lattices): Call ipcp_bits_lattice::print.
5648 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
5649 (initialize_node_lattices): Likewise.
5650 (propagate_bits_accross_jump_function): New function.
5651 (propagate_constants_accross_call): Call
5652 propagate_bits_accross_jump_function.
5653 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
5654 (ipcp_store_bits_results): New function.
5655 (ipcp_driver): Call ipcp_store_bits_results.
5656 * ipa-prop.h (ipa_bits): New struct.
5657 (ipa_jump_func): Add new member bits of type ipa_bits.
5658 (ipa_param_descriptor): Change decl to decl_or_type.
5659 (ipa_get_param): Change decl to decl_or_type and assert on
5660 PARM_DECL.
5661 (ipa_get_type): New function.
5662 (ipcp_transformation_summary): New member bits.
5663 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
5664 (ipa_populate_param_decls): Likewise.
5665 (ipa_dump_param): Likewise.
5666 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
5667 function.
5668 (ipa_set_jf_unknown): Set ipa_bits::known to false.
5669 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
5670 propagation.
5671 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
5672 (ipa_write_jump_function): Add streaming for ipa_bits.
5673 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
5674 (write_ipcp_transformation_info): Add streaming for ipa_bits
5675 summary for ltrans.
5676 (read_ipcp_transfomration_info): Add support for reading streamed
5677 ipa_bits.
5678 (ipcp_update_bits): New function.
5679 (ipcp_transform_function): Call ipcp_update_bits.
5680
5681 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
5682
5683 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
5684 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
5685
5686 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
5687
5688 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
5689
5690 2016-08-25 Richard Biener <rguenther@suse.de>
5691
5692 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
5693 Only add locations in late dwarf.
5694 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
5695 (dwarf2out_early_finish): But do it here.
5696
5697 2016-08-24 Michael Collison <michael.collison@linaro.org>
5698 Michael Collison <michael.collison@arm.com>
5699
5700 * config/arm/arm-modes.def: Add new condition code mode CC_V
5701 to represent the overflow bit.
5702 * config/arm/arm.c (maybe_get_arm_condition_code):
5703 Add support for CC_Vmode.
5704 (arm_gen_unlikely_cbranch): New function to generate common
5705 rtl conditional branches for overflow patterns.
5706 * config/arm/arm-protos.h: Add prototype for
5707 arm_gen_unlikely_cbranch.
5708 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
5709 addsi3_compareV_upper): New patterns to support signed
5710 builtin overflow add operations.
5711 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
5712 New patterns to support unsigned builtin add overflow operations.
5713 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
5714 builtin overflow subtract operations,
5715 (usubv<mode>4): New patterns to support unsigned builtin subtract
5716 overflow operations.
5717 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
5718 to support builtin overflow negate operations.
5719
5720 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5721
5722 Revert
5723 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5724
5725 * explow.c (get_dynamic_stack_size): Take known alignment of stack
5726 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
5727 needed.
5728
5729 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
5730
5731 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
5732 MULTILIB_OPTIONS should be used. Small wording fixes.
5733 * genmultilib: Memorize set of all option combinations in
5734 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
5735 found in MULTILIB_OPTIONS by checking if option set is listed in
5736 combination_space. Output new and existing error message to stderr.
5737
5738 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
5739
5740 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
5741 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
5742 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
5743 (MULTILIB_REUSE): Remove reuse rules for option set including
5744 -mfpu=fp-armv8 and -mfpu=vfpv4
5745
5746 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
5747
5748 * config/arm/t-rtems: Add vfp multilib.
5749
5750 2016-08-23 Ian Lance Taylor <iant@golang.org>
5751
5752 * config/s390/s390.c (s390_asm_file_start): Call
5753 default_file_start.
5754
5755 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
5756
5757 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
5758 initialization of all 0's to the 0 constant, instead of directly
5759 generating XOR. Add support for V4SImode vector initialization on
5760 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
5761 initialization. Change variables used in V4SFmode vector
5762 intialization. For V4SFmode vector splat on ISA 3.0, make sure
5763 any memory addresses are in index form. Add support for using
5764 VSPLTH/VSPLTB to initialize vector short and vector char vectors
5765 with all of the same element.
5766 (regno_or_subregno): New helper function to return a register
5767 number for either REG or SUBREG.
5768 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
5769 Use regno_or_subregno where possible.
5770 (rs6000_split_v4si_init_di_reg): New helper function to build up a
5771 DImode value from two SImode values in order to generate V4SImode
5772 vector initialization on 64-bit systems with direct move.
5773 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
5774 initialization.
5775 (rtx_is_swappable_p): V4SImode vector initialization insn is not
5776 swappable.
5777 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
5778 declaration.
5779 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
5780 attributes to initialize V8HImode and V16QImode vectors with the
5781 same element.
5782 (VSX_SPLAT_COUNT): Likewise.
5783 (VSX_SPLAT_SUFFIX): Likewise.
5784 (UNSPEC_VSX_VEC_INIT): New unspec.
5785 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
5786 Allow SFmode values to come from Altivec registers.
5787 (vsx_init_v4si): New insn/split for V4SImode vector initialization
5788 on 64-bit systems with direct move.
5789 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
5790 vector initializations, to allow V4SImode vector initializations
5791 on 64-bit systems with direct move.
5792 (vsx_splat_v4si): Likewise.
5793 (vsx_splat_v4si_di): Likewise.
5794 (vsx_splat_v4sf): Likewise.
5795 (vsx_splat_v4sf_internal): Likewise.
5796 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
5797 register classes.
5798 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
5799 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
5800 initializing V8HImode and V16QImode vectors with the same
5801 element.
5802 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
5803 optimization if -maltivec=be.
5804
5805 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
5806
5807 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
5808 attribute for alternatives 3 and 4.
5809
5810 2016-08-23 David Malcolm <dmalcolm@redhat.com>
5811
5812 * selftest.c (selftest::assert_str_contains): New function.
5813 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
5814 * selftest.h (selftest::assert_str_contains): New decl.
5815 (ASSERT_STR_CONTAINS): New macro.
5816
5817 2016-08-23 Richard Biener <rguenther@suse.de>
5818
5819 PR tree-optimization/77286
5820 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
5821 the CFG here.
5822 (vect_transform_loop): Split exit edges of loop and scalar
5823 loop if required and at the appropriate time.
5824
5825 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5826
5827 * explow.c (get_dynamic_stack_size): Take known alignment of stack
5828 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
5829 needed.
5830 Correct a typo in a comment.
5831
5832 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5833
5834 * config/s390/s390.md ("*andc_split"): New splitter for and with
5835 complement.
5836
5837 2016-08-23 Richard Biener <rguenther@suse.de>
5838
5839 PR tree-optimization/27336
5840 * tree-vrp.c (infer_value_range): Handle stmts that can throw
5841 by looking for a non-EH edge.
5842 (process_assert_insertions_for): Likewise.
5843
5844 2016-08-23 Richard Biener <rguenther@suse.de>
5845
5846 PR middle-end/77305
5847 * statistics.c (statistics_counter_event): Robustify against
5848 NULL current_pass.
5849
5850 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
5851
5852 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
5853 for targets amdfam10 and barcelona.
5854
5855 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
5856
5857 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
5858 (zero_extend<mode>di2): Ditto.
5859 (*zero_extend<mode>si2): Ditto.
5860 (*zero_extendqihi2): Ditto.
5861
5862 2016-08-22 Joseph Myers <joseph@codesourcery.com>
5863
5864 PR middle-end/77269
5865 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
5866 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
5867
5868 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
5869
5870 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
5871 identical consecutive elements.
5872 [SSA_NAME]: Print the name's def stmt on its own line. When printing
5873 the node's def stmt, avoid printing an unwanted trailing newline by
5874 replacing the call to print_gimple_stmt() with its inlined body and
5875 adjusting it to not set pp_needs_newline and to call pp_flush()
5876 instead of pp_newline_and_flush().
5877
5878 2016-08-22 Joseph Myers <joseph@codesourcery.com>
5879
5880 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
5881 (float32_type_node, float64_type_node, float32x_type_node)
5882 (float128x_type_node): New macros.
5883 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
5884 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
5885 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
5886 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
5887 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
5888 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
5889 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
5890 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
5891 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
5892 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
5893 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
5894 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
5895 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
5896 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
5897 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
5898 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
5899 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
5900 (copysign, fabs, huge_val, inf, nan, nans): Use it.
5901 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
5902 and copysign.
5903 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
5904 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
5905 * doc/extend.texi (Other Builtins): Document these built-in
5906 functions.
5907 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
5908 for nan and nans.
5909
5910 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
5911
5912 * doc/install.texi (Binaries): www.opencsw.org now uses https.
5913
5914 2016-08-22 Richard Biener <rguenther@suse.de>
5915
5916 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
5917
5918 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
5919
5920 PR target/77270
5921 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
5922 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
5923 non-SSE2 athlons only, otherwise prefer SSE prefetches.
5924
5925 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
5926
5927 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
5928 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
5929 (vrp_visit_switch_stmt): Likewise.
5930 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
5931 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
5932 (vrp_visit_stmt): Use extract_range_from_stmt.
5933 (vrp_visit_phi_node): Use extract_range_from_phi_node.
5934
5935 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
5936
5937 * Makefile.in: Add tree-vrp.h to GTFILES.
5938 * gengtype.c (open_base_files): Add tree-vrp.h.
5939 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
5940 * builtins.c: Likewise.
5941 * fold-const.c: Likewise.
5942 * gimple-builder.c: Likewise.
5943 * gimple-laddress.c: Likewise.
5944 * hsa-gen.c: Likewise.
5945 * internal-fn.c: Likewise.
5946 * ssa.h: Likewise.
5947 * targhooks.c: Liewise,
5948 * tree-ssa-address.c: Likewise.
5949 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
5950 * tree-vrp.c (struct value_range): Move to tree-vrp.h
5951 * tree-vrp.h: New file.
5952
5953 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
5954
5955 PR tree-optimization/61839
5956 * tree-vrp.c (two_valued_val_range_p): New.
5957 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
5958 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
5959 Also Convert VAR BINOP CST where VAR is two-valued to
5960 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
5961
5962 2016-08-19 David Malcolm <dmalcolm@redhat.com>
5963
5964 * diagnostic-show-locus.c
5965 (layout::annotation_line_showed_range_p): New method.
5966 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
5967 Reimplement case fixit_hint::REPLACE to cover removals, and
5968 replacements where the range of the replacement isn't one
5969 of the ranges in the rich_location.
5970 (test_one_liner_fixit_replace): Likewise.
5971 (selftest::test_one_liner_fixit_replace_non_equal_range): New
5972 function.
5973 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
5974 New function.
5975 (selftest::test_diagnostic_show_locus_one_liner): Call the new
5976 functions.
5977 * diagnostic.c (print_parseable_fixits): Remove case
5978 fixit_hint::REMOVE.
5979
5980 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
5981
5982 PR target/77270
5983 * config/i386/i386.c (ix86_option_override_internal): Remove
5984 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
5985 Enable SSE prefetch also for TARGET_PREFETCHWT1.
5986 Do not try to enable TARGET_PRFCHW ISA flag here.
5987 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
5988 Rewrite expander function body.
5989 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
5990
5991 2016-08-19 Joseph Myers <joseph@codesourcery.com>
5992
5993 PR c/32187
5994 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
5995 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
5996 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
5997 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
5998 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
5999 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
6000 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
6001 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
6002 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
6003 tree_index values.
6004 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
6005 macros.
6006 (struct floatn_type_info): New structure type.
6007 (floatn_nx_types): New variable declaration.
6008 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
6009 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
6010 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
6011 * tree.c (floatn_nx_types): New variable.
6012 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
6013 corresponding complex types.
6014 * target.def (floatn_mode): New hook.
6015 * targhooks.c: Include "real.h".
6016 (default_floatn_mode): New function.
6017 * targhooks.h (default_floatn_mode): New prototype.
6018 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
6019 types.
6020 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
6021 effective-target and dg-add-options keywords.
6022 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
6023 Document new effective-target keywords.
6024 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
6025 * doc/tm.texi: Regenerate.
6026 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
6027 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
6028 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
6029 18661-3.
6030 * real.h (struct real_format): Add field ieee_bits.
6031 * real.c (ieee_single_format, mips_single_format)
6032 (motorola_single_format, spu_single_format, ieee_double_format)
6033 (mips_double_format, motorola_double_format)
6034 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
6035 (ieee_extended_intel_128_format)
6036 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
6037 (mips_extended_format, ieee_quad_format, mips_quad_format)
6038 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
6039 (decimal_double_format, decimal_quad_format, ieee_half_format)
6040 (arm_half_format, real_internal_format: Initialize ieee_bits
6041 field.
6042 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
6043 float128_type_node. Set float80_type_node to float64x_type_node
6044 if appropriate and long_double_type_node not appropriate.
6045 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
6046 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
6047 Initialize ieee_bits field.
6048 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
6049 (rs6000_init_builtins): Set ieee128_float_type_node to
6050 float128_type_node.
6051 (rs6000_floatn_mode): New function.
6052
6053 2016-08-19 Jakub Jelinek <jakub@redhat.com>
6054
6055 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
6056 _rdseed64_step): Uglify argument names and/or local variable names
6057 in inline functions.
6058 * config/i386/rtmintrin.h (_xabort): Likewise.
6059 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
6060 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
6061 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
6062 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
6063 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
6064 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
6065 _mm_maskz_ternarylogic_epi32): Likewise.
6066 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
6067 __lwpins32, __lwpins64): Likewise.
6068 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
6069 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
6070 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
6071 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
6072 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
6073 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
6074 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
6075 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
6076 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
6077 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
6078 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
6079 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
6080 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
6081 _mm256_mask_i64gather_epi32): Likewise.
6082 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
6083 * config/i386/ia32intrin.h (__writeeflags): Likewise.
6084 * config/i386/pkuintrin.h (_wrpkru): Likewise.
6085 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
6086 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
6087 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
6088 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
6089 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
6090 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
6091 _mm512_mask_prefetch_i64scatter_ps): Likewise.
6092 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
6093 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
6094 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
6095 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
6096 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
6097 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
6098 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
6099 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
6100
6101 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
6102 returning void.
6103 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
6104 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
6105 Likewise.
6106 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
6107 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
6108 function name.
6109 (_rdpkru_u32): Add space after function name.
6110
6111 * config/i386/t-i386 (i386-c.o): Don't depend on
6112 i386-builtin-types.inc.
6113 (i386.o): Depend on i386-builtin-types.inc.
6114
6115 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
6116
6117 PR target/77281
6118 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
6119 Use const_vec_duplicate to check for duplicated elements.
6120
6121 2016-08-19 Richard Biener <rguenther@suse.de>
6122
6123 PR tree-optimization/77290
6124 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6125 Fix flag_tree_parallelize_loops check.
6126
6127 2016-08-19 Richard Biener <rguenther@suse.de>
6128
6129 * match.pd (x | 0 -> x): Add.
6130
6131 2016-08-19 Richard Biener <rguenther@suse.de>
6132
6133 PR tree-optimization/77286
6134 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
6135 Deal with virtual PHIs being out-of-order.
6136
6137 2016-08-18 David Malcolm <dmalcolm@redhat.com>
6138
6139 * doc/invoke.texi (fverbose-asm): Note that source code lines
6140 are emitted, and provide an example.
6141 * final.c (asm_show_source): New function.
6142 (final_scan_insn): Call asm_show_source.
6143
6144 2016-08-18 David Malcolm <dmalcolm@redhat.com>
6145
6146 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
6147 param with diagnostic_kind.
6148 (class colorizer): Similarly replace field m_diagnostic with
6149 m_diagnostic_kind.
6150 (colorizer::colorizer): Replace diagnostic
6151 param with diagnostic_kind.
6152 (colorizer::begin_state): Update for above field change.
6153 (layout::layout): Replace diagnostic param with rich_location *
6154 and diagnostic_kind.
6155 (diagnostic_show_locus): Replace diagnostic param with richloc
6156 and diagnostic_kind.
6157 (class selftest::test_diagnostic_context): New class.
6158 (selftest::test_diagnostic_show_locus_unknown_location): New
6159 function.
6160 (selftest::test_one_liner_simple_caret): New function.
6161 (selftest::test_one_liner_caret_and_range): New function.
6162 (selftest::test_one_liner_multiple_carets_and_ranges): New
6163 function.
6164 (selftest::test_one_liner_fixit_remove): New function.
6165 (selftest::test_one_liner_fixit_replace): New function.
6166 (selftest::test_diagnostic_show_locus_one_liner): New function.
6167 (selftest::diagnostic_show_locus_c_tests): Call the new test
6168 functions.
6169 * diagnostic.c (diagnostic_initialize): Initialize
6170 colorize_source_p, show_ruler_p and parseable_fixits_p.
6171 (default_diagnostic_finalizer): Update for change to
6172 diagnostic_show_locus.
6173 (diagnostic_append_note): Likewise.
6174 * diagnostic.h (diagnostic_show_locus): Replace
6175 const diagnostic_info * param with location * and diagnostic_t.
6176
6177 2016-08-18 David Malcolm <dmalcolm@redhat.com>
6178
6179 * input.c (saved_line_table): New global.
6180 (class selftest::temp_line_table): Rename to line_table_test and
6181 move declaration to selftest.h, and drop field m_old_line_table.
6182 (selftest::temp_line_table::temp_line_table): Rename ctor to...
6183 (selftest::line_table_test::line_table_test): ...this. Add a
6184 default ctor. Store current value of line_table within
6185 saved_line_table.
6186 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
6187 (selftest::line_table_test::~line_table_test): ...this, and
6188 restore line_table from the saved_line_table, rather than
6189 m_old_line_table.
6190 (selftest::test_accessing_ordinary_linemaps): Update for above
6191 renaming.
6192 (selftest::test_lexer): Likewise.
6193 (struct selftest::lexer_test): Likewise.
6194 (selftest::lexer_test::lexer_test): Likewise.
6195 (selftest::input_c_tests): Move the looping over test cases from
6196 here into...
6197 (selftest::for_each_line_table_case): New function.
6198 * input.h (saved_line_table): New decl.
6199 * selftest.h (struct selftest::line_table_case): New forward decl.
6200 (class selftest::line_table_test): New class, moved here from
6201 selftest::temp_line_table in input.c, and renamed.
6202 (selftest::for_each_line_table_case): New decl.
6203
6204 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
6205
6206 PR target/72839
6207 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
6208
6209 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
6210
6211 PR middle-end/70895
6212 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
6213 enclosing parallel construct for reduction variables on OpenACC loop
6214 directives.
6215
6216 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
6217
6218 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
6219 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
6220 -gdwarf-3.
6221 (function_to_dwarf_procedure): Update comment.
6222
6223 2016-08-18 David Malcolm <dmalcolm@redhat.com>
6224
6225 * input.c (diagnostics_file_cache_forcibly_evict_file): New
6226 function.
6227 * input.h (diagnostics_file_cache_forcibly_evict_file): New
6228 declaration.
6229 * selftest.c (selftest::temp_source_file::~temp_source_file):
6230 Evict m_filename from the diagnostic file cache.
6231
6232 2016-08-18 Richard Biener <rguenther@suse.de>
6233
6234 * tree-pass.h (make_pass_materialize_all_clones): Declare.
6235 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
6236 make_pass_materialize_all_clones): New simple IPA pass encapsulating
6237 clone materialization.
6238 * passes.def (all_late_ipa_passes): Start with
6239 pass_materialize_all_clones.
6240 * cgraphunit.c (symbol_table::compile): Remove call to
6241 materialize_all_clones.
6242 * tree-into-ssa.c: Include statistics.h.
6243 (update_ssa): Count number of times we do incremental/rewrite
6244 SSA update.
6245
6246 2016-08-18 Richard Biener <rguenther@suse.de>
6247
6248 PR tree-optimization/77282
6249 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6250 When doing auto-parallelizing also prevent use of PHIs that
6251 carry dependences across loop backedges.
6252
6253 2016-08-18 Tamar Christina <tamar.christina@arm.com>
6254 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6255
6256 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
6257
6258 2016-08-18 Richard Biener <rguenther@suse.de>
6259
6260 * ssa-iterators.h (ssa_vuse_operand): New inline.
6261 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
6262 (predicate_all_scalar_phis): Use remove_phi_node to remove
6263 phi nodes predicated. Delay removing virtual PHIs.
6264 (predicate_mem_writes): Update virtual operands.
6265 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
6266 (tree_if_conversion): Do not rewrite virtual SSA form.
6267 * tree-phinodes.c (release_phi_node): Make static.
6268 * tree-phinodes.h (release_phi_node): Remove.
6269
6270 2016-08-18 Jakub Jelinek <jakub@redhat.com>
6271
6272 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
6273 codes that appear in bdesc_* arrays, instead include i386-builtin.def
6274 twice to define those.
6275 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
6276 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
6277 bdesc_multi_arg): Define by including i386-builtin.def the third time.
6278 * config/i386/i386-builtin.def: New file.
6279
6280 2016-08-17 David Malcolm <dmalcolm@redhat.com>
6281
6282 * input.c (get_source_range_for_char): Rename to...
6283 (selftest::get_source_range_for_char): ...this, and move within
6284 the #if CHECKING_P guard.
6285 (get_num_source_ranges_for_substring): Rename to...
6286 (selftest::get_num_source_ranges_for_substring): ...this, move
6287 within the #if CHECKING_P guard, and make static.
6288 (selftest::assert_num_substring_ranges): Initialize
6289 actual_num_ranges.
6290
6291 2016-08-18 Alan Modra <amodra@gmail.com>
6292
6293 PR rtl-optimization/72771
6294 * reload.c (find_reloads): Don't assume that a subreg mem is OK
6295 when find_reloads_toplev returns address_reloaded==-1.
6296 (alternative_allows_const_pool_ref): Update comment.
6297
6298 2015-08-17 Alan Hayward <alan.hayward@arm.com>
6299
6300 PR tree-optimization/71752
6301 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
6302 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
6303
6304 2016-08-17 Jakub Jelinek <jakub@redhat.com>
6305
6306 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
6307 instead of testing ECF_NORETURN bit in gimple_call_flags.
6308 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
6309 * predict.c (tree_bb_level_predictions): Likewise.
6310 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
6311
6312 PR middle-end/77259
6313 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
6314 turning a call into __builtin_unreachable-like noreturn call, adjust
6315 gimple_call_set_fntype.
6316 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
6317 gimple_call_fntype has void return type.
6318
6319 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
6320
6321 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
6322 maybe_lookup_decl, to handle nested acc loop directives.
6323
6324 2016-08-17 Richard Biener <rguenther@suse.de>
6325
6326 PR tree-optimization/76490
6327 * tree-vrp.c (update_value_range): Preserve overflow infinities
6328 when intersecting with ranges from get_range_info.
6329 (operand_less_p): Handle overflow infinities correctly.
6330 (value_range_constant_singleton): Use vrp_operand_equal_p
6331 to handle overflow max/min correctly.
6332 (vrp_valueize): Likewise.
6333 (union_ranges): Likewise.
6334 (intersect_ranges): Likewise.
6335 (vrp_visit_phi_node): Improve iteration limitation to only
6336 apply when we'll possibly re-visit the PHI via a changed argument
6337 on the backedge.
6338
6339 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
6340
6341 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
6342 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
6343 rather than those that should not be built.
6344
6345 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
6346
6347 PR target/66488
6348 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
6349
6350 2016-08-17 Richard Biener <rguenther@suse.de>
6351
6352 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
6353 (verify_vssa): New function verifying virtual SSA form.
6354 (verify_ssa): Call it.
6355 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
6356 Do not apply loop-closed SSA handling to virtuals.
6357 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
6358 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
6359 when rewriting their symbol.
6360 (prepare_def_site_for): Likewise.
6361 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
6362 operands of moved stmts.
6363
6364 2016-08-17 Richard Biener <rguenther@suse.de>
6365
6366 PR tree-optimization/23855
6367 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
6368 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
6369 find guards to hoist. Do not update SSA form but rewrite virtuals
6370 into loop closed SSA.
6371 (find_loop_guard): Adjust to skip already hoisted guards. Do
6372 not mark virtuals for renaming or update SSA form.
6373
6374 2016-08-17 Martin Liska <mliska@suse.cz>
6375
6376 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
6377 a LONG_LONG_TYPE_SIZE comparison.
6378 * gcov-io.h: Remove macro definitions.
6379 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
6380 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
6381 comparison.
6382
6383 2016-08-16 Jakub Jelinek <jakub@redhat.com>
6384
6385 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
6386 that builtins not mentioned in bdesc_* arrays come first, then
6387 the ones mentioned in bdesc_* arrays in the order they appear in
6388 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
6389 IX86_BUILTIN__BDESC_*_LAST enumerator.
6390 (bdesc_mpx): Fix up a comment typo.
6391 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
6392 __builtin_ia32_vpcomneu[bwdq] builtins.
6393 (BDESC_VERIFY, BDESC_VERIFYS): Define.
6394 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
6395 enum ix86_builtins ordering.
6396 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
6397 for direct bdesc_* array member access instead of searching all the
6398 arrays until an fcode match is found.
6399
6400 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
6401
6402 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
6403 pattern as define_insn_and_split. Split insn before reload to
6404 ashl<mode>3_1.
6405 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
6406 <shift_insn><mode>3_1.
6407 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
6408 <rotate_insn><mode>3_1.
6409
6410 2016-08-16 David Malcolm <dmalcolm@redhat.com>
6411
6412 PR c/72857
6413 * input.c (get_source_range_for_substring): Rename to...
6414 (get_source_location_for_substring): ...this, adding param
6415 "caret_idx", and converting output param from source_range * to
6416 location_t *.
6417 (get_source_range_for_char): New function.
6418 (get_num_source_ranges_for_substring): Update comment to reflect
6419 above renaming.
6420 (assert_char_at_range): Update to use get_source_range_for_char
6421 rather than get_source_range_for_substring.
6422 (test_lexer_string_locations_concatenation_2): Likewise.
6423 * substring-locations.h (get_source_range_for_substring): Rename
6424 to...
6425 (get_source_location_for_substring): ...this, and adding param
6426 "caret_idx", and converting output param from source_range * to
6427 location_t *.
6428
6429 2016-08-16 David Malcolm <dmalcolm@redhat.com>
6430
6431 * input.c (class selftest::temp_source_file): Move to
6432 selftest.h.
6433 (selftest::temp_source_file::temp_source_file): Move to
6434 selftest.c.
6435 (selftest::temp_source_file::~temp_source_file): Likewise.
6436 * selftest.c (selftest::temp_source_file::temp_source_file): Move
6437 here from input.c.
6438 (selftest::temp_source_file::~temp_source_file): Likewise.
6439 * selftest.h (class selftest::temp_source_file): Move here from
6440 input.c
6441
6442 2016-08-16 Jakub Jelinek <jakub@redhat.com>
6443
6444 PR target/71910
6445 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
6446 inlining, add cgraph edge for the added __builtin_unreachable call.
6447
6448 PR middle-end/67485
6449 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
6450 only cast it to SHWI for the final comparison.
6451
6452 2016-08-16 Martin Liska <mliska@suse.cz>
6453
6454 PR gcov-profile/36412
6455 * doc/gcov.texi: Document --hash-filenames(-x).
6456 * gcov.c (print_usage): Add the option.
6457 (process_args): Process the option, sort options alphabetically.
6458 (md5sum_to_hex): New function.
6459 (make_gcov_file_name): Do the md5sum and append it to a
6460 filename.
6461
6462 2016-08-16 Bin Cheng <bin.cheng@arm.com>
6463
6464 PR tree-optimization/69848
6465 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
6466 and swtich operands to avoid additional NOT instruction.
6467 (vcond<v_cmp_mixed><mode>): Ditto.
6468 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
6469
6470 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
6471
6472 * doc/install.texi (*-*-solaris2*): Adjust latest change.
6473
6474 2016-08-16 Richard Biener <rguenther@suse.de>
6475
6476 PR tree-optimization/76783
6477 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
6478 BB visited flags at start.
6479
6480 2016-08-16 Bin Cheng <bin.cheng@arm.com>
6481
6482 PR tree-optimization/72817
6483 PR tree-optimization/73450
6484 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
6485 multiple_of_p for adjusted IV.base.
6486
6487 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
6488
6489 PR target/72867
6490 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
6491 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
6492 for !flag_finite_math_only or flag_signed_zeros.
6493 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
6494 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
6495 depend on flag_finite_math_only.
6496 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
6497 New insn pattern.
6498 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
6499 (*ieee_smin<mode>3): Ditto.
6500 (*ieee_smax<mode>3): Ditto.
6501 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
6502 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
6503 flag_signed_zeros.
6504 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
6505 depend on flag_finite_math_only.
6506 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
6507 (*mmx_<code>v2sf3): Remove.
6508 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
6509 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
6510 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
6511
6512 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
6513
6514 PR rtl-optimization/73650
6515 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
6516 it is not a simple move.
6517
6518 2016-08-15 Martin Liska <mliska@suse.cz>
6519
6520 PR driver/72765
6521 * gcc.c (do_spec_1): Call save_string with the right size.
6522 (save_string): Do an assert about string we copy.
6523
6524 2016-08-15 Richard Biener <rguenther@suse.de>
6525
6526 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
6527 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
6528 TV_MACH_DEP.
6529 (pass_data_stv): Likewise.
6530
6531 2016-08-15 Richard Biener <rguenther@suse.de>
6532
6533 PR tree-optimization/73434
6534 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
6535 TBAA info on the base when forwarding a non-invariant address.
6536
6537 2016-08-15 Jakub Jelinek <jakub@redhat.com>
6538
6539 * dwarf2out.c (struct checksum_attributes): Add
6540 at_string_length_bit_size and at_string_length_byte_size fields.
6541 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
6542 and DW_AT_string_length_byte_size.
6543 (die_checksum_ordered): Handle at_string_length_bit_size and
6544 at_string_length_byte_size.
6545 (gen_array_type_die): For dwarf_version >= 5 emit
6546 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
6547 (adjust_string_types): For dwarf_version >= 5 remove
6548 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
6549 (resolve_addr): Likewise.
6550
6551 PR debug/71906
6552 * dwarf2out.c (string_types): New variable.
6553 (gen_array_type_die): Change early_dwarf handling of
6554 DW_AT_string_length, create DW_OP_call4 referencing the
6555 length var temporarily. Handle parameters that are pointers
6556 to string length.
6557 (adjust_string_types): New function.
6558 (gen_subprogram_die): Temporarily set string_types to local var,
6559 call adjust_string_types if needed.
6560 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
6561 New functions.
6562 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
6563
6564 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
6565
6566 * doc/install.texi (*-*-solaris2*): Fix version number and document
6567 requirement on GNU make for building libjava with the Solaris linker.
6568
6569 2016-08-15 Martin Liska <mliska@suse.cz>
6570 Jakub Jelinek <jakub@redhat.com>
6571
6572 PR tree-optimization/72824
6573 * tree-loop-distribution.c (const_with_all_bytes_same)
6574 <case VECTOR_CST>: Fix a typo.
6575
6576 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
6577
6578 PR target/76342
6579 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
6580 Renamed from _mm512_undefined_si512.
6581 (_mm_undefined_si512): New definition.
6582
6583 2016-08-13 Richard Biener <rguenther@suse.de>
6584
6585 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
6586 into PHIs and update the lattice for its def.
6587
6588 2016-08-12 Jakub Jelinek <jakub@redhat.com>
6589
6590 PR c/71512
6591 * ubsan.c (instrument_si_overflow): Pass true instead of false
6592 to gsi_replace.
6593 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
6594 of bbs. Return TODO_cleanup_cfg if any returned true.
6595
6596 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6597
6598 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
6599 ISA 3.0 MTVSRDD instruction.
6600 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
6601 vecperm.
6602
6603 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
6604
6605 PR tree-optimization/71083
6606 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
6607 bitfield access when possible.
6608
6609 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
6610
6611 PR middle-end/71654
6612 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
6613 sign-changing cast from a shorter unsigned type to a wider
6614 signed type.
6615
6616 2016-08-12 Jakub Jelinek <jakub@redhat.com>
6617
6618 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
6619 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
6620 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
6621
6622 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6623
6624 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
6625 Correct costs for vec_construct.
6626
6627 2016-08-12 Bin Cheng <bin.cheng@arm.com>
6628
6629 PR tree-optimization/69848
6630 * tree-vectorizer.h (enum vect_def_type): New condition reduction
6631 type CONST_COND_REDUCTION.
6632 * tree-vect-loop.c (vectorizable_reduction): Support new condition
6633 reudction type CONST_COND_REDUCTION.
6634
6635 2016-08-12 Richard Biener <rguenther@suse.de>
6636
6637 PR tree-optimization/57326
6638 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
6639 returning an SSA name.
6640 (phi_translate_1): When fully_constant_expression returns a NAME
6641 make sure we have a leader for it.
6642
6643 2016-08-12 Martin Liska <mliska@suse.cz>
6644 Adam Fineman <afineman@afineman.com>
6645
6646 * gcov.c (process_file): Create .gcov file when .gcda
6647 file is missing.
6648
6649 2016-08-12 Marek Polacek <polacek@redhat.com>
6650
6651 PR c/7652
6652 * alias.c (find_base_value): Adjust fall through comment.
6653 * cfgexpand.c (expand_debug_expr): Likewise.
6654 * combine.c (find_split_point): Likewise.
6655 (expand_compound_operation): Likewise. Add FALLTHRU.
6656 (make_compound_operation): Adjust fall through comment.
6657 (canon_reg_for_combine): Add FALLTHRU.
6658 (force_to_mode): Adjust fall through comment.
6659 (simplify_shift_const_1): Likewise.
6660 (simplify_comparison): Likewise.
6661 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
6662 FALLTHRU.
6663 * config/aarch64/predicates.md: Likewise.
6664 * config/i386/i386.c (function_arg_advance_32): Likewise.
6665 (ix86_gimplify_va_arg): Likewise.
6666 (print_reg): Likewise.
6667 (ix86_print_operand): Likewise.
6668 (ix86_build_const_vector): Likewise.
6669 (ix86_expand_branch): Likewise.
6670 (ix86_sched_init_global): Adjust fall through comment.
6671 (ix86_expand_args_builtin): Add FALLTHRU.
6672 (ix86_expand_builtin): Likewise.
6673 (ix86_expand_vector_init_one_var): Likewise.
6674 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
6675 (rs6000_adjust_cost): Likewise.
6676 (insn_must_be_first_in_group): Likewise.
6677 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
6678 * dbxout.c (dbxout_symbol): Adjust fall through comment.
6679 * df-scan.c (df_uses_record): Likewise.
6680 * dojump.c (do_jump): Add FALLTHRU.
6681 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
6682 comment.
6683 (resolve_args_picking_1): Adjust fall through comment.
6684 (loc_list_from_tree_1): Likewise.
6685 * expmed.c (make_tree): Likewise.
6686 * expr.c (expand_expr_real_2): Add FALLTHRU.
6687 (expand_expr_real_1): Likewise. Adjust fall through comment.
6688 * fold-const.c (const_binop): Adjust fall through comment.
6689 (fold_truth_not_expr): Likewise.
6690 (fold_cond_expr_with_comparison): Add FALLTHRU.
6691 (fold_binary_loc): Likewise.
6692 (contains_label_1): Adjust fall through comment.
6693 (multiple_of_p): Likewise.
6694 * gcov-tool.c (process_args): Add FALLTHRU.
6695 * genattrtab.c (check_attr_test): Likewise.
6696 (write_test_expr): Likewise.
6697 * genconfig.c (walk_insn_part): Likewise.
6698 * genpreds.c (validate_exp): Adjust fall through comment.
6699 (needs_variable): Likewise.
6700 * gensupport.c (get_alternatives_number): Add FALLTHRU.
6701 (subst_dup): Likewise.
6702 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
6703 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
6704 (gimplify_scan_omp_clauses): Add FALLTHRU.
6705 (goa_stabilize_expr): Likewise.
6706 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
6707 through comment.
6708 * hsa-gen.c (get_address_from_value): Likewise.
6709 * ipa-icf.c (sem_function::hash_stmt): Likewise.
6710 * ira.c (ira_setup_alts): Add FALLTHRU.
6711 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
6712 comment.
6713 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
6714 * opts.c (common_handle_option): Likewise.
6715 * read-rtl.c (read_rtx_code): Likewise.
6716 * real.c (round_for_format): Likewise.
6717 * recog.c (asm_operand_ok): Likewise.
6718 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
6719 * reload1.c (set_label_offsets): Likewise.
6720 (eliminate_regs_1): Likewise.
6721 (reload_reg_reaches_end_p): Likewise.
6722 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
6723 (rtx_cost): Likewise.
6724 * sched-rgn.c (is_exception_free): Likewise.
6725 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
6726 * stor-layout.c (int_mode_for_mode): Likewise.
6727 * toplev.c (print_to_asm_out_file): Likewise.
6728 (print_to_stderr): Likewise.
6729 * tree-cfg.c (gimple_verify_flow_info): Likewise.
6730 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
6731 (chrec_fold_multiply): Likewise.
6732 (evolution_function_is_invariant_rec_p): Likewise.
6733 (for_each_scev_op): Likewise.
6734 * tree-data-ref.c (siv_subscript_p): Likewise.
6735 (get_references_in_stmt): Likewise.
6736 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
6737 (substitute_in_expr): Likewise.
6738 (type_cache_hasher::equal): Likewise.
6739 (walk_type_fields): Likewise.
6740 * var-tracking.c (adjust_mems): Add FALLTHRU.
6741 (set_dv_changed): Adjust fall through comment.
6742 * varasm.c (default_function_section): Add FALLTHRU.
6743
6744 2016-08-12 Marek Polacek <polacek@redhat.com>
6745
6746 PR c/7652
6747 * tree-complex.c (expand_complex_division): Add missing break.
6748
6749 2016-08-12 Richard Biener <rguenther@suse.de>
6750
6751 * passes.c (execute_todo): Do not push/pop TV_TODO.
6752 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
6753 (execute_one_pass): Likewise.
6754 * common.opt (ftime-report-details): New switch.
6755 * doc/invoke.texi (ftime-report-details): Document.
6756 * timevar.h (timer::print_row): Adjust signature.
6757 (timer::all_zero): New static helper.
6758 (timer::child_map_t): New typedef.
6759 (timer::time_var_def): Add children field.
6760 * timevar.c (timer::named_items::print): Adjust.
6761 (timer::~timer): Free timevar recorded children.
6762 (timer::pop_internal): When -ftime-report-details record
6763 time spent in sub-timevars.
6764 (timer::print_row): Adjust.
6765 (timer::print): Print sub-timevar stats, use all_zero.
6766 * timevar.def (TV_TODO): Remove.
6767
6768 2016-08-12 Richard Biener <rguenther@suse.de>
6769
6770 PR tree-optimization/72851
6771 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
6772 worklists to use bitmaps indexed in execution order.
6773 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
6774 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
6775 (cfg_blocks): Make a bitmap.
6776 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
6777 New globals.
6778 (cfg_blocks_empty_p): Adjust.
6779 (cfg_blocks_add): Likewise.
6780 (cfg_blocks_get): Likewise.
6781 (add_ssa_edge): Likewise.
6782 (add_control_edge): Likewise.
6783 (simulate_stmt): Likewise.
6784 (process_ssa_edge_worklist): Likewise.
6785 (simulate_block): Likewise.
6786 (ssa_prop_init): Compute PRE order and stmt UIDs.
6787 (ssa_prop_fini): Adjust.
6788 (ssa_propagate): Adjust.
6789
6790 2016-08-12 Richard Biener <rguenther@suse.de>
6791
6792 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
6793 the currently executable edges have fixed ranges. Always
6794 go through update_value_range.
6795
6796 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
6797
6798 PR debug/63240
6799 * langhooks-def.h
6800 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
6801 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
6802 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
6803 (LANG_HOOKS_DECLS): Add it.
6804 * langhooks.h (struct lang_hooks_for_decls): Add
6805 function_decl_defaulted. Const_tree-ify
6806 function_decl_explicit_p and function_decl_deleted_p.
6807 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
6808 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
6809 also at strict DWARF v5.
6810
6811 PR debug/55641
6812 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
6813 TYPE_QUAL_CONST in reference-typed decls.
6814
6815 PR debug/49366
6816 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
6817 in DW_OP_pieces, just enough to handle pointers to member
6818 functions.
6819 (gen_remaining_tmpl_value_param_die_attribute): Use a location
6820 expression on DWARFv5 if a constant value doesn't work.
6821
6822 2016-08-11 David Malcolm <dmalcolm@redhat.com>
6823
6824 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
6825 * selftest.c (selftest::test_assertions): New function.
6826 (selftest::selftest_c_tests): New function.
6827 * selftest.h (selftest::selftest_c_tests): New declaration.
6828
6829 2016-08-11 Richard Biener <rguenther@suse.de>
6830 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6831
6832 PR rtl-optimization/72855
6833 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
6834
6835 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6836
6837 PR target/72863
6838 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
6839 (vsx_store_<mode>): Likewise.
6840
6841 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
6842
6843 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
6844 TImode CONST_WIDE_INT store.
6845 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
6846
6847 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
6848
6849 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
6850 mode if unaligned SSE load and store are optimal.
6851
6852 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
6853
6854 PR tree-optimization/71083
6855 * tree-predcom.c (ref_at_iteration): Correctly align the
6856 reference type.
6857
6858 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6859
6860 * config/s390/s390-builtin-types.def: Add INT128 types.
6861 * config/s390/s390-builtins.def: Add INT128 variants for the add
6862 sub low-level builtins dealing with TImode.
6863 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
6864 via subreg when expanding a builtin.
6865 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
6866 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
6867 Fix comment.
6868 * config/s390/vecintrin.h: Adjust builtin names accordingly.
6869 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
6870 ("vec_addc<mode>", "vec_addc_u128"): Merge to
6871 "vacc<bhfgq>_<mode>".
6872 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
6873 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
6874 ("vec_subc<mode>", "vec_subc_u128"): Merge to
6875 "vscbi<bhfgq>_<mode>".
6876 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
6877 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
6878
6879 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6880
6881 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
6882
6883 2016-08-11 Bin Cheng <bin.cheng@arm.com>
6884
6885 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
6886 unused declaration.
6887 (vcond<v_cmp_mixed><mode>): Ditto.
6888 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
6889
6890 2016-08-11 Bin Cheng <bin.cheng@arm.com>
6891
6892 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
6893 variable explicitly, also assert on it before use.
6894
6895 2016-08-11 Richard Biener <rguenther@suse.de>
6896
6897 PR tree-optimization/72772
6898 * cfgloopmanip.c (create_preheader): Use split_edge if there
6899 is a single loop entry, avoiding degenerate PHIs.
6900
6901 2016-08-11 Richard Biener <rguenther@suse.de>
6902
6903 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
6904 unconditional TODO_cleanup_cfg.
6905 (pass_thread_jumps::execute): Initialize loops, perform a CFG
6906 cleanup only if we threaded a jump.
6907
6908 2016-08-11 Alan Modra <amodra@gmail.com>
6909
6910 PR target/71680
6911 * lra-constraints.c (simplify_operand_subreg): Allow subreg
6912 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
6913 slow. Emit two reloads for slow mem case, first loading in
6914 fast innermode, then converting to required mode.
6915
6916 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
6917
6918 * config/rs6000/altivec.h (vec_extract_exp): New macro.
6919 (vec_extract_sig): New macro.
6920 (vec_insert_exp): New macro.
6921 (vec_test_data_class): New macro.
6922 (scalar_extract_exp): New macro.
6923 (scalar_extract_sig): New macro.
6924 (scalar_insert_exp): New macro.
6925 (scalar_test_data_class): New macro.
6926 (scalar_test_neg): New macro.
6927 (scalar_cmp_exp_gt): New macro.
6928 (scalar_cmp_exp_lt): New macro.
6929 (scalar_cmp_exp_eq): New macro.
6930 (scalar_cmp_exp_unordered): New macro.
6931 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
6932 to enforce constraint that operand is a 7-bit unsigned literal.
6933 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
6934 for power9 built-ins.
6935 (BU_P9V_VSX_2): Likewise.
6936 (BU_P9V_64BIT_VSX_2): Likewise.
6937 (VSEEDP): Add scalar extract exponent support.
6938 (VSEESP): Add scalar extract signature support.
6939 (VSTDCNDP): Add scalar test negative support.
6940 (VSTDCNSP): Likewise.
6941 (VSIEDP): Add scalar insert exponent support.
6942 (VSCEDPGT): Add scalar compare exponent greater than support.
6943 (VSCEDPLT): Add scalar compare exponent less than support.
6944 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
6945 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
6946 (VSTDCDP): Add scalar test data class support.
6947 (VSTDCSP): Likewise.
6948 (VSEEDP): Add overload support for scalar extract exponent
6949 operation.
6950 (VSESDP): Add overload support for scalar extract signature
6951 operation.
6952 (VSTDCN): Add overload support for scalar test negative
6953 operation.
6954 (VSTDCNDP): Add overload support for scalar test negative
6955 operation.
6956 (VSTDCNSP): Add overload support for scalar test negative
6957 operation.
6958 (VSIEDP): Add overload support for scalar insert exponent
6959 operation.
6960 (VSTDC): Add overload support for scalar test data class
6961 operation.
6962 (VSTDCDP): Add overload support for scalar test data class
6963 operation.
6964 (VSTDCSP): Add overload support for scalar test data class
6965 opreation.
6966 (VSCEDPGT): Add overload support for scalar compare exponent
6967 greater than operation.
6968 (VSCEDPLT): Add overload support for scalar compare exponent
6969 less than operation.
6970 (VSCEDPEQ): Add overload support for scalar compare exponent
6971 test-for-equality operation.
6972 (VSCEDPUO): Add overload support for scalar compare exponent
6973 test-for-unordered operation.
6974 (VEEDP): Add vector extract exponent support.
6975 (VEESP): Likewise.
6976 (VESDP): Add vector extract significand support.
6977 (VESSP): Likewise.
6978 (VIEDP): Add vector insert exponent support.
6979 (VIESP): Likewise.
6980 (VTDCDP): Add vector test data class support.
6981 (VTDCSP): Likewise.
6982 (VES): Add overload support for vector extract significand operation.
6983 (VESDP): Likewise.
6984 (VESSP): Likewise
6985 (VEE): Add overload support for vector extract exponent operation.
6986 (VEEDP): Likewise.
6987 (VEESP): Likewise.
6988 (VTDC): Add overload support for vector test data class operation.
6989 (VTDCDP): Likewise.
6990 (VTDCSP): Likewise.
6991 (VIE): Add overload support for vector insert exponent operation.
6992 (VIEDP): Likewise.
6993 (VIESP): Likewise.
6994 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6995 overloaded binary floating point functions.
6996 (altivec_resolve_overloaded_builtin): Improve error messages to
6997 distinguish between functions not supported in the current
6998 compiler configuration and functions that were invoked with an
6999 invalid parameter combination, and include the built-in function
7000 name in both error messages.
7001 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
7002 New prototype.
7003 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
7004 function.
7005 (rs6000_expand_binop_builtin): Add check to enforce that argument
7006 2 of the test data class operations is a 7-bit unsigned literal.
7007 (rs6000_invalid_builtin): Add code to issue an error message if a
7008 built-in function that requires the power9_vector and -m32
7009 command-line options is compiled without these options.
7010 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
7011 (UNSPEC_VSX_SXSIGDP): New value.
7012 (UNSPEC_VSX_SXSIGPDP): New value.
7013 (UNSPEC_VSX_SIEXPDP): New value.
7014 (UNSPEC_VSX_SCMPEXPDP): New value.
7015 (UNSPEC_VSX_STSTDC): New value.
7016 (UNSPEC_VSX_VXEXP): New value.
7017 (UNSPEC_VSX_VXSIG): New value.
7018 (UNSPEC_VSX_VIEXP): New value.
7019 (UNSPEC_VSX_VTSTDC): New value.
7020 (xsxexpdp): New insn for scalar extract exponent.
7021 (xsxsigdp): New insn for scalar extract significand.
7022 (xsiexpdp): New insn for scalar insert exponent.
7023 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
7024 (*xscmpexpdp): New insn for scalar compare exponents.
7025 (xststdc<Fvsx): New expansion for both single- and
7026 double-precision scalar test data class operations.
7027 (xststdcneg<Fvsx>): New expansion for both single- and
7028 double-precision scalar test for negative value operations.
7029 (*xststdc<Fvsx>): New insn for scalar test data class
7030 operation.
7031 (xvxexp<VSs>): New insn for single- and double-precision
7032 vector extract exponent operation.
7033 (xvxsig<VSs>): New insn for single- and double-precision
7034 vector extract significand operation.
7035 (xviexp<VSs>): New insn for single- and double-precision
7036 vector insert exponent operation.
7037 (xvtstdc<VSs>): New insn for single- and double-precision
7038 vector test data class operation.
7039 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
7040 built-in functions to represent the Power9 binary floating-point
7041 support instructions.
7042
7043 2016-08-10 bin cheng <bin.cheng@arm.com>
7044
7045 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
7046
7047 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
7048 Renlin Li <renlin.li@arm.com>
7049 Bin Cheng <bin.cheng@arm.com>
7050
7051 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
7052 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
7053 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
7054 (aarch64_vcond_internal<mode><mode>): Delete pattern.
7055 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
7056 (vcond<v_cmp_result><mode>): Ditto.
7057 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
7058 (vcondu<mode><mode>): Ditto.
7059 (vcond<v_cmp_mixed><mode>): New pattern.
7060 (vcondu<mode><v_cmp_mixed>): New pattern.
7061 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
7062 of aarch64_vcond_internal.
7063
7064 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
7065 Renlin Li <renlin.li@arm.com>
7066 Bin Cheng <bin.cheng@arm.com>
7067
7068 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
7069 (vec_cmp<mode><v_cmp_result>): New pattern.
7070 (vec_cmpu<mode><mode>): New pattern.
7071 (vcond_mask_<mode><v_cmp_result>): New pattern.
7072
7073 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
7074
7075 PR tree-optimization/71734
7076 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
7077 REF_LOOP, invoke ref_indep_loop_p_1.
7078 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
7079 to ref_indep_loop_p.
7080 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
7081 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
7082 is inside LOOP, do not cache dpendence value for loops with
7083 non-zero SAFELEN.
7084 (ref_indep_loop_p_2): Delete function.
7085 (can_sm_ref_p): Pass LOOP as additional argument to
7086 ref_indep_loop_p.
7087
7088 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
7089
7090 PR target/72853
7091 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
7092 being an offsettable address.
7093
7094 2016-08-10 Martin Liska <mliska@suse.cz>
7095
7096 PR gcov-profile/58306
7097 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
7098 atomic variants of profile update functions.
7099
7100 2016-08-10 Martin Liska <mliska@suse.cz>
7101
7102 Cherry picked (and modified) from google-4_7 branch
7103 2012-12-26 Rong Xu <xur@google.com>
7104 * common.opt (fprofile-update): Add new flag.
7105 * coretypes.h: Define enum profile_update.
7106 * doc/invoke.texi: Document -fprofile-update.
7107 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
7108 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
7109 * tree-profile.c (gimple_init_edge_profiler): Generate
7110 also atomic profiler update.
7111 (gimple_gen_edge_profiler): Likewise.
7112
7113 2016-08-10 David Malcolm <dmalcolm@redhat.com>
7114
7115 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
7116 stack_usage_file to NULL after fclose calls.
7117
7118 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7119
7120 PR target/71873
7121 * reload.c (push_reload): Compute subreg_in_class for
7122 subregs of constants and plus expressions. Remove special
7123 handling of SYMBOL_REFs.
7124
7125 2016-08-10 Alan Modra <amodra@gmail.com>
7126
7127 PR target/71680
7128 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
7129 SImode for TARGET_E500_DOUBLE when given SImode.
7130
7131 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
7132
7133 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
7134 unused variable __O.
7135
7136 2016-08-09 Martin Liska <mliska@suse.cz>
7137
7138 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
7139 _gcov_reset to __gcov_reset.
7140 * doc/gcov-tool.texi: Fix typo.
7141
7142 2016-08-09 Martin Liska <mliska@suse.cz>
7143
7144 * value-prof.c (gimple_divmod_values_to_profile): Do not
7145 instrument MOD histogram if a value is not a SSA name.
7146
7147 2016-08-09 Martin Liska <mliska@suse.cz>
7148
7149 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
7150 values.
7151
7152 2016-08-09 Renlin Li <renlin.li@arm.com>
7153
7154 PR middle-end/64971
7155 * calls.c (prepare_call_address): Convert funexp to Pmode when
7156 necessary.
7157 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
7158 (sibcall_value): Likewise.
7159
7160 2016-08-09 Marek Polacek <polacek@redhat.com>
7161
7162 PR c/7652
7163 * cselib.c (cselib_expand_value_rtx_1): Add return.
7164 * gengtype.c (dbgprint_count_type_at): Likewise.
7165 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
7166 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
7167
7168 2016-08-09 Martin Jambor <mjambor@suse.cz>
7169
7170 PR ipa/71981
7171 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
7172 if instance is a MEM_REF.
7173
7174 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
7175
7176 PR target/72843
7177 * config/i386/i386.md (*movtf_internal): Use
7178 lra_in_progress || reload_completed instead of !can_create_pseudo_p
7179 in the insn constraint.
7180 (*movxf_internal): Ditto.
7181 (*movdf_internal): Ditto.
7182 (*movsf_internal): Ditto.
7183
7184 2016-08-09 Bin Cheng <bin.cheng@arm.com>
7185
7186 PR tree-optimization/72772
7187 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
7188 for expanded base.
7189
7190 2016-08-09 Bin Cheng <bin.cheng@arm.com>
7191
7192 PR tree-optimization/72772
7193 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
7194 parameter STOP.
7195 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
7196 parameter STOP and update calls. Move expand_simple_operations
7197 function call from here...
7198 (simplify_using_initial_conditions): ...to here. Delete parameter
7199 STOP.
7200 (tree_simplify_using_condition): Delete parameter STOP.
7201 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
7202 simplify_using_initial_conditions.
7203
7204 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
7205
7206 PR c/65345
7207 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
7208 Use create_tmp_var_raw instead of create_tmp_var.
7209
7210 2016-08-09 Richard Biener <rguenther@suse.de>
7211
7212 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
7213 Treat same SSA names related.
7214
7215 2016-08-09 Jakub Jelinek <jakub@redhat.com>
7216
7217 PR tree-optimization/72824
7218 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
7219 real_zerop is not negative.
7220
7221 2016-08-09 Richard Biener <rguenther@suse.de>
7222
7223 PR tree-optimization/71802
7224 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
7225 all merge opportunities with the predecessor.
7226
7227 2016-08-09 Richard Biener <rguenther@suse.de>
7228
7229 PR ipa/68273
7230 * ipa-prop.c (ipa_modify_formal_parameters): Build
7231 parameter types with natural alignment also for the
7232 over-aligned case.
7233
7234 2016-08-08 Andi Kleen <ak@linux.intel.com>
7235
7236 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
7237
7238 2016-08-08 David Malcolm <dmalcolm@redhat.com>
7239
7240 PR c/64955
7241 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
7242 do-nothing langhook.
7243 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
7244 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
7245 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
7246 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
7247
7248 2016-08-08 David Malcolm <dmalcolm@redhat.com>
7249
7250 PR bootstrap/72844
7251 * input.c: Ensure that HAVE_ICONV is defined.
7252
7253 2016-08-08 Jakub Jelinek <jakub@redhat.com>
7254
7255 PR middle-end/72781
7256 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
7257 private vars for lastprivate and for linear iterator.
7258
7259 PR middle-end/68762
7260 * omp-simd-clone.c: Include varasm.h.
7261 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
7262 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
7263 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
7264 update function name.
7265
7266 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
7267
7268 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
7269 (avr_diagnose_devicespecs_error): Remove.
7270 (avr_devicespecs_file): Remove composing absolute path for specfile
7271 and its verbose info. Remove conditions to check specs-file,
7272
7273 2016-08-08 Jakub Jelinek <jakub@redhat.com>
7274
7275 PR rtl-optimization/72821
7276 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
7277 just return false for them.
7278
7279 2016-08-08 Alan Modra <amodra@gmail.com>
7280
7281 PR target/72771
7282 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
7283 toc refs created during reload. Update function comment.
7284
7285 2016-08-08 Alan Modra <amodra@gmail.com>
7286
7287 PR target/72802
7288 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
7289 alternatives. Put loads first, then stores, and reg/reg moves
7290 within same class later. Delete attr length.
7291
7292 2016-08-08 Alan Modra <amodra@gmail.com>
7293
7294 PR target/72802
7295 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
7296 (mem_operand_ds_form): New predicate.
7297 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
7298 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
7299 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
7300 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
7301 (extendsfdf2_fpr): Replace o constraint with wY.
7302
7303 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
7304
7305 * tree-ssa-threadbackward.c: Include tree-inline.h
7306 (profitable_jump_thread_path): Use estimate_num_insns to estimate
7307 size of copied block; for cold paths reduce duplication.
7308 (find_jump_threads_backwards): Remove redundant tests.
7309 (pass_thread_jumps::gate): Enable for -Os.
7310
7311 2016-08-07 Jakub Jelinek <jakub@redhat.com>
7312
7313 PR c/72816
7314 * stor-layout.c (layout_decl): Fix up formatting.
7315 (relayout_decl): Allow DECL to be FIELD_DECL.
7316
7317 2016-08-07 Alan Modra <amodra@gmail.com>
7318
7319 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
7320
7321 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
7322
7323 * data-streamer-in.c (streamer_read_wide_int): New.
7324 (streamer_read_widest_int): Renamed function.
7325 * data-streamer-out.c (streamer_write_wide_int): New
7326 (streamer_write_widest_int): Renamed function.
7327 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
7328 data-stream-in.c.
7329 (input_cfg): Call renamed function.
7330 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
7331 data-stream-out.c.
7332 (output_cfg): Call renamed function.
7333 * data-streamer.h: Add declarations.
7334
7335 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7336
7337 * tree-ssa-ccp.c (extend_mask): New param sgn.
7338 Remove ORing with wi::mask.
7339 (get_default_value): Adjust call to extend_mask to pass sign.
7340 (evaluate_stmt): Likewise.
7341
7342 2016-08-06 Jakub Jelinek <jakub@redhat.com>
7343
7344 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
7345 INT64_MAX.
7346
7347 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7348
7349 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
7350 transform if operand's type is pointer to function or method.
7351
7352 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
7353
7354 PR tree-optimization/18046
7355 * tree-ssa-threadedge.c: Include cfganal.h.
7356 (simplify_control_statement_condition): If simplifying a
7357 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
7358 with the dominating ASSERT_EXPR before handing it off to VRP.
7359 Mention that a CASE_LABEL_EXPR may be returned.
7360 (thread_around_empty_blocks): Adjust to handle
7361 simplify_control_statement_condition() returning a
7362 CASE_LABEL_EXPR.
7363 (thread_through_normal_block): Likewise.
7364 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
7365 a switch statement by trying to determine which case label
7366 will be taken.
7367
7368 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
7369
7370 PR rtl-optimization/69847
7371 * lra-constraints.c (process_invariant_for_inheritance): Save
7372 pattern instead of src.
7373 (remove_inheritance_pseudos): Use the pattern. Add assert.
7374
7375 2016-08-05 David Malcolm <dmalcolm@redhat.com>
7376
7377 * input.c (string_concat::string_concat): New constructor.
7378 (string_concat_db::string_concat_db): New constructor.
7379 (string_concat_db::record_string_concatenation): New method.
7380 (string_concat_db::get_string_concatenation): New method.
7381 (string_concat_db::get_key_loc): New method.
7382 (class auto_cpp_string_vec): New class.
7383 (get_substring_ranges_for_loc): New function.
7384 (get_source_range_for_substring): New function.
7385 (get_num_source_ranges_for_substring): New function.
7386 (class selftest::lexer_test_options): New class.
7387 (struct selftest::lexer_test): New struct.
7388 (class selftest::ebcdic_execution_charset): New class.
7389 (selftest::ebcdic_execution_charset::s_singleton): New variable.
7390 (selftest::lexer_test::lexer_test): New constructor.
7391 (selftest::lexer_test::~lexer_test): New destructor.
7392 (selftest::lexer_test::get_token): New method.
7393 (selftest::assert_char_at_range): New function.
7394 (ASSERT_CHAR_AT_RANGE): New macro.
7395 (selftest::assert_num_substring_ranges): New function.
7396 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
7397 (selftest::assert_has_no_substring_ranges): New function.
7398 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
7399 (selftest::test_lexer_string_locations_simple): New function.
7400 (selftest::test_lexer_string_locations_ebcdic): New function.
7401 (selftest::test_lexer_string_locations_hex): New function.
7402 (selftest::test_lexer_string_locations_oct): New function.
7403 (selftest::test_lexer_string_locations_letter_escape_1): New function.
7404 (selftest::test_lexer_string_locations_letter_escape_2): New function.
7405 (selftest::test_lexer_string_locations_ucn4): New function.
7406 (selftest::test_lexer_string_locations_ucn8): New function.
7407 (selftest::uint32_from_big_endian): New function.
7408 (selftest::test_lexer_string_locations_wide_string): New function.
7409 (selftest::uint16_from_big_endian): New function.
7410 (selftest::test_lexer_string_locations_string16): New function.
7411 (selftest::test_lexer_string_locations_string32): New function.
7412 (selftest::test_lexer_string_locations_u8): New function.
7413 (selftest::test_lexer_string_locations_utf8_source): New function.
7414 (selftest::test_lexer_string_locations_concatenation_1): New
7415 function.
7416 (selftest::test_lexer_string_locations_concatenation_2): New
7417 function.
7418 (selftest::test_lexer_string_locations_concatenation_3): New
7419 function.
7420 (selftest::test_lexer_string_locations_macro): New function.
7421 (selftest::test_lexer_string_locations_stringified_macro_argument):
7422 New function.
7423 (selftest::test_lexer_string_locations_non_string): New function.
7424 (selftest::test_lexer_string_locations_long_line): New function.
7425 (selftest::test_lexer_char_constants): New function.
7426 (selftest::input_c_tests): Call the new test functions once per
7427 case within the line_table test matrix.
7428 * input.h (struct string_concat): New struct.
7429 (struct location_hash): New struct.
7430 (class string_concat_db): New class.
7431 * substring-locations.h: New header.
7432
7433 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
7434
7435 PR tree-optimization/72810
7436 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
7437 the type of the case labels when truncating.
7438
7439 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
7440
7441 PR Target/72819
7442 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
7443 (aarch64_fp16_ptr_type_node): Likewise.
7444 * config/aarch64/aarch64-simd-builtins.c
7445 (aarch64_fp16_ptr_type_node): Define.
7446 (aarch64_init_fp16_types): New, refactored out of...
7447 (aarch64_init_builtins): ...here, update to call
7448 aarch64_init_fp16_types.
7449 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
7450 HFmode.
7451 (aapcs_vfp_sub_candidate): Likewise.
7452
7453 2016-08-05 Martin Liska <mliska@suse.cz>
7454 Joshua Cranmer <Pidgeot18@gmail.com>
7455
7456 * gcov.c (line_t::has_block): New function.
7457 (enum loop_type): New enum.
7458 (handle_cycle): New function.
7459 (unblock): Likewise.
7460 (circuit): Likewise.
7461 (get_cycles_count): Likewise.
7462 (accumulate_line_counts): Use new loop detection algorithm.
7463
7464 2016-08-05 Martin Liska <mliska@suse.cz>
7465
7466 * gcov.c (output_intermediate_file): Rename
7467 function_info::line_next to next_file_fn.
7468 (process_file): Likewise.
7469 (read_graph_file): Likewise.
7470 (accumulate_line_counts): Likewise.
7471 (output_lines): Likewise.
7472
7473 2016-08-05 Richard Biener <rguenther@suse.de>
7474
7475 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
7476 restriction on threading to a loop header.
7477
7478 2016-08-05 Richard Biener <rguenther@suse.de>
7479
7480 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
7481 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
7482 adjust loop info accordingly.
7483
7484 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
7485
7486 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
7487 before folding call to __builtin_constant_p with parameters to false.
7488
7489 2016-08-05 Alan Modra <amodra@gmail.com>
7490
7491 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
7492 code accidentally committed 2016-05-02 providing class when given
7493 NO_REGS.
7494
7495 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
7496
7497 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
7498 the case label ranges that partially overlap with OP's value
7499 range.
7500
7501 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
7502
7503 PR target/72805
7504 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
7505 Cast builtin function result to __mmask16 instead of __mmask8.
7506 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
7507 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
7508 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
7509
7510 2016-08-04 David Malcolm <dmalcolm@redhat.com>
7511
7512 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
7513 (ASSERT_TRUE_AT): New macro.
7514 (ASSERT_FALSE): Reimplement in terms of...
7515 (ASSERT_FALSE_AT): New macro.
7516 (ASSERT_STREQ_AT): Fix typo in comment.
7517
7518 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
7519
7520 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
7521 labels are exhaustive, designate the label with the widest
7522 range to be the default label.
7523
7524 2016-08-04 Andrew Pinski <apinski@cavium.com>
7525
7526 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
7527 (thunderx_tunings): Use thunderx_vector_cost instead of
7528 generic_vector_cost.
7529
7530 2016-08-04 Martin Liska <mliska@suse.cz>
7531
7532 * gcov.c (main): Fix GNU coding style.
7533 (output_intermediate_file): Likewise.
7534 (process_file): Likewise.
7535 (generate_results): Likewise.
7536 (release_structures): Likewise.
7537 (create_file_names): Likewise.
7538 (find_source): Likewise.
7539 (read_graph_file): Likewise.
7540 (find_exception_blocks): Likewise.
7541 (canonicalize_name): Likewise.
7542 (make_gcov_file_name): Likewise.
7543 (mangle_name): Likewise.
7544 (accumulate_line_counts): Likewise.
7545 (output_branch_count): Likewise.
7546 (read_line): Likewise.
7547
7548 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
7549
7550 PR rtl-optimization/71779
7551 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
7552 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
7553 or if it was truncated.
7554
7555 PR rtl-optimization/70903
7556 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
7557
7558 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
7559
7560 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
7561 accessing SSA_NAME_PTR_INFO.
7562
7563 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
7564
7565 PR 70677
7566 * common/config/avr/avr-common.c (avr_option_optimization_table)
7567 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
7568
7569 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
7570
7571 PR 55181
7572 * config/avr/avr.md: New pattern to work around do_store_flag
7573 generating shift instructions for bit extractions.
7574
7575 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
7576
7577 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
7578 BITMAP_ALLOC.
7579 (add_equivalence): Likewise.
7580 (get_value_range): Allocate value range with vrp_value_range_pool.
7581 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
7582 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
7583
7584 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
7585
7586 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
7587 the default for the rs6000 port.
7588
7589 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
7590
7591 PR middle-end/71876
7592 * calls.c (special_function_p): Remove special handling of
7593 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
7594 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
7595 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
7596
7597 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
7598
7599 PR middle-end/72778
7600 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
7601 Don't stop on regular insns.
7602
7603 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
7604
7605 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
7606 size to DImode boundary.
7607 (nvptx_propagate): Likewise.
7608
7609 2016-08-03 Alan Modra <amodra@gmail.com>
7610
7611 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
7612 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
7613 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
7614 from -mefficient-unaligned-vector. Note that this affects fp too.
7615
7616 2016-08-03 Alan Modra <amodra@gmail.com>
7617
7618 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
7619 cost more.
7620
7621 2016-08-03 Alan Modra <amodra@gmail.com>
7622
7623 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
7624 to a reg. Localize vars.
7625
7626 2016-08-03 Alan Modra <amodra@gmail.com>
7627
7628 * config/rs6000/rs6000.opt: Remove negatives from help strings
7629 and comments.
7630
7631 2016-08-03 Alan Modra <amodra@gmail.com>
7632
7633 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
7634 Delete duplicated code.
7635
7636 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
7637
7638 PR middle-end/72778
7639 * lra-spills.c (regno_in_use_p): New.
7640 (lra_final_code_change): Use it.
7641
7642 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
7643
7644 PR rtl-optimization/69847
7645 * lra-int.h (struct lra-reg): Use restore_rtx instead of
7646 restore_regno.
7647 (lra_rtx_hash): New.
7648 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
7649 of restore_regno.
7650 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
7651 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
7652 * lra-spills.c (lra_final_code_change): Don't delete insn when the
7653 next insn is USE with the same reg as the current insn source.
7654 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
7655 of restore_regno.
7656 (lra_constraints_init): Call initiate_invariants.
7657 (lra_constraints_finish): Call finish_invariants.
7658 (struct invariant, invariant_t, invariant_ptr_t): New.
7659 (const_invariant_ptr_t, invariants, invariants_pool): New.
7660 (invariant_table, invariant_hash, invariant_eq_p): New.
7661 (insert_invariant, initiate_invariants, finish_invariants): New.
7662 (clear_invariants, invalid_invariant_regs): New.
7663 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
7664 instead of restore_regno.
7665 (invariant_p, process_invariant_for_inheritance): New.
7666 (inherit_in_ebb): Implement invariant inheritance.
7667 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
7668 (remove_inheritance_pseudos): Implement undoing invariant
7669 inheritance.
7670 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
7671 instead of restore_regno.
7672 * lra-assigns.c (regno_live_length): New.
7673 (reload_pseudo_compare_func): Use regno_live_length.
7674 (assign_by_spills): Use restore_rtx instead of restore_regno.
7675 (lra_assign): Ditto. Initiate regno_live_length.
7676
7677 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
7678
7679 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
7680 __builtin_aarch64_fmindf.
7681
7682 2016-08-02 Bin Cheng <bin.cheng@arm.com>
7683
7684 PR tree-optimization/34114
7685 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
7686 information for more control IVs.
7687
7688 2016-08-02 Bin Cheng <bin.cheng@arm.com>
7689
7690 PR tree-optimization/34114
7691 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
7692 PLUS_EXPR case. Handle SSA_NAME case.
7693
7694 2016-08-02 Tamar Christina <tamar.christina@arm.com>
7695
7696 * config/aarch64/aarch64-simd-builtins.def
7697 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
7698 (__builtin_aarch64_fmaxdf): Likewise.
7699 (__builtin_aarch64_smin_nandf): Likewise.
7700 (__builtin_aarch64_smax_nandf): Likewise.
7701 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
7702 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
7703 (<fmaxmin><mode>3): ...this.
7704 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
7705 (vminnm_f64): Likewise.
7706 (vmin_f64): Likewise.
7707 (vmax_f64): Likewise.
7708 * config/aarch64/iterators.md (FMAXMIN): Merge with...
7709 (FMAXMIN_UNS): ...this.
7710 (fmaxmin): Merged with
7711 (fmaxmin_op): ...this...
7712 (maxmin_uns_op): ...in to this.
7713
7714 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
7715
7716 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7717 Add support for vec_extract on vector float, vector int, vector
7718 short, and vector char vector types.
7719 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
7720 vector float, vector int, vector short, and vector char
7721 optimizations on 64-bit ISA 2.07 systems for both constant and
7722 variable element numbers.
7723 (rs6000_split_vec_extract_var): Likewise.
7724 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
7725 Altivec registers on ISA 2.07 and above.
7726 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
7727 which never was matched due to the split occuring before register
7728 allocation (and the code would not have worked on little endian
7729 systems if it did match). Allow extracts to go to the Altivec
7730 registers if ISA 2.07 (power8). Change from using "" around the
7731 C++ code to using {}'s.
7732 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
7733 vec_extracts when the vector is in memory.
7734 (vsx_extract_v4sf_var): New insn to optimize vector float
7735 vec_extracts when the element number is variable on 64-bit ISA
7736 2.07 systems.
7737 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
7738 for 64-bit ISA 2.07 as well as ISA 3.0.
7739 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
7740 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
7741 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
7742 optimize vector int, vector short, and vector char vec_extracts
7743 when the vector is in memory.
7744 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
7745 optimize vector int, vector short, and vector char vec_extracts
7746 when the element number is variable.
7747
7748 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
7749
7750 PR target/71948
7751 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
7752 does not overlap with other symbol flags.
7753
7754 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
7755
7756 * config/aarch64/aarch64.h (aarch64_frame):
7757 Remove padding0 and hardfp_offset. Add locals_offset,
7758 initial_adjust, callee_adjust, callee_offset and final_adjust.
7759 * config/aarch64/aarch64.c (aarch64_layout_frame):
7760 Remove unused padding0 and hardfp_offset initializations.
7761 Choose frame layout and set frame variables accordingly.
7762 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
7763 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
7764 (aarch64_pop_regs): Likewise.
7765 (aarch64_expand_prologue): Remove all decision code, just emit
7766 prolog according to frame variables.
7767 (aarch64_expand_epilogue): Remove all decision code, just emit
7768 epilog according to frame variables.
7769 (aarch64_initial_elimination_offset): Use offset to local/arg area.
7770
7771 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
7772
7773 PR target/72748
7774 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
7775 fix_debug_reg_uses after changing source register mode to
7776 V1TImode if source register is undefined.
7777
7778 2015-08-01 Alan Hayward <alan.hayward@arm.com>
7779
7780 PR tree-optimization/71818
7781 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
7782 with non invariant evolutions
7783
7784 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
7785
7786 PR target/72767
7787 * config/avr/avr.md (length) [branch]: Correct insn length
7788 attribute for forward branches.
7789
7790 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
7791
7792 * doc/extend.texi (AVR Built-in Functions): Document
7793 __builtin_avr_nops.
7794 * config/avr/builtins.def (NOPS): New.
7795 * config/avr/avr.c (avr_expand_nops): New static function.
7796 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
7797
7798 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7799
7800 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
7801 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
7802 addresses.
7803
7804 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
7805
7806 * config/aarch64/aarch64.c (vulcan_tunings): Update
7807 vulcan L1 cache_line_size.
7808
7809 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
7810
7811 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
7812 function that takes a vector memory address, a hard register, an
7813 element number and a temporary base register, and recreates an
7814 address that points to the appropriate element within the vector.
7815 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
7816 (rs6000_split_vec_extract_var): Add support for the target of a
7817 vec_extract with variable element number being a scalar memory
7818 location.
7819 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
7820 swappable.
7821 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
7822 vsx_extract_<mode>_load insn with a new insn that optimizes
7823 storing either element to a memory location, using scratch
7824 registers to pick apart the vector and reconstruct the address.
7825 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
7826 (vsx_extract_<mode>_store): Rework alternatives to more correctly
7827 support Altivec registers. Add support for ISA 3.0 Altivec d-form
7828 store instruction.
7829 (vsx_extract_<mode>_var): Add support for extracting a variable
7830 element number from memory.
7831
7832 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
7833
7834 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
7835 when testing for compares against constants of the form 0xabab.
7836
7837 2016-07-29 Bin Cheng <bin.cheng@arm.com>
7838
7839 PR tree-optimization/57558
7840 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
7841 function.
7842 (vect_loop_versioning): Support versioning with niter assumptions.
7843 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
7844 (vect_get_loop_niters): New parameter. Reimplement to support
7845 assumptions in loop niter info.
7846 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
7847 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
7848 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
7849 Support loop versioning for niters.
7850 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
7851 (vect_free_loop_info_assumptions): New function.
7852 (vectorize_loops): Free loop niter info for loops with flag
7853 LOOP_F_ASSUMPTIONS set if vectorization failed.
7854 * tree-vectorizer.h (struct _loop_vec_info): New field
7855 num_iters_assumptions.
7856 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
7857 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
7858 (LOOP_REQUIRES_VERSIONING): New macro.
7859 (vect_free_loop_info_assumptions): New decl.
7860
7861 2016-07-29 Bin Cheng <bin.cheng@arm.com>
7862
7863 * cfgloop.h (struct loop): New field constraints.
7864 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
7865 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
7866 functions.
7867 * cfgloop.c (alloc_loop): Initialize new field.
7868 * cfgloopmanip.c (copy_loop_info): Copy constraints.
7869 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
7870 Adjust niter analysis wrto loop constraints.
7871 * doc/loop.texi (@node Number of iterations): Add description for loop
7872 constraints.
7873
7874 2016-07-29 Marek Polacek <polacek@redhat.com>
7875
7876 PR c/7652
7877 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
7878 (ix86_expand_round_builtin): Likewise.
7879
7880 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
7881 Georg-Johann Lay <avr@gjlay.de>
7882
7883 PR rtl-optimization/71976
7884 * combine.c (get_last_value): Return 0 if the argument for which
7885 the function is called has a wider mode than the recorded value.
7886
7887 2016-07-29 Marek Polacek <polacek@redhat.com>
7888
7889 PR c/7652
7890 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
7891 (altivec_expand_st_builtin): Likewise.
7892
7893 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
7894
7895 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
7896 introduced in r238381.
7897
7898 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
7899
7900 PR middle-end/68217
7901 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
7902 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
7903
7904 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
7905
7906 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
7907 New declaration.
7908 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7909 Add support for vec_extract of vector double or vector long having
7910 a variable element number on 64-bit ISA 2.07 systems or newer.
7911 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
7912 Likewise.
7913 (rs6000_split_vec_extract_var): New function to split a
7914 vec_extract built-in function with variable element number.
7915 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
7916 swappable.
7917 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
7918 (UNSPEC_VSX_EXTRACT): Likewise.
7919 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
7920 direct move instructions to be generated on 64-bit ISA 2.07
7921 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
7922 instruction.
7923 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
7924 arguments for vec_extract variable element.
7925 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
7926 vec_extract with variable element on V2DFmode and V2DImode
7927 vectors.
7928 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
7929 -mupper-regs-df requirement, since it isn't needed.
7930 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
7931 do direct moves on 64-bit systems, which allows optimization of
7932 vec_extract on 64-bit ISA 2.07 systems and newer.
7933
7934 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
7935 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
7936
7937 * config/aarch64/aarch64.md
7938 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
7939 statement and type.
7940 (<optab>qihi2_aarch64): Likewise, and split into two.
7941 (extendqihi2_aarch64): New.
7942 (zero_extendqihi2_aarch64): New.
7943 * config/aarch64/iterators.md (ldrxt): Remove.
7944 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
7945 uxtb/uxth.
7946
7947 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
7948
7949 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
7950
7951 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
7952
7953 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
7954 (aarch64_push_reg): New function to push 1 or 2 registers.
7955 (aarch64_pop_reg): New function to pop 1 or 2 registers.
7956 (aarch64_expand_prologue): Use aarch64_push_regs.
7957 (aarch64_expand_epilogue): Use aarch64_pop_regs.
7958
7959 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
7960
7961 PR tree-optimization/71734
7962 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
7963 attribute instead of REF_LOOP and use it.
7964 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
7965 set it for Loops having non-zero safelen attribute.
7966 (ref_indep_loop_p): Pass zero as initial value for safelen.
7967
7968 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
7969
7970 PR middle-end/72657
7971 PR target/72683
7972 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
7973 call using chkp_gimple_call_builtin_p.
7974 (chkp_copy_bounds_for_assign): Likewise.
7975
7976 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7977
7978 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
7979 * config/arm/arm-protos.h (struct tune_params): Likewise.
7980 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
7981 (cortex_a9_sched_adjust_cost): Likewise.
7982 (fa726te_sched_adjust_cost): Likewise.
7983 (arm_adjust_cost): Likewise.
7984 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
7985 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
7986 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
7987 * config/i386/i386.c (ix86_adjust_cost): Likewise.
7988 * config/ia64/ia64.c: Likewise.
7989 * config/m68k/m68k.c: Likewise.
7990 * config/mep/mep.c (mep_adjust_cost): Likewise.
7991 * config/microblaze/microblaze.c (microblaze_adjust_cost):
7992 * Likewise.
7993 * config/mips/mips.c (mips_adjust_cost): Likewise.
7994 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
7995 * Likewise.
7996 * config/pa/pa.c (pa_adjust_cost): Likewise.
7997 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
7998 (rs6000_debug_adjust_cost): Likewise.
7999 * config/sh/sh.c (sh_adjust_cost): Likewise.
8000 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
8001 (hypersparc_adjust_cost): Likewise.
8002 (sparc_adjust_cost): Likewise.
8003 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
8004 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
8005 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
8006 * Likewise.
8007 * config/visium/visium.c (visium_adjust_cost): Likewise.
8008 * doc/tm.texi: Regenerate.
8009 * haifa-sched.c (dep_cost_1): Adjust.
8010 * target.def: Merge adjust_cost and adjust_cost_2.
8011
8012 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8013
8014 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
8015
8016 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8017
8018 * store-motion.c (struct st_expr): Make pattern_regs a vector.
8019 (extract_mentioned_regs): Append to a vector instead of
8020 returning a rtx_expr_list.
8021 (st_expr_entry): Adjust.
8022 (free_st_expr_entry): Likewise.
8023 (store_ops_ok): Likewise.
8024 (store_killed_in_insn): Likewise.
8025 (find_moveable_store): Likewise.
8026
8027 2016-07-28 Martin Liska <mliska@suse.cz>
8028
8029 PR gcov-profile/68025
8030 * tree-profile.c (tree_profiling): Respect
8031 no_profile_instrument_function attribute.
8032 * doc/extend.texi: Document no_profile_instrument_function
8033 attribute.
8034
8035 2016-07-28 Martin Liska <mliska@suse.cz>
8036
8037 PR rtl-optimization/70944
8038 * combine.c (make_compound_operation):
8039 Do not allow make_compound_operation for vector mode
8040
8041 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
8042
8043 PR middle-end/71994
8044 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
8045 before calling get_ops.
8046
8047 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
8048
8049 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
8050 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
8051 (BITS_PER_UNIT_LOG): Remove.
8052 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
8053 * expr.c (expand_assignment): Likewise.
8054 * stor-layout.c (initialize_sizetypes): Likewise.
8055
8056 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
8057
8058 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
8059 signature of rs6000_expand_vector_extract so that the element
8060 number is a RTX instead of a constant integer.
8061 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
8062 Likewise.
8063 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
8064 (altivec_expand_vec_ext_builtin): Likewise.
8065 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
8066 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
8067 MFVSRLD instruction.
8068
8069 2016-07-27 David Malcolm <dmalcolm@redhat.com>
8070
8071 * input.c (get_pure_location): Move here from tree.c.
8072 (make_location): Likewise. Add header comment.
8073 (selftest::test_accessing_ordinary_linemaps): Verify
8074 pure_location_p, make_location, get_location_from_adhoc_loc and
8075 get_range_from_loc.
8076 * input.h (get_pure_location): Move declaration here from tree.h.
8077 (get_finish): Likewise for inline function.
8078 (make_location): Likewise for declaration.
8079 * tree.c (get_pure_location): Move to input.c.
8080 (make_location): Likewise.
8081 * tree.h (get_pure_location): Move declaration to tree.h.
8082 (get_finish): Likewise for inline function.
8083 (make_location): Likewise for declaration.
8084
8085 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8086
8087 PR middle-end/71078
8088 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
8089
8090 2016-07-27 David Malcolm <dmalcolm@redhat.com>
8091
8092 * system.h (STATIC_ASSERT): Use static_assert if building
8093 with C++11 onwards.
8094
8095 2016-07-27 Richard Biener <rguenther@suse.de>
8096
8097 PR tree-optimization/72517
8098 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
8099 Revert change to not compute read-read dependences.
8100
8101 2016-07-27 Richard Biener <rguenther@suse.de>
8102
8103 * predict.c (set_even_probabilities): Make nedges unsigned.
8104
8105 2016-07-27 Martin Liska <mliska@suse.cz>
8106
8107 * predict.c (set_even_probabilities): Handle unlikely edges.
8108 (combine_predictions_for_bb): Likewise.
8109
8110 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
8111
8112 PR target/71869
8113 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
8114 __float128 support when we don't have hardware support, so that
8115 the IEEE built-in functions like isgreater, first call __unordkf3
8116 to make sure neither operand is a NaN, and if both operands are
8117 ordered, do the normal comparison.
8118
8119 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
8120
8121 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
8122 name.
8123 (extract_code_and_val_from_cond_with_ops): Verify that name is
8124 either cond_op0 or cond_op1.
8125
8126 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
8127
8128 PR tree-optimization/18046
8129 * genmodes.c (emit_mode_size_inline): Emit an assert that
8130 verifies that mode is a valid array index.
8131 (emit_mode_nuinits_inline): Likewise.
8132 (emit_mode_inner_inline): Likewise.
8133 (emit_mode_unit_size_inline): Likewise.
8134 (emit_mode_unit_precision_inline): Likewise.
8135 * tree-vrp.c: Include params.h.
8136 (find_switch_asserts): Register edge assertions for the default
8137 label which correspond to the anti-ranges of each case label.
8138 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
8139 * doc/invoke.texi: Document it.
8140
8141 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8142
8143 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
8144 and unnecessary call to gimple_bb.
8145
8146 2016-07-26 Richard Biener <rguenther@suse.de>
8147
8148 PR rtl-optimization/71984
8149 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
8150 for VOIDmode.
8151
8152 2016-07-26 Richard Biener <rguenther@suse.de>
8153
8154 PR middle-end/72517
8155 * expmed.c (extract_bit_field_1): Constrain the vector mode
8156 with element size matching the extraction mode size when
8157 choosing a better vector mode to do the extraction from.
8158
8159 2016-07-26 Richard Biener <rguenther@suse.de>
8160 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8161
8162 PR middle-end/70920
8163 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
8164 pattern.
8165
8166 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8167
8168 * tree-ssa-structalias.c (struct scc_info): Change types of
8169 members to auto_sbitmap and auto_vec.
8170 (scc_info::scc_info): New constructor.
8171 (scc_info::~scc_info): New destructor.
8172 (init_scc_info): Remove.
8173 (free_scc_info): Remove.
8174 (find_indirect_cycles): Adjust.
8175 (perform_var_substitution): Likewise.
8176 (free_var_substitution_info): Likewise.
8177
8178 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8179
8180 * tree-outof-ssa.c (struct elim_graph): Change type of members
8181 to auto_vec and auto_sbitmap.
8182 (elim_graph::elim_graph): New constructor.
8183 (delete_elim_graph): Remove.
8184 (expand_phi_nodes): Adjust.
8185
8186 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8187
8188 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
8189 (new_elim_graph): Adjust.
8190 (clear_elim_graph): Likewise.
8191 (delete_elim_graph): Likewise.
8192 (elim_graph_size): Likewise.
8193 (elim_graph_add_node): Likewise.
8194 (elim_graph_add_edge): Likewise.
8195 (elim_graph_remove_succ_edge): Likewise.
8196 (eliminate_name): Likewise.
8197 (eliminate_build): Likewise.
8198 (elim_forward): Likewise.
8199 (elim_unvisited_predecessor): Likewise.
8200 (elim_backward): Likewise.
8201 (elim_create): Likewise.
8202 (eliminate_phi): Likewise.
8203 (expand_phi_nodes): Likewise.
8204
8205 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8206
8207 * bt-load.c (compute_out): Use auto_sbitmap class.
8208 (link_btr_uses): Likewise.
8209 * cfganal.c (mark_dfs_back_edges): Likewise.
8210 (post_order_compute): Likewise.
8211 (inverted_post_order_compute): Likewise.
8212 (pre_and_rev_post_order_compute_fn): Likewise.
8213 (single_pred_before_succ_order): Likewise.
8214 * cfgexpand.c (pass_expand::execute): Likewise.
8215 * cfgloop.c (verify_loop_structure): Likewise.
8216 * cfgloopmanip.c (fix_bb_placements): Likewise.
8217 (remove_path): Likewise.
8218 (update_dominators_in_loop): Likewise.
8219 * cfgrtl.c (break_superblocks): Likewise.
8220 * ddg.c (check_sccs): Likewise.
8221 (create_ddg_all_sccs): Likewise.
8222 * df-core.c (df_worklist_dataflow): Likewise.
8223 * dse.c (dse_step3): Likewise.
8224 * except.c (eh_region_outermost): Likewise.
8225 * function.c (thread_prologue_and_epilogue_insns): Likewise.
8226 * gcse.c (prune_expressions): Likewise.
8227 (prune_insertions_deletions): Likewise.
8228 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
8229 * graph.c (draw_cfg_nodes_no_loops): Likewise.
8230 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
8231 * lcm.c (compute_earliest): Likewise.
8232 (compute_farthest): Likewise.
8233 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
8234 (unroll_loop_runtime_iterations): Likewise.
8235 (unroll_loop_stupid): Likewise.
8236 * lower-subreg.c (decompose_multiword_subregs): Likewise.
8237 * lra-lives.c: Likewise.
8238 * lra.c (lra): Likewise.
8239 * modulo-sched.c (schedule_reg_moves): Likewise.
8240 (optimize_sc): Likewise.
8241 (get_sched_window): Likewise.
8242 (sms_schedule_by_order): Likewise.
8243 (check_nodes_order): Likewise.
8244 (order_nodes_of_sccs): Likewise.
8245 (order_nodes_in_scc): Likewise.
8246 * recog.c (split_all_insns): Likewise.
8247 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
8248 * reload1.c (reload): Likewise.
8249 * sched-rgn.c (haifa_find_rgns): Likewise.
8250 (split_edges): Likewise.
8251 (compute_trg_info): Likewise.
8252 * sel-sched.c (init_seqno): Likewise.
8253 * store-motion.c (remove_reachable_equiv_notes): Likewise.
8254 * tree-into-ssa.c (update_ssa): Likewise.
8255 * tree-ssa-live.c (live_worklist): Likewise.
8256 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
8257 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
8258 * Likewise.
8259 (try_peel_loop): Likewise.
8260 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
8261 * Likewise.
8262 * tree-ssa-pre.c (compute_antic): Likewise.
8263 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8264 * tree-stdarg.c (reachable_at_most_once): Likewise.
8265 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
8266 * var-tracking.c (vt_find_locations): Likewise.
8267
8268 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8269
8270 * sbitmap.h (auto_sbitmap): New class.
8271
8272 2016-07-26 Alan Modra <amodra@gmail.com>
8273
8274 PR target/72103
8275 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
8276 sri->t_icode.
8277
8278 2016-07-25 David Malcolm <dmalcolm@redhat.com>
8279
8280 * input.c (selftest::temp_source_file::temp_source_file): Fix
8281 missing "%s" in fprintf.
8282
8283 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
8284
8285 PR middle-end/71732
8286 * cselib.c (cselib_process_insn): Invalidate argument slots for
8287 const/pure calls.
8288
8289 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8290
8291 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
8292 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
8293 vmulxh_lane_f16, vmulxh_laneq_f16): New.
8294
8295 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8296
8297 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
8298 * config/aarch64/aarch64.md (fma, fnma): Support HF.
8299 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
8300
8301 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8302
8303 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
8304 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
8305 New.
8306 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
8307 (add<mode>3): Likewise.
8308 (sub<mode>3): Likewise.
8309 (mul<mode>3): Likewise.
8310 (div<mode>3): Likewise.
8311 (*div<mode>3): Likewise.
8312 (<fmaxmin><mode>3): Extend to HF.
8313 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
8314 (fabd<mode>3): Likewise.
8315 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
8316 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
8317 (aarch64_fmulx<mode>): Likewise.
8318 (aarch64_fac<optab><mode>): Likewise.
8319 (aarch64_frecps<mode>): Likewise.
8320 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
8321 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
8322 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
8323 (VSDQ_HSDI): Support HI.
8324 (fcvt_target, FCVT_TARGET): Likewise.
8325 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
8326 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
8327 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
8328 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
8329 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
8330 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
8331 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
8332 vrsqrtsh_f16): New.
8333
8334 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8335
8336 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
8337 * config/aarch64/aarch64-builtins.c (hi_UP): New.
8338 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
8339 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
8340 mode.
8341 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
8342 (aarch64_cm<optab><mode>): Likewise.
8343 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
8344 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
8345 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
8346 (sqrt<mode>2): Likewise.
8347 (*sqrt<mode>2): Likewise.
8348 (abs<mode>2): Likewise.
8349 (<optab><mode>hf2): New pattern for HF mode.
8350 (<optab>hihf2): Likewise.
8351 * config/aarch64/arm_neon.h: Include arm_fp16.h.
8352 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
8353 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
8354 Support HF mode.
8355 * config/aarch64/arm_fp16.h: New file.
8356 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
8357 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
8358 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
8359 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
8360 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
8361 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
8362 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
8363 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
8364 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
8365 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
8366 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
8367 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
8368 vsqrth_f16): New.
8369
8370 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8371
8372 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
8373 reduc_smin_scal_): Use VDQIF_F16.
8374 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
8375 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
8376 Use VHSDF.
8377 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
8378 * config/aarch64/iterators.md (VDQIF_F16): New.
8379 (vp): Support HF modes.
8380 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
8381 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
8382
8383 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8384
8385 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
8386 "*aarch64_mulx_elt_from_dup<mode>".
8387 (*aarch64_mul3_elt<mode>): Update schedule type.
8388 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
8389 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
8390 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
8391 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
8392 (f, fp): Support HF modes.
8393 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
8394 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
8395 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
8396 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
8397 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
8398 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
8399
8400 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8401
8402 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
8403 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
8404 modes.
8405 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
8406 vfmsq_f16): New.
8407
8408 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8409
8410 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
8411 * config/aarch64/aarch64-simd.md
8412 (aarch64_rsqrts<mode>): Extend to HF modes.
8413 (fabd<mode>3): Likewise.
8414 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
8415 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
8416 (aarch64_<maxmin_uns>p<mode>): Likewise.
8417 (<su><maxmin><mode>3): Likewise.
8418 (<maxmin_uns><mode>3): Likewise.
8419 (<fmaxmin><mode>3): Likewise.
8420 (aarch64_faddp<mode>): Likewise.
8421 (aarch64_fmulx<mode>): Likewise.
8422 (aarch64_frecps<mode>): Likewise.
8423 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
8424 (add<mode>3): Extend to HF modes.
8425 (sub<mode>3): Likewise.
8426 (mul<mode>3): Likewise.
8427 (div<mode>3): Likewise.
8428 (*div<mode>3): Likewise.
8429 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
8430 HF, V4HF and V8HF.
8431 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
8432 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
8433 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
8434 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
8435 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
8436 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
8437 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
8438 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
8439 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
8440 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
8441 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
8442 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
8443 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
8444 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
8445
8446 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8447
8448 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
8449 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
8450 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
8451 (neg<mode>2): Likewise.
8452 (abs<mode>2): Likewise.
8453 (<frint_pattern><mode>2): Likewise.
8454 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
8455 (<optab><VDQF:mode><fcvt_target>2): Likewise.
8456 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
8457 (ftrunc<VDQF:mode>2): Likewise.
8458 (<optab><fcvt_target><VDQF:mode>2): Likewise.
8459 (sqrt<mode>2): Likewise.
8460 (*sqrt<mode>2): Likewise.
8461 (aarch64_frecpe<mode>): Likewise.
8462 (aarch64_cm<optab><mode>): Likewise.
8463 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
8464 HF, V4HF and V8HF.
8465 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
8466 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
8467 (stype): New.
8468 * config/aarch64/arm_neon.h (vdup_n_f16): New.
8469 (vdupq_n_f16): Likewise.
8470 (vld1_dup_f16): Use vdup_n_f16.
8471 (vld1q_dup_f16): Use vdupq_n_f16.
8472 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
8473 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
8474 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
8475 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
8476 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
8477 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
8478 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
8479 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
8480 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
8481 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
8482 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
8483 vsqrt_f16, vsqrtq_f16): New.
8484
8485 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8486
8487 * config/aarch64/aarch64-simd.md
8488 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
8489 (aarch64_ext<mode>): Likewise.
8490 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
8491 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
8492 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
8493 and V8HFmode.
8494 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
8495 float16x8_t.
8496 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
8497 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
8498 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
8499 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
8500 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
8501 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
8502 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
8503 New.
8504 (vmov_n_f16): Reimplement using vdup_n_f16.
8505 (vmovq_n_f16): Reimplement using vdupq_n_f16..
8506
8507 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8508
8509 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
8510 "frame_related_p". Generate CFA annotation when it's necessary.
8511 (aarch64_expand_prologue): Use aarch64_add_constant.
8512 (aarch64_expand_epilogue): Likewise.
8513 (aarch64_output_mi_thunk): Pass "false" when calling
8514 aarch64_add_constant.
8515
8516 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8517
8518 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
8519 sequences.
8520
8521 2016-07-25 Jiong Wang <jiong.wang@arm.com>
8522
8523 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
8524 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
8525 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
8526 (aarch64_build_constant): Delete.
8527
8528 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
8529
8530 Revert
8531 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
8532
8533 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
8534 flag_toplevel_reorder.
8535
8536 2016-07-25 Richard Biener <rguenther@suse.de>
8537
8538 * cgraph.c (cgraph_node::verify_node): Compare against builtin
8539 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
8540 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
8541 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
8542 (streamer_get_builtin_tree): Likewise.
8543 (streamer_write_builtin): Likewise.
8544 * lto-streamer.h (LTO_builtin_decl): Remove.
8545 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
8546 (lto_input_scc): Remove LTO_builtin_decl handling.
8547 (lto_input_tree_1): Liekwise.
8548 * lto-streamer-out.c (lto_output_tree_1): Remove special
8549 handling of builtins.
8550 (DFS::DFS): Likewise.
8551 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
8552 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
8553 assert.
8554 (streamer_write_builtin): Remove.
8555
8556 2016-07-25 Martin Liska <mliska@suse.cz>
8557
8558 * lto-cgraph.c (input_symtab): Don't call get_working_sets
8559 if flag_auto_profile is set to true.
8560
8561 2016-07-25 Martin Liska <mliska@suse.cz>
8562
8563 PR gcov-profile/71868
8564 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
8565 have a function with multiple latches, count them all.
8566
8567 2016-07-25 Martin Liska <mliska@suse.cz>
8568
8569 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
8570
8571 2016-07-25 Martin Liska <mliska@suse.cz>
8572
8573 PR tree-optimization/71987
8574 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
8575 just for SSA_NAMEs. Fix GNU coding style.
8576
8577 2016-07-25 Martin Liska <mliska@suse.cz>
8578
8579 PR gcov-profile/64874
8580 * gcov-io.h: Update command about file format.
8581 * gcov-iov.c (main): Adapt the numbering scheme.
8582
8583 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
8584
8585 PR middle-end/66726
8586 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
8587 whose result is used in PHI.
8588 (final_range_test_p): Likewise.
8589 (maybe_optimize_range_tests): Likewise.
8590
8591 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
8592
8593 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8594 Reformat two multi-line strings.
8595
8596 2016-07-22 Martin Sebor <msebor@redhat.com>
8597
8598 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
8599
8600 2016-07-22 Martin Sebor <msebor@redhat.com>
8601
8602 PR c/71560
8603 * doc/extend.texi (Compound Literals): Correct and clarify.
8604 (Cast to Union): Same.
8605
8606 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
8607
8608 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
8609 comments to explain why certain error messages make mention of
8610 undocumented options.
8611 (rs6000_invalid_builtin): Change error messages to replace mention
8612 of undocumented options with mention of the -mcpu=power9 option
8613 that enables those undocumented options.
8614 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
8615 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
8616 definition of this macro to correct an existing error.
8617 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
8618 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
8619 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
8620 descriptions of built-in functions so that they depend on
8621 -mcpu=power9 instead of on the corresponding undocumented flags.
8622 * doc/invoke.texi (Option Summary): Remove all mention of newly
8623 undocumented flags.
8624 (IBM RS/6000 and PowerPC Options): Likewise.
8625 * doc/md.texi (Constraints for Particuliar Machines): Remove all
8626 mention of newly undocumented flags.
8627
8628 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
8629
8630 * ipa-cp.c (determine_versionability): Do not create constprop clones,
8631 when target_clones attribute is set.
8632
8633 2016-07-22 Bin Cheng <bin.cheng@arm.com>
8634
8635 * common.opt (funsafe-loop-optimizations): Mark ignore.
8636 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
8637 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
8638 related code.
8639 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
8640 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
8641
8642 2016-07-22 Bin Cheng <bin.cheng@arm.com>
8643
8644 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
8645 Parameter.
8646 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
8647 Parameter.
8648 (number_of_iterations_exit): Warn missed loop optimization for
8649 possible infinite loops.
8650
8651 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
8652
8653 PR target/71216
8654 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
8655 when to emit a ".machine" pseudo-op.
8656
8657 2016-07-22 Martin Liska <mliska@suse.cz>
8658
8659 PR gcov-profile/69028
8660 PR gcov-profile/62047
8661 * coverage.c (coverage_compute_lineno_checksum): Do not
8662 calculate checksum for fns w/o xloc.file.
8663 (coverage_compute_profile_id): Likewise.
8664
8665 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
8666
8667 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
8668 (avr_secondary_reload): ...and implementation.
8669 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
8670 * config/avr/avr.md (reload_in<mode>): Remove insns.
8671 (adjust_len) [lpm]: Remove insn attribute value.
8672 * config/avr/predicates.md (flash_operand): Remove insn predicate.
8673
8674 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
8675
8676 PR middle-end/71876
8677 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
8678 attribute.
8679 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
8680 * calls.c (special_function_p): Remove the special handling of the
8681 "__builtin_" prefix.
8682
8683 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
8684
8685 PR middle-end/71876
8686 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
8687 if STMT may be an alloca call.
8688 (gimple_alloca_call_p, alloca_call_p): Return only true for the
8689 builtin alloca call.
8690 * calls.h (gimple_maybe_alloca_call_p): New function.
8691 * tree-inline.c (inline_forbidden_p_stmt): Use
8692 gimple_maybe_alloca_call_p here.
8693
8694 2016-07-21 David Malcolm <dmalcolm@redhat.com>
8695
8696 * spellcheck-tree.c (best_macro_match::best_macro_match):
8697 Explictly specify the template arguments when invoking the base
8698 class constructor, to help older C++ compilers.
8699
8700 2016-07-21 Jakub Jelinek <jakub@redhat.com>
8701
8702 PR sanitizer/71953
8703 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
8704 before builtin_decl_implicit.
8705
8706 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
8707
8708 * optabs.c (emit_condiitonal_move): Short circuit for identical
8709 sources.
8710
8711 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
8712
8713 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
8714 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
8715 (noce_conversion_profitable_p): New.
8716 (noce_try_store_flag_constants): Use it.
8717 (noce_try_addcc): Likewise.
8718 (noce_try_store_flag_mask): Likewise.
8719 (noce_try_cmove): Likewise.
8720 (noce_try_cmove_arith): Likewise.
8721 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
8722 overwriting it.
8723 (noce_convert_multiple_sets): Move cost model to here, from...
8724 (bb_ok_for_noce_convert_multiple_sets) ...here.
8725 (noce_process_if_block): Update calls for above changes.
8726 (noce_find_if_block): Record new noce_if_info parameters.
8727
8728 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
8729
8730 * target.def (max_noce_ifcvt_seq_cost): New.
8731 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
8732 * doc/tm.texi: Regenerate.
8733 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
8734 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
8735 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
8736 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
8737 * doc/invoke.texi: Document new params.
8738
8739 2016-07-21 Richard Biener <rguenther@suse.de>
8740
8741 PR tree-optimization/71947
8742 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
8743 ranges have useful limit_vr information.
8744
8745 2016-07-21 Richard Biener <rguenther@suse.de>
8746
8747 * function-tests.c (build_trivial_generic_function): Set
8748 BLOCK_SUPERCONTEXT of DECL_INITIAL.
8749 * omp-low.c (create_omp_child_function): Likewise.
8750 (grid_expand_target_grid_body): Likewise.
8751 * cgraphunit.c (init_lowered_empty_function): Likewise.
8752 (cgraph_node::expand_thunk): Likewise.
8753 * tree-parloops.c (create_loop_fn): Likewise.
8754 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
8755
8756 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8757
8758 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
8759 in comment.
8760
8761 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
8762
8763 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
8764 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
8765 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
8766 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
8767 values for insn attribute.
8768 * config/avr/avr.c (avr_out_insert_notbit): New function.
8769 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
8770 ADJUST_LEN_INSV_NOTBIT_0/_7.
8771 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
8772
8773 2016-07-21 Bin Cheng <bin.cheng@arm.com>
8774
8775 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
8776 (chrec_convert_1, chrec_convert): Ditto.
8777 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
8778 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
8779 * tree-vrp.c (adjust_range_with_scev): Ditto.
8780 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
8781 (scev_var_range_cant_overflow): New function.
8782 (scev_probably_wraps_p): New parameter. Call above function.
8783 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
8784
8785 2016-07-21 Bin Cheng <bin.cheng@arm.com>
8786
8787 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
8788 by removing computation of may_be_zero.
8789
8790 2016-07-21 Jakub Jelinek <jakub@redhat.com>
8791
8792 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
8793
8794 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
8795
8796 Improving concepts performance and diagnostics.
8797 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
8798 for constraint satisfaction and subsumption.
8799 * timevar.h (auto_timevar): New constructor that matches the push/pop
8800 pattern of usage in pt.c.
8801
8802 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
8803
8804 * hwint.h (HOST_WIDE_INT_0): New define.
8805 (HOST_WIDE_INT_0U): Ditto.
8806 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
8807 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
8808 * simplify-rtx.c: Ditto.
8809 * tree-object-size.c: Ditto.
8810
8811 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8812
8813 * config/s390/s390.c (s390_encode_section_info): Remove mode size
8814 check.
8815
8816 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
8817
8818 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
8819 * combine.c: Use HOST_WIDE_INT_M1U instead of
8820 ~(unsigned HOST_WIDE_INT) 0.
8821 * double-int.h: Ditto.
8822 * dse.c: Ditto.
8823 * dwarf2asm.c:Ditto.
8824 * expmed.c: Ditto.
8825 * genmodes.c: Ditto.
8826 * match.pd: Ditto.
8827 * read-rtl.c: Ditto.
8828 * tree-ssa-loop-ivopts.c: Ditto.
8829 * tree-ssa-loop-prefetch.c: Ditto.
8830 * tree-vect-generic.c: Ditto.
8831 * tree-vect-patterns.c: Ditto.
8832 * tree.c: Ditto.
8833
8834 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
8835
8836 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
8837 constant addresses outside [0,0xc0] into a register.
8838 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
8839 cases where the base address register is unused after.
8840 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
8841 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
8842 (avr_out_store_psi_reg_disp_tiny): Same.
8843
8844 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
8845
8846 Implement attribute progmem on reduced Tiny cores by adding
8847 flash offset 0x4000 to respective symbols.
8848
8849 PR target/71948
8850 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
8851 documentation how it works on reduced Tiny cores.
8852 (AVR Named Address Spaces): No support for reduced Tiny.
8853 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
8854 (avr_address_tiny_pm_p): New static function.
8855 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
8856 if the address is in progmem.
8857 (avr_assemble_integer): Same.
8858 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
8859 for symbol_ref in progmem.
8860 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
8861 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
8862 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
8863
8864 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
8865
8866 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
8867 * configure: Regenerate.
8868 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
8869 (USE_THIN_ARCHIVES): New variable.
8870 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
8871 this archive as a thin archive.
8872
8873 2016-07-20 David Malcolm <dmalcolm@redhat.com>
8874
8875 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
8876 same location as last time, don't skip if we have fix-it hints.
8877 Clarify the skipping logic by converting it from one "if" clause
8878 to repeated "if" clauses.
8879 * spellcheck-tree.c: Include "cpplib.h".
8880 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
8881 (best_macro_match::best_macro_match): New constructor.
8882 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
8883 Move here from c/c-decl.c.
8884 (class best_macro_match): Move here from c/c-decl.c, converting
8885 from a typedef to a subclass, gaining a ctor.
8886
8887 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
8888
8889 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
8890 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
8891 define...
8892 (avr_addr_space_diagnose_usage): ...and implementation.
8893 (avr_addr_space_supported_p): New function.
8894 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
8895 report bad address space usage if that space is supported.
8896 (avr_insert_attributes): Same. No more complain about unsupported
8897 address spaces.
8898 * config/avr/avr-c.c (tm_p.h): Include it.
8899 (avr_cpu_cpp_builtins): Only define addr-space related built-in
8900 macro if avr_addr_space_supported_p.
8901
8902 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
8903
8904 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
8905 flag_toplevel_reorder.
8906
8907 2016-07-20 David Malcolm <dmalcolm@redhat.com>
8908
8909 * gcc-rich-location.c
8910 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
8911 a const char *.
8912 * gcc-rich-location.h
8913 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
8914
8915 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
8916
8917 * target.def (addr_space): Add new diagnose_usage to hook vector.
8918 * targhooks.c (default_addr_space_diagnose_usage): Add default
8919 implementation and...
8920 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
8921 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
8922 is some address space, call targetm.addr_space.diagnose_usage.
8923 * doc/tm.texi.in (Named Address Spaces): Add anchor for
8924 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
8925 * doc/tm.texi: Regenerate.
8926
8927 2016-07-20 Martin Liska <mliska@suse.cz>
8928
8929 PR middle-end/71898
8930 * graphite-isl-ast-to-gimple.c (later_of_the_two):
8931 Properly handly PHI stmts.
8932
8933 2016-07-20 Bin Cheng <bin.cheng@arm.com>
8934
8935 PR tree-optimization/71503
8936 PR tree-optimization/71683
8937 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
8938 and break.
8939
8940 2016-07-20 Martin Liska <mliska@suse.cz>
8941
8942 * doc/invoke.texi (-fipa-ra): Document when the option is
8943 disabled. Fix a typo.
8944
8945 2016-07-20 Martin Liska <mliska@suse.cz>
8946
8947 * Makefile.in: Include fibonacci_heap.c
8948 * fibonacci_heap.c: New file.
8949 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
8950 (fibonacci_heap::union_with): Fix deletion of the second heap.
8951 * selftest-run-tests.c (selftest::run_tests): Incorporate
8952 fibonacci heap tests.
8953 * selftest.h: Declare fibonacci_heap_c_tests.
8954
8955 2016-07-20 Martin Liska <mliska@suse.cz>
8956
8957 * selftest-run-tests.c (selftest::run_tests): New function.
8958 * selftest.h (sreal_c_tests): Declare.
8959 * sreal.c (sreal_verify_basics): New function.
8960 (verify_aritmetics): Likewise.
8961 (sreal_verify_arithmetics): Likewise.
8962 (verify_shifting): Likewise.
8963 (sreal_verify_shifting): Likewise.
8964 (void sreal_c_tests): Likewise.
8965
8966 2016-07-19 Jakub Jelinek <jakub@redhat.com>
8967
8968 PR rtl-optimization/71916
8969 * cfgrtl.c (contains_no_active_insn_p): Return false also for
8970 bb which have a single succ fake edge.
8971
8972 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
8973
8974 PR debug/71855
8975 * dwarf2out.c (gen_subprogram_die): Only call
8976 gen_unspecified_parameters_die while dumping early dwarf.
8977
8978 2016-07-19 Jakub Jelinek <jakub@redhat.com>
8979
8980 PR middle-end/71874
8981 * gimple-fold.c (fold_builtin_memory_op): Use
8982 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
8983
8984 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
8985
8986 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
8987 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
8988 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
8989 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
8990 * combine.c: Ditto.
8991 * cse.c: Ditto.
8992 * dojump.c: Ditto.
8993 * double-int.c: Ditto.
8994 * dse.c: Ditto.
8995 * dwarf2out.c: Ditto.
8996 * expmed.c: Ditto.
8997 * expr.c: Ditto.
8998 * fold-const.c: Ditto.
8999 * function.c: Ditto.
9000 * fwprop.c: Ditto.
9001 * genmodes.c: Ditto.
9002 * hwint.c: Ditto.
9003 * hwint.h: Ditto.
9004 * ifcvt.c: Ditto.
9005 * loop-doloop.c: Ditto.
9006 * loop-invariant.c: Ditto.
9007 * loop-iv.c: Ditto.
9008 * match.pd: Ditto.
9009 * optabs.c: Ditto.
9010 * real.c: Ditto.
9011 * reload.c: Ditto.
9012 * rtlanal.c: Ditto.
9013 * simplify-rtx.c: Ditto.
9014 * stor-layout.c: Ditto.
9015 * toplev.c: Ditto.
9016 * tree-ssa-loop-ivopts.c: Ditto.
9017 * tree-vect-generic.c: Ditto.
9018 * tree-vect-patterns.c: Ditto.
9019 * tree.c: Ditto.
9020 * tree.h: Ditto.
9021 * ubsan.c: Ditto.
9022 * varasm.c: Ditto.
9023 * wide-int-print.cc: Ditto.
9024 * wide-int.cc: Ditto.
9025 * wide-int.h: Ditto.
9026
9027 2016-07-19 David Malcolm <dmalcolm@redhat.com>
9028
9029 * selftest.c (selftest::assert_streq): Handle NULL values of
9030 val_actual and val_expected.
9031
9032 2016-07-19 Martin Jambor <mjambor@suse.cz>
9033
9034 PR fortran/71688
9035 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
9036 rather than cgraph_create_node to get a call graph node.
9037
9038 2016-07-19 Richard Biener <rguenther@suse.de>
9039
9040 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
9041 handle all tcc_constant bases and valueize SSA names.
9042 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
9043 tcc_constant bases.
9044
9045 2016-07-19 David Malcolm <dmalcolm@redhat.com>
9046
9047 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
9048 the flags of the exit block and bb2, not just the entry block.
9049
9050 2016-07-19 Richard Biener <rguenther@suse.de>
9051
9052 PR tree-optimization/71901
9053 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
9054 align member, group stuff with the bitfield.
9055 (vn_ref_op_align_unit): New inline.
9056 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
9057 record element alignment and operand 3 unchanged.
9058 (ao_ref_init_from_vn_reference): Adjust.
9059 (valueize_refs_1): Likewise.
9060 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
9061
9062 2016-07-19 Richard Biener <rguenther@suse.de>
9063
9064 PR tree-optimization/71908
9065 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
9066 symbolic constants in a more reliable way.
9067
9068 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
9069
9070 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
9071 comment.
9072 (vect_update_inits_of_drs): Likewise.
9073 (vect_create_cond_for_alias_checks): Likewise.
9074 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
9075
9076 2016-07-19 Richard Biener <rguenther@suse.de>
9077
9078 PR lto/71907
9079 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
9080 with an abstract origin that is not an inlined function outer
9081 scope add a self-reference as abstract origin.
9082 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
9083
9084 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
9085
9086 PR target/71493
9087 * config/rs6000/rs6000.c (rs6000_function_value): Fix
9088 unintentional System V.4 structure return breakage for structures
9089 with a single floating point element.
9090
9091 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
9092
9093 PR tree-optimization/71734
9094 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
9095 contains REF, use it to check safelen, assume that safelen value
9096 must be greater 1, fix style.
9097 (ref_indep_loop_p_2): Add REF_LOOP argument.
9098 (ref_indep_loop_p): Pass LOOP as additional argument to
9099 ref_indep_loop_p_2.
9100
9101 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
9102
9103 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
9104 allocation in the prologue.
9105 * explow.c (get_dynamic_stack_base): New function to return an address
9106 expression for the dynamic stack base.
9107 (get_dynamic_stack_size): New function to do the required dynamic stack
9108 space size calculations.
9109 (allocate_dynamic_stack_space): Use new functions.
9110 (align_dynamic_address): Move some code from
9111 allocate_dynamic_stack_space to new function.
9112 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
9113
9114 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9115
9116 * config/s390/s390.c (s390_encode_section_info): Always set
9117 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
9118 found.
9119
9120 2016-07-18 Richard Biener <rguenther@suse.de>
9121
9122 PR tree-optimization/71893
9123 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
9124 for sizetype cast added by array_ref_element_size.
9125 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9126
9127 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
9128
9129 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
9130 register parameters. Remove code to initialize argument pointer
9131 on TARGET_64BIT. Optimize call to _mcount when it can be reached
9132 using a pc-relative branch. Cleanup conditional code.
9133 * config/pa/pa.md (call_mcount): New expander.
9134 (call_mcount_nonpic): New insn.
9135 (call_mcount_pic): New insn and split.
9136 (call_mcount_pic_post_reload): New insn.
9137 (call_mcount_64bit): New insn and split.
9138 (call_mcount_64bit_post_reload): New insn.
9139
9140 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
9141
9142 * config/avr/predicates.md (const_m255_to_m1_operand): New.
9143 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
9144 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
9145 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
9146 (*usum_widenqihi3, *udiff_widenqihi3)
9147 (*addhi3_zero_extend.const): New combiner insns.
9148 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
9149 just 1 bit is affected.
9150 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
9151 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
9152
9153 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
9154
9155 * omp-low.c (lower_omp_target): Mark data clauses with
9156 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
9157 zero-length subarrays.
9158
9159 2016-07-15 Richard Biener <rguenther@suse.de>
9160
9161 PR tree-optimization/71881
9162 * tree-loop-distribution.c (destroy_loop): Remove blocks in
9163 reverse DOM order to make debug temp generation happy.
9164
9165 2016-07-15 Richard Biener <rguenther@suse.de>
9166
9167 PR tree-optimization/71887
9168 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
9169 verify it is not zero for division / modulo handling.
9170 (value_replacement): Adjust.
9171
9172 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
9173 Julian Brown <julian@codesourcery.com>
9174
9175 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
9176 * config/aarch64/aarch64-cost-tables.h
9177 (vulcan_extra_costs): New variable.
9178 * config/aarch64/aarch64.c
9179 (vulcan_addrcost_table): Likewise.
9180 (vulcan_regmove_cost): Likewise.
9181 (vulcan_vector_cost): Likewise.
9182 (vulcan_branch_cost): Likewise.
9183 (vulcan_tunings): Likewise.
9184
9185 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
9186
9187 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
9188 (output_in_order): Loop over undefined variables too. Output them
9189 via assemble_undefined_decl. Skip variables that correspond to hard
9190 registers or have value-exprs.
9191 * varpool.c (symbol_table::output_variables): Handle undefined
9192 variables together with defined ones.
9193
9194 2016-07-15 Richard Biener <rguenther@suse.de>
9195
9196 * tree-ssa-pre.c (get_representative_for): Make sure to return
9197 the value number of SSA names.
9198 (phi_translate_1): get_representative_for cannot return NULL.
9199 (do_pre_regular_insertion): Remove redundant call to
9200 fully_constant_expression.
9201 (do_pre_partial_partial_insertion): Likewise.
9202
9203 2016-07-15 Bin Cheng <bin.cheng@arm.com>
9204
9205 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
9206 (derive_simple_iv_with_niters): New function.
9207 (simple_iv): Rewrite using simple_iv_with_niters.
9208 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
9209 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
9210 function.
9211 (number_of_iterations_exit): Rewrite using above function.
9212 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
9213 Decl.
9214
9215 2016-07-15 Richard Biener <rguenther@suse.de>
9216
9217 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
9218 vec_construct cost.
9219
9220 2016-07-14 Jakub Jelinek <jakub@redhat.com>
9221
9222 PR tree-optimization/71872
9223 * tree-data-ref.c (get_references_in_stmt): Ignore references
9224 with is_gimple_constant get_base_address.
9225
9226 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
9227
9228 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
9229 (TARGET_HAVE_LDACQD): New macro.
9230 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
9231 than TARGET_HAVE_LDACQ.
9232 (arm_load_acquire_exclusivedi): Likewise.
9233 (arm_store_release_exclusivedi): Likewise.
9234
9235 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
9236
9237 PR rtl-optimization/71878
9238 * lra-constraints.c (match_reload): Pass information about other
9239 output operands. Create new unique register value if matching input
9240 operand shares same register value as output operand being considered.
9241 (curr_insn_transform): Record output operands already processed.
9242
9243 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9244
9245 PR target/65951
9246 PR tree-optimization/70923
9247 * tree-vect-patterns.c: Include mult-synthesis.h.
9248 (target_supports_mult_synth_alg): New function.
9249 (synth_lshift_by_additions): Likewise.
9250 (apply_binop_and_append_stmt): Likewise.
9251 (vect_synth_mult_by_constant): Likewise.
9252 (target_has_vecop_for_code): Likewise.
9253 (vect_recog_mult_pattern): Use above functions to synthesize vector
9254 multiplication by integer constants.
9255
9256 2016-07-14 Alan Modra <amodra@gmail.com>
9257
9258 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
9259 gpr alternatives. Correct '*' placement on Y,r alternative.
9260 Add '*' on operand 1 of r,r alternative.
9261
9262 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9263
9264 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
9265 * expmed.h: ... Here.
9266
9267 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
9268
9269 * gimple.h (stmt_can_terminate_bb_p): New function.
9270 * tree-cfg.c (need_fake_edge_p): Rename to ...
9271 (stmt_can_terminate_bb_p): ... this; return true if stmt can
9272 throw external; handle const and pure calls.
9273 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
9274
9275 2016-07-14 Richard Biener <rguenther@suse.de>
9276
9277 PR tree-optimization/71866
9278 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
9279 (do_hoist_insertion): Avoid endless recursion when we
9280 didn't insert anything because we managed to simplify
9281 things down to a constant or SSA name.
9282 (fully_constant_expression): Re-write in terms of ...
9283 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
9284 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
9285 vn_nary_build_or_lookup_1.
9286 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
9287 (vn_nary_build_or_lookup): ... this which now wraps it.
9288
9289 2016-07-14 Alan Modra <amodra@gmail.com>
9290
9291 PR target/71733
9292 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
9293 with p9_vector override before power9-dform override.
9294
9295 2016-07-13 Andi Kleen <ak@linux.intel.com>
9296
9297 * value-prof.c (gimple_value_profile_transformations): Don't run
9298 when auto_profile is on.
9299
9300 2016-07-13 Andi Kleen <ak@linux.intel.com>
9301
9302 * auto-profile.c (update_inlined_ind_target,
9303 afdo_indirect_call): Print information to dump file.
9304
9305 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
9306
9307 * genrecog.c (special_predicate_operand_p): New function.
9308 (predicate_name): Move function.
9309 (validate_pattern): Don't warn about missing mode for all
9310 define_special_predicate predicates.
9311
9312 2016-07-13 Bin Cheng <bin.cheng@arm.com>
9313
9314 * tree-vect-data-refs.c (vect_no_alias_p): New function.
9315 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
9316 resolve alias checks which are known at compilation time.
9317 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
9318 alias checks are resolved. Move dump info for too many runtime
9319 alias checks to here...
9320 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
9321
9322 2016-07-13 Richard Biener <rguenther@suse.de>
9323
9324 PR tree-optimization/24574
9325 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
9326 position and add shift, rotate, divison and modulo support
9327 for left zero.
9328 (value_replacement): Pass in argument position to absorbing_element_p.
9329
9330 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
9331
9332 PR ipa/71633
9333 * ipa-inline-transform.c (inline_call): Support
9334 instrumented thunks.
9335
9336 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
9337
9338 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
9339 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
9340 divide feature.
9341 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
9342 Baseline. Make initial alternative TARGET_32BIT only.
9343 (udivsi3): Likewise.
9344 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
9345 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
9346 target.
9347
9348 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
9349
9350 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
9351 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
9352 availability with TARGET_HAVE_MOVT.
9353 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
9354 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
9355 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
9356 UINTVAL.
9357 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
9358 extra instruction if MOVW is available. Use a cost variable
9359 incremented by COSTS_N_INSNS (1) when the condition match rather than
9360 returning an arithmetic expression based on COSTS_N_INSNS. Make
9361 constant with bottom half word zero cost 2 instruction if MOVW is
9362 available.
9363 * config/arm/arm.md (define_attr "arch"): Add v8mb.
9364 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
9365 target is ARMv8-M Baseline.
9366 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
9367 (arm_movtas_ze): Likewise.
9368 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
9369 alternative for constants satisfying j constraint.
9370 (thumb1_movsi_insn): Likewise.
9371 (movsi splitter for K alternative): Tighten condition to not trigger
9372 if movt is available and j constraint is satisfied.
9373 (Pe immediate splitter): Likewise.
9374 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
9375 constant fitting in an halfword to use MOVW.
9376 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
9377 effective target.
9378
9379 2016-07-13 Richard Biener <rguenther@suse.de>
9380
9381 PR middle-end/71104
9382 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
9383 gimplifying the LHS. Make sure to gimplify a returning twice
9384 call LHS without using SSA names.
9385
9386 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9387
9388 * tree-data-ref.c (find_data_references_in_stmt): Remove
9389 unnecessary call to vec::release.
9390 (graphite_find_data_references_in_stmt): Likewise.
9391 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
9392 * tree-vect-stmts.c (vectorizable_condition): Likewise.
9393
9394 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9395
9396 * cfgexpand.c (expand_used_vars): Make the type of a local
9397 variable auto_vec.
9398 * genmatch.c (lower_for): Likewise.
9399 * haifa-sched.c (haifa_sched_init): Likewise.
9400 (add_to_speculative_block): Likewise.
9401 (create_check_block_twin): Likewise.
9402 * predict.c (handle_missing_profiles): Likewise.
9403 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
9404 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
9405 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
9406 Likewise.
9407 (maybe_lower_iteration_bound): Likewise.
9408 * tree-ssa-sccvn.c (DFS): Likewise.
9409 * tree-stdarg.c (reachable_at_most_once): Likewise.
9410 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
9411 (vectorizable_store): Likewise.
9412
9413 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9414
9415 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
9416 (sccvn_dom_walker): make cond_stack an auto_vec.
9417
9418 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9419
9420 * ree.c (struct ext_state): Make type of members auto_vec.
9421 (find_and_remove_re): Adjust.
9422
9423 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9424
9425 * cfgexpand.c (struct stack_vars_data): Make type of fields
9426 auto_vec.
9427 (expand_used_vars): Adjust.
9428
9429 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9430
9431 * ipa.c (record_cdtor_fn): Adjust.
9432 (build_cdtor_fns): Likewise.
9433 (ipa_cdtor_merge): Make static_ctors and static_dtors local
9434 variables.
9435
9436 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9437
9438 * genextract.c (struct accum_extract): Add constructor and make
9439 members auto_vec.
9440 (gen_insn): Adjust.
9441
9442 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9443
9444 * tree.c (struct free_lang_data_d): Add constructor and change
9445 types of members to ones that automatically manage resources.
9446 (fld_worklist_push): Adjust.
9447 (find_decls_types): Likewise.
9448 (find_decls_types_in_eh_region): Likewise.
9449 (free_lang_data_in_cgraph): Stop manually creating and
9450 destroying members of free_lang_data_d.
9451
9452 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
9453
9454 PR rtl-optimization/68961
9455 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
9456 peephole variant. Use sse_reg_operand predicates.
9457
9458 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
9459
9460 * config/i386/predicates.md (x86_64_immediate_operand)
9461 <case CONST_INT>: Remove unneeded truncation to DImode.
9462 <case CONST>: Ditto.
9463 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
9464
9465 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
9466
9467 PR target/71805
9468 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
9469 The xxperm and xxpermr instructions require that the 2nd input
9470 operand overlap with the output operand, and not the 1st.
9471 (altivec_vperm_v8hiv16qi): Likewise.
9472 (altivec_vperm_<mode>_uns_internal): Likewise.
9473 (altivec_vpermr_<mode>_internal): Likewise.
9474 (vperm_v8hiv4si): Likewise.
9475 (vperm_v16qiv8hi): Likewise.
9476
9477 2016-07-12 Nathan Sidwell <nathan@acm.org>
9478
9479 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
9480 when -mno-pic-data-is-text-relative is in effect, by default.
9481 * doc/invoke.texi (mpic-data-is-text-relative): Document new
9482 behavior and clarify.
9483
9484 2016-07-12 Martin Liska <mliska@suse.cz>
9485
9486 * params.def: Add avg-loop niter.
9487 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
9488 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
9489 * doc/invoke.texi: Document the new parameter.
9490
9491 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9492
9493 PR middle-end/71700
9494 * expr.c (store_constructor): Mask sign-extended bits when widening
9495 sub-word constructor element at the start of a word.
9496
9497 2016-07-12 Martin Liska <mliska@suse.cz>
9498
9499 * Makefile.in: Append rule for params-options.h.
9500 * params-options.h: New file.
9501
9502 2016-07-12 Martin Liska <mliska@suse.cz>
9503
9504 * ira-build.c (mark_loops_for_removal): Properly iterate
9505 loops.
9506
9507 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
9508 Richard Biener <rguenther@suse.de>
9509
9510 PR tree-optimization/23286
9511 PR tree-optimization/70159
9512 * doc/invoke.texi: Document -fcode-hoisting.
9513 * common.opt (fcode-hoisting): New flag.
9514 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
9515 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
9516 (do_regular_insertion): Rename to ...
9517 (do_pre_regular_insertion): ... this and amend general comments
9518 on insertion strathegy.
9519 (do_partial_partial_insertion): Rename to ...
9520 (do_pre_partial_partial_insertion): ... this.
9521 (do_hoist_insertion): New function.
9522 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
9523 and call do_hoist_insertion properly.
9524 (insert): Adjust.
9525 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
9526 (pass_pre::execute): Register hoist_insert stats.
9527
9528 2016-07-12 Jakub Jelinek <jakub@redhat.com>
9529
9530 PR middle-end/71716
9531 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
9532 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
9533 is different from mode's bitsize. Small cleanup.
9534
9535 2016-07-12 Richard Biener <rguenther@suse.de>
9536
9537 PR rtl-optimization/68961
9538 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
9539 to simplify to a non-constant.
9540
9541 2016-07-11 Jakub Jelinek <jakub@redhat.com>
9542
9543 PR middle-end/71758
9544 * omp-low.c (expand_omp_target): Gimplify device.
9545
9546 PR tree-optimization/71823
9547 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
9548 to get vec_oprnds2 from op2.
9549
9550 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
9551
9552 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
9553 Hoist common subexpressions.
9554 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
9555
9556 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
9557
9558 PR target/71800
9559 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
9560 prevent generation of 'stxsiwx' on pre Power8 hardware.
9561
9562 2016-07-11 David Malcolm <dmalcolm@redhat.com>
9563
9564 * input.c: Include cpplib.h.
9565 (selftest::temp_source_file): New class.
9566 (selftest::temp_source_file::temp_source_file): New ctor.
9567 (selftest::temp_source_file::~temp_source_file): New dtor.
9568 (selftest::should_have_column_data_p): New function.
9569 (selftest::test_should_have_column_data_p): New function.
9570 (selftest::temp_line_table): New class.
9571 (selftest::temp_line_table::temp_line_table): New ctor.
9572 (selftest::temp_line_table::~temp_line_table): New dtor.
9573 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
9574 it to create a temp_line_table.
9575 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
9576 locations that are known to have column data.
9577 (selftest::line_table_case): New struct.
9578 (selftest::test_reading_source_line): Move tempfile handling
9579 to class temp_source_file.
9580 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
9581 (selftest::assert_token_loc_eq): New function.
9582 (ASSERT_TOKEN_LOC_EQ): New macro.
9583 (selftest::test_lexer): New function.
9584 (selftest::boundary_locations): New array.
9585 (selftest::input_c_tests): Call test_should_have_column_data_p.
9586 Loop over a test matrix of interesting values of location and
9587 default_range_bits, calling test_lexer on each case in the matrix.
9588 Move call to test_accessing_ordinary_linemaps into the matrix.
9589 * selftest.h (ASSERT_EQ): Reimplement in terms of...
9590 (ASSERT_EQ_AT): New macro.
9591
9592 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
9593
9594 PR target/71801
9595 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
9596 Don't convert TImode in debug insn.
9597
9598 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
9599
9600 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
9601 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
9602 (tree_type_common::lang_flag_7): New.
9603 (tree_type_common::spare): Reduce size.
9604 * tree.h (TYPE_ALIGN_OK): Remove.
9605 (TYPE_LANG_FLAG_7): New.
9606 (get_inner_reference): Adjust header.
9607 * print-tree.c (print_node): Adjust.
9608 * expr.c (get_inner_reference): Remove parameter keep_aligning.
9609 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
9610 calls to get_inner_reference.
9611 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
9612 handling of TYPE_ALIGN_OK.
9613 * builtins.c (get_object_alignment_2): Adjust call to
9614 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
9615 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
9616 TYPE_ALIGN_OK.
9617 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
9618 * cfgexpand.c (expand_debug_expr): Likewise.
9619 * dbxout.c (dbxout_expand_expr): Likewise.
9620 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
9621 loc_list_from_tree, fortran_common): Likewise.
9622 * fold-const.c (optimize_bit_field_compare,
9623 decode_field_reference, fold_unary_loc, fold_comparison,
9624 split_address_to_core_and_offset): Likewise.
9625 * gimple-laddress.c (execute): Likewise.
9626 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
9627 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
9628 * hsa-gen.c (gen_hsa_addr): Likewise.
9629 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
9630 * tsan.c (instrument_expr): Likewise.
9631 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
9632 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
9633 * tree-affine.c (tree_to_aff_combination,
9634 get_inner_reference_aff): Adjust calls to get_inner_reference.
9635 * tree-data-ref.c (split_constant_offset_1,
9636 dr_analyze_innermost): Likewise.
9637 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
9638 * tree-sra.c (ipa_sra_check_caller): Likewise.
9639 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
9640 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
9641 bswap_replace): Likewise.
9642 * tree-vect-data-refs.c (vect_check_gather,
9643 vect_analyze_data_refs): Likewise.
9644 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
9645 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
9646 TYPE_ALIGN_OK.
9647
9648 2016-07-11 David Malcolm <dmalcolm@redhat.com>
9649
9650 * Makefile.in (selftest-valgrind): New phony target.
9651 * function-tests.c (selftest::build_cfg): Delete pass instances
9652 created by the test.
9653 (selftest::convert_to_ssa): Likewise.
9654 (selftest::test_expansion_to_rtl): Likewise.
9655 * tree-cfg.c (selftest::test_linear_chain): Release dominator
9656 vectors.
9657 (selftest::test_diamond): Likewise.
9658
9659 2016-07-11 Richard Biener <rguenther@suse.de>
9660
9661 PR tree-optimization/71816
9662 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
9663 than replacing all of its operands.
9664
9665 2016-07-11 Alan Modra <amodra@gmail.com>
9666
9667 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
9668 (ctr<mode>): Add unspec.
9669 (ctr<mode>_internal*): Likewise.
9670
9671 2016-07-08 James Bowman <james.bowman@ftdichip.com>
9672
9673 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
9674 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
9675
9676 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
9677
9678 PR rtl-optimization/71621
9679 * lra-constraints.c (process_alt_operands): Check combination of
9680 reg class and mode.
9681
9682 2016-07-08 Jason Merrill <jason@redhat.com>
9683 Richard Biener <rguenther@suse.de>
9684
9685 P0145: Refining Expression Order for C++.
9686 * gimplify.c (initial_rhs_predicate_for): New.
9687 (gimplfy_modify_expr): Gimplify RHS before LHS.
9688
9689 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9690
9691 PR target/71297
9692 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9693 Allow standard error handling to take over when a wrong number
9694 of arguments is presented to __builtin_vec_ld () or
9695 __builtin_vec_st ().
9696
9697 2016-07-08 Jiong Wang <jiong.wang@arm.com>
9698
9699 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
9700 variants.
9701 (smin): Likewise.
9702 (fmax): New entry.
9703 (fmin): Likewise.
9704 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
9705 __builtin_aarch64_fmaxv2sf.
9706 (vmaxnmq_f32): Likewise.
9707 (vmaxnmq_f64): Likewise.
9708 (vminnm_f32): Likewise.
9709 (vminnmq_f32): Likewise.
9710 (vminnmq_f64): Likewise.
9711
9712 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
9713
9714 PR target/71806
9715 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
9716 enable -mfloat128-hardware by default.
9717 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
9718 that IEEE 128-bit hardware support needs.
9719 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
9720 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
9721 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
9722 floating point requires.
9723 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9724 -mfloat128 and -mfloat128-hardware changes.
9725
9726 2016-07-08 Alan Hayward <alan.hayward@arm.com>
9727
9728 PR tree-optimization/71667
9729 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
9730
9731 2016-07-08 Martin Liska <mliska@suse.cz>
9732
9733 PR middle-end/71606
9734 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
9735 folding produces SAVE_EXPRs, thus return false for the type.
9736
9737 2016-07-07 Martin Liska <mliska@suse.cz>
9738
9739 * file-find.c (remove_prefix): New function.
9740 * file-find.h (remove_prefix): Declare the function.
9741 * gcc-ar.c (main): Skip a folder of the wrapper if
9742 a wrapped binary would point to the same file.
9743
9744 2016-07-07 Jan Hubicka <jh@suse.cz>
9745
9746 * tree-scalar-evolution.c (iv_can_overflow_p): export.
9747 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
9748 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
9749
9750 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
9751
9752 PR ipa/71624
9753 * ipa-inline-analysis.c (compute_inline_parameters): Set
9754 local.can_change_signature to false for intrumentation
9755 thunk callees.
9756
9757 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
9758
9759 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
9760 with TARGET_HAVE_MOVT.
9761 (TARGET_HAVE_MOVT): Define.
9762 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
9763 availability with TARGET_HAVE_MOVT.
9764 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
9765 availability.
9766 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
9767 TARGET_THUMB2.
9768 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
9769 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
9770 * config/arm/constraints.md (define_constraint "j"): Use
9771 TARGET_HAVE_MOVT to check MOVT availability.
9772
9773 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
9774
9775 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
9776
9777 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
9778
9779 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
9780 (armv8-m.main): Likewise.
9781 (armv8-m.main+dsp): Likewise.
9782 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
9783 (FL_FOR_ARCH8M_MAIN): Likewise.
9784 * config/arm/arm-tables.opt: Regenerate.
9785 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
9786 armv8-m.main+dsp to BE8_LINK_SPEC.
9787 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
9788 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
9789 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
9790 Baseline and Mainline.
9791 (arm_option_override_internal): Also disable arm_restrict_it when
9792 !arm_arch_notm. Update comment for -munaligned-access to also cover
9793 ARMv8-M Baseline.
9794 (arm_file_start): Increase buffer size for printing architecture name.
9795 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
9796 and armv8-m.main+dsp.
9797 (mno-unaligned-access): Clarify that this is disabled by default for
9798 ARMv8-M Baseline architectures as well.
9799
9800 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
9801
9802 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
9803 decide whether to prevent some libgcc routines being included for some
9804 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
9805 link between this condition and the one in
9806 libgcc/config/arm/lib1func.S.
9807
9808 2016-07-07 Richard Biener <rguenther@suse.de>
9809
9810 * tree-ssa-pre.c: Include alias.h.
9811 (compute_avail): If we have multiple VN_REFERENCEs with the
9812 same hashtable entry adjust that to make it a valid replacement
9813 for all of them with respect to alignment and aliasing
9814 when doing insertion.
9815 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
9816 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
9817
9818 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
9819
9820 PR target/70098
9821 PR target/71763
9822 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
9823 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
9824 constraint.
9825
9826 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9827
9828 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
9829 (adjust_mems): Adjust.
9830 (adjust_insn): Likewise.
9831 (prepare_call_arguments): Likewise.
9832
9833 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9834
9835 * gcse.c (struct ls_expr): Make stores field a vector.
9836 (ldst_entry): Adjust.
9837 (free_ldst_entry): Likewise.
9838 (print_ldst_list): Likewise.
9839 (compute_ld_motion_mems): Likewise.
9840 (update_ld_motion_stores): Likewise.
9841
9842 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9843
9844 * gcse.c (struct ls_expr): Remove loads field.
9845 (ldst_entry): Adjust.
9846 (free_ldst_entry): Likewise.
9847 (print_ldst_list): Likewise.
9848 (compute_ld_motion_mems): Likewise.
9849
9850 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9851
9852 * store-motion.c (struct st_expr): Make antic_stores a vector.
9853 (st_expr_entry): Adjust.
9854 (free_st_expr_entry): Likewise.
9855 (print_store_motion_mems): Likewise.
9856 (find_moveable_store): Likewise.
9857 (compute_store_table): Likewise.
9858 (remove_reachable_equiv_notes): Likewise.
9859 (replace_store_insn): Likewise.
9860 (build_store_vectors): Likewise.
9861
9862 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9863
9864 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
9865 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
9866
9867 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
9868
9869 PR tree-optimization/71518
9870 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
9871 misalign also for outer loops with negative step.
9872
9873 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
9874
9875 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
9876 (cortex_a53_shift): Add mov_shift.
9877 (cortex_a53_shift_reg): Add new reservation for register shifts.
9878 (cortex_a53_alu): Remove bfm.
9879 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
9880 (cortex_a53_alu_extr): Add new reservation for EXTR.
9881 (bypasses): Improve bypass modelling.
9882
9883 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9884
9885 PR target/50739
9886 * config/avr/avr.c (avr_asm_select_section): Strip off
9887 SECTION_DECLARED from flags when calling get_section.
9888
9889 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9890
9891 * tree-vectorizer.h (vect_memory_access_type): Add
9892 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
9893 * tree-vect-stmts.c (compare_step_with_zero): New function.
9894 (perm_mask_for_reverse): Move further up file.
9895 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
9896 step is negative.
9897 (get_negative_load_store_type): New function.
9898 (get_load_store_type): Call it. Add an ncopies argument.
9899 (vectorizable_mask_load_store): Update call accordingly and
9900 remove tests for negative steps.
9901 (vectorizable_store, vectorizable_load): Likewise. Handle new
9902 memory_access_types.
9903
9904 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9905
9906 * tree-vectorizer.h (vect_memory_access_type): New enum.
9907 (_stmt_vec_info): Add a memory_access_type field.
9908 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
9909 (vect_model_store_cost): Take an access type instead of a boolean.
9910 (vect_model_load_cost): Likewise.
9911 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
9912 vect_model_store_cost and vect_model_load_cost.
9913 * tree-vect-stmts.c (vec_load_store_type): New enum.
9914 (vect_model_store_cost): Take an access type instead of a
9915 store_lanes_p boolean. Simplify tests.
9916 (vect_model_load_cost): Likewise, but for load_lanes_p.
9917 (get_group_load_store_type, get_load_store_type): New functions.
9918 (vectorizable_store): Use get_load_store_type. Record the access
9919 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
9920 (vectorizable_load): Likewise.
9921 (vectorizable_mask_load_store): Likewise. Replace is_store
9922 variable with vls_type.
9923
9924 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9925
9926 * tree-vectorizer.h (vect_grouped_load_supported): Add a
9927 single_element_p parameter.
9928 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
9929 Check the PR65518 case here rather than in vectorizable_load.
9930 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
9931 * tree-vect-stmts.c (vectorizable_load): Likewise.
9932
9933 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9934
9935 * tree-vectorizer.h (gather_scatter_info): New structure.
9936 (vect_check_gather_scatter): Return a bool rather than a decl.
9937 Replace return-by-pointer arguments with a single
9938 gather_scatter_info *.
9939 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
9940 (vect_analyze_data_refs): Update call accordingly.
9941 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
9942 (vectorizable_mask_load_store): Likewise. Also record the
9943 offset dt and vectype in the gather_scatter_info.
9944 (vectorizable_store): Likewise.
9945 (vectorizable_load): Likewise.
9946
9947 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9948
9949 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
9950 strided groups, use the cost of N scalar accesses instead
9951 of ncopies vector accesses.
9952 (vect_model_load_cost): Likewise.
9953
9954 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9955
9956 * tree-vect-stmts.c (vect_cost_group_size): Delete.
9957 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
9958 variable to indicate when once-per-group costs are being used.
9959 (vect_model_load_cost): Likewise. Fix comment and misindented code.
9960
9961 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
9962
9963 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
9964 peeling-for-gaps condition.
9965
9966 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9967
9968 * config/s390/s390.c (s390_expand_vec_init): Force initializer
9969 element to register if it doesn't match general_operand.
9970
9971 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
9972 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9973
9974 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
9975 prototype.
9976 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
9977 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
9978 (SIGNBIT): New mode iterator.
9979 (Fsignbit): New mode attribute.
9980 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
9981 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
9982 when direct moves are available.
9983 (signbit<mode>2_dm): New define_insn_and_split).
9984 (signbit<mode>2_dm2): New define_insn.
9985
9986 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9987
9988 PR rtl-optimization/71594
9989 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
9990 into subregs of appropriate mode before trying to emit a conditional
9991 move.
9992
9993 2016-07-05 Jan Hubicka <jh@suse.cz>
9994
9995 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
9996 (simple_iv): Use it.
9997
9998 2016-07-05 Jan Hubicka <jh@suse.cz>
9999
10000 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
10001
10002 2016-07-05 Jiong Wang <jiong.wang@arm.com>
10003
10004 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
10005 "offmemok".
10006
10007 2016-07-05 Jan Hubicka <jh@suse.cz>
10008
10009 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
10010 IV can overflow.
10011
10012 2016-07-05 Richard Biener <rguenther@suse.de>
10013
10014 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
10015 Handle empty else block.
10016 (is_feasible_trace): Likewise.
10017 (split_paths): Likewise.
10018
10019 2016-07-05 Richard Biener <rguenther@suse.de>
10020
10021 * tree-loop-distribution.c (distribute_loop): Fix issue with
10022 the cost model loop.
10023
10024 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
10025
10026 * config/arm/neon-testgen.ml: Delete.
10027 * config/arm/neon.ml: Delete.
10028
10029 2016-07-04 Jakub Jelinek <jakub@redhat.com>
10030
10031 PR c++/71739
10032 * tree.c (attribute_value_equal): Use get_attribute_name instead of
10033 directly using TREE_PURPOSE.
10034
10035 2016-07-04 Jiong Wang <jiong.wang@arm.com>
10036
10037 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
10038 * config/aarch64/aarch64_neon.h: Likewise.
10039 * config/aarch64/arm_neon.h: Likewise.
10040 * config/aarch64/atomics.md: Likewise.
10041 * config/aarch64/aarch64-simd-builtins.def: Likewise.
10042 * doc/invoke.texi: Likewise.
10043
10044 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
10045
10046 * config/s390/s390.md: Add "z13" cpu_facility.
10047 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
10048 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
10049 condition" type instructions.
10050
10051 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
10052 Jeff Law <law@redhat.com>
10053
10054 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
10055 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
10056
10057 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
10058
10059 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
10060 permutation for TARGET_AVX512F.
10061 (ix86_expand_vec_one_operand_perm_avx512): New function.
10062 (expand_vec_perm_1): Invoke introduced function.
10063 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
10064 it may be not valid after vectorization.
10065
10066 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10067
10068 PR target/63874
10069 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
10070 typo in comment. Only force to memory if it is a weak
10071 external reference.
10072
10073 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
10074 Jiong Wang <jiong.wang@arm.com>
10075
10076 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
10077 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
10078 (AARCH64_FL_F16): New.
10079 (AARCH64_FL_FOR_ARCH8_2): New.
10080 (AARCH64_ISA_8_2): New.
10081 (AARCH64_ISA_F16): New.
10082 (TARGET_FP_F16INST): New.
10083 (TARGET_SIMD_F16INST): New.
10084 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
10085 ("fp"): Disabling "fp" also disables "fp16".
10086 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
10087 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
10088 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
10089 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
10090
10091 2016-07-04 Jan Beulich <jbeulich@suse.com>
10092
10093 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
10094
10095 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
10096
10097 PR target/71720
10098 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
10099 the insns, use an insn form that does not adjust the offset on
10100 little endian systems.
10101
10102 2016-07-01 Jan Beulich <jbeulich@suse.com>
10103
10104 * varasm.c (get_variable_section): Validate initializer in
10105 named .bss-like sections.
10106
10107 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
10108
10109 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
10110 Exchange the order of the second and third operands in the vpermr
10111 instruction tmeplate.
10112
10113 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
10114
10115 PR target/71698
10116 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
10117 Disallow TDmode values.
10118
10119 2016-07-01 Alan Modra <amodra@gmail.com>
10120
10121 PR rtl-optimization/71709
10122 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
10123 being set, not referenced.
10124
10125 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
10126
10127 PR tree-optimization/70729
10128 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
10129 of loop since it can be not valid after transformation.
10130
10131 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10132
10133 * config/arm/arm.c (thumb_reload_in_hi): Delete.
10134 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
10135
10136 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
10137
10138 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
10139 for NULL decl.
10140
10141 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
10142
10143 PR target/71677
10144 * config/rs6000/constraints.md (wY constraint): New constraint to
10145 match the requirements for the LXSD and STXSD instructions.
10146 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
10147 predicate to match the requirements for the LXSD and STXSD
10148 instructions.
10149 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
10150 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
10151 to make sure that the bottom 2 bits of offset are 0, the address
10152 form is offsettable, and no updating is done in the address mode.
10153 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
10154 (movdi_internal32): Likewise
10155 (movdi_internal64): Likewise.
10156
10157 2016-06-30 Jakub Jelinek <jakub@redhat.com>
10158
10159 PR tree-optimization/71707
10160 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
10161 strinfo even for ADDR_EXPR ptr.
10162
10163 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
10164
10165 * config/rs6000/altivec.md (darn_32): Change the condition to
10166 TARGET_P9_MISC instead of TARGET_MODULO.
10167 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
10168 condition expression.
10169 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
10170 condition expression.
10171 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
10172 (DFP_TEST): New code iterator.
10173 (dfptstsfi_<code>_mode>): New define_expand.
10174 (*dfp_sgnfcnc_<mode>): New define_insn.
10175 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
10176 definition next to BU_P9_MISC_1 definition and change the MASK
10177 value to RS6000_BTM_P9_MISC.
10178 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
10179 (BU_P9_64BIT_MISC_0): Likewise.
10180 (BU_P9_DFP_MISC_0): New macro definition.
10181 (BU_P9_DFP_MISC_1): New macro definition.
10182 (BU_P9_DFP_MISC_2): New macro definition.
10183 (BU_P9_DFP_OVERLOAD_1): New macro definition.
10184 (BU_P9_DFP_OVERLOAD_2): New macro definition.
10185 (BU_P9_DFP_OVERLOAD_3): New macro definition.
10186 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
10187 (TSTSFI_LT_TD): Likewise.
10188 (TSTSFI_EQ_DD): Likewise.
10189 (TSTSFI_EQ_TD): Likewise.
10190 (TSTSFI_GT_DD): Likewise.
10191 (TSTSFI_GT_TD): Likewise.
10192 (TSTSFI_OV_DD): Likewise.
10193 (TSTSFI_OV_TD): Likewise.
10194 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
10195 (TSTSFI_LT_DD): Likewise.
10196 (TSTSFI_LT_TD): Likewise.
10197 (TSTSFI_EQ): Likewise.
10198 (TSTSFI_EQ_DD): Likewise.
10199 (TSTSFI_EQ_TD): Likewise.
10200 (TSTSFI_GT): Likewise.
10201 (TSTSFI_GT_DD): Likewise.
10202 (TSTSFI_GT_TD): Likewise.
10203 (TSTSFI_OV): Likewise.
10204 (TSTSFI_OV_DD): Likewise.
10205 (TSTSFI_OV_TD): Likewise.
10206 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10207 overloaded test significance functions.
10208 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
10209 OPTION_MASK_P9_MISC into the representation of this mask.
10210 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
10211 of this mask.
10212 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
10213 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
10214 non-zero.
10215 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
10216 argument is a 6-bit unsigned literal value if the icode argument
10217 represents a DFP test significance built-in call.
10218 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
10219 flag used independently and in combination with the
10220 RS6000_BTM_64BIT flag.
10221 (rs6000_opt_masks): Add entry for power9-misc command-line option.
10222 (rs6000_builtin_mask_names): Add entry for power9-misc
10223 command-line option.
10224 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
10225 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
10226 RS6000_BTM_P9_MISC macros.
10227 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
10228 option and change the description of the -mpower9-vector option to
10229 enable only vector instructions, removing its erroneously claimed
10230 support for scalar instructions.
10231 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
10232 the ISA 3.0 digital floating point test significance built-in
10233 functions.
10234
10235 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
10236
10237 * config/aarch64/aarch64.c (cortexa35_tunings):
10238 Enable AES fusion. Use cortexa57_branch_cost.
10239 (cortexa53_tunings): Use cortexa57_branch_cost.
10240 (cortexa72_tunings): Use cortexa57_branch_cost.
10241 Use AUTOPREFETCHER_WEAK.
10242 (cortexa73_tunings): Use cortexa57_branch_cost.
10243
10244 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10245 James Greenhalgh <james.greenhalgh@arm.com>
10246
10247 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
10248 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
10249 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
10250 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
10251 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
10252 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
10253 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
10254 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
10255 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
10256 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
10257 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
10258 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
10259 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
10260 New intrinsics.
10261
10262 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
10263 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10264
10265 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
10266 New define_insn.
10267 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
10268
10269 2016-06-30 David Malcolm <dmalcolm@redhat.com>
10270
10271 PR driver/71651
10272 * gcc.c (driver::build_option_suggestions): Pass "option" to
10273 add_misspelling_candidates.
10274 * opts-common.c (add_misspelling_candidates): Add "option" param;
10275 use it to avoid adding negated forms for options marked with
10276 RejectNegative.
10277 * opts.h (add_misspelling_candidates): Add "option" param.
10278
10279 2016-06-30 Jakub Jelinek <jakub@redhat.com>
10280
10281 PR middle-end/71693
10282 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
10283 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
10284 first when permuting bitwise operation with rotate. Cast
10285 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
10286
10287 2016-06-29 David Malcolm <dmalcolm@redhat.com>
10288
10289 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
10290 for misspelled param names.
10291 * params.c: Include spellcheck.h.
10292 (find_param_fuzzy): New function.
10293 * params.h (find_param_fuzzy): New prototype.
10294 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
10295 * spellcheck.h (struct edit_distance_traits<const char *>):
10296 ...here.
10297
10298 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
10299
10300 * config/rs6000/predicates.md (const_0_to_7_operand): New
10301 predicate, recognize 0..7.
10302 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
10303 support for doing extracts from V16QImode, V8HImode, V4SImode
10304 under ISA 3.0.
10305 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
10306 vector extract support.
10307 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
10308 for ISA 3.0 vector extract.
10309 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
10310 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
10311 extracts of a constant element number from small integer vectors
10312 on 64-bit ISA 3.0 systems.
10313 (vsx_extract_<mode>_di): Likewise.
10314 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
10315 say when we can do ISA 3.0 vector extracts.
10316 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
10317 registers, using the stxsiwx instruction.
10318
10319 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
10320
10321 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
10322 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
10323 qdf24xx_regmove_cost, qdf24xx_tunings): New.
10324 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
10325 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
10326 * config/arm/arm.c (arm_qdf24xx_tune): New.
10327
10328 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
10329
10330 * config/aarch64/aarch64.c (cortexa53_tunings):
10331 Increase loop alignment to 8. Set function alignment to 16.
10332 (cortexa35_tunings): Likewise.
10333 (cortexa57_tunings): Increase loop alignment to 8.
10334 (cortexa72_tunings): Likewise.
10335 (cortexa73_tunings): Likewise.
10336
10337 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
10338
10339 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
10340 for arm_fp16_ok and arm_fp16_hw.
10341 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
10342 arm_fp16_alternative.
10343
10344 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
10345
10346 PR tree-optimization/71655
10347 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
10348 types when swapping operands.
10349
10350 2016-06-29 Martin Liska <mliska@suse.cz>
10351
10352 PR middle-end/71585
10353 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
10354 * ipa-inline-transform.c (inline_call): Remove unnecessary call
10355 of build_optimization_node.
10356
10357 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
10358
10359 PR tree-optimization/70729
10360 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
10361 independent in loops having positive safelen value.
10362 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
10363 it may be not valid after vectorization.
10364
10365 2016-06-29 Jakub Jelinek <jakub@redhat.com>
10366
10367 PR tree-optimization/71625
10368 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
10369 is sorted by ascending list->offset. If PTR is non-NULL and there is
10370 previous strinfo, call get_stridx_plus_constant.
10371 (get_stridx): Pass exp as second argument to get_addr_stridx.
10372 (addr_stridxptr): Add missing list = list->next, so that there can be
10373 more than one entries in the list. Bump limit from 16 to 32. Ensure
10374 the list is sorted by ascending list->offset.
10375 (get_stridx_plus_constant): Adjust so that it can be also called with
10376 ADDR_EXPR instead of SSA_NAME as PTR.
10377 (handle_char_store): Pass NULL_TREE as second argument to
10378 get_addr_stridx.
10379
10380 2016-06-29 Richard Biener <rguenther@suse.de>
10381
10382 PR rtl-optimization/68961
10383 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
10384
10385 2016-06-29 Richard Biener <rguenther@suse.de>
10386
10387 PR middle-end/71002
10388 * alias.c (component_uses_parent_alias_set_from): Handle
10389 type punning through union accesses by using the union alias set.
10390 * gimple.c (gimple_get_alias_set): Remove union type punning case.
10391
10392 2016-07-29 Richard Biener <rguenther@suse.de>
10393
10394 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
10395 precision not matching mode precision.
10396
10397 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
10398
10399 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
10400 pa_output_arg_descriptor.
10401 (call_val_symref_64bit_post_reload): Likewise.
10402 (call_val_powf_64bit_post_reload): Likewise.
10403 (sibcall_internal_symref_64bit): Likewise.
10404 (sibcall_value_internal_symref_64bit): Likewise.
10405
10406 2016-06-28 Jakub Jelinek <jakub@redhat.com>
10407
10408 PR middle-end/71626
10409 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
10410 a constant, force its SUBREG_REG into memory or register instead
10411 of whole op1.
10412
10413 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
10414
10415 PR target/58655
10416 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
10417 * doc/invoke.texi (AVR Options): Document it.
10418
10419 2016-06-28 Walter Lee <walt@tilera.com>
10420
10421 * config/tilegx/linux.h: Do not include arch/icache.h
10422 (CLEAR_INSN_CACHE): Provide inlined definition directly.
10423 * config/tilepro/linux.h: Do not include arch/icache.h
10424 (CLEAR_INSN_CACHE): Provide inlined definition directly.
10425
10426 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
10427
10428 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
10429 for big-endian BIT_FIELD_REF.
10430
10431 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
10432
10433 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
10434 ('size' attribute): Add '128'.
10435 Include power9.md.
10436 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
10437 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
10438 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
10439 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
10440 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
10441 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
10442 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
10443 *trunc<mode>df2_odd): Set size attribute to '128'.
10444 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
10445 * config/rs6000/power6.md (power6-fp): Include dfp type.
10446 * config/rs6000/power7.md (power7-fp): Likewise.
10447 * config/rs6000/power8.md (power8-fp): Likewise.
10448 * config/rs6000/power9.md: New file.
10449 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
10450 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
10451 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
10452 htmsimple.
10453 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
10454 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
10455 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
10456 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
10457 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
10458 dfp_dscri_<mode>): Change type attribute to dfp.
10459 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
10460 attribute to vecsimple.
10461 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
10462 and prefetch streams.
10463 (rs6000_option_override_internal): Remove temporary code setting
10464 tuning to power8. Don't set rs6000_sched_groups for power9.
10465 (last_scheduled_insn): Change to rtx_insn *.
10466 (divide_cnt, vec_load_pendulum): New variables.
10467 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
10468 (rs6000_issue_rate): Set issue rate for Power9.
10469 (is_power9_pairable_vec_type): New.
10470 (power9_sched_reorder2): New.
10471 (rs6000_sched_reorder2): Call new function for Power9 specific
10472 reordering.
10473 (insn_must_be_first_in_group): Remove Power9.
10474 (insn_must_be_last_in_group): Likewise.
10475 (force_new_group): Likewise.
10476 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
10477 Initialize divide_cnt/vec_load_pendulum.
10478 (_rs6000_sched_context, rs6000_init_sched_context,
10479 rs6000_set_sched_context): Handle context save/restore of new
10480 variables.
10481
10482 2016-06-28 Richard Biener <rguenther@suse.de>
10483
10484 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
10485 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
10486 COMPONENT_REF operand.
10487 (nonoverlapping_component_refs_p): Likewise.
10488 * stor-layout.c (start_bitfield_representative): Mark
10489 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
10490
10491 2016-06-28 Jakub Jelinek <jakub@redhat.com>
10492
10493 * Makefile.in: Don't cat ../stage_current if it does not exist.
10494
10495 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
10496 last argument is a bit-field.
10497
10498 PR rtl-optimization/71673
10499 * internal-fn.c (expand_arith_overflow_result_store): Use
10500 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
10501 expand_simple_binop.
10502
10503 PR middle-end/66867
10504 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
10505 expand_ifn_atomic_compare_exchange): New functions.
10506 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
10507 * tree.h (build_call_expr_internal_loc): Rename to ...
10508 (build_call_expr_internal_loc_array): ... this. Fix up type of
10509 last argument.
10510 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
10511 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
10512 ATOMIC_COMPARE_EXCHANGE result.
10513 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
10514 * gimple-fold.h (optimize_atomic_compare_exchange_p,
10515 fold_builtin_atomic_compare_exchange): New prototypes.
10516 * gimple-fold.c (optimize_atomic_compare_exchange_p,
10517 fold_builtin_atomic_compare_exchange): New functions..
10518 * tree-ssa.c (execute_update_addresses_taken): If
10519 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
10520 of call when finding addressable vars, and if such var becomes
10521 non-addressable, call fold_builtin_atomic_compare_exchange.
10522
10523 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
10524
10525 PR target/71670
10526 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
10527 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
10528
10529 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
10530
10531 * config/rs6000/rs6000.md ('type' attribute): Add
10532 veclogical,veccmpfx,vecexts,vecmove insn types.
10533 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
10534 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
10535 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
10536 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
10537 *nabs<mode>2_hw): Change type to vecmove.
10538 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
10539 *boolcc<mode>3_internal, *eqv<mode>3_internal,
10540 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
10541 *ieee_128bit_vsx_abs<mode>2_internal,
10542 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
10543 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
10544 *ieee128_mtvsrd_32bit): Change type to veclogical.
10545 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
10546 *movdi_internal32, *movdi_internal64): Update insn types.
10547 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
10548 vsx_extract_<mode>): Change type to veclogical.
10549 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
10550 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
10551 *vsx_sign_extend_si_v2di): Change type to vecexts.
10552 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
10553 type to veclogical.
10554 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
10555 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
10556 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
10557 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
10558 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
10559 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
10560 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
10561 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
10562 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
10563 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
10564 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
10565 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
10566 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
10567 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
10568 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
10569 (ppc7450-vecsimple): Add veclogical, vecmove.
10570 (ppc7450-veccmp): Add veccmpfx.
10571 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
10572 vecmove.
10573 (ppc8540_vector_compare): Add veccmpfx.
10574 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
10575 * config/rs6000/cell.md (cell-fp): Add fpsimple.
10576 (cell-vecsimple): Add veclogical, vecmove.
10577 (cell-veccmp): Add veccmpfx.
10578 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
10579 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
10580 veccmpfx.
10581 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
10582 * config/rs6000/power4.md (power4-fp): Add fpsimple.
10583 (power4-vecsimple): Add veclogical, vecmove.
10584 (power4-veccmp): Add veccmpfx.
10585 * config/rs6000/power5.md (power5-fp): Add fpsimple.
10586 * config/rs6000/power6.md (power6-fp): Add fpsimple.
10587 (power6-vecsimple): Add veclogical, vecmove.
10588 (power6-veccmp): Add veccmpfx.
10589 * config/rs6000/power7.md (power7-fp): Add fpsimple.
10590 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
10591 * config/rs6000/power8.md (power8-fp): Add fpsimple.
10592 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
10593 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
10594 * config/rs6000/titan.md (titan_fp): Add fpsimple.
10595 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
10596 fpsimple.
10597 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
10598
10599 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
10600
10601 PR target/71656
10602 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
10603 OPTION_MASK_P9_DFORM_VECTOR.
10604 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
10605 disable -mpower9-dform-vector when using reload.
10606 (quad_address_p): Remove 'gpr_p' argument and all associated code.
10607 New 'strict' argument. Update all callers. Add strict addressing
10608 support.
10609 (rs6000_legitimate_offset_address_p): Remove call to
10610 virtual_stack_registers_memory_p.
10611 (rs6000_legitimize_reload_address): Add quad address support.
10612 (rs6000_legitimate_address_p): Move call to quad_address_p above
10613 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
10614 to account for new strict usage.
10615 (rs6000_output_move_128bit): Adjust quad_address_p args to account
10616 for new strict usage.
10617 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
10618
10619 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
10620
10621 PR target/70902
10622 PR target/71453
10623 PR target/71555
10624 PR target/71596
10625 PR target/71657
10626 * config/i386/i386.c (ix86_spill_class): Disable condition to
10627 always return NO_REGS.
10628
10629 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
10630
10631 * predict.c: Include gimple-pretty-print.h
10632 (predicted_by_loop_heuristics_p): Check also
10633 PRED_LOOP_EXIT_WITH_RECURSION
10634 (predict_loops): Find self recursive calls and use special purpose
10635 predictors for them; dump log about decisions.
10636 (pass_profile::execute): Dump info about #of iterations.
10637 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
10638 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
10639
10640 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
10641
10642 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
10643 output_asm_insn calls and shorten long lines. Output .CALL
10644 argument descriptor using pa_output_arg_descriptor. Add various
10645 inline $$dyncall and other optimizations.
10646 (pa_attr_length_indirect_call): Adjust ordering and lengths.
10647
10648 2016-06-25 Jakub Jelinek <jakub@redhat.com>
10649
10650 PR tree-optimization/71643
10651 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
10652 EH preds.
10653
10654 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
10655 leak a bitmap if dep_bb is NULL.
10656
10657 PR tree-optimization/71631
10658 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
10659 to rewrite_expr_tree even if negate_result, move new_lhs var
10660 declaration and initialization earlier, for powi_result set afterwards
10661 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
10662 if new_lhs != lhs, and don't shadow gsi var.
10663
10664 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
10665
10666 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
10667 Add in_loop parameter.
10668 (predict_loops): Add loop guard heuristics.
10669 * predict.def (PRED_LOOP_GUARD): New heuristics.
10670
10671 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
10672
10673 * predict.c: Include ipa-utils.h
10674 (tree_bb_level_prediction): Predict recursive calls.
10675 (tree_estimate_probability_bb): Skip inexpensive calls for call
10676 predictor.
10677 * predict.def (PRED_RECURSIVE_CALL): New.
10678
10679 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10680
10681 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
10682 (BU_FLOAT128_1): Likewise.
10683 (FABSQ): Likewise.
10684 (COPYSIGNQ): Likewise.
10685 (RS6000_BUILTIN_NANQ): Likewise.
10686 (RS6000_BUILTIN_NANSQ): Likewise.
10687 (RS6000_BUILTIN_INFQ): Likewise.
10688 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
10689 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
10690 (TARGET_FOLD_BUILTIN): New #define.
10691 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
10692 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
10693 (rs6000_fold_builtin): New target hook implementation, handling
10694 folding of 128-bit NaNs and infinities.
10695 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
10696 entries are filled in to avoid problems during bootstrap
10697 self-test; define builtins for 128-bit NaNs and infinities.
10698 (rs6000_opt_mask): Add entry for float128.
10699 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
10700 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
10701 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
10702 (const_str_type_node): New #define.
10703 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
10704 to a define_expand that dispatches to either copysign<mode>3_soft
10705 or copysign<mode>3_hard.
10706 (copysign<mode>3_hard): Rename from copysign<mode>3.
10707 (copysign<mode>3_soft): New define_insn.
10708 * doc/extend.texi: Document new builtins.
10709
10710 2016-06-24 Jakub Jelinek <jakub@redhat.com>
10711
10712 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
10713 PRIu64 instead of lu.
10714
10715 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
10716
10717 PR debug/71642
10718 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
10719 copy the type name.
10720
10721 2016-06-24 Jakub Jelinek <jakub@redhat.com>
10722
10723 PR tree-optimization/71647
10724 * omp-low.c (lower_rec_input_clauses): Convert
10725 omp_clause_aligned_alignment (c) to size_type_node for the
10726 last argument of __builtin_assume_aligned.
10727
10728 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
10729
10730 * configure.ac (calling ___tls_get_addr via GOT): New
10731 assembler/linker check.
10732 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
10733 assembler and linker supports calling ___tls_get_addr via GOT.
10734 Otherise, defined to 0.
10735 * config.in: Regenerated.
10736 * configure: Likewise.
10737 * config/i386/constraints.md (Yb): New constraint.
10738 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
10739 (REG_CLASS_NAMES): Likewise.
10740 (REG_CLASS_CONTENTS): Likewise.
10741 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
10742 the b constraint with the Yb constraint. Call ___tls_get_addr
10743 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
10744 is 1.
10745 (*tls_local_dynamic_base_32_gnu): Likewise.
10746 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
10747 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
10748 (*tls_local_dynamic_base_64_<mode>): Likewise.
10749
10750 2016-06-24 Martin Liska <mliska@suse.cz>
10751
10752 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
10753 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
10754 few functions.
10755 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
10756 argument to true if the expected number of iterations is
10757 loop-based.
10758
10759 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
10760
10761 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
10762 assemble for 32bit target.
10763 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
10764 and $ld_ix86_gld_32_opt to link for 32bit target.
10765 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
10766 * configure: Regenerate.
10767
10768 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10769
10770 * config/arm/arm.c (int_log2): Delete definition and prototype.
10771 (shift_op): Use exact_log2 instead of int_log2.
10772 (vfp3_const_double_for_fract_bits): Likewise.
10773
10774 2016-06-24 Jakub Jelinek <jakub@redhat.com>
10775
10776 * internal-fn.c (expand_arith_set_overflow): New function.
10777 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
10778 Use it.
10779 (expand_arith_overflow_result_store): Likewise. Handle precision
10780 smaller than mode precision.
10781 * tree-vrp.c (extract_range_basic): For imag part, handle
10782 properly signed 1-bit precision result.
10783 * doc/extend.texi (__builtin_add_overflow): Document that last
10784 argument can't be pointer to enumerated or boolean type.
10785 (__builtin_add_overflow_p): Document that last argument can't
10786 have enumerated or boolean type.
10787
10788 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
10789 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10790
10791 * config/rs6000/predicates.md (splat_input_operand): Rework.
10792 Don't allow constants, since the insns that use this predicate
10793 don't support constants. Constants are handled by other insns
10794 that are created via combine. During and after register
10795 allocation, only allow indexed or indirect addresses, and not
10796 general addresses. Only allow modes supported by the hardware.
10797 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
10798 comment. Move check for using VSPLTIS<x> to a common location,
10799 instead of doing it in two different places.
10800
10801 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
10802
10803 * config/i386/driver-i386.c (host_detect_local_cpu): Set
10804 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
10805 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
10806 signature_CENTAUR_ebx.
10807
10808 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
10809
10810 PR target/66232
10811 PR target/67400
10812 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
10813 (as_ix86_gas_32_opt): This.
10814 (ld_ix86_tls_ldm_opt): Renamed to ...
10815 (ld_ix86_gld_32_opt): This.
10816 (R_386_TLS_LDM reloc): Updated.
10817 (R_386_GOT32X reloc): New assembler/linker check.
10818 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
10819 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
10820 defined to 0.
10821 * config.in: Regenerated.
10822 * configure: Likewise.
10823 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
10824 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
10825 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
10826 if ix86_force_load_from_GOT_p returns true.
10827 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
10828 ix86_force_load_from_GOT_p returns true.
10829 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
10830 the external function address via the GOT slot.
10831 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
10832 HAVE_AS_IX86_GOT32X before returning false.
10833 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
10834 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
10835
10836 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
10837
10838 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
10839
10840 2016-06-23 Andi Kleen <ak@linux.intel.com>
10841
10842 * Makefile.in: Regenerate.
10843 * doc/install.texi: Document autoprofiledbootstrap.
10844
10845 2016-06-23 Andi Kleen <ak@linux.intel.com>
10846
10847 * config/i386/gcc-auto-profile: New file.
10848
10849 2016-06-23 Martin Liska <mliska@suse.cz>
10850
10851 PR middle-end/71619
10852 * predict.c (predict_loops): Revert the hunk that was removed
10853 in r237103.
10854
10855 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
10856
10857 * config.gcc: Add support for arm*-*-phoenix* targets.
10858 * config/arm/t-phoenix: New.
10859 * config/phoenix.h: New.
10860
10861 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
10862 H.J. Lu <hongjiu.lu@intel.com>
10863
10864 PR target/67400
10865 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
10866 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
10867 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
10868 ix86_force_load_from_GOT_p returns true.
10869 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
10870 ix86_force_load_from_GOT_p returns true.
10871 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
10872 ix86_force_load_from_GOT_p returns true.
10873 (ix86_expand_move): Load the external function address via the
10874 GOT slot if ix86_force_load_from_GOT_p returns true.
10875 * config/i386/predicates.md (x86_64_immediate_operand): Return
10876 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
10877 (x86_64_zext_immediate_operand): Ditto.
10878
10879 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
10880
10881 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
10882
10883 2016-06-22 David Malcolm <dmalcolm@redhat.com>
10884
10885 PR c/70339
10886 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
10887 * diagnostic.c (pedwarn_at_rich_loc): New function.
10888 * spellcheck.h (best_match::best_match): Add a
10889 "best_distance_so_far" optional parameter.
10890 (best_match::set_best_so_far): New method.
10891 (best_match::get_best_distance): New accessor.
10892 (best_match::get_best_candidate_length): New accessor.
10893
10894 2016-06-22 Nick Clifton <nickc@redhat.com>
10895
10896 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
10897 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
10898 modes are accepted as well.
10899 (ucompare_loc_descriptor): Likewise.
10900 (minmax_loc_descriptor): Likewise.
10901 (clz_loc_descriptor): Likewise.
10902 (popcount_loc_descriptor): Likewise.
10903 (bswap_loc_descriptor): Likewise.
10904 (rotate_loc_descriptor): Likewise.
10905 (mem_loc_descriptor): Likewise.
10906 (loc_descriptor): Likewise.
10907
10908 2016-06-22 David Malcolm <dmalcolm@redhat.com>
10909
10910 * common.opt (fdiagnostics-parseable-fixits): New option.
10911 * diagnostic.c: Include "selftest.h".
10912 (print_escaped_string): New function.
10913 (print_parseable_fixits): New function.
10914 (diagnostic_report_diagnostic): Call print_parseable_fixits.
10915 (selftest::assert_print_escaped_string): New function.
10916 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
10917 (selftest::test_print_escaped_string): New function.
10918 (selftest::test_print_parseable_fixits_none): New function.
10919 (selftest::test_print_parseable_fixits_insert): New function.
10920 (selftest::test_print_parseable_fixits_remove): New function.
10921 (selftest::test_print_parseable_fixits_replace): New function.
10922 (selftest::diagnostic_c_tests): New function.
10923 * diagnostic.h (struct diagnostic_context): Add field
10924 "parseable_fixits_p".
10925 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
10926 -fdiagnostics-parseable-fixits.
10927 (-fdiagnostics-parseable-fixits): New option.
10928 * opts.c (common_handle_option): Handle
10929 -fdiagnostics-parseable-fixits.
10930 * selftest-run-tests.c (selftest::run_tests): Call
10931 selftest::diagnostic_c_tests.
10932 * selftest.h (selftest::diagnostic_c_tests): New prototype.
10933
10934 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
10935
10936 PR tree-optimization/71488
10937 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
10938 comparison of boolean vectors.
10939 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
10940 of boolean vectors using bitwise operations.
10941
10942 2016-06-22 Andreas Schwab <schwab@suse.de>
10943
10944 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
10945 Remove declaration.
10946
10947 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
10948
10949 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
10950
10951 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
10952
10953 * config/i386/i386.c (print_reg): Emit an error message on attempt to
10954 print FLAGS_REG.
10955
10956 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10957
10958 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
10959 * config/arm/arm-cores.def (cortex-a73): New entry.
10960 (cortex-a73.cortex-a35): Likewise.
10961 (cortex-a73.cortex-a53): Likewise.
10962 * config/arm/arm-tables.opt: Regenerate.
10963 * config/arm/arm-tune.md: Likewise.
10964 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
10965 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
10966 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
10967 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
10968 * doc/invoke.texi (ARM Options): Document cortex-a73,
10969 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
10970
10971 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10972
10973 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
10974 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
10975 (cortex-a73.cortex-a35): Likewise.
10976 (cortex-a73.cortex-a53): Likewise.
10977 * config/aarch64/aarch64-tune.md: Regenerate.
10978 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
10979 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
10980 -mcpu and -mtune.
10981
10982 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10983
10984 * configure.ac (gcc_cv_as_compress_debug): Remove
10985 --compress-debug-sections as extra as switch.
10986 Handle gas --compress-debug-sections=type.
10987 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
10988 Handle gld --compress-debug-sections=type.
10989 * configure: Regenerate.
10990
10991 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
10992
10993 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
10994
10995 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
10996
10997 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
10998 (do_rewrite): likewise.
10999
11000 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11001
11002 * common/config/mep/mep-common.c: Remove.
11003 * config.gcc: Remove mep-* support.
11004 * config/mep/constraints.md: Remove.
11005 * config/mep/default.h: Remove.
11006 * config/mep/intrinsics.h: Remove.
11007 * config/mep/intrinsics.md: Remove.
11008 * config/mep/ivc2-template.h: Remove.
11009 * config/mep/mep-c5.cpu: Remove.
11010 * config/mep/mep-core.cpu: Remove.
11011 * config/mep/mep-default.cpu: Remove.
11012 * config/mep/mep-ext-cop.cpu: Remove.
11013 * config/mep/mep-intrin.h: Remove.
11014 * config/mep/mep-ivc2.cpu: Remove.
11015 * config/mep/mep-pragma.c: Remove.
11016 * config/mep/mep-protos.h: Remove.
11017 * config/mep/mep.c: Remove.
11018 * config/mep/mep.cpu: Remove.
11019 * config/mep/mep.h: Remove.
11020 * config/mep/mep.md: Remove.
11021 * config/mep/mep.opt: Remove.
11022 * config/mep/predicates.md: Remove.
11023 * config/mep/t-mep: Remove.
11024 * doc/install.texi: Remove mep-* documentation.
11025 * doc/md.texi: Likewise.
11026
11027 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11028
11029 * config.gcc: Remove support for avr-rtems.
11030 * config/avr/gen-avr-mmcu-specs.c: Likewise.
11031 * config/avr/rtems.h: Remove.
11032 * config/avr/t-rtems: Remove.
11033
11034 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11035
11036 * config.gcc: Remove m32r-rtems support.
11037 * config/m32r/rtems.h: Remove.
11038
11039 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11040
11041 * config.gcc: Remove h8300-rtems support.
11042 * config/h8300/rtems.h: Remove.
11043 * config/h8300/t-rtems: Remove.
11044
11045 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11046
11047 * config.gcc: Remove support for knetbsd.
11048 * configure.ac: Likewise.
11049 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
11050 * config/knetbsd-gnu.h: Remove.
11051 * configure: Regenerate.
11052
11053 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11054
11055 * config.gcc: Remove support for openbsd 2 and 3.
11056 * config/openbsd-oldgas.h: Remove.
11057
11058 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11059
11060 * config.gcc: Remove interix support.
11061 * config/i386/i386-interix.h: Remove.
11062 * config/i386/interix.opt: Remove.
11063 * config/i386/t-interix: Remove.
11064 * configure: Regenerate.
11065 * configure.ac: Remove interix support.
11066 * doc/install.texi: Remove interix documentation.
11067
11068 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
11069
11070 * config/rs6000/rs6000.h: Add conditional preprocessing directives
11071 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
11072 not defined.
11073
11074 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
11075
11076 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
11077 they are both PLACEHOLDER_EXPRs.
11078
11079 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
11080
11081 * stor-layout.c (layout_type): Move setting complex MODE to
11082 layout_type, instead of setting it ahead of time by the caller.
11083 * tree.c (build_complex_type): Likewise.
11084
11085 2016-06-21 Martin Liska <mliska@suse.cz>
11086
11087 * predict.c (force_edge_cold): Replace imposisble with
11088 impossible.
11089
11090 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
11091
11092 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
11093 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
11094
11095 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
11096
11097 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
11098
11099 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
11100 Ilya Enkovich <ilya.enkovich@intel.com>
11101
11102 PR target/71549
11103 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
11104 New member function to convert V1TImode register to SUBREG
11105 TImode in debug insn.
11106 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
11107 after changing register mode to V1TImode.
11108
11109 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
11110
11111 * config/aarch64/aarch64-cores.def (vulcan): New core.
11112 * config/aarch64/aarch64-tune.md: Regenerate.
11113 * doc/invoke.texi: Document vulcan as an available option.
11114
11115 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
11116
11117 * cse.c (canon_asm_operands): New function extracted from...
11118 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
11119 either standalone or member of a PARALLEL.
11120
11121 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
11122
11123 PR target/30417
11124 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
11125 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
11126 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
11127
11128 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
11129
11130 PR target/71103
11131 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
11132 constant addresses if can_create_pseudo_p.
11133
11134 2016-06-21 Jakub Jelinek <jakub@redhat.com>
11135
11136 PR tree-optimization/71588
11137 * tree-ssa-strlen.c (valid_builtin_call): New function.
11138 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
11139 it.
11140
11141 2016-06-20 Jakub Jelinek <jakub@redhat.com>
11142
11143 PR middle-end/71581
11144 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
11145 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
11146 for conversion of scalar user var to complex type and use the
11147 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
11148 punt.
11149
11150 PR rtl-optimization/71591
11151 * toplev.c (toplev::run_self_tests): If no_backend, complain and
11152 don't run any tests.
11153
11154 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
11155
11156 PR target/71571
11157 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
11158 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
11159 space for PIC with non-v32 and the common non-PIC "jump".
11160
11161 2016-06-20 Jakub Jelinek <jakub@redhat.com>
11162
11163 PR target/71559
11164 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
11165 returned values and add UN*/LTGT/*ORDERED cases with values matching
11166 D operand modifier on vcmp for AVX.
11167
11168 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
11169
11170 * config/aarch64/aarch64.opt
11171 (mpc-relative-literal-loads): Rename internal option name.
11172 * config/aarch64/aarch64.c
11173 (aarch64_nopcrelative_literal_loads): Rename to
11174 aarch64_pcrelative_literal_loads.
11175 (aarch64_expand_mov_immediate): Likewise.
11176 (aarch64_secondary_reload): Likewise.
11177 (aarch64_can_use_per_function_literal_pools_p): Likewise.
11178 (aarch64_override_options_after_change_1): Rename and simplify logic.
11179 (aarch64_classify_symbol): Merge large model checks into switch,
11180 remove pc-relative load check.
11181
11182 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
11183
11184 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
11185 costs relative to the cost of a register move.
11186
11187 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
11188
11189 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
11190 (vcvt_n_f64_u64): Likewise.
11191 (vcvt_n_s64_f64): Likewise.
11192 (vcvt_n_u64_f64): Likewise.
11193 (vcvt_f64_s64): Likewise.
11194 (vrecpe_f64): Likewise.
11195 (vcvt_f64_u64): Likewise.
11196 (vrecps_f64): Likewise.
11197
11198 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
11199
11200 * config/aarch64/aarch64.md
11201 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
11202 iterators.
11203 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
11204 attributes.
11205 * config/aarch64/aarch64-builtins.c
11206 (aarch64_types_binop_uss_qualifiers): Delete.
11207 (TYPES_BINOP_USS): Likewise.
11208 (aarch64_types_binop_sus_qualifiers): Likewise.
11209 (TYPES_BINOP_SUS): Likewise.
11210 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
11211 (TYPES_FCVTIMM_SUS): Likewise.
11212 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
11213 rather than BINOP.
11214 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
11215 (fcvtzs): Use SHIFTIMM rather than BINOP.
11216 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
11217
11218 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
11219
11220 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
11221 costs relative to the cost of a register move.
11222
11223 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
11224
11225 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
11226 Allow scalar/single vector modes to be tieable.
11227
11228 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
11229
11230 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
11231
11232 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11233
11234 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
11235 "alignement".
11236 * tree.h (TYPE_ALIGN): Likewise.
11237
11238 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
11239
11240 PR target/71103
11241 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
11242
11243 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
11244
11245 * config/avr/avr.c (avr_print_operand): Fix "format not a string
11246 literal" build warnings.
11247 (avr_print_operand_address): Dito.
11248
11249 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
11250
11251 PR target/71375
11252 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
11253 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
11254
11255 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
11256
11257 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
11258
11259 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
11260
11261 PR bootstrap/71435
11262 * reload1.c (reload): Pass 0 to finish_spills when called because
11263 update_eliminables_and_spill returns true and remove did_spill.
11264 (finish_spills): Adjust comment and document GLOBAL parameter.
11265
11266 2016-06-17 DJ Delorie <dj@redhat.com>
11267
11268 PR target/71338
11269 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
11270 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
11271 (umulqihi3_virt): Likewise.
11272 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
11273 (umulqihi3_real): Likewise.
11274
11275 2016-06-17 Martin Liska <mliska@suse.cz>
11276
11277 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
11278
11279 2016-06-17 Martin Liska <mliska@suse.cz>
11280
11281 * predict.def: PRED_LOOP_EXIT from 92 to 85.
11282
11283 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
11284
11285 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
11286 __FAST_MATH__.
11287 (vaddq_f32): Likewise.
11288 (vmul_f32): Likewise.
11289 (vmulq_f32): Likewise.
11290 (vsub_f32): Likewise.
11291 (vsubq_f32): Likewise.
11292
11293 2016-06-17 Bin Cheng <bin.cheng@arm.com>
11294
11295 PR tree-optimization/71347
11296 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
11297 cost for all uses in group.
11298
11299 2016-06-17 Bin Cheng <bin.cheng@arm.com>
11300
11301 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
11302 insert gimple seq if it's not empty.
11303
11304 2016-06-17 Bin Cheng <bin.cheng@arm.com>
11305
11306 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
11307 member OFFSET.
11308 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
11309 rather than OFFSET.
11310 (comp_dr_with_seg_len_pair): Ditto.
11311 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
11312 struct dr_with_seg_len_pair against DR_OFFSET.
11313 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
11314 DR_OFFSET directly.
11315
11316 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
11317
11318 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
11319
11320 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
11321
11322 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
11323 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
11324 (pa_output_millicode_call): Likewise.
11325 (pa_output_call): Likewise.
11326 (pa_output_indirect_call): Likewise.
11327 (pa_asm_output_mi_thunk): Likewise.
11328
11329 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11330
11331 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
11332
11333 2016-06-16 Martin Liska <mliska@suse.cz>
11334
11335 * predict.c (combine_predictions_for_insn): When we find a first
11336 match predictor, we should consider just predictors with
11337 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
11338 DS theory predictor.
11339 (combine_predictions_for_bb): Likewise.
11340
11341 2016-06-16 Jakub Jelinek <jakub@redhat.com>
11342
11343 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
11344 with base of reference to struct.
11345
11346 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
11347
11348 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
11349
11350 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
11351
11352 PR target/71151
11353 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
11354 progmem_swtable_section.
11355 (progmem_swtable_section): Remove.
11356 (avr_asm_function_rodata_section): Remove.
11357 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
11358 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
11359
11360 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
11361
11362 * config/i386/driver-i386.c (host_detect_local_cpu): Set
11363 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
11364 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
11365 signature_CENTAUR_ebx.
11366 * config/i386/i386.c (ix86_option_override_internal): Add
11367 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
11368 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
11369 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
11370
11371 2016-06-16 Martin Liska <mliska@suse.cz>
11372
11373 * predict.def: Add fortran loop preheader predictor.
11374 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
11375 fold IFN_BUILTIN_EXPECT with a known constant argument.
11376
11377 2016-06-16 Martin Liska <mliska@suse.cz>
11378
11379 * predict.def: Add 'Fortran' to display text of all
11380 PRED_FORTRAN_* predictors.
11381
11382 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
11383
11384 PR target/71242
11385 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
11386 [IA64_BUILTIN_NANSQ]: Ditto.
11387 (ia64_fold_builtin): New function.
11388 (TARGET_FOLD_BUILTIN): New define.
11389 (ia64_init_builtins) Declare const_string_type node.
11390 Add __builtin_nanq and __builtin_nansq builtin functions.
11391 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
11392
11393 2016-06-16 Nick Clifton <nickc@redhat.com>
11394
11395 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
11396 MSP430_HWMULT_ prefix to enum values.
11397 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
11398 * config/msp430/msp430.c: Update use of enum values.
11399 * config/msp430/msp430.md: Likewise.
11400 * config/msp430/msp430.opt: Likewise.
11401
11402 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
11403
11404 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
11405 of comparsions in the last iteration.
11406
11407 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
11408 Joern Rennecke <joern.rennecke@embecosm.com>
11409
11410 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
11411 addresses.
11412 (arc_needs_pcl_p): Add GOTOFFPC.
11413 (arc_legitimate_pic_addr_p): Likewise.
11414 (arc_output_pic_addr_const): Likewise.
11415 (arc_legitimize_pic_address): Generate a pc-relative address using
11416 GOTOFFPC.
11417 (arc_output_libcall): Use @pcl syntax.
11418 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
11419 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
11420 (*movsi_insn): Use @pcl syntax.
11421 (doloop_begin_i): Likewise.
11422
11423 2016-06-16 Martin Liska <mliska@suse.cz>
11424
11425 * predict.def: Define a new predictor.
11426
11427 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
11428
11429 * config/arc/arc.opt (mtp-regno): Update text.
11430
11431 2016-06-16 Renlin Li <renlin.li@arm.com>
11432
11433 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
11434
11435 2016-06-16 Jakub Jelinek <jakub@redhat.com>
11436
11437 PR target/71554
11438 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
11439 (setcc + and peephole2): Likewise.
11440
11441 PR rtl-optimization/71532
11442 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
11443 memory slots.
11444
11445 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
11446
11447 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
11448 DImode constants with XXSPLTIB in vector registers.
11449 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
11450 vsx_extract_<mode>_internal{1,2} into a single insn that handles
11451 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
11452 extraction of the element at the top of the register as a scalar
11453 value.
11454 (vsx_extract_<mode>_internal1): Likewise.
11455 (vsx_extract_<mode>_internal2): Likewise.
11456 * config/rs6000/constraints.md (wi constraint): Remove a comment
11457 about DImode not being allowed in Altivec registers.
11458 (wB constraint): New constraint for constants that can be
11459 generated in Altivec registers with VSPLTISW/VUPKHSW.
11460 * config/rs6000/predicates.md (xxspltib_constant_split): Update
11461 comments.
11462 (xxspltib_constant_nosplit): Likewise.
11463 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
11464 support for -mupper-regs-di to enable DImode to go into Altivec
11465 registers.
11466 (POWERPC_MASKS): Likewise.
11467 (power7 cpu): Likewise.
11468 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
11469 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
11470 for DImode being allowed in Altivec registers. Update wi/wj
11471 constraints. Set scalar_in_vmx_p flag.
11472 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
11473 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
11474 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
11475 (rs6000_opt_masks): Add -mupper-regs-di.
11476 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
11477 direct move to use wi and not wj.
11478 (lfiwzx): Likewise.
11479 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
11480 alternative.
11481 (floatunssi<mode>2_lfiwzx_mem): Likewise.
11482 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
11483 any VSX register, instead of just Altivec registers, to allow
11484 either operand to be an Altivec register or both.
11485 (fixuns_trunc<mode>di2_fctiduz): Likewise.
11486 (movdi_internal32): Add support for -mupper-regs-di. Add support
11487 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
11488 the alternatives and attributes to be lined up to be easier to
11489 read.
11490 (movdi_internal64): Likewise.
11491 (64-bit DImode splitters): Change predicates to only split loading
11492 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
11493 load constants in ISA 3.0 or ISA 2.07 respectively.
11494 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
11495 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
11496 mention -mcpu=power9 sets these options.
11497 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
11498 wB constraint.
11499
11500 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
11501
11502 PR target/67353
11503 * config/avr/avr.c (avr_set_current_function): Warn misspelled
11504 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
11505 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
11506 by default to warn misspelled interrupt/ signal handler.
11507 * doc/invoke.texi (AVR Options): Document it. Update description
11508 for -nodevicelib option.
11509
11510 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11511
11512 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
11513 up parentheses. Use GET_MODE_UNIT_BITSIZE.
11514 (aarch64_<sur>shll2_n<mode>): Likewise.
11515
11516 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
11517
11518 PR middle-end/71529
11519 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
11520 DECL_CONTEXT for copied arguments.
11521
11522 2016-06-15 Alan Hayward <alan.hayward@arm.com>
11523
11524 PR tree-optimization/71483
11525 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
11526 for slp
11527
11528 2016-06-15 Martin Liska <mliska@suse.cz>
11529
11530 * predict.c (tree_predict_by_opcode): Call predict_edge_def
11531 instead of predict_edge w/o a probability.
11532
11533 2016-06-15 Alan Hayward <alan.hayward@arm.com>
11534
11535 PR tree-optimization/71439
11536 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
11537 live PHIs.
11538
11539 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11540
11541 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
11542 register subregs in SET_SRC.
11543
11544 2016-06-15 Richard Biener <rguenther@suse.de>
11545
11546 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
11547 store restrictions.
11548
11549 2016-06-15 Richard Biener <rguenther@suse.de>
11550
11551 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
11552 not consider dependences between accesses that belong to the
11553 same group.
11554 (vect_analyze_data_ref_dependences): Do not analyze read-read
11555 or self-dependences.
11556
11557 2016-06-14 David Malcolm <dmalcolm@redhat.com>
11558
11559 * spellcheck-tree.c: Include spellcheck-tree.h rather than
11560 spellcheck.h.
11561 (find_closest_identifier): Reimplement in terms of
11562 best_match<tree,tree>.
11563 * spellcheck-tree.h: New file.
11564 * spellcheck.c (struct edit_distance_traits<const char *>): New
11565 struct.
11566 (find_closest_string): Reimplement in terms of
11567 best_match<const char *, const char *>.
11568 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
11569 overload to spellcheck-tree.h.
11570 (find_closest_identifier): Likewise.
11571 (struct edit_distance_traits<T>): New template.
11572 (class best_match): New class.
11573
11574 2016-06-14 David Malcolm <dmalcolm@redhat.com>
11575
11576 * selftest-run-tests.c (selftest::run_tests): Call
11577 selftest::spellcheck_tree_c_tests.
11578 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
11579 * spellcheck-tree.c: Include selftest.h and stringpool.h.
11580 (selftest::test_find_closest_identifier): New function.
11581 (selftest::spellcheck_tree_c_tests): New function.
11582 * spellcheck.c (selftest::test_find_closest_string): Verify that
11583 the order of the vec does not affect the results for this case.
11584 (selftest::test_data): New array.
11585 (selftest::test_metric_conditions): New function.
11586 (selftest::spellcheck_c_tests): Add a test of case-comparison.
11587 Call selftest::test_metric_conditions.
11588
11589 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11590
11591 * config/rs6000/rs6000-builtin.def (commentary): Typo.
11592 (BU_P9_MISC_1): Likewise.
11593 (BU_P9_64BIT_MISC_0): Likewise.
11594 (BU_P9_MISC_0): Likewise.
11595
11596 2016-06-14 David Malcolm <dmalcolm@redhat.com>
11597
11598 * gcc-rich-location.c
11599 (gcc_rich_location::add_fixit_misspelled_id): New method.
11600 * gcc-rich-location.h
11601 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
11602
11603 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
11604
11605 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
11606 FreeBSD 11 and above.
11607
11608 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
11609
11610 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
11611
11612 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11613
11614 * expmed.h: Close parenthesis in "at your option" in copyright
11615 boilerplate.
11616 * lower-subreg.h: Likewise.
11617
11618 2016-06-14 Richard Biener <rguenther@suse.de>
11619
11620 PR middle-end/71526
11621 * genmatch.c (expr::gen_transform): Use in_type for comparisons
11622 if available.
11623
11624 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11625
11626 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
11627 New function.
11628 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
11629 mask+shift version.
11630 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
11631 New prototype.
11632 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
11633 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
11634
11635 2016-06-14 Richard Biener <rguenther@suse.de>
11636
11637 PR tree-optimization/71522
11638 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
11639 copying into float copying.
11640
11641 2016-06-14 Jakub Jelinek <jakub@redhat.com>
11642
11643 PR tree-optimization/71520
11644 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
11645 (replace_block_by): Move user labels from bb1 to bb2.
11646
11647 2016-06-14 Richard Biener <rguenther@suse.de>
11648
11649 PR middle-end/71310
11650 PR bootstrap/71510
11651 * expr.h (get_bit_range): Declare.
11652 * expr.c (get_bit_range): Export.
11653 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
11654 word_mode again to constrain the bitfield access.
11655
11656 2016-06-14 Richard Biener <rguenther@suse.de>
11657
11658 PR tree-optimization/71521
11659 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
11660 division int_const_binop against zero divisor.
11661
11662 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
11663
11664 * config/i386/i386.md (signbittf2): New expander.
11665 * config/i386/sse.md (ptesttf2): New insn pattern.
11666
11667 2016-06-13 David Malcolm <dmalcolm@redhat.com>
11668
11669 PR bootstrap/71481
11670 * input.c (selftest::test_reading_source_line): Avoid reading from
11671 __FILE__ by creating a tempfile with known content and reading
11672 from that instead.
11673
11674 2016-06-13 David Malcolm <dmalcolm@redhat.com>
11675
11676 * pretty-print.c (assert_pp_format_colored): Skip the test if
11677 GCC_COLORS is set.
11678 (test_pp_format): Remove comment about GCC_COLORS.
11679
11680 2016-06-13 David Malcolm <dmalcolm@redhat.com>
11681
11682 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
11683 * pretty-print.c (assert_pp_format_va): Add location param and use
11684 it with ASSERT_STREQ_AT.
11685 (assert_pp_format): Add location param and pass it to
11686 assert_pp_format_va.
11687 (assert_pp_format_colored): Likewise.
11688 (ASSERT_PP_FORMAT_1): New.
11689 (ASSERT_PP_FORMAT_2): New.
11690 (ASSERT_PP_FORMAT_3): New.
11691 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
11692 explicitly, or implicitly via the above macros.
11693 * selftest.c (selftest::pass): Use a selftest::location rather
11694 than file and line.
11695 (selftest::fail): Likewise. Print the function name.
11696 (selftest::fail_formatted): Likewise.
11697 (selftest::assert_streq): Use a selftest::location rather than
11698 file and line.
11699 * selftest.h (selftest::location): New struct.
11700 (SELFTEST_LOCATION): New macro.
11701 (selftest::pass): Accept a const location & rather than file
11702 and line.
11703 (selftest::fail): Likewise.
11704 (selftest::fail_formatted): Likewise.
11705 (selftest::assert_streq): Likewise.
11706 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
11707 (ASSERT_FALSE): Likewise.
11708 (ASSERT_EQ): Likewise.
11709 (ASSERT_NE): Likewise.
11710 (ASSERT_STREQ): Likewise.
11711 (ASSERT_PRED1): Likewise.
11712 (ASSERT_STREQ_AT): New macro.
11713
11714 2016-06-13 David Malcolm <dmalcolm@redhat.com>
11715
11716 * selftest.c (selftest::fail_formatted): New function.
11717 (selftest::assert_streq): New function.
11718 * selftest.h (selftests::fail_formatted): New decl.
11719 (selftest::assert_streq): New decl.
11720 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
11721
11722 2016-06-13 Jeff Law <law@redhat.com>
11723
11724 PR tree-optimization/71403
11725 * tree-ssa-threadbackward.c
11726 (convert_and_register_jump_thread_path): No longer accept reference
11727 to path. Do not pop items off the path anymore.
11728 (fsm_find_control_statement_thread_paths): Do not allow threading
11729 to a deeper loop nest. Pop the last item off the path here rather
11730 than in convert_and_register_jump_thread_path.
11731
11732 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
11733 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
11734
11735 [AArch64] Emit division using the Newton series
11736
11737 * config/aarch64/aarch64-protos.h
11738 (cpu_approx_modes): Add new member "division".
11739 (aarch64_emit_approx_div): Declare new function.
11740 * config/aarch64/aarch64.c
11741 (generic_approx_modes): New member "division".
11742 (exynosm1_approx_modes): Likewise.
11743 (xgene1_approx_modes): Likewise.
11744 (aarch64_emit_approx_div): Define new function.
11745 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
11746 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
11747 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
11748 * doc/invoke.texi (-mlow-precision-div): Describe new option.
11749
11750 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
11751 Wilco Dijkstra <wilco.dijkstra@arm.com>
11752
11753 [AArch64] Emit square root using the Newton series
11754
11755 * config/aarch64/aarch64-protos.h
11756 (aarch64_emit_approx_rsqrt): Replace with new function
11757 "aarch64_emit_approx_sqrt".
11758 (cpu_approx_modes): New member "sqrt".
11759 * config/aarch64/aarch64.c
11760 (generic_approx_modes): New member "sqrt".
11761 (exynosm1_approx_modes): Likewise.
11762 (xgene1_approx_modes): Likewise.
11763 (aarch64_emit_approx_rsqrt): Replace with new function
11764 "aarch64_emit_approx_sqrt".
11765 (aarch64_override_options_after_change_1): Handle new option.
11766 * config/aarch64/aarch64-simd.md
11767 (rsqrt<mode>2): Use new function instead.
11768 (sqrt<mode>2): New expansion and insn definitions.
11769 * config/aarch64/aarch64.md: Likewise.
11770 * config/aarch64/aarch64.opt
11771 (mlow-precision-sqrt): Add new option description.
11772 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
11773
11774 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
11775
11776 [AArch64] Add more choices for the reciprocal square root approximation
11777
11778 Allow a target to prefer such operation depending on the operation mode.
11779
11780 * config/aarch64/aarch64-protos.h
11781 (AARCH64_APPROX_MODE): New macro.
11782 (AARCH64_APPROX_{NONE,ALL}): Likewise.
11783 (cpu_approx_modes): New structure.
11784 (tune_params): New member "approx_modes".
11785 * config/aarch64/aarch64-tuning-flags.def
11786 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
11787 * config/aarch64/aarch64.c
11788 (generic_approx_modes): New core "cpu_approx_modes" structure.
11789 (exynosm1_approx_modes): Likewise.
11790 (xgene1_approx_modes): Likewise.
11791 (generic_tunings): New member "approx_modes".
11792 (cortexa35_tunings): Likewise.
11793 (cortexa53_tunings): Likewise.
11794 (cortexa57_tunings): Likewise.
11795 (cortexa72_tunings): Likewise.
11796 (exynosm1_tunings): Likewise.
11797 (thunderx_tunings): Likewise.
11798 (xgene1_tunings): Likewise.
11799 (use_rsqrt_p): New argument for the mode and use new member from
11800 "tune_params".
11801 (aarch64_builtin_reciprocal): Devise mode from builtin.
11802 (aarch64_optab_supported_p): New argument for the mode.
11803 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
11804
11805 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
11806
11807 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
11808 RS6000_BTM_MODULO flag into the set of flags that are considered
11809 to be part of the common configuration.
11810
11811 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
11812
11813 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
11814 difference unsigned.
11815 (vec_absdb): New macro for vector absolute difference unsigned
11816 byte.
11817 (vec_absdh): New macro for vector absolute difference unsigned
11818 half-word.
11819 (vec_absdw): New macro for vector absolute difference unsigned word.
11820 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
11821 (vadu<mode>3): New insn.
11822 (*p9_vadu<mode>3): New insn.
11823 * config/rs6000/rs6000-builtin.def (vadub): New built-in
11824 definition.
11825 (vaduh): New built-in definition.
11826 (vaduw): New built-in definition.
11827 (vadu): New overloaded built-in definition.
11828 (vadub): New overloaded built-in definition.
11829 (vaduh): New overloaded built-in definition.
11830 (vaduw): New overloaded built-in definition.
11831 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11832 overloaded vector absolute difference unsigned functions.
11833 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11834 the ISA 3.0 vector absolute difference unsigned built-in functions.
11835
11836 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
11837
11838 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
11839 update shared_lookup_references only once after changing operands.
11840
11841 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
11842
11843 PR middle-end/71373
11844 * tree-nested.c (convert_nonlocal_omp_clauses)
11845 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
11846
11847 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
11848 * tree.def (CASE_LABEL_EXPR): Likewise.
11849
11850 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
11851
11852 PR bootstrap/71481
11853 * input.c (test_builtins): Fix an assertion.
11854
11855 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
11856
11857 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
11858 (paritysi2): Ditto.
11859 (isinfxf2): Ditto.
11860 (isinf<mode>2): Ditto.
11861
11862 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
11863
11864 * ggc-tests.c (test_finalization): Only test need_finalization_p
11865 for GCC_VERSION >= 4003.
11866
11867 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11868
11869 * config/s390/vecintrin.h: Fix file description in comment.
11870
11871 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11872
11873 * config/s390/s390-builtin-types.def: Change builtin type naming
11874 scheme to match builtin-types.def.
11875
11876 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
11877
11878 * fold-const.c (optimize_minmax_comparison): Remove.
11879 (fold_comparison): Remove call to the above.
11880 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
11881 New transformations.
11882
11883 2016-06-13 Alan Hayward <alan.hayward@arm.com>
11884
11885 PR tree-optimization/71416
11886 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
11887 multiple entries
11888
11889 2016-06-13 Martin Liska <mliska@suse.cz>
11890
11891 * predict.c (enum predictor_reason): Prefix enum with REASON_.
11892 (combine_predictions_for_insn): Likewise.
11893 (prune_predictions_for_bb): Likewise.
11894 (combine_predictions_for_bb): Likewise.
11895
11896 2016-06-13 Richard Biener <rguenther@suse.de>
11897
11898 PR tree-optimization/71505
11899 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
11900 assert match comment.
11901
11902 2016-06-13 Marek Polacek <polacek@redhat.com>
11903
11904 PR middle-end/71476
11905 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
11906 gimplify_switch_expr.
11907 (warn_switch_unreachable_r): New function.
11908
11909 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11910
11911 PR target/71379
11912 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
11913 one.
11914
11915 2016-06-13 Richard Biener <rguenther@suse.de>
11916
11917 PR middle-end/64516
11918 * fold-const.c (fold_unary_loc): Preserve alignment when
11919 folding a VIEW_CONVERT_EXPR into a MEM_REF.
11920
11921 2016-06-13 Martin Liska <mliska@suse.cz>
11922
11923 PR sanitizer/71458
11924 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
11925 w/ -fsanitize=bounds.
11926
11927 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
11928
11929 * config/i386/i386.c (ix86_init_builtins): Calculate
11930 FLOAT128_FTYPE_CONST_STRING function type only once.
11931 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
11932 built-in functions are available for x86-32 and x86-64 targets.
11933
11934 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
11935
11936 PR target/71241
11937 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
11938 New primitive type.
11939 (FLOAT128_FTYPE_CONST_STRING): New function type.
11940 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
11941 [IX86_BUILTIN_NANSQ]: Ditto.
11942 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
11943 (ix86_init_builtin_types): Declare const_string_type_node.
11944 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
11945 builtin functions.
11946 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
11947 * doc/extend.texi (x86 Built-in Functions): Document
11948 __builtin_nanq and __builtin_nansq.
11949
11950 2016-06-11 Jiong Wang <jiong.wang@arm.com>
11951
11952 PR target/71061
11953 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
11954 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
11955 length for pop patterns.
11956 (arm_attr_length_push_multi): Update comments.
11957 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
11958 attribute.
11959 (*pop_multiple_with_writeback_and_return): Likewise.
11960 (*pop_multiple_with_return): Likewise.
11961
11962 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
11963
11964 PR middle-end/71310
11965 * fold-const.c (optimize_bit_field_compare): Don't try to use
11966 word_mode unconditionally for reading the bit field, look at
11967 DECL_BIT_FIELD_REPRESENTATIVE instead.
11968
11969 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
11970
11971 PR middle-end/71478
11972 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
11973 vector integer type.
11974
11975 2016-06-10 Jakub Jelinek <jakub@redhat.com>
11976
11977 PR middle-end/71494
11978 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
11979 without LABEL_DECL, set *handled_ops_p to false instead of true.
11980
11981 2016-06-10 Martin Sebor <msebor@redhat.com>
11982
11983 PR c/71392
11984 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
11985 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
11986 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
11987 them.
11988 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
11989 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
11990 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
11991 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
11992 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
11993 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
11994 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
11995 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
11996
11997 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
11998
11999 * config/arm/arm.h (pool_vector_label,
12000 return_used_this_function): Remove.
12001
12002 2016-06-10 Jeff Law <law@redhat.com>
12003
12004 PR tree-optimization/71335
12005 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
12006 zero length paths here.
12007 (convert_and_register_jump_thread_path): Remove hacks related to
12008 duplicated blocks in the jump thread path.
12009 (fsm_find_control_statement_thread_paths): Avoid putting the same
12010 block on the thread path twice, but ensure the thread path is
12011 unchanged from the caller's point of view.
12012
12013 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
12014
12015 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
12016 * predict.def (PRED_LOOP_BRANCH): Remove.
12017
12018 2016-06-10 David Malcolm <dmalcolm@redhat.com>
12019
12020 * Makefile.in (OBJS): Add ggc-tests.o.
12021 (GTFILES): Add ggc-tests.c.
12022 * ggc-tests.c: New file.
12023 * selftest-run-tests.c (selftest::run_tests): Call
12024 selftest::ggc_tests_c_tests.
12025 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
12026
12027 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
12028
12029 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
12030
12031 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
12032
12033 PR sanitizer/71480
12034 * varasm.c (place_block_symbol): Adjust alignment for asan protected
12035 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
12036
12037 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
12038
12039 * profile.c: Include cfgloop.h.
12040 (branch_prob): Compute estimated number of iterations.
12041 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
12042 recompute estimate number of iterations from profile.
12043
12044 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
12045
12046 PR inline-asm/68843
12047 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
12048 must be grouped on top of stack. Don't force early clobber
12049 on ordinary reg outputs.
12050
12051 2016-06-10 Richard Biener <rguenther@suse.de>
12052
12053 * targhooks.c (default_builtin_vectorization_cost): Adjust
12054 vec_construct cost.
12055
12056 2016-06-10 Richard Biener <rguenther@suse.de>
12057
12058 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
12059 to fold the RHS to a constant if possible.
12060
12061 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
12062
12063 PR middle-end/71373
12064 * tree-nested.c (convert_nonlocal_omp_clauses)
12065 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
12066 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
12067 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
12068
12069 * gimplify.c (gimplify_adjust_omp_clauses): Discard
12070 OMP_CLAUSE_TILE.
12071 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
12072
12073 * omp-low.c (scan_sharing_clauses): Don't expect
12074 OMP_CLAUSE__CACHE_.
12075
12076 2016-06-10 Alan Hayward <alan.hayward@arm.com>
12077
12078 PR tree-optimization/71407
12079 PR tree-optimization/71416
12080 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
12081 BIT_FIELD_REF type.
12082
12083 2016-06-10 Richard Biener <rguenther@suse.de>
12084
12085 PR middle-end/71477
12086 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
12087
12088 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
12089
12090 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
12091
12092 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
12093 Jiong Wang <jiong.wang@arm.com>
12094
12095 PR rtl-optimization/70751
12096 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
12097 spilled into memory.
12098
12099 2016-06-09 Jonathan Yong <10walls@gmail.com>
12100
12101 Revert:
12102 2015-09-21 Jonathan Yong <10walls@gmail.com>
12103
12104 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
12105 sysroot/usr/lib/32api for additional win32 libraries,
12106 fixes failing Cygwin bootstrapping.
12107
12108 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
12109
12110 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
12111 Delete.
12112
12113 2016-06-09 David Malcolm <dmalcolm@redhat.com>
12114
12115 PR bootstrap/71471
12116 * pretty-print.c (pp_indent): Specify that %p is printed in a
12117 host-dependent manner.
12118 (test_pp_format): Remove the test for %p.
12119
12120 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
12121
12122 * config/mips/mips.c (mips_output_jump): Fix formatting.
12123
12124 2016-06-09 Richard Biener <rguenther@suse.de>
12125
12126 PR tree-optimization/71462
12127 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
12128 removed blocks.
12129
12130 2016-06-09 Martin Liska <mliska@suse.cz>
12131
12132 * predict.c (dump_prediction): Add new argument.
12133 (enum predictor_reason): New enum.
12134 (struct predictor_hash): New struct.
12135 (predictor_hash::hash): New function.
12136 (predictor_hash::equal): Likewise.
12137 (not_removed_prediction_p): New function.
12138 (prune_predictions_for_bb): Likewise.
12139 (combine_predictions_for_bb): Prune predictions.
12140
12141 2016-06-09 Martin Liska <mliska@suse.cz>
12142
12143 * predict.c (filter_predictions): New function.
12144 (remove_predictions_associated_with_edge): Use the filter
12145 function.
12146 (equal_edge_p): New function.
12147
12148 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
12149
12150 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
12151 Correct usage of @samp vs @option, add @samp where appropriate.
12152 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
12153 Add armv6s-m and document it, as it is no official ARM name.
12154
12155 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12156
12157 * ifcvt.c (struct noce_if_info): Add transform_name field.
12158 (noce_try_move): Set if_info->transform_name to the function name.
12159 (noce_try_ifelse_collapse): Likewise.
12160 (noce_try_store_flag): Likewise.
12161 (noce_try_inverse_constants): Likewise.
12162 (noce_try_store_flag_constants): Likewise.
12163 (noce_try_addcc): Likewise.
12164 (noce_try_store_flag_mask): Likewise.
12165 (noce_try_cmove): Likewise.
12166 (noce_try_cmove_arith): Likewise.
12167 (noce_try_minmax): Likewise.
12168 (noce_try_abs): Likewise.
12169 (noce_try_sign_mask): Likewise.
12170 (noce_try_bitop): Likewise.
12171 (noce_convert_multiple_sets): Likewise.
12172 (noce_process_if_block): Print if_info->transform_name to
12173 dump_file if transformation succeeded.
12174
12175 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12176
12177 * config/arm/cortex-a57.md (cortex_a57_alu):
12178 Handle csel type.
12179
12180 2016-06-08 Martin Sebor <msebor@redhat.com>
12181 Jakub Jelinek <jakub@redhat.com>
12182
12183 PR c++/70507
12184 PR c/68120
12185 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
12186 BUILT_IN_MUL_OVERFLOW_P): New builtins.
12187 * builtins.c: Include gimple-fold.h.
12188 (fold_builtin_arith_overflow): Handle
12189 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
12190 (fold_builtin_3): Likewise.
12191 * doc/extend.texi (Integer Overflow Builtins): Document
12192 __builtin_{add,sub,mul}_overflow_p.
12193
12194 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
12195
12196 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
12197 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
12198
12199 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
12200
12201 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
12202 Rewrite, looking one level down for records and arrays.
12203
12204 2016-06-08 David Malcolm <dmalcolm@redhat.com>
12205
12206 * pretty-print.c: Include "selftest.h".
12207 (pp_format): Fix comment.
12208 (identifier_to_locale): Likewise.
12209 (selftest::test_basic_printing): New function.
12210 (selftest::assert_pp_format): New function.
12211 (selftest::test_pp_format): New function.
12212 (selftest::pretty_print_c_tests): New function.
12213 * selftest-run-tests.c (selftest::run_tests): Call
12214 selftest::pretty_print_c_tests.
12215 * selftest.h (pretty_print_c_tests): New declaration.
12216
12217 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
12218
12219 * invoke.texi (max-loop-headers-insns): Document.
12220 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
12221 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
12222 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
12223
12224 2016-06-08 Richard Biener <rguenther@suse.de>
12225
12226 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
12227 on strided SLP loads and fall back to scalar loads in case
12228 we can't chunk them.
12229
12230 2016-06-08 Richard Biener <rguenther@suse.de>
12231
12232 PR tree-optimization/71452
12233 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
12234 type used for the SSA rewrite has enough precision to cover
12235 the dynamic type of the location.
12236
12237 2016-06-08 Jakub Jelinek <jakub@redhat.com>
12238 Richard Biener <rguenther@suse.de>
12239
12240 PR c++/71448
12241 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
12242 the same as DECL_P (base0) for indirect_base0. Use equality_code
12243 in one further place.
12244
12245 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
12246
12247 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
12248 to one word if the field is known to overlap other words.
12249 (extract_bit_field_1): Likewise.
12250 (store_split_bit_field): Remove compensating code.
12251 (extract_split_bit_field): Likewise.
12252
12253 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
12254
12255 PR debug/71432
12256 PR ada/71413
12257 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
12258
12259 2016-06-08 Jiong Wang <jiong.wang@arm.com>
12260
12261 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
12262 VDQF.
12263 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
12264 (arch64_addpv4sf): Delete.
12265 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
12266 "gen_aarch64_addpv4sf".
12267 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
12268 builtin.
12269 (vpadds_f32): Likewise.
12270 (vpaddq_f32): Likewise.
12271 (vpaddq_f64): Likewise.
12272
12273 2016-06-08 Jiong Wang <jiong.wang@arm.com>
12274
12275 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
12276 VALLF.
12277 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
12278 to VALLF. Rename to "fabd<mode>3".
12279 "*fabd_scalar<mode>3): Delete.
12280 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
12281 Use builtin.
12282 (vabdd_f64): Likewise.
12283 (vabd_f32): Likewise.
12284 (vabd_f64): Likewise.
12285 (vabdq_f32): Likewise.
12286 (vabdq_f64): Likewise.
12287
12288 2016-06-08 Jiong Wang <jiong.wang@arm.com>
12289
12290 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
12291 VALLF.
12292 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
12293 "aarch64_rsqrts<mode>".
12294 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
12295 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
12296 builtin.
12297 (vrsqrtsd_f64): Likewise.
12298 (vrsqrts_f32): Likewise.
12299 (vrsqrts_f64): Likewise.
12300 (vrsqrtsq_f32): Likewise.
12301 (vrsqrtsq_f64): Likewise.
12302
12303 2016-06-08 Jiong Wang <jiong.wang@arm.com>
12304
12305 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
12306 VALLF.
12307 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
12308 "aarch64_rsqrte<mode>".
12309 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
12310 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
12311 builtin.
12312 (vrsqrted_f64): Likewise.
12313 (vrsqrte_f32): Likewise.
12314 (vrsqrte_f64): Likewise.
12315 (vrsqrteq_f32): Likewise.
12316 (vrsqrteq_f64): Likewise.
12317
12318 2016-06-08 Jiong Wang <jiong.wang@arm.com>
12319
12320 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
12321 (ucvtf): Likewise.
12322 (fcvtzs): Likewise.
12323 (fcvtzu): Likewise.
12324 * config/aarch64/aarch64-simd.md
12325 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
12326 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
12327 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
12328 Use builtin.
12329 (vcvt_n_f32_u32): Likewise.
12330 (vcvt_n_s32_f32): Likewise.
12331 (vcvt_n_u32_f32): Likewise.
12332 (vcvtq_n_f32_s32): Likewise.
12333 (vcvtq_n_f32_u32): Likewise.
12334 (vcvtq_n_f64_s64): Likewise.
12335 (vcvtq_n_f64_u64): Likewise.
12336 (vcvtq_n_s32_f32): Likewise.
12337 (vcvtq_n_s64_f64): Likewise.
12338 (vcvtq_n_u32_f32): Likewise.
12339 (vcvtq_n_u64_f64): Likewise.
12340 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
12341 (VSDQ_SDI): Likewise.
12342 (fcvt_target): Support V4DI, V4SI and V2SI.
12343 (FCVT_TARGET): Likewise.
12344
12345 2016-06-08 Jiong Wang <jiong.wang@arm.com>
12346
12347 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
12348 (TYPES_BINOP_SUS): Likewise.
12349 (aarch64_simd_builtin_data): Update include file name.
12350 (aarch64_builtins): Likewise.
12351 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
12352 for conversion between scalar float-point and fixed-point.
12353 (ucvtf): Likewise.
12354 (fcvtzs): Likewise.
12355 (fcvtzu): Likewise.
12356 * config/aarch64/aarch64.md
12357 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
12358 pattern for conversion between scalar float to fixed-pointer.
12359 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
12360 (UNSPEC_FCVTZS): New UNSPEC enumeration.
12361 (UNSPEC_FCVTZU): Likewise.
12362 (UNSPEC_SCVTF): Likewise.
12363 (UNSPEC_UCVTF): Likewise.
12364 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
12365 Use builtin.
12366 (vcvtd_n_f64_u64): Likewise.
12367 (vcvtd_n_s64_f64): Likewise.
12368 (vcvtd_n_u64_f64): Likewise.
12369 (vcvtd_n_f32_s32): Likewise.
12370 (vcvts_n_f32_u32): Likewise.
12371 (vcvtd_n_s32_f32): Likewise.
12372 (vcvts_n_u32_f32): Likewise.
12373 * config/aarch64/iterators.md (fcvt_target): Support integer to float
12374 mapping.
12375 (FCVT_TARGET): Likewise.
12376 (FCVT_FIXED2F): New iterator.
12377 (FCVT_F2FIXED): Likewise.
12378 (fcvt_fixed_insn): New define_int_attr.
12379
12380 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
12381
12382 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
12383 some statements was removed.
12384
12385 2016-06-08 Alan Hayward <alan.hayward@arm.com>
12386
12387 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
12388 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
12389 (vect_can_advance_ivs_p): likewise.
12390 (vect_update_ivs_after_vectorizer): likewise.
12391 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
12392 (vect_analyze_scalar_cycles_1): likewise.
12393 (vect_analyze_loop_operations): likewise.
12394 (report_vect_op): likewise.
12395 (vect_is_slp_reduction): likewise.
12396 (vect_is_simple_reduction): likewise.
12397 (get_initial_def_for_induction): likewise.
12398 (vect_transform_loop): likewise.
12399 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
12400 (vect_recog_sad_pattern): likewise.
12401 (vect_recog_widen_sum_pattern): likewise.
12402 (vect_recog_widening_pattern): likewise.
12403 (vect_recog_divmod_pattern): likewise.
12404 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
12405 (vect_analyze_slp_instance): likewise.
12406 (vect_transform_slp_perm_load): likewise.
12407 (vect_schedule_slp_instance): likewise.
12408
12409 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
12410
12411 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
12412 (return_prediction): PRED_CONST_RETURN predict return as not taken.
12413 * predict.def (PRED_CONTINUE): Change hitrate 50->67
12414 (PRED_LOOP_BRANCH): Document predictor as broken.
12415 (PRED_LOOP_EXIT): Change hitrate 91->92.
12416 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
12417 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
12418 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
12419 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
12420 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
12421 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
12422 (PRED_CALL): Chane hitrate 71->67.
12423 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
12424 (PRED_GOTO): Document as unused right now.
12425 (PRED_CONST_RETURN): Change hitrate 67->69
12426 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
12427 (PRED_NULL_RETURN): Change hitrate 91->90.
12428 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
12429 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
12430 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
12431
12432 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
12433
12434 * config/rs6000/altivec.h: Add __builtin_vec_mul.
12435 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
12436 special case Altivec builtin.
12437 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
12438 VSX_BUILTIN_VEC_MUL (replaced with special case code).
12439 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
12440 code for ALTIVEC_BUILTIN_VEC_MUL.
12441 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
12442 for __builtin_vec_mul.
12443
12444 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
12445
12446 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
12447 -mno-htm.
12448
12449 2016-06-07 David Malcolm <dmalcolm@redhat.com>
12450
12451 * spellcheck.c (selftest::test_find_closest_string): New function.
12452 (spellcheck_c_tests): Call the above.
12453
12454 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12455
12456 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
12457
12458 2016-06-07 Jakub Jelinek <jakub@redhat.com>
12459
12460 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
12461 Yv=Yv,C alternatives.
12462
12463 2016-06-07 Richard Biener <rguenther@suse.de>
12464
12465 PR c/61564
12466 * common.opt (ffast-math): Make Optimization.
12467
12468 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
12469 Prachi Godbole <prachi.godbole@imgtec.com>
12470
12471 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
12472 `fabs' and `fneg' type attributes.
12473 (p5600_fpu_fabs): Add `fmove' to the comment.
12474
12475 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
12476
12477 * gimple.c: Include builtins.h
12478 (gimple_inexpensive_call_p): New function.
12479 * gimple.h (gimple_inexpensive_call_p): Declare.
12480 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
12481 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
12482 fix formatting.
12483
12484 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
12485
12486 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
12487 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
12488 warning_at_rich_loc, warning_n, pedwarn, permerror,
12489 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
12490 sorry, fatal_error, internal_error, internal_error_no_backtrace):
12491 Use the above.
12492
12493 2016-06-07 Richard Biener <rguenther@suse.de>
12494
12495 PR tree-optimization/71428
12496 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
12497 BIT_FIELD_REF op vs. load.
12498
12499 2016-06-07 Richard Biener <rguenther@suse.de>
12500
12501 PR middle-end/71423
12502 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
12503 for signed ops.
12504
12505 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
12506
12507 * config/pa/pa.md (call): Generate indirect long calls to non-local
12508 functions on TARGET_64BIT.
12509 (call_value): Likewise.
12510
12511 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
12512
12513 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
12514 pattern and subsequent splitters.
12515 (call_val_reg_64bit_post_reload): Likewise.
12516
12517 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
12518
12519 PR middle-end/71408
12520 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
12521 propagate_op_to_single_use.
12522
12523 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
12524
12525 PR middle-end/71281
12526 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
12527
12528 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
12529
12530 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
12531 (enum x86_dirflag_state): New enum.
12532 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
12533 (machine_function): Remove needs_cld.
12534 (ix86_current_function_needs_cld): Remove.
12535 * config/i386/i386.c (ix86_set_func_type): Set
12536 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
12537 (ix86_expand_prologue): Do not emit CLD here.
12538 (ix86_dirflag_mode_needed): New function.
12539 (ix86_dirflag_mode_entry): Ditto.
12540 (ix86_mode_needed): Handle X86_DIRFLAG entity.
12541 (ix86_mode_after): Ditto.
12542 (ix86_mode_entry): Ditto.
12543 (ix86_mode_exit): Ditto.
12544 (ix86_emit_mode_set): Ditto.
12545 * config/i386/i386.md (strmov_singleop): Set
12546 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
12547 Do not set ix86_current_function_needs_cld.
12548 (rep_mov): Ditto.
12549 (strset_singleop): Ditto.
12550 (rep_stos): Ditto.
12551 (cmpstrnqi_nz_1): Ditto.
12552 (cmpstrnqi_1): Ditto.
12553 (strlenqi_1): Ditto.
12554
12555 2016-06-06 Jakub Jelinek <jakub@redhat.com>
12556
12557 PR tree-optimization/71259
12558 * tree-vect-slp.c (vect_get_constant_vectors): For
12559 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
12560 one for constant op, and use COND_EXPR for non-constant.
12561
12562 2016-06-06 David Malcolm <dmalcolm@redhat.com>
12563
12564 * Makefile.in (OBJS): Add function-tests.o,
12565 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
12566 selftest-run-tests.o.
12567 (OBJS-libcommon): Add selftest.o.
12568 (OBJS-libcommon-target): Add selftest.o.
12569 (all.internal): Add "selftest".
12570 (all.cross): Likewise.
12571 (selftest): New phony target.
12572 (s-selftest): New target.
12573 (selftest-gdb): New phony target.
12574 (COLLECT2_OBJS): Add selftest.o.
12575 * bitmap.c: Include "selftest.h".
12576 (selftest::test_gc_alloc): New function.
12577 (selftest::test_set_range): New function.
12578 (selftest::test_clear_bit_in_middle): New function.
12579 (selftest::test_copying): New function.
12580 (selftest::test_bitmap_single_bit_set_p): New function.
12581 (selftest::bitmap_c_tests): New function.
12582 * common.opt (fself-test): New.
12583 * diagnostic-show-locus.c: Include "selftest.h".
12584 (make_range): New function.
12585 (test_range_contains_point_for_single_point): New function.
12586 (test_range_contains_point_for_single_line): New function.
12587 (test_range_contains_point_for_multiple_lines): New function.
12588 (assert_eq): New function.
12589 (test_get_line_width_without_trailing_whitespace): New function.
12590 (selftest::diagnostic_show_locus_c_tests): New function.
12591 * et-forest.c: Include "selftest.h".
12592 (selftest::test_single_node): New function.
12593 (selftest::test_simple_tree): New function.
12594 (selftest::test_disconnected_nodes): New function.
12595 (selftest::et_forest_c_tests): New function.
12596 * fold-const.c: Include "selftest.h".
12597 (selftest::assert_binop_folds_to_const): New function.
12598 (selftest::assert_binop_folds_to_nonlvalue): New function.
12599 (selftest::test_arithmetic_folding): New function.
12600 (selftest::fold_const_c_tests): New function.
12601 * function-tests.c: New file.
12602 * gimple.c: Include "selftest.h".
12603 Include "gimple-pretty-print.h".
12604 (selftest::verify_gimple_pp): New function.
12605 (selftest::test_assign_single): New function.
12606 (selftest::test_assign_binop): New function.
12607 (selftest::test_nop_stmt): New function.
12608 (selftest::test_return_stmt): New function.
12609 (selftest::test_return_without_value): New function.
12610 (selftest::gimple_c_tests): New function.
12611 * hash-map-tests.c: New file.
12612 * hash-set-tests.c: New file.
12613 * input.c: Include "selftest.h".
12614 (selftest::assert_loceq): New function.
12615 (selftest::test_accessing_ordinary_linemaps): New function.
12616 (selftest::test_unknown_location): New function.
12617 (selftest::test_builtins): New function.
12618 (selftest::test_reading_source_line): New function.
12619 (selftest::input_c_tests): New function.
12620 * rtl-tests.c: New file.
12621 * selftest-run-tests.c: New file.
12622 * selftest.c: New file.
12623 * selftest.h: New file.
12624 * spellcheck.c: Include "selftest.h".
12625 (selftest::levenshtein_distance_unit_test_oneway): New function,
12626 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
12627 (selftest::levenshtein_distance_unit_test): Likewise.
12628 (selftest::spellcheck_c_tests): Likewise.
12629 * toplev.c: Include selftest.h.
12630 (toplev::run_self_tests): New.
12631 (toplev::main): Handle -fself-test.
12632 * toplev.h (toplev::run_self_tests): New.
12633 * tree.c: Include "selftest.h".
12634 (selftest::test_integer_constants): New function.
12635 (selftest::test_identifiers): New function.
12636 (selftest::test_labels): New function.
12637 (selftest::tree_c_tests): New function.
12638 * tree-cfg.c: Include "selftest.h".
12639 (selftest::push_fndecl): New function.
12640 (selftest::test_linear_chain): New function.
12641 (selftest::test_diamond): New function.
12642 (selftest::test_fully_connected): New function.
12643 (selftest::tree_cfg_c_tests): New function.
12644 * vec.c: Include "selftest.h".
12645 (selftest::safe_push_range): New function.
12646 (selftest::test_quick_push): New function.
12647 (selftest::test_safe_push): New function.
12648 (selftest::test_truncate): New function.
12649 (selftest::test_safe_grow_cleared): New function.
12650 (selftest::test_pop): New function.
12651 (selftest::test_safe_insert): New function.
12652 (selftest::test_ordered_remove): New function.
12653 (selftest::test_unordered_remove): New function.
12654 (selftest::test_block_remove): New function.
12655 (selftest::reverse_cmp): New function.
12656 (selftest::test_qsort): New function.
12657 (selftest::vec_c_tests): New function.c.
12658 * wide-int.cc: Include selftest.h and wide-int-print.h.
12659 (selftest::from_int <wide_int>): New function.
12660 (selftest::from_int <offset_int>): New function.
12661 (selftest::from_int <widest_int>): New function.
12662 (selftest::assert_deceq): New function.
12663 (selftest::assert_hexeq): New function.
12664 (selftest::test_printing <VALUE_TYPE>): New function template.
12665 (selftest::test_ops <VALUE_TYPE>): New function template.
12666 (selftest::test_comparisons <VALUE_TYPE>): New function template.
12667 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
12668 template.
12669 (selftest::wide_int_cc_tests): New function.
12670
12671 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12672
12673 PR middle-end/37780
12674 * ifcvt.c (noce_try_ifelse_collapse): New function.
12675 Declare prototype.
12676 (noce_process_if_block): Call noce_try_ifelse_collapse.
12677 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
12678 (simplify_ternary_operation): Use the above to simplify
12679 conditional CLZ/CTZ expressions.
12680
12681 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12682
12683 PR middle-end/37780
12684 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
12685 define_insn_and_split.
12686
12687 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12688
12689 PR middle-end/37780
12690 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
12691
12692 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
12693
12694 PR c/24414
12695 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
12696 Implicitly clobber memory for basic asm with non-empty assembler
12697 string. Use targetm.md_asm_adjust also here.
12698 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
12699 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
12700 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
12701 non-empty assembler string.
12702 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
12703 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
12704 (decode_asm_operands): Handle basic asm in PARALLEL block.
12705 (extract_insn): Handle basic asm in PARALLEL block.
12706 * doc/extend.texi: Mention new behavior of basic asm.
12707 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
12708 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
12709 branch_needs_nop_p): Use asm_noperands.
12710
12711 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
12712
12713 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
12714 Include the M7 SPARC DFA scheduler.
12715 New attribute v3pipe.
12716 Annotate insns with v3pipe where appropriate.
12717 Define cpu_feature vis4.
12718 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
12719 Add (V8QI "8") to vbits.
12720 Add insns {add,sub}v8qi3
12721 Add insns ss{add,sub}v8qi3
12722 Add insns us{add,sub}{v8qi,v4hi}3
12723 Add insns {min,max}{v8qi,v4hi,v2si}3
12724 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
12725 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
12726 * config/sparc/niagara4.md: Add a comment explaining the
12727 discrepancy between the documented latenty numbers and the
12728 implemented ones.
12729 * config/sparc/niagara7.md: New file.
12730 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
12731 supports SPARC5 and VIS 4.0 instructions.
12732 * configure: Regenerate.
12733 * config.in: Likewise.
12734 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
12735 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
12736 TARGET_CPU_niagara7.
12737 (ASM_CPU64_DEFAULT_SPEC): Likewise.
12738 (CPP_CPU_SPEC): Handle niagara7.
12739 (ASM_CPU_SPEC): Likewise.
12740 * config/sparc/sparc-opts.h (processor_type): Add
12741 PROCESSOR_NIAGARA7.
12742 (mvis4): New option.
12743 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
12744 (AS_NIAGARA7_FLAG): Define.
12745 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
12746 (CPP_CPU64_DEFAULT_SPEC): Likewise.
12747 (CPP_CPU_SPEC): Handle niagara7.
12748 (ASM_CPU_SPEC): Likewise.
12749 * config/sparc/sparc.c (niagara7_costs): Define.
12750 (sparc_option_override): Handle niagara7 and adjust cache-related
12751 parameters with better values for niagara cpus. Also support VIS4.
12752 (sparc32_initialize_trampoline): Likewise.
12753 (sparc_use_sched_lookahead): Likewise.
12754 (sparc_issue_rate): Likewise.
12755 (sparc_register_move_cost): Likewise.
12756 (dump_target_flag_bits): Support VIS4.
12757 (sparc_vis_init_builtins): Likewise.
12758 (sparc_builtins): Likewise.
12759 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
12760 VIS4 4.0.
12761 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
12762 UltraSparc M7.
12763 * config/sparc/sparc.opt (sparc_processor_type): New value
12764 niagara7.
12765 * config/sparc/visintrin.h (__attribute__): Prototypes for the
12766 VIS4 builtins.
12767 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
12768 -mvis4.
12769 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
12770 VIS4 builtins.
12771
12772 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
12773
12774 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
12775
12776 2016-06-06 Richard Biener <rguenther@suse.de>
12777
12778 PR tree-optimization/71398
12779 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
12780 remove edges.
12781
12782 2016-06-05 James Bowman <james.bowman@ftdichip.com>
12783
12784 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
12785 ft32_expand_prolog, ft32_expand_epilogue):
12786 Handle pretend_args.
12787 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
12788 * config/ft32/ft32.md: Add pretend_returner.
12789
12790 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
12791
12792 PR target/71389
12793 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
12794 Copy op1 RTX to avoid invalid sharing.
12795 (ix86_expand_vector_move_misalign): Ditto.
12796
12797 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
12798
12799 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
12800 ATTRIBUTE_UNUSED.
12801
12802 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
12803
12804 * predict.c (predicted_by_loop_heuristics_p): New function.
12805 (predict_iv_comparison): Use it.
12806 (predict_loops): Walk from innermost loops; do not predict edges
12807 leaving multiple loops multiple times; implement
12808 PRED_LOOP_ITERATIONS_MAX heuristics.
12809 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
12810
12811 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
12812
12813 * cfg.c (check_bb_profile): Do not report mismatched profiles when
12814 only edges out of BB are EH edges.
12815
12816 2016-06-04 Martin Sebor <msebor@redhat.com>
12817 Marcin Baczyński <marbacz@gmail.com>
12818
12819 PR c/48116
12820 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
12821 a void expression in a void function.
12822
12823 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
12824
12825 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
12826 aux; dump reasons of decisions.
12827 (should_duplicate_loop_header_p): Likewise.
12828 (do_while_loop_p): Likewise.
12829 (ch_base::copy_headers): Dump asi num insns duplicated.
12830
12831 2016-06-04 Jakub Jelinek <jakub@redhat.com>
12832
12833 PR tree-optimization/71405
12834 * tree-ssa.c (execute_update_addresses_taken): For clobber with
12835 incompatible type, build a new clobber with the right type instead
12836 of building a VIEW_CONVERT_EXPR around it.
12837
12838 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
12839
12840 PR tree-optimization/52171
12841 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
12842 by_pieces_ninsns instead of move_by_pieces_ninsns.
12843
12844 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
12845
12846 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
12847 for reg+reg addressing mode.
12848
12849 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12850
12851 * rs6000-c.c (c/c-tree.h): Add #include.
12852 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
12853 in C++ when found in the base position of vec_ld or vec_st.
12854
12855 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
12856
12857 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
12858 use of profile unless profile status is PROFILE_READ.
12859 * profile.c (compute_branch_probabilities): Set profile status
12860 only after reporting predictor hitrates.
12861
12862 2016-06-03 Joseph Myers <joseph@codesourcery.com>
12863
12864 PR target/71276
12865 PR target/71277
12866 * common.opt (ffp-int-builtin-inexact): New option.
12867 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
12868 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
12869 (ceil@var{m}2): Document dependence on this option.
12870 * ipa-inline-transform.c (inline_call): Handle
12871 flag_fp_int_builtin_inexact.
12872 * ipa-inline.c (can_inline_edge_p): Likewise.
12873 * config/i386/i386.md (rintxf2): Do not test
12874 flag_unsafe_math_optimizations.
12875 (rint<mode>2_frndint): New define_insn.
12876 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
12877 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
12878 for 387 instead of extending and truncating.
12879 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
12880 !flag_trapping_math instead of flag_unsafe_math_optimizations.
12881 Change to frndint<mode>2_<rounding>.
12882 (frndintxf2_<rounding>_i387): Likewise. Change to
12883 frndint<mode>2_<rounding>_i387.
12884 (<rounding_insn>xf2): Likewise.
12885 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
12886 !flag_trapping_math instead of flag_unsafe_math_optimizations for
12887 x87. Test TARGET_ROUND || !flag_trapping_math ||
12888 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
12889 SSE. Use ROUND_NO_EXC in constant operand of
12890 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
12891 for 387 instead of extending and truncating.
12892
12893 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
12894 Julia Koval <julia.koval@intel.com>
12895
12896 PR target/66960
12897 PR target/67630
12898 PR target/67634
12899 PR target/67841
12900 PR target/68037
12901 PR target/68618
12902 PR target/68661
12903 PR target/69575
12904 PR target/69596
12905 PR target/69734
12906 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
12907 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
12908 all registers, except for function return registers if there are
12909 no caller-saved registers.
12910 (ix86_set_func_type): New function.
12911 (ix86_set_current_function): Call ix86_set_func_type to set
12912 no_caller_saved_registers and func_type. Call reinit_regs if
12913 caller-saved registers are changed. Don't allow MPX, SSE, MMX
12914 nor x87 instructions in interrupt handler nor function with
12915 no_caller_saved_registers attribute.
12916 (ix86_function_ok_for_sibcall): Return false if there are no
12917 caller-saved registers.
12918 (type_natural_mode): Don't warn ABI change for MMX in interrupt
12919 handler.
12920 (ix86_function_arg_advance): Skip for callee in interrupt handler.
12921 (ix86_function_arg): Return special arguments in interrupt handler.
12922 (ix86_promote_function_mode): Promote pointer to word_mode only
12923 for normal functions.
12924 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
12925 interrupt handler.
12926 (ix86_epilogue_uses): New function.
12927 (ix86_hard_regno_scratch_ok): Likewise.
12928 (ix86_save_reg): Preserve all registers in interrupt handler
12929 after reload. Preserve all registers, except for function return
12930 registers, if there are no caller-saved registers after reload.
12931 (find_drap_reg): Always use callee-saved register if there are
12932 no caller-saved registers.
12933 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
12934 for interrupt handler.
12935 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
12936 Emit cld instruction if stringops are used in interrupt handler
12937 or interrupt handler isn't a leaf function.
12938 (ix86_expand_epilogue): Generate interrupt return for interrupt
12939 handler and pop the 'ERROR_CODE' off the stack before interrupt
12940 return in exception handler.
12941 (ix86_expand_call): Disallow calling interrupt handler directly.
12942 If there are no caller-saved registers, mark all registers that
12943 are clobbered by the call which returns as clobbered.
12944 (ix86_handle_no_caller_saved_registers_attribute): New function.
12945 (ix86_handle_interrupt_attribute): Likewise.
12946 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
12947 attributes.
12948 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
12949 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
12950 accumulation in interrupt function if stack may be realigned to
12951 avoid DRAP.
12952 (EPILOGUE_USES): New.
12953 (function_type): New enum.
12954 (machine_function): Add func_type and no_caller_saved_registers.
12955 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
12956 (interrupt_return): New pattern.
12957 * doc/extend.texi: Document x86 interrupt and
12958 no_caller_saved_registers attributes.
12959
12960 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
12961
12962 PR tree-optimization/52171
12963 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
12964 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
12965 Look for constant strings. Move some code to emit_block_cmp_hints
12966 and use it.
12967 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
12968 * defaults.h (COMPARE_MAX_PIECES): New macro.
12969 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
12970 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
12971 (clear_by_pieces_1): Don't declare. Move definition before use.
12972 (can_do_by_pieces): New static function.
12973 (can_move_by_pieces): Use it. Return bool.
12974 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
12975 OP. All callers changed. Handle COMPARE_BY_PIECES.
12976 (class pieces_addr); New.
12977 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
12978 pieces_addr::adjust, pieces_addr::increment_address,
12979 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
12980 functions for it.
12981 (class op_by_pieces_d): New.
12982 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
12983 functions for it.
12984 (class move_by_pieces_d, class compare_by_pieces_d,
12985 class store_by_pieces_d): New subclasses of op_by_pieces_d.
12986 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
12987 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
12988 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
12989 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
12990 compare_by_pieces_d::finish_mode): New member functions.
12991 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
12992 functions.
12993 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
12994 (emit_block_cmp_hints): New function.
12995 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
12996 use the newly defined classes.
12997 * expr.h (by_pieces_constfn): New typedef.
12998 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
12999 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
13000 (move_by_pieces_ninsns): Don't declare.
13001 (can_move_by_pieces): Change return value to bool.
13002 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
13003 (compare_by_pieces_branch_ratio): New hook.
13004 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
13005 (by_pieces_ninsns): Declare.
13006 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
13007 COMPARE_BY_PIECES.
13008 (default_compare_by_pieces_branch_ratio): New function.
13009 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
13010 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
13011 * doc/tm.texi: Regenerate.
13012 * tree-ssa-strlen.c: Include "builtins.h".
13013 (handle_builtin_memcmp): New static function.
13014 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
13015 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
13016
13017 2016-06-03 Alan Hayward <alan.hayward@arm.com>
13018
13019 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
13020 relevant stmts which are simple and invariant.
13021 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
13022 instead of simple and invariant
13023
13024 2016-06-03 Alan Hayward <alan.hayward@arm.com>
13025
13026 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
13027 (vectorizable_reduction): Check for new relevant state.
13028 (vectorizable_live_operation): vectorize live stmts using
13029 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
13030 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
13031 (vect_stmt_relevant_p): Check for stmts which are only used live.
13032 (process_use): Use of a stmt does not inherit it's live value.
13033 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
13034 (vect_analyze_stmt): Check for new relevant state.
13035 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
13036 outside the loop, but not inside it.
13037
13038 2016-06-03 Alan Hayward <alan.hayward@arm.com>
13039
13040 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
13041 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
13042 (vect_get_vec_def_for_operand): Split out code.
13043
13044 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
13045
13046 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
13047
13048 2016-06-03 Alan Hayward <alan.hayward@arm.com>
13049
13050 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
13051
13052 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13053
13054 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
13055
13056 2016-06-03 Jakub Jelinek <jakub@redhat.com>
13057
13058 PR middle-end/71387
13059 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
13060 to noreturn e->callee->decl that has void return type and void
13061 arguments, adjust gimple_call_fntype and remove lhs even if it had
13062 previously addressable type.
13063
13064 2016-06-02 Jeff Law <law@redhat.com>
13065
13066 PR tree-optimization/71328
13067 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
13068 error when checking for a jump back onto the copied path.
13069
13070 2016-06-02 David Malcolm <dmalcolm@redhat.com>
13071
13072 * config/microblaze/microblaze.c (get_branch_target): Add return
13073 NULL_RTX for the non-CALL_P case.
13074 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
13075 (insert_wic): Remove unused local "j".
13076
13077 2016-06-02 Martin Liska <mliska@suse.cz>
13078
13079 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
13080
13081 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
13082 Julia Koval <julia.koval@intel.com>
13083
13084 * function.c (assign_parm_setup_stack): Force source into a
13085 register if needed.
13086 * target.def (function_incoming_arg): Update documentation to
13087 allow arbitrary address computation based on hard register.
13088 * doc/tm.texi: Regenerated.
13089
13090 2016-06-02 Martin Liska <mliska@suse.cz>
13091
13092 * predict.c (combine_predictions_for_bb): Fix first match in
13093 cases where a first predictor contains more than one occurence
13094 in list of predictors. Take the best value in such case.
13095
13096 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13097
13098 PR rtl-optimization/71295
13099 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
13100 offset would go over the size of the inner mode reject it.
13101
13102 2016-06-02 Jakub Jelinek <jakub@redhat.com>
13103
13104 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
13105 x=x,x and v=v,m instead of x=x,m.
13106
13107 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
13108 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
13109 alternative to v=rm,C.
13110
13111 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
13112 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
13113 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
13114 instead of vex for the last two above mentioned alternatives.
13115
13116 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13117
13118 PR target/70830
13119 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
13120
13121 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
13122
13123 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
13124
13125 2016-06-01 David Malcolm <dmalcolm@redhat.com>
13126
13127 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
13128 from int to unsigned.
13129
13130 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
13131
13132 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
13133 alternatives, eliminating preferred register class. Add support
13134 for the MTVSRDD instruction in ISA 3.0.
13135 (vsx_splat_v4si_internal): Use splat_input_operand instead of
13136 reg_or_indexed_operand.
13137 (vsx_splat_v4sf_internal): Likewise.
13138
13139 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
13140
13141 PR target/71186
13142 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
13143 for loading up all 0's or all 1's.
13144
13145 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
13146
13147 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
13148
13149 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
13150
13151 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
13152 extension.
13153 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
13154 * gcc.c (set_source_date_epoch_envvar): New function, sets
13155 the SOURCE_DATE_EPOCH environment variable to the current time.
13156
13157 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
13158
13159 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
13160 the factor for live Phi nodes.
13161
13162 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
13163
13164 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
13165 * tree-parloops.c (parallelize_loops): likewise.
13166 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
13167 tree_unswitch_outer_loop): likewise.
13168
13169 2016-06-01 Jakub Jelinek <jakub@redhat.com>
13170
13171 PR middle-end/71371
13172 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
13173 around creation of the temporary.
13174
13175 2016-06-01 Richard Biener <rguenther@suse.de>
13176
13177 PR tree-optimization/71366
13178 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
13179 (unloop_loops): Move removing edges here ...
13180 (try_unroll_loop_completely): ... from here.
13181 (try_peel_loop): ... and here.
13182 (tree_unroll_loops_completely_1): Track parent loops via
13183 bitmap of header BBs.
13184 (tree_unroll_loops_completely): Adjust for that.
13185
13186 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
13187
13188 * config/rs6000/altivec.h (vec_slv): New macro.
13189 (vec_srv): New macro.
13190 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
13191 (UNSPEC_VSRV): New value.
13192 (vslv): New insn.
13193 (vsrv): New insn.
13194 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
13195 (vsrv): New builtin definition.
13196 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
13197 define argument types for new builtin.
13198 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
13199 new builtin.
13200 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
13201 functions.
13202
13203 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
13204 Jocelyn Mayer <l_indien@magic.fr>
13205
13206 PR target/67310
13207 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
13208 detect processor family for signature_CENTAUR_ebx.
13209 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
13210 signature_CENTAUR_ebx.
13211 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
13212 <default>: Pass x86-64 for has_longmode.
13213
13214 2016-06-01 Nathan Sidwell <nathan@acm.org>
13215
13216 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
13217 undefined weak.
13218
13219 2016-06-01 Richard Biener <rguenther@suse.de>
13220
13221 PR tree-optimization/71261
13222 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
13223 of stmts successfully put in the bool pattern. Remove
13224 single-use restriction.
13225 (adjust_bool_pattern_cast): Add cast at the use site via the
13226 pattern def sequence.
13227 (adjust_bool_pattern): Remove recursion, maintain a hash-map
13228 of patterned defs. Use the pattern def seqence instead of
13229 multiple independent patterns.
13230 (sort_after_uid): New qsort compare function.
13231 (adjust_bool_stmts): New function to process stmts in the bool
13232 pattern in IL order.
13233 (vect_recog_bool_pattern): Adjust.
13234 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
13235 (ifcvt_walk_pattern_tree): Likewise.
13236 (stmt_is_root_of_bool_pattern): Likewise.
13237 (ifcvt_repair_bool_pattern): Likewise.
13238 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
13239
13240 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
13241
13242 * loop-unroll.c (decide_unroll_constant_iterations,
13243 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
13244 likely upper bounds.
13245 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
13246
13247 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
13248
13249 * tree-core.h (enum omp_clause_code): Remove
13250 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
13251
13252 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13253
13254 * config/arm/sync.md (arm_store_exclusive<mode>):
13255 Use 'H' output modifier on operands[2] rather than creating a new
13256 entry in out-of-bounds memory of the operands array.
13257 (arm_store_release_exclusivedi): Likewise.
13258
13259 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13260
13261 * config/arm/arm.c (arm_fusion_enabled_p): New function.
13262 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
13263 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
13264 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
13265
13266 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
13267
13268 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
13269 into account live statements for mask producers.
13270
13271 2016-06-01 Richard Biener <rguenther@suse.de>
13272
13273 PR tree-optimization/71311
13274 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
13275 restrict to non-INTEGER_CST @0.
13276
13277 2016-06-01 Richard Biener <rguenther@suse.de>
13278
13279 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
13280 (relational patterns): Use :c to avoid pattern duplications.
13281
13282 2016-06-01 Richard Biener <rguenther@suse.de>
13283
13284 * genmatch.c (comparison_code_p): New predicate.
13285 (swap_tree_comparison): New function.
13286 (commutate): Add for_vec parameter to append new for entries.
13287 Support commutating relational operators by swapping it alongside
13288 operands.
13289 (lower_commutative): Adjust.
13290 (dt_simplify::gen): Do not pass artificial operators to gen
13291 functions.
13292 (decision_tree::gen): Do not add artificial operators as parameters.
13293 (parser::parse_expr): Verify operator commutativity when :c is
13294 applied. Allow :C to override this.
13295 * match.pd: Adjust patterns to use :C instead of :c where required.
13296
13297 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
13298
13299 PR tree-optimization/71077
13300 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
13301 the combining step, use boolean_false_node and boolean_true_node
13302 as the designated false/true return values.
13303
13304 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
13305
13306 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
13307 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
13308 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
13309 PRED_LOOP_EXIT.
13310
13311 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
13312
13313 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
13314 of flags impliying the register renaming.
13315 * toplev.c (process_options): Do not imply flag_rename_registers with
13316 loop peeling.
13317
13318 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
13319
13320 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
13321 default implementation.
13322
13323 2016-05-31 Nathan Sidwell <nathan@acm.org>
13324
13325 * dwarf2out.c (cur_line_info_table): Add GTY marker.
13326
13327 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
13328
13329 * config/sh/constraints.md (b): Remove constraint.
13330 * config/sh/predicates.md (arith_reg_operand): Remove
13331 TARGET_REGISTER_P.
13332 * config/sh/sh-modes.def (PDI): Remove.
13333 * config/sh/sh.c (sh_target_reg_class,
13334 sh_optimize_target_register_callee_saved): Remove functions.
13335 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
13336 (sh_expand_epilogue): Update comment.
13337 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
13338 sh_secondary_reload): Remove TARGET_REGS related code.
13339 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
13340 TARGET_REGISTER_P): Remove macros.
13341 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
13342 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
13343 TR1_REG, TR2_REG): Remove constants.
13344 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
13345
13346 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
13347
13348 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
13349 define_expand patterns.
13350 (adddi3_compact): Rename to adddi3.
13351 (subdi3_compact): Rename to subdi3.
13352 (*negdi2): Rename to negdi2.
13353 (*abs<mode>2): Rename to abs<mode>2.
13354
13355 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
13356
13357 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
13358 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
13359 (atomic_sub_fetchsi): ... this new pattern.
13360 (mvtc): Add CC_REG clobber.
13361
13362 2016-05-31 Marek Polacek <polacek@redhat.com>
13363
13364 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
13365
13366 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13367
13368 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
13369 aarch64_fusion_enabled_p to check for fusion capabilities.
13370
13371 2016-05-31 Richard Biener <rguenther@suse.de>
13372
13373 PR tree-optimization/71352
13374 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
13375 minus one and a negate.
13376
13377 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13378
13379 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
13380 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
13381 Delete prototype.
13382 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
13383 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
13384 Remove use of aarch64_simd_attr_length_move, set length attribute
13385 directly.
13386 (*aarch64_be_movoi): Likewise.
13387 (*aarch64_be_movci): Likewise.
13388 (*aarch64_be_movxi): Likewise.
13389
13390 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
13391
13392 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
13393 It no longer does that.
13394 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
13395
13396 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
13397
13398 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
13399 attribute __unused__.
13400
13401 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
13402
13403 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
13404 * config/arm/arm.c (arm_arch_thumb1): Define.
13405 (arm_option_override): Initialize arm_arch_thumb1.
13406 * config/arm/arm.h (arm_arch_thumb1): Declare.
13407 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
13408 support Thumb-1 ISA.
13409
13410 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
13411
13412 PR target/71346
13413 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
13414 `Yv' for scalar operand.
13415
13416 2016-05-31 Tom de Vries <tom@codesourcery.com>
13417
13418 PR tree-optimization/69068
13419 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
13420 phis with more than two args.
13421
13422 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
13423
13424 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
13425 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
13426 target.
13427
13428 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
13429
13430 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
13431 tune_64.
13432 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
13433 support on SPARC.
13434 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
13435 cpu_32, cpu_64, tune_32 and tune_64.
13436 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
13437
13438 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
13439
13440 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
13441
13442 2016-05-30 Andi Kleen <ak@linux.intel.com>
13443
13444 * auto-profile.c (read_profile): Replace asserts with errors
13445 when file does not exist.
13446 * gcov-io.c (gcov_read_words): Dito.
13447
13448 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
13449
13450 * tree-cfg.c (print_loop): Print likely upper bounds.
13451
13452 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
13453
13454 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
13455 * opts.c (default_options): Enable peel loops at -O3.
13456 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
13457 (try_peel_loop): Do not re-peel already peeled loops;
13458 use likely upper bounds; fix profile updating.
13459 (pass_complete_unroll::execute): Initialize peeled_loops.
13460
13461 2016-05-30 Martin Liska <mliska@suse.cz>
13462
13463 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
13464 computed costs by frequency of BB they belong to.
13465 (get_scaled_computation_cost_at): New function.
13466
13467 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
13468 Marc Glisse <marc.glisse@inria.fr>
13469
13470 PR tree-optimization/71289
13471 * match.pd (-1 / B < A, A > -1 / B): New transformations.
13472
13473 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
13474
13475 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
13476
13477 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
13478
13479 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
13480 for peeled copies; avoid underflow when updating estimates; correctly
13481 scale loop profile.
13482
13483 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
13484
13485 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
13486 r236875. Corrected oe3 to oe2 as obvious.
13487
13488 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
13489
13490 PR middle-end/71269
13491 PR middle-end/71252
13492 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
13493 that inserted stmt will not dominate stmts that defines its operand.
13494 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
13495 (rewrite_expr_tree_parallel): Likewise.
13496
13497 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
13498
13499 PR middle-end/71252
13500 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
13501 all fields including stmt_to_insert are swapped.
13502
13503 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
13504
13505 * predict.h (force_edge_cold): Declare.
13506 * predict.c (force_edge_cold): New function.
13507 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
13508 updating.
13509 (canonicalize_loop_induction_variables): Fix formating.
13510
13511 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
13512
13513 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
13514 (visium_expand_copysign): Use gen_int_mode directly.
13515 (visium_compute_frame_size): Minor tweaks.
13516
13517 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
13518
13519 * tree-vect-loop.c (vect_analyze_loop_2): Use
13520 likely_max_stmt_executions_int.
13521
13522 2016-05-30 Tom de Vries <tom@codesourcery.com>
13523
13524 PR tree-optimization/69067
13525 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
13526
13527 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
13528
13529 PR target/71245
13530 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
13531 New peepholes to remove unneeded fild/fistp pairs.
13532 (define_peephole2 atomic_loaddi_fpu): Ditto.
13533
13534 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
13535
13536 * predict.c (maybe_hot_frequency_p): Avoid division.
13537
13538 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
13539
13540 * doc/install.texi: Use https for shop.fsf.org.
13541
13542 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
13543
13544 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
13545 likely_max_stmt_executions_int.
13546
13547 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
13548
13549 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
13550 likely_max_stmt_executions_int.
13551
13552 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
13553
13554 * profile.c (compute_branch_probabilities): Do not report hitrates
13555 here.
13556 (branch_prob): Report hitrates here.
13557 * predict.c (gimple_predict_edge): Do not assert profile status;
13558 fix formatting issues.
13559
13560 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
13561
13562 * predict.c (edge_predicted_by_p): New function.
13563 (predict_paths_for_bb): Do not put multiple predictions of the same type
13564 on one edge.
13565
13566 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
13567
13568 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
13569 commit.
13570
13571 2016-05-28 Alan Modra <amodra@gmail.com>
13572
13573 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
13574
13575 2016-05-28 Alan Modra <amodra@gmail.com>
13576
13577 PR rtl-optimization/71275
13578 * ira.c (ira): Free dominance info.
13579
13580 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
13581
13582 * doc/sourcebuild.texi: New address for upstream Go repository.
13583
13584 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
13585
13586 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
13587 (TARGET_ARM_V7M): Likewise.
13588
13589 2016-05-26 Jeff Law <law@redhat.com>
13590
13591 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
13592 (thread_across_edge): Remove calls to find_jump_threads_backwards.
13593 * passes.def: Add jump threading passes before DOM/VRP.
13594 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
13595 argument to a basic block from an edge. Remove tests which are
13596 handled elsewhere.
13597 (pass_data_thread_jumps, class pass_thread_jumps): New.
13598 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
13599 (make_pass_thread_jumps): Likewise.
13600 * tree-pass.h (make_pass_thread_jumps): Declare.
13601
13602 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
13603
13604 * config/visium/visium-protos.h (split_double_move): Rename into...
13605 (visium_split_double_move): ...this.
13606 (visium_split_double_add): Declare.
13607 * config/visium/visium.c (split_double_move): Rename into...
13608 (visium_split_double_move): ...this.
13609 (visium_split_double_add): New function.
13610 (visium_expand_copysign): Renumber operands for consistency.
13611 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
13612 (DFmode move splitter): Likewise.
13613 (*addi3_insn): Split by means of visium_split_double_add.
13614 (*adddi3_insn_flags): Delete.
13615 (*plus_plus_sltu<subst_arith>): New insn.
13616 (*subdi3_insn): Split by means of visium_split_double_add.
13617 (subdi3_insn_flags): Delete.
13618 (*minus_minus_sltu<subst_arith>): New insn.
13619 (*negdi2_insn): Split by means of visium_split_double_add.
13620 (*negdi2_insn_flags): Delete.
13621
13622 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
13623
13624 * configure.ac: Treat a --with-headers option without argument
13625 the same as the default (i.e. consult sys-include directory).
13626 * configure: Regenerate.
13627
13628 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13629
13630 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
13631 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
13632 prototype.
13633 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
13634 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
13635
13636 2016-05-27 Jiong Wang <jiong.wang@arm.com>
13637
13638 PR target/63596
13639 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
13640 tree-stdarg analysis results.
13641 (aarch64_setup_incoming_varargs): Likewise.
13642
13643 2016-05-27 Jiong Wang <jiong.wang@arm.com>
13644
13645 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
13646 va_list_gpr_counter_field and va_list_fpr_counter_field.
13647
13648 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
13649
13650 PR67609
13651 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
13652 * config/aarch64/aarch64.c
13653 (aarch64_cannot_change_mode_class): Remove function.
13654 * config/aarch64/aarch64-protos.h
13655 (aarch64_cannot_change_mode_class): Remove.
13656
13657 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
13658
13659 * cfgloop.c (record_niter_bound): Record likely upper bounds.
13660 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
13661 get_likely_max_loop_iterations_int): New.
13662 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
13663 any_likely_upper_bound.
13664 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
13665 Declare.
13666 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
13667 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
13668 upper bound.
13669 (unroll_loop_constant_iterations): Likewise.
13670 (unroll_loop_runtime_iterations): Likewise.
13671 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
13672 * lto-streamer-out.c (output_cfg): Likewise.
13673 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
13674 bounds.
13675 (canonicalize_loop_induction_variables): Dump likely upper bounds.
13676 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
13677 (likely_max_loop_iterations): New.
13678 (likely_max_loop_iterations_int): New.
13679 (likely_max_stmt_executions): New.
13680 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
13681 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
13682 likely_max_stmt_executions): Declare.
13683
13684 2016-05-27 Marek Polacek <polacek@redhat.com>
13685
13686 PR middle-end/71308
13687 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
13688
13689 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13690
13691 * config/s390/s390.md (2x risbg splitters): Use
13692 reg_overlap_mentioned_p instead of rtx_equal_p.
13693
13694 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
13695
13696 * combine.c (make_compound_operation): Take known zero bits into
13697 account when checking for possible zero_extend.
13698
13699 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13700
13701 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
13702 Use const_int_operand for operand 2 predicate. Simplify expand code
13703 as a result.
13704
13705 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
13706
13707 PR middle-end/71279
13708 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
13709 into comparison.
13710
13711 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13712
13713 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
13714 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
13715 that returns CC_SESWPmode and CC_ZESWPmode.
13716 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
13717 and CC_SESWPmode.
13718 (aarch64_rtx_costs): Likewise.
13719
13720 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
13721
13722 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
13723 for ISA 3.0 min/max support.
13724 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
13725 conditional move support.
13726 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
13727 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
13728 available.
13729 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
13730 conditional moves where the comparison type is different from move
13731 type.
13732 (fp_minmax): New code iterator for smin/smax.
13733 (minmax): New code attributes for min/max.
13734 (SMINMAX): Likewise.
13735 (smax<mode>3): Combine min, max insns into one insn using the
13736 fp_minmax code iterator. Add support for ISA 3.0 min/max
13737 instructions that don't need -ffast-math.
13738 (s<minmax><mode>3): Likewise.
13739 (smax<mode>3_vsx): Likewise.
13740 (smin<mode>3): Likewise.
13741 (s<minmax><mode>3_vsx): Likewise.
13742 (smin<mode>3_vsx): Likewise.
13743 (pre-VSX min/max splitters): Likewise.
13744 (s<minmax><mode>3_fpr): Likewise.
13745 (movsfcc): Rewrite floating point conditional moves to combine
13746 SFmode/DFmode into a single insn.
13747 (mov<mode>cc): Likewise.
13748 (movdfcc): Likewise.
13749 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
13750 SFDF2 iterators to handle all combinations.
13751 (fseldfsf4): Likewise.
13752 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
13753 (fseldfdf4): Likewise.
13754 (fselsfdf4): Likewise.
13755 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
13756 comparison instructions that set a 0/-1 mask, and use it for
13757 floating point conditional move via XXSEL.
13758 (fpmask<mode>): Likewise.
13759 (xxsel<mode>): Likewise.
13760 * config/rs6000/predicates.md (min_max_operator): Delete, no
13761 longer used.
13762 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
13763 instructions that generate a 0/-1 mask for use with XXSEL.
13764 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
13765 say whether floating point min/max is available, either through
13766 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
13767 (TARGET_MINMAX_DF): Likewise.
13768
13769 2016-05-27 Alan Modra <amodra@gmail.com>
13770
13771 PR rtl-optimization/71275
13772 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
13773 for update_equiv_regs and combine_and_move_insns.
13774
13775 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
13776
13777 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
13778 if_then_else or cond RTXes to calculate attribute value.
13779 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
13780 <attr "length_immediate>: Ditto.
13781 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
13782 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
13783 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
13784 <attr "type">: Ditto.
13785 <attr "prefix_data16">: Ditto.
13786 <attr "prefix_extra">: Ditto.
13787 <attr "length_immediate">: Ditto.
13788 <attr "prefix">: Ditto.
13789 (vec_set<mode>_0) <attr "isa">: Ditto.
13790 <attr "prefix_extra">: Ditto.
13791 <attr "length_immediate">: Ditto.
13792 <attr "prefix">: Ditto.
13793 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
13794 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
13795 (sse2_storelpd) <attr "prefix_data16">: Ditto.
13796 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
13797 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
13798 <attr "length_immediate">: Ditto.
13799 <attr "prefix">: Ditto.
13800 (sse2_movsd) <attr "length_immediate">: Ditto.
13801 <attr "prefix">: Ditto.
13802 (vec_concatv2df) <attr "isa">: Ditto.
13803 <attr "prefix">: Ditto.
13804 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
13805 (*vec_extractv2di_1) <attr "isa">: Ditto.
13806 <attr "type">: Ditto.
13807 <attr "length_immediate">: Ditto.
13808 <attr "prefix_rex">: Ditto.
13809 <attr "prefix_extra">: Ditto.
13810 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
13811 <attr "prefix_extra">: Ditto.
13812 <attr "length_immediate">: Ditto.
13813 (vec_concatv2di) <attr "isa">: Ditto.
13814 <attr "prefix_extra">: Ditto.
13815 <attr "length_immediate">: Ditto.
13816 <attr "prefix">: Ditto.
13817
13818 2016-05-26 Martin Liska <mliska@suse.cz>
13819
13820 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
13821 function.
13822 (operator+): Likewise.
13823 (operator-): Likewise.
13824 (comp_cost::operator+=): Likewise.
13825 (comp_cost::operator-=): Likewise.
13826 (comp_cost::operator/=): Likewise.
13827 (comp_cost::operator*=): Likewise.
13828 (operator<): Likewise.
13829 (operator==): Likewise.
13830 (operator<=): Likewise.
13831 (new_cost): Remove.
13832 (infinite_cost_p): Likewise.
13833 (add_costs): Likewise.
13834 (sub_costs): Likewise.
13835 (compare_costs): Likewise.
13836 (set_group_iv_cost): Use the newly introduced functions.
13837 (get_address_cost): Likewise.
13838 (get_shiftadd_cost): Likewise.
13839 (force_expr_to_var_cost): Likewise.
13840 (split_address_cost): Likewise.
13841 (ptr_difference_cost): Likewise.
13842 (difference_cost): Likewise.
13843 (get_computation_cost_at): Likewise.
13844 (determine_group_iv_cost_generic): Likewise.
13845 (determine_group_iv_cost_address): Likewise.
13846 (determine_group_iv_cost_cond): Likewise.
13847 (autoinc_possible_for_pair): Likewise.
13848 (determine_group_iv_costs): Likewise.
13849 (cheaper_cost_pair): Likewise.
13850 (iv_ca_recount_cost): Likewise.
13851 (iv_ca_set_no_cp): Likewise.
13852 (iv_ca_set_cp): Likewise.
13853 (iv_ca_cost): Likewise.
13854 (iv_ca_new): Likewise.
13855 (iv_ca_dump): Likewise.
13856 (iv_ca_narrow): Likewise.
13857 (iv_ca_prune): Likewise.
13858 (iv_ca_replace): Likewise.
13859 (try_add_cand_for): Likewise.
13860 (try_improve_iv_set): Likewise.
13861 (find_optimal_iv_set): Likewise.
13862
13863 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
13864
13865 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
13866 that internal functions will clobber all caller-saved registers.
13867
13868 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
13869
13870 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
13871 Return a better case_values_threshold when optimizing.
13872
13873 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
13874
13875 * config/aarch64/aarch64-simd.md (aarch64_combinez):
13876 Add ? to integer variant.
13877 (aarch64_combinez_be): Likewise.
13878
13879 2016-05-26 Jakub Jelinek <jakub@redhat.com>
13880
13881 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
13882 instead of x constraint.
13883 (vcvtps2ph256<mask_name>): Likewise.
13884
13885 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
13886 alternative. Formatting fix.
13887
13888 * config/i386/sse.md
13889 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
13890 to ...
13891 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
13892 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
13893 maybe_evex prefix instead of vex.
13894 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
13895 EXT_REX_SSE_REG_P (op0) case in the splitter.
13896
13897 2016-05-25 Jeff Law <law@redhat.com>
13898
13899 PR tree-optimization/71272
13900 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
13901 Update comments. Add test for empty path.
13902
13903 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
13904
13905 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
13906 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
13907 special case builtin.
13908 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
13909 code for ALTIVEC_BUILTIN_VEC_CMPNE.
13910 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
13911 for __builtin_vec_cmpne.
13912
13913 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
13914
13915 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
13916 redundant test and bail out if the type of the new operand is not
13917 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
13918
13919 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
13920
13921 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
13922 (x_ix86_target_flags_explicit): Remove.
13923 * config/i386/i386.c (ix86_function_specific_save): Do not copy
13924 x_ix86_target_flags_explicit.
13925 (ix86_function_specific_restore): Ditto.
13926
13927 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
13928 H.J. Lu <hongjiu.lu@intel.com>
13929
13930 PR target/70738
13931 * common/config/i386/i386-common.c
13932 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
13933 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
13934 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
13935 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
13936 (-mgeneral-regs-only): Add new option.
13937 * config/i386/i386.c (ix86_option_override_internal): Don't enable
13938 x87 instructions if only general registers are allowed.
13939 (ix86_target_string): Add ix86_flags argument. Handle additional
13940 flags options through ix86_flags argument. Update all callers.
13941 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
13942
13943 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13944
13945 PR rtl-optimization/66940
13946 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
13947 decrementing desired_val will not overflow before performing these
13948 operations.
13949
13950 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
13951
13952 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
13953 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
13954 * config/i386/i386.c (enum ix86_builtins): Add
13955 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
13956 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
13957 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
13958 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
13959 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
13960 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
13961 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
13962 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
13963 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
13964 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
13965 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
13966 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
13967 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
13968 __builtin_ia32_cvtps2dq512_mask.
13969 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
13970 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
13971 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
13972 * config/i386/sse.md
13973 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
13974 Rename to ...
13975 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
13976 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
13977 to ...
13978 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
13979 (avx512f_vec_pack_sfix_v8df): New define_expand.
13980 (avx512f_roundpd512): Rename to ...
13981 (avx512f_round<castmode>512): ... this. Change iterator.
13982 (avx512f_roundps512_sfix): New define_expand.
13983 (round<mode>2_sfix): Change iterator.
13984
13985 2016-05-25 Nick Clifton <nickc@redhat.com>
13986
13987 * config/msp430/msp430.c (msp430_attr): Produce an error if a
13988 static interrupt handler is detected.
13989 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
13990 default linker script.
13991 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
13992 the low part of a symbolic pointer.
13993
13994 2016-05-25 Richard Biener <rguenther@suse.de>
13995
13996 PR tree-optimization/71261
13997 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
13998 interesting stmt instead of immediate uses when looking
13999 for the use operand to replace.
14000
14001 2016-05-25 Martin Liska <mliska@suse.cz>
14002
14003 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
14004
14005 2016-05-25 Richard Biener <rguenther@suse.de>
14006
14007 PR tree-optimization/71264
14008 * tree-vect-stmts.c (vect_init_vector): Properly deal with
14009 vector type val.
14010
14011 2016-05-25 Martin Liska <mliska@suse.cz>
14012
14013 PR tree-optimization/71239
14014 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
14015 if DECL_SIZE is NULL.
14016
14017 2016-05-25 Richard Biener <rguenther@suse.de>
14018
14019 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
14020 * tree-if-conv.c (pass_data_if_conversion): Use it.
14021
14022 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
14023
14024 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
14025 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
14026 * varpool.c (varpool_node::get_availability): Likewise.
14027
14028 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
14029
14030 * config/rs6000/altivec.md (VNEG iterator): New iterator for
14031 VNEGW/VNEGD instructions.
14032 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
14033 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
14034 support for ISA 3.0 VNEGW/VNEGD instructions.
14035
14036 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
14037
14038 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
14039 pointers inside OACC_DATA regions.
14040 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
14041 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
14042 (gimplify_adjust_omp_clauses): Fix typo in comment.
14043
14044 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
14045
14046 * config/rs6000/altivec.md (VParity): New mode iterator for vector
14047 parity built-in functions.
14048 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
14049 zeros.
14050 (p9v_parity<mode>2): Likewise.
14051 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
14052 parity.
14053 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
14054 (parity<mode>2): ISA 3.0 expander for vector parity.
14055 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
14056 power9 built-ins.
14057 (BU_P9_64BIT_MISC_0): Likewise.
14058 (BU_P9_MISC_0): Likewise.
14059 (BU_P9V_AV_1): Likewise.
14060 (BU_P9V_AV_2): Likewise.
14061 (BU_P9V_AV_3): Likewise.
14062 (BU_P9V_AV_P): Likewise.
14063 (BU_P9V_VSX_1): Likewise.
14064 (BU_P9V_OVERLOAD_1): Likewise.
14065 (BU_P9V_OVERLOAD_2): Likewise.
14066 (BU_P9V_OVERLOAD_3): Likewise.
14067 (VCTZB): Add vector count trailing zeros support.
14068 (VCTZH): Likewise.
14069 (VCTZW): Likewise.
14070 (VCTZD): Likewise.
14071 (VPRTYBD): Add vector parity support.
14072 (VPRTYBQ): Likewise.
14073 (VPRTYBW): Likewise.
14074 (VCTZ): Add overloaded vector count trailing zeros support.
14075 (VPRTYB): Add overloaded vector parity support.
14076 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14077 overloaded vector count trailing zeros and parity instructions.
14078 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
14079 vector parity support.
14080 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
14081 trailing zeros support.
14082 (vec_cntlz): Likewise.
14083 (vec_vctzb): Likewise.
14084 (vec_vctzd): Likewise.
14085 (vec_vctzh): Likewise.
14086 (vec_vctzw): Likewise.
14087 (vec_vprtyb): Add ISA 3.0 vector parity support.
14088 (vec_vprtybd): Likewise.
14089 (vec_vprtybw): Likewise.
14090 (vec_vprtybq): Likewise.
14091 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
14092 the ISA 3.0 vector count trailing zeros and vector parity built-in
14093 functions.
14094
14095 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
14096
14097 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
14098 when there is stmt_to_insert.
14099
14100 2016-05-24 Martin Sebor <msebor@redhat.com>
14101
14102 PR c++/71147
14103 * tree.h (complete_or_array_type_p): New inline function.
14104
14105 2016-05-24 Jakub Jelinek <jakub@redhat.com>
14106
14107 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
14108 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
14109 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
14110
14111 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
14112 Limit 1st alternative to noavx isa, split 2nd alternative into one
14113 noavx and one avx alternative, use *x and Bm in the former and
14114 x and m in the latter.
14115
14116 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
14117 of sse4 for the first alternative, drop %v from the template
14118 and d operand modifier. Split second alternative into one sse4_noavx
14119 and one avx alternative, use *x instead of *v in the former and v
14120 instead of *v in the latter.
14121 (*sse4_1_extractps): Use noavx isa instead of * for the first
14122 alternative, drop %v from the template. Split second alternative into
14123 one noavx and one avx alternative, use *x instead of *v in the
14124 former and v instead of *v in the latter.
14125 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
14126 with noavx and the last one with avx.
14127 (sse4_1_phminposuw): Guard first alternative with noavx isa,
14128 split the second one into one noavx and one avx alternative,
14129 use *x and Bm in the former and x and m in the latter one.
14130 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
14131 alternatives.
14132
14133 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
14134 first two alternatives to noavx, use *x instead of *v in the second
14135 one, add avx alternative without *.
14136 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
14137 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
14138 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
14139
14140 2016-05-24 Jeff Law <law@redhat.com>
14141
14142 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
14143 New function, extracted from...
14144 (fsm_find_control_statement_thread_paths): Here. Use the new function.
14145 Allow simple copies and constant initializations in the SSA chain.
14146
14147 2016-05-24 Marek Polacek <polacek@redhat.com>
14148
14149 PR c/71249
14150 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
14151 scope.
14152
14153 2016-05-24 Jakub Jelinek <jakub@redhat.com>
14154
14155 PR c++/71257
14156 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
14157 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
14158 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
14159 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
14160 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
14161
14162 2016-05-24 Richard Biener <rguenther@suse.de>
14163
14164 PR tree-optimization/71240
14165 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
14166 has integral type.
14167
14168 2016-05-24 Richard Biener <rguenther@suse.de>
14169
14170 PR tree-optimization/71230
14171 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
14172
14173 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
14174
14175 * tree-vectorizer.h (vectorizable_comparison): Delete.
14176 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
14177 PURE_SLP_STMT check.
14178 * tree-vect-stmts.c (vectorizable_call): Likewise.
14179 (vectorizable_simd_clone_call): Likewise.
14180 (vectorizable_conversion): Likewise.
14181 (vectorizable_assignment): Likewise.
14182 (vectorizable_shift): Likewise.
14183 (vectorizable_operation): Likewise.
14184 (vectorizable_load): Likewise.
14185 (vectorizable_condition): Likewise.
14186 (vectorizable_store): Likewise. Assert that we don't have
14187 hybrid SLP.
14188 (vectorizable_comparison): Make static. Remove redundant
14189 PURE_SLP_STMT check.
14190 (vect_transform_stmt): Assert that we always have an slp_node
14191 if PURE_SLP_STMT.
14192
14193 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14194
14195 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
14196 operands[2] against 1 with comparison against CONST1_RTX.
14197 (<shift>di3_neon): Likewise.
14198 * config/arm/predicates.md (const0_operand): Replace with comparison
14199 against CONST0_RTX.
14200
14201 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14202
14203 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
14204 operands[2] against 1 with comparison against CONST1_RTX.
14205 (ashrdi3): Likewise.
14206 (lshrdi3): Likewise.
14207 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
14208 UINTVAL.
14209 (ashrsi3): Likewise.
14210 (lshrsi3): Likewise.
14211 (rotrsi3): Likewise.
14212 (define_split above *compareqi_eq0): Likewise.
14213 (define_split above "prologue"): Likewise.
14214 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
14215 * config/arm/predicates.md (shift_operator): Likewise.
14216 (shift_nomul_operator): Likewise.
14217 (sat_shift_operator): Likewise.
14218 (thumb1_cmp_operand): Likewise.
14219 (const_neon_scalar_shift_amount_operand): Replace manual range
14220 check with IN_RANGE.
14221 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
14222 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
14223
14224 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14225
14226 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
14227 with HOST_WIDE_INT_1.
14228 (insv): Likewise.
14229 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
14230 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
14231 (arm_canonicalize_comparison): Likewise.
14232 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
14233 HOST_WIDE_INT_1.
14234 (thumb1_size_rtx_costs): Likewise.
14235 (vfp_const_double_index): Replace cast of 1 to unsigned
14236 HOST_WIDE_INT with HOST_WIDE_INT_1U.
14237 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
14238 HOST_WIDE_INT_1.
14239 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
14240 HOST_WIDE_INT with HOST_WIDE_INT_1U.
14241 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
14242 HOST_WIDE_INT with HOST_WIDE_INT_1.
14243
14244 2016-05-24 Marek Polacek <polacek@redhat.com>
14245
14246 * tree-cfg.h (should_remove_lhs_p): New predicate.
14247 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
14248 * gimplify.c (gimplify_modify_expr): Likewise.
14249 * tree-cfg.c (verify_gimple_call): Likewise.
14250 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
14251 * gimple-fold.c: Include "tree-cfg.h".
14252 (gimple_fold_call): Use should_remove_lhs_p.
14253
14254 2016-05-24 Richard Biener <rguenther@suse.de>
14255
14256 PR tree-optimization/71253
14257 * cfganal.h (control_dependences): Make robust against edge
14258 and BB removal.
14259 (control_dependences::control_dependences): Remove edge_list argument.
14260 (control_dependences::get_edge): Remove.
14261 (control_dependences::get_edge_src): Add.
14262 (control_dependences::get_edge_dest): Likewise.
14263 (control_dependences::m_el): Make a vector of edge src/dest index.
14264 * cfganal.c (control_dependences::find_control_dependence): Adjust.
14265 (control_dependences::control_dependences): Likewise.
14266 (control_dependences::~control_dependence): Likewise.
14267 (control_dependences::get_edge): Remove.
14268 (control_dependences::get_edge_src): Add.
14269 (control_dependences::get_edge_dest): Likewise.
14270 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
14271 get_edge_src.
14272 (perform_tree_ssa_dce): Adjust.
14273 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
14274 get_edge_src.
14275 (pass_loop_distribution::execute): Adjust. Do loop destroying
14276 conditional on changed.
14277
14278 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14279
14280 PR target/69857
14281 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
14282 return. Reindent transformation comment and mention the ARM state
14283 behavior.
14284
14285 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
14286
14287 PR middle-end/71252
14288 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
14289 after build_and_add_sum creates new use stmt.
14290
14291 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
14292
14293 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
14294 load_lanes/grouped_load classification comes first. Don't check
14295 whether the vectorization factor is a multiple of the group size
14296 for load_lanes.
14297
14298 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
14299
14300 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
14301 GROUP_GAP for single-element interleaving.
14302 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
14303 variable.
14304
14305 2016-05-24 Richard Biener <rguenther@suse.de>
14306
14307 PR middle-end/70434
14308 PR c/69504
14309 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
14310 bases which are accessed with non-invariant indices.
14311 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
14312 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
14313
14314 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
14315
14316 PR middle-end/71170
14317 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
14318 (add_to_ops_vec): Add stmt_to_insert.
14319 (add_repeat_to_ops_vec): Init stmt_to_insert.
14320 (insert_stmt_before_use): New.
14321 (transform_add_to_multiply): Remove mult_stmt insertion and add it
14322 to ops vector.
14323 (get_ops): Init stmt_to_insert.
14324 (maybe_optimize_range_tests): Likewise.
14325 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
14326 (rewrite_expr_tree_parallel): Likewise.
14327 (reassociate_bb): Likewise.
14328
14329 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
14330
14331 PR target/71201
14332 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
14333 ISA 3.0 xxperm fusion alternative.
14334 (altivec_vperm_v8hiv16qi): Likewise.
14335 (altivec_vperm_<mode>_uns_internal): Likewise.
14336 (vperm_v8hiv4si): Likewise.
14337 (vperm_v16qiv8hi): Likewise.
14338
14339 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
14340 Kelvin Nilsen <kelvin@gcc.gnu.org>
14341
14342 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
14343 vpermr/xxpermr on ISA 3.0.
14344 (altivec_expand_vec_perm_le): Likewise.
14345 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
14346 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
14347 ISA 3.0.
14348
14349 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
14350
14351 * config/i386/i386.h (IS_STACK_MODE): Enable for
14352 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
14353 SSE_FLOAT_MODE_P macros.
14354 * config/i386/i386.c (ix86_preferred_reload_class): Use
14355 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
14356 Cleanup regclass processing for CONST_DOUBLE_P.
14357 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
14358 (ix86_rtx_costs): Remove redundant TARGET_80387 check
14359 with IS_STACK_MODE macro.
14360 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
14361 with TARGET_SSE2.
14362 (*movdf_internal): Use IS_STACK_MODE macro.
14363 (*movsf_internal): Ditto.
14364
14365 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
14366
14367 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
14368 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
14369
14370 2016-05-23 Jeff Law <law@redhat.com>
14371
14372 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
14373 extracted from ...
14374 (fsm_find_control_statement_thread_paths): Call it.
14375
14376 2016-05-23 Martin Jambor <mjambor@suse.cz>
14377
14378 PR ipa/71234
14379 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
14380 from_global_constant if t is not NULL.
14381
14382 2016-05-23 Marek Polacek <polacek@redhat.com>
14383
14384 PR c/49859
14385 * common.opt (Wswitch-unreachable): New option.
14386 * doc/invoke.texi: Document -Wswitch-unreachable.
14387 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
14388 warning.
14389
14390 2016-05-23 Bin Cheng <bin.cheng@arm.com>
14391
14392 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
14393 TMR_INDEX is non-NULL.
14394
14395 2016-05-23 Richard Biener <rguenther@suse.de>
14396
14397 PR tree-optimization/71230
14398 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
14399 (try_special_add_to_ops): ... here. Always test for single-use.
14400
14401 2016-05-23 Martin Jambor <mjambor@suse.cz>
14402
14403 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
14404 default block if a PHI node in the original one would be resized.
14405
14406 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
14407
14408 PR tree-optimization/58135
14409 * tree-vect-slp.c: When group size is not multiple
14410 of vector size, allow splitting of store group at
14411 vector boundary.
14412
14413 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
14414
14415 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
14416
14417 2016-05-22 Jakub Jelinek <jakub@redhat.com>
14418
14419 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
14420 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
14421 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
14422 of 64x2.
14423
14424 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
14425 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
14426 v constraint instead of x and vinserti32x4 insn.
14427
14428 * config/i386/sse.md (i128vldq): New mode iterator.
14429 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
14430 avx512dq and avx512vl alternatives.
14431
14432 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
14433 constraint, use maybe_evex prefix instead of vex.
14434 (vec_dupv4sf): Use v constraint instead of x for output
14435 operand except for noavx alternative, use Yv constraint
14436 instead of x for input. Use maybe_evex prefix instead of vex.
14437 (*vec_dupv4si): Likewise.
14438 (*vec_dupv2di): Likewise.
14439
14440 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
14441
14442 PR middle-end/40921
14443 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
14444 (linearize_expr_tree): Call try_special_add_to_ops.
14445 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
14446
14447 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
14448
14449 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
14450 to computed stack_usage.
14451
14452 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
14453
14454 PR target/71103
14455 * config/avr/avr.md (define_expand "mov<mode>"): If the source
14456 operand is subreg (symbol_ref) then move the symbol ref to register.
14457
14458 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
14459
14460 * tree.c (array_at_struct_end_p): Look through MEM_REF.
14461
14462 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
14463
14464 PR middle-end/71179
14465 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
14466 VECTOR type.
14467
14468 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
14469
14470 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
14471 ranges by calling get_single_symbol and tidy up. Look more closely
14472 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
14473
14474 2016-05-20 Jeff Law <law@redhat.com>
14475
14476 * bitmap.c (bitmap_find_bit): Remove useless test.
14477
14478 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
14479
14480 * function.c (thread_prologue_and_epilogue_insns): Commit the
14481 insertion of the epilogue.
14482
14483 2016-05-20 Martin Jambor <mjambor@suse.cz>
14484
14485 PR tree-optimization/70884
14486 * tree-sra.c (initialize_constant_pool_replacements): Do not check
14487 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
14488 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
14489 of constant pool data as a reason for scalarization.
14490
14491 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
14492
14493 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
14494 for naked functions.
14495 (thumb1_expand_prologue): Likewise.
14496
14497 2016-05-20 Nathan Sidwell <nathan@acm.org>
14498
14499 * config/nvptx/nptx.c (nvptx_option_override): Only set
14500 flag_toplevel_reorder, if not explicitly specified. Set
14501 flag_no_common, unless explicitly specified.
14502
14503 2016-05-20 David Malcolm <dmalcolm@redhat.com>
14504
14505 * calls.c (can_implement_as_sibling_call_p): Mark param
14506 reg_parm_stack_space with ATTRIBUTE_UNUSED.
14507
14508 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
14509
14510 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
14511 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
14512 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
14513 constants.
14514 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
14515 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
14516 and CASE_CONST_ANY.
14517
14518 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
14519
14520 * config/nvptx/nvptx.md (sincossf3): New pattern.
14521
14522 2016-05-20 David Malcolm <dmalcolm@redhat.com>
14523
14524 * calls.c (maybe_complain_about_tail_call): New function.
14525 (initialize_argument_information): Call
14526 maybe_complain_about_tail_call when clearing *may_tailcall.
14527 (can_implement_as_sibling_call_p): Call
14528 maybe_complain_about_tail_call when returning false.
14529 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
14530 ensure try_tail_call is set. Call maybe_complain_about_tail_call
14531 if tail-call optimization fails.
14532 * cfgexpand.c (expand_call_stmt): Initialize
14533 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
14534 * gimple-pretty-print.c (dump_gimple_call): Dump
14535 gimple_call_must_tail_p.
14536 * gimple.c (gimple_build_call_from_tree): Call
14537 gimple_call_set_must_tail with the value of
14538 CALL_EXPR_MUST_TAIL_CALL.
14539 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
14540 (gimple_call_set_must_tail): New function.
14541 (gimple_call_must_tail_p): New function.
14542 * print-tree.c (print_node): Update printing of TREE_STATIC
14543 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
14544 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
14545 trailing comment listing applicable flags.
14546 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
14547
14548 2016-05-20 David Malcolm <dmalcolm@redhat.com>
14549
14550 * calls.c (expand_call): Move "Rest of purposes for tail call
14551 optimizations to fail" to...
14552 (can_implement_as_sibling_call_p): ...this new function, and
14553 split into multiple "if" statements.
14554
14555 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
14556
14557 * cfgloop.h (expected_loop_iterations_unbounded,
14558 expected_loop_iterations): Unconstify.
14559 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
14560 profile with known upper bound; return 3 when profile is absent.
14561 (expected_loop_iterations): Update.
14562
14563 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
14564
14565 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
14566 and get_max_loop_iterations_int.
14567
14568 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
14569
14570 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
14571 realistic upper bounds here.
14572
14573 2016-05-20 Jakub Jelinek <jakub@redhat.com>
14574
14575 PR c++/71210
14576 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
14577 calls if the LHS is variable length or has addressable type.
14578 If targets[0]->decl is a noreturn call with void return type and
14579 zero arguments, adjust fntype and remove lhs in that case.
14580
14581 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
14582
14583 PR tree-optimization/71079
14584 PR tree-optimization/71206
14585 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
14586
14587 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14588
14589 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
14590 (get_vec_alignment_for_array_decl): Likewise.
14591 (get_vec_alignment_for_record_decl): Likewise.
14592 (increase_alignment::execute): Move code to find alignment to
14593 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
14594 (type_align_map): New hash_map.
14595
14596 2016-05-20 Richard Guenther <rguenther@suse.de>
14597
14598 PR tree-optimization/29756
14599 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
14600 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
14601 * fold-const.c (operand_equal_p): Likewise.
14602 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
14603 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
14604 * tree-inline.c (estimate_operator_cost): Likewise.
14605 * tree-pretty-print.c (dump_generic_node): Likewise.
14606 * tree-ssa-operands.c (get_expr_operands): Likewise.
14607 * cfgexpand.c (expand_debug_expr): Likewise.
14608 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
14609 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
14610 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
14611 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
14612 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
14613 (execute_update_addresses_taken): Do it.
14614
14615 2016-05-20 Richard Biener <rguenther@suse.de>
14616
14617 PR tree-optimization/71185
14618 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
14619 register operations.
14620
14621 2016-05-20 Richard Biener <rguenther@suse.de>
14622
14623 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
14624 gimple_seq_add_seq_without_update.
14625 (release_bb_predicate): Assert we have no operands to free.
14626 (if_convertible_loop_p_1): Calculate post dominators later.
14627 Do not free BB predicates here.
14628 (combine_blocks): Do not recompute BB predicates.
14629 (version_loop_for_if_conversion): Save BB predicates around
14630 loop versioning.
14631
14632 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
14633
14634 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
14635 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
14636 code. Ignore sibcalls on EDGE_IGNORE edges.
14637 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
14638 on edges for sibcalls that run without prologue. The rest of the
14639 function is combined from...
14640 (fix_fake_fallthrough_edge): ... this, and ...
14641 (try_shrink_wrapping): ... a part of this. Remove the bb_with
14642 function argument, make it a local variable.
14643
14644 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
14645
14646 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
14647 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
14648 for 32-bit mode and SEH for 64-bit.
14649 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
14650 TARGET_64BIT_DEFAULT.
14651
14652 2016-05-19 Ryan Burn <contact@rnburn.com>
14653
14654 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
14655 * gengtype.c (open_base_files): Add cilk.h to ifiles.
14656
14657 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
14658
14659 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
14660 force pending loads from memory.
14661
14662 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
14663
14664 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
14665 (UNSPEC_DARN_32): New unspec constant.
14666 (UNSPEC_DARN_RAW): New unspec constant.
14667 (darn_32): New instruction.
14668 (darn_raw): New instruction.
14669 (darn): New instruction.
14670 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
14671 support and documentation for this macro.
14672 (BU_P9_MISC_1): New macro definition.
14673 (BU_P9_64BIT_MISC_0): New macro definition.
14674 (BU_P9_MISC_0): New macro definition.
14675 (darn_32): New builtin definition.
14676 (darn_raw): New builtin definition.
14677 (darn): New builtin definition.
14678 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
14679 RS6000_BUILTIN_0 directives to surround each occurrence of
14680 #include "rs6000-builtin.def".
14681 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
14682 RS6000_BTM_64BIT flags to the returned mask, depending on
14683 configuration.
14684 (def_builtin): Correct an error in the assignments made to the
14685 debugging variable attr_string.
14686 (rs6000_expand_builtin): Add support for no-operand built-in
14687 functions.
14688 (builtin_function_type): Remove fatal_error assertion that is no
14689 longer valid.
14690 (rs6000_common_init_builtins): Add support for no-operand built-in
14691 functions.
14692 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
14693 definition.
14694 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
14695 definition.
14696 (RS6000_BTM_64BIT): New macro definition.
14697 * doc/extend.texi: Document __builtin_darn (void),
14698 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
14699 functions.
14700
14701 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
14702
14703 * tree-vect-loop.c (vect_analyze_loop_2): Use also
14704 max_loop_iterations_int.
14705
14706 2016-05-19 Marek Polacek <polacek@redhat.com>
14707
14708 PR tree-optimization/71031
14709 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
14710 condition and adjust the code a bit.
14711
14712 2016-05-19 Martin Liska <mliska@suse.cz>
14713
14714 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
14715 auto_vec instead of vec.
14716
14717 2016-05-19 Martin Liska <mliska@suse.cz>
14718
14719 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
14720
14721 2016-05-19 Martin Liska <mliska@suse.cz>
14722
14723 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
14724
14725 2016-05-19 Martin Liska <mliska@suse.cz>
14726
14727 * ipa-pure-const.c (set_function_state): Remove an existing
14728 funct_state.
14729 (remove_node_data): Do not free it as it's released
14730 in set_function_state.
14731
14732 2016-05-19 Martin Liska <mliska@suse.cz>
14733
14734 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
14735 bitmap.
14736
14737 2016-05-19 Martin Liska <mliska@suse.cz>
14738
14739 * omp-simd-clone.c (simd_clone_adjust): Release vector.
14740
14741 2016-05-19 Martin Liska <mliska@suse.cz>
14742
14743 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
14744 an auto_vec instead of re-creating it.
14745
14746 2016-05-19 Martin Liska <mliska@suse.cz>
14747
14748 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
14749 auto_vec instead of vec.
14750
14751 2016-05-19 Martin Liska <mliska@suse.cz>
14752
14753 * lto-section-in.c (lto_get_section_data): Call
14754 lto_check_version with additional argument.
14755 * lto-streamer.c (lto_check_version): Add new argument.
14756 * lto-streamer.h (lto_check_version): Likewise.
14757
14758 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14759
14760 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
14761 Don't add cost of inner memory when handling sign-extended loads.
14762
14763 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
14764
14765 PR rtl-optimization/71148
14766 * cse.c (cse_main): Free dominance info.
14767 (rest_of_handle_cse): Don't free dominance info.
14768 (rest_of_handle_cse2): Likewise.
14769 (rest_of_handle_cse_after_global_opts): Likewise.
14770
14771 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14772
14773 PR target/71056
14774 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
14775 NULL_TREE early if NEON is not available. Remove now redundant check
14776 in ARM_CHECK_BUILTIN_MODE.
14777
14778 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
14779
14780 PR sanitizer/64354
14781 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
14782 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
14783 * doc/cpp.texi: Document new macros.
14784
14785 2016-05-19 Bin Cheng <bin.cheng@arm.com>
14786
14787 PR tree-optimization/69848
14788 * tree-vect-loop.c (vectorizable_reduction): Don't factor
14789 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
14790
14791 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
14792
14793 * function.c (thread_prologue_and_epilogue_insn): Move the
14794 "goto epilogue_done" one block later.
14795
14796 2016-05-19 Richard Biener <rguenther@suse.de>
14797
14798 PR tree-optimization/70729
14799 * passes.def: Move LIM pass before PRE. Remove no longer
14800 required copyprop and move first DCE out of the loop pipeline.
14801
14802 2016-05-18 David Malcolm <dmalcolm@redhat.com>
14803
14804 PR driver/69265
14805 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
14806 (OBJS-libcommon-target): ...here.
14807 * opts-common.c: Include spellcheck.h.
14808 (cmdline_handle_error): Build a vec of valid options and use it
14809 to suggest provide hints for misspelled arguments.
14810
14811 2016-05-18 Jakub Jelinek <jakub@redhat.com>
14812
14813 PR c++/71100
14814 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
14815 lhs if it has TREE_ADDRESSABLE type.
14816
14817 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
14818
14819 PR target/71145
14820 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
14821 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
14822
14823 2016-05-18 Martin Jambor <mjambor@suse.cz>
14824
14825 PR ipa/69708
14826 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
14827 input for NOP_EXPR pass-through functions.
14828 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
14829 aggregate global constant VAR_DECLs in constant jump functions.
14830
14831 2016-05-18 Martin Jambor <mjambor@suse.cz>
14832
14833 PR ipa/69708
14834 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
14835 from TREE_READONLY parameters.
14836
14837 2016-05-18 Martin Jambor <mjambor@suse.cz>
14838
14839 PR ipa/69708
14840 * cgraph.h (cgraph_indirect_call_info): New field
14841 guaranteed_unmodified.
14842 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
14843 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
14844 appropriate.
14845 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
14846 pass the parameter value to ipa_find_agg_cst_for_param.
14847 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
14848 guaranteed_unmodified, store AA results there instead of bailing out
14849 if present.
14850 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
14851 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
14852 (find_constructor_constant_at_offset): New function.
14853 (ipa_find_agg_cst_from_init): Likewise.
14854 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
14855 static initializers of contants, report back through a new paameter
14856 from_global_constant if that was the case.
14857 (try_make_edge_direct_simple_call): Also pass parameter value to
14858 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
14859 appropriate.
14860 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
14861 (ipa_read_indirect_edge_info): Likewise.
14862 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
14863 (ipa_load_from_parm_agg): Likewise.
14864
14865 2016-05-18 Jiong Wang <jiong.wang@arm.com>
14866
14867 PR rtl-optimization/71150
14868 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
14869 check.
14870
14871 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
14872
14873 PR target/70915
14874 * config/rs6000/constraints.md (wE constraint): New constraint
14875 for a vector constant that can be loaded with XXSPLTIB.
14876 (wM constraint): New constraint for a vector constant of a 1's.
14877 (wS constraint): New constraint for a vector constant that can be
14878 loaded with XXSPLTIB and a vector sign extend instruction.
14879 * config/rs6000/predicates.md (xxspltib_constant_split): New
14880 predicates for wE/wS constraints.
14881 (xxspltib_constant_nosplit): Likewise.
14882 (easy_vector_constant): Add support for constants that can be
14883 loaded via XXSPLTIB.
14884 (all_ones_constant): New predicate for vector constant with all
14885 1's set.
14886 (splat_input_operand): Add support for ISA 3.0 word splat operations.
14887 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
14888 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
14889 instruction and possibly with a sign extension.
14890 (output_vec_const_move): Add support for XXSPLTIB. If we are
14891 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
14892 instead of XXLXOR/XXLORC.
14893 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
14894 operations.
14895 (rs6000_legitimize_reload_address): Likewise.
14896 (rs6000_output_move_128bit): Use output_vec_const_move to emit
14897 constants.
14898 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
14899 combine VSX_M and VSX_M2 into one iterator.
14900 (VSX_M2): Likewise.
14901 (VSINT_84): New iterators for loading constants with XXSPLTIB.
14902 (VSINT_842): Likewise.
14903 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
14904 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
14905 XXSPLTIB instruction.
14906 (xxspltib_<mode>_nosplit): Likewise.
14907 (xxspltib_<mode>_split): New insn to load up constants with
14908 XXSPLTIB and a sign extend instruction.
14909 (vsx_mov<mode>): Replace single move that handled all vector types
14910 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
14911 moves (when -mvsx-timode is in effect) into the main vector
14912 moves. Eliminate separate moves for <VSr> <VSa>, where the
14913 preferred register class (<VSr>) is listed first, and the
14914 secondary register class (<VSa>) is listed second with a '?' to
14915 discourage use. Prefer loading 0/-1 in any VSX register for ISA
14916 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
14917 that if the register was involved in a slow operation, the
14918 clear/set operation does not wait for the slow operation to
14919 finish. Adjust the length attributes for 32-bit mode. Use
14920 rs6000_output_move_128bit and drop the use of the string
14921 instructions for 32-bit movti when -mvsx-timode is in effect. Use
14922 spacing so that the alternatives and attributes don't generate
14923 long lines, and put things in columns, so that it is easier to
14924 match up the operands and attributes with the insn alternatives.
14925 (vsx_mov<mode>_64bit): Likewise.
14926 (vsx_mov<mode>_32bit): Likewise.
14927 (vsx_movti_64bit): Fold movti into normal vector moves.
14928 (vsx_movti_32bit): Likewise.
14929 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
14930 splat instructions.
14931 (vsx_splat_v4si_internal): Likewise.
14932 (vsx_splat_v4sf_internal): Likewise.
14933 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
14934 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
14935 extend vector elements.
14936 (vsx_sign_extend_hi_<mode>): Likewise.
14937 (vsx_sign_extend_si_v2di): Likewise.
14938 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
14939 declaration.
14940 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
14941 constraints. Add trailing period to wL documentation.
14942
14943 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
14944
14945 PR middle-end/71020
14946 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
14947 * tree-dfa.c (replace_abnormal_ssa_names): New function.
14948 * tree-call-cdce.c: Include tree-dfa.h.
14949 (can_guard_call_p): New function, extracted from...
14950 (can_use_internal_fn): ...here.
14951 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
14952 and return void.
14953 (shrink_wrap_one_built_in_call): Likewise.
14954 (use_internal_fn): Likewise.
14955 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
14956 and return void. Call replace_abnormal_ssa_names.
14957 (pass_call_cdce::execute): Check can_guard_call_p during the
14958 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
14959 will always change something.
14960
14961 2016-05-18 Martin Jambor <mjambor@suse.cz>
14962
14963 PR ipa/70646
14964 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
14965 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
14966
14967 2016-05-18 Martin Jambor <mjambor@suse.cz>
14968
14969 PR ipa/70646
14970 * ipa-inline.h (condition): New field size.
14971 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
14972 for comaprison and store it into the new condition.
14973 (evaluate_conditions_for_known_args): Use condition size to check
14974 access sizes for all but CHANGED conditions.
14975 (unmodified_parm_1): New parameter size_p, store access size into it.
14976 (unmodified_parm): Likewise.
14977 (unmodified_parm_or_parm_agg_item): Likewise.
14978 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
14979 (set_cond_stmt_execution_predicate): Extract access sizes and store
14980 them to conditions.
14981 (set_switch_stmt_execution_predicate): Likewise.
14982 (will_be_nonconstant_expr_predicate): Likewise.
14983 (will_be_nonconstant_predicate): Likewise.
14984 (inline_read_section): Stream condition size.
14985 (inline_write_summary): Likewise.
14986
14987 2016-05-18 Richard Biener <rguenther@suse.de>
14988
14989 * tree-ssa-loop-im.c (determine_max_movement): Properly add
14990 condition cost to PHI cost instead of total_cost.
14991
14992 2016-05-18 Martin Liska <mliska@suse.cz>
14993
14994 PR fortran/70856
14995 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
14996 merged variables.
14997
14998 2016-05-18 Richard Biener <rguenther@suse.de>
14999
15000 * lto-streamer.h (LTO_major_version): Bump to 6.
15001
15002 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
15003
15004 * function.c (make_split_prologue_seq, make_prologue_seq,
15005 make_epilogue_seq): New functions, factored out from...
15006 (thread_prologue_and_epilogue_insns): Here.
15007
15008 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
15009
15010 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
15011 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
15012 of before. Add a comment.
15013
15014 2016-05-18 Bin Cheng <bin.cheng@arm.com>
15015
15016 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
15017 expression pointer, not pointer to the pointer.
15018
15019 2016-05-18 Jakub Jelinek <jakub@redhat.com>
15020
15021 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
15022 (avx2_pbroadcast<mode>): Add another alternative with v instead
15023 of x constraints in it, using <pbroadcast_evex_isa> isa.
15024 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
15025
15026 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
15027 constraint x instead of v in second alternative, add avx512bw
15028 alternative.
15029
15030 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
15031 constraint x instead of v in second alternative, add avx512bw
15032 alternative.
15033
15034 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
15035 constraint x instead of v in second alternative, add avx512bw
15036 alternative.
15037
15038 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
15039 avx512bw alternative.
15040
15041 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
15042
15043 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
15044 array to 128 chars.
15045 (define_insn "*andnottf3"): Ditto.
15046 (define_insn "*<code><mode>3"/any_logic): Ditto.
15047 (define_insn "*<code>tf3"/any_logic): Ditto.
15048 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
15049 operand to block AVX-512VL insn variant emit when it is not enabled.
15050
15051 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
15052
15053 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
15054 constraint fot SF mode.
15055
15056 2016-05-18 Petr Murzin <petr.murzin@intel.com>
15057 Kirill Yukhin <kirill.yukhin@intel.com>
15058
15059 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
15060 modifiers.
15061 (define_insn "rsqrt14<mode>"): Ditto.
15062 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
15063 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
15064 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
15065 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
15066 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
15067 Ditto.
15068 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
15069 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
15070 * config/i386/i386.c (ix86_print_operand): Expand check for size
15071 override codes for Intel syntax.
15072
15073 2016-05-18 Richard Biener <rguenther@suse.de>
15074
15075 PR tree-optimization/71168
15076 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
15077 initialization earlier.
15078
15079 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
15080
15081 * config/aarch64/aarch64-simd.md
15082 (aarch64_reduc_plus_internal<mode>): Rename to...
15083 (reduc_plus_scal): ...This, and remove previous implementation.
15084
15085 2016-05-18 Richard Biener <rguenther@suse.de>
15086
15087 * passes.def: Put late dse and cd_dce in canonical order.
15088
15089 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
15090
15091 * ipa-inline-transform.c (preserve_function_body_p): Look for
15092 first non-thunk clone.
15093 (save_function_body): Save into first non-thunk.
15094 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
15095 up call stmt id.
15096 (lto_output_node): Inline thunks don't need body in every
15097 partition.
15098 * lto-streamer-in.c: Do not fixup thunk clones.
15099 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
15100 thunks.
15101 * tree-inline.c (copy_bb): Be prepared for target node to be new after
15102 folding suceeds.
15103
15104 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
15105
15106 PR middle-end/63586
15107 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
15108 (reassociate_bb): Call transform_add_to_multiply.
15109
15110 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
15111
15112 * config/aarch64/aarch64.c (all_extensions): Removed unused
15113 static variable.
15114
15115 2016-05-17 Nathan Sidwell <nathan@acm.org>
15116
15117 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
15118 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
15119
15120 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
15121
15122 PR tree-optimization/54579
15123 PR middle-end/55299
15124 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
15125
15126 2016-05-17 Marek Polacek <polacek@redhat.com>
15127
15128 PR ipa/71146
15129 * tree-inline.c (expand_call_inline): Call
15130 maybe_remove_unused_call_args.
15131
15132 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
15133
15134 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
15135 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
15136 * doc/md.texi (fmin@var{m}3): Likewise.
15137
15138 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
15139
15140 * match.pd (X & C): New transformation.
15141
15142 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
15143
15144 * match.pd (~X & Y): New transformation.
15145
15146 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
15147
15148 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
15149 information for new SSA_NAME.
15150 (simplify_conversion_using_ranges): Get range through get_range_info
15151 instead of get_value_range.
15152
15153 2016-05-17 Jiong Wang <jiong.wang@arm.com>
15154
15155 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
15156 Remove inline assembly.
15157 (vmvn_s16): Likewise.
15158 (vmvn_s32): Likewise.
15159 (vmvn_u8): Likewise.
15160 (vmvn_u16): Likewise.
15161 (vmvn_u32): Likewise.
15162 (vmvnq_s8): Likewise.
15163 (vmvnq_s16): Likewise.
15164 (vmvnq_s32): Likewise.
15165 (vmvnq_u8): Likewise.
15166 (vmvnq_u16): Likewise.
15167 (vmvnq_u32): Likewise.
15168 (vmvn_p8): Likewise.
15169 (vmvnq_p16): Likewise.
15170
15171 2016-05-17 Jiong Wang <jiong.wang@arm.com>
15172
15173 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
15174 Use builtin.
15175 (vmul_n_s16): Likewise.
15176 (vmul_n_s32): Likewise.
15177 (vmul_n_u16): Likewise.
15178 (vmul_n_u32): Likewise.
15179 (vmulq_n_f32): Likewise.
15180 (vmulq_n_f64): Likewise.
15181 (vmulq_n_s16): Likewise.
15182 (vmulq_n_s32): Likewise.
15183 (vmulq_n_u16): Likewise.
15184 (vmulq_n_u32): Likewise.
15185
15186 2016-05-17 Jiong Wang <jiong.wang@arm.com>
15187
15188 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
15189 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
15190
15191 2016-05-17 Jiong Wang <jiong.wang@arm.com>
15192
15193 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
15194 to *aarch64_fma4_elt_from_dup<mode>.
15195 (*aarch64_fnma4_elt_to_128df): Rename to
15196 *aarch64_fnma4_elt_from_dup<mode>.
15197 * config/aarch64/arm_neon.h (vfma_n_f64): New.
15198 (vfms_n_f32): Likewise.
15199 (vfms_n_f64): Likewise.
15200 (vfmsq_n_f32): Likewise.
15201 (vfmsq_n_f64): Likewise.
15202
15203 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
15204
15205 * wide-int.h: Change fixed_wide_int_storage from class to struct.
15206
15207 2016-05-17 Richard Biener <rguenther@suse.de>
15208
15209 PR tree-optimization/71132
15210 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
15211 Only add control dependences for blocks in the loop.
15212 (build_rdg): Adjust.
15213 (generate_code_for_partition): Return whether loop should
15214 be destroyed and delay that.
15215 (distribute_loop): Likewise.
15216 (pass_loop_distribution::execute): Record loops to be destroyed
15217 and perform delayed destroying of loops.
15218
15219 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15220
15221 PR target/70809
15222 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
15223
15224 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
15225
15226 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
15227
15228 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
15229
15230 PR target/71114
15231 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
15232 insertion point for instructions generated by validize_mem.
15233
15234 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
15235
15236 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
15237 in brackets.
15238
15239 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
15240
15241 * config/aarch64/aarch64.c
15242 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
15243 rather than a macro.
15244
15245 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
15246
15247 * doc/invoke.texi (AArch64 Options): Various updates.
15248
15249 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
15250
15251 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
15252 into instrumentation thunks.
15253 * cif-code.def (CIF_CHKP): New.
15254
15255 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
15256
15257 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
15258
15259 2016-05-16 Martin Jambor <mjambor@suse.cz>
15260
15261 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
15262 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
15263
15264 2016-05-16 Marek Polacek <polacek@redhat.com>
15265
15266 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
15267 commentary.
15268
15269 2016-05-16 Martin Jambor <mjambor@suse.cz>
15270
15271 PR hsa/70857
15272 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
15273 the outlined kernel function.
15274
15275 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
15276
15277 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
15278 (ISA_HAS_DLSA): Ditto.
15279
15280 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
15281
15282 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
15283
15284 2016-05-16 Nathan Sidwell <nathan@acm.org>
15285
15286 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
15287 (nvptx_name_replacement): Restore. Add comment.
15288 (write_fn_proto, write_fn_proto_from_insn,
15289 nvptx_output_call_insn): Restore
15290 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
15291
15292 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
15293
15294 * config/aarch64/aarch64.md
15295 (add<mode>3_compareC_cconly_imm): Remove use of %w.
15296 (add<mode>3_compareC_imm): Likewise.
15297 (<optab>si3_uxtw): Split into register and immediate variants.
15298 (andsi3_compare0_uxtw): Likewise.
15299 (and<mode>3_compare0): Likewise.
15300 (and<mode>3nr_compare0): Likewise.
15301 (stack_protect_test_<mode>): Don't use %x for memory operands.
15302
15303 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
15304
15305 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
15306
15307 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
15308
15309 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
15310 Split integer shifts into shift_reg and bfm.
15311 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
15312 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
15313 (ror<mode>3_insn): Likewise.
15314 (<optab>si3_insn_uxtw): Likewise.
15315 (<optab><mode>3_insn): Change to rotate_imm.
15316 (extr<mode>5_insn_alt): Likewise.
15317 (extrsi5_insn_uxtw): Likewise.
15318 (extrsi5_insn_uxtw_alt): Likewise.
15319
15320 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
15321
15322 * doc/tm.texi: Regenerate.
15323 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
15324 (TARGET_INVALID_RETURN_TYPE): Remove.
15325 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
15326 TARGET_INVALID_RETURN_TYPE.
15327 * target.def (invalid_parameter_type): Remove.
15328 (invalid_return_type): Remove.
15329
15330 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
15331
15332 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
15333 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
15334 calls from thunk.
15335 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
15336 gimple body.
15337 (preserve_function_body_p): No need to preserve function body
15338 * cif-codes.def (CIF_THUNK): Remove.
15339 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
15340
15341 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
15342
15343 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
15344
15345 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
15346
15347 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
15348 for thunks.
15349
15350 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
15351
15352 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
15353 (inline_small_functions): Do not look for function symbol when
15354 resetting caches.
15355
15356 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
15357
15358 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
15359 of inline thunks
15360
15361 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
15362 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15363 Jiong Wang <jiong.wang@arm.com>
15364
15365 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
15366 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
15367 Define __ARM_FP16_ARGS when appropriate.
15368 * config/arm/arm.c (arm_invalid_parameter_type): Remove
15369 declaration.
15370 (arm_invalid_return_type): Likewise.
15371 (TARGET_INVALID_PARAMETER_TYPE): Remove.
15372 (TARGET_INVALID_RETURN_TYPE): Remove.
15373 (aapcs_vfp_sub_candidate): Allow HFmode.
15374 (aapcs_vfp_allocate): Add comment. Support HFmode.
15375 (aapcs_vfp_allocate_return_reg): Likewise.
15376 (struct aapcs_cp_arg_layout): Slightly reword comments for
15377 is_return_candidate and allocate_return_reg.
15378 (output_mov_vfp): Update assert.
15379 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
15380 condition.
15381 (arm_invalid_parameter_type): Remove.
15382 (amr_invalid_return_type): Remove.
15383 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
15384 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
15385 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
15386
15387 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
15388
15389 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
15390 * config/aarch64/arch64-protos.h
15391 (aarch64_legitimize_reload_address): Remove.
15392 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
15393 Remove.
15394
15395 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
15396
15397 * configure.ac: Add ACX_NONCANONICAL_HOST.
15398 * configure: Regenerate.
15399 * Makefile.in: Set host_noncanonical.
15400
15401 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
15402
15403 PR target/71097
15404 * config/i386/i386.md (*movtf_internal): Before register allocation,
15405 do not allow FP constants for CM_MEDIUM memory model, allow only
15406 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
15407 (*movxf_internal): Ditto.
15408 (*movdf_internal): Ditto.
15409 (*movsf_internal): Ditto.
15410
15411 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
15412
15413 PR rtl-optimization/67483
15414 * combine.c (make_compound_operation): Don't call extract_left_shift
15415 with negative shift amounts.
15416
15417 2016-05-13 Jakub Jelinek <jakub@redhat.com>
15418
15419 PR bootstrap/71071
15420 * fold-const.c (fold_checksum_tree): Allow modification
15421 of TYPE_ALIAS_SET during folding.
15422
15423 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
15424 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
15425 (ix86_split_to_parts): Likewise. Fix up formatting.
15426
15427 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
15428
15429 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
15430 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
15431 printf format.
15432
15433 2016-05-13 Nathan Sidwell <nathan@acm.org>
15434
15435 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
15436 (nvptx_name_replacement): Delete.
15437 (write_fn_proto, write_fn_proto_from_insn,
15438 nvptx_output_call_insn): Remove nvptx_name_replacement call.
15439 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
15440 * langhooks.c (add_builtin_funcction_common): Call
15441 targetm.mangle_decl_assembler_name.
15442
15443 * config/nvptx/nvptx.c (write_fn_proto): Handle
15444 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
15445
15446 2016-05-13 Martin Liska <mliska@suse.cz>
15447
15448 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
15449 and PRIu64 in printf format.
15450
15451 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15452
15453 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
15454 comment.
15455
15456 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15457
15458 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
15459 Change --param max-completely-peeled-times to
15460 --param max-completely-peel-times in dump file printing.
15461
15462 2016-05-13 Richard Biener <rguenther@suse.de>
15463
15464 PR tree-optimization/42587
15465 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
15466 (find_bswap_or_nop_1): Likewise.
15467 (bswap_replace): Likewise.
15468
15469 2016-05-13 Martin Liska <mliska@suse.cz>
15470
15471 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
15472 Initialize a variable with default value.
15473
15474 2016-05-13 Martin Liska <mliska@suse.cz>
15475
15476 * doc/invoke.texi: Enhance explanation of error recovery
15477 of sanitizers.
15478
15479 2016-05-13 Martin Liska <mliska@suse.cz>
15480
15481 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
15482 (struct cost_pair): Change inv_expr_id (int) to inv_expr
15483 (iv_inv_expr_ent *).
15484 (struct iv_inv_expr_ent): Comment struct fields.
15485 (sort_iv_inv_expr_ent): New function.
15486 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
15487 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
15488 a hash_map between iv_inv_expr_ent and number of usages.
15489 (niter_for_exit): Fix coding style.
15490 (tree_ssa_iv_optimize_init): Use renamed variable.
15491 (determine_base_object): Fix coding style.
15492 (alloc_iv): Likewise.
15493 (find_interesting_uses_outside): Likewise.
15494 (add_candidate_1): Likewise.
15495 (add_standard_iv_candidates): Likewise.
15496 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
15497 (prepare_decl_rtl): Fix coding style.
15498 (get_address_cost): Likewise.
15499 (get_shiftadd_cost): Likewise.
15500 (force_expr_to_var_cost): Likewise.
15501 (compare_aff_trees): Likewise.
15502 (get_expr_id): Restructure the function.
15503 (get_loop_invariant_expr_id): Renamed to
15504 get_loop_invariant_expr.
15505 (get_computation_cost_at): Replace usage of inv_expr_id with
15506 inv_expr.
15507 (get_computation_cost): Likewise.
15508 (determine_group_iv_cost_generic): Likewise.
15509 (determine_group_iv_cost_address): Likewise.
15510 (iv_period): Fix coding style.
15511 (iv_elimination_compare_lt): Likewise.
15512 (may_eliminate_iv): Likewise.
15513 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
15514 inv_expr.
15515 (determine_group_iv_costs): Dump invariant expressions.
15516 (iv_ca_recount_cost): Use the newly added hash_map.
15517 (iv_ca_set_remove_invariants): Fix coding style.
15518 (iv_ca_set_add_invariants): Fix coding style.
15519 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
15520 invariants.
15521 (iv_ca_set_cp): Likewise.
15522 (iv_ca_new): Initialize the newly added hash_map and remove
15523 initialization of fields.
15524 (iv_ca_free): Delete the hash_map.
15525 (iv_ca_dump): Dump invariant expressions.
15526 (iv_ca_extend): Fix coding style.
15527 (try_add_cand_for): Likewise.
15528 (create_new_ivs): Dump information about # of avg iterations and
15529 # of used invariant expressions.
15530 (rewrite_use_compare): Fix coding style.
15531 (free_loop_data): Set default value for max_inv_expr_id.
15532
15533 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
15534
15535 * cse.c (rest_of_handle_cse): Use cleanup_cfg
15536 returned value cse_cfg_altered computation.
15537 (rest_of_handle_cse2): Likewise.
15538 (rest_of_handle_cse_after_global_opts): Likewise.
15539
15540 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15541
15542 PR target/53440
15543 * config/arm/arm.c (arm32_output_mi_thunk): New.
15544 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
15545 to split Thumb1 vs TARGET_32BIT functionality.
15546 (arm_thumb1_mi_thunk): New.
15547
15548 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15549
15550 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
15551 to true.
15552
15553 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15554
15555 PR target/71080
15556 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
15557
15558 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
15559
15560 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
15561 (expand_builtin_trap): Emit a regular call.
15562 (set_builtin_user_assembler_name): Remove obsolete cases.
15563 * dse.c (scan_insn): Adjust.
15564 * except.c: Include calls.h.
15565 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
15566 emit a regular call to setjmp.
15567 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
15568 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
15569 (emit_block_move_via_libcall): Delete.
15570 (block_move_fn): Delete.
15571 (init_block_move_fn): Likewise.
15572 (emit_block_move_libcall_fn): Likewise.
15573 (emit_block_op_via_libcall): New function.
15574 (set_storage_via_libcall): Tidy up and use memset builtin.
15575 (block_clear_fn): Delete.
15576 (init_block_clear_fn): Likewise.
15577 (clear_storage_libcall_fn): Likewise.
15578 (expand_assignment): Call emit_block_move_via_libcall.
15579 Do not include gt-expr.h.
15580 * expr.h (emit_block_op_via_libcall): Declare.
15581 (emit_block_copy_via_libcall): New inline function.
15582 (emit_block_move_via_libcall): Likewise.
15583 (emit_block_comp_via_libcall): Likewise.
15584 (block_clear_fn): Delete.
15585 (init_block_move_fn): Likewise.
15586 (init_block_clear_fn): Likewise.
15587 (emit_block_move_via_libcall): Likewise.
15588 (set_storage_via_libcall): Add default parameter value.
15589 * libfuncs.h (enum libfunc_index): Remove obsolete values.
15590 (abort_libfunc): Delete.
15591 (memcpy_libfunc): Likewise.
15592 (memmove_libfunc): Likewise.
15593 (memcmp_libfunc): Likewise.
15594 (memset_libfunc): Likewise.
15595 (setbits_libfunc): Likewise.
15596 (setjmp_libfunc): Likewise.
15597 (longjmp_libfunc): Likewise.
15598 (profile_function_entry_libfunc): Likewise.
15599 (profile_function_exit_libfunc): Likewise.
15600 (gcov_flush_libfunc): Likewise.
15601 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
15602 and DECL_VISIBILITY on the declaration.
15603 (init_optabs): Do not initialize obsolete libfuncs.
15604 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
15605 * tree-core.h (ECF_RET1): Define.
15606 (ECF_TM_PURE): Adjust.
15607 (ECF_TM_BUILTIN): Likewise.
15608 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
15609 (build_common_builtin_nodes): Initialize abort builtin.
15610 Add ECF_RET1 on memcpy, memmove and memset builtins.
15611 Pass final flags for alloca and alloca_with_align builtins.
15612 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
15613 obsolete builtins.
15614 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
15615 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
15616 set_storage_via_libcall and call emit_block_copy_via_libcall.
15617
15618 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
15619
15620 * config/i386/i386.md (*call_got_x32): Change operand 0 to
15621 DImode before it is passed to ix86_output_call_operand.
15622 (*call_value_got_x32): Ditto for operand 1.
15623
15624 2016-05-12 Jiong Wang <jiong.wang@arm.com>
15625
15626 PR rtl-optimization/70904
15627 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
15628 reload for wide mode.
15629
15630 2016-05-12 Marek Polacek <polacek@redhat.com>
15631
15632 PR c/70756
15633 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
15634 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
15635 * langhooks.h (incomplete_type_error): Likewise.
15636 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
15637 parameter, pass it down to incomplete_type_error.
15638 * tree.h (size_in_bytes): New inline overload.
15639 (size_in_bytes_loc): Renamed from size_in_bytes.
15640
15641 2016-05-12 Richard Biener <rguenther@suse.de>
15642
15643 PR tree-optimization/71059
15644 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
15645 nary before looking up or entering the expression into the VN
15646 hashes.
15647 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
15648 Make sure to re-use NARYs without result as inserted by
15649 phi-translation.
15650
15651 2016-05-12 Richard Biener <rguenther@suse.de>
15652
15653 PR tree-optimization/71062
15654 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
15655 field.
15656 * tree-ssa-structalias.c (set_uids_in_ptset): Set
15657 vars_contains_restrict if the var is a restrict tag.
15658 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
15659 do not disambiguate pointers against it.
15660 (dump_points_to_solution): Re-structure and adjust for new
15661 vars_contains_restrict flag.
15662 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
15663
15664 2016-05-12 Martin Liska <mliska@suse.cz>
15665
15666 * doc/invoke.texi: Explain connection between
15667 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
15668
15669 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
15670
15671 PR tree-optimization/71006
15672 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
15673 consider COND_EXPR as a mask producer.
15674
15675 2016-05-12 Marek Polacek <polacek@redhat.com>
15676
15677 PR driver/71063
15678 * opts.c (common_handle_option): Detect missing argument for --help^.
15679
15680 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15681
15682 PR target/70830
15683 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
15684 when popping the PC and within an interrupt handler routine.
15685 Add missing tab to output of "ldmfd".
15686 (output_return_instruction): Output LDMFD with SP update rather
15687 than POP when returning from interrupt handler.
15688
15689 2016-05-12 Jakub Jelinek <jakub@redhat.com>
15690
15691 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
15692 TARGET_64BIT && TARGET_AVX512DQ.
15693 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
15694 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
15695 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
15696 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
15697 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
15698 (*vec_extractv4si_zext): Add avx512dq alternative.
15699 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
15700 use v instead of x constraint in other alternatives where possible.
15701
15702 * config/i386/sse.md (sse2_loadld): Use v instead of x
15703 constraint in alternatives 0,1,4.
15704
15705 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
15706 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
15707 v constraints instead of x and <pinsr_evex_isa> isa attribute.
15708
15709 PR target/71019
15710 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
15711 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
15712 is not emitted unless TARGET_AVX512BW.
15713 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
15714 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
15715 for the result operand.
15716
15717 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
15718 constraint instead of x in avx alternatives. Use maybe_evex instead
15719 of vex prefix.
15720
15721 * config/i386/constraints.md (Yv): New constraint.
15722 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
15723 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
15724 * config/i386/i386.md (avx512fvecmode): New mode attr.
15725 (*pushtf): Use v constraint instead of x.
15726 (*movtf_internal): Likewise. For TARGET_AVX512VL and
15727 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
15728 (*absneg<mode>2): Use Yv constraint instead of x constraint.
15729 (*absnegtf2_sse): Likewise.
15730 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
15731 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
15732 avx512f alternatives.
15733 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
15734
15735 2016-05-12 Richard Biener <rguenther@suse.de>
15736
15737 PR tree-optimization/71060
15738 * tree-data-ref.c (initialize_data_dependence_relation): Do not
15739 require exact match of DR_BASE_OBJECT but only matching address and
15740 type.
15741
15742 2016-05-12 Richard Biener <rguenther@suse.de>
15743
15744 PR tree-optimization/70986
15745 * cfganal.c: Include cfgloop.h.
15746 (dfs_find_deadend): Prefer to take edges exiting loops.
15747
15748 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15749
15750 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
15751 compile and run time.
15752
15753 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
15754
15755 PR c/43651
15756 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
15757
15758 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
15759
15760 * config/i386/i386.c (legitimize_pic_address): Use
15761 copy_to_suggested_reg instead of gen_movsi.
15762
15763 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
15764
15765 * config/rs6000/predicates.md (quad_memory_operand): Move most of
15766 the code into quad_address_p and call it to share code with
15767 vsx_quad_dform_memory_operand.
15768 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
15769 d-form support.
15770 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
15771 bit instead of being a separate word. Split -mpower9-dform into
15772 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
15773 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
15774 for the register class supporting 128-bit quad word memory offsets.
15775 (mode_supports_vsx_dform_quad): Helper function to return if the
15776 register class uses quad word memory offsets.
15777 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
15778 (rs6000_debug_reg_global): Always print if we are using LRA or not.
15779 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
15780 instructions are enabled, set up the appropriate addr_masks for
15781 128-bit types.
15782 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
15783 -mpower9-dform-scalar, instead of -mpower9-dform.
15784 (rs6000_option_override_internal): Split -mpower9-dform into two
15785 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
15786 -mpower9-dform switch sets or clears both. If we are not using
15787 the LRA register allocator, do not enable -mpower9-dform-vector by
15788 default. If we are using LRA, enable -mpower9-dform-vector and
15789 -mvsx-timode if it is appropriate. Issue a warning if either
15790 -mpower9-dform-vector or -mvsx-timode are explicitly used without
15791 enabling LRA.
15792 (quad_address_offset_p): New helper function to return if the
15793 offset is legal for quad word memory instructions.
15794 (quad_address_p): New function to determin if GPR or vector
15795 register quad word memory addresses are legal.
15796 (mem_operand_gpr): Validate quad word address offsets.
15797 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
15798 d-form (register + offset) instructions.
15799 (offsettable_ok_by_alignment): Likewise.
15800 (rs6000_legitimate_offset_address_p): Likewise.
15801 (legitimate_lo_sum_address_p): Likewise.
15802 (rs6000_legitimize_address): Likewise.
15803 (rs6000_legitimize_reload_address): Add more debug statements for
15804 -mdebug=addr.
15805 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
15806 d-form instructions.
15807 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
15808 d-form instructions. Distinguish different cases in debug
15809 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
15810 d-form instructions.
15811 (rs6000_preferred_reload_class): Likewise.
15812 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
15813 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
15814 of the ISA 2.06 indexed memory instructions.
15815 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
15816 use them to save/restore the saved vector registers instead of
15817 using Altivec instructions.
15818 (rs6000_emit_epilogue): Likewise.
15819 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
15820 (rs6000_opt_masks): Split -mpower9-dform into
15821 -mpower9-dform-scalar and -mpower9-dform-vector.
15822 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
15823 was not selected.
15824 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
15825 ISA 3.0 vector indexed memory instructions, and fold the code into
15826 the normal mov<mode> patterns.
15827 (p9_vecstore_<mode>): Likewise.
15828 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
15829 instructions.
15830 (vsx_movti_64bit): Likewise.
15831 (vsx_movti_32bit): Likewise.
15832 * config/rs6000/constraints.md (wO constraint): New constraint for
15833 ISA 3.0 vector d-form support.
15834 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
15835 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
15836 include -mpower9-dform-vector until we switch over to LRA.
15837 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
15838 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
15839 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
15840 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
15841 for -mpower9-dform and -mlra.
15842 * doc/md.texi (wO constraint): Document wO constraint.
15843
15844 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
15845
15846 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
15847 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
15848 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
15849 Move handling of non-insn arguments inline into the sole user:
15850 (output_trans_func): ...here.
15851 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
15852 in emitted function prototype.
15853 (output_internal_insn_latency_func): Ditto. Simplify.
15854 (output_internal_maximal_insn_latency_func): Ditto. Delete
15855 always-unused argument.
15856 (output_insn_latency_func): Ditto.
15857 (output_maximal_insn_latency_func): Ditto.
15858
15859 2016-05-11 Richard Biener <rguenther@suse.de>
15860
15861 PR tree-optimization/71055
15862 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
15863 sth with precision not equal to access size verify we don't chop
15864 off bits.
15865
15866 2016-05-11 Richard Biener <rguenther@suse.de>
15867
15868 PR debug/71057
15869 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
15870 (dwarf2out_finish): Move retry_incomplete_types call ...
15871 (dwarf2out_early_finish): ... here.
15872
15873 2016-05-11 Richard Biener <rguenther@suse.de>
15874
15875 PR middle-end/71002
15876 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
15877 if the langhook insists on it.
15878 * fold-const.c (make_bit_field_ref): Add arg for the original
15879 reference and preserve its alias-set.
15880 (decode_field_reference): Take exp by reference and adjust it
15881 to the original memory reference.
15882 (optimize_bit_field_compare): Adjust callers.
15883 (fold_truth_andor_1): Likewise.
15884 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
15885
15886 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
15887
15888 PR middle-end/70807
15889 * cfgrtl.h (delete_insn_and_edges): Now return bool.
15890 * cfgrtl.c (delete_insn_and_edges): Likewise.
15891 * config/i386/i386.c (convert_scalars_to_vector): Remove
15892 redundant code.
15893 * cse.c (cse_insn): Compute cse_cfg_altered.
15894 (delete_trivially_dead_insns): Likewise.
15895 (cse_cc_succs): Likewise.
15896 (rest_of_handle_cse): Free dominance info if required.
15897 (rest_of_handle_cse2): Likewise.
15898 (rest_of_handle_cse_after_global_opts): Likewise.
15899
15900 2016-05-11 Alan Modra <amodra@gmail.com>
15901
15902 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
15903 abi_v4_pass_in_fpr): New functions.
15904 (rs6000_function_arg_boundary): Exclude complex IBM long double
15905 from 64-bit alignment when ABI_V4.
15906 (rs6000_function_arg, rs6000_function_arg_advance_1,
15907 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
15908
15909 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
15910
15911 PR rtl-optimization/71028
15912 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
15913 jump with just a return in the fallthrough block if the branch
15914 block contains just a return as well.
15915
15916 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
15917
15918 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
15919 * match.pd ((X & Y) ^ Y): ... this.
15920 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
15921 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
15922
15923 2016-05-10 David Malcolm <dmalcolm@redhat.com>
15924
15925 * read-md.c (require_char_ws): New function.
15926 (read_string): Simplify using require_char_ws.
15927 (handle_constants): Likewise.
15928 (handle_enum): Likewise.
15929 (handle_file): Likewise.
15930 * read-md.h (require_char_ws): New declaration.
15931 * read-rtl.c (read_conditions): Simplify using require_char_ws.
15932 (read_mapping): Likewise.
15933 (read_rtx_code): Likewise.
15934 (read_nested_rtx): Likewise.
15935
15936 2016-05-10 James Norris <jnorris@codesourcery.com>
15937
15938 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
15939 if offloading is enabled and -fopenacc or -fopenmp is specified.
15940 (CRTOFFLOADEND): Likewise.
15941 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
15942 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
15943
15944 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
15945
15946 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
15947 gotoff_operand code paths. Use copy_to_suggested_regs and
15948 expand_simple_binop where appropriate. Cleanup.
15949
15950 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
15951
15952 PR target/70799
15953 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
15954 integer constants.
15955 (dimode_scalar_chain::vector_const_cost): New.
15956 (dimode_scalar_chain::compute_convert_gain): Handle constants.
15957 (dimode_scalar_chain::convert_op): Likewise.
15958 (dimode_scalar_chain::convert_insn): Likewise.
15959
15960 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
15961
15962 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
15963 unary operation, not a binary one.
15964
15965 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
15966
15967 PR middle-end/70877
15968 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
15969 calls with type casted fndecl.
15970
15971 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
15972
15973 PR tree-optimization/70786
15974 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
15975 * calls.c (initialize_argument_information): Bind bounds
15976 with corresponding args passed by reference.
15977
15978 2016-05-10 Jakub Jelinek <jakub@redhat.com>
15979
15980 PR target/70927
15981 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
15982 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
15983 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
15984 accordingly.
15985
15986 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15987
15988 PR target/70963
15989 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
15990 code for a zero scale factor.
15991 (vsx_xvcvdpuxds_scale): Likewise.
15992
15993 2016-05-10 David Malcolm <dmalcolm@redhat.com>
15994
15995 * diagnostic-show-locus.c (layout::layout): Call show_ruler
15996 if show_ruler_p was set on the context.
15997 (layout::show_ruler): New method.
15998 * diagnostic.h (struct diagnostic_context): Add field
15999 "show_ruler_p".
16000
16001 2016-05-10 Richard Biener <rguenther@suse.de>
16002
16003 PR tree-optimization/71039
16004 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
16005 (chk_uses): New function.
16006 (propagate_with_phi): Verify we can safely replicate the lhs of an
16007 aggregate assignment on all incoming edges.
16008
16009 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
16010
16011 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
16012 Forward declare.
16013 (rx_atomic_sequence): New class.
16014 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
16015 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
16016 non-inline.
16017 (rx_atomic_sequence::rx_atomic_sequence,
16018 rx_atomic_sequence::~rx_atomic_sequence): New functions.
16019 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
16020 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
16021 CTRLREG_INTB): New constants.
16022 (FETCHOP): New code iterator.
16023 (fethcop_name, fetchop_name2): New iterator code attributes.
16024 (QIHI): New mode iterator.
16025 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
16026 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
16027 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
16028
16029 2016-05-10 Martin Liska <mliska@suse.cz>
16030
16031 * tree-inline.c (remap_dependence_clique): Do not remap
16032 debugging statements.
16033
16034 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16035
16036 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
16037 ("*fixuns_truncdfdi2_z13")
16038 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
16039 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
16040 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
16041
16042 2016-05-10 Richard Biener <rguenther@suse.de>
16043
16044 PR tree-optimization/70497
16045 PR tree-optimization/28367
16046 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
16047 split out from ...
16048 (visit_reference_op_load): ... here.
16049 (vn_reference_lookup_3): Use it to handle subreg-like accesses
16050 with simplified BIT_FIELD_REFs.
16051 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
16052 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
16053 correctly.
16054
16055 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
16056
16057 * dwarf2out.c (add_abstract_origin_attribute): Adjust
16058 documentation comment. For BLOCK nodes, add a
16059 DW_AT_abstract_origin attribute that points to the DIE generated
16060 for the origin BLOCK.
16061 (gen_lexical_block_die): Call add_abstract_origin_attribute for
16062 blocks from inlined functions.
16063
16064 2016-05-10 Alan Modra <amodra@gmail.com>
16065
16066 PR target/70947
16067 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
16068 regrename modifying insns saving lr before __morestack call.
16069 * config/rs6000/rs6000.md (split_stack_return): Similarly for
16070 insns restoring lr after __morestack call.
16071
16072 2016-05-09 Jakub Jelinek <jakub@redhat.com>
16073
16074 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
16075 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
16076 expanders.
16077 * config/i386/sse.md (vec_interleave_high<mode>,
16078 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
16079 <avx512>_vpermt2var<mode>3_maskz): Likewise.
16080
16081 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
16082
16083 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
16084 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
16085 parallel reassociation for power8 and forward.
16086
16087 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
16088
16089 * config/i386/i386.md (absneg splitters with general regs): Use
16090 general_reg_operand predicate.
16091 (btsq peephole2): Use x86_64_immediate_operand to check if new
16092 value is suitable for immediate operand. Generate emitted insn
16093 using RTL expressions.
16094 (btcq peephole2): Ditto.
16095 (btrq peephole2): Ditto. Generate correct immediate operand
16096 for AND masking.
16097
16098 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
16099
16100 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
16101 bitpos.
16102
16103 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
16104
16105 * tree-affine.c (wide_int_constant_multiple_p): Add missing
16106 pointer dereference.
16107
16108 2016-05-09 Richard Biener <rguenther@suse.de>
16109
16110 PR tree-optimization/70985
16111 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
16112 op0 isn't a gimple register.
16113
16114 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
16115
16116 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
16117 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
16118 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
16119 (i6400_fpu_mult): New cpu units.
16120 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
16121 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
16122 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
16123 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
16124 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
16125 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
16126 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
16127 (i6400_msa_long_float4, i6400_msa_long_float5)
16128 (i6400_msa_long_float8, i6400_msa_fdiv_df)
16129 (i6400_msa_fdiv_sf): New reservations.
16130 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
16131 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
16132 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
16133 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
16134 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
16135 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
16136 (msa_short_cmp, msa_short_float2, msa_short_logic3)
16137 (msa_short_store4, msa_long_load, msa_short_store)
16138 (msa_long_logic, msa_long_float2, msa_long_float4)
16139 (msa_long_float5, msa_long_float8, msa_long_mult)
16140 (msa_long_fdiv, msa_long_div): New reservations.
16141
16142 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
16143 Sameera Deshpande <sameera.deshpande@imgtec.com>
16144 Matthew Fortune <matthew.fortune@imgtec.com>
16145 Graham Stott <graham.stott@imgtec.com>
16146 Chao-ying Fu <chao-ying.fu@imgtec.com>
16147
16148 * config.gcc: Add MSA header file for mips*-*-* target.
16149 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
16150 (Ubv8i, Urv8): New constraints.
16151 * config/mips/mips-ftypes.def: Add function types for MSA
16152 builtins.
16153 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
16154 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
16155 * config/mips/mips-msa.md: New file.
16156 * config/mips/mips-protos.h
16157 (mips_split_128bit_const_insns): New prototype.
16158 (mips_msa_idiv_insns): Likewise.
16159 (mips_split_128bit_move): Likewise.
16160 (mips_split_128bit_move_p): Likewise.
16161 (mips_split_msa_copy_d): Likewise.
16162 (mips_split_msa_insert_d): Likewise.
16163 (mips_split_msa_fill_d): Likewise.
16164 (mips_expand_msa_branch): Likewise.
16165 (mips_const_vector_same_val_p): Likewise.
16166 (mips_const_vector_same_bytes_p): Likewise.
16167 (mips_const_vector_same_int_p): Likewise.
16168 (mips_const_vector_shuffle_set_p): Likewise.
16169 (mips_const_vector_bitimm_set_p): Likewise.
16170 (mips_const_vector_bitimm_clr_p): Likewise.
16171 (mips_msa_vec_parallel_const_half): Likewise.
16172 (mips_msa_output_division): Likewise.
16173 (mips_ldst_scaled_shift): Likewise.
16174 (mips_expand_vec_cond_expr): Likewise.
16175 * config/mips/mips.c (enum mips_builtin_type): Add
16176 MIPS_BUILTIN_MSA_TEST_BRANCH.
16177 (mips_gen_const_int_vector_shuffle): New prototype.
16178 (mips_const_vector_bitimm_set_p): New function.
16179 (mips_const_vector_bitimm_clr_p): Likewise.
16180 (mips_const_vector_same_val_p): Likewise.
16181 (mips_const_vector_same_bytes_p): Likewise.
16182 (mips_const_vector_same_int_p): Likewise.
16183 (mips_const_vector_shuffle_set_p): Likewise.
16184 (mips_symbol_insns): Forbid loading symbols via immediate for
16185 MSA.
16186 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
16187 stores.
16188 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
16189 MSA.
16190 (mips_lx_address_p): Add support load indexed address for MSA.
16191 (mips_address_insns): Add calculation of instructions needed for
16192 stores and loads for MSA.
16193 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
16194 CONST_VECTOR for MSA and let it fall through.
16195 (mips_ldst_scaled_shift): New function.
16196 (mips_subword_at_byte): Likewise.
16197 (mips_msa_idiv_insns): Likewise.
16198 (mips_legitimize_move): Validate MSA moves.
16199 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
16200 calculation of costs for MSA division.
16201 (mips_split_move_p): Check if MSA moves need splitting.
16202 (mips_split_move): Split MSA moves if necessary.
16203 (mips_split_128bit_move_p): New function.
16204 (mips_split_128bit_move): Likewise.
16205 (mips_split_msa_copy_d): Likewise.
16206 (mips_split_msa_insert_d): Likewise.
16207 (mips_split_msa_fill_d): Likewise.
16208 (mips_output_move): Handle MSA moves.
16209 (mips_expand_msa_branch): New function.
16210 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
16211 Reinstate 'y' modifier.
16212 (mips_file_start): Add MSA .gnu_attribute.
16213 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
16214 FPRs.
16215 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
16216 (mips_class_max_nregs): Add register size for MSA supported mode.
16217 (mips_cannot_change_mode_class): Allow conversion between MSA
16218 vector modes and TImode.
16219 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
16220 instruction.
16221 (mips_secondary_reload_class): Force MSA loads/stores via memory.
16222 (mips_preferred_simd_mode): Add preffered modes for MSA.
16223 (mips_vector_mode_supported_p): Add MSA supported modes.
16224 (mips_autovectorize_vector_sizes): New function.
16225 (mips_msa_output_division): Likewise.
16226 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
16227 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
16228 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
16229 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
16230 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
16231 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
16232 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
16233 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
16234 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
16235 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
16236 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
16237 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
16238 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
16239 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
16240 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
16241 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
16242 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
16243 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
16244 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
16245 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
16246 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
16247 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
16248 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
16249 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
16250 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
16251 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
16252 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
16253 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
16254 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
16255 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
16256 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
16257 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
16258 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
16259 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
16260 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
16261 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
16262 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
16263 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
16264 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
16265 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
16266 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
16267 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
16268 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
16269 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
16270 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
16271 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
16272 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
16273 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
16274 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
16275 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
16276 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
16277 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
16278 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
16279 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
16280 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
16281 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
16282 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
16283 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
16284 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
16285 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
16286 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
16287 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
16288 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
16289 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
16290 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
16291 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
16292 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
16293 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
16294 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
16295 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
16296 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
16297 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
16298 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
16299 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
16300 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
16301 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
16302 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
16303 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
16304 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
16305 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
16306 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
16307 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
16308 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
16309 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
16310 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
16311 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
16312 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
16313 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
16314 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
16315 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
16316 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
16317 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
16318 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
16319 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
16320 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
16321 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
16322 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
16323 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
16324 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
16325 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
16326 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
16327 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
16328 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
16329 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
16330 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
16331 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
16332 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
16333 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
16334 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
16335 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
16336 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
16337 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
16338 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
16339 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
16340 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
16341 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
16342 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
16343 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
16344 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
16345 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
16346 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
16347 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
16348 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
16349 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
16350 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
16351 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
16352 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
16353 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
16354 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
16355 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
16356 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
16357 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
16358 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
16359 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
16360 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
16361 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
16362 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
16363 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
16364 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
16365 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
16366 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
16367 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
16368 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
16369 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
16370 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
16371 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
16372 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
16373 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
16374 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
16375 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
16376 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
16377 move_v builtins.
16378 (mips_get_builtin_decl_index): New array.
16379 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
16380 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
16381 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
16382 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
16383 (mips_init_builtins): Initialize mips_get_builtin_decl_index
16384 array.
16385 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
16386 hook.
16387 (mips_expand_builtin_insn): Prepare operands for
16388 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
16389 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
16390 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
16391 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
16392 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
16393 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
16394 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
16395 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
16396 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
16397 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
16398 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
16399 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
16400 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
16401 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
16402 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
16403 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
16404 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
16405 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
16406 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
16407 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
16408 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
16409 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
16410 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
16411 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
16412 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
16413 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
16414 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
16415 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
16416 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
16417 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
16418 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
16419 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
16420 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
16421 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
16422 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
16423 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
16424 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
16425 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
16426 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
16427 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
16428 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
16429 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
16430 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
16431 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
16432 These are set implicitly and an error is reported if overridden.
16433 (mips_expand_builtin_msa_test_branch): New function.
16434 (mips_expand_msa_shuffle): Likewise.
16435 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
16436 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
16437 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
16438 (mips_expand_vec_unpack): Add support for MSA.
16439 (mips_expand_vector_init): Likewise.
16440 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
16441 instead of const0_rtx.
16442 (mips_msa_vec_parallel_const_half): New function.
16443 (mips_gen_const_int_vector): Likewise.
16444 (mips_gen_const_int_vector_shuffle): Likewise.
16445 (mips_expand_msa_cmp): Likewise.
16446 (mips_expand_vec_cond_expr): Likewise.
16447 * config/mips/mips.h
16448 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
16449 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
16450 specified.
16451 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
16452 (ISA_HAS_MSA): New macro.
16453 (UNITS_PER_MSA_REG): Likewise.
16454 (BITS_PER_MSA_REG): Likewise.
16455 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
16456 (MSA_REG_FIRST): New macro.
16457 (MSA_REG_LAST): Likewise.
16458 (MSA_REG_NUM): Likewise.
16459 (MSA_REG_P): Likewise.
16460 (MSA_REG_RTX_P): Likewise.
16461 (MSA_SUPPORTED_MODE_P): Likewise.
16462 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
16463 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
16464 * config/mips/mips.md: Include mips-msa.md.
16465 (alu_type): Add simd_add.
16466 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
16467 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
16468 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
16469 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
16470 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
16471 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
16472 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
16473 simd_move, simd_load, simd_store. Choose "multi" for moves
16474 for "qword_mode".
16475 (qword_mode): New attribute.
16476 (insn_count): Add instruction count for quad moves.
16477 Increase the count for MIPS SIMD division.
16478 (UNITMODE): Add UNITMODEs for vector types.
16479 (addsub): New code iterator.
16480 * config/mips/mips.opt (mmsa): New option.
16481 * config/mips/msa.h: New file.
16482 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
16483 specified.
16484 * config/mips/mti-linux.h: Likewise.
16485 * config/mips/predicates.md
16486 (const_msa_branch_operand): New constraint.
16487 (const_uimm3_operand): Likewise.
16488 (const_uimm4_operand): Likewise.
16489 (const_uimm5_operand): Likewise.
16490 (const_uimm8_operand): Likewise.
16491 (const_imm5_operand): Likewise.
16492 (aq10b_operand): Likewise.
16493 (aq10h_operand): Likewise.
16494 (aq10w_operand): Likewise.
16495 (aq10d_operand): Likewise.
16496 (const_m1_operand): Likewise.
16497 (reg_or_m1_operand): Likewise.
16498 (const_exp_2_operand): Likewise.
16499 (const_exp_4_operand): Likewise.
16500 (const_exp_8_operand): Likewise.
16501 (const_exp_16_operand): Likewise.
16502 (const_vector_same_val_operand): Likewise.
16503 (const_vector_same_simm5_operand): Likewise.
16504 (const_vector_same_uimm5_operand): Likewise.
16505 (const_vector_same_uimm6_operand): Likewise.
16506 (const_vector_same_uimm8_operand): Likewise.
16507 (par_const_vector_shf_set_operand): Likewise.
16508 (reg_or_vector_same_val_operand): Likewise.
16509 (reg_or_vector_same_simm5_operand): Likewise.
16510 (reg_or_vector_same_uimm6_operand): Likewise.
16511 * doc/extend.texi (MIPS SIMD Architecture Functions): New
16512 section.
16513 * doc/invoke.texi (-mmsa): Document new option.
16514
16515 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16516
16517 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
16518 * configure: Regenerate.
16519 * config.in: Regenerate.
16520 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
16521 on -fvtable-verify.
16522 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
16523 (ENDFILE_VTV_SPEC): Define.
16524
16525 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
16526
16527 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
16528 registers in all interrupt handlers if necessary.
16529 (rl78_option_override): Add warning.
16530 (MUST_SAVE_MDUC_REGISTERS): New macro.
16531 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
16532 * config/rl78/rl78.c (check_mduc_usage): New function.
16533 (mduc_regs): New structure to hold MDUC register data.
16534 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
16535 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
16536 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
16537 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
16538 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
16539 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
16540
16541 2016-05-09 Bin Cheng <bin.cheng@arm.com>
16542
16543 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
16544 (tree-ssa-loop-niter.h): Ditto.
16545 (idx_within_array_bound, ref_within_array_bound): New functions.
16546 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
16547 Factor out check on writable base object to ...
16548 (base_object_writable): ... here.
16549
16550 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16551
16552 * config/arm/arm.md (probe_stack): Add modes to set source
16553 and destination.
16554
16555 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
16556
16557 * regrename.c (base_reg_class_for_rename): New static function.
16558 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
16559
16560 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
16561
16562 * cgraph.c (thunk_adjust): Export.
16563 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
16564 * cgraphunit.c (thunk_adjust): Export.
16565 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
16566 thunks.
16567 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
16568 inlinable.
16569 * tree-inline.c (expand_call_inline): Expand thunks inline.
16570
16571 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
16572
16573 PR target/70998
16574 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
16575 (*sse2_vd_cvtss2sd): Ditto.
16576 * config/i386/i386.md
16577 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
16578 Generate *sse2_vd_cvtsd2ss pattern.
16579 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
16580 Generate *sse2_vd_cvtss2sd pattern.
16581
16582 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
16583
16584 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
16585 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
16586 users.
16587
16588 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
16589
16590 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
16591 * config/sh/sh.c: Define and declare variables on first use throughout
16592 the file.
16593 (current_function_interrupt): Change to bool type.
16594 (frame_insn): Rename to emit_frame_insn and update users.
16595 (push_regs): Use bool for 'interrupt_handler' argument.
16596 (save_schedule_s): Remove.
16597 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
16598 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
16599 targetm.asm_out.unaligned_op.di.
16600 (gen_far_branch): Remove redundant forward declaration.
16601 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
16602 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
16603 (sh_set_return_address, sh_function_ok_for_sibcall,
16604 scavenge_reg): Update comments.
16605 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
16606 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
16607 (sh_attr_renesas_p): Remove unnecessary parentheses.
16608 (branch_dest): Simplify.
16609 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
16610 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
16611 (CUMULATIVE_ARGS): Change macro to typedef.
16612 (current_function_interrupt): Change to bool type.
16613 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
16614 Surround with __cplusplus ifdef.
16615 (sh_compare_op0, sh_compare_op1): Remove.
16616 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
16617
16618 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
16619
16620 * config/arm/arm.md: (arch): Add neon.
16621 (arch_enabled): Return yes for arch neon when TARGET_NEON.
16622 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
16623 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
16624 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
16625 attributes for alt renumbering. Mark alt 3 as non-predicable.
16626 (thumb2_movdf_vfp): Likewise.
16627
16628 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
16629
16630 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
16631 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
16632 (*andqi_1): Add preferred_for_speed attribute to disparage
16633 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
16634 (*<code>qi_1): Ditto.
16635 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
16636 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
16637 (*ashlqi3_1): Ditto.
16638 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
16639 Add preferred_for_size attribute to disparage alternative 0 and
16640 preferred_for_speed attribute to disparage alternative 1 for
16641 TARGET_PARTIAL_REG_STALL targets.
16642
16643 2016-05-07 Tom de Vries <tom@codesourcery.com>
16644
16645 PR tree-optimization/70956
16646 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
16647 def.
16648
16649 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
16650
16651 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
16652 * config/sh/sh.c (sh_cbranch_distance): Implement it.
16653 * config/sh/sh.md (branch_zero): Remove define_attr.
16654 (define_delay): Disable delay slot if branch distance is one insn.
16655
16656 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
16657
16658 * config/i386/i386.md (LEAMODE): New mode attribute.
16659 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
16660 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
16661 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
16662 operand 2 predicate.
16663 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
16664 (*lea<mode>_general_3): Ditto.
16665 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
16666
16667 2016-05-06 Jakub Jelinek <jakub@redhat.com>
16668
16669 * genmddump.c (main): Convert argv from char ** to const char **.
16670
16671 2016-05-06 David Malcolm <dmalcolm@redhat.com>
16672
16673 * coretypes.h (OVERRIDE): New macro.
16674 (FINAL): New macro.
16675
16676 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
16677
16678 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
16679 allow coalescing if the types are compatible.
16680
16681 2016-05-06 David Malcolm <dmalcolm@redhat.com>
16682
16683 * pass_manager.h (pass_manager::register_pass_name): New method.
16684 (pass_manager::get_pass_by_name): New method.
16685 (pass_manager::create_pass_tab): New method.
16686 (pass_manager::m_name_to_pass_map): New field.
16687 * passes.c (name_to_pass_map): Delete global in favor of field
16688 "m_name_to_pass_map" of pass_manager.
16689 (register_pass_name): Rename from a function to...
16690 (pass_manager::register_pass_name): ...this method, updating
16691 for renaming of global "name_to_pass_map" to field
16692 "m_name_to_pass_map".
16693 (create_pass_tab): Rename from a function to...
16694 (pass_manager::create_pass_tab): ...this method, updating
16695 for renaming of global "name_to_pass_map" to field.
16696 (get_pass_by_name): Rename from a function to...
16697 (pass_manager::get_pass_by_name): ...this method.
16698 (enable_disable_pass): Convert use of get_pass_by_name to
16699 a method call, locating the pass_manager singleton.
16700
16701 2016-05-06 David Malcolm <dmalcolm@redhat.com>
16702
16703 * genattr-common.c (main): Convert argv from char ** to const char **.
16704 * genattr.c (main): Likewise.
16705 * genattrtab.c (main): Likewise.
16706 * genautomata.c (initiate_automaton_gen): Likewise.
16707 (main): Likewise.
16708 * gencodes.c (main): Likewise.
16709 * genconditions.c (main): Likewise.
16710 * genconfig.c (main): Likewise.
16711 * genconstants.c (main): Likewise.
16712 * genemit.c (main): Likewise.
16713 * genenums.c (main): Likewise.
16714 * genextract.c (main): Likewise.
16715 * genflags.c (main): Likewise.
16716 * genmddeps.c (main): Likewise.
16717 * genopinit.c (main): Likewise.
16718 * genoutput.c (main): Likewise.
16719 * genpeep.c (main): Likewise.
16720 * genpreds.c (main): Likewise.
16721 * genrecog.c (main): Likewise.
16722 * gensupport.c (init_rtx_reader_args_cb): Likewise.
16723 (init_rtx_reader_args): Likewise.
16724 * gensupport.h (init_rtx_reader_args_cb): Likewise.
16725 (init_rtx_reader_args): Likewise.
16726 * gentarget-def.c (main): Likewise.
16727 * read-md.c (read_md_files): Likewise.
16728 * read-md.h (read_md_files): Likewise.
16729
16730 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
16731
16732 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
16733 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
16734 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
16735 Remove unused predicate.
16736 (register_and_not_fp_reg_operand): Ditto.
16737
16738 2016-05-06 Martin Liska <mliska@suse.cz>
16739
16740 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
16741 instead of vec as the vector is local to the function.
16742
16743 2016-05-06 Jakub Jelinek <jakub@redhat.com>
16744
16745 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
16746 avx512bw alternative.
16747
16748 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
16749 before the ashr<mode>3 pattern.
16750
16751 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
16752 v instead of x in vex or maybe_vex alternatives, use
16753 maybe_evex instead of vex in prefix.
16754
16755 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
16756 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
16757 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
16758 in vex or maybe_vex alternatives, use maybe_evex instead of vex
16759 in prefix.
16760
16761 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
16762 v instead of x in vex or maybe_vex alternatives, use
16763 maybe_evex instead of vex in prefix.
16764
16765 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
16766 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
16767 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
16768 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
16769 alternatives, use maybe_evex instead of vex in prefix.
16770
16771 * config/i386/sse.md (vec_interleave_lowv4sf,
16772 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
16773 v instead of x in vex or maybe_vex alternatives, use
16774 maybe_evex instead of vex in prefix.
16775
16776 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
16777 v instead of x in vex or maybe_vex alternatives, use
16778 maybe_evex instead of vex in prefix.
16779
16780 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
16781 v constraint instead of x.
16782
16783 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
16784
16785 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
16786 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
16787 equality first.
16788
16789 2016-05-06 Richard Biener <rguenther@suse.de>
16790
16791 PR tree-optimization/70948
16792 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
16793 Properly clobber all fields of va_list for __builtin_va_start.
16794
16795 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
16796
16797 PR debug/70935
16798 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
16799 loop latch destination.
16800
16801 2016-05-06 Martin Liska <mliska@suse.cz>
16802
16803 * tree-ssa-uninit.c: Apply manual changes
16804 to the GNU coding style.
16805 (prune_uninit_phi_opnds): Rename from
16806 prune_uninit_phi_opnds_in_unrealizable_paths.
16807
16808 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16809
16810 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
16811 mspace): Remove deprecated options.
16812 * doc/invoke.texi (SH options): Remove -mspace.
16813
16814 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16815
16816 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
16817
16818 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16819
16820 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
16821 corresponding combine split pattern.
16822
16823 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16824
16825 PR target/58219
16826 * config/sh/predicates.md (long_displacement_mem_operand): New.
16827 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
16828 Add movi20, movi20s alternatives. Adjust length attribute for
16829 alternatives.
16830 (movsi_ie): Allow for any FPU. Adjust length attribute for
16831 alternatives.
16832 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
16833 attribute for alternatives.
16834 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
16835 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
16836 length attribute for alternatives.
16837
16838 2016-05-06 Richard Biener <rguenther@suse.de>
16839
16840 PR tree-optimization/70960
16841 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
16842
16843 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16844
16845 PR target/52933
16846 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
16847 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
16848
16849 2016-05-06 Marek Polacek <polacek@redhat.com>
16850
16851 PR sanitizer/70875
16852 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
16853
16854 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16855
16856 PR target/54089
16857 * config/sh/sh.md (*rotcr): Add another variant.
16858
16859 2016-05-06 Richard Biener <rguenther@suse.de>
16860
16861 PR middle-end/70931
16862 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
16863
16864 2016-05-06 Richard Biener <rguenther@suse.de>
16865
16866 PR middle-end/70941
16867 * fold-const.c (split_tree): Always convert to the original type
16868 before negating.
16869
16870 2016-05-06 Richard Biener <rguenther@suse.de>
16871
16872 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
16873 (fwprop_addr): Likewise.
16874
16875 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
16876
16877 PR target/70873
16878 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
16879 New prototype.
16880 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
16881 * config/i386/i386.md (push mem splitter): Use find_constant_src in
16882 the splitter condition.
16883 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
16884 the splitter condition.
16885 (FP float_extend load splitter): Ditto.
16886
16887 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
16888
16889 * config/i386/i386.md (peehole2 patterns): Change true_regnum
16890 to REGNO in all peephole2 patterns.
16891 (post-reload splitters): Change true_regnum to REGNO in
16892 post-reload splitters.
16893 (zero_extend splitters): Use general_reg_operand and
16894 nonimmediate_gr_operand predicates.
16895
16896 2016-05-05 Jakub Jelinek <jakub@redhat.com>
16897
16898 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
16899 v constraint instead of x.
16900
16901 2016-05-05 Alan Modra <amodra@gmail.com>
16902
16903 PR target/68662
16904 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
16905 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
16906 TARGET_NO_FP_IN_TOC for -mrelocatable.
16907 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
16908 TARGET_RELOCATABLE test.
16909 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
16910 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16911 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
16912 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
16913 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16914 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
16915 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
16916 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16917 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
16918 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
16919 Likewise.
16920 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
16921 (rs6000_stack_info): Likewise.
16922 (rs6000_elf_asm_out_constructor): Likewise.
16923 (rs6000_elf_asm_out_destructor): Likewise.
16924 (rs6000_elf_declare_function_name): Likewise.
16925 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
16926 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
16927 Don't define.
16928
16929 2016-05-05 Alan Modra <amodra@gmail.com>
16930
16931 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
16932
16933 2016-05-05 Alan Modra <amodra@gmail.com>
16934
16935 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
16936 out-of-line gpr restore for one or two regs if that would add
16937 a save of lr.
16938
16939 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
16940
16941 PR target/70873
16942 * config/i386/i386.md
16943 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
16944 Change to post-epilogue_completed late splitter. Use sse_reg_operand
16945 as operand 0 predicate.
16946 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
16947 Ditto.
16948 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
16949 Ditto. Emit the pattern using RTX.
16950
16951 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
16952 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
16953 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
16954 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
16955 Ditto.
16956 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
16957 sse_reg_operand as operand 0 predicate.
16958
16959 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
16960 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
16961 instead of gen_rtx_REG.
16962 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
16963 Ditto.
16964
16965 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16966
16967 * function.c (emit_use_return_register_into_block): Delete.
16968 (gen_return_pattern): Delete.
16969 (emit_return_into_block): Delete.
16970 (active_insn_between): Delete.
16971 (convert_jumps_to_returns): Delete.
16972 (emit_return_for_exit): Delete.
16973 (thread_prologue_and_epilogue_insns): Delete all code dealing with
16974 simple_return for shrink-wrapped blocks.
16975 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
16976 end of blocks that need one.
16977 (get_unconverted_simple_return): Delete.
16978 (convert_to_simple_return): Delete.
16979 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
16980 (convert_to_simple_return): Ditto.
16981
16982 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16983
16984 * cfgcleanup.c (bb_is_just_return): New function.
16985 (try_optimize_cfg): Simplify jumps to return, branches to return,
16986 and branches around return.
16987
16988 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16989
16990 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
16991 branch to a return.
16992
16993 2016-05-04 Jakub Jelinek <jakub@redhat.com>
16994
16995 PR c++/70906
16996 PR c++/70933
16997 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
16998 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
16999 assert flags & OEP_HASH_CHECK, instead of asserting it
17000 never happens. Handle TARGET_EXPR.
17001 * fold-const.c (operand_equal_p): For hash verification,
17002 or in OEP_HASH_CHECK into flags.
17003
17004 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
17005
17006 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
17007 comment.
17008 (compute_samebase_partition_bases): Fix typo.
17009
17010 2016-05-04 Jakub Jelinek <jakub@redhat.com>
17011
17012 * config/i386/sse.md (vec_interleave_highv8sf,
17013 vec_interleave_lowv8sf, vec_interleave_highv4df,
17014 vec_interleave_lowv4df): Remove constraints from expanders.
17015
17016 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
17017
17018 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
17019
17020 * tree-inline.c (expand_call_inline): Fix path dealing with
17021 making lhs of call statement undefined.
17022
17023 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
17024
17025 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
17026 Check availability on NODE, too.
17027 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
17028 (cgraph_node::call_for_symbol_and_aliases): Likewise.
17029 (varpool_node::call_for_symbol_and_aliase): Likewise.
17030 * ipa-pure-const.c (add_new_function): Analyze all bodies.
17031 (propagate_pure_const): Propagate across interposable functions, too.
17032 (skip_function_for_local_pure_const): Do not skip interposable bodies
17033 with aliases.
17034 (pass_local_pure_const::execute): Update.
17035
17036 2016-05-04 Marek Polacek <polacek@redhat.com>
17037
17038 * doc/invoke.texi: Document -Wdangling-else.
17039
17040 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
17041
17042 * config.gcc: Error out when conflicting multilib is detected. Do not
17043 loop over multilibs since no combination is legal.
17044
17045 2016-05-04 Alan Modra <amodra@gmail.com>
17046
17047 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
17048 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
17049 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
17050 Align .toc.
17051
17052 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
17053
17054 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
17055 Clean up p5600 comments.
17056
17057 2016-05-04 Richard Biener <rguenther@suse.de>
17058
17059 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
17060 constructor simplifications.
17061 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
17062
17063 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
17064
17065 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
17066 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
17067 result.set_rtx is null instead of aborting.
17068 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
17069 Always enable.
17070 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
17071 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
17072 *mov<mode>_store_postinc): New patterns.
17073
17074 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
17075
17076 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
17077 as commutative. Check both conversions are NOP.
17078 ((A & B) OP (C & B)): Remove.
17079
17080 2016-05-04 Alan Modra <amodra@gmail.com>
17081
17082 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
17083
17084 2016-05-04 Alan Modra <amodra@gmail.com>
17085
17086 PR target/70866
17087 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
17088 when cr2,3,4 are all fixed regs.
17089
17090 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
17091
17092 PR rtl-optimization/57193
17093 * opts.c (default_options_table): Revert OPT_frename_registers change.
17094 * doc/invoke.texi (-frename-registers, -O2): Likewise.
17095
17096 2016-05-03 Martin Sebor <msebor@redhat.com>
17097
17098 PR c++/66561
17099 * builtins.c (fold_builtin_FILE): New function.
17100 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
17101 (fold_builtin_0): Call them.
17102 * gimplify.c (gimplify_call_expr): Remove the handling of
17103 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
17104
17105 PR c++/66561
17106 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
17107 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
17108 constants.
17109
17110 PR c++/66639
17111 * doc/extend.texi (Function Names as Strings): Update __func__,
17112 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
17113 constants.
17114
17115 2016-05-03 Jakub Jelinek <jakub@redhat.com>
17116 Richard Biener <rguenther@suse.de>
17117
17118 PR tree-optimization/70916
17119 * tree-if-conv.c: Include cfganal.h.
17120 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
17121 and remove_fake_exit_edges around the optimization pass.
17122
17123 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
17124
17125 * cgraph.c (symbol_table::create_edge): Set inline_failed.
17126 (cgraph_edge::make_direct): Likewise.
17127 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
17128 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
17129 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
17130 (CIF_THUNK): New code.
17131 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
17132 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
17133 (compute_inline_parameters): Set inline_failed for thunks.
17134 (inline_analyze_function): Cleanup.
17135 * ipa-inline.c (can_inline_edge_p): Do not deal with
17136 call_stmt_cannot_inline_p.
17137 (can_early_inline_edge_p): Likewise.
17138 (early_inliner): Initialize inline_failed.
17139 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
17140
17141 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
17142
17143 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
17144 from nonimm_ssenomem_operand.
17145 (nonimm_ssenomem_operand): New predicate.
17146 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
17147 as operand 0 predicate.
17148 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
17149 Disable unsupported alternatives using "enabled" attribute.
17150 Use register_ssemem_operand as operand 0 predicate.
17151 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
17152
17153 2016-05-03 Marek Polacek <polacek@redhat.com>
17154
17155 PR c/70859
17156 * input.c (expansion_point_location): New function.
17157 * input.h (expansion_point_location): Declare.
17158
17159 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
17160
17161 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
17162 occurence with frame_offset_ ones.
17163
17164 2016-05-03 Alan Modra <amodra@gmail.com>
17165
17166 PR rtl-optimization/70890
17167 * ira.c (combine_and_move_insns): When moving def_insn, remove
17168 equivs on use_insn.
17169
17170 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
17171
17172 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
17173 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
17174 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
17175 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
17176
17177 2016-05-03 Alan Modra <amodra@gmail.com>
17178
17179 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
17180 for SAVE_MULTIPLE/STORE_MULTIPLE.
17181
17182 2016-05-03 Jakub Jelinek <jakub@redhat.com>
17183
17184 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
17185 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
17186
17187 2016-05-03 Richard Biener <rguenther@suse.de>
17188
17189 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
17190 default true.
17191 (gimplify_arg): Likewise.
17192 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
17193 re-writing the result to a decl if required.
17194 (internal_get_tmp_var): Add allow_ssa parameter
17195 and override into_ssa with it.
17196 (get_formal_tmp_var): Adjust.
17197 (get_initialized_tmp_var): Add allow_ssa parameter.
17198 (gimplify_arg): Add allow_ssa parameter and avoid generating
17199 SSA names for the result false.
17200 (gimplify_call_expr): If the call may return twice do not
17201 gimplify parameters into SSA.
17202 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
17203 (gimplify_modify_expr): Adjust assert. For noreturn calls
17204 with a SSA name LHS adjust its def.
17205 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
17206 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
17207 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
17208 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
17209 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
17210 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
17211 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
17212 (optimize_target_teams): Do not allow SSA names for clause operands.
17213 (gimplify_expr): Likewise for where we mark the result addressable.
17214 * passes.def (pass_init_datastructures): Remove.
17215 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
17216 (rewrite_stmt): Likewise.
17217 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
17218 (replace_locals_op): Replace SSA names.
17219 (copy_gimple_seq_and_replace_locals): Init src_cfun.
17220 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
17221 * cgraph.c (release_function_body): Free CFG annotations only
17222 when we have a CFG. Simplify.
17223 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
17224 force_gimple_operand instead of get_initialized_tmp_var.
17225 * tree-pass.h (make_pass_init_datastructures): Remove.
17226 * tree-ssa.c (execute_init_datastructures): Remove.
17227 (pass_data_init_datastructures): Likewise.
17228 (class pass_init_datastructures): Likewise.
17229 (make_pass_init_datastructures): Likewise.
17230 * omp-low.c (create_omp_child_function): Init SSA data structures.
17231 (grid_expand_target_grid_body): Likewise.
17232 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
17233 name before adding it to names_to_release.
17234 (remove_bb): Always release SSA defs.
17235 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
17236 before dereferencing it.
17237 * cgraphunit.c (init_lowered_empty_function): Always
17238 int SSA data structures.
17239 * tree-ssanames.c (release_defs): Remove assert that we are in
17240 SSA form.
17241 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
17242
17243 2016-05-03 Jakub Jelinek <jakub@redhat.com>
17244 Uros Bizjak <ubizjak@gmail.com>
17245
17246 PR rtl-optimization/70467
17247 * config/i386/predicates.md (x86_64_hilo_int_operand,
17248 x86_64_hilo_general_operand): New predicates.
17249 * config/i386/constraints.md (Wd): New constraint.
17250 * config/i386/i386.md (mode attr di): Use Wd instead of e.
17251 (general_hilo_operand): New mode attr.
17252 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
17253 instead of <general_operand>.
17254 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
17255 x86_64_hilo_general_operand instead of <general_operand>.
17256
17257 2016-05-03 Jakub Jelinek <jakub@redhat.com>
17258
17259 PR tree-optimization/70916
17260 * tree-if-conv.c (constant_or_ssa_name): Removed.
17261 (fold_build_cond_expr): Use is_gimple_val instead of
17262 constant_or_ssa_name.
17263
17264 PR tree-optimization/70916
17265 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
17266 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
17267
17268 PR target/49244
17269 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
17270 (optimize_atomic_bit_test_and): New function.
17271 (pass_fold_builtins::execute): Use it.
17272 * optabs.def (atomic_bit_test_and_set_optab,
17273 atomic_bit_test_and_complement_optab,
17274 atomic_bit_test_and_reset_optab): New optabs.
17275 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
17276 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
17277 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
17278 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
17279 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
17280 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
17281 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
17282 * doc/md.texi (atomic_bit_test_and_set@var{mode},
17283 atomic_bit_test_and_complement@var{mode},
17284 atomic_bit_test_and_reset@var{mode}): Document.
17285 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
17286 atomic_bit_test_and_complement<mode>,
17287 atomic_bit_test_and_reset<mode>): New expanders.
17288 (atomic_bit_test_and_set<mode>_1,
17289 atomic_bit_test_and_complement<mode>_1,
17290 atomic_bit_test_and_reset<mode>_1): New insns.
17291
17292 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
17293
17294 PR rtl-optimization/70687
17295 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
17296 instead of unsigned HOST_WIDE_INT.
17297
17298 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
17299
17300 PR rtl-optimization/44281
17301 * hard-reg-set.h (struct target_hard_regs): New field
17302 x_fixed_nonglobal_reg_set.
17303 (fixed_nonglobal_reg_set): New macro.
17304 * reginfo.c (init_reg_sets_1): Initialize it.
17305 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
17306 of fixed_reg_set.
17307 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
17308
17309 2016-05-03 Bin Cheng <bin.cheng@arm.com>
17310
17311 PR tree-optimization/56541
17312 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
17313 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
17314 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
17315 (any_complicated_phi): new static variable.
17316 (aggressive_if_conv): delete.
17317 (if_convertible_phi_p): support phis with more than two arguments.
17318 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
17319 critical pred edges.
17320 (ifcvt_split_critical_edges): support phis with more than two
17321 arguments by checking new parameter. only split critical edges
17322 if needed.
17323 (tree_if_conversion): handle simd pragma marked loop using new
17324 local variable aggressive_if_conv. check any_complicated_phi.
17325
17326 2016-05-03 Bin Cheng <bin.cheng@arm.com>
17327
17328 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
17329 before using it.
17330
17331 2016-05-03 Bin Cheng <bin.cheng@arm.com>
17332
17333 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
17334 cbase.
17335
17336 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
17337
17338 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
17339 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
17340 define_insn_and_split.
17341 (mulsi3_i): New define_insn_and_split.
17342 (mulsi3_call): Convert to define_insn.
17343 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
17344 Remove constraints.
17345
17346 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
17347
17348 * machmode.h (mode_complex): Add support to give the complex mode
17349 for a given mode.
17350 (GET_MODE_COMPLEX_MODE): Likewise.
17351 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
17352 stored by build_complex_type and gfc_build_complex_type instead of
17353 trying to figure out the appropriate mode based on the size. Raise
17354 an assertion error, if the type was not set.
17355 * genmodes.c (struct mode_data): Add field for the complex type of
17356 the given type.
17357 (blank_mode): Likewise.
17358 (make_complex_modes): Remember the complex mode created in the
17359 base type.
17360 (emit_mode_complex): Write out the mode_complex array to map a
17361 type mode to the complex version.
17362 (emit_insn_modes_c): Likewise.
17363 * tree.c (build_complex_type): Set the complex type to use before
17364 calling layout_type.
17365 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
17366 support for __float128 complex datatypes.
17367 (rs6000_hard_regno_mode_ok): Likewise.
17368 (rs6000_setup_reg_addr_masks): Likewise.
17369 (rs6000_complex_function_value): Likewise.
17370 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
17371 __float128 and __ibm128 complex.
17372 (FLOAT128_IBM_P): Likewise.
17373 (ALTIVEC_ARG_MAX_RETURN): Likewise.
17374 * doc/extend.texi (Additional Floating Types): Document that
17375 -mfloat128 must be used to enable __float128. Document complex
17376 __float128 and __ibm128 support.
17377
17378 2016-05-02 Jakub Jelinek <jakub@redhat.com>
17379
17380 PR target/49244
17381 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
17382 char/short arguments promoted to int because of promote_prototypes.
17383
17384 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
17385
17386 * config/i386/predicates.md (register_ssemem_operand): New predicate.
17387 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
17388 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
17389 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
17390 alternatives using "enabled" attribute. Use register_ssemem_operand
17391 as operand 1 predicate.
17392 (*cmpi<unord>xf_i387): Split XFmode pattern from
17393 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
17394 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
17395 *absneg<mode>2_i387. Disable unsupported alternatives using
17396 "enabled" attribute.
17397 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
17398
17399 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
17400
17401 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
17402 marker.
17403 (oacc_loop_process): Check mask for loop termination.
17404
17405 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
17406
17407 * cif-code.def (CIF_THUNK): Add.
17408 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
17409 accidental change.
17410
17411 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
17412
17413 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
17414 (dump_inline_summary): Dump it.
17415 (fp_expression_p): New predicate.
17416 (estimate_function_body_sizes): Use it.
17417 (inline_merge_summary): Merge fp_expressions.
17418 (inline_read_section): Read fp_expressions.
17419 (inline_write_summary): Write fp_expressions.
17420 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
17421 codegen boundary if either caller or callee is !fp_expressions.
17422 * ipa-inline.h (inline_summary): Add fp_expressions.
17423 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
17424 to fp_expressions be sure the fp generation flags are updated.
17425
17426 2016-05-02 Jakub Jelinek <jakub@redhat.com>
17427
17428 PR rtl-optimization/70467
17429 * cse.c (cse_insn): Handle no-op MEM moves after folding.
17430
17431 PR rtl-optimization/70467
17432 * ipa-pure-const.c (check_call): Handle internal calls even in
17433 ipa mode like in local mode.
17434
17435 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
17436
17437 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
17438
17439 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
17440
17441 * match.pd (X u< X, X u> X): New transformations.
17442
17443 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
17444
17445 * flag-types.h (enum warn_strict_overflow_code): Move ...
17446 * coretypes.h: ... here.
17447 * fold-const.h (fold_overflow_warning): Declare.
17448 * fold-const.c (fold_overflow_warning): Make non-static.
17449 (fold_comparison): Move the transformation of X +- C1 CMP C2
17450 into X CMP C2 -+ C1 ...
17451 * match.pd: ... here.
17452 * gimple-fold.c (fold_stmt_1): Protect with
17453 fold_defer_overflow_warnings.
17454
17455 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
17456
17457 * omp-low.c (struct oacc_loop): Add 'inner' field.
17458 (new_oacc_loop_raw): Initialize it to zero.
17459 (oacc_loop_fixed_partitions): Initialize it.
17460 (oacc_loop_auto_partitions): Partition outermost loop to outermost
17461 available partitioning.
17462
17463 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
17464
17465 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
17466 register_operand.
17467 (umulsidi3): Likewise.
17468 (indirect_jump): Fix jump instruction assembly patterns.
17469
17470 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
17471
17472 PR target/70860
17473 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
17474 (nvptx_function_value): Assert non-NULL cfun.
17475
17476 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
17477
17478 PR rtl-optimization/70886
17479 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
17480
17481 * cselib.h (rtx_equal_for_cselib_1): Declare.
17482 (rtx_equal_for_cselib_p: New inline function.
17483 * cselib.c (rtx_equal_for_cselib_p): Delete.
17484 (rtx_equal_for_cselib_1): Make public.
17485
17486 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
17487
17488 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
17489 (register_mixssei387nonimm_operand): Remove predicate.
17490 * config/i386/i386.md (*fop_<mode>_comm): Merge from
17491 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
17492 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
17493 for TARGET_MIX_SSE_I387 alternatives.
17494 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
17495 Disable unsupported alternatives using "enabled" attribute. Use
17496 nonimm_ssenomem_operand as operand 1 predicate. Also check
17497 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
17498
17499 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
17500
17501 * tree.c (cst_and_fits_in_hwi): Simplify.
17502
17503 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
17504
17505 * tree.h (wi::to_wide): New function.
17506 * expr.c (expand_expr_real_1): Use wi::to_wide.
17507 * fold-const.c (int_const_binop_1): Likewise.
17508 (extract_muldiv_1): Likewise.
17509
17510 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
17511
17512 * wide-int.h: Update offset_int and widest_int documentation.
17513 (WI_SIGNED_SHIFT_RESULT): New macro.
17514 (wi::binary_shift): Define signed_shift_result_type for
17515 shifts on offset_int- and widest_int-like types.
17516 (generic_wide_int): Support <<= and >>= if << and >> are supported.
17517 * tree.h (int_bit_position): Use shift operators instead of wi::
17518 shifts.
17519 * alias.c (adjust_offset_for_component_ref): Likewise.
17520 * expr.c (get_inner_reference): Likewise.
17521 * fold-const.c (fold_comparison): Likewise.
17522 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
17523 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
17524 * tree-dfa.c (get_ref_base_and_extent): Likewise.
17525 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
17526 (stmt_kills_ref_p): Likewise.
17527 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
17528 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
17529 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
17530 (ao_ref_init_from_vn_reference): Likewise.
17531
17532 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
17533
17534 * wide-int.h: Update offset_int and widest_int documentation.
17535 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
17536 (wi::binary_traits): Allow ordered comparisons between offset_int and
17537 offset_int, between widest_int and widest_int, and between either
17538 of these types and basic C types.
17539 (operator <, <=, >, >=): Define for the same combinations.
17540 * tree.h (tree_int_cst_lt): Use comparison operators instead
17541 of wi:: comparisons.
17542 (tree_int_cst_le): Likewise.
17543 * gimple-fold.c (fold_array_ctor_reference): Likewise.
17544 (fold_nonarray_ctor_reference): Likewise.
17545 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
17546 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
17547 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
17548 * tree-sra.c (completely_scalarize): Likewise.
17549 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
17550 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
17551 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
17552 (check_for_binary_op_overflow): Likewise.
17553 (search_for_addr_array): Likewise.
17554 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
17555
17556 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
17557
17558 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
17559 (arc_save_restore): Likewise.
17560 (arc_dwarf_register_span): Likewise.
17561 (arc_output_pic_addr_const): Initialize suffix variable.
17562
17563 2016-05-02 Martin Liska <mliska@suse.cz>
17564
17565 * symbol-summary.h (function_summary::function_summary):
17566 Remove checking assert for all cgraph nodes.
17567 (function_summary::get): Check summary_uid.
17568 (symtab_insertion): Check summary_uid.
17569
17570 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
17571
17572 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
17573 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
17574 bmaskn instruction.
17575 (arc_dwarf_register_span): Remove enum keyword.
17576 (compact_memory_operand_p): New function.
17577 * config/arc/arc.h (reg_class): Add code density register classes.
17578 (REG_CLASS_NAMES): Likewise.
17579 (REG_CLASS_CONTENTS): Likewise.
17580 * config/arc/arc.md (*movqi_insn): Add code density instructions.
17581 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
17582 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
17583 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
17584 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
17585 constraints.
17586 (h, Rcd, Rsd, Rzd): New register constraints.
17587 (T): Use compact_memory_operand_p function.
17588 * config/arc/predicates.md (compact_load_memory_operand): Remove.
17589
17590 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
17591
17592 * config/sh/sh.md (*negnegt, *movtt): Remove.
17593
17594 2016-05-02 Marek Polacek <polacek@redhat.com>
17595 Tom de Vries <tom@codesourcery.com>
17596
17597 PR tree-optimization/70700
17598 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
17599 bigger than FIRST_REF_NODE.
17600
17601 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
17602
17603 PR target/52898
17604 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
17605 TARGET_CMPEQDI_T.
17606 (prepare_cbranch_operands): Don't use scratch register. Assume that
17607 function is used when pseudos can be created.
17608 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
17609 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
17610 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
17611 define_expand. Allow it only when pseudos can be created.
17612 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
17613
17614 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
17615
17616 * config/i386/constraints.md (BC): Only allow -1 operands.
17617 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
17618 Add "enabled" attribute. Update XI mode attribute calculation.
17619 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
17620 (*movoi_internal_avx): Update XI mode attribute calculation.
17621 (*movti_internal): Ditto.
17622
17623 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
17624
17625 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
17626 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
17627
17628 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
17629
17630 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
17631 statement on instruction code. Remove trailing spaces.
17632 (altivec_expand_stv_builtin): Likewise.
17633
17634 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
17635
17636 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
17637 (TARGET_FPU_DOUBLE): Simplify.
17638 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
17639 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
17640 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
17641 with 'TARGET_FPU_DOUBLE'.
17642 * config/sh/sh.md: Likewise.
17643
17644 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
17645
17646 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
17647 SH_DIV_STR_FOR_SIZE): Remove.
17648 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
17649 SH_DIV_STR_FOR_SIZE): Remove.
17650
17651 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
17652
17653 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
17654 logical_reg_operand): Delete.
17655 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
17656 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
17657 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
17658 match_operand and match_test.
17659 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
17660 variables on their first use. Return bool values.
17661 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
17662 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
17663 arith_reg_operand for input operand. Remove empty constraints.
17664 (xorsi3): Delete.
17665 (*xorsi3_compact): Rename to xorsi3.
17666 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
17667 (*zero_extend<mode>si2_disp_mem): Update comment.
17668 (mov_nop): Delete.
17669
17670 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
17671
17672 * config/sh/t-sh: Remove SH5 support.
17673 * config.gcc: Likewise.
17674 * configure: Likewise.
17675
17676 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17677
17678 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
17679
17680 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
17681
17682 * config/sh/sh.c (register_sh_passes, sh_option_override,
17683 sh_print_operand, prepare_move_operands,
17684 sh_can_follow_jump): Remove TARGET_SH1 checks.
17685 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
17686 PROMOTE_MODE): Likewise.
17687 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
17688 movdi): Likewise.
17689
17690 2016-04-30 Alan Modra <amodra@gmail.com>
17691
17692 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
17693 restoring when fixed_reg_p, but allow out-of-line or stmw save.
17694 Check for user regs later to avoid unnecessary looping over regs.
17695 Merge user reg check with non-saved reg check. Don't force
17696 inline VR restore when static chain used.
17697 (rs6000_frame_related): Omit eh_frame info for user regs when
17698 saving.
17699 (fixed_regs_p): Delete.
17700
17701 2016-04-30 Alan Modra <amodra@gmail.com>
17702
17703 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
17704 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
17705 Update all uses.
17706
17707 2016-04-30 Alan Modra <amodra@gmail.com>
17708
17709 PR target/69645
17710 * config/rs6000/rs6000.c (fixed_reg_p): New function.
17711 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
17712 Update all uses.
17713
17714 2016-04-30 Alan Modra <amodra@gmail.com>
17715
17716 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
17717 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
17718 flag_pic test for Darwin.
17719
17720 2016-04-30 Alan Modra <amodra@gmail.com>
17721
17722 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
17723 throw_calls_crossed.
17724 (REG_FREQ_CALLS_CROSSED): Delete.
17725 (REG_N_THROWING_CALLS_CROSSED): Delete.
17726 * regstat.c (regstat_bb_compute_ri): Don't calculate
17727 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
17728 (dump_reg_info): Don't print call cross frequency.
17729 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
17730 and REG_N_THROWING_CALLS_CROSSED.
17731
17732 2016-04-30 Alan Modra <amodra@gmail.com>
17733
17734 * regs.h (struct reg_info_t): Delete live_length.
17735 (REG_LIVE_LENGTH): Delete macro.
17736 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
17737 local_live, local_processed and local_live_last_luid params.
17738 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
17739 Formatting fixes.
17740 (regstat_compute_ri): Adjust for above. Don't set
17741 REG_LIVE_LENGTH.
17742 (dump_reg_info): Don't print live length.
17743 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
17744 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
17745 Localize loop_depth var.
17746
17747 2016-04-30 Alan Modra <amodra@gmail.com>
17748
17749 * ira.c (enum valid_equiv): New.
17750 (validate_equiv_mem): Return enum.
17751 (update_equiv_mem): Create replacement in more cases.
17752 (add_store_equivs): Update validate_equiv_mem call.
17753
17754 2016-04-30 Alan Modra <amodra@gmail.com>
17755
17756 * ira.c (combine_and_move_insns): Rather than scanning insns,
17757 use DF infrastucture to find use and def insns.
17758
17759 2016-04-30 Alan Modra <amodra@gmail.com>
17760
17761 ira.c (combine_and_move_insns): Move invariant conditions..
17762 (ira.c): ..to here. Call combine_and_move_insns before
17763 add_store_equivs. Call grow_reg_equivs later. Allocate
17764 req_equiv later using max_reg_num() rather than global max_regno.
17765 (contains_replace_regs): Delete.
17766 (add_store_equivs): Remove contains_replace_regs test.
17767
17768 2016-04-30 Alan Modra <amodra@gmail.com>
17769
17770 * ira.c (struct equiv_mem_data): New.
17771 (equiv_mem, equiv_mem_modified): Delete static vars.
17772 (validate_equiv_mem_from_store): Use "data" param to communicate..
17773 (validate_equiv_mem): ..from here.
17774
17775 2016-04-30 Alan Modra <amodra@gmail.com>
17776
17777 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
17778 split out from..
17779 (update_reg_equivs): ..here. Move allocation and freeing of
17780 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
17781 end_alias_analysis to..
17782 (ira): ..here.
17783
17784 2016-04-30 Alan Modra <amodra@gmail.com>
17785
17786 * ira.c (pdx_subregs): Delete.
17787 (struct equivalence): Add pdx_subregs field.
17788 (set_paradoxical_subreg): Remove pdx_subregs param. Update
17789 pdx_subregs access.
17790 (update_equiv_regs): Don't create or free pdx_subregs. Update
17791 pdx_subregs access.
17792
17793 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17794
17795 * config/rs6000/altivec.h: Change definitions of vec_xl and
17796 vec_xst.
17797 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
17798 (LD_ELEMREV_V2DI): New.
17799 (LD_ELEMREV_V4SF): New.
17800 (LD_ELEMREV_V4SI): New.
17801 (LD_ELEMREV_V8HI): New.
17802 (LD_ELEMREV_V16QI): New.
17803 (ST_ELEMREV_V2DF): New.
17804 (ST_ELEMREV_V2DI): New.
17805 (ST_ELEMREV_V4SF): New.
17806 (ST_ELEMREV_V4SI): New.
17807 (ST_ELEMREV_V8HI): New.
17808 (ST_ELEMREV_V16QI): New.
17809 (XL): New.
17810 (XST): New.
17811 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17812 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
17813 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
17814 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
17815 (altivec_expand_builtin): Add handling for
17816 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
17817 (rs6000_invalid_builtin): Add error-checking for
17818 RS6000_BTM_P9_VECTOR.
17819 (altivec_init_builtins): Define builtins used to implement vec_xl
17820 and vec_xst.
17821 (rs6000_builtin_mask_names): Define power9-vector.
17822 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
17823 (RS6000_BTM_P9_VECTOR): Define.
17824 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
17825 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
17826 (vsx_ld_elemrev_v2df): Likewise.
17827 (vsx_ld_elemrev_v4sf): Likewise.
17828 (vsx_ld_elemrev_v4si): Likewise.
17829 (vsx_ld_elemrev_v8hi): Likewise.
17830 (vsx_ld_elemrev_v16qi): Likewise.
17831 (vsx_st_elemrev_v2df): Likewise.
17832 (vsx_st_elemrev_v2di): Likewise.
17833 (vsx_st_elemrev_v4sf): Likewise.
17834 (vsx_st_elemrev_v4si): Likewise.
17835 (vsx_st_elemrev_v8hi): Likewise.
17836 (vsx_st_elemrev_v16qi): Likewise.
17837 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
17838 grammar.
17839
17840 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
17841
17842 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
17843 out into ...
17844 (simplify_control_stmt_condition_1): ... here. Recurse into
17845 BIT_AND_EXPRs and BIT_IOR_EXPRs.
17846
17847 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
17848
17849 PR target/69810
17850 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
17851 (zero_extendqi<mode>2_dot): Revert earlier conversion from
17852 define_insn_and_split to define_insn.
17853 (zero_extendqi<mode>2_dot2): Same.
17854 (extendqi<mode>2_dot): Same.
17855 (extendqi<mode>2_dot2): Same.
17856
17857 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
17858
17859 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
17860 (probe_stack): New expander.
17861 (probe_stack_<mode>): New insn pattern.
17862
17863 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
17864
17865 * config/i386/i386.md
17866 (operations with memory inputs setting flags peephole2):
17867 Remove uneeded REG_P checks. Cleanup pattern generation.
17868
17869 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
17870
17871 * tree-vect-loop.c (vect_transform_loop): Fix
17872 nb_iterations_upper_bound computation for vectorized loop.
17873
17874 2016-04-29 Marek Polacek <polacek@redhat.com>
17875 Jakub Jelinek <jakub@redhat.com>
17876
17877 PR sanitizer/70342
17878 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
17879 TARGET_EXPR_SLOT as a base.
17880
17881 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
17882
17883 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
17884 with 'rCm2' constraints to limit possible immediate size.
17885 (*load_zeroextendqisi_update): Likewise.
17886 (*load_signextendqisi_update): Likewise.
17887 (*loadhi_update): Likewise.
17888 (*load_zeroextendhisi_update): Likewise.
17889 (*load_signextendhisi_update): Likewise.
17890 (*loadsi_update): Likewise.
17891 (*loadsf_update): Likewise.
17892
17893 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
17894
17895 * config/i386/predicates.md (constm1_operand): Fix comparison.
17896
17897 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
17898
17899 * testsuite/gcc.target/arc/ieee_eq.c: New test.
17900
17901 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
17902
17903 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
17904 remaining SH5 related settings.
17905 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
17906 shmedia_prepare_call_address): Delete.
17907 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
17908 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
17909 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
17910 UNSUPPORTED_SH2A): Remove m5 checks.
17911 (sh_divide_strategy_e): Remove SH5 division strategies.
17912 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
17913 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
17914
17915 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
17916
17917 * config/s390/s390.c (s390_rtx_costs): Update documentation.
17918
17919 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17920
17921 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
17922 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
17923 Change lder to ldr.
17924 * config/s390/vector.md ("mov<mode>"): Likewise.
17925
17926 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
17927
17928 * config/s390/constraints.md ("U", "W"): Invoke
17929 s390_mem_constraint with "ZR" and "ZT".
17930 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
17931 addresses when using LRA. Accept also short displacements for S
17932 and T constraints. Do not check for long displacement target for
17933 S and T constraints.
17934 (s390_mem_constraint): Remove handling of U and W constraints.
17935 * config/s390/s390.md (various patterns): Remove the short
17936 displacement constraints (Q and R) if a long displacement
17937 constraint is present. Add longdisp as required CPU capability.
17938 * config/s390/vector.md: Likewise.
17939 * config/s390/vx-builtins.md: Likewise.
17940
17941 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
17942
17943 PR target/60040
17944 * reload1.c (reload): Call finish_spills before
17945 restarting reload loop. Skip select_reload_regs
17946 if update_eliminables_and_spill returns true.
17947
17948 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
17949
17950 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
17951 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
17952 (umulhisi3_imm): Update predicates and constraint letters.
17953 (umulhisi3_reg): Declare instruction as commutative.
17954 * config/arc/constraints.md (J12, J16): New constraints.
17955 * config/arc/predicates.md (short_unsigned_const_operand): New
17956 predicate.
17957 (arc_short_operand): Likewise.
17958 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
17959
17960 2016-04-29 Richard Biener <rguenther@suse.de>
17961
17962 PR tree-optimization/13962
17963 PR tree-optimization/65686
17964 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
17965 * tree-ssa-alias.c (ptrs_compare_unequal): New function
17966 using PTA to compare pointers.
17967 * match.pd: Add pattern for pointer equality compare simplification
17968 using ptrs_compare_unequal.
17969
17970 2016-04-29 Richard Biener <rguenther@suse.de>
17971
17972 * stor-layout.c (layout_type): Do not build a pointer-to-element
17973 type for arrays.
17974
17975 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
17976
17977 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
17978 Use SWI mode iterator. Use general_reg_operand predicate.
17979 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
17980 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
17981 predicates.
17982
17983 2016-04-29 Jakub Jelinek <jakub@redhat.com>
17984
17985 PR middle-end/70843
17986 * fold-const.c (operand_equal_p): Don't verify hash value equality
17987 if arg0 == arg1.
17988 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
17989 and OMP_CLAUSE.
17990
17991 2016-04-28 Jakub Jelinek <jakub@redhat.com>
17992
17993 PR target/70858
17994 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
17995 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
17996 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
17997 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
17998 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
17999
18000 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
18001
18002 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
18003 to info. Don't initialize separate fields to 0. Clean up
18004 formatting a bit.
18005
18006 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
18007
18008 * config/i386/i386.md (peephole2s for operations with memory inputs):
18009 Use SWI mode iterator.
18010 (peephole2s for operations with memory outputs): Ditto.
18011 Do not check for stack checking probe.
18012
18013 (probe_stack): Remove expander.
18014
18015 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
18016 Andrew Burgess <andrew.burgess@embecosm.com>
18017
18018 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
18019 operands as 32-bits.
18020
18021 2016-04-28 Jason Merrill <jason@redhat.com>
18022
18023 * gdbinit.in: Skip line-map.h.
18024
18025 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
18026 Andrew Burgess <andrew.burgess@embecosm.com>
18027
18028 * config/arc/arc.c (arc_conditional_register_usage): Take
18029 TARGET_RRQ_CLASS into account.
18030 (arc_print_operand): Support printing 'p' and 's' operands.
18031 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
18032 as 0.
18033 (TARGET_RRQ_CLASS): Define.
18034 (IS_POWEROF2_OR_0_P): Define.
18035 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
18036 alternatives.
18037 (*tst_movb): New define_insn.
18038 (*tst): Avoid recognition if it could prevent '*tst_movb'
18039 combination; replace c/CnL with c/Chs alternative.
18040 (*tst_bitfield_tst): New define_insn.
18041 (*tst_bitfield_asr): New define_insn.
18042 (*tst_bitfield): New define_insn.
18043 (andsi3_i): Add Rrq variant.
18044 (extzv): New define_expand.
18045 (insv): New define_expand.
18046 (*insv_i): New define_insn.
18047 (*movb): New define_insn.
18048 (*movb_signed): New define_insn.
18049 (*movb_high): New define_insn.
18050 (*movb_high_signed): New define_insn.
18051 (*movb_high_signed + 1): New define_split pattern.
18052 (*mrgb): New define_insn.
18053 (*mrgb + 1): New define_peephole2 pattern.
18054 (*mrgb + 2): New define_peephole2 pattern.
18055 * config/arc/arc.opt (mbitops): New option for nps400, uses
18056 TARGET_NPS_BITOPS_DEFAULT.
18057 * config/arc/constraints.md (q): Make register class conditional.
18058 (Rrq): New register constraint.
18059 (Chs): New constraint.
18060 (Clo): New constraint.
18061 (Chi): New constraint.
18062 (Cbf): New constraint.
18063 (Cbn): New constraint.
18064 (C18): New constraint.
18065 (Cbi): New constraint.
18066
18067 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
18068
18069 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
18070 dst->popcount.
18071 (bitmap_intersection_of_preds): Ditto.
18072 (bitmap_union_of_succs): Ditto.
18073 (bitmap_union_of_preds): Ditto.
18074 * sbitmap.c (do_popcount): Delete.
18075 (BITMAP_DEBUGGING): Delete.
18076 (sbitmap_verify_popcount): Delete.
18077 (sbitmap_alloc): Don't initialize the popcount field.
18078 (sbitmap_alloc_with_popcount): Delete.
18079 (sbitmap_resize): Don't resize the popcount array.
18080 (sbitmap_vector_alloc): Don't initialize the popcount field.
18081 (bitmap_copy): Don't copy the popcount array.
18082 (bitmap_clear): Don't clear the popcount array.
18083 (bitmap_clear): Delete the popcount array handling.
18084 (bitmap_ior_and_compl): Delete the popcount assert.
18085 (bitmap_not): Ditto.
18086 (bitmap_and_compl): Ditto.
18087 (bitmap_and): Delete the popcount array handling.
18088 (bitmap_xor): Ditto.
18089 (bitmap_ior): Ditto.
18090 (bitmap_or_and): Delete the popcount assert.
18091 (bitmap_and_or): Ditto.
18092 (popcount_table): Delete.
18093 (sbitmap_elt_popcount): Delete.
18094 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
18095 (bitmap_set_bit): Delete the popcount assert.
18096 (bitmap_clear_bit): Ditto.
18097 (sbitmap_free): Don't free the popcount array.
18098 (sbitmap_alloc_with_popcount): Delete declaration.
18099 (sbitmap_popcount): Ditto.
18100
18101 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
18102 Andrew Burgess <andrew.burgess@embecosm.com>
18103
18104 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
18105 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
18106 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
18107 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
18108 * config/arc/arc.opt (mcmem): New option.
18109 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
18110 supply length for r/m alternative.
18111 (*extendqisi2_ac): Likewise.
18112 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
18113 r/Uex alternative.
18114 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
18115 (movhi_insn): Likewise.
18116 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
18117 (*zero_extendqihi2_i): Add r/Ucm alternative.
18118 (*zero_extendqisi2_ac): Likewise.
18119 (*zero_extendhisi2_i): Likewise.
18120 * config/arc/constraints.md (Uex): New memory constraint.
18121 (Ucm): New define_constraint.
18122 * config/arc/predicates.md (long_immediate_loadstore_operand):
18123 Return 0 for MEM with cmem_address address.
18124 (cmem_address_0): New predicates.
18125 (cmem_address_1): Likewise.
18126 (cmem_address_2): Likewise.
18127 (cmem_address): Likewise.
18128
18129 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
18130
18131 * config/rs6000/rs6000.c (machine_function): Rename
18132 insn_chain_scanned_p to spe_insn_chain_scanned_p.
18133 (rs6000_stack_info): Adjust.
18134
18135 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
18136 Andrew Burgess <andrew.burgess@embecosm.com>
18137
18138 * config/arc/constraints.md (Usd): Convert to define_constraint.
18139 (Us<): Likewise.
18140 (Us>): Likewise.
18141
18142 2016-04-28 Jakub Jelinek <jakub@redhat.com>
18143
18144 PR target/70821
18145 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
18146 Add new peephole2 where the first insn is *mov<mode>_or instead of
18147 *mov<mode>_internal.
18148
18149 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
18150
18151 * tracer.c (bb_seen): Make static.
18152
18153 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
18154
18155 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
18156 support, setup defaults.
18157 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
18158 * config/arc/arc.c (arc_init): Add NPS400 support.
18159 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
18160 (TARGET_ARC700): NPS400 is also an ARC700.
18161 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
18162
18163 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
18164
18165 PR target/70668
18166 * config/nds32/nds32.md (casesi): Don't access the operands array
18167 out of bounds.
18168
18169 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
18170
18171 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
18172 (or $-1,reg peephole2): Ditto.
18173 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
18174
18175 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
18176
18177 * doc/extend.texi (Common Function Attributes) [optimize]:
18178 Discourage use of the optimize attribute.
18179
18180 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
18181
18182 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
18183 special case builtin.
18184 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
18185 ALTIVEC_BUILTIN_VEC_ADDE.
18186 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
18187 support for ALTIVEC_BUILTIN_VEC_ADDE.
18188 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
18189 for __builtin_vec_adde.
18190
18191 2016-04-28 Jakub Jelinek <jakub@redhat.com>
18192
18193 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
18194 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
18195
18196 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18197
18198 PR testsuite/70595
18199 * doc/sourcebuild.texi (Effective-Target Keywords, Other
18200 attributes): Document cilkplus_runtime.
18201
18202 2016-04-28 Martin Jambor <mjambor@suse.cz>
18203
18204 * tree-cfg.c (verify_expr): Verify that local declarations belong to
18205 this function. Call verify_expr on MEM_REFs and bases of other
18206 handled_components.
18207
18208 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18209
18210 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
18211 for WORD_REGISTER_OPERATIONS to runtime check.
18212
18213 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
18214
18215 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
18216
18217 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
18218
18219 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
18220 big-endian compilation.
18221 * config/arc/arc.md (addf3): Likewise.
18222 (subdf3): Likewise.
18223 (muldf3): Likewise.
18224
18225 2016-04-28 Richard Biener <rguenther@suse.de>
18226
18227 PR tree-optimization/70840
18228 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
18229 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
18230 Mark x * pow(x,c) -> pow(x,c+1) commutative.
18231 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
18232
18233 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18234
18235 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
18236 and explain why in a comment.
18237
18238 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
18239
18240 * config/arc/arc.md (cpu_facility): Add fpx variant.
18241 (subdf3): Prohibit use reverse sub when assist operations option
18242 is enabled.
18243 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
18244 instructions only when FPX is enabled.
18245 * testsuite/gcc.target/arc/trsub.c: New test.
18246
18247 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
18248
18249 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
18250 mult_operator when calculating "type" attribute.
18251 (*fop_<mode>_1_i387): Ditto.
18252 (*fop_xf_1_i387): Ditto.
18253 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
18254 Use std::swap to swap operands. Use RTL expressions to generate
18255 converted pattern.
18256
18257 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
18258 Joern Rennecke <joern.rennecke@embecosm.com>
18259
18260 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
18261 declaration.
18262 (emit_pic_move): Remove.
18263 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
18264 * config/arc/arc.c (emit_pic_move): Removed.
18265 (TARGET_HAVE_TLS): Define.
18266 (arc_conditional_register_usage): Test for arc_tp_regno.
18267 (arc_print_operand, arc_print_operand_address): Handle TLS
18268 unspecs.
18269 (arc_needs_pcl_p): New function.
18270 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
18271 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
18272 (arc_raw_symbolic_reference_mentioned_p): Likewise.
18273 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
18274 (arc_legitimize_tls_address): Likewise.
18275 (DTPOFF_ZERO_SYM): Define.
18276 (arc_legitimize_pic_address): Make it static, handle TLS cases.
18277 (arc_output_pic_addr_const): Print TLS unspecs.
18278 (prepare_pic_move): New function, replaces emit_pic_move.
18279 (arc_legitimate_constant_p): Handle TLS unspecs.
18280 (arc_legitimate_address_p): Likewise.
18281 (arc_rewrite_small_data_p): Use assert for TLS constants.
18282 (prepare_move_operands): Use prepare_pic_move.
18283 (arc_legitimize_address): Legitimize tls addresses.
18284 (arc_epilogue_uses): Check for arc_tp_regno.
18285 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
18286 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
18287 Define.
18288 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
18289 Likewise.
18290 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
18291 %(arc_tls_extra_start_spec).
18292 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
18293 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
18294 (EH_USES): Define.
18295 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
18296 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
18297 (UNSPEC_TLS_OFF): Add.
18298 (R10_REG): Define.
18299 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
18300 (get_thread_pointersi): New patterns.
18301 * config/arc/arc.opt (mtp-regno): New option.
18302 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
18303 (move_dest_operand): Likewise.
18304 * configure: Regenerate.
18305 * configure.ac: Add arc*-*-* case to test for tls.
18306 * doc/invoke.texi (ARC options): Document mtp-regno.
18307
18308 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
18309
18310 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
18311 the new ARC HS SIMD instructions.
18312 (arc_preferred_simd_mode): New function.
18313 (arc_autovectorize_vector_sizes): Likewise.
18314 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
18315 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
18316 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
18317 (arc_init_builtins): Add new SIMD builtin types.
18318 (arc_split_move): Handle 64 bit vector moves.
18319 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
18320 (TARGET_PLUS_QMACW): Define.
18321 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
18322 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
18323 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
18324 (VSUBADD4H): New builtins.
18325 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
18326 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
18327
18328 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
18329 Matthias Klose <doko@debian.org>
18330
18331 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
18332
18333 2016-04-28 Richard Biener <rguenther@suse.de>
18334
18335 PR middle-end/70777
18336 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
18337 canonicalization.
18338
18339 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
18340
18341 * common/config/sh/sh-common.c: Remove SH5 support.
18342 * config/sh/constraints.md: Likewise.
18343 * config/sh/config/sh/elf.h: Likewise.
18344 * config/sh/linux.h: Likewise.
18345 * config/sh/netbsd-elf.h: Likewise.
18346 * config/sh/predicates.md: Likewise.
18347 * config/sh/sh-c.c: Likewise.
18348 * config/sh/sh-protos.h: Likewise.
18349 * config/sh/sh.c: Likewise.
18350 * config/sh/sh.h: Likewise.
18351 * config/sh/sh.md: Likewise.
18352 * config/sh/sh.opt: Likewise.
18353 * config/sh/sync.md: Likewise.
18354 * config/sh/sh64.h: Delete.
18355 * config/sh/shmedia.h: Likewise.
18356 * config/sh/shmedia.md: Likewise.
18357 * config/sh/sshmedia.h: Likewise.
18358 * config/sh/t-netbsd-sh5-64: Likewise.
18359 * config/sh/t-sh64: Likewise.
18360 * config/sh/ushmedia.h: Likewise.
18361
18362 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
18363
18364 * config/i386/i386.md (sign_extend to memory peephole2s): Use
18365 general_reg_operand instead of register_operand predicate.
18366
18367 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18368
18369 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
18370
18371 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
18372
18373 * match.pd (A - B > A, A + B < A): New transformations.
18374
18375 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
18376
18377 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
18378 which defaults to true. Emit an outer pair of parentheses only if
18379 EMIT_PARENS. When continuing a chain of && or || (or & or |),
18380 don't emit parentheses for the right-hand operand.
18381
18382 2016-04-27 Jeff Law <law@redhat.com>
18383
18384 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
18385
18386 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18387
18388 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
18389 (altivec_lvx_<mode>_internal): Document.
18390 (altivec_lvx_<mode>_2op): New define_insn.
18391 (altivec_lvx_<mode>_1op): Likewise.
18392 (altivec_lvx_<mode>_2op_si): Likewise.
18393 (altivec_lvx_<mode>_1op_si): Likewise.
18394 (altivec_stvx_<mode>): Remove.
18395 (altivec_stvx_<mode>_internal): Document.
18396 (altivec_stvx_<mode>_2op): New define_insn.
18397 (altivec_stvx_<mode>_1op): Likewise.
18398 (altivec_stvx_<mode>_2op_si): Likewise.
18399 (altivec_stvx_<mode>_1op_si): Likewise.
18400 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18401 Expand vec_ld and vec_st during parsing.
18402 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
18403 changes.
18404 (altivec_expand_stvx_be): Likewise.
18405 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
18406 address-masking behavior in RTL.
18407 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
18408 address-masking behavior in RTL.
18409 (altivec_expand_builtin): Change builtin code arguments for calls
18410 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
18411 (insn_is_swappable_p): Avoid incorrect swap optimization in the
18412 presence of lvx/stvx patterns.
18413 (alignment_with_canonical_addr): New function.
18414 (alignment_mask): Likewise.
18415 (find_alignment_op): Likewise.
18416 (recombine_lvx_pattern): Likewise.
18417 (recombine_stvx_pattern): Likewise.
18418 (recombine_lvx_stvx_patterns): Likewise.
18419 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
18420 stvx patterns from expand.
18421 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
18422 expansions.
18423 (vector_altivec_store_<mode>): Likewise.
18424
18425 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
18426
18427 * config/aarch64/aarch64.md
18428 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
18429 remove the "fp" attributes.
18430 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
18431 add the "simd" attributes.
18432 (*movdf_aarch64): Likewise.
18433 (*movtf_aarch64): Remove the "fp" attributes.
18434 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
18435 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
18436
18437 2016-04-27 David Malcolm <dmalcolm@redhat.com>
18438
18439 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
18440 rtx to rtx_code_label *.
18441 * rtl.h (maybe_set_first_label_num): Likewise.
18442
18443 2016-04-27 David Malcolm <dmalcolm@redhat.com>
18444
18445 * df-core.c (df_add_problem): Make the problem param be const.
18446 (df_remove_problem): Make local "problem" be const.
18447 * df-problems.c (problem_RD): Make const.
18448 (problem_LR): Likewise.
18449 (problem_LIVE): Likewise.
18450 (problem_MIR): Likewise.
18451 (problem_CHAIN): Likewise.
18452 (problem_WORD_LR): Likewise.
18453 (problem_NOTE): Likewise.
18454 (problem_MD): Likewise.
18455 * df-scan.c (problem_SCAN): Likewise.
18456 * df.h (struct df_problem): Make field "dependent_problem" be
18457 const.
18458 (struct dataflow): Likewise for field "problem".
18459 (df_add_problem): Make param const.
18460
18461 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
18462
18463 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
18464 inter-unit moves to/from vector registers are enabled. Do not disable
18465 for TARGET_MMX.
18466
18467 2016-04-27 David Malcolm <dmalcolm@redhat.com>
18468
18469 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
18470 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
18471 #define to...
18472 (enum df_problem_id): ...this new enum.
18473 (struct df_problem): Convert field "id" from "int" to
18474 enum df_problem_id.
18475
18476 2016-04-27 David Malcolm <dmalcolm@redhat.com>
18477
18478 * rtl.def: Update comment for "things in the instruction chain" to
18479 reflect the removal of the leading "i" field for INSN_UID in
18480 r210360. Fix bogus apostrophe.
18481
18482 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
18483
18484 * config/i386/i386.md
18485 (lea arith with mem operand + setcc peephole2): Set operator mode.
18486
18487 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
18488
18489 PR target/70155
18490 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
18491 (dimode_scalar_to_vector_candidate_p): This.
18492 (timode_scalar_to_vector_candidate_p): New function.
18493 (scalar_to_vector_candidate_p): Likewise.
18494 (timode_check_non_convertible_regs): Likewise.
18495 (timode_remove_non_convertible_regs): Likewise.
18496 (remove_non_convertible_regs): Likewise.
18497 (remove_non_convertible_regs): Renamed to ...
18498 (dimode_remove_non_convertible_regs): This.
18499 (scalar_chain::~scalar_chain): Make it virtual.
18500 (scalar_chain::compute_convert_gain): Make it pure virtual.
18501 (scalar_chain::mark_dual_mode_def): Likewise.
18502 (scalar_chain::convert_insn): Likewise.
18503 (scalar_chain::convert_registers): Likewise.
18504 (scalar_chain::add_to_queue): Make it protected.
18505 (scalar_chain::emit_conversion_insns): Likewise.
18506 (scalar_chain::replace_with_subreg): Likewise.
18507 (scalar_chain::replace_with_subreg_in_insn): Likewise.
18508 (scalar_chain::convert_op): Likewise.
18509 (scalar_chain::convert_reg): Likewise.
18510 (scalar_chain::make_vector_copies): Likewise.
18511 (scalar_chain::convert_registers): New pure virtual function.
18512 (class dimode_scalar_chain): New class.
18513 (class timode_scalar_chain): Likewise.
18514 (scalar_chain::mark_dual_mode_def): Renamed to ...
18515 (dimode_scalar_chain::mark_dual_mode_def): This.
18516 (timode_scalar_chain::mark_dual_mode_def): New function.
18517 (timode_scalar_chain::convert_insn): Likewise.
18518 (dimode_scalar_chain::convert_registers): Likewise.
18519 (scalar_chain::compute_convert_gain): Renamed to ...
18520 (dimode_scalar_chain::compute_convert_gain): This.
18521 (scalar_chain::replace_with_subreg): Renamed to ...
18522 (dimode_scalar_chain::replace_with_subreg): This.
18523 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
18524 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
18525 (scalar_chain::make_vector_copies): Renamed to ...
18526 (dimode_scalar_chain::make_vector_copies): This.
18527 (scalar_chain::convert_reg): Renamed to ...
18528 (dimode_scalar_chain::convert_reg ): This.
18529 (scalar_chain::convert_op): Renamed to ...
18530 (dimode_scalar_chain::convert_op): This.
18531 (scalar_chain::convert_insn): Renamed to ...
18532 (dimode_scalar_chain::convert_insn): This.
18533 (scalar_chain::convert): Call convert_registers.
18534 (convert_scalars_to_vector): Change to scalar_chain pointer to
18535 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
18536 in 32-bit mode. Delete scalar_chain pointer. Call
18537 free_dominance_info in 64-bit mode.
18538 (pass_stv::gate): Remove TARGET_64BIT check.
18539 (ix86_option_override): Put the 64-bit STV pass before the CSE
18540 pass.
18541
18542 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
18543
18544 * dwarf2out.h (struct dw_loc_descr_node): Remove the
18545 dw_loc_frame_offset field.
18546 * dwarf2out.c (new_loc_descr): Likewise.
18547 (resolve_args_picking_1): Turn the VISITED hash set into a
18548 FRAME_OFFSET hash map. Use it to associate a frame offset to
18549 visited nodes. Remove uses of the CHECKING_P macro.
18550 (resolve_args_picking): Update call to resolve_args_picking_1.
18551
18552 2016-04-27 Martin Liska <mliska@suse.cz>
18553
18554 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
18555 (free_loop_data): Release vuses of groups.
18556
18557 2016-04-27 Bin Cheng <bin.cheng@arm.com>
18558
18559 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
18560 instead of redundant use_id and boolean have_use_for.
18561 (struct iv_use): Change sub_id into group_id. Remove field next.
18562 Move fields: related_cands, n_map_members, cost_map and selected
18563 to ...
18564 (struct iv_group): ... here. New structure.
18565 (struct iv_common_cand): Use structure declaration directly.
18566 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
18567 (MAX_CONSIDERED_USES): Rename macro to ...
18568 (MAX_CONSIDERED_GROUPS): ... here.
18569 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
18570 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
18571 (dump_uses): Rename to ...
18572 (dump_groups): ... here. Update all uses.
18573 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
18574 (find_induction_variables): Refactor format of dump information.
18575 (record_sub_use): Delete.
18576 (record_use): Update all uses.
18577 (record_group): New function.
18578 (record_group_use, find_interesting_uses_op): Call above functions.
18579 Update all uses.
18580 (find_interesting_uses_cond): Ditto.
18581 (group_compare_offset): New function.
18582 (split_all_small_groups): Rename to ...
18583 (split_small_address_groups_p): ... here. Update all uses.
18584 (split_address_groups): Update all uses.
18585 (find_interesting_uses): Refactor format of dump information.
18586 (add_candidate_1): Update all uses. Remove redundant check on iv,
18587 base and step.
18588 (add_candidate, record_common_cand): Remove redundant assert.
18589 (add_iv_candidate_for_biv): Update use.
18590 (add_iv_candidate_derived_from_uses): Update all uses.
18591 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
18592 (alloc_use_cost_map): Ditto.
18593 (set_use_iv_cost, get_use_iv_cost): Rename to ...
18594 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
18595 (determine_use_iv_cost_generic): Ditto.
18596 (determine_group_iv_cost_generic): Ditto.
18597 (determine_use_iv_cost_address): Ditto.
18598 (determine_group_iv_cost_address): Ditto.
18599 (determine_use_iv_cost_condition): Ditto.
18600 (determine_group_iv_cost_cond): Ditto.
18601 (determine_use_iv_cost): Ditto.
18602 (determine_group_iv_cost): Ditto.
18603 (set_autoinc_for_original_candidates): Update all uses.
18604 (find_iv_candidates): Update all uses. Refactor dump information.
18605 (determine_use_iv_costs): Ditto.
18606 (determine_iv_costs): Ditto.
18607 (iv_ca_cand_for_use): Rename to ...
18608 (iv_ca_cand_for_group): ... here. Update all uses.
18609 (iv_ca_add_use, iv_ca_add_group): Ditto.
18610 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
18611 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
18612 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
18613 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
18614 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
18615 (create_new_iv, adjust_iv_update_pos): Ditto.
18616 (rewrite_use_address): Delete.
18617 (rewrite_use_address_1): Rename to ...
18618 (rewrite_use_address): ... here.
18619 (rewrite_use_compare): Update all uses.
18620 (rewrite_use): Delete.
18621 (rewrite_uses): Rename to ...
18622 (rewrite_groups): ... here. Update all uses.
18623 (remove_unused_ivs, free_loop_data): Update all uses.
18624 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
18625
18626 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18627
18628 * rtlanal.c (nonzero_bits1): Convert preprocessor check
18629 for WORD_REGISTER_OPERATIONS to runtime check.
18630
18631 2016-04-27 Richard Biener <rguenther@suse.de>
18632
18633 PR ipa/70760
18634 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
18635 aggregate_value_p to determine if a function result is
18636 returned by reference.
18637 (ipa_pta_execute): Functions having their address taken are
18638 not automatically nonlocal.
18639
18640 2016-04-27 Jakub Jelinek <jakub@redhat.com>
18641
18642 PR sanitizer/70683
18643 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
18644 * fold-const.c (operand_equal_p): If flag_checking and
18645 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
18646 and if it returns non-zero, assert iterative_hash_expr on both
18647 args is the same.
18648
18649 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
18650
18651 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
18652
18653 2016-04-27 Nick Clifton <nickc@redhat.com>
18654
18655 PR middle-end/49889
18656 * varasm.c (merge_weak): Generate an error if an attempt is made
18657 to convert a non-weak static function into a weak, public function.
18658
18659 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18660
18661 * params.def (MAX_PARTITION_SIZE): New param.
18662 * doc/invoke.texi: Document lto-max-partition.
18663
18664 2016-04-27 Richard Biener <rguenther@suse.de>
18665
18666 PR ipa/70785
18667 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
18668 function cummulating used_from_other_partition, externally_visible
18669 and force_output from aliases.
18670 (refered_from_nonlocal_var): Likewise.
18671 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
18672 node flags properly.
18673
18674 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
18675
18676 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
18677 (-Wmemset-elt-size): New item.
18678
18679 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
18680
18681 PR ada/70759
18682 * stor-layout.h (internal_reference_types): Delete.
18683 * stor-layout.c (reference_types_internal): Likewise.
18684 (internal_reference_types): Likewise.
18685 (layout_type) <REFERENCE_TYPE>: Adjust.
18686
18687 2016-04-27 Jakub Jelinek <jakub@redhat.com>
18688
18689 PR sanitizer/70683
18690 * tree.h (inchash::add_expr): Add FLAGS argument.
18691 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
18692 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
18693 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
18694 Formatting fix. Adjust recursive calls. For tcc_comparison,
18695 if swap_tree_comparison (code) is smaller than code, hash that
18696 and arguments in the other order. Hash CONVERT_EXPR the same
18697 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
18698 of ADDR_EXPR of decl as the decl itself. Add or remove
18699 OEP_ADDRESS_OF from recursive flags as needed. For
18700 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
18701 operands commutatively and only the third one normally.
18702 For internal CALL_EXPR hash in CALL_EXPR_IFN.
18703
18704 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
18705
18706 * config/rtems.h (LIB_SPEC): Add -latomic.
18707
18708 2016-04-27 Joel Sherrill <joel@rtems.org>
18709
18710 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
18711 xilink.ld and flags not relevant to RTEMS.
18712
18713 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
18714
18715 * toplev.c (backend_init_target): Avoid calling init_reload when using
18716 LRA.
18717
18718 2016-04-26 Jakub Jelinek <jakub@redhat.com>
18719
18720 * reorg.c (try_merge_delay_insns): Declare i and j inside the
18721 for loops rather than one for the whole function.
18722
18723 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
18724
18725 * match.pd (X + CST CMP X): New transformation.
18726
18727 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
18728
18729 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
18730 * fold-const.c (fold_binary_loc): Remove 2 transformations
18731 superseded by match.pd.
18732 * match.pd (x+x -> x*2): Generalize to integers.
18733
18734 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
18735
18736 * config/i386/i386.md (operation on memory peephole): Duplicate an
18737 existing peephole and adapt it to match lea rather than an operation
18738 that clobbers CC.
18739
18740 PR rtl-optimization/57193
18741 * opts.c (default_options_table): Add OPT_frename_registers at -O2
18742 and above.
18743 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
18744
18745 2016-04-26 Bin Cheng <bin.cheng@arm.com>
18746
18747 * tree-if-conv.c (any_pred_load_store): New static variable.
18748 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
18749 any_pred_load_store instead of and_mask_load_store.
18750 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
18751 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
18752 (combine_blocks, tree_if_conversion): Ditto.
18753
18754 2016-04-26 Bin Cheng <bin.cheng@arm.com>
18755
18756 PR tree-optimization/70771
18757 PR tree-optimization/70775
18758 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
18759 virtual PHI nodes. Delete parameter.
18760 (if_convertible_loop_p_1): Delete argument to above function.
18761 (predicate_all_scalar_phis): Delete code handling single-argument
18762 PHIs.
18763 (tree_if_conversion): Mark and update virtual SSA.
18764
18765 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18766
18767 PR target/61821
18768 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
18769 (x86_elf_aligned_common): Rename to ...
18770 (x86_elf_aligned_decl_common): ... this.
18771 Add decl arg. Switch to .lbss for largecomm object. Use
18772 LARGECOMM_SECTION_ASM_OP.
18773 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
18774 renaming.
18775 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
18776 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
18777 Pass new decl arg.
18778 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
18779 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
18780
18781 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18782
18783 PR target/59407
18784 * config/i386/i386.c (SECTION_LARGE): Define.
18785 (x86_64_elf_select_section): Set it for large data/bss sections.
18786 Only clear SECTION_WRITE for .lrodata.
18787 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
18788 data/bss sections.
18789 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
18790 * varasm.c (default_elf_asm_named_section): Grow flagchars.
18791 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
18792 SECTION_MACH_DEP.
18793 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
18794 * doc/tm.texi: Regenerate.
18795
18796 2016-04-26 Jakub Jelinek <jakub@redhat.com>
18797
18798 PR bootstrap/70704
18799 * configure.ac (--enable-checking): Document extra flag, for
18800 non-release builds default to --enable-checking=yes,extra.
18801 If misc checking and extra checking, define CHECKING_P to 2 instead
18802 of 1.
18803 * common.opt (fchecking=): Add.
18804 * doc/invoke.texi (-fchecking=): Document.
18805 * doc/install.texi: Document --enable-checking changes.
18806 * configure: Regenerated.
18807 * config.in: Regenerated.
18808
18809 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
18810
18811 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
18812 attribute instead of which_alternative.
18813 * config/i386/sse.md (*mov<mode>_internal): Ditto.
18814 Use EXT_REX_SSE_REG_P where appropriate.
18815
18816 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
18817
18818 * config/i386/predicates.md (const0_operand): Do not match
18819 const_wide_int code.
18820 (const1_operand): Ditto.
18821
18822 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
18823
18824 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
18825 for SSE constm1 operands and TARGET_AVX512VL.
18826 (*movti_internal): Ditto.
18827 (*mov<mode>_or): Use constm1_operand predicate.
18828 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
18829 for SSE vector_all_ones operands and TARGET_AVX512VL.
18830 * config/i386/predicates.md (constm1_operand): New predicate.
18831 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
18832 emission of constant -1 load.
18833
18834 2016-04-25 Jason Merrill <jason@redhat.com>
18835
18836 * gdbinit.in: Skip is-a.h.
18837
18838 * attribs.c (register_scoped_attributes): Fix logic.
18839 * attribs.h: Declare register_scoped_attributes.
18840
18841 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18842
18843 * config/rs6000/rs6000-builtin.def: Correct pasto error for
18844 stxvd2x and stxvw4x built-in functions.
18845
18846 2016-04-25 DJ Delorie <dj@redhat.com>
18847
18848 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
18849 (ashrhi3): Likewise.
18850 (lshrhi3): Likewise.
18851
18852 2016-04-25 Richard Biener <rguenther@suse.de>
18853
18854 PR tree-optimization/70780
18855 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
18856 wasn't visited yet.
18857 (compute_antic): Mark blocks with abnormal preds as visited as
18858 they have a final empty antic-in solution already.
18859
18860 2016-04-25 Michael Collison <michael.collison@linaro.org>
18861
18862 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
18863
18864 2016-04-25 Michael Collison <michael.collison@linaro.org>
18865
18866 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
18867 mode is VQI to improve mixed mode vectorization.
18868 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
18869 define_insn to match low half of signed vaddw.
18870 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
18871 define_insn to match high half of signed vaddw.
18872 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
18873 define_insn to match low half of unsigned vaddw.
18874 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
18875 define_insn to match high half of unsigned vaddw.
18876 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
18877 (arm_simd_check_vect_par_cnst_half_p): Likewise.
18878 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
18879 for new function.
18880 (arm_simd_check_vect_par_cnst_half_p): Likewise.
18881 * config/arm/predicates.md (vect_par_constant_high): Support
18882 big endian and simplify by calling
18883 arm_simd_check_vect_par_cnst_half
18884 (vect_par_constant_low): Likewise.
18885
18886 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
18887
18888 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
18889 predicate for operand 2.
18890
18891 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
18892 H.J. Lu <hongjiu.lu@intel.com>
18893
18894 * config/i386/i386-protos.h (standard_sse_constant_p): Add
18895 machine_mode argument.
18896 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
18897 constm1_rtx operands. For VOIDmode constants, get mode from
18898 pred_mode. Check mode size if the mode is supported by ABI.
18899 (standard_sse_constant_opcode): Do not use standard_constant_p.
18900 Strictly check ABI support for all-ones operands.
18901 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
18902 immediates. Update calls to standard_sse_constant_p.
18903 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
18904 (ix86_rtx_costs): Ditto.
18905 * config/i386/i386.md (*movxi_internal_avx512f): Use
18906 nonimmediate_or_sse_const_operand instead of vector_move_operand.
18907 Use (v,BC) alternative instead of (v,C). Use register_operand
18908 checks instead of MEM_P.
18909 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
18910 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
18911 isa attribute. Use register_operand checks instead of MEM_P.
18912 (*movti_internal): Use nonimmediate_or_sse_const_operand for
18913 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
18914 alternative and corresponding sse2 isa attribute.
18915 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
18916 to standard_sse_constant_p.
18917 (FP constant splitters): Ditto.
18918 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
18919 (C): Ditto.
18920 * config/i386/predicates.md (constm1_operand): Remove.
18921 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
18922 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
18923 vector_all_ones_operand instead of constm1_operand.
18924
18925 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18926
18927 * print-rtl.c (print_rtx_insn_vec): New function.
18928 * print-rtl.h: New prototype.
18929 * store-motion.c (struct st_expr): Make avail_stores a vector.
18930 (st_expr_entry): Adjust.
18931 (free_st_expr_entry): Likewise.
18932 (print_store_motion_mems): Likewise.
18933 (find_moveable_store): Likewise.
18934 (compute_store_table): Likewise.
18935 (delete_store): Likewise.
18936 (build_store_vectors): Likewise.
18937
18938 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18939
18940 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
18941
18942 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18943
18944 * vec.h (vec_safe_contains): New function.
18945 (vec::contains): Likewise.
18946 (vec::begin): Likewise.
18947 (vec::end): Likewise.
18948
18949 2016-04-23 Jakub Jelinek <jakub@redhat.com>
18950
18951 PR sanitizer/70712
18952 * cfgexpand.c (expand_stack_vars): Fix typo.
18953
18954 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
18955
18956 * system.h (list, map, set, vector): Include conditionally.
18957 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
18958 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
18959 * ipa-icf.c (INCLUDE_LIST): Define.
18960 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
18961 * config/sh/sh.c (INCLUDE_VECTOR): Define.
18962 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
18963 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
18964 * cp/logic.cc (INCLUDE_LIST): Define.
18965 * fortran/trans-common.c (INCLUDE_MAP): Define.
18966
18967 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
18968
18969 * auto-profile.c: Remove <string.h> include.
18970 * ipa-icf-gimple.c: Remove <list> include.
18971 * diagnostic.c: Remove <new> include.
18972 * genmatch.c: Likewise.
18973 * pretty-print.c: Likewise.
18974 * toplev.c: Likewise
18975 * c/c-objc-common.c: Likewise.
18976 * cp/error.c: Likewise.
18977 * fortran/error.c: Likewise.
18978
18979 2016-04-22 Richard Biener <rguenther@suse.de>
18980
18981 * lto-streamer-in.c (input_ssa_names): Do not allocate
18982 GIMPLE_NOP for all SSA names.
18983 * lto-streamer-out.c (output_ssa_names): Do not output
18984 SSA names that should have been released.
18985
18986 2016-04-22 Richard Biener <rguenther@suse.de>
18987
18988 PR tree-optimization/70740
18989 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
18990 VDEF.
18991
18992 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
18993
18994 PR target/70750
18995 * config/i386/predicates.md (call_insn_operand): Replace
18996 sibcall_memory_operand with memory_operand.
18997
18998 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
18999
19000 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
19001 has_single_use() tests.
19002 (register_edge_assert_for_1): Likewise.
19003 (find_assert_locations_1): Check the liveness bitmap instead of
19004 checking has_single_use().
19005
19006 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
19007
19008 PR target/70728
19009 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
19010 Extract AVX-512BW constraint from AVX.
19011
19012 2016-04-21 Richard Biener <rguenther@suse.de>
19013
19014 PR tree-optimization/70725
19015 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
19016 for phi_convertible_by_degenerating_args.
19017 (predicate_all_scalar_phis): Handle single-argument PHIs.
19018
19019 2016-04-21 Richard Biener <rguenther@suse.de>
19020
19021 PR middle-end/70747
19022 * fold-const.c (fold_comparison): Return properly typed
19023 constant boolean.
19024
19025 2016-04-21 Bin Cheng <bin.cheng@arm.com>
19026
19027 PR tree-optimization/70715
19028 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
19029 after expanding BASE using expand_simple_operations.
19030
19031 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
19032
19033 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
19034 New transformations.
19035
19036 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
19037
19038 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
19039
19040 2016-04-20 Jan Hubicka <jh@suse.cz>
19041
19042 * ipa-inline.c (can_inline_edge_p): Pass caller info to
19043 ultiimate_alias_target.
19044 (update_callee_keys): Likewise.
19045 (lookup_recursive_calls): Likewise.
19046 (speculation_useful_p): Likewise.
19047
19048 2016-04-20 Jan Hubicka <jh@suse.cz>
19049
19050 PR ipa/70018
19051 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
19052 (set_nothrow_flag_1): ... this; handle interposition correctly;
19053 recurse on aliases and thunks.
19054 (cgraph_node::set_nothrow_flag): New.
19055 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
19056 functions compiled with non-call exceptions that binds to current
19057 def.
19058 (propagate_nothrow): Be safe WRT interposition.
19059 * cgraph.h (set_nothrow_flag): Update prototype.
19060
19061 2016-04-18 Jan Hubicka <jh@suse.cz>
19062
19063 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
19064 max_loop_iterations_int.
19065 (tree_unswitch_outer_loop): Likewise.
19066
19067 2016-04-20 Bin Cheng <bin.cheng@arm.com>
19068
19069 PR tree-optimization/69489
19070 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
19071 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
19072 Revise dump message.
19073 (if_convertible_bb_p): Remove check on edge count of basic block's
19074 predecessors.
19075
19076 2016-04-20 Bin Cheng <bin.cheng@arm.com>
19077
19078 PR tree-optimization/56625
19079 PR tree-optimization/69489
19080 * tree-data-ref.h (DR_INNERMOST): New macro.
19081 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
19082 hashing struct innermost_loop_behavior.
19083 (ref_DR_map): Remove.
19084 (innermost_DR_map): New map.
19085 (baseref_DR_map): Revise comment.
19086 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
19087 to innermost_DR_map accroding to its innermost loop behavior.
19088 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
19089 to its innermost loop behavior.
19090 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
19091 Add initialization for innermost_DR_map. Record memory reference
19092 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
19093 have innermost loop behavior.
19094 (if_convertible_loop_p): Remove release for ref_DR_map. Release
19095 innermost_DR_map.
19096
19097 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
19098
19099 * config/i386/i386.md (*lea<mode>_general_1): Rename from
19100 *lea_general_1. Use explicit SWI12 mode interator.
19101 (*lea<mode>_general_2): Rename from *lea_general_2.
19102 Use explicit SWI12 mode interator.
19103 (*lea<mode>_general_3): Rename from *lea_general_3.
19104 Use explicit SWI12 mode interator.
19105 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
19106 Use explicit SWI12 mode interator.
19107 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
19108 Use explicit SWI48 mode interator.
19109
19110 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
19111
19112 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
19113 Short-cut unaligned load and store cases. Handle all integer
19114 vector modes.
19115 (ix86_expand_vector_move_misalign): Short-cut unaligned load
19116 and store cases. Call ix86_avx256_split_vector_move_misalign
19117 directly without checking mode class.
19118
19119 2016-04-20 Andrew Pinski <apinski@cavium.com>
19120 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19121
19122 PR target/64971
19123 * config/aarch64/aarch64.md (sibcall): Force call
19124 address to be DImode for ILP32.
19125 (sibcall_value): Likewise.
19126
19127 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
19128
19129 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
19130
19131 2016-04-20 Richard Biener <rguenther@suse.de>
19132
19133 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
19134 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
19135 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
19136 (maybe_push_res_to_seq): Adjust.
19137 * gimple-fold.c (maybe_build_generic_op): Likewise.
19138
19139 2016-04-20 Marek Polacek <polacek@redhat.com>
19140
19141 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
19142 rather than true.
19143
19144 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
19145
19146 * config/i386/sse.md (vec_unpacks_lo_hi): Always
19147 use kmovw to support AVX512F target.
19148
19149 2016-04-20 Bin Cheng <bin.cheng@arm.com>
19150
19151 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
19152
19153 2016-04-20 Marek Polacek <polacek@redhat.com>
19154
19155 PR tree-optimization/70725
19156 * tree-if-conv.c (is_false_predicate): New function.
19157 (predicate_mem_writes): Use it.
19158
19159 2016-04-20 Richard Biener <rguenther@suse.de>
19160
19161 PR tree-optimization/70726
19162 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
19163 shift amounts from a pattern stmt operand.
19164
19165 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19166
19167 PR target/70674
19168 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
19169 stack_restore_from_fpr pattern when restoring r15.
19170 (s390_optimize_prologue): Strip away the memory barrier in the
19171 parallel when trying to get rid of restore insns.
19172 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
19173 definition for loading the stack pointer from an FPR. Compared to
19174 the normal move insn this pattern includes a full memory barrier.
19175
19176 2016-04-19 Jakub Jelinek <jakub@redhat.com>
19177
19178 PR middle-end/70680
19179 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
19180 implicitly linear or lastprivate iterator on the outer context.
19181
19182 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
19183
19184 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
19185 alignment check.
19186 * config/i386/i386.md (ssememalign): Removed.
19187 * config/i386/sse.md: Remove ssememalign attribute from patterns.
19188
19189 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
19190
19191 PR target/69201
19192 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
19193 const short * to __builtin_ia32_loaddquhi512_mask.
19194 (_mm512_maskz_loadu_epi16): Likewise.
19195 (_mm512_mask_storeu_epi16): Pass short * to
19196 __builtin_ia32_storedquhi512_mask.
19197 (_mm512_mask_loadu_epi8): Pass const char * to
19198 __builtin_ia32_loaddquqi512_mask.
19199 (_mm512_maskz_loadu_epi8): Likewise.
19200 (_mm512_mask_storeu_epi8): Pass char * to
19201 __builtin_ia32_storedquqi512_mask.
19202 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
19203 const double * to __builtin_ia32_loadupd512_mask.
19204 (_mm512_mask_loadu_pd): Likewise.
19205 (_mm512_maskz_loadu_pd): Likewise.
19206 (_mm512_storeu_pd): Pass double * to
19207 __builtin_ia32_storeupd512_mask.
19208 (_mm512_mask_storeu_pd): Likewise.
19209 (_mm512_loadu_ps): Pass const float * to
19210 __builtin_ia32_loadups512_mask.
19211 (_mm512_mask_loadu_ps): Likewise.
19212 (_mm512_maskz_loadu_ps): Likewise.
19213 (_mm512_storeu_ps): Pass float * to
19214 __builtin_ia32_storeups512_mask.
19215 (_mm512_mask_storeu_ps): Likewise.
19216 (_mm512_mask_loadu_epi64): Pass const long long * to
19217 __builtin_ia32_loaddqudi512_mask.
19218 (_mm512_maskz_loadu_epi64): Likewise.
19219 (_mm512_mask_storeu_epi64): Pass long long *
19220 to __builtin_ia32_storedqudi512_mask.
19221 (_mm512_loadu_si512): Pass const int * to
19222 __builtin_ia32_loaddqusi512_mask.
19223 (_mm512_mask_loadu_epi32): Likewise.
19224 (_mm512_maskz_loadu_epi32): Likewise.
19225 (_mm512_storeu_si512): Pass int * to
19226 __builtin_ia32_storedqusi512_mask.
19227 (_mm512_mask_storeu_epi32): Likewise.
19228 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
19229 char * to __builtin_ia32_storedquqi256_mask.
19230 (_mm_mask_storeu_epi8): Likewise.
19231 (_mm256_mask_loadu_epi16): Pass const short * to
19232 __builtin_ia32_loaddquhi256_mask.
19233 (_mm256_maskz_loadu_epi16): Likewise.
19234 (_mm_mask_loadu_epi16): Pass const short * to
19235 __builtin_ia32_loaddquhi128_mask.
19236 (_mm_maskz_loadu_epi16): Likewise.
19237 (_mm256_mask_loadu_epi8): Pass const char * to
19238 __builtin_ia32_loaddquqi256_mask.
19239 (_mm256_maskz_loadu_epi8): Likewise.
19240 (_mm_mask_loadu_epi8): Pass const char * to
19241 __builtin_ia32_loaddquqi128_mask.
19242 (_mm_maskz_loadu_epi8): Likewise.
19243 (_mm256_mask_storeu_epi16): Pass short * to.
19244 __builtin_ia32_storedquhi256_mask.
19245 (_mm_mask_storeu_epi16): Pass short * to.
19246 __builtin_ia32_storedquhi128_mask.
19247 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
19248 const double * to __builtin_ia32_loadupd256_mask.
19249 (_mm256_maskz_loadu_pd): Likewise.
19250 (_mm_mask_loadu_pd): Pass onst double * to
19251 __builtin_ia32_loadupd128_mask.
19252 (_mm_maskz_loadu_pd): Likewise.
19253 (_mm256_mask_storeu_pd): Pass double * to
19254 __builtin_ia32_storeupd256_mask.
19255 (_mm_mask_storeu_pd): Pass double * to
19256 __builtin_ia32_storeupd128_mask.
19257 (_mm256_mask_loadu_ps): Pass const float * to
19258 __builtin_ia32_loadups256_mask.
19259 (_mm256_maskz_loadu_ps): Likewise.
19260 (_mm_mask_loadu_ps): Pass const float * to
19261 __builtin_ia32_loadups128_mask.
19262 (_mm_maskz_loadu_ps): Likewise.
19263 (_mm256_mask_storeu_ps): Pass float * to
19264 __builtin_ia32_storeups256_mask.
19265 (_mm_mask_storeu_ps): ass float * to
19266 __builtin_ia32_storeups128_mask.
19267 (_mm256_mask_loadu_epi64): Pass const long long * to
19268 __builtin_ia32_loaddqudi256_mask.
19269 (_mm256_maskz_loadu_epi64): Likewise.
19270 (_mm_mask_loadu_epi64): Pass const long long * to
19271 __builtin_ia32_loaddqudi128_mask.
19272 (_mm_maskz_loadu_epi64): Likewise.
19273 (_mm256_mask_storeu_epi64): Pass long long * to
19274 __builtin_ia32_storedqudi256_mask.
19275 (_mm_mask_storeu_epi64): Pass long long * to
19276 __builtin_ia32_storedqudi128_mask.
19277 (_mm256_mask_loadu_epi32): Pass const int * to
19278 __builtin_ia32_loaddqusi256_mask.
19279 (_mm256_maskz_loadu_epi32): Likewise.
19280 (_mm_mask_loadu_epi32): Pass const int * to
19281 __builtin_ia32_loaddqusi128_mask.
19282 (_mm_maskz_loadu_epi32): Likewise.
19283 (_mm256_mask_storeu_epi32): Pass int * to
19284 __builtin_ia32_storedqusi256_mask.
19285 (_mm_mask_storeu_epi32): Pass int * to
19286 __builtin_ia32_storedqusi128_mask.
19287 * config/i386/i386-builtin-types.def (PCSHORT): New.
19288 (PINT64): Likewise.
19289 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
19290 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
19291 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
19292 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
19293 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
19294 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
19295 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
19296 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
19297 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
19298 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
19299 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
19300 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
19301 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
19302 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
19303 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
19304 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
19305 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
19306 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
19307 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
19308 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
19309 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
19310 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
19311 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
19312 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
19313 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
19314 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
19315 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
19316 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
19317 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
19318 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
19319 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
19320 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
19321 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
19322 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
19323 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
19324 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
19325 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
19326 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
19327 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
19328 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
19329 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
19330 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
19331 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
19332 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
19333 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
19334 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
19335 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
19336 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
19337 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
19338 use UNSPEC_STOREU.
19339 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
19340 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
19341 load nor store.
19342 (ix86_expand_vector_move_misalign): Likewise.
19343 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
19344 to scalar function prototype for unaligned load/store builtins.
19345 (ix86_expand_special_args_builtin): Updated.
19346 * config/i386/sse.md (UNSPEC_LOADU): Removed.
19347 (UNSPEC_STOREU): Likewise.
19348 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
19349 (VI_ULOADSTORE_F_AVX512VL): Likewise.
19350 (ssescalarsize): Handle V4TI, V2TI and V1TI.
19351 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
19352 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
19353 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
19354 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
19355 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
19356 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
19357 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
19358 (<avx512>_storedqu<mode>_mask): Likewise.
19359 (*sse4_2_pcmpestr_unaligned): Likewise.
19360 (*sse4_2_pcmpistr_unaligned): Likewise.
19361 (*mov<mode>_internal): Renamed to ...
19362 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
19363 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
19364 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
19365 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
19366
19367 2016-04-19 Richard Biener <rguenther@suse.de>
19368
19369 PR tree-optimization/70171
19370 * tree-ssa-phiprop.c: Include stor-layout.h.
19371 (phiprop_insert_phi): Handle the aggregate copy case.
19372 (propagate_with_phi): Likewise.
19373
19374 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
19375
19376 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
19377 instead of simplify_gen_subreg (... , 0).
19378 (ix86_delegitimize_address): Ditto.
19379 (ix86_split_divmod): Ditto.
19380 (ix86_split_copysign_const): Ditto.
19381 (ix86_split_copysign_var): Ditto.
19382 (ix86_expand_args_builtin): Ditto.
19383 (ix86_expand_round_builtin): Ditto.
19384 (ix86_expand_special_args_builtin): Ditto.
19385 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
19386 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
19387 (udivmodqi4): Ditto.
19388 (absneg splitters): Ditto.
19389 (*jcc_bt<mode>_1): Ditto.
19390
19391 2016-04-19 Richard Biener <rguenther@suse.de>
19392
19393 PR tree-optimization/70724
19394 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
19395 restoring out from ...
19396 (free_scc_vn): ... here.
19397 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
19398 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
19399 tail merging.
19400 (pass_fre::execute): Restore SSA info.
19401
19402 2016-04-19 Richard Biener <rguenther@suse.de>
19403
19404 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
19405 * gimple-walk.c (walk_gimple_op): Initialize it.
19406 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
19407 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
19408 remapping SSA names of defs.
19409 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
19410 adjustment.
19411
19412 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
19413
19414 PR middle-end/70689
19415 * lra-constraints.c (equiv_substition_p): New.
19416 (process_alt_operands): Use it.
19417 (swap_operands): Swap it.
19418 (curr_insn_transform): Update it.
19419
19420 2016-04-18 Michael Matz <matz@suse.de>
19421
19422 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
19423 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
19424 * tree-core.h (tree_type_common.align): Use bit-field.
19425 (tree_type_common.spare): New.
19426 (tree_decl_common.off_align): Make smaller.
19427 (tree_decl_common.align): Use bit-field.
19428
19429 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
19430 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
19431 (scan_sharing_clauses): Ditto.
19432 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
19433 (omp_finish_file): Ditto.
19434 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
19435 (layout_decl): Ditto.
19436 (relayout_decl): Ditto.
19437 (finalize_record_size): Use SET_TYPE_ALIGN.
19438 (finalize_type_size): Ditto.
19439 (finish_builtin_struct): Ditto.
19440 (layout_type): Ditto.
19441 (initialize_sizetypes): Ditto.
19442 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
19443 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
19444 (lookup_field_for_decl): Use SET_DECL_ALIGN.
19445 (get_chain_field): Ditto.
19446 (get_trampoline_type): Ditto.
19447 (get_nl_goto_field): Ditto.
19448 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
19449 SET_DECL_ALIGN.
19450 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
19451 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
19452 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
19453 (build_qualified_type): Use SET_TYPE_ALIGN.
19454 (build_aligned_type, build_range_type_1): Ditto.
19455 (build_atomic_base): Ditto.
19456 (build_common_tree_nodes): Ditto.
19457 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
19458 (expand_one_stack_var_at): Ditto.
19459 * coverage.c (build_var): Use SET_DECL_ALIGN.
19460 * except.c (init_eh): Ditto.
19461 * function.c (assign_parm_setup_block): Ditto.
19462 * symtab.c (increase_alignment_1): Ditto.
19463 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
19464 * tree-vect-stmts.c (ensure_base_align): Ditto.
19465 * varasm.c (align_variable): Ditto.
19466 (assemble_variable): Ditto.
19467 (build_constant_desc): Ditto.
19468 (output_constant_def_contents): Ditto.
19469
19470 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
19471 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
19472 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
19473 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
19474 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
19475
19476 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
19477
19478 PR target/70708
19479 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
19480 replace %vmovsd with "%vmovq".
19481 (vec_concatv2df): Likewise.
19482
19483 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
19484
19485 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
19486 (*vec_extractv2si_0): Ditto.
19487 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
19488 (zero_extended_scalar_load_operand splitters): Ditto.
19489 (vec_extract splitters): Ditto.
19490 (*vec_extractv4si_0_zext): Ditto.
19491 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
19492 and lowpart_subreg.
19493 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
19494 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
19495 (*sse4_1_extractps): Use lowpart_subreg.
19496 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
19497
19498 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19499
19500 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
19501 gld requirements.
19502 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
19503 Mention Solaris 11 packaging changes.
19504 Update gas and gld requirements.
19505 Remove reference to pre-Solaris 10 bug.
19506 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
19507 systems and bugs.
19508 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
19509 with cc.
19510
19511 2016-04-17 Jan Hubicka <jh@suse.cz>
19512
19513 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
19514 max_loop_iterations_int.
19515
19516 2016-04-18 Richard Biener <rguenther@suse.de>
19517
19518 PR tree-optimization/43434
19519 * tree-ssa-structalias.c (struct vls_data): New.
19520 (visit_loadstore): Handle all pointer-based accesses.
19521 (compute_dependence_clique): Compute a bitmap of restrict tags
19522 assigned bases and pass it to visit_loadstore.
19523
19524 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
19525
19526 PR target/70711
19527 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
19528 armv8.1-a and armv8.1-a+crc.
19529
19530 2016-04-18 Richard Biener <rguenther@suse.de>
19531
19532 PR tree-optimization/70701
19533 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
19534 references after translating through a memcpy.
19535
19536 2016-04-18 Richard Biener <rguenther@suse.de>
19537
19538 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
19539 (compute_antic): ... here. For partial antic use regular
19540 postorder and scrap iteration.
19541 (compute_partial_antic_aux): Remove unused return value.
19542 (init_pre): Do not allocate postorder.
19543 (fini_pre): Do not free postorder.
19544
19545 2016-04-18 Richard Biener <rguenther@suse.de>
19546
19547 PR middle-end/37870
19548 * expmed.c (extract_bit_field_1): Remove broken case
19549 using a wider MODE_INT mode.
19550
19551 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
19552
19553 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
19554 unless compiling with at least GCC-4.8.
19555
19556 2016-04-17 Jan Hubicka <jh@suse.cz>
19557
19558 PR bootstrap/70706
19559 * graphite.c (graphite_finalize): Update call to
19560 tree_estimate_probability.
19561 * predict.h (tree_estimate_probability): Update prototype.
19562
19563 2016-04-17 Jan Hubicka <jh@suse.cz>
19564
19565 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
19566 (tree_estimate_probability): Likewise.
19567 (pass_profile::execute): Update.
19568 (report_predictor_hitrates): New function.
19569 * profile.c (compute_branch_probabilities): Use it.
19570 * predict.h (report_predictor_hitrates): Declare.
19571
19572 2016-04-17 Jan Hubicka <jh@suse.cz>
19573
19574 PR ipa/70018
19575 * cgraph.h (cgraph_node::set_const_flag,
19576 cgraph_node::set_pure_flag): Update prototype to return bool;
19577 update comment.
19578 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
19579 of interposable symbol are interposable, too.
19580 (cgraph_set_const_flag_1): Rename to ...
19581 (set_const_flag_1): ... this one; change to self recursive function
19582 instead of call_for_symbol_thunks_and_aliases. Handle correctly
19583 clearnig the flag in all variants and also virtual thunks of const
19584 functions are pure; track if any change was done.
19585 (cgraph_node::set_const_flag): Update.
19586 (struct set_pure_flag_info): New struct.
19587 (cgraph_set_pure_flag_1): Rename to ...
19588 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
19589 rather than pointer encoded flags; track if any changes was done;
19590 handle correctly clearning flag and setting flag of aliases already
19591 declared const.
19592 (cgraph_node::set_pure_flag): Update.
19593 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
19594
19595 2016-04-17 Tom de Vries <tom@codesourcery.com>
19596
19597 PR other/70433
19598 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
19599 backslash in label.
19600
19601 2016-04-17 Tom de Vries <tom@codesourcery.com>
19602
19603 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
19604 '{}<> ' as escape-for-record.
19605
19606 2016-04-17 Tom de Vries <tom@codesourcery.com>
19607
19608 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
19609 structure.
19610
19611 2016-04-17 Tom de Vries <tom@codesourcery.com>
19612
19613 PR other/70185
19614 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
19615 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
19616 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
19617 * passes.c (finish_optimization_passes): Only call
19618 finish_graph_dump_file if dfi->graph_dump_initialized.
19619 (execute_function_dump, pass_init_dump_file): Use
19620 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
19621
19622 2016-04-17 Tom de Vries <tom@codesourcery.com>
19623
19624 PR tree-optimization/70256
19625 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
19626 (debug_varmap): New function.
19627
19628 2016-04-17 Tom de Vries <tom@codesourcery.com>
19629
19630 PR other/70183
19631 * passes.c (pass_manager::register_pass): Propagate pflags.
19632
19633 2016-04-17 Tom de Vries <tom@codesourcery.com>
19634
19635 PR other/68875
19636 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
19637 * passes.c (pass_manager::pass_manager): Declare and init p_start in
19638 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
19639 check if it's equal to p_start.
19640 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
19641
19642 2016-04-15 Jan Hubicka <jh@suse.cz>
19643
19644 PR ipa/70018
19645 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
19646 function does not bind to current def.
19647 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
19648 handle conservatively calls to functions that does not need to bind
19649 to current def.
19650 (check_call): Update call of worse_state.
19651 (ignore_edge_for_nothrow): Update.
19652 (ignore_edge_for_pure_const): Likewise.
19653 (propagate_pure_const): Update calls to worse_state.
19654 (skip_function_for_local_pure_const): Reformat comments.
19655
19656 2016-04-15 Jan Hubicka <jh@suse.cz>
19657
19658 PR ipa/70018
19659 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
19660 (cgraph_node::function_symbol): Likewise.
19661 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
19662 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
19663 (symtab_node::ultimate_alias_target): Add REF parameter.
19664 (symtab_node::binds_to_current_def_p): Declare.
19665 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
19666 (cgraph_node::function_symbol): Likewise.
19667 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
19668 (cgraph_node::get_availability): Likewise.
19669 (cgraph_edge::binds_to_current_def_p): New inline function.
19670 (varpool_node::get_availability): Add REF parameter.
19671 (varpool_node::ultimate_alias_target): Likewise.
19672 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
19673 (symtab_node::binds_to_current_def_p): Likewise.
19674 * varpool.c (varpool_node::get_availability): Likewise.
19675
19676 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
19677
19678 PR target/70662
19679 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
19680 Fix mode size check.
19681
19682 2016-04-15 Jakub Jelinek <jakub@redhat.com>
19683
19684 * BASE-VER: Set to 7.0.0.
19685
19686 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
19687
19688 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
19689
19690 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19691
19692 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
19693 architecture revisions.
19694
19695 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
19696
19697 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
19698 * config/i386/i386.c (ix86_using_red_zone): No longer static.
19699 * config/i386/i386.md (stack decrement to push peepholes): Guard
19700 with !x86_using_red_zone ().
19701
19702 2016-04-15 Jakub Jelinek <jakub@redhat.com>
19703
19704 PR c++/70675
19705 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
19706 to dump_generic_node.
19707 (NIY): Pass also flags to do_niy.
19708
19709 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
19710
19711 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
19712 (simd_clone_vector_of_formal_parm_types)
19713 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
19714 (simd_clone_mangle, simd_clone_create)
19715 (simd_clone_adjust_return_type, create_tmp_simd_array)
19716 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
19717 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
19718 (ipa_simd_modify_function_body, simd_clone_linear_addend)
19719 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
19720 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
19721 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
19722 * omp-simd-clone.c: ... this new file.
19723 (simd_clone_vector_of_formal_parm_types): Make it static.
19724 * Makefile.in (OBJS): Add omp-simd-clone.o.
19725
19726 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
19727
19728 PR target/70662
19729 * config/i386/sse.md: Use proper memory operand modifiers.
19730
19731
19732 2016-04-15 Richard Biener <rguenther@suse.de>
19733 Alan Modra <amodra@gmail.com>
19734
19735 PR tree-optimization/70130
19736 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
19737 when alignment stays not the same and no not use the realign
19738 scheme then.
19739
19740 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
19741
19742 PR target/70669
19743 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
19744 direct move handlers for KFmode. Change TFmode handlers test from
19745 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
19746
19747 2016-04-14 Jakub Jelinek <jakub@redhat.com>
19748
19749 PR c++/70594
19750 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
19751 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
19752 (inlined_polymorphic_ctor_dtor_block_p): Use it.
19753 * tree-ssa-live.c (remove_unused_scope_block_p): When
19754 in_ctor_dtor_block, avoid discarding not just BLOCKs with
19755 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
19756 block_ultimate_origin is FUNCTION_DECL.
19757 (remove_unused_locals): If current_function_decl is
19758 polymorphic_ctor_dtor_p, pass initial true to
19759 remove_unused_scope_block_p' is_ctor_dtor_block.
19760
19761 2016-04-14 Martin Sebor <msebor@redhat.com>
19762
19763 PR c++/69517
19764 PR c++/70019
19765 PR c++/70588
19766 * doc/extend.texi (Variable Length): Revert.
19767
19768 2016-04-14 Marek Polacek <polacek@redhat.com>
19769 Jan Hubicka <hubicka@ucw.cz>
19770
19771 PR c++/70029
19772 * tree.c (verify_type): Disable the canonical type of main variant
19773 check.
19774
19775 2016-04-14 Jason Merrill <jason@redhat.com>
19776
19777 * cfgexpand.c, expr.c: Revert previous change.
19778
19779 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
19780
19781 PR middle-end/70643
19782 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
19783 when building a mem ref for the incoming reduction variable.
19784
19785 2016-04-14 Richard Biener <rguenther@suse.de>
19786
19787 PR tree-optimization/70614
19788 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
19789 loop if the evolution dropped to chrec_dont_know.
19790 (interpret_condition_phi): Likewise.
19791
19792 2016-04-14 Richard Biener <rguenther@suse.de>
19793
19794 PR tree-optimization/70623
19795 * tree-ssa-pre.c (changed_blocks): Make global ...
19796 (compute_antic): ... local here. Move and fix worklist
19797 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
19798 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
19799 worklist handling, dump when ANTIC_IN changed.
19800 (compute_partial_antic_aux): Remove worklist handling.
19801 (init_pre): Do not compute post dominators. Add a comment about
19802 the CFG order chosen.
19803 (fini_pre): Do not free post dominators.
19804
19805 2016-04-13 Martin Sebor <msebor@redhat.com>
19806
19807 PR c++/69517
19808 PR c++/70019
19809 PR c++/70588
19810 * doc/extend.texi (Variable Length): Document C++ specifics.
19811
19812 2016-04-13 Jakub Jelinek <jakub@redhat.com>
19813
19814 PR c++/70641
19815 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
19816 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
19817 eh edges have been purged.
19818
19819 PR c++/70594
19820 * tree-sra.c (create_access_replacement,
19821 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
19822 gets fancy name.
19823 * tree-pretty-print.c (dump_fancy_name): New function.
19824 (dump_decl_name, dump_generic_node): Use it.
19825
19826 2016-04-13 Jason Merrill <jason@redhat.com>
19827
19828 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
19829 * expr.c (expand_expr_real_1): Likewise.
19830
19831 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
19832
19833 * config/i386/i386.md (kunpckhi): Swap operands.
19834 (kunpcksi): Likewise.
19835 (kunpckdi): Likewise.
19836 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
19837 (vec_pack_trunc_<mode>): Likewise.
19838
19839 2016-04-13 Jakub Jelinek <jakub@redhat.com>
19840
19841 PR debug/70628
19842 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
19843
19844 PR middle-end/70633
19845 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
19846 gimplification turns some element into non-constant.
19847
19848 PR debug/70628
19849 * rtl.h (convert_memory_address_addr_space_1): New prototype.
19850 * explow.c (convert_memory_address_addr_space_1): No longer static,
19851 add NO_EMIT argument and don't call convert_modes if true, pass
19852 it down recursively, remove break after return.
19853 (convert_memory_address_addr_space): Adjust caller.
19854 * simplify-rtx.c (simplify_unary_operation_1): Call
19855 convert_memory_address_addr_space_1 instead of convert_memory_address,
19856 if it returns NULL, don't simplify.
19857
19858 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
19859
19860 PR target/70630
19861 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
19862
19863 2016-04-12 Jakub Jelinek <jakub@redhat.com>
19864
19865 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
19866 Bump the upper SIMDLEN limits, so that if the return type or
19867 characteristic type if the return type is void can be passed in
19868 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
19869 allowed.
19870
19871 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
19872
19873 PR target/70640
19874 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
19875 Do not use "=" constraint on an input constraint.
19876 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
19877 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
19878 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
19879 generates (neg (abs ...)) instead of (abs ...).
19880
19881 2016-04-12 Jakub Jelinek <jakub@redhat.com>
19882
19883 PR rtl-optimization/70596
19884 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
19885 just invalidate LRA data and reset them. Adjust dump wording.
19886
19887 2016-04-12 Martin Liska <mliska@suse.cz>
19888
19889 Revert
19890 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
19891
19892 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
19893 estimates here.
19894 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
19895 max_loop_iterations_int.
19896 (tree_unswitch_outer_loop): Likewise.
19897 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
19898 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
19899
19900 2016-04-12 Tom de Vries <tom@codesourcery.com>
19901
19902 PR tree-optimization/68756
19903 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
19904 instead of new_name.
19905
19906 2016-04-12 Jakub Jelinek <jakub@redhat.com>
19907
19908 PR tree-optimization/70602
19909 * tree-sra.c (generate_subtree_copies): Don't write anything into
19910 constant pool decls.
19911
19912 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
19913 regardless whether there are depend clauses or not.
19914
19915 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
19916
19917 PR target/70381
19918 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
19919 target attribute and pragma from changing the -mfloat128
19920 and -mfloat128-hardware options.
19921
19922 * doc/extend.texi (Additional Floating Types): Document PowerPC
19923 __float128 restrictions.
19924
19925 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
19926
19927 PR target/70133
19928 * config/aarch64/driver-aarch64.c
19929 (aarch64_get_extension_string_for_isa_flags): New.
19930 (arch_extension): Rename to...
19931 (aarch64_arch_extension): ...This.
19932 (ext_to_feat_string): Rename to...
19933 (aarch64_extensions): ...This.
19934 (aarch64_core_data): Keep track of architecture extension flags.
19935 (cpu_data): Rename to...
19936 (aarch64_cpu_data): ...This.
19937 (aarch64_arch_driver_info): Keep track of architecture extension
19938 flags.
19939 (get_arch_name_from_id): Rename to...
19940 (get_arch_from_id): ...This, change return type.
19941 (host_detect_local_cpu): Update and reformat for renames, handle
19942 extensions through common infrastructure.
19943
19944 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
19945
19946 PR target/70133
19947 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
19948 track of a canonical flag name.
19949 (all_extensions): Likewise.
19950 (arch_to_arch_name): Also track extension flags enabled by the arch.
19951 (all_architectures): Likewise.
19952 (aarch64_parse_extension): Move to here.
19953 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
19954 rework.
19955 (aarch64_rewrite_selected_cpu): Update for above change.
19956 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
19957 are handled, such that the single explicit value enabled by an
19958 extension is kept seperate from the implicit values it also enables.
19959 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
19960 to here.
19961 (aarch64_parse_extension): New.
19962 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
19963 here to config/aarch64/aarch64-protos.h.
19964 (aarch64_parse_extension): Move from here to
19965 common/config/aarch64/aarch64-common.c.
19966 (aarch64_option_print): Update.
19967 (aarch64_declare_function_name): Likewise.
19968 (aarch64_start_file): Likewise.
19969 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
19970 the canonical flag for extensions.
19971 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
19972 flags.
19973
19974 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
19975
19976 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
19977 AARCH64_FL_CRC.
19978
19979 2016-04-09 Tom de Vries <tom@codesourcery.com>
19980
19981 PR tree-optimization/68953
19982 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
19983 first to last subscript.
19984
19985 2016-04-09 Jakub Jelinek <jakub@redhat.com>
19986
19987 PR tree-optimization/70586
19988 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
19989 for any calls.
19990
19991 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
19992
19993 PR lto/70289
19994 PR ipa/70348
19995 PR tree-optimization/70373
19996 PR middle-end/70533
19997 PR middle-end/70534
19998 PR middle-end/70535
19999 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
20000 clauses for acc parallel reductions as necessary. Error on those
20001 that are private.
20002 * omp-low.c (scan_sharing_clauses): Don't install variables which
20003 are used in acc parallel reductions.
20004 (lower_rec_input_clauses): Remove dead code.
20005 (lower_oacc_reductions): Add support for reference reductions.
20006 (lower_reduction_clauses): Remove dead code.
20007 (lower_omp_target): Don't remap variables appearing in acc parallel
20008 reductions.
20009 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
20010
20011 2016-04-08 Jakub Jelinek <jakub@redhat.com>
20012
20013 PR middle-end/70593
20014 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
20015 with multiple SSA_NAME defs, force the outputs other than first
20016 to be live before calling live_track_process_def on each output.
20017
20018 PR rtl-optimization/70574
20019 * fwprop.c (forward_propagate_and_simplify): Don't add
20020 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
20021 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
20022 paradoxical subregs within *loc.
20023
20024 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
20025
20026 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
20027 -ftree-parallelize-loops={0,1}.
20028 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
20029 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
20030 * config/ia64/hpux.h (LIB_SPEC): Likewise.
20031 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20032 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
20033
20034 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
20035
20036 PR sanitizer/70541
20037 * asan.c (instrument_derefs): If we get unknown location, extract it
20038 with EXPR_LOCATION.
20039 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
20040
20041 2016-04-08 Tom de Vries <tom@codesourcery.com>
20042
20043 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
20044 implicit firstprivate clause.
20045
20046 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20047
20048 PR target/70566
20049 * config/arm/thumb2.md (tst + branch-> lsls + branch
20050 peephole below *orsi_not_shiftsi_si): Require that condition
20051 register is dead after the peephole.
20052 (second peephole after the above): Likewise.
20053
20054 2016-04-08 Alan Modra <amodra@gmail.com>
20055
20056 PR target/70117
20057 * builtins.c (fold_builtin_classify): For IBM extended precision,
20058 look at just the high-order double to test for NaN.
20059 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
20060 test just the high double for Inf but both doubles for subnormal
20061 limit.
20062
20063 2016-04-07 Jakub Jelinek <jakub@redhat.com>
20064
20065 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
20066 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
20067 node->simdclone->mask_mode != VOIDmode masks.
20068 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
20069 earlier, use it instead of node->simdclone.
20070 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
20071 Set clonei->mask_mode.
20072
20073 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
20074
20075 PR c/70436
20076 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
20077 Pass it through to cp_parser_already_scoped_statement.
20078 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
20079 it through to cp_parser_statement.
20080 (cp_parser_statement): Pass IF_P through to
20081 cp_parser_iteration_statement.
20082 (cp_parser_pragma): Adjust call to
20083 cp_parser_iteration_statement.
20084
20085 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
20086
20087 PR c/70436
20088 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
20089 resolve a future -Wparentheses warning.
20090 * omp-low.c (scan_sharing_clauses): Likewise.
20091 * tree-parloops.c (eliminate_local_variables): Likewise.
20092
20093 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
20094
20095 PR rtl-optimization/70398
20096 * lra-constraints.c (process_address_1): Check zero scale and code
20097 for reloading with zero scale.
20098
20099 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
20100
20101 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
20102 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
20103
20104 2016-04-06 Jakub Jelinek <jakub@redhat.com>
20105
20106 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
20107 Add support for AVX512F clones, include them by default for
20108 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
20109 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
20110 up to 128.
20111
20112 PR middle-end/70550
20113 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
20114 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
20115 firstprivate clauses.
20116 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
20117 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
20118 (lower_omp_target): Set TREE_NO_WARNING for
20119 non-addressable possibly uninitialized vars which are copied into
20120 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
20121
20122 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
20123
20124 * config/pa/predicates.md (integer_store_memory_operand): Accept
20125 REG+D operands with a large offset when reload_in_progress is true.
20126 (floating_point_store_memory_operand): Likewise.
20127
20128 2016-04-05 Jakub Jelinek <jakub@redhat.com>
20129
20130 PR c++/70336
20131 * match.pd (nested int casts): Limit to GIMPLE.
20132
20133 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
20134
20135 PR ipa/66223
20136 * ipa-devirt.c (maybe_record_node): Fix comment; use
20137 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
20138
20139 2016-04-05 Jakub Jelinek <jakub@redhat.com>
20140
20141 PR rtl-optimization/70542
20142 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
20143 if there are any uses other than insn or debug insns.
20144
20145 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
20146 Jakub Jelinek <jakub@redhat.com>
20147
20148 PR tree-optimization/70509
20149 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
20150 Shift HOST_WIDE_INT_1U instead of 1.
20151
20152 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
20153
20154 PR tree-optimization/70509
20155 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
20156 of the vector base type for index.
20157
20158 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
20159
20160 PR target/70510
20161 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
20162
20163 2016-04-05 Richard Biener <rguenther@suse.de>
20164
20165 PR tree-optimization/70526
20166 * tree-sra.c (build_ref_for_offset): Use prev_base to
20167 extract the alias pointer type.
20168
20169 2016-04-05 Richard Biener <rguenther@suse.de>
20170
20171 * dse.c (struct store_info): Remove alias_set member.
20172 (struct read_info_type): Likewise.
20173 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
20174 spill_deleted, clear_alias_set_lookup): Remove.
20175 (get_group_info): Remove dead base == NULL_RTX case.
20176 (dse_step0): Remove initialization of removed variables.
20177 (delete_dead_store_insn): Reomve alias set dumping.
20178 (free_read_records): Remove alias_set handling.
20179 (canon_address): Remove alias_set_out parameter.
20180 (record_store): Remove spill_alias_set, it's always zero.
20181 (check_mem_read_rtx): Likewise.
20182 (dse_step2): Rename from ...
20183 (dse_step2_nospill): ... this. Adjust.
20184 (scan_stores): Rename from ...
20185 (scan_stores_nospill): ... this.
20186 (scan_reads): Rename from ...
20187 (scan_reads_nospill): ... this.
20188 (scan_stores_spill, scan_reads_spill): Remove.
20189 (dse_step3_scan): Remove for_spills argument which is always false.
20190 (dse_step3): Likewise.
20191 (dse_step5): Rename from ...
20192 (dse_step5_nospill): ... this. Remove alias_set handling.
20193 (rest_of_handle_dse): Adjust.
20194
20195 2016-04-05 Jakub Jelinek <jakub@redhat.com>
20196
20197 PR target/70525
20198 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
20199 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
20200 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
20201 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
20202
20203 2016-04-05 Richard Biener <rguenther@suse.de>
20204
20205 PR middle-end/70499
20206 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
20207 non-register type temporaries into SSA.
20208
20209 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
20210
20211 PR ipa/66223
20212 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
20213 calls when sanitizing.
20214 (possible_polymorphic_call_target_p): Fix formatting.
20215
20216 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20217 Jakub Jelinek <jakub@redhat.com>
20218
20219 PR middle-end/70457
20220 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
20221 to ensure a call statement is compatible with a built-in's
20222 prototype.
20223 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
20224 Likewise.
20225
20226 2016-04-04 Richard Biener <rguenther@suse.de>
20227
20228 PR rtl-optimization/70484
20229 * rtl.h (canon_output_dependence): Declare.
20230 * alias.c (canon_output_dependence): New function.
20231 * dse.c (record_store): Use canon_output_dependence rather
20232 than canon_true_dependence.
20233
20234 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
20235
20236 PR ipa/68881
20237 * cgraph.h (symtab_node::copy_visibility_from): New function.
20238 * symtab.c (symtab_node::copy_visibility_from): New function.
20239 * ipa-visibility.c (optimize_weakref): New function.
20240 (function_and_variable_visibility): Use it.
20241
20242 2016-04-04 Martin Liska <mliska@suse.cz>
20243
20244 PR hsa/70402
20245 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
20246 value that is really in range handled by SBR instruction.
20247 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
20248 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
20249 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
20250
20251 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
20252
20253 PR target/70416
20254 PR target/67391
20255 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
20256 set, but not for SP_REG operands.
20257
20258 2016-04-02 Martin Sebor <msebor@redhat.com>
20259
20260 PR c++/67376
20261 * fold-const.c (maybe_nonzero_address): New function.
20262 (fold_comparison): Call it. Fold equality and relational
20263 expressions involving null pointers.
20264 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
20265
20266 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
20267
20268 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
20269 the "Y" constraint (scalar FP 0.0 immediate).
20270
20271 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
20272 Add the "const_double" to the list of operand constraints.
20273
20274 2016-04-01 Jakub Jelinek <jakub@redhat.com>
20275
20276 PR rtl-optimization/70467
20277 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
20278 If low word of the last operand is 0, just emit addition/subtraction
20279 for the high word.
20280
20281 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20282
20283 PR target/70404
20284 * config/s390/s390.c (s390_expand_insv): Check for everything
20285 constant instead of just VOIDmode stuff.
20286
20287 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20288
20289 PR target/70496
20290 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
20291
20292 2016-04-01 Nathan Sidwell <nathan@acm.org>
20293
20294 * tree.def (TRY_CATCH_EXPR): Correct documentation.
20295
20296 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
20297
20298 PR rtl-optimization/70461
20299 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
20300 is necessary.
20301
20302 2016-03-31 Martin Liska <mliska@suse.cz>
20303
20304 PR hsa/70399
20305 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
20306 a tree value or an immediate integer value to a buffer
20307 that is eventually copied to a BRIG section.
20308 (emit_immediate_operand): Call the function here.
20309 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
20310 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
20311 of class' fields that are removed.
20312 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
20313 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
20314 m_brig_repr_size fields.
20315
20316 2016-03-31 Martin Liska <mliska@suse.cz>
20317
20318 PR hsa/70391
20319 * hsa-gen.c (hsa_function_representation::update_dominance): New
20320 function.
20321 (convert_addr_to_flat_segment): Likewise.
20322 (gen_hsa_memory_set): New alignment argument.
20323 (gen_hsa_ctor_assignment): Likewise.
20324 (gen_hsa_insns_for_single_assignment): Provide alignment
20325 to gen_hsa_ctor_assignment.
20326 (gen_hsa_insns_for_direct_call): Add new argument.
20327 (expand_lhs_of_string_op): New function.
20328 (expand_string_operation_builtin): Likewise.
20329 (expand_memory_copy): New function.
20330 (expand_memory_set): New function.
20331 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
20332 (convert_switch_statements): Change signature.
20333 (generate_hsa): Use a return value of the function.
20334 (pass_gen_hsail::execute): Do not call
20335 convert_switch_statements here.
20336 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
20337 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
20338 (hsa_function_representation::update_dominance): New function.
20339
20340 2016-03-31 Martin Liska <mliska@suse.cz>
20341
20342 PR hsa/70391
20343 * hsa-brig.c (emit_directive_variable): Emit alignment
20344 according to hsa_symbol::m_align.
20345 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
20346 (dump_hsa_symbol): Dump alignment of HSA symbols.
20347 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
20348 (gen_hsa_addr_with_align): New function.
20349 (hsa_bitmemref_alignment): Use newly added function.
20350 (gen_hsa_insns_for_load): Likewise.
20351 (gen_hsa_insns_for_store): Likewise.
20352 (gen_hsa_memory_copy): New argument added.
20353 (gen_hsa_insns_for_single_assignment): Respect
20354 alignment for assignments processed via gen_hsa_memory_copy.
20355 (gen_hsa_insns_for_direct_call): Likewise.
20356 (gen_hsa_insns_for_return): Likewise.
20357 (gen_function_def_parameters): Set default alignment.
20358 * hsa.c (hsa_object_alignment): New function.
20359 (hsa_byte_alignment): Pasted function.
20360 * hsa.h (hsa_symbol::m_align): New field.
20361
20362 2016-03-31 Bin Cheng <bin.cheng@arm.com>
20363
20364 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
20365 scratch field for goto case.
20366
20367 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
20368
20369 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
20370
20371 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
20372
20373 PR target/70442
20374 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
20375 (scalar_chain::convert_insn): Call convert_op for reg
20376 moves to handle undefined registers.
20377
20378 2016-03-31 Nathan Sidwell <nathan@acm.org>
20379
20380 PR c++/70393
20381 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
20382 Assert we don't want to move backwards.
20383
20384 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
20385
20386 PR target/70453
20387 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
20388
20389 2016-03-31 Jakub Jelinek <jakub@redhat.com>
20390
20391 PR rtl-optimization/70460
20392 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
20393 with operand from REG_LABEL_OPERAND, instead substitute
20394 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
20395 Don't do anything for REG_NON_LOCAL_GOTO jumps.
20396
20397 2016-03-31 Martin Liska <mliska@suse.cz>
20398
20399 * passes.c (execute_one_pass): Do not call
20400 todo_after for a discarded function.
20401
20402 2016-03-31 Bin Cheng <bin.cheng@arm.com>
20403
20404 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
20405 (no_cost, infinite_cost): Initialize the new field.
20406 (get_computation_cost_at): Record setup cost.
20407 (determine_use_iv_cost_address): Skip cost computation for sub
20408 uses if we can estimate it without losing accuracy.
20409
20410 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
20411
20412 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
20413 estimates here.
20414 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
20415 max_loop_iterations_int.
20416 (tree_unswitch_outer_loop): Likewise.
20417 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
20418 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
20419
20420 2016-03-30 Richard Biener <rguenther@suse.de>
20421
20422 PR middle-end/70450
20423 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
20424
20425 2016-03-30 Jakub Jelinek <jakub@redhat.com>
20426
20427 PR target/70421
20428 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
20429 in gen_blendm expander.
20430
20431 2016-03-30 Nick Clifton <nickc@redhat.com>
20432
20433 PR target/62254
20434 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
20435 case where we are already provided with an SImode SUBREG.
20436
20437 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
20438
20439 PR target/70439
20440 * config/i386/i386.c (ix86_expand_epilogue): Properly check
20441 conflict between DRAP register and __builtin_eh_return.
20442
20443 2016-03-30 Michael Matz <matz@suse.de>
20444 Richard Biener <rguenther@suse.de>
20445
20446 PR ipa/12392
20447 * ipa-polymorphic-call.c (struct type_change_info): Change
20448 speculative to an unsigned allowing to limit the work we do.
20449 (csftc_abort_walking_p): New inline function..
20450 (check_stmt_for_type_change): Limit the number of may-defs
20451 skipped for speculative devirtualization to
20452 max-speculative-devirt-maydefs.
20453 * params.def (max-speculative-devirt-maydefs): New param.
20454 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
20455
20456 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
20457
20458 PR target/63890
20459 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
20460 and TARGET_MACHO.
20461
20462 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
20463
20464 PR tree-optimization/59124
20465 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
20466 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
20467
20468 2016-03-29 Jeff Law <law@redhat.com>
20469
20470 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
20471
20472 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20473
20474 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
20475 to HOST_WIDE_INT.
20476
20477 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
20478
20479 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
20480 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
20481 gcrt0.o if linking dynamically.
20482
20483 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20484
20485 PR ipa/70283
20486 * ipa-devirt.c (methods_equal_p): New function.
20487 (compare_virtual_tables): Use it.
20488 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
20489 * cgraphclones.c (clone_function_name_1): Use
20490 symbol_table::symbol_suffix_separator.
20491 * coverage.c (build_var): Likewise.
20492 * symtab.c (symbol_table::symbol_suffix_separator): New.
20493
20494 2016-03-29 Jakub Jelinek <jakub@redhat.com>
20495
20496 PR rtl-optimization/70429
20497 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
20498 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
20499 mode != result_mode.
20500
20501 PR c++/70353
20502 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
20503
20504 PR tree-optimization/70405
20505 * ssa-iterators.h (num_imm_uses): Add missing braces.
20506
20507 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
20508
20509 PR rtl-optimization/68695
20510 * ira-color.c (allocno_copy_cost_saving): New.
20511 (improve_allocation): Use it.
20512
20513 2016-03-29 Richard Henderson <rth@redhat.com>
20514
20515 PR middle-end/70355
20516 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
20517
20518 2016-03-29 Richard Biener <rguenther@suse.de>
20519
20520 PR middle-end/70424
20521 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
20522 use alignment returned by get_pointer_alignment_1 if it is
20523 bigger than BITS_PER_UNIT.
20524 * builtins.c (get_pointer_alignment_1): Do not return true
20525 for alignment extracted from SSA info.
20526
20527 2016-03-28 James Bowman <james.bowman@ftdichip.com>
20528
20529 * config/ft32/ft32.opt (mnodiv): New.
20530 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
20531 * doc/invoke.texi (FT32 Options -mnodiv): New.
20532
20533 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
20534
20535 PR target/70406
20536 * config/i386/i386.md (define_split, andn): Fix modes.
20537
20538 2016-03-26 Richard Biener <rguenther@suse.de>
20539 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20540
20541 PR ipa/70366
20542 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
20543 instead of
20544 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
20545 as 2nd argument to cl_optimization_restore().
20546
20547 2016-03-25 Richard Henderson <rth@redhat.com>
20548
20549 PR target/70120
20550 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
20551 * config/aarch64/aarch64-protos.h: Declare it.
20552 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
20553
20554 2016-03-25 Alan Modra <amodra@gmail.com>
20555
20556 PR target/70052
20557 * config/rs6000/constraints.md (j): Simplify.
20558 * config/rs6000/predicates.md (easy_fp_constant): Exclude
20559 decimal float 0.D.
20560 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
20561 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
20562 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
20563 in all constraint alternatives.
20564 (movtd_64bit_nodm): Delete "j" constraint alternative.
20565
20566 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
20567
20568 * tree-ssa-propagate.c: Enhance docs for
20569 SSA_PROP_NOT_INTERESTING.
20570
20571 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
20572
20573 * doc/extend.texi: Fix typo in documentation to pure attribute.
20574
20575 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
20576
20577 PR target/70319
20578 * config/pa/pa.md (bswapdi2): Use a scratch register.
20579
20580 2016-03-24 Richard Henderson <rth@redhat.com>
20581
20582 PR middle-end/69845
20583 * fold-const.c (extract_muldiv_1): Correct test for multiplication
20584 overflow.
20585
20586 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
20587
20588 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
20589 using ix86_expand_binary_operator instead of gen_andsi3.
20590
20591 2016-03-24 Richard Biener <rguenther@suse.de>
20592
20593 PR tree-optimization/70396
20594 * tree-vect-stmts.c (vectorizable_comparison): Use
20595 get_vectype_for_scalar_type.
20596
20597 2016-03-24 Richard Biener <rguenther@suse.de>
20598
20599 PR middle-end/70370
20600 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
20601 with register bases.
20602
20603 2016-03-24 Richard Biener <rguenther@suse.de>
20604
20605 PR tree-optimization/70372
20606 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
20607 build_all_ones_cst to also handle vector types correctly.
20608
20609 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
20610
20611 PR target/70381
20612 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
20613 -mfloat128 here.
20614
20615 2016-03-23 Marek Polacek <polacek@redhat.com>
20616
20617 PR c++/69884
20618 * doc/invoke.texi: Document -Wignored-attributes.
20619
20620 2016-03-23 Bin Cheng <bin.cheng@arm.com>
20621
20622 PR tree-optimization/69042
20623 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
20624 parameter from 30 to 40.
20625
20626 2016-03-23 Bin Cheng <bin.cheng@arm.com>
20627
20628 PR tree-optimization/69042
20629 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
20630 for use with constant offset stripped in base.
20631
20632 2016-03-23 Richard Biener <rguenther@suse.de>
20633
20634 PR middle-end/70251
20635 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
20636 mode compatibility check.
20637 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
20638
20639 2016-03-23 Jeff Law <law@redhat.com>
20640
20641 PR tree-optimization/64058
20642 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
20643 CONFLICT_COUNT.
20644 (struct ssa_conflicts): Move up earlier in the file.
20645 (conflicts_, var_map_): New static variables.
20646 (initialize_conflict_count): New function to initialize the
20647 CONFLICT_COUNT field for each conflict pair.
20648 (compare_pairs): Lazily initialize the conflict count and use it
20649 as the first tie-breaker.
20650 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
20651 and wipe conflicts_ and map_ around the call to qsort. Remove
20652 special case for 2 coalesce pairs.
20653 * bitmap.c (bitmap_count_unique_bits): New function.
20654 (bitmap_count_bits_in_word): New function, extracted from
20655 bitmap_count_bits.
20656 (bitmap_count_bits): Use bitmap_count_bits_in_word.
20657 * bitmap.h (bitmap_count_unique_bits): Declare it.
20658
20659 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
20660
20661 PR target/69917
20662 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
20663 transparent alias chain for decl assembler name.
20664 * config/sol2.c (solaris_assemble_visibility): Likewise.
20665
20666 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20667
20668 * config/arm/arm1020e.md (1020call_op): Reduce reservation
20669 duration.
20670 (v10_fdivs): Likewise.
20671 (v10_fdivd): Likewise.
20672
20673 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20674
20675 PR driver/70132
20676 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
20677 to not call fclose twice on file.
20678
20679 2016-03-23 Jakub Jelinek <jakub@redhat.com>
20680
20681 PR tree-optimization/70354
20682 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
20683 oprnd0 is wider than oprnd1 and there is a cast from the wider
20684 type to oprnd1, mask it with the mask of the narrower type.
20685
20686 PR target/70321
20687 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
20688 Optimize TARGET_STV splitters, if high or low word of last argument
20689 is 0 or -1.
20690
20691 2016-03-22 Jeff Law <law@redhat.com>
20692
20693 PR target/70232
20694 tree-ssa-threadbackward.c
20695 (fsm_find_control_statement_thread_paths): Correctly distinguish
20696 between old style jump threads vs FSM jump threads.
20697
20698 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
20699
20700 PR target/70302
20701 * config/i386/i386.c (scalar_chain::convert_op): Support
20702 uninitialized register usage case.
20703
20704 2016-03-22 Richard Biener <rguenther@suse.de>
20705
20706 PR middle-end/70251
20707 * genmatch.c (gen_transform): Adjust last parameter to a three-state
20708 int...
20709 (capture::gen_transform): ... to change behavior when substituting
20710 a condition into cond or not-cond expr context.
20711 (dt_simplify::gen_1): Adjust.
20712 * gimple-match-head.c: Include gimplify.h for unshare_expr.
20713 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
20714 last change and instead change to
20715 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
20716 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
20717
20718 2016-03-22 Anthony Green <green@moxielogic.com>
20719
20720 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
20721 issue for moxiebox targets.
20722 (CC1PLUS_SPEC): Ditto.
20723
20724 2016-03-22 Richard Biener <rguenther@suse.de>
20725
20726 PR middle-end/70333
20727 * fold-const.c (extract_muldiv_1): Properly perform multiplication
20728 in the wide type.
20729
20730 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
20731
20732 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
20733
20734 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
20735
20736 PR target/70325
20737 * config/i386/i386.c (def_builtin): Handle
20738 OPTION_MASK_ISA_AVX512VL to be and-ed with other
20739 bits.
20740 (const struct builtin_description bdesc_special_args[]):
20741 Remove duplicate ISA bits.
20742
20743 2016-03-22 Jakub Jelinek <jakub@redhat.com>
20744
20745 PR target/70329
20746 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
20747 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
20748 in a way that works also for AVX512BW.
20749
20750 PR target/70300
20751 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
20752 instead of source if operands[1] is xmm16 and above and
20753 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
20754 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
20755
20756 PR c++/70295
20757 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
20758 on assign if (*from_p) is a comparison, set it to
20759 TREE_NO_WARNING (*from_p).
20760
20761 2016-03-21 Jakub Jelinek <jakub@redhat.com>
20762
20763 PR middle-end/70326
20764 * lra.c (restore_scratches): Ignore deleted insns.
20765
20766 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
20767 Jakub Jelinek <jakub@redhat.com>
20768
20769 PR tree-optimization/70317
20770 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
20771 to HONOR_NANS.
20772
20773 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
20774
20775 PR target/70327
20776 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
20777 of ix86_expand_move.
20778 (movoi): Ditto.
20779 (movti): Use general_operand for operand 1 predicate.
20780
20781 2016-03-21 Martin Liska <mliska@suse.cz>
20782
20783 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
20784 insns.
20785 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
20786
20787 2016-03-21 Martin Liska <mliska@suse.cz>
20788
20789 PR ipa/70306
20790 * ipa-icf.c (sem_function::parse): Skip static
20791 constructors and destructors.
20792
20793 2016-03-21 Jakub Jelinek <jakub@redhat.com>
20794
20795 PR target/70296
20796 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
20797 function-like macro, peek following token(s) if it is followed
20798 by CPP_OPEN_PAREN token with optional padding in between, and
20799 if not, don't treat it like a macro.
20800
20801 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
20802 Alexander Monakov <amonakov@ispras.ru>
20803
20804 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
20805 for the stabs debug format.
20806
20807 2016-03-21 Richard Biener <rguenther@suse.de>
20808
20809 PR tree-optimization/70310
20810 * tree-vect-generic.c (expand_vector_condition): Fold the built
20811 condition.
20812
20813 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
20814
20815 PR target/70293
20816 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
20817 Block third alternative for AVX-512VL target,
20818
20819 2016-03-21 Martin Liska <mliska@suse.cz>
20820
20821 PR hsa/70234
20822 * hsa-brig.c (emit_function_directives): Mark unemitted
20823 global variables for emission.
20824 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
20825 (get_symbol_for_decl): Likewise.
20826 * hsa.h (struct hsa_symbol): New flag.
20827
20828 2016-03-21 Richard Biener <rguenther@suse.de>
20829
20830 PR tree-optimization/70288
20831 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
20832 we do not estimate unsimplified all-constant conditionals or
20833 switches as optimized away.
20834
20835 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
20836
20837 PR rtl-optimization/69102
20838 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
20839 when we have a readonly dependency context.
20840
20841 2016-03-18 Jeff Law <law@redhat.com>
20842
20843 PR rtl-optimization/70263
20844 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
20845 (update_equiv_regs): When trying to move a store to after the insn
20846 that sets the source of the store, make sure the store occurs after
20847 the insn that sets the source of the store. When successful note
20848 the REG_EQUIV note created in the dump file.
20849
20850 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
20851 Bernd Schmidt <bschmidt@redhat.com>
20852
20853 * doc/extend.texi: Document more potential problems with basic asms.
20854
20855 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
20856
20857 PR rtl-optimization/70278
20858 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
20859 VOIDmode.
20860
20861 2016-03-18 Jason Merrill <jason@redhat.com>
20862
20863 * calls.c (load_register_parameters): Fix zero size sibcall logic.
20864
20865 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
20866
20867 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
20868 values to 128b regs.
20869
20870 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
20871
20872 PR tree-optimization/70252
20873 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
20874 boolean vector has a proper number of elements.
20875 (supportable_narrowing_operation): Likewise.
20876
20877 2016-03-18 Tom de Vries <tom@codesourcery.com>
20878
20879 PR ipa/70269
20880 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
20881
20882 2016-03-18 Jakub Jelinek <jakub@redhat.com>
20883
20884 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
20885 instead of replace_rtx for DEBUG_INSNs.
20886
20887 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20888
20889 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
20890 load type reservations.
20891
20892 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
20893
20894 PR target/70188
20895 * config/pa/constraints.md: Revert 2015-02-13 change. Use
20896 define_constraint for "Q" and "T" constraints.
20897
20898 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
20899
20900 Tweak the pipeline model for Exynos M1
20901
20902 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
20903 model.
20904
20905 2016-03-17 David Malcolm <dmalcolm@redhat.com>
20906
20907 PR c/70264
20908 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
20909 where one or both locations aren't within a line_map.
20910
20911 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
20912
20913 PR driver/70192
20914 * opts.c (finish_options): Don't set flag_pie to the default if
20915 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
20916 if it is -1.
20917
20918 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
20919
20920 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
20921 true as ALL_REGS argument to replace_rtx.
20922
20923 2016-03-17 Richard Biener <rguenther@suse.de>
20924
20925 PR debug/70271
20926 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
20927 last.
20928
20929 2016-03-17 Jakub Jelinek <jakub@redhat.com>
20930
20931 PR target/70245
20932 * rtl.h (replace_rtx): Add ALL_REGS argument.
20933 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
20934 equality and assert mode is the same, instead of just rtx pointer
20935 equality.
20936 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
20937 true as ALL_REGS argument to replace_rtx.
20938
20939 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
20940
20941 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
20942 for boolean vector with vector mode only.
20943 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
20944
20945 2016-03-17 Nick Clifton <nickc@redhat.com>
20946
20947 PR target/70162
20948 * config/rx/rx.c (rx_print_integer): Print negative constants in
20949 decimal.
20950
20951 2016-03-17 Jakub Jelinek <jakub@redhat.com>
20952
20953 PR target/70261
20954 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
20955
20956 2016-03-16 Richard Henderson <rth@redhat.com>
20957 Richard Biener <rguenth@suse.de>
20958
20959 PR middle-end/70240
20960 PR middle-end/68215
20961 PR tree-opt/68714
20962 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
20963 first operand as is_gimple_condexpr.
20964
20965 PR middle-end/70240
20966 PR middle-end/68215
20967 Revert r231575
20968 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
20969 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
20970 Do not gimplify the result.
20971 (do_unop): Adjust call to tree_vec_extract.
20972 (do_binop): Likewise.
20973 (do_compare): Likewise.
20974 (do_plus_minus): Likewise.
20975 (do_negate): Likewise.
20976 (expand_vector_condition): Likewise.
20977 (do_cond): Likewise.
20978
20979 2016-03-16 Richard Henderson <rth@redhat.com>
20980
20981 PR target/70048
20982 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
20983 (aarch64_classify_address): Use it.
20984 (aarch64_legitimize_address): Force all subexpressions of PLUS
20985 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
20986
20987 2016-03-16 Jakub Jelinek <jakub@redhat.com>
20988 Richard Biener <rguenth@suse.de>
20989
20990 PR target/70245
20991 * rtlanal.c (replace_rtx): For REG, if from is a REG,
20992 return to even if only REGNO is equal, and assert
20993 mode is the same.
20994
20995 2016-03-11 Jeff Law <law@redhat.com>
20996
20997 PR rtl-optimization/70224
20998 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
20999
21000 2016-03-16 Richard Henderson <rth@redhat.com>
21001
21002 PR middle-end/70199
21003 * function.h (struct function): Add has_forced_label_in_static.
21004 * gimplify.c (force_labels_r): Set it.
21005 * lto-streamer-in.c (input_struct_function_base): Read it.
21006 * lto-streamer-out.c (output_struct_function_base): Write it.
21007 * tree-inline.c (has_label_address_in_static_1): Remove.
21008 (copy_forbidden): Remove fndecl parameter; test
21009 has_forced_label_in_static.
21010 (inline_forbidden_p): Update call to copy_forbidden.
21011 (tree_versionable_function_p): Likewise.
21012 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
21013 (chkp_versioning): Likewise.
21014 * tree-inline.h (copy_forbidden): Update decl.
21015
21016 2016-03-16 Marek Polacek <polacek@redhat.com>
21017
21018 PR c/70093
21019 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
21020 function being thunked if the result type doesn't have fixed size.
21021 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
21022 doesn't have fixed size.
21023
21024 2016-03-16 Bin Cheng <bin.cheng@arm.com>
21025
21026 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
21027 reporting malformed loop nest.
21028
21029 2016-03-16 Tom de Vries <tom@codesourcery.com>
21030
21031 PR lto/70187
21032 * ipa-devirt.c (possible_polymorphic_call_targets): Move
21033 nodes.length () == 1 test to before first nodes[0] access.
21034
21035 2016-03-16 Tom de Vries <tom@codesourcery.com>
21036
21037 PR tree-optimization/68715
21038 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
21039 single_pred_p test.
21040
21041 2016-03-16 Tom de Vries <tom@codesourcery.com>
21042
21043 PR tree-optimization/68809
21044 * graphite-scop-detection.c (same_close_phi_node): Test if result types
21045 are the same.
21046
21047 2016-03-16 Carlos O'Donell <carlos@redhat.com>
21048 Sandra Loosemore <sandra@codesourcery.com>
21049
21050 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
21051 on leaf attribute. Mention ELF interposition problems.
21052
21053 2016-03-16 Alan Modra <amodra@gmail.com>
21054
21055 PR rtl-optimization/69195
21056 PR rtl-optimization/47992
21057 * ira.c (indirect_jump_optimize): Ignore artificial defs.
21058 Add comments.
21059
21060 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
21061
21062 PR bootstrap/69513
21063 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
21064
21065 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
21066
21067 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
21068
21069 2016-03-15 Jakub Jelinek <jakub@redhat.com>
21070
21071 PR rtl-optimization/70222
21072 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
21073 optimization if mode is different from result_mode, queue up masking
21074 of the result in outer_op. Formatting fix.
21075
21076 PR middle-end/70239
21077 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
21078 of safe_grow.
21079
21080 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
21081
21082 PR rtl-optimization/69032
21083 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
21084 looping backwards over basic block insns.
21085
21086 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
21087
21088 PR target/66660
21089 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
21090 to non-speculative when propagating trap bits.
21091
21092 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
21093
21094 PR rtl-optimization/63384
21095 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
21096 DEBUG_INSN_P insns.
21097
21098 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
21099
21100 PR target/64411
21101 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
21102 factored out from ...
21103 (sched_analyze_insn): ... here.
21104 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
21105 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
21106 get_implicit_reg_pending_clobbers in it.
21107 (setup_id_reg_sets): Use setup_id_implicit_regs.
21108 (deps_init_id): Ditto.
21109
21110 2016-03-15 Tom de Vries <tom@codesourcery.com>
21111
21112 PR ipa/70161
21113 * cgraph.c (cgraph_node::get_body): Save, reset and restore
21114 dump_file_name.
21115 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
21116 execute_function_dump.
21117 (execute_one_pass): Don't dump function if it will be dumped after ipa
21118 transform.
21119
21120 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
21121
21122 * genrecog.c (match_pattern_2): If pred is NULL don't call
21123 safe_predicate_mode on it.
21124
21125 2016-03-14 Jakub Jelinek <jakub@redhat.com>
21126
21127 PR middle-end/70219
21128 * lra-constraints.c (delete_move_and_clobber): Change assertion
21129 to also allow dregno == 0.
21130
21131 2016-03-14 Richard Henderson <rth@redhat.com>
21132
21133 PR tree-opt/68714
21134 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
21135 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
21136 (reassociate_bb): Use optimize_vec_cond_expr; avoid
21137 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
21138 on vectors.
21139
21140 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
21141
21142 PR target/70083
21143 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
21144 regs.
21145 (lra_create_live_ranges_1): initialize hard register biggest_mode to
21146 VOIDmode.
21147 * lra-constraints.c (split_reg): For hard regs, try to find the
21148 biggest single-register mode used in the function.
21149
21150 2016-03-14 Richard Biener <rguenther@suse.de>
21151
21152 PR tree-optimization/56365
21153 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
21154 constants to compare against.
21155
21156 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
21157
21158 PR target/70098
21159 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
21160 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
21161 (define_split for the GPR case): Use int_reg_operand instead of
21162 gpc_reg_operand for the output.
21163
21164 2016-03-14 Tom de Vries <tom@codesourcery.com>
21165
21166 PR tree-optimization/70045
21167 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
21168 create_empty_if_region_on_edge argument.
21169
21170 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
21171
21172 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
21173 (STACK_CHECK_PROTECT): Likewise.
21174 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
21175 (STACK_CHECK_PROTECT): Likewise.
21176 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
21177 (STACK_CHECK_PROTECT): Likewise.
21178 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
21179 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21180 (STACK_CHECK_PROTECT): Likewise.
21181
21182 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
21183
21184 PR rtl-optimization/69307
21185 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
21186 registers in modes that span more than one register.
21187
21188 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
21189
21190 PR target/69614
21191 * lra-constraints.c (delete_move_and_clobber): New.
21192 (remove_inheritance_pseudos): Use it.
21193
21194 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
21195
21196 PR ada/70017
21197 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
21198 the libcall is LCT_THROW.
21199 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
21200 for the checking routine.
21201
21202 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
21203
21204 PR target/70131
21205 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
21206 optimization if we have direct move.
21207 (roundu32<mode>2_fprs): Likewise.
21208
21209 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
21210
21211 PR target/70123
21212 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
21213 be rematerialized.
21214 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
21215 Arguments swapped. All callers changed. Take reg_renumber into
21216 account, and Calculate and compare register ranges for hard regs.
21217
21218 2016-03-11 Jeff Law <law@redhat.com>
21219
21220 PR tree-optimization/70190
21221 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
21222 Handle cases where we can not extract the taken edge, even though we
21223 found a constant value.
21224
21225 PR tree-optimization/64058
21226 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
21227 (num_coalesce_pairs): Move up earlier in file.
21228 (find_coalesce_pair): Initialize the INDEX field for each pair
21229 discovered.
21230 (compare_pairs): No longer sort on the elements in each pair.
21231 Instead break ties with the index of the coalesce pair.
21232
21233 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21234
21235 PR target/70002
21236 * config/aarch64/aarch64-protos.h
21237 (aarch64_save_restore_target_globals): New prototype.
21238 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
21239 Call the above when popping pragma.
21240 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
21241 New function.
21242 (aarch64_set_current_function): Rewrite using the above.
21243
21244 2016-03-11 Jakub Jelinek <jakub@redhat.com>
21245
21246 PR tree-optimization/70177
21247 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
21248 (extract_ops_from_tree): ... this. In the 2 argument
21249 overload remove _1 suffix.
21250 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
21251 (extract_ops_from_tree): ... this.
21252 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
21253 Adjust callers.
21254 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
21255 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
21256 extract_ops_from_tree instead of 2 operand one.
21257
21258 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
21259
21260 PR tree-optimization/70013
21261 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
21262 for constant-pool entries.
21263
21264 2016-03-11 Jakub Jelinek <jakub@redhat.com>
21265
21266 PR rtl-optimization/70174
21267 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
21268 followed by gen_lowpart on force_reg instead of just gen_lowpart.
21269
21270 PR tree-optimization/70169
21271 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
21272 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
21273 for unknown codes.
21274
21275 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
21276 Jakub Jelinek <jakub@redhat.com>
21277
21278 PR target/70160
21279 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
21280 of uninitialized values.
21281
21282 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21283
21284 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
21285 define_expand.
21286 ("*trunctddd2"): New pattern definition.
21287 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
21288 TD->DD truncation.
21289
21290 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21291
21292 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
21293 definitions for BFP and DFP rounding modes.
21294 ("fixuns_truncdddi2", "fixuns_trunctddi2")
21295 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
21296 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
21297 ("fix_trunctf<mode>2"): Use the new constants instead of magic
21298 numbers.
21299
21300 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21301
21302 * config/s390/constraints.md: Adjust comment.
21303 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
21304 s390_decompose_addrstyle_without_index.
21305 * config/s390/predicates.md (shift_count_or_setmem_operand):
21306 Rename to setmem_operand.
21307 * config/s390/s390-protos.h
21308 (s390_decompose_shift_count): Rename to
21309 s390_decompose_addrstyle_without_index.
21310 * config/s390/s390.c (s390_decompose_shift_count)
21311 (s390_mem_constraint, print_shift_count_operand)
21312 (print_operand_address, print_operand): Rename
21313 s390_decompose_shift_count to
21314 s390_decompose_addrstyle_without_index and rename
21315 print_shift_count_operand to print_addrstyle_operand troughout the
21316 file.
21317 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
21318 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
21319 Rename shift_count_or_setmem_operand to setmem_operand.
21320 * config/s390/vx-builtins.md ("vec_insert<mode>")
21321 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
21322 nonmemory_operand.
21323
21324 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21325
21326 PR target/70168
21327 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
21328 Handle overlapping retval and newval.
21329
21330 2016-03-10 Nick Clifton <nickc@redhat.com>
21331
21332 PR target/7044
21333 * config/aarch64/aarch64.c
21334 (aarch64_override_options_after_change_1): When forcing
21335 flag_omit_frame_pointer to be true, use a special value that can
21336 be detected if this function is called again, thus preventing
21337 flag_omit_leaf_frame_pointer from being forced to be false.
21338
21339 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21340
21341 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
21342 Set x_flag_omit_leaf_frame_pointer when handling
21343 -momit-leaf-frame-pointer.
21344
21345 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
21346
21347 PR lto/69589
21348 * cgraph.c (cgraph_node::dump): Dump split_part and
21349 indirect_call_target.
21350 * cgraph.h (cgraph_node): Add indirect_call_target flag.
21351 * ipa.c (has_addr_references_p): Cleanup.
21352 (is_indirect_call_target_p): New.
21353 (walk_polymorphic_call_targets): Do not mark virtuals that may be
21354 called indirectly as local.
21355 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
21356
21357 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
21358
21359 PR ipa/69630
21360 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
21361 on cxa_pure_virtual.
21362
21363 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
21364
21365 PR lto/69589
21366 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
21367
21368 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
21369
21370 PR lto/69589
21371 * tree.c (need_assembler_name_p): Only record main variant type names.
21372
21373 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
21374
21375 PR target/70113.
21376 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
21377 Always define to 0 or 1.
21378 (TARGET_FIX_ERR_A53_843419): New macro.
21379 * config/aarch64/aarch64-elf-raw.h
21380 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
21381 * config/aarch64/aarch64-linux.h: Likewise.
21382 * config/aarch64/aarch64.c
21383 (aarch64_override_options_after_change_1): Do not default
21384 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
21385 843419 is on.
21386 (aarch64_attributes): Handle fix-cortex-a53-843419.
21387 (aarch64_can_inline_p): Likewise.
21388 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
21389
21390 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
21391 Jakub Jelinek <jakub@redhat.com>
21392
21393 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
21394 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
21395 DECL_COMMONS if flag_unconstrained_commons is set.
21396 * tree-dfa.c (get_ref_base_and_extent): Likewise.
21397 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
21398 (funconstrained-commons): Document.
21399
21400 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
21401
21402 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
21403 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
21404
21405 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
21406
21407 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
21408 has a proper number of elements.
21409
21410 2016-03-10 Alan Modra <amodra@gmail.com>
21411
21412 PR rtl-optimization/69195
21413 PR rtl-optimization/47992
21414 * ira.c (recorded_label_ref): Delete.
21415 (update_equiv_regs): Return void.
21416 (indirect_jump_optimize): New function.
21417 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
21418 before regstat_compute_ri. Don't rebuild_jump_labels here.
21419 Delete update_regstat.
21420
21421 2016-03-10 Richard Biener <rguenther@suse.de>
21422
21423 PR tree-optimization/70128
21424 * tree-ssa-structalias.c (set_uids_in_ptset): Set
21425 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
21426
21427 2016-03-09 Jakub Jelinek <jakub@redhat.com>
21428
21429 PR tree-optimization/70152
21430 * tree-sra.c (replace_removed_params_ssa_names): Copy over
21431 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
21432
21433 PR target/70086
21434 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
21435 instead of gen_sse2_loadlpd.
21436 * config/i386/sse.md (*vec_concatv2df): Rename to...
21437 (vec_concatv2df): ... this.
21438
21439 PR tree-optimization/70127
21440 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
21441
21442 2016-03-09 David Malcolm <dmalcolm@redhat.com>
21443
21444 PR c/68473
21445 PR c++/70105
21446 * diagnostic-show-locus.c (compatible_locations_p): New function.
21447 (layout::layout): Sanitize ranges using compatible_locations_p.
21448
21449 2016-03-09 David Malcolm <dmalcolm@redhat.com>
21450
21451 PR c/68473
21452 PR c++/70105
21453 * diagnostic-show-locus.c (layout_range::layout_range): Replace
21454 location_range param with three const expanded_locations * and a
21455 bool.
21456 (layout::layout): Replace call to
21457 rich_location::lazily_expand_location with get_expanded_location.
21458 Extract the range and perform location expansion here, passing
21459 the results to the layout_range ctor.
21460 * diagnostic.c (source_range::debug): Delete.
21461 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
21462 of rich_location::get_expanded_location.
21463 * gcc-rich-location.c (get_range_for_expr): Delete.
21464 (gcc_rich_location::add_expr): Reimplement to avoid the
21465 rich_location::add_range overload that took a location_range,
21466 passing a location_t instead.
21467
21468 2016-03-09 Richard Biener <rguenther@suse.de>
21469 Jakub Jelinek <jakub@redhat.com>
21470
21471 PR tree-optimization/70138
21472 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
21473 Also skip vect_double_reduction_def.
21474
21475 2016-03-09 Jakub Jelinek <jakub@redhat.com>
21476
21477 PR target/70049
21478 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
21479 if the operand is "m".
21480
21481 2016-03-09 Nathan Sidwell <nathan@acm.org>
21482
21483 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
21484
21485 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21486
21487 * config/i386/i386.c (processor_target_table): Fix cost table
21488 intialization order for znver1.
21489
21490 2016-03-08 Jakub Jelinek <jakub@redhat.com>
21491
21492 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
21493 - becuase -> because.
21494 * ipa-reference.c (ignore_module_statics): Likewise.
21495 * cgraph.c (cgraph_node::get_body): Likewise.
21496 * ipa-inline.c (early_inliner): Likewise.
21497 * ipa-devirt.c (types_same_for_odr): Likewise.
21498 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
21499 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
21500
21501 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21502
21503 * tree-ssa-math-opts.c: Fix typo in comment.
21504
21505 2016-03-08 Jakub Jelinek <jakub@redhat.com>
21506
21507 PR target/70110
21508 * config/i386/i386.c (scalar_chain::make_vector_copies,
21509 scalar_chain::convert_reg): Call end_sequence in between
21510 get_insns and emit_conversion_insns rather than after both
21511 calls.
21512
21513 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
21514
21515 PR target/70064
21516 * config/i386/i386.h (machine_function): Add
21517 pc_thunk_call_expanded flag.
21518 (ix86_pc_thunk_call_expanded): New define.
21519 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
21520 (*set_got): Rename insn pattern from set_got.
21521 (*set_got_labelled): Rename inst pattern from set_got_labelled.
21522 * config/i386/i386.c (ix86_compute_frame_layout): Use
21523 ix86_pc_thunk_call_expanded to prevent red-zone.
21524
21525 2016-03-07 Martin Jambor <mjambor@suse.cz>
21526
21527 * hsa.h (hsa_get_ctor_statements): Declare.
21528 (hsa_get_dtor_statements): Likewise.
21529 (hsa_get_kernel_dispatch_type): Likewise.
21530 * hsa.c (hsa_get_ctor_statements): New function.
21531 (hsa_get_dtor_statements): Likewise.
21532 (hsa_get_kernel_dispatch_type): Likewise.
21533 * hsa-brig.c (hsa_cdtor_statements): Removed.
21534 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
21535 hsa_get_dtor_statements.
21536 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
21537 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
21538
21539 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
21540
21541 * config/arm/arm-cores.def (cortex-r8): New.
21542 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
21543 * config/arm/arm-tune.md: Likewise.
21544 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
21545
21546 2016-03-07 Martin Sebor <msebor@redhat.com>
21547
21548 PR rtl-optimization/19705
21549 * doc/invoke.texi (Options That Control Optimization): Clarify
21550 -fno-branch-count-reg.
21551
21552 2016-02-26 Richard Biener <rguenther@suse.de>
21553 Jeff Law <law@redhat.com>
21554
21555 PR tree-optimization/69740
21556 * cfghooks.c (remove_edge): Request loop fixups if we delete
21557 an edge that might turn an irreducible loop into a natural
21558 loop.
21559 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
21560 Move after definition of loops_state_clear.
21561
21562 2016-03-07 Bin Cheng <bin.cheng@arm.com>
21563
21564 PR rtl-optimization/69052
21565 * rtlanal.c (commutative_operand_precedence): Set higher precedence
21566 to CONST_WIDE_INT.
21567
21568 2016-03-07 Tom de Vries <tom@codesourcery.com>
21569
21570 PR tree-optimization/70116
21571 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
21572 is_tm_ending stmts and ubsan/asan internal functions.
21573 (find_duplicate): Use it. Don't test is_tm_ending here.
21574
21575 2016-03-07 Richard Biener <rguenther@suse.de>
21576
21577 PR tree-optimization/70115
21578 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
21579 (propagate_constants_for_unrolling): Use replace_uses_by.
21580
21581 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
21582
21583 PR middle-end/69916
21584 * omp-low.c (struct oacc_loop): Add ifns.
21585 (new_oacc_loop_raw): Initialize it.
21586 (finish_oacc_loop): Clear mask & flags if no ifns.
21587 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
21588 (oacc_loop_xform_loop): Add ifns arg & adjust.
21589 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
21590
21591 2016-03-07 Richard Henderson <rth@redhat.com>
21592
21593 PR rtl-opt/70061
21594 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
21595 (insert_value_copy_on_edge): Likewise.
21596
21597 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21598
21599 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
21600
21601 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21602
21603 PR target/62281
21604 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
21605
21606 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
21607
21608 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
21609
21610 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
21611
21612 Fix sseimul type attribute.
21613 * config/i386/znver1.md
21614 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
21615 znver1_sseimul_avx256_load) : Fix the type attribute.
21616 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
21617 pipe usage and latency.
21618
21619 2016-03-05 Jakub Jelinek <jakub@redhat.com>
21620
21621 PR c++/70084
21622 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
21623 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
21624 to the right type.
21625
21626 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
21627
21628 PR c/69973
21629 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
21630
21631 PR rtl-optimization/69941
21632 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
21633 the reg share its mode.
21634
21635 2016-03-04 Jeff Law <law@redhat.com>
21636
21637 PR tree-optimization/69196
21638 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
21639 If the both SSA_NAMEs are anonymous, then consider them unassociated
21640 and include the PHI in the statement count.
21641
21642 2016-03-05 Tom de Vries <tom@codesourcery.com>
21643
21644 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
21645 construct in oacc routine. Check for oacc region in oacc routine.
21646
21647 2016-03-04 Jakub Jelinek <jakub@redhat.com>
21648
21649 PR target/70062
21650 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
21651 2016-02-22 changes, instead don't recurse if RECUR is already true.
21652 Don't change *dynamic_check if RECUR. Adjust recursive caller
21653 to pass true to the new argument.
21654 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
21655
21656 PR target/70059
21657 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
21658 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
21659 fixes.
21660 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
21661
21662 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
21663
21664 PR rtl-optimization/57676
21665 * lra-assigns.c (lra_assign): Guard test for maximum iterations
21666 with flag_checking.
21667
21668 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
21669
21670 * tree-vect-patterns.c (search_type_for_mask): Handle
21671 comparison of booleans.
21672
21673 2016-03-04 Jakub Jelinek <jakub@redhat.com>
21674
21675 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
21676 Fix @xref usage.
21677
21678 PR debug/69947
21679 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
21680 all other ops that have dw_val_class_die_ref operands,
21681 and DW_OP_GNU_entry_value.
21682
21683 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21684
21685 PR rtl-optimization/69904
21686 * config/arm/arm.c (arm_cannot_copy_insn_p):
21687 Return true for load-exclusive instructions.
21688
21689 2016-03-03 Jakub Jelinek <jakub@redhat.com>
21690
21691 PR target/70021
21692 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
21693 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
21694 the pattern no matter if it is used just by non-pattern, pattern
21695 or mix thereof.
21696 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
21697 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
21698 oprnd1 def_stmt is in pattern, don't look through it.
21699
21700 2016-03-03 Marek Polacek <polacek@redhat.com>
21701
21702 PR middle-end/70050
21703 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
21704
21705 2016-03-03 Martin Liska <mliska@suse.cz>
21706
21707 PR tree-optimization/70043
21708 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
21709 previous statement if we see a debug statement.
21710
21711 2016-03-03 Richard Biener <rguenther@suse.de>
21712
21713 PR tree-optimization/55936
21714 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
21715 parameter and guard unsafe equivalence use.
21716 (vrp_evaluate_conditional_warnv_with_ops): Always use
21717 safe equivalences but not via the quadratic compare_names
21718 helper.
21719
21720 2016-03-03 Michael Collison <michael.collison@linaro.org>
21721
21722 PR target/70014
21723 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
21724 for operand 1 to s_register_operand. Change predicate for operand
21725 2 to arm_not_immediate_operand.
21726
21727 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
21728
21729 * doc/tm.texi: Regenerated.
21730
21731 2016-03-02 Richard Henderson <rth@redhat.com>
21732
21733 PR rtl-opt/67145
21734 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
21735 simplification when all args are positive non-fixed registers.
21736
21737 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21738
21739 * target.def (lra_p): Specify that new ports should use LRA.
21740
21741 2016-03-02 Jakub Jelinek <jakub@redhat.com>
21742
21743 PR libgomp/69555
21744 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
21745 gimplify_type_sizes the type they refer to.
21746 (omp_notice_variable): Handle reference vars to VLAs.
21747 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
21748 reference to VLA decls in the second pass instead of first pass.
21749
21750 2016-03-02 Tom de Vries <tom@codesourcery.com>
21751
21752 PR tree-optimization/68659
21753 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
21754 new_expr == NULL_TREE.
21755 (get_new_name): Handle ADDR_EXPR.
21756
21757 2016-03-02 Bin Cheng <bin.cheng@arm.com>
21758
21759 PR rtl-optimization/69052
21760 * loop-invariant.c (canonicalize_address): New function.
21761 (inv_can_prop_to_addr_use): Check validity of address expression
21762 which is canonicalized by above function.
21763
21764 2016-03-02 Alan Modra <amodra@gmail.com>
21765
21766 PR ipa/69990
21767 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
21768 larger alignment.
21769
21770 2016-03-02 Jakub Jelinek <jakub@redhat.com>
21771
21772 PR target/70028
21773 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
21774 (*movhi_internal): Put mask moves from and to memory separately
21775 from moves from/to GPRs.
21776
21777 2016-03-02 Richard Biener <rguenther@suse.de>
21778
21779 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
21780 GENERIC expressions in GIMPLE.
21781
21782 2016-03-02 Richard Biener <rguenther@suse.de>
21783
21784 * config/i386/i386.c (type_natural_mode): Fix typo.
21785
21786 2016-03-02 Nick Clifton <nickc@redhat.com>
21787
21788 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
21789
21790 2016-03-02 Richard Biener <rguenther@suse.de>
21791 Uros Bizjak <ubizjak@gmail.com>
21792
21793 PR target/67278
21794 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
21795
21796 2016-03-02 Richard Biener <rguenther@suse.de>
21797
21798 PR middle-end/67278
21799 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
21800
21801 2016-03-02 Marek Polacek <polacek@redhat.com>
21802
21803 PR c/67854
21804 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
21805 "is promoted to" warning.
21806
21807 2016-03-01 DJ Delorie <dj@redhat.com>
21808
21809 * config.gcc: Deprecate mep-*.
21810
21811 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
21812
21813 PR middle-end/70025
21814 * lra-constraints.c (regno_val_use_in): New.
21815 (match_reload): Use it instead of regno_use_in.
21816
21817 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
21818
21819 PR rtl-optimization/70007
21820 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
21821 references present in REG_EQUAL notes attached to non-SET patterns.
21822
21823 2016-03-01 Jeff Law <law@redhat.com>
21824
21825 PR tree-optimization/69196
21826 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
21827 Appropriately clamp the number of statements to copy when the
21828 thread path does not traverse a loop backedge.
21829
21830 PR tree-optimization/69196
21831 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
21832 Do count some PHIs in the thread path against the insn count. Decrease
21833 final statement count by one as the control statement in the last
21834 block will get removed. Remove special cased code for handling PHIs
21835 in the last block.
21836
21837 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
21838
21839 PR target/70027
21840 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
21841 asm dialect alternatives to explicit GOTPCREL calls.
21842
21843 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
21844
21845 PR ada/70017
21846 * ira.c (do_reload): Issue warning for generic stack checking here...
21847 * reload1.c (reload): ...instead of here and streamline it.
21848
21849 2016-03-01 Nick Clifton <nickc@redhat.com>
21850
21851 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
21852
21853 2016-03-01 Richard Biener <rguenther@suse.de>
21854
21855 PR tree-optimization/69983
21856 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
21857 types and fall back to operand_equal_p.
21858
21859 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21860
21861 Revert
21862 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21863
21864 * config/s390/constraints.md ("jm8"): New constraint.
21865 * config/s390/predicates.md ("const_int_8bitset_operand"): New
21866 predicate.
21867 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
21868 into ...
21869 ("*setmem_long<setmem_and>"): New pattern.
21870 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
21871 into ...
21872 ("*setmem_long_31z<setmem_and>"): New pattern.
21873 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
21874 New substitution rules with the required attributes.
21875
21876
21877 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21878
21879 Revert
21880 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21881
21882 * gensupport.c (process_substs_on_one_elem): Split loop to
21883 complete mark_operands_used_in_match_dup on all expressions in the
21884 vector first.
21885 (adjust_operands_numbers): Inline into process_substs_on_one_elem
21886 and remove function.
21887
21888 2016-03-01 Richard Biener <rguenther@suse.de>
21889
21890 PR middle-end/70022
21891 * fold-const.c (fold_indirect_ref_1): Fix range checking for
21892 vector BIT_FIELD_REF extract.
21893
21894 2016-03-01 Richard Biener <rguenther@suse.de>
21895
21896 PR tree-optimization/69994
21897 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
21898
21899 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
21900
21901 PR tree-optimization/69956
21902 * tree-vect-stmts.c (supportable_widening_operation): Support
21903 multi-step conversion of boolean vectors.
21904 (supportable_narrowing_operation): Likewise.
21905
21906 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21907
21908 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
21909 anymore.
21910
21911 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21912
21913 * config/s390/subst.md (DSI_VI): New mode iterator.
21914 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
21915 * config/s390/vector.md ("vec_set<mode>"): Move expander before
21916 the insn definition.
21917 ("*vec_set<mode>"): Change predicate and add alternative to
21918 support only either register or const_int operands as element
21919 selector.
21920 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
21921 operands.
21922 ("vec_extract<mode>"): New expander.
21923 ("*vec_extract<mode>"): New insn definition supporting reg and
21924 const_int element selectors.
21925 ("*vec_extract<mode>_plus"): New insn definition supporting
21926 reg+const_int element selectors.
21927 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
21928 following expander+insn definition.
21929 ("<vec_shifts_name><mode>3"): New expander.
21930 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
21931
21932 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21933
21934 * config/s390/s390.md ("*tabort_1"): Change predicate to
21935 nonmemory_operand. Add a second alternative to cover
21936 register as well as const int operands.
21937 ("*tabort_1_plus"): New pattern definition.
21938
21939 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21940
21941 * config/s390/s390.md ("*ashrdi3_cc_31")
21942 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
21943 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
21944 Merge insn definitions into ...
21945 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
21946 New pattern definition.
21947 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
21948 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
21949 ("*ashr<mode>3_and"): Merge insn definitions into ...
21950 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
21951 New pattern definition.
21952 * config/s390/subst.md ("addr_style_op_cc_subst")
21953 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
21954 substitutions patterns plus attributes.
21955 Add ashiftrt to SUBST iterator.
21956
21957 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21958
21959 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
21960 op2 to nonmemory_operand.
21961 ("*<shift>di3_31", "*<shift>di3_31_and"):
21962 Merge into single pattern definition ...
21963 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
21964 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
21965 pattern definition ...
21966 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
21967 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
21968 iterator.
21969
21970 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21971
21972 * config/s390/predicates.md (const_int_6bitset_operand): New
21973 predicate.
21974 * config/s390/s390.md: Include subst.md.
21975 ("rotl<mode>3"): New expander.
21976 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
21977 ...
21978 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
21979 * config/s390/subst.md: New file.
21980
21981 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21982
21983 * config/s390/s390.md ("op_type", "atype", "length" attributes):
21984 Remove RRR type. It doesn't really exist.
21985 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
21986 attributes.
21987 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
21988 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
21989 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
21990 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
21991 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
21992 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
21993 `enabled' attribute.
21994
21995 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21996
21997 * gensupport.c (process_substs_on_one_elem): Split loop to
21998 complete mark_operands_used_in_match_dup on all expressions in the
21999 vector first.
22000 (adjust_operands_numbers): Inline into process_substs_on_one_elem
22001 and remove function.
22002
22003 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
22004
22005 PR target/69706
22006 * config/sparc/sparc.c (NWORDS_UP): Rename to...
22007 (CEIL_NWORDS): ...this. Use CEIL macro.
22008 (compute_fp_layout): Adjust to above renaming.
22009 (function_arg_union_value): Likewise.
22010 (sparc_arg_partial_bytes): Likewise.
22011 (sparc_function_arg_advance): Likewise.
22012
22013 2016-02-29 Jeff Law <law@redhat.com>
22014
22015 PR tree-optimization/70005
22016 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
22017 where an object with a boolean range is compared against a value
22018 outside [0..1].
22019
22020 PR tree-optimization/69999
22021 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
22022 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
22023 loop cleanups.
22024
22025 2016-02-29 Richard Biener <rguenther@suse.de>
22026
22027 PR tree-optimization/69994
22028 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
22029 (get_unary_op): Look through nop conversions.
22030 (ops_equal_values_p): New function, look for equality diregarding
22031 nop conversions.
22032 (eliminate_plus_minus_pair): Use ops_equal_values_p
22033 (repropagate_negates): Do not use get_unary_op here.
22034
22035 2016-02-29 Martin Liska <mliska@suse.cz>
22036
22037 * system.h: Poison ENABLE_CHECKING macro.
22038
22039 2016-02-29 Martin Liska <mliska@suse.cz>
22040
22041 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
22042 is presented in dump flags.
22043 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
22044 (hsa_regalloc): Likewise.
22045
22046 2016-02-19 Richard Biener <rguenther@suse.de>
22047
22048 PR tree-optimization/69980
22049 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
22050 permutation of those we need to keep.
22051
22052 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
22053
22054 PR target/69706
22055 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
22056 (NWORDS_UP): ...this
22057 (init_cumulative_args): Minor tweaks.
22058 (sparc_promote_function_mode): Likewise.
22059 (scan_record_type): Delete.
22060 (traverse_record_type): New function template.
22061 (classify_data_t): New structure type.
22062 (classify_registers): New inline function.
22063 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
22064 exhausted. Instantiate traverse_record_type on classify_registers and
22065 deal with the case of a structure passed in slot #15 with no FP field
22066 in the first word.
22067 (assign_data_t): New structure type.
22068 (compute_int_layout): New static function.
22069 (compute_fp_layout): Likewise.
22070 (count_registers): New inline function.
22071 (assign_int_registers): New static function.
22072 (assign_fp_registers): Likewise.
22073 (assign_registers): New inline function.
22074 (function_arg_record_value_1): Delete.
22075 (function_arg_record_value_2): Likewise.
22076 (function_arg_record_value_3): Likewise.
22077 (function_arg_record_value): Adjust to above changes. Instantiate
22078 traverse_record_type on count_registers to first count the number of
22079 registers to be used and then on assign_registers to assign them.
22080 (function_arg_union_value): Adjust to above renaming.
22081 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
22082 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
22083 case of a structure passed in slot #15
22084 (sparc_function_arg_advance): Likewise.
22085 (function_arg_padding): Minor tweak.
22086
22087 2016-02-29 Richard Biener <rguenther@suse.de>
22088
22089 PR tree-optimization/69720
22090 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
22091 the adjustment_def path for possibly vectorized defs.
22092 (vect_create_epilog_for_reduction): Handle vectorized initial
22093 defs properly.
22094
22095 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
22096
22097 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
22098
22099 2016-02-27 Jeff Law <law@redhat.com>
22100
22101 Revert
22102 2016-02-26 Richard Biener <rguenther@suse.de>
22103 Jeff Law <law@redhat.com>
22104
22105 PR tree-optimization/69740
22106 * cfghooks.c (remove_edge): Request loop fixups if we delete
22107 an edge that might turn an irreducible loop into a natural
22108 loop.
22109
22110 2016-02-27 Jakub Jelinek <jakub@redhat.com>
22111
22112 PR rtl-optimization/69896
22113 * tree-vect-generic.c (get_compute_type): Avoid single element
22114 vector types.
22115
22116 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
22117
22118 Rename the AArch64 tuning option and related functions to enable the
22119 Newton series for the reciprocal square root to reflect its
22120 approximative characteristic.
22121
22122 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
22123 function to "aarch64_emit_approx_rsqrt".
22124 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
22125 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
22126 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
22127 (xgene1_tunings): Likewise.
22128 (use_rsqrt_p): Likewise.
22129 (aarch64_emit_swrsqrt): Use new function name.
22130 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
22131 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
22132 text explaining this option.
22133 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
22134
22135 2016-02-26 Jakub Jelinek <jakub@redhat.com>
22136
22137 PR target/69969
22138 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
22139 complain about -mallow-movmisalign without -mvsx if
22140 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
22141
22142 2016-02-26 Joel Sherrill <joel@rtems.org>
22143
22144 * config.gcc: Add x86_64-*-rtems*.
22145 * config/i386/rtems-64.h: New file.
22146
22147 2016-02-26 Joel Sherrill <joel@rtems.org>
22148
22149 * config.gcc: Add aarch64-*-rtems*.
22150 * config/aarch64/rtems.h: New file.
22151
22152 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
22153
22154 PR target/69946
22155 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
22156 shift amount using %h. Add comment.
22157
22158 2016-02-26 Richard Biener <rguenther@suse.de>
22159 Jeff Law <law@redhat.com>
22160
22161 PR tree-optimization/69740
22162 * cfghooks.c (remove_edge): Request loop fixups if we delete
22163 an edge that might turn an irreducible loop into a natural
22164 loop.
22165
22166 2016-02-26 Martin Jambor <mjambor@suse.cz>
22167
22168 PR middle-end/69920
22169 * tree-sra.c (sra_modify_assign): Do not remove loads of
22170 uninitialized aggregates to SSA_NAMEs.
22171
22172 2016-02-26 Richard Henderson <rth@redhat.com>
22173
22174 PR target/69709
22175 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
22176 pseudo in case the target rtx matches the source of the left
22177 shift.
22178
22179 2016-02-26 Martin Jambor <mjambor@suse.cz>
22180
22181 PR hsa/69568
22182 * hsa.h (hsa_type_packed_p): Declare.
22183 * hsa.c (hsa_type_packed_p): New function.
22184 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
22185 loads.
22186 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
22187 * hsa-brig.c (emit_basic_insn): Likewise.
22188
22189 2016-02-26 Martin Jambor <mjambor@suse.cz>
22190
22191 pr hsa/69674
22192 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
22193 pointers.
22194 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
22195
22196 2016-02-26 Martin Jambor <mjambor@suse.cz>
22197
22198 * hsa.h (is_a_helper): New overload for hsa_op_immed for
22199 hsa_op_with_type operands.
22200 (hsa_unsigned_type_for_type): Declare.
22201 * hsa.c (hsa_unsigned_type_for_type): New function.
22202 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
22203 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
22204 the finalizer. Do not emit extra move.
22205
22206 2016-02-26 Martin Jambor <mjambor@suse.cz>
22207
22208 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
22209 atomic operations in private segment.
22210
22211 2016-02-26 Martin Jambor <mjambor@suse.cz>
22212
22213 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
22214 statements to wi->info. Also disallow omp simd constructs.
22215 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
22216 for not gridifying. Dump special string for omp_for.
22217
22218 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22219
22220 PR target/69245
22221 * config/aarch64/aarch64.c (aarch64_set_current_function):
22222 Save/restore target globals when switching to
22223 target_option_default_node.
22224
22225 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22226
22227 PR target/69613
22228 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
22229 Return 0 if !SHIFT_COUNT_TRUNCATED.
22230
22231 2016-02-26 Jakub Jelinek <jakub@redhat.com>
22232 Eric Botcazou <ebotcazou@adacore.com>
22233
22234 PR rtl-optimization/69891
22235 * dse.c (scan_insn): If we can't figure out memset arguments
22236 or they are non-constant, call clear_rhs_from_active_local_stores.
22237
22238 2016-02-26 Martin Liska <mliska@suse.cz>
22239
22240 * doc/extend.texi: Mention clog10, clog10f an clog10l
22241 in Builtins section.
22242
22243 2016-02-26 Martin Liska <mliska@suse.cz>
22244
22245 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
22246 CHECKING_P.
22247 (resolve_args_picking_1): Likewise.
22248 * dwarf2out.h (struct GTY): Likewise.
22249
22250 2016-02-26 Martin Liska <mliska@suse.cz>
22251
22252 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
22253 with flag_checking.
22254 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
22255
22256 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
22257 Martin Liska <mliska@suse.cz>
22258
22259 * doc/install.texi: Mention --enable-valgrind-annotations.
22260
22261 2016-02-26 Richard Biener <rguenther@suse.de>
22262
22263 PR tree-optimization/69551
22264 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
22265 looking through aliases adjust DECL_PT_UID to refer to the
22266 ultimate alias target.
22267
22268 2016-02-25 Martin Liska <mliska@suse.cz>
22269
22270 PR middle-end/69919
22271 * alloc-pool.c (after_memory_report): New variable.
22272 * alloc-pool.h (base_pool_allocator ::release): Do not use
22273 the infrastructure if after_memory_report.
22274 * toplev.c (toplev::main): Mark after memory report.
22275
22276 2016-02-25 Richard Biener <rguenther@suse.de>
22277
22278 PR tree-optimization/48795
22279 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
22280
22281 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
22282
22283 PR driver/68463
22284 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
22285 offloading is enabled and -fopenacc or -fopenmp is specified.
22286 (CRTOFFLOADEND): Likewise.
22287 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
22288 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
22289 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
22290 (offload_objects_file_name): New static var.
22291 (tool_cleanup): Remove offload_objects_file_name file.
22292 (find_offloadbeginend): Replace with ...
22293 (find_crtoffloadtable): ... this.
22294 (run_gcc): Remove offload_argc and offload_argv.
22295 Get offload_objects_file_name from -foffload-objects=... option.
22296 Read names of object files with offload from this file, pass them to
22297 compile_images_for_offload_targets. Don't call find_offloadbeginend and
22298 don't pass offloadbegin and offloadend to the linker. Don't pass
22299 offload non-LTO files to the linker, because now they're not claimed.
22300
22301 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
22302
22303 PR ipa/69630
22304 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
22305 on builtin_unreachable.
22306
22307 2016-02-25 Jakub Jelinek <jakub@redhat.com>
22308
22309 PR rtl-optimization/69896
22310 * regcprop.c: Include cfgrtl.h.
22311 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
22312 than remembered mode, either delete it (if noop_move_p), or
22313 treat like copy_p but not noop_p instruction.
22314
22315 2016-02-24 Jakub Jelinek <jakub@redhat.com>
22316
22317 PR debug/69705
22318 * dwarf2out.c (gen_variable_die): Work around buggy LTO
22319 - allow NULL decl for Fortran DW_TAG_common_block variables.
22320
22321 2016-02-24 Jason Merrill <jason@redhat.com>
22322
22323 * common.opt (flifetime-dse): Add -flifetime-dse=1.
22324
22325 2016-02-24 Richard Biener <rguenther@suse.de>
22326 Jakub Jelinek <jakub@redhat.com>
22327
22328 PR middle-end/69760
22329 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
22330 conditionally executed ops to well-defined overflow behavior.
22331
22332 2016-02-24 Jakub Jelinek <jakub@redhat.com>
22333
22334 PR middle-end/69915
22335 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
22336 elements.
22337
22338 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22339
22340 PR rtl-optimization/69886
22341 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
22342 argument. Use it when checking validity of set instructions.
22343 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
22344 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
22345 callsite.
22346 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
22347 * store-motion.c (find_moveable_store): Update
22348 can_assign_to_reg_without_clobbers_p callsite.
22349
22350 2016-02-24 Richard Biener <rguenther@suse.de>
22351
22352 PR middle-end/68963
22353 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
22354 bogus check.
22355 (record_nonwrapping_iv): Do not fall back to the low/high bound
22356 for non-constant IV bases if the stmt is not always executed.
22357
22358 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22359
22360 * config/arm/arm-cores.def (cortex-a32): New entry.
22361 * config/arm/arm-tables.opt: Regenerate.
22362 * config/arm/arm-tune.md: Regenerate.
22363 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
22364 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
22365 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
22366 for -mcpu and -mtune.
22367
22368 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22369
22370 PR target/69875
22371 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
22372 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
22373 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
22374 (atomic_loaddi_1): Delete.
22375 (atomic_loaddi): Rewrite expander using the above changes.
22376
22377 2016-02-24 Jakub Jelinek <jakub@redhat.com>
22378
22379 PR c/69918
22380 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
22381 2 to 3.
22382
22383 2016-02-24 Jakub Jelinek <jakub@redhat.com>
22384 Richard Biener <rguenth@suse.de>
22385
22386 PR middle-end/69909
22387 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
22388 set_mem_attributes if tem is SSA_NAME which got expanded
22389 as a MEM.
22390
22391 2016-02-24 Richard Biener <rguenther@suse.de>
22392
22393 PR tree-optimization/69907
22394 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
22395 end of permutations for BB vectorization.
22396
22397 2016-02-24 Christian Bruel <christian.bruel@st.com>
22398
22399 * config/arm/arm-c.c (arm_option_override): Initialize
22400 target_option_current_node.
22401 * config/arm/arm.c (arm_pragma_target_parse): Replace
22402 build_target_option_node call by target_option_current_node.
22403 Set target_option_current_node.
22404 Fix comments.
22405
22406 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
22407
22408 PR target/69810
22409 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
22410 define_insn_and_split to define_insn.
22411 (zero_extendqi<mode>2_dot2): Same.
22412 (extendqi<mode>2_dot): Same.
22413 (extendqi<mode>2_dot2): Same.
22414
22415 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
22416
22417 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
22418 and add bypass for AES{D,E} and AESMC pairs.
22419 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
22420 and AESMC pairs.
22421
22422 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
22423
22424 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
22425 series for reciprocal square root in Exynos M1.
22426
22427 2016-02-23 Martin Sebor <msebor@redhat.com>
22428
22429 PR c/69759
22430 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
22431 __builtin_alloca_with_align.
22432
22433 2016-02-23 Richard Henderson <rth@redhat.com>
22434
22435 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
22436 (ix86_register_pragmas): Remove __seg_tls.
22437 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
22438 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
22439 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
22440 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
22441 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
22442 * doc/extend.texi (__seg_tls): Remove item.
22443
22444 2016-02-23 Richard Biener <rguenther@suse.de>
22445
22446 * alloc-pool.h (struct allocation_object): Make id member
22447 conditional on CHECKING_P again.
22448 (get_instance): Adjust.
22449 (base_pool_allocator): Likewise.
22450
22451 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
22452
22453 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
22454 (parallelize_loops): In OpenACC kernels mode, set n_threads to
22455 zero.
22456 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
22457 flag_openacc.
22458 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
22459
22460 2016-02-23 Richard Biener <rguenther@suse.de>
22461
22462 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
22463 * bitmap.h (struct bitmap_usage): Likewise.
22464 (bitmap_move): Declare.
22465 * bitmap.c (register_overhead): Take size_t argument.
22466 (bitmap_move): New function.
22467 * df-problems.c (df_rd_transfer_function): Use bitmap_move
22468 to properly account overhead.
22469 * tree.c (free_node): Use tree_size.
22470
22471 2016-02-23 Jakub Jelinek <jakub@redhat.com>
22472
22473 PR c++/69902
22474 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
22475 when inverting comparison.
22476
22477 PR c/69900
22478 * common.opt (Wunreachable-code): Add Warning flag.
22479
22480 2016-02-23 Mark Wielaard <mjw@redhat.com>
22481 Jakub Jelinek <jakub@redhat.com>
22482
22483 PR c/69911
22484 * cgraphunit.c (check_global_declaration): Check main_input_filename
22485 and DECL_SOURCE_FILE are not NULL.
22486
22487 2016-02-23 Martin Jambor <mjambor@suse.cz>
22488
22489 PR tree-optimization/69666
22490 * tree-sra.c (sra_modify_assign): Do not attempt to create
22491 default_def replacements for unscalarizable regions.
22492
22493 2016-02-20 Mark Wielaard <mjw@redhat.com>
22494
22495 PR c/28901
22496 * cgraphunit.c (check_global_declaration): Check level of
22497 warn_unused_const_variable and main_input_filename.
22498 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
22499 (-Wunused-variable): For C implies -Wunused-const-variable=1.
22500 (-Wunused-const-variable): Explain levels 1 and 2.
22501
22502 2016-02-22 Jakub Jelinek <jakub@redhat.com>
22503
22504 PR target/69888
22505 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
22506 identical arguments. Formatting and spelling fixes.
22507
22508 PR target/69885
22509 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
22510 be specified.
22511
22512 PR target/69894
22513 PR target/69895
22514 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
22515 and m68k-devices.def.
22516 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
22517 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
22518
22519 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
22520
22521 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
22522 and HImode registers.
22523
22524 2016-02-22 Richard Biener <rguenther@suse.de>
22525
22526 PR tree-optimization/69882
22527 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
22528 preserve permutations present because of gaps.
22529 (vect_supported_load_permutation_p): Always continue checking
22530 permutations after vect_attempt_slp_rearrange_stmts.
22531
22532 2016-02-22 Bin Cheng <bin.cheng@arm.com>
22533
22534 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
22535 min_profitable_estimate, rather than min_profitable_iters.
22536
22537 2016-02-22 Jakub Jelinek <jakub@redhat.com>
22538
22539 PR target/69885
22540 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
22541 SImode for last match_operand.
22542
22543 2016-02-22 Martin Liska <mliska@suse.cz>
22544
22545 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
22546 return bitsize - 1 as the return value.
22547
22548 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
22549
22550 PR target/69806
22551 PR target/54089
22552 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
22553 Handle negative shift counts.
22554 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
22555 force_reg on the shift constant.
22556 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
22557 (lshrsi3_d): Handle negative shift counts.
22558
22559 2016-02-22 Richard Biener <rguenther@suse.de>
22560 Tom de Vries <tom@codesourcery.com>
22561
22562 * graph.c: Include dumpfile.h.
22563 (print_graph_cfg): Split into three overloads.
22564 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
22565
22566 2016-02-22 Tom de Vries <tom@codesourcery.com>
22567
22568 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
22569 dump-fn.
22570
22571 2016-02-22 Richard Biener <rguenther@suse.de>
22572
22573 PR ipa/37448
22574 * ipa-inline-transform.c (inline_call): When not updating
22575 overall summaries adjust self size by the growth estimate.
22576 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
22577 hash-set, do not update overall summaries here. Renamed from ...
22578 (inline_to_all_callers): ... this which is now wrapping the
22579 above and performing delayed overall summary update.
22580 (early_inline_small_functions): Delay updating of the overall
22581 summary.
22582
22583 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
22584
22585 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
22586 variable.
22587
22588 2016-02-19 Jakub Jelinek <jakub@redhat.com>
22589
22590 PR driver/69805
22591 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
22592 :%* in %:gt() argument.
22593 (greater_than_spec_func): Adjust for expecting only numbers,
22594 if there are more than two numbers, compare the last two.
22595
22596 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
22597
22598 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
22599 -Wnarrowing with -std.
22600
22601 2016-02-19 Jakub Jelinek <jakub@redhat.com>
22602
22603 PR c++/69851
22604 * expr.c (store_field): Don't use bit-field path if exp is
22605 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
22606 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
22607 and the assignment can be performed by bitwise copy. Formatting
22608 fix.
22609
22610 PR middle-end/69838
22611 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
22612 call copy_reg_eh_region_note_forward on before and/or after sequences
22613 and remove note from insn if it no longer can throw.
22614
22615 PR target/69820
22616 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
22617 if TARGET_AVX512BW.
22618
22619 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22620
22621 * config/s390/vector.md: Add missing commutative operand markers
22622 to the patterns which qualify for one.
22623 * config/s390/vx-builtins.md: Likewise.
22624
22625 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22626
22627 * config/s390/vector.md (VI, VI_QHS): Add single element vector
22628 types to mode iterators.
22629 (vec_double): ... and mode attribute.
22630 * config/s390/vx-builtins.md (non_vec_int): Likewise.
22631
22632 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22633
22634 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
22635 Change the predicate of op2 from nonimmediate to general and let
22636 reload fix it if necessary.
22637
22638 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22639
22640 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
22641
22642 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22643
22644 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
22645 mode.
22646
22647 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22648
22649 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
22650 * config/s390/s390.c (s390_expand_vec_movstr): New function.
22651 * config/s390/s390.md ("movstr<P:mode>"): Call
22652 s390_expand_vec_movstr.
22653
22654 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22655
22656 * config/s390/s390.md: Add missing output modifier for operand 1
22657 to print it as address properly.
22658
22659 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22660
22661 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
22662 * config/s390/2964.md: New file.
22663 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
22664 of insn grouping attributes depending on the CPU level.
22665 (s390_get_unit_mask): New function.
22666 (s390_sched_score): Remove the OOO from the scheduling macros.
22667 Add loop to calculate a score for the instruction mix.
22668 (s390_sched_reorder): Likewise plus improve debug output.
22669 (s390_sched_variable_issue): Rename macros as above. Calculate
22670 the unit distances after actually scheduling an insn. Improve
22671 debug output.
22672 (s390_sched_init): Clear last_scheduled_unit_distance array.
22673 * config/s390/s390.md: Include 2964.md.
22674
22675 2016-02-18 Jakub Jelinek <jakub@redhat.com>
22676
22677 PR target/69671
22678 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
22679 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
22680 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
22681 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
22682 *avx512f_<code>v8div16qi2_mask_1): New insns.
22683
22684 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
22685
22686 PR target/68404
22687 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
22688 2016-02-09 change.
22689
22690 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
22691 earlyclobber from target. Use wF constraint for fused memory
22692 address.
22693 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
22694
22695 2016-02-18 Jakub Jelinek <jakub@redhat.com>
22696 Martin Liska <mliska@suse.cz>
22697
22698 PR sanitizer/69863
22699 * cfgexpand.c (asan_sanitize_stack_p): New function.
22700 (partition_stack_vars): Use the function.
22701 (expand_stack_vars): Likewise.
22702 (defer_stack_allocation): Likewise.
22703 (expand_used_vars): Likewise.
22704
22705 2016-02-18 Richard Biener <rguenther@suse.de>
22706
22707 PR middle-end/69553
22708 * fold-const.c (operand_equal_p): Properly compare offsets for
22709 IMAGPART_EXPR and ARRAY_REF.
22710
22711 2016-02-18 Nick Clifton <nickc@redhat.com>
22712
22713 PR target/62254
22714 PR target/69610
22715 * config/arm/arm.c (arm_option_override_internal): Disable
22716 interworking if the target does not support thumb instructions.
22717 (arm_reload_in_hi): Handle the case where a register to register
22718 move needs reloading because there is no simple pattern to handle
22719 it.
22720 (arm_reload_out_hi): Likewise.
22721
22722 2016-02-18 Richard Biener <rguenther@suse.de>
22723
22724 PR middle-end/69854
22725 * match.pd: Don't use fold_binary or fold_unary for folding
22726 constants.
22727
22728 2016-02-17 Jakub Jelinek <jakub@redhat.com>
22729
22730 PR c++/69850
22731 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
22732 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
22733 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
22734 warn on gimple_no_warning_p statements.
22735
22736 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
22737
22738 * doc/extend.texi (C++ Attributes): Correct description of
22739 warn_unused type attribute.
22740
22741 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22742
22743 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
22744 correct instruction.
22745
22746 2016-02-17 Richard Biener <rguenther@suse.de>
22747
22748 PR rtl-optimization/69609
22749 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
22750 (find_traces_1_round): When ending a trace update cached priority
22751 of successors.
22752 (bb_to_key): Use cached priority when available.
22753 (copy_bb): Initialize cached priority.
22754 (reorder_basic_blocks_software_trace_cache): Likewise.
22755
22756 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22757
22758 PR target/69161
22759 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
22760 New predicate.
22761 (aarch64_comparison_operator): Break overly long line into two.
22762 (aarch64_comparison_operation): Likewise.
22763 * config/aarch64/aarch64.md (cstorecc4): Use
22764 aarch64_comparison_operator_mode instead of
22765 aarch64_comparison_operator.
22766 (cstore<mode>4): Likewise.
22767 (aarch64_cstore<mode>): Likewise.
22768 (*cstoresi_insn_uxtw): Likewise.
22769 (cstore<mode>_neg): Likewise.
22770 (*cstoresi_neg_uxtw): Likewise.
22771
22772 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22773
22774 PR target/69161
22775 * config/arm/predicates.md (arm_comparison_operator_mode):
22776 New predicate.
22777 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
22778 instead of arm_comparison_operator.
22779 (*mov_negscc): Likewise.
22780 (*mov_notscc): Likewise.
22781 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
22782 (*thumb2_mov_negscc): Likewise.
22783 (*thumb2_mov_negscc_strict_it): Likewise.
22784 (*thumb2_mov_notscc): Likewise.
22785 (*thumb2_mov_notscc_strict_it): Likewise.
22786
22787 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
22788
22789 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
22790 Add missing return.
22791
22792 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
22793
22794 * config/visium/visium.c (machine_libfunc_index): New enum.
22795 (machine_libfuncs): New structure.
22796 (visium_libfuncs): New static variable.
22797 (TARGET_INIT_LIBFUNCS): Define to...
22798 (visium_init_libfuncs): ...this. New function.
22799 (expand_block_move_4): Use the appropriate libfunc.
22800 (expand_block_move_2): Likewise.
22801 (expand_block_move_1): Likewise.
22802 (expand_block_set_4): Likewise.
22803 (expand_block_set_2): Likewise.
22804 (expand_block_set_1): Likewise.
22805 (visium_trampoline_init): Likewise.
22806
22807 2016-02-17 Nick Clifton <nickc@redhat.com>
22808
22809 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
22810 TI's devices.csv file as of March 2016.
22811
22812 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
22813
22814 PR Target/48344
22815 * opts-global.c (handle_common_deferred_options): Introduce and
22816 initialize two global variables to remember command-line options
22817 specifying a stack-limiting register.
22818 * opts.h: Add extern declarations of the two new global variables.
22819 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
22820 variable based on the values of the two new global variables.
22821
22822 2016-02-16 Jakub Jelinek <jakub@redhat.com>
22823
22824 PR c/69835
22825 * common.opt (Wnonnull-compare): New warning.
22826 * doc/invoke.texi (-Wnonnull): Remove text about comparison
22827 of arguments against NULL.
22828 (-Wnonnull-compare): Document.
22829 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
22830 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
22831 * passes.def (pass_warn_nonnull_compare): Add.
22832 * gimple-ssa-nonnull-compare.c: New file.
22833
22834 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
22835
22836 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
22837 AARCH64_EXTRA_TUNE_RECIP_SQRT.
22838
22839 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
22840
22841 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
22842 reciprocal sqrt for -mlow-precision-recip-sqrt.
22843
22844 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
22845 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22846
22847 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
22848 always use lane loads to construct non-constant vectors.
22849
22850 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
22851
22852 * config/aarch64/aarch64.md
22853 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
22854 constraints for operand 3.
22855 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
22856
22857 2016-02-16 Jakub Jelinek <jakub@redhat.com>
22858 Richard Biener <rguenther@suse.de>
22859
22860 PR tree-optimization/69820
22861 * tree-vect-patterns.c (type_conversion_p): Return false if
22862 *orig_type is unsigned single precision or boolean.
22863 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
22864 Formatting fix.
22865
22866 2016-02-16 Jakub Jelinek <jakub@redhat.com>
22867
22868 PR rtl-optimization/69764
22869 PR rtl-optimization/69771
22870 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
22871 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
22872
22873 2016-02-16 Richard Biener <rguenther@suse.de>
22874
22875 PR tree-optimization/69776
22876 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
22877 sets from caller.
22878 (indirect_refs_may_alias_p): Likewise.
22879 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
22880 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
22881 according to tbaa_p.
22882 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
22883 (optimize_stmt): For redundant store discovery do not allow tbaa.
22884
22885 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
22886
22887 PR tree-optimization/69714
22888 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
22889 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
22890
22891 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
22892
22893 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
22894 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
22895 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
22896 * config/arc/arc.c (arc_init): Check FPU options.
22897 (get_arc_condition_code): Handle new CC_FPU* modes.
22898 (arc_select_cc_mode): Likewise.
22899 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
22900 register pair only. Allow access for ARCv2 accumulator.
22901 (gen_compare_reg): Whenever we have FPU support use FPU compare
22902 instructions.
22903 (arc_reorg): Don't generate brcc insns when FPU compare
22904 instructions are involved.
22905 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
22906 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
22907 floating point emulation.
22908 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
22909 (REVERSE_CONDITION): Add new CC_FPU* modes.
22910 (TARGET_FP_SP_BASE): Define.
22911 (TARGET_FP_DP_BASE): Likewise.
22912 (TARGET_FP_SP_FUSED): Likewise.
22913 (TARGET_FP_DP_FUSED): Likewise.
22914 (TARGET_FP_SP_CONV): Likewise.
22915 (TARGET_FP_DP_CONV): Likewise.
22916 (TARGET_FP_SP_SQRT): Likewise.
22917 (TARGET_FP_DP_SQRT): Likewise.
22918 (TARGET_FP_DP_AX): Likewise.
22919 * config/arc/arc.md (ARCV2_ACC): New constant.
22920 (type): New fpu type attribute.
22921 (SDF): Conditional iterator.
22922 (cstore<mode>, cbranch<mode>): Change expand condition.
22923 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
22924 handles FPU/FPX cases as well.
22925 * config/arc/arc.opt (mfpu): New option.
22926 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
22927 Renamed.
22928 (adddf3, muldf3, subdf3): Removed.
22929 * config/arc/predicates.md (proper_comparison_operator): Recognize
22930 CC_FPU* modes.
22931 * config/arc/fpu.md: New file.
22932 * doc/invoke.texi (ARC Options): Document mfpu option.
22933
22934 2016-02-16 Richard Biener <rguenther@suse.de>
22935
22936 PR rtl-optimization/69291
22937 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
22938 noce_operand_ok check.
22939
22940 2016-02-16 Tom de Vries <tom@codesourcery.com>
22941
22942 PR lto/67709
22943 * omp-low.c (simd_clone_create): Remove call to
22944 symtab->call_cgraph_insertion_hooks.
22945
22946 2016-02-16 Jakub Jelinek <jakub@redhat.com>
22947
22948 PR tree-optimization/69802
22949 * tree-ssa-reassoc.c (update_range_test): If op is
22950 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
22951 op == 1 test of precision 1 integral op, otherwise handle
22952 that case as op itself. Fix up formatting.
22953 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
22954 up formatting.
22955
22956 2016-02-16 Richard Biener <rguenther@suse.de>
22957
22958 PR tree-optimization/69586
22959 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
22960 types for conversion sources.
22961
22962 2016-02-16 Richard Biener <rguenther@suse.de>
22963
22964 PR middle-end/69801
22965 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
22966 mask OEP_ADDRESS_OF.
22967
22968 2016-02-16 Alan Modra <amodra@gmail.com>
22969
22970 PR target/68973
22971 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
22972 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
22973 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
22974 (p8_mtvsrwz): New.
22975 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
22976 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
22977 (p8_fmrgow_<mode>): Likewise.
22978 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
22979 changes.
22980 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
22981 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
22982 to use movdi_internal64. Remove op0_di.
22983 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
22984
22985 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
22986
22987 Add support for the FCCMP insn types
22988
22989 * config/aarch64/aarch64.md (fccmp): Change insn type.
22990 (fccmpe): Likewise.
22991 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
22992 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
22993 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
22994 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
22995 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
22996 * config/arm/types.md (fccmps): Add new insn type.
22997 (fccmpd): Likewise.
22998
22999 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
23000
23001 * alias.c (get_alias_set): Fix a typo in comment.
23002
23003 2016-02-15 Richard Biener <rguenther@suse.de>
23004
23005 PR tree-optimization/69595
23006 * match.pd: Complete range test simplification to true.
23007
23008 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
23009
23010 PR rtl-optimization/69648
23011 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
23012 pic_offset_table_rtx.
23013
23014 PR rtl-optimization/69752
23015 * ira.c (update_equiv_regs): When looking for more than a single SET,
23016 also take other side effects into account.
23017
23018 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
23019
23020 * config/s390/s390.c (s390_function_profiler): Add a new sequence
23021 for z900+ CPUs in 31-bit mode.
23022
23023 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
23024
23025 * common/config/s390/s390-common.c (s390_supports_split_stack):
23026 New function.
23027 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
23028 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
23029 * config/s390/s390.c (struct machine_function): New field
23030 split_stack_varargs_pointer.
23031 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
23032 in s390_emit_prologue.
23033 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
23034 vararg pointer.
23035 (morestack_ref): New global.
23036 (SPLIT_STACK_AVAILABLE): New macro.
23037 (s390_expand_split_stack_prologue): New function.
23038 (s390_live_on_entry): New function.
23039 (s390_va_start): Use split-stack vararg pointer if appropriate.
23040 (s390_asm_file_end): Emit the split-stack note sections.
23041 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
23042 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
23043 (UNSPECV_SPLIT_STACK_CALL): New unspec.
23044 (UNSPECV_SPLIT_STACK_DATA): New unspec.
23045 (split_stack_prologue): New expand.
23046 (split_stack_space_check): New expand.
23047 (split_stack_data): New insn.
23048 (split_stack_call): New expand.
23049 (split_stack_call_*): New insn.
23050 (split_stack_cond_call): New expand.
23051 (split_stack_cond_call_*): New insn.
23052
23053 2016-02-15 Richard Biener <rguenther@suse.de>
23054
23055 PR tree-optimization/69783
23056 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
23057 Add trivially correct cases.
23058
23059 2016-02-15 Tom de Vries <tom@codesourcery.com>
23060
23061 PR lto/69655
23062 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
23063 do_force_output.
23064 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
23065
23066 2016-02-15 Richard Biener <rguenther@suse.de>
23067
23068 PR tree-optimization/69776
23069 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
23070 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
23071 indicate whether we can use TBAA to disambiguate against stores.
23072 Use alias-set zero if not.
23073 (visit_reference_op_store): Do not use TBAA when looking up
23074 redundant stores.
23075 * tree-ssa-pre.c (compute_avail): Use TBAA here.
23076 (eliminate_dom_walker::before_dom_children): But not when looking
23077 up redundant stores.
23078
23079 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
23080
23081 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
23082
23083 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
23084
23085 * config/i386/znver1.md
23086 (znver1_pop, znver1_pop_mem,
23087 znver1_load_imov_double_store,
23088 znver1_load_imov_direct_store,
23089 znver1_load_imov_direct_load,
23090 znver1_load_imov_double_load): Add new.
23091 (znver1_insn, znver1_insn_load): Add icmov type.
23092 (znver1_sseavx_fma,
23093 znver1_sseavx_fma_load,
23094 znver1_avx256_fma,
23095 znver1_avx256_fma_load): Fix pipe usage.
23096
23097 2016-02-14 Alan Modra <amodra@gmail.com>
23098
23099 PR target/68973
23100 * reload.c (find_reloads_address_1): For pre/post-inc/dec
23101 with an invalid hard reg, reload just the reg not the entire
23102 pre/post-inc/dec address expression.
23103
23104 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
23105
23106 PR target/67260
23107 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
23108 fixed R1_REG scratch reg.
23109 (sibcall_value_pcrel_fdpic): Likewise.
23110
23111 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
23112
23113 PR target/67636
23114 PR target/64345
23115 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
23116
23117 2016-02-12 Walter Lee <walt@tilera.com>
23118
23119 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
23120 * config/tilegx/t-tilegx: Likewise.
23121
23122 2016-02-12 David Malcolm <dmalcolm@redhat.com>
23123
23124 PR other/69554
23125 * diagnostic-show-locus.c (struct line_span): New struct.
23126 (layout::get_first_line): Delete.
23127 (layout::get_last_line): Delete.
23128 (layout::get_num_line_spans): New member function.
23129 (layout::get_line_span): Likewise.
23130 (layout::print_heading_for_line_span_index_p): Likewise.
23131 (layout::get_expanded_location): Likewise.
23132 (layout::calculate_line_spans): Likewise.
23133 (layout::m_first_line): Delete.
23134 (layout::m_last_line): Delete.
23135 (layout::m_line_spans): New field.
23136 (layout::layout): Update comment. Replace m_first_line and
23137 m_last_line with m_line_spans, replacing their initialization
23138 with a call to calculate_line_spans.
23139 (diagnostic_show_locus): When printing source lines and
23140 annotations, rather than looping over a single span
23141 of lines, instead loop over each line_span within
23142 the layout, with an inner loop over the lines within them.
23143 Call the context's start_span callback when changing line spans.
23144 * diagnostic.c (diagnostic_initialize): Initialize start_span.
23145 (diagnostic_build_prefix): Break out the building of the location
23146 part of the string into...
23147 (diagnostic_get_location_text): ...this new function, rewriting
23148 it from nested ternary expressions to a sequence of "if"
23149 statements.
23150 (default_diagnostic_start_span_fn): New function.
23151 * diagnostic.h (diagnostic_start_span_fn): New typedef.
23152 (diagnostic_context::start_span): New field.
23153 (default_diagnostic_start_span_fn): New prototype.
23154
23155 2016-02-12 David Malcolm <dmalcolm@redhat.com>
23156
23157 PR driver/69779
23158 * gcc.c (driver::finalize): Fix cleanup of "specs".
23159
23160 2016-02-12 David Malcolm <dmalcolm@redhat.com>
23161
23162 PR driver/69265
23163 PR driver/69453
23164 * gcc.c (driver::driver): Initialize m_option_suggestions.
23165 (driver::~driver): Clean up m_option_suggestions.
23166 (suggest_option): Convert to...
23167 (driver::suggest_option): ...this, and split out into
23168 driver::build_option_suggestions and find_closest_string.
23169 (driver::build_option_suggestions): New function, from
23170 first half of suggest_option. Special-case
23171 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
23172 the sanitizer_opts array. For options of enum types, add the
23173 various enum values to the candidate strings.
23174 (driver::handle_unrecognized_options): Remove "const".
23175 * gcc.h (driver::handle_unrecognized_options): Likewise.
23176 (driver::build_option_suggestions): New decl.
23177 (driver::suggest_option): New decl.
23178 (driver::m_option_suggestions): New field.
23179 * opts-common.c (add_misspelling_candidates): New function.
23180 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
23181 and make non-static.
23182 * opts.h (sanitizer_opts): New array decl.
23183 (add_misspelling_candidates): New function decl.
23184 * spellcheck.c (find_closest_string): New function.
23185 * spellcheck.h (find_closest_string): New function decl.
23186
23187 2016-02-12 Jakub Jelinek <jakub@redhat.com>
23188
23189 PR rtl-optimization/69764
23190 PR rtl-optimization/69771
23191 * optabs.c (expand_binop_directly): For shift_optab_p, force
23192 convert_modes with VOIDmode if xop1 has VOIDmode.
23193
23194 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
23195
23196 PR target/69729
23197 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
23198 to correctly determine instrumentation thunks.
23199
23200 2016-02-12 Jakub Jelinek <jakub@redhat.com>
23201
23202 PR ipa/69241
23203 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
23204 type by reference, force lhs on the call.
23205
23206 PR ipa/68672
23207 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
23208 Compute retval and retbnd early in all cases if split_part_return_p
23209 and return_bb is not EXIT. Remove all clobber stmts and reset
23210 all debug stmts that refer to SSA_NAMEs defined in split part,
23211 except if it is retval, in that case replace the old retval with the
23212 lhs of the call to the split part.
23213
23214 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
23215
23216 revert:
23217 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
23218
23219 PR middle-end/66726
23220 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
23221 whose result is used in PHI.
23222 (maybe_optimize_range_tests): Likewise.
23223 (final_range_test_p): Likweise.
23224
23225 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
23226
23227 PR middle-end/66726
23228 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
23229 whose result is used in PHI.
23230 (maybe_optimize_range_tests): Likewise.
23231 (final_range_test_p): Likweise.
23232
23233 2016-02-12 Jakub Jelinek <jakub@redhat.com>
23234
23235 * cgraph.c: Spelling fixes - behaviour -> behavior and
23236 neighbour -> neighbor.
23237 * target.def: Likewise.
23238 * sel-sched.c: Likewise.
23239 * config/mips/mips.c: Likewise.
23240 * config/arc/arc.md: Likewise.
23241 * config/arm/cortex-a57.md: Likewise.
23242 * config/arm/arm.c: Likewise.
23243 * config/arm/neon.md: Likewise.
23244 * config/arm/arm-c.c: Likewise.
23245 * config/vms/vms-c.c: Likewise.
23246 * config/s390/s390.c: Likewise.
23247 * config/i386/znver1.md: Likewise.
23248 * config/i386/i386.c: Likewise.
23249 * config/ia64/hpux-unix2003.h: Likewise.
23250 * config/msp430/msp430.md: Likewise.
23251 * config/rx/rx.c: Likewise.
23252 * config/rx/rx.md: Likewise.
23253 * config/aarch64/aarch64-simd.md: Likewise.
23254 * config/aarch64/aarch64.c: Likewise.
23255 * config/nvptx/nvptx.c: Likewise.
23256 * config/bfin/bfin.c: Likewise.
23257 * config/cris/cris.opt: Likewise.
23258 * config/rs6000/rs6000.c: Likewise.
23259 * target.h: Likewise.
23260 * spellcheck.c: Likewise.
23261 * ira-build.c: Likewise.
23262 * tree-inline.c: Likewise.
23263 * builtins.c: Likewise.
23264 * lra-constraints.c: Likewise.
23265 * explow.c: Likewise.
23266 * hwint.h: Likewise.
23267 * targhooks.c: Likewise.
23268 * tree-vect-data-refs.c: Likewise.
23269 * expr.c: Likewise.
23270 * doc/tm.texi: Likewise.
23271 * doc/extend.texi: Likewise.
23272 * doc/install.texi: Likewise.
23273 * doc/md.texi: Likewise.
23274 * tree-ssa-tail-merge.c: Likewise.
23275 * sched-int.h: Likewise.
23276 * match.pd: Likewise.
23277 * sched-ebb.c: Likewise.
23278 * target.def (omit_struct_return_reg): Likewise.
23279 * gimple-ssa-isolate-paths.c: Likewise.
23280 (find_implicit_erroneous_behaviour): Renamed to...
23281 (find_implicit_erroneous_behavior): ... this.
23282 (find_explicit_erroneous_behaviour): Renamed to...
23283 (find_explicit_erroneous_behavior): ... this.
23284 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
23285
23286 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
23287
23288 PR rtl-optimization/64682
23289 PR rtl-optimization/69567
23290 PR rtl-optimization/69737
23291 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
23292 in I2 as well, just lose it.
23293
23294 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23295
23296 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
23297 New variable.
23298 (aarch64_last_printed_tune_string): Likewise.
23299 (aarch64_declare_function_name): Only output .arch assembler
23300 directive if it will be different from the previously output
23301 directive. Same for .tune comment but only if -dA is set.
23302 (aarch64_start_file): New function.
23303 (TARGET_ASM_FILE_START): Define.
23304
23305 2016-02-11 David Malcolm <dmalcolm@redhat.com>
23306
23307 PR plugins/69758
23308 * Makefile.in (PLUGIN_HEADERS): Add params.list.
23309
23310 2016-02-11 Jakub Jelinek <jakub@redhat.com>
23311
23312 PR target/65313
23313 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
23314 -Wmaybe-uninitialized warning.
23315
23316 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
23317
23318 PR target/69713
23319 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
23320
23321 2016-02-11 Richard Biener <rguenther@suse.de>
23322
23323 PR rtl-optimization/69291
23324 * ifcvt.c (noce_try_store_flag_constants): Do not allow
23325 subexpressions affected by changing the result.
23326
23327 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
23328
23329 PR target/69148
23330 * lra-constraints.c (curr_insn_transform): Find in/out operands
23331 for secondary memory moves. Update dups.
23332
23333 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
23334
23335 PR tree-optimization/69652
23336 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
23337 to nested loop, did source re-formatting, skip debug statements,
23338 add check on statement with volatile operand, remove dead scalar
23339 statements.
23340
23341 2016-02-10 Jakub Jelinek <jakub@redhat.com>
23342 Patrick Palka <ppalka@gcc.gnu.org>
23343
23344 PR ipa/69241
23345 PR c++/69649
23346 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
23347 calls if the return type is TREE_ADDRESSABLE.
23348 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
23349 * ipa-split.c (split_function): Fix doubled "we" in comment.
23350 Use void return type for the split part even if
23351 !split_point->split_part_set_retval.
23352
23353 2016-02-10 Bin Cheng <bin.cheng@arm.com>
23354
23355 PR tree-optimization/68021
23356 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
23357 when computing the value of biv cand by itself.
23358
23359 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
23360
23361 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
23362 (cortexa57_tunings): Likewise.
23363 (cortexa72_tunings): Likewise.
23364 (arch_macro_fusion_pair_p): Add support for AES fusion.
23365 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
23366 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
23367 Allow virtual registers before reload so early scheduling works.
23368 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
23369 correct latency and pipeline.
23370 (cortex_a57_crypto_complex): Likewise.
23371 (cortex_a57_crypto_xor): Likewise.
23372 (define_bypass): Add AES bypass.
23373
23374 2016-02-10 Richard Biener <rguenther@suse.de>
23375
23376 PR tree-optimization/69726
23377 * passes.def: Add DCE pass before late uninit.
23378 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
23379 really fixup if-conversions job.
23380
23381 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
23382
23383 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
23384 (arm_cortex_a57_tune): Likewise.
23385 (aarch_macro_fusion_pair_p): Add support for AES fusion.
23386 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
23387
23388 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
23389
23390 * timevar.def (TV_PHASE_DBGINFO): Delete.
23391 (TV_PHASE_CHECK_DBGINFO): Likewise.
23392 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
23393
23394 2016-02-10 Richard Biener <rguenther@suse.de>
23395
23396 PR tree-optimization/69719
23397 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
23398 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
23399
23400 2016-02-09 Andrew Pinski <apinski@cavium.com>
23401
23402 PR tree-opt/69282
23403 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
23404 get_vcond_mask_icode returns false.
23405
23406 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
23407
23408 PR target/68404
23409 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
23410 an ADDIS that adds a pointer to a large constant that sets the
23411 upper16 bits with a load operation.
23412
23413 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
23414
23415 PR target/68532
23416 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
23417 order.
23418 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
23419 endian.
23420 (vzipq_s16): Likewise.
23421 (vzipq_s32): Likewise.
23422 (vzipq_f32): Likewise.
23423 (vzipq_u8): Likewise.
23424 (vzipq_u16): Likewise.
23425 (vzipq_u32): Likewise.
23426 (vzipq_p8): Likewise.
23427 (vzipq_p16): Likewise.
23428
23429 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
23430
23431 PR target/68532
23432 * config/arm/arm.c (neon_endian_lane_map): New function.
23433 (neon_vector_pair_endian_lane_map): New function.
23434 (arm_evpc_neon_vuzp): Allow for big endian lane order.
23435 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
23436 endian.
23437 (vuzpq_s16): Likewise.
23438 (vuzpq_s32): Likewise.
23439 (vuzpq_f32): Likewise.
23440 (vuzpq_u8): Likewise.
23441 (vuzpq_u16): Likewise.
23442 (vuzpq_u32): Likewise.
23443 (vuzpq_p8): Likewise.
23444 (vuzpq_p16): Likewise.
23445
23446 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
23447
23448 PR target/69634
23449 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
23450 debug insns.
23451
23452 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
23453
23454 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
23455 truncate const_int operand 1 to QImode.
23456
23457 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
23458
23459 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
23460 corresponding to an abnormal edge.
23461
23462 2016-02-09 Tom de Vries <tom@codesourcery.com>
23463
23464 PR tree-optimization/69599
23465 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
23466 function.
23467 (find_func_aliases_for_builtin_call, find_func_clobbers)
23468 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
23469 partition.
23470
23471 2016-02-09 Richard Biener <rguenther@suse.de>
23472
23473 PR tree-optimization/69715
23474 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
23475 LHS on calls as non-rewritable.
23476
23477 2016-02-09 Tom de Vries <tom@codesourcery.com>
23478
23479 PR lto/69707
23480 * lto-wrapper.c (append_diag_options): New function.
23481 (compile_offload_image): Call append_diag_options.
23482
23483 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
23484
23485 PR other/69722
23486 * doc/extend.texi (Flag Output Operands): Correct sectioning.
23487 Minor copy-edit to fix verb tenses.
23488
23489 2016-02-08 Jakub Jelinek <jakub@redhat.com>
23490
23491 PR tree-optimization/69209
23492 * ipa-split.c (split_function): If split part is not
23493 returning retval, retval has gimple type but is not
23494 gimple value, force it into a SSA_NAME first.
23495
23496 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
23497
23498 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
23499 outdated section.
23500
23501 2016-02-08 Jason Merrill <jason@redhat.com>
23502
23503 PR c++/69631
23504 * convert.c (convert_to_integer_1): Check dofold on truncation
23505 distribution.
23506 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
23507 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
23508 Rename from *_nofold.
23509 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
23510 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
23511
23512 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
23513
23514 PR target/60410
23515 * tree.c (build_common_tree_nodes): Remove short_double argument.
23516 All callers changed.
23517 * tree.h (build_common_tree_nodes): Adjust declaration.
23518 * doc/invoke.texi (-fshort-double): Remove documentation.
23519 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
23520 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
23521 * lto-wrapper.c (merge_and_complain, append_compiler_options)
23522 (append_linker_options): Don't handle OPT_fshort_double.
23523
23524 PR rtl-optimization/68730
23525 * lra-remat.c (insn_to_cand_activation): New static variable.
23526 (lra_remat): Allocate and free it.
23527 (create_cand): New arg activation. Initialize a field in
23528 insn_to_cand_activation if it is nonnull.
23529 (create_cands): Pass the activation insn to create_cand when making
23530 a candidate involving an output reload. Reorganize code a little.
23531 (do_remat): Keep track of active status of candidates in a separate
23532 bitmap.
23533
23534 2016-02-08 Richard Biener <rguenther@suse.de>
23535
23536 PR tree-optimization/69719
23537 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
23538 Properly use absolute of the difference of the two offsets to
23539 compare or adjust the segment length.
23540
23541 2016-02-08 Richard Biener <rguenther@suse.de>
23542 Jeff Law <law@redhat.com>
23543
23544 PR target/68273
23545 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
23546 types for anonymous SSA names.
23547
23548 2016-02-08 Richard Biener <rguenther@suse.de>
23549
23550 PR rtl-optimization/69274
23551 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
23552
23553 2016-02-08 Jeff Law <law@redhat.com>
23554
23555 PR tree-optimization/65917
23556 * tree-ssa-dom.c (record_temporary_equivalences): Record both
23557 equivalences from if (x == y) style conditionals.
23558 (loop_depth_of_name): Remove.
23559 (record_equality): Remove loop depth check.
23560 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
23561 (const_and_copies::record_const_or_copy_raw): New member function.
23562 * tree-ssa-scopedtables.c
23563 (const_and_copies::record_const_or_copy_raw): New, factored out of
23564 (const_and_copies::record_const_or_copy): Call new member function.
23565
23566 2016-02-05 Jeff Law <law@redhat.com>
23567
23568 PR tree-optimization/68541
23569 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
23570 (count_stmts_in_block): New function.
23571 (poor_ifcvt_candidate_code): Likewise.
23572 (is_feasible_trace): Add some heuristics to determine when path
23573 splitting is profitable.
23574 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
23575 is a diamond with a single exit.
23576
23577 2016-02-05 Martin Sebor <msebor@redhat.com>
23578
23579 PR c++/69662
23580 * doc/invoke.texi: Update -Wplacement-new to take an optional
23581 argument.
23582
23583 2016-02-06 Richard Henderson <rth@redhat.com>
23584
23585 PR c/69643
23586 * tree.c (tree_nop_conversion_p): Do not strip casts into or
23587 out of non-standard address spaces.
23588
23589 2016-02-05 Jakub Jelinek <jakub@redhat.com>
23590
23591 PR rtl-optimization/69691
23592 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
23593
23594 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
23595
23596 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
23597 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
23598 (*ieee128_mfvsrd_64bit): Likewise.
23599 (*ieee128_mfvsrd_32bit): Likewise.
23600
23601 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
23602
23603 PR target/69369
23604 Revert r232560:
23605 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23606
23607 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
23608 instrumented_version.
23609
23610 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
23611
23612 * doc/invoke.texi (Optimize Options): In table of --param options
23613 rename second occurrence of tracer-min-branch-ratio to
23614 tracer-min-branch-probability, rename
23615 tracer-min-branch-ratio-feedback to
23616 tracer-min-branch-probability-feedback and clarify description,
23617 rename sched-spec-state-edge-prob-cutoff to
23618 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
23619 to selsched-insns-to-rename, rename lto-minpartition to
23620 lto-min-partition, delete reorder-blocks-duplicate and
23621 reorder-blocks-duplicate-feedback.
23622
23623 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23624
23625 * config/s390/s390.c (s390_register_info_set_ranges): Remove
23626 superfluous loops.
23627
23628 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
23629
23630 * doc/extend.texi: S/390: Correct some typos.
23631
23632 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23633
23634 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
23635
23636 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23637
23638 PR target/69625
23639 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
23640 (s390_register_info_gprtofpr): Use new macros above.
23641 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
23642 its name.
23643 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
23644 its name. Adjust restore and save gpr ranges.
23645 (s390_register_info_set_ranges): New function.
23646 (s390_register_info): Use new macros above. Call
23647 s390_register_info_set_ranges.
23648 (s390_optimize_register_info): Likewise.
23649 (s390_hard_regno_rename_ok): Use new macros.
23650 (s390_hard_regno_scratch_ok): Likewise.
23651 (s390_emit_epilogue): Likewise.
23652 (s390_can_use_return_insn): Likewise.
23653 (s390_optimize_prologue): Likewise.
23654 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
23655
23656 2016-02-05 Jakub Jelinek <jakub@redhat.com>
23657
23658 PR bootstrap/69677
23659 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
23660 alignment fixes.
23661 (ix86_option_override_internal): Disable TARGET_STV even for
23662 -m{incoming,preferred}-stack-boundary=3.
23663
23664 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23665
23666 * config.gcc: Mark deprecated rtems targets as obsolete.
23667
23668 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
23669
23670 PR rtl-optimization/64682
23671 PR rtl-optimization/69567
23672 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
23673 before I2 only if the register is both used and set in I2.
23674
23675 2016-02-04 DJ Delorie <dj@redhat.com>
23676
23677 * config/msp430/msp430.c (msp430_start_function): Add function type.
23678
23679 2016-02-04 Jakub Jelinek <jakub@redhat.com>
23680
23681 PR fortran/69368
23682 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
23683
23684 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
23685
23686 PR rtl-optimization/69577
23687 Revert:
23688 2015-10-29 Richard Henderson <rth@redhat.com>
23689
23690 PR target/68124
23691 PR rtl-opt/67609
23692 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
23693 sse check to the exact conditions of PR 67609.
23694
23695 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
23696
23697 PR target/69667
23698 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
23699 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
23700 not allowed into the traditional Altivec registers.
23701 (movtd_64bit_nodm): Likewise.
23702 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
23703
23704 2016-02-04 David Malcolm <dmalcolm@redhat.com>
23705
23706 * config/aarch64/cortex-a57-fma-steering.c
23707 (aarch64_register_fma_steering): Remove "static" from arguments
23708 to register_pass.
23709
23710 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
23711
23712 PR target/69619
23713 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
23714 twice when complex.
23715
23716 2016-02-04 Mike Frysinger <vapier@gentoo.org>
23717
23718 * doc/invoke.texi: Delete -mno-fma4.
23719
23720 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
23721
23722 PR rtl-optimization/69577
23723 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
23724 (find_subregs_of_mode): Update accordingly. Iterate over partial
23725 definitions.
23726
23727 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
23728
23729 * config/arm/arm-protos.h (neon_reinterpret): Remove.
23730 * config/arm/arm.c (neon_reinterpret): Remove.
23731 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
23732 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
23733 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
23734 vreinterpretti): Remove.
23735 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
23736 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
23737 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
23738 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
23739 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
23740 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
23741 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
23742 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
23743 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
23744 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
23745 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
23746 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
23747 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
23748 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
23749 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
23750 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
23751 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
23752 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
23753 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
23754 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
23755 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
23756 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
23757 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
23758 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
23759 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
23760 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
23761 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
23762 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
23763 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
23764 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
23765 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
23766 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
23767 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
23768 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
23769 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
23770 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
23771 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
23772 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
23773 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
23774 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
23775 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
23776 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
23777 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
23778 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
23779 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
23780 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
23781 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
23782 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
23783 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
23784 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
23785 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
23786 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
23787 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
23788 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
23789 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
23790 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
23791 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
23792 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
23793 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
23794 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
23795 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
23796 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
23797 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
23798 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
23799 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
23800 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
23801 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
23802 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
23803 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
23804 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
23805 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
23806 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
23807 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
23808 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
23809 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
23810 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
23811 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
23812 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
23813 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
23814 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
23815 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
23816 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
23817 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
23818 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
23819 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
23820 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
23821 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
23822 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
23823 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
23824 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
23825 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
23826 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
23827 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
23828 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
23829 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
23830 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
23831 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
23832 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
23833 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
23834 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
23835 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
23836 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
23837 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
23838
23839 2016-02-04 Martin Liska <mliska@suse.cz>
23840
23841 PR sanitizer/69276
23842 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
23843 that are gimple_store_p.
23844 (maybe_instrument_call): Likewise.
23845
23846 2016-02-04 Bin Cheng <bin.cheng@arm.com>
23847
23848 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
23849 register scaling out of memory reference and comment why.
23850
23851 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23852
23853 PR target/65932
23854 PR target/67714
23855 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
23856 folding the source of a SET.
23857
23858 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23859
23860 PR target/65932
23861 PR target/67714
23862 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
23863 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
23864
23865 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
23866
23867 PR target/65932
23868 PR target/67714
23869 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
23870 HImode.
23871
23872 2016-02-04 Christian Bruel <christian.bruel@st.com>
23873
23874 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
23875 * config/arm/arm.c (arm_set_current_function): Likewise.
23876
23877 2016-02-04 Jakub Jelinek <jakub@redhat.com>
23878 Ilya Enkovich <enkovich.gnu@gmail.com>
23879 H.J. Lu <hongjiu.lu@intel.com>
23880
23881 PR target/69454
23882 * config/i386/i386.c (convert_scalars_to_vector): Remove
23883 stack alignment fixes.
23884 (ix86_option_override_internal): Disable TARGET_STV if stack
23885 might not be aligned enough.
23886 (ix86_minimum_alignment): Assert that TARGET_STV is false.
23887
23888 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
23889
23890 * config/i386/x86-tune.def: Disable default prefetching
23891 for -march=znver1.
23892
23893 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
23894 Vladimir Makarov <vmakarov@redhat.com>
23895
23896 PR target/69461
23897 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
23898 in validating fused toc addresses.
23899
23900 2016-02-03 Jakub Jelinek <jakub@redhat.com>
23901
23902 PR c/69627
23903 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
23904 range->m_caret fields if range->m_show_caret_p is false.
23905
23906 PR target/69644
23907 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
23908 Force oldval into register if it does not satisfy reg_or_short_operand
23909 predicate. Fix up formatting.
23910
23911 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
23912 Alexandre Oliva <aoliva@redhat.com>
23913
23914 PR target/69461
23915 * lra-constraints.c (simplify_operand_subreg): Check additionally
23916 address validity after potential reloading.
23917 (process_address_1): Check insns validity. In case of failure do
23918 nothing.
23919
23920 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
23921
23922 PR target/69118
23923 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
23924 Fix target.
23925
23926 2016-02-02 Jakub Jelinek <jakub@redhat.com>
23927
23928 * wide-int.cc (canonize_uhwi): New function.
23929 (wi::divmod_internal): Use it.
23930
23931 2016-02-02 James Norris <jnorris@codesourcery.com>
23932
23933 * gimplify.c (omp_notice_variable): Add usage check.
23934
23935 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
23936
23937 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
23938 like LE, GE, LT, GT when emitting relational operator.
23939
23940 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
23941
23942 * ira-costs.c (find_costs_and_classes): Add extra argument.
23943 * target.def (ira_change_pseudo_allocno_class): Add parameter.
23944 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
23945 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
23946 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
23947 Add best_class parameter, and return it if not ALL_REGS.
23948 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
23949 Add parameter.
23950 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
23951 Update target hook.
23952
23953 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
23954
23955 * config/aarch64/aarch64.c
23956 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
23957 (aarch64_ira_change_pseudo_allocno_class): New function.
23958
23959 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
23960
23961 PR target/67032
23962 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
23963
23964 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
23965
23966 * config/avr/avr.c (avr_option_override): Set
23967 PARAM_ALLOW_STORE_DATA_RACES to 1.
23968
23969 2016-02-02 Richard Biener <rguenther@suse.de>
23970
23971 PR tree-optimization/69595
23972 * match.pd: Add range test simplifications to true/false.
23973
23974 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
23975
23976 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
23977 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
23978 instead.
23979
23980 2016-02-02 Richard Biener <rguenther@suse.de>
23981
23982 PR tree-optimization/69606
23983 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
23984 info on the result before moving a stmt.
23985
23986 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
23987
23988 PR middle-end/68542
23989 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
23990 branch with vector comparison.
23991 * config/i386/sse.md (VI48_AVX): New mode iterator.
23992 (define_expand "cbranch<mode>4): Add support for conditional branch
23993 with vector comparison.
23994 * tree-vect-loop.c (optimize_mask_stores): New function.
23995 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
23996 has_mask_store field of vect_info.
23997 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
23998 vectorized loops having masked stores after vec_info destroy.
23999 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
24000 correspondent macros.
24001 (optimize_mask_stores): Add prototype.
24002
24003 2016-02-02 Alan Modra <amodra@gmail.com>
24004
24005 PR target/69548
24006 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
24007 allow subregs.
24008
24009 2016-02-02 Alan Modra <amodra@gmail.com>
24010
24011 PR target/68662
24012 * config/rs6000/rs6000.c (need_toc_init): New var, set it
24013 whenever toc_label_name used.
24014 (rs6000_file_start): Don't set up toc section here,
24015 (rs6000_output_function_epilogue): do so here instead,
24016 (rs6000_xcoff_file_start): and here.
24017 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
24018 (load_toc_aix_di): Likewise.
24019
24020 2016-02-01 Jakub Jelinek <jakub@redhat.com>
24021
24022 PR rtl-optimization/69592
24023 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
24024 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
24025 (num_sign_bit_copies_binary_arith_p): New inline function.
24026 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
24027
24028 2016-02-01 Jeff Law <law@redhat.com>
24029
24030 PR tree-optimization/69580
24031 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
24032 * tree-ssa-threadbackward.c
24033 (fsm_find_control_statement_thread_paths): Do not try to walk
24034 through large PHI nodes.
24035
24036 2016-02-01 Jakub Jelinek <jakub@redhat.com>
24037
24038 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
24039 when count is incremented above limit, don't analyze further
24040 insns afterwards.
24041
24042 * omp-low.c (oacc_parse_default_dims): Avoid
24043 -Wsign-compare warning, make sure value fits into int
24044 rather than just unsigned int.
24045
24046 2016-02-01 Bin Cheng <bin.cheng@arm.com>
24047
24048 PR tree-optimization/67921
24049 * fold-const.c (split_tree): New parameters. Convert pointer
24050 type variable part to proper type before negating.
24051 (fold_binary_loc): Pass new arguments to split_tree.
24052
24053 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
24054
24055 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
24056 (nvptx_goacc_validate_dims): Extend to handle global defaults.
24057 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
24058 * doc/tm.texti: Rebuilt.
24059 * doc/invoke.texi (fopenacc-dim): Document.
24060 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
24061 (append_compiler_options): Likewise.
24062 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
24063 (oacc_parse_default_dims): New.
24064 (oacc_validate_dims): Add USED arg. Select non-unity default when
24065 possible.
24066 (oacc_loop_fixed_partitions): Return mask of used partitions.
24067 (oacc_loop_auto_partitions): Emit dump info.
24068 (oacc_loop_partition): Return mask of used partitions.
24069 (execute_oacc_device_lower): Parse default dimension arg. Adjust
24070 loop partitioning and validation calls.
24071
24072 2016-02-01 Richard Biener <rguenther@suse.de>
24073
24074 PR middle-end/69556
24075 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
24076
24077 2016-02-01 Richard Biener <rguenther@suse.de>
24078
24079 PR tree-optimization/69574
24080 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
24081 of asserting return chrec_dont_know.
24082
24083 2016-02-01 Martin Liska <mliska@suse.cz>
24084
24085 * mem-stats-traits.h: Add copyright header.
24086 * mem-stats.h: Likewise.
24087
24088 2016-02-01 Richard Biener <rguenther@suse.de>
24089
24090 PR tree-optimization/69579
24091 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
24092 Do not propagate through abnormal PHI results.
24093
24094 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
24095
24096 * postreload.c (reload_cse_simplify): Remove dead code.
24097
24098 2016-02-01 Jakub Jelinek <jakub@redhat.com>
24099
24100 PR rtl-optimization/69570
24101 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
24102 if there is more than one set, not if there is a single set.
24103
24104 2016-02-01 Richard Henderson <rth@redhat.com>
24105
24106 PR rtl-opt/69535
24107 * combine.c (make_compound_operation): When looking through a
24108 subreg, make sure to re-extend to the width of the outer mode.
24109
24110 2016-01-30 Jakub Jelinek <jakub@redhat.com>
24111
24112 PR tree-optimization/69546
24113 * wide-int.cc (wi::divmod_internal): For unsigned division
24114 where both operands fit into uhwi, if o1 is 1 and o0 has
24115 msb set, if divident_prec is larger than bits per hwi,
24116 clear another quotient word and return 2 instead of 1.
24117 Similarly for remainder with msb in HWI set, if dividend_prec
24118 is larger than bits per hwi.
24119
24120 2016-01-29 Martin Jambor <mjambor@suse.cz>
24121
24122 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
24123 Use short lowercase names.
24124 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
24125 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
24126 acq_rel one. Protect warning agains segfaults if
24127 get_memory_order_name returns NULL.
24128 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
24129 with release semantics. Do not warn if get_memory_order already did.
24130 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
24131 semantics. Fix check for relaxed or acquire semantics. Do not warn
24132 if get_memory_order already did.
24133
24134 2016-01-29 Sebastian Pop <s.pop@samsung.com>
24135
24136 * doc/install.texi: Document that isl-0.16 is supported.
24137
24138 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
24139
24140 PR target/69299
24141 * config/i386/constraints.md (Bm): Describe as special memory
24142 constraint.
24143 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
24144 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
24145 * genpreds.c (struct constraint_data): Add is_special_memory.
24146 (have_special_memory_constraints, special_memory_start): New
24147 static vars.
24148 (special_memory_end): Ditto.
24149 (add_constraint): Add new arg is_special_memory. Add code to
24150 process its true value. Update have_special_memory_constraints.
24151 (process_define_constraint): Pass the new arg.
24152 (process_define_register_constraint): Ditto.
24153 (choose_enum_order): Process special memory.
24154 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
24155 function insn_extra_special_memory_constraint.
24156 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
24157 * gensupport.c (process_rtx): Process
24158 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
24159 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
24160 * ira-lives.c (single_reg_class): Use
24161 insn_extra_special_memory_constraint.
24162 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
24163 * lra-constraints.c (process_alt_operands): Ditto.
24164 (curr_insn_transform): Use insn_extra_special_memory_constraint.
24165 * recog.c (asm_operand_ok, preprocess_constraints): Process
24166 CT_SPECIAL_MEMORY.
24167 * reload.c (find_reloads): Ditto.
24168 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
24169 * stmt.c (parse_input_constraint): Use
24170 insn_extra_special_memory_constraint.
24171
24172 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
24173
24174 PR target/69530
24175 * lra-splill.c (lra_final_code_change): Revert r229087 by
24176 removing all sub-registers.
24177
24178 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
24179
24180 PR target/65604
24181 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
24182
24183 2016-01-29 Jakub Jelinek <jakub@redhat.com>
24184
24185 PR target/69551
24186 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
24187 SSE1, copy target into the temporary reg first before recursing
24188 on it.
24189
24190 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
24191
24192 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
24193 with vm.
24194
24195 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
24196
24197 * ginclude/stdarg.h: Test __cplusplus instead of
24198 __GXX_EXPERIMENTAL_CXX0X__.
24199
24200 2016-01-29 Richard Biener <rguenther@suse.de>
24201
24202 PR tree-optimization/69547
24203 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
24204 Do not mark clobbers necessary.
24205 (mark_all_reaching_defs_necessary_1): Likewise.
24206
24207 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
24208
24209 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
24210 declaration name with %qs and print it in both error messages.
24211 Also fix indentation.
24212
24213 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
24214
24215 PR other/69006
24216 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
24217 trailing blank line from error message.
24218
24219 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
24220
24221 PR c++/69462
24222 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
24223 for C++-11.
24224
24225 2016-01-29 Richard Biener <rguenther@suse.de>
24226
24227 PR middle-end/69537
24228 * match.pd: Allow all integral types when simplifying a
24229 widening or sign-changing conversion.
24230
24231 2016-01-28 Sebastian Pop <s.pop@samsung.com>
24232
24233 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
24234 back to setting codegen_error to fail codegen.
24235
24236 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
24237
24238 PR target/69459
24239 * config/i386/constraints.md (C): Only accept constant zero operand.
24240 (BC): New constraint.
24241 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
24242 instead of C constraint.
24243 * doc/md.texi (Machine Constraints): Update description
24244 of C constraint.
24245
24246 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
24247
24248 PR target/68400
24249 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
24250
24251 2016-01-28 Jakub Jelinek <jakub@redhat.com>
24252
24253 PR middle-end/69542
24254 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
24255 non-debug insns.
24256
24257 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
24258
24259 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
24260 branches if using guessed profile.
24261
24262 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
24263
24264 * graphite-optimize-isl.c (optimize_isl): Fix dump.
24265
24266 2016-01-28 Richard Henderson <rth@redhat.com>
24267
24268 PR target/69305
24269 * config/aarch64/aarch64-modes.def (CC_Cmode): New
24270 * config/aarch64/aarch64-protos.h: Update.
24271 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
24272 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
24273 (aarch64_get_condition_code_1): Handle CC_Cmode.
24274 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
24275 (*add<mode>3_compareC_cconly_imm): New.
24276 (*add<mode>3_compareC_cconly): New.
24277 (*add<mode>3_compareC_imm): New.
24278 (add<mode>3_compareC): New.
24279 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
24280 to be first. Use aarch64_carry_operation.
24281 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
24282 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
24283 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
24284 (subti3): Use subdi3_compare1.
24285 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
24286 (sub<mode>3_compare1): New.
24287 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
24288 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
24289 (*subsi3_carryin_uxtw): Likewise.
24290 (*ngc<mode>, *ngcsi_uxtw): Likewise.
24291 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
24292 * config/aarch64/iterators.md (DWI): New.
24293 * config/aarch64/predicates.md (aarch64_carry_operation): New.
24294 (aarch64_borrow_operation): New.
24295
24296 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
24297
24298 * graphite-optimize-isl.c (optimize_isl): Print a different debug
24299 message when isl does not return a valid schedule.
24300
24301 2016-01-28 Sebastian Pop <s.pop@samsung.com>
24302
24303 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
24304 Remove comments from class declarations: they are already in the code
24305 close by the defs.
24306
24307 2016-01-28 Sebastian Pop <s.pop@samsung.com>
24308
24309 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
24310 codegen_error_p.
24311 (ternary_op_to_tree): Same.
24312 (unary_op_to_tree): Same.
24313 (nary_op_to_tree): Same.
24314 (gcc_expression_from_isl_expr_op): Same.
24315 (gcc_expression_from_isl_expression): Same.
24316 (graphite_create_new_loop): Same.
24317 (graphite_create_new_loop_guard): Same.
24318 (build_iv_mapping): Same.
24319 (graphite_create_new_guard): Same.
24320 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
24321 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
24322
24323 2016-01-28 Sebastian Pop <s.pop@samsung.com>
24324
24325 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
24326 instead of setting codegen_error to fail codegen.
24327
24328 2016-01-28 Jason Merrill <jason@redhat.com>
24329
24330 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
24331
24332 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
24333
24334 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
24335 Remove CONST_INT_P check in CCMP cost calculation.
24336
24337 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
24338
24339 * config/aarch64/aarch64.c (generic_vector_cost):
24340 Set vec_permute_cost.
24341 (cortexa57_vector_cost): Likewise.
24342 (exynosm1_vector_cost): Likewise.
24343 (xgene1_vector_cost): Likewise.
24344 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
24345 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
24346 Add vec_permute_cost entry.
24347
24348 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
24349
24350 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
24351 immediate as %1.
24352 (add<mode>3_compare0): Likewise.
24353 (addsi3_compare0_uxtw): Likewise.
24354 (add<mode>3nr_compare0): Likewise.
24355 (compare_neg<mode>): Likewise.
24356 (<optab><mode>3): Likewise.
24357
24358 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
24359
24360 * tree-vect-stmts.c (vectorizable_comparison): Add
24361 NULL check for vectype.
24362
24363 2016-01-28 Richard Biener <rguenther@suse.de>
24364
24365 PR tree-optimization/69466
24366 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
24367 Account for PHIs we couldn't duplicate.
24368
24369 2016-01-28 Martin Liska <mliska@suse.cz>
24370
24371 PR pch/68758
24372 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
24373 instead of ENABLE_VALGRIND_CHECKING.
24374
24375 2016-01-27 Richard Henderson <rth@redhat.com>
24376
24377 PR rtl-opt/69447
24378 * lra-remat.c (subreg_regs): New.
24379 (dump_candidates_and_remat_bb_data): Dump it.
24380 (operand_to_remat): Reject if operand in subreg_regs.
24381 (set_bb_regs): Collect subreg_regs.
24382 (lra_remat): Init and free subreg_regs. Compute
24383 calculate_local_reg_remat_bb_data before create_cands.
24384
24385 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
24386
24387 PR target/68986
24388 * config/i386/i386.c (ix86_update_stack_boundary): Don't
24389 change stack_alignment_needed for __tls_get_addr call.
24390
24391 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
24392
24393 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
24394
24395 2016-01-27 Jeff Law <law@redhat.com>
24396
24397 PR tree-optimization/68398
24398 PR tree-optimization/69196
24399 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
24400 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
24401 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
24402 Only count PHIs in the last block in the path. The others will
24403 const/copy propagate away. Add heuristic to allow more irreducible
24404 subloops to be created when it is likely profitable to do so.
24405
24406 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
24407 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
24408 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
24409
24410 2016-01-27 Jakub Jelinek <jakub@redhat.com>
24411
24412 PR lto/69254
24413 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
24414 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
24415 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
24416 * tree-streamer-in.c: Include asan.h.
24417 (streamer_get_builtin_tree): For builtins in sanitizer
24418 range call initialize_sanitizer_builtins and retry.
24419
24420 2016-01-27 Ian Lance Taylor <iant@google.com>
24421
24422 * common.opt (fkeep-gc-roots-live): New undocumented option.
24423 * tree-ssa-loop-ivopts.c (add_candidate_1): If
24424 -fkeep-gc-roots-live, skip pointers.
24425 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
24426 NULL.
24427
24428 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
24429
24430 PR target/69512
24431 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
24432 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
24433
24434 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
24435
24436 PR target/68380
24437 * configure.ac: NetBSD provides SSP in its C library.
24438 * configure: Updated.
24439
24440 2016-01-27 Richard Biener <rguenther@suse.de>
24441
24442 PR tree-optimization/69166
24443 * tree-vect-loop.c (vect_is_simple_reduction): Always check
24444 reduction code for commutativity / associativity.
24445
24446 2016-01-27 Martin Jambor <mjambor@suse.cz>
24447
24448 PR tree-optimization/69355
24449 * tree-sra.c (analyze_access_subtree): Correct hole detection when
24450 total_scalarization fails.
24451
24452 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
24453
24454 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
24455 power9.
24456
24457 2016-01-27 Christian Bruel <christian.bruel@st.com>
24458
24459 PR target/69245
24460 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
24461 Move arm_reset_previous_fndecl and set_target_option_current_node in
24462 the conditional part. Call save_restore_target_globals.
24463 * config/arm/arm.c (arm_set_current_function):
24464 Refactor to better support #pragma target and attribute mix.
24465 Call save_restore_target_globals.
24466 * config/arm/arm-protos.h (save_restore_target_globals): New function.
24467
24468 2016-01-27 Martin Liska <mliska@suse.cz>
24469
24470 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
24471 reference for an HSA kernel and its host function.
24472
24473 2016-01-27 Jakub Jelinek <jakub@redhat.com>
24474
24475 PR tree-optimization/69399
24476 * wide-int.h (wi::lrshift): For larger precisions, only
24477 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
24478
24479 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
24480
24481 * config/arc/predicates.md (proper_comparison_operator): Reject
24482 constant-constant comparison.
24483
24484 2016-01-26 Tom de Vries <tom@codesourcery.com>
24485
24486 PR tree-optimization/69110
24487 * tree-data-ref.c (initialize_data_dependence_relation): Handle
24488 DR_NUM_DIMENSIONS == 0.
24489
24490 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
24491 Sebastian Pop <s.pop@samsung.com>
24492
24493 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
24494 isl_ast_op_cond and isl_ast_op_select.
24495 (gcc_expression_from_isl_expr_op): Same.
24496
24497 2016-01-26 Jason Merrill <jason@redhat.com>
24498
24499 PR c++/68782
24500 * tree.c (recompute_constructor_flags): Split out from
24501 build_constructor.
24502 (verify_constructor_flags): New.
24503 * tree.h: Declare them.
24504
24505 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
24506
24507 PR rtl-optimization/69217
24508 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
24509 are no TYPE_FIELDS set for the record type.
24510
24511 2016-01-26 Jakub Jelinek <jakub@redhat.com>
24512
24513 PR target/68662
24514 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
24515 toc_label_name unconditionally.
24516 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
24517 SYMBOL_REF string. Use toc_label_name instead of constructing
24518 LCTOC1.
24519 (rs6000_elf_declare_function_name): Use toc_label_name instead of
24520 constructing LCTOC1.
24521
24522 2016-01-26 Martin Sebor <msebor@redhat.com>
24523
24524 PR other/69477
24525 * doc/extend.texi (Common Type Attributes): Move text that talks about
24526 attribute packed from attribute aligned to the section discussing
24527 the former attribute for clarity.
24528
24529 2016-01-26 Richard Henderson <rth@redhat.com>
24530
24531 PR middle-end/60908
24532 * trans-mem.c (tm_region_init): Mark entry block as visited.
24533
24534 2016-01-26 David Malcolm <dmalcolm@redhat.com>
24535
24536 PR other/69006
24537 * diagnostic-show-locus.c (layout::print_source_line): Replace
24538 call to pp_newline with call to layout::print_newline.
24539 (layout::print_annotation_line): Likewise.
24540 (layout::move_to_column): Likewise.
24541 (layout::print_any_fixits): After printing any fixits, print a
24542 trailing newline, if necessary.
24543 (layout::print_newline): New method, resetting any colorization
24544 before a newline.
24545 (diagnostic_show_locus): Move the pp_newline to before the
24546 early bailout. Remove dummy block enclosing the layout instance.
24547 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
24548 of pp_newline_and_flush with pp_flush.
24549 (diagnostic_append_note): Delete use of pp_newline.
24550 (diagnostic_append_note_at_rich_loc): Delete.
24551 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
24552 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
24553 when newline characters are added to the buffer.
24554
24555 2016-01-26 Michael Matz <matz@suse.de>
24556
24557 * configure.ac (ac_cv_std_swap_in_utility): New test.
24558 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
24559 * configure: Regenerate.
24560 * config.in: Regenerate.
24561
24562 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
24563
24564 * config/arc/arc.md (cstoresi4): Force operand into register.
24565 (arcset<code>): Fix predicate.
24566 (arcsetltu): Likewise.
24567 (arcsetgeu): Likewise.
24568 (arcsethi): Likewise.
24569 (arcsetls): Likewise.
24570
24571 2016-01-26 Jakub Jelinek <jakub@redhat.com>
24572
24573 PR tree-optimization/69483
24574 * gimple-fold.c (canonicalize_constructor_val): Return NULL
24575 if base has error_mark_node type.
24576
24577 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
24578
24579 PR target/68620
24580 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
24581 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
24582 New helper macros.
24583 (vget_lane_f16): Handle big-endian.
24584 (vgetq_lane_f16): Likewise.
24585 (vset_lane_f16): Likewise.
24586 (vsetq_lane_f16): Likewise.
24587 * config/arm/iterators.md (VQXMOV): Add V8HF.
24588 (VDQ): Add V4HF and V8HF.
24589 (V_reg): Handle V4HF and V8HF.
24590 (Is_float_mode): Likewise.
24591 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
24592 neon_vdup_nv8hf): New patterns.
24593 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
24594 Use VD_LANE iterator.
24595 (neon_vld1_dup<mode>): Use VQ2 iterator.
24596
24597 2016-01-26 Nathan Sidwell <nathan@acm.org>
24598
24599 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
24600 (set_oacc_fn_attrib): Add IS_KERNEL arg.
24601 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
24602 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
24603 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
24604 (oacc_validate_dims): Add LEVEL arg, don't return level.
24605 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
24606 oacc_validate_dims.
24607 (execute_oacc_device_lower): Adjust, add more dump output.
24608 * tree-ssa-loop.c (gate_oacc_kernels): Use
24609 oacc_fn_attrib_kernels_p.
24610 * tree-parloops.c (create_parallel_loop): Adjust
24611 set_oacc_fn_attrib call.
24612
24613 2016-01-26 Jakub Jelinek <jakub@redhat.com>
24614
24615 PR lto/69254
24616 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
24617 (append_compiler_options): Handle -fcilkplus.
24618 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
24619
24620 2016-01-26 Nick Clifton <nickc@redhat.com>
24621
24622 PR target/66655
24623 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
24624 been marked as DECL_ONE_ONLY but we do not the means to make it
24625 so, then do not allow it to bind locally.
24626
24627 2016-01-26 Jakub Jelinek <jakub@redhat.com>
24628
24629 PR lto/69254
24630 * opts.h (parse_sanitizer_options): New prototype.
24631 * opts.c (sanitizer_opts): New array.
24632 (parse_sanitizer_options): New function.
24633 (common_handle_option): Use parse_sanitizer_options.
24634
24635 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
24636
24637 PR target/68986
24638 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
24639 alignment adjustment to ...
24640 (ix86_update_stack_boundary): Here. Don't over-align stack for
24641 __tls_get_addr.
24642 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
24643 if __tls_get_addr is called.
24644
24645 2016-01-26 Christian Bruel <christian.bruel@st.com>
24646
24647 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
24648
24649 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
24650
24651 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
24652
24653 2016-01-26 Richard Biener <rguenther@suse.de>
24654
24655 PR middle-end/69467
24656 * match.pd: Guard X * CST CMP 0 pattern with single_use.
24657
24658 2016-01-26 Richard Biener <rguenther@suse.de>
24659
24660 PR tree-optimization/69452
24661 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
24662 (move_computations_dom_walker::before_dom_children): Rename
24663 to ...
24664 (move_computations_worker): This.
24665 (move_computations): Perform an RPO rather than a DOM walk.
24666
24667 2016-01-26 Jakub Jelinek <jakub@redhat.com>
24668
24669 PR target/69442
24670 * combine.c (combine_instructions): For REG_EQUAL note with
24671 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
24672 to the underlying register.
24673 * doc/rtl.texi (REG_EQUAL): Document the behavior of
24674 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
24675
24676 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
24677
24678 PR target/67896
24679 * config/aarch64/aarch64-builtins.c
24680 (aarch64_init_simd_builtin_types): Do not set structural
24681 equality to __Poly{8,16,64,128}_t types.
24682
24683 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
24684
24685 PR tree-optimization/69400
24686 * wide-int.cc (wi_pack): Take the precision as argument and
24687 perform canonicalization here rather than in the callers.
24688 Use the main loop to handle all full-width HWIs. Add a
24689 zero HWI if in_len isn't a full result.
24690 (wi::divmod_internal): Update accordingly.
24691 (wi::mul_internal): Likewise. Simplify.
24692
24693 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
24694 Sebastian Pop <s.pop@samsung.com>
24695
24696 * graphite-poly.c (apply_poly_transforms): Simplify.
24697 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
24698 (print_isl_map): Same.
24699 (print_isl_union_map): Same.
24700 (print_isl_schedule): New.
24701 (debug_isl_schedule): New.
24702 * graphite-dependences.c (scop_get_reads): Do not call
24703 isl_union_map_add_map that is undocumented isl functionality.
24704 (scop_get_must_writes): Same.
24705 (scop_get_may_writes): Same.
24706 (scop_get_original_schedule): Remove.
24707 (scop_get_dependences): Do not call isl_union_map_compute_flow that
24708 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
24709 (compute_deps): Remove.
24710 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
24711 (debug_schedule_ast): New.
24712 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
24713 set_separate_option.
24714 (graphite_regenerate_ast_isl): Add dump.
24715 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
24716 from scop->transformed_schedule.
24717 (graphite_regenerate_ast_isl): Add more dump.
24718 * graphite-optimize-isl.c (optimize_isl): Set
24719 scop->transformed_schedule. Check whether schedules are equal.
24720 (apply_poly_transforms): Move here.
24721 * graphite-poly.c (apply_poly_transforms): ... from here.
24722 (free_poly_bb): Static.
24723 (free_scop): Static.
24724 (pbb_number_of_iterations_at_time): Remove.
24725 (print_isl_ast): New.
24726 (debug_isl_ast): New.
24727 (debug_scop_pbb): New.
24728 * graphite-scop-detection.c (print_edge): Move.
24729 (print_sese): Move.
24730 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
24731 (build_scop_scattering): Remove.
24732 (create_pw_aff_from_tree): Assert instead of bailing out.
24733 (add_condition_to_pbb): Remove unused code, do not fail.
24734 (add_conditions_to_domain): Same.
24735 (add_conditions_to_constraints): Remove.
24736 (build_scop_context): New.
24737 (add_iter_domain_dimension): New.
24738 (build_iteration_domains): Initialize pbb->iterators.
24739 Call add_conditions_to_domain.
24740 (nested_in): New.
24741 (loop_at): New.
24742 (index_outermost_in_loop): New.
24743 (index_pbb_in_loop): New.
24744 (outermost_pbb_in): New.
24745 (add_in_sequence): New.
24746 (add_outer_projection): New.
24747 (outer_projection_mupa): New.
24748 (add_loop_schedule): New.
24749 (build_schedule_pbb): New.
24750 (build_schedule_loop): New.
24751 (embed_in_surrounding_loops): New.
24752 (build_schedule_loop_nest): New.
24753 (build_original_schedule): New.
24754 (build_poly_scop): Call build_original_schedule.
24755 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
24756 (free_poly_dr): Remove.
24757 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
24758 (free_poly_bb): Remove.
24759 (debug_loop_vec): Remove.
24760 (print_isl_ast): Declare.
24761 (debug_isl_ast): Declare.
24762 (scop_do_interchange): Remove.
24763 (scop_do_strip_mine): Remove.
24764 (scop_do_block): Remove.
24765 (flatten_all_loops): Remove.
24766 (optimize_isl): Remove.
24767 (pbb_number_of_iterations_at_time): Remove.
24768 (debug_scop_pbb): Declare.
24769 (print_schedule_ast): Declare.
24770 (debug_schedule_ast): Declare.
24771 (struct scop): Remove schedule. Add original_schedule,
24772 transformed_schedule.
24773 (free_gimple_poly_bb): Remove.
24774 (print_generated_program): Remove.
24775 (debug_generated_program): Remove.
24776 (unify_scattering_dimensions): Remove.
24777 * sese.c (print_edge): ... here.
24778 (print_sese): ... here.
24779 (debug_edge): ... here.
24780 (debug_sese): ... here.
24781 * sese.h (print_edge): Declare.
24782 (print_sese): Declare.
24783 (dump_edge): Declare.
24784 (dump_sese): Declare.
24785
24786 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
24787 Sebastian Pop <s.pop@samsung.com>
24788
24789 * Makefile.in: Set ISLVER in site.exp.
24790
24791 2016-01-25 Jakub Jelinek <jakub@redhat.com>
24792
24793 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
24794 DECL_VALUE_EXPR of new_var even for the non-array case. Look
24795 through DECL_VALUE_EXPR for expansion.
24796
24797 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
24798
24799 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
24800 the frame info after reload completed.
24801
24802 2016-01-25 Jeff Law <law@redhat.com>
24803
24804 PR tree-optimization/69196
24805 PR tree-optimization/68398
24806 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
24807 tree-ssa-threadupdate.c.
24808 (determine_bb_domination_status): Prototype
24809 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
24810 (determine_bb_domination_status): No longer static.
24811 (valid_jump_thread_path): Remove code to detect characteristics
24812 of the jump thread path not associated with correctness.
24813 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
24814 Correct test for thread path length. Count PHIs for real operands as
24815 statements that need to be copied. Do not count ASSERT_EXPRs.
24816 Look at all the blocks in the thread path. Compute and selectively
24817 filter thread paths based on threading through the latch, threading
24818 a multiway branch or crossing a multiway branch.
24819
24820 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24821
24822 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
24823 decl with __attribute__ ((unused)) annotation.
24824
24825 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
24826
24827 PR target/69421
24828 * tree-vect-stmts.c (vectorizable_condition): Check vectype
24829 of operands is compatible with a statement vectype.
24830
24831 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
24832
24833 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
24834 improve wording for mixed storage order support.
24835
24836 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
24837
24838 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
24839 (vcvt_u64_f64): Likewise.
24840 (vcvta_s64_f64): Likewise.
24841 (vcvta_u64_f64): Likewise.
24842 (vcvtm_s64_f64): Likewise.
24843 (vcvtm_u64_f64): Likewise.
24844 (vcvtn_s64_f64): Likewise.
24845 (vcvtn_u64_f64): Likewise.
24846 (vcvtp_s64_f64): Likewise.
24847 (vcvtp_u64_f64): Likewise.
24848
24849 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
24850
24851 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
24852 (arc_init): Check validity mll64 option.
24853 (arc_save_restore): Use double load/store instruction.
24854 (arc_expand_movmem): Likewise.
24855 (arc_split_move): Don't split if we have double load/store
24856 instructions. Returns a boolean.
24857 (arc_process_double_reg_moves): Change function to return boolean
24858 instead of a sequence of instructions.
24859 (arc_dwarf_register_span): New function.
24860 * config/arc/arc-protos.h (arc_split_move): Change prototype.
24861 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
24862 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
24863 (*movdf_insn): Likewise.
24864 * config/arc/arc.opt (mll64): New option.
24865 * config/arc/predicates.md (even_register_operand): New predicate.
24866 * doc/invoke.texi (ARC Options): Add mll64 documentation.
24867
24868 2016-01-25 Richard Biener <rguenther@suse.de>
24869
24870 PR lto/69393
24871 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
24872 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
24873 DECL_NAMELESS.
24874 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
24875
24876 2016-01-25 Richard Biener <rguenther@suse.de>
24877
24878 PR tree-optimization/69376
24879 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
24880 flag.
24881 (VN_INFO_ANTI_RANGE_P): New inline.
24882 (VN_INFO_RANGE_TYPE): Likewise.
24883 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
24884 SSA_NAME_ANTI_RANGE_P.
24885 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
24886 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24887 Properly query VN_INFO_RANGE_TYPE.
24888
24889 2016-01-25 Nick Clifton <nickc@redhat.com>
24890
24891 PR target/66655
24892 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
24893
24894 2016-01-23 Tom de Vries <tom@codesourcery.com>
24895
24896 PR tree-optimization/69426
24897 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
24898 removed clobber.
24899
24900 2016-01-23 Jakub Jelinek <jakub@redhat.com>
24901
24902 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
24903 "the the" with "the" in the comments.
24904 * ipa-devirt.c (build_type_inheritance_graph,
24905 update_type_inheritance_graph): Likewise.
24906 * tree.c (build_function_type_list_1): Likewise.
24907 * cfgloopmanip.c (scale_loop_profile): Likewise.
24908 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
24909 * gimple-ssa-split-paths.c
24910 (find_block_to_duplicate_for_splitting_paths): Likewise.
24911 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
24912 * expr.c (convert_move): Likewise.
24913 * var-tracking.c (vt_stack_adjustments): Likewise.
24914 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
24915 * tree-vrp.c (test_for_singularity): Likewise.
24916
24917 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
24918 directly instead of building a temporary tree.
24919
24920 PR bootstrap/69434
24921 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
24922 remove <algorithm> include.
24923
24924 2016-01-22 Jakub Jelinek <jakub@redhat.com>
24925
24926 PR target/69432
24927 * config/i386/i386.c: Include dojump.h.
24928 (expand_small_movmem_or_setmem,
24929 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
24930 fixes.
24931 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
24932 if dynamic_check != -1.
24933
24934 2016-01-21 Jeff Law <law@redhat.com>
24935
24936 PR middle-end/69347
24937 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
24938 record_temporary_equivalences. Rewritten to avoid unnecessary calls
24939 into dominated_by_p.
24940 (cprop_into_successor_phis): Avoid unnecessary tests.
24941
24942 2016-01-22 Richard Henderson <rth@redhat.com>
24943
24944 PR target/69416
24945 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
24946 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
24947
24948 2016-01-22 Michael Matz <matz@suse.de>
24949
24950 * system.h (string, algorithm): Include only conditionally.
24951 (new): Include always under C++.
24952 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
24953 * final.c (toplevel): Ditto.
24954 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
24955 * genconditions.c (write_header): Make gencondmd.c define
24956 INCLUDE_STRING.
24957 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
24958
24959 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
24960 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
24961
24962 2016-01-22 Christian Bruel <christian.bruel@st.com>
24963
24964 PR target/68674
24965 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
24966
24967 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24968
24969 PR target/69403
24970 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
24971 define_insn_and_split. Ensure operands[1] and operands[0] do not
24972 get assigned the same register.
24973
24974 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
24975
24976 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
24977
24978 2016-01-22 Christian Bruel <christian.bruel@st.com>
24979
24980 * config/arm/arm-c.c (arm_pragma_target_parse):
24981 Remove warn_builtin_macro_redefined overwrite.
24982
24983 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
24984
24985 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
24986 flag_non_call_exceptions compatibility.
24987
24988 2016-01-22 Jakub Jelinek <jakub@redhat.com>
24989
24990 PR debug/66668
24991 * dwarf2out.c (add_child_die_after): New function.
24992 (dwarf_qual_info_t): New type.
24993 (dwarf_qual_info): New variable.
24994 (qualified_die_p): New function.
24995 (modified_type_die): For -fdebug-types-section, ensure
24996 canonical order of qualifiers. Put qualified DIEs adjacent
24997 to the corresponding non-qualified type DIE and search there
24998 for existing qualified DIEs.
24999
25000 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
25001
25002 * doc/extend.texi (scalar_storage_order type attribute): Document
25003 restriction on type punning and aliasing, and remove future tense.
25004
25005 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
25006
25007 PR target/69252
25008 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
25009 first stage.
25010
25011 2016-01-21 Jeff Law <law@redhat.com>
25012
25013 PR middle-end/69347
25014 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
25015 useless call to record_temporary_equivalences.
25016 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
25017 allocate 10 slots in the bb_path vector and let it grow as needed.
25018 (fsm_find_control_statement_thread_paths): Similarly for the next_path
25019 vector.
25020
25021 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
25022
25023 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
25024 Detangle.
25025 * configure: Regenerate.
25026
25027 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
25028
25029 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
25030 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
25031
25032 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
25033
25034 PR middle-end/66178
25035 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
25036 drop EXPAND_INITIALIZER.
25037 * rtl.h (contains_symbolic_reference_p): Declare.
25038 * rtlanal.c (contains_symbolic_reference_p): New function.
25039 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
25040 a subtraction into a NOT if symbolic constants are involved.
25041
25042 2016-01-21 Anton Blanchard <anton@samba.org>
25043 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25044
25045 PR target/63354
25046 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
25047 #define.
25048 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
25049 function.
25050
25051 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
25052
25053 * config/microblaze/microblaze.c
25054 (get_branch_target): New.
25055 (insert_wic_for_ilb_runout): New.
25056 (insert_wic): New.
25057 (microblaze_machine_dependent_reorg): New.
25058 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
25059 * config/microblaze/microblaze.md
25060 (UNSPEC_IPREFETCH): Define.
25061 (iprefetch): New pattern
25062 * config/microblaze/microblaze.opt
25063 (mxl-prefetch): New flag.
25064
25065 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
25066
25067 * config/microblaze/microblaze.h
25068 (FIXED_REGISTERS): Update in macro.
25069 (CALL_USED_REGISTERS): Update in macro.
25070
25071 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
25072
25073 PR rtl-optimization/68920
25074 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
25075 moves.
25076
25077 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
25078
25079 PR rtl-optimization/68990
25080 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
25081 pseudo instead of inheritance ones.
25082
25083 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
25084 Nick Clifton <nickc@redhat.com>
25085
25086 PR target/69129
25087 PR target/69012
25088 * config/mips/mips.c (mips_compute_frame_info): Initialise
25089 args_size and hard_frame_pointer_offset fields of the frame
25090 structure before calling mips_global_pointer.
25091
25092 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
25093
25094 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
25095 label reference.
25096 * configure: Regenerate.
25097
25098 2016-01-21 Richard Biener <rguenther@suse.de>
25099
25100 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
25101
25102 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
25103
25104 * config/s390/s390.c (s390_asm_declare_function_size): Add code
25105 to actually emit the .size directive.
25106
25107 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
25108 Jakub Jelinek <jakub@redhat.com>
25109
25110 PR target/69187
25111 PR target/65624
25112 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
25113 args array size by one to avoid buffer overflow.
25114
25115 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
25116
25117 * config/s390/s390.md (pool_section_start): Use switch_to_section
25118 to select proper read-only data section instead of hardcoding
25119 .rodata.
25120 (pool_section_end): Use switch_to_section to match the above.
25121
25122 2016-01-21 Richard Biener <rguenther@suse.de>
25123
25124 PR tree-optimization/69378
25125 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
25126 (set_ssa_val_to): Use it for dominance checks taking into
25127 account not executable edges.
25128
25129 2016-01-21 Jakub Jelinek <jakub@redhat.com>
25130
25131 PR c++/69355
25132 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
25133 for bitsize instead of GET_MODE_PRECISION (mode).
25134
25135 2016-01-20 Martin Sebor <msebor@redhat.com>
25136
25137 PR c/52291
25138 * extend.texi (__sync Builtins): Clarify the semantics of
25139 __sync_fetch_and_OP built-ins on pointers.
25140 (__atomic Builtins): Same.
25141
25142 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25143 Sebastian Pop <s.pop@samsung.com>
25144
25145 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
25146 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
25147 (is_valid_rename): Same.
25148 (translate_isl_ast_to_gimple::get_rename): Same.
25149 (translate_isl_ast_to_gimple::rename_all_uses): Same.
25150 (translate_isl_ast_to_gimple::rename_uses): Same.
25151 (get_new_name): Check for close_phi nodes.
25152 (copy_loop_phi_args): Use phi_node_kind.
25153 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
25154 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
25155
25156 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25157 Sebastian Pop <s.pop@samsung.com>
25158
25159 Revert commit r229783.
25160 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
25161 Remove use of parameter_rename_map.
25162 (copy_def): Remove.
25163 (copy_internal_parameters): Remove.
25164 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
25165 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
25166 (free_sese_info): Do not free parameter_rename_map.
25167 (set_rename): Do not use parameter_rename_map.
25168 (rename_uses): Update call to set_rename.
25169 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
25170 * sese.h (parameter_rename_map_t): Remove.
25171 (struct sese_info_t): Remove field parameter_rename_map.
25172
25173 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25174 Sebastian Pop <s.pop@samsung.com>
25175
25176 * graphite-isl-ast-to-gimple.c: Fix comment.
25177 * graphite-scop-detection.c (defined_in_loop_p): New.
25178 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
25179 names defined in loop.
25180
25181 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25182 Sebastian Pop <s.pop@samsung.com>
25183
25184 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
25185 Discard unstructured if-then-else regions.
25186
25187 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25188 Sebastian Pop <s.pop@samsung.com>
25189
25190 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
25191 (cleanup_loop_iter_dom): Remove.
25192 (build_loop_iteration_domains): Remove.
25193 (build_scop_context): Remove.
25194 (build_scop_iteration_domain): Remove.
25195 (add_loop_constraints): New.
25196 (build_iteration_domains): New.
25197 (build_poly_scop): Call build_iteration_domains.
25198
25199 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25200 Sebastian Pop <s.pop@samsung.com>
25201
25202 * graphite-scop-detection.c
25203 (scop_detection::harmful_loop_in_region): Free dom and loops.
25204 (scop_detection::loop_body_is_valid_scop): Free bbs.
25205
25206 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25207 Sebastian Pop <s.pop@samsung.com>
25208
25209 * graphite-scop-detection.c (record_loop_in_sese): New.
25210 (gather_bbs::before_dom_children): Call record_loop_in_sese.
25211 (build_scops): Remove call to build_sese_loop_nests.
25212 * sese.c (sese_record_loop): Remove.
25213 (build_sese_loop_nests): Remove.
25214 (new_sese_info): Remove region->loops.
25215 (free_sese_info): Same.
25216 * sese.h (sese_contains_loop): Same.
25217 (build_sese_loop_nests): Remove.
25218 (sese_contains_loop): Remove.
25219
25220 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25221 Sebastian Pop <s.pop@samsung.com>
25222
25223 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
25224 loop_is_valid_in_scop.
25225 (scop_detection::harmful_stmt_in_region): Renamed
25226 harmful_loop_in_region.
25227 Call loop_is_valid_in_scop.
25228
25229 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25230 Sebastian Pop <s.pop@samsung.com>
25231
25232 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
25233 isl_ast_node_mark.
25234
25235 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25236 Sebastian Pop <s.pop@samsung.com>
25237
25238 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
25239 * graphite.h (struct poly_bb): Remove field is_reduction.
25240 (PBB_IS_REDUCTION): Remove.
25241
25242 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
25243 Sebastian Pop <s.pop@samsung.com>
25244
25245 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
25246 (add_pdr_constraints): Same.
25247 (scop_get_reads): Same.
25248 (scop_get_must_writes): Same.
25249 (scop_get_may_writes): Same.
25250 (scop_get_original_schedule): Same.
25251 (extend_schedule): Same.
25252 (apply_schedule_on_deps): Same.
25253 (carries_deps): Same.
25254 (compute_deps): Same.
25255 (scop_get_dependences): Same.
25256 * graphite-isl-ast-to-gimple.c
25257 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
25258 * graphite-optimize-isl.c (get_schedule_for_band): Same.
25259 (get_schedule_for_band_list): Same.
25260 (get_schedule_map): Same.
25261 (apply_schedule_map_to_scop): Same.
25262 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
25263 (build_loop_iteration_domains): Same.
25264 (add_condition_to_pbb): Same.
25265 (add_param_constraints): Same.
25266 (pdr_add_memory_accesses): Same.
25267 (pdr_add_data_dimensions): Same.
25268
25269 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
25270
25271 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
25272 requirements.
25273
25274 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
25275
25276 * common.opt (feliminate-dwarf2-dups): Replace references to
25277 "DWARF 2" with just "DWARF".
25278 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
25279 * doc/extend.texi: Likewise.
25280 * doc/cpp.texi: Likewise.
25281 * doc/invoke.texi: Likewise.
25282 (Option Summary): Add -gdwarf to list of Debugging Options.
25283 (Debugging Options): Document -gdwarf.
25284 * doc/contrib.texi: Spell "DWARF" like that.
25285
25286 2016-01-21 Jakub Jelinek <jakub@redhat.com>
25287
25288 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
25289 warning. Fix up formatting.
25290
25291 PR middle-end/67653
25292 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
25293 attempt to mark memory input operand addressable and
25294 call prepare_gimple_addressable in that case. Don't adjust
25295 input_location for diagnostics, use error_at instead.
25296
25297 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
25298
25299 * config/rs6000/ppc-auxv.h: New file.
25300 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
25301 (cpu_is): Likewise.
25302 (cpu_supports): Likewise.
25303 * config/rs6000/rs6000.c: include "ppc-auxv.h".
25304 (cpu_is_info): New variable.
25305 (cpu_supports_info): Likewise.
25306 (tcb_verification_symbol): Likewise.
25307 (cpu_builtin_p): Likewise.
25308 (cpu_expand_builtin): New function.
25309 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
25310 (rs6000_init_builtins): Likewise.
25311 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
25312 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
25313 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
25314 * configure: Regenerate.
25315 * config.in: Likewise.
25316 * doc/extend.texi (PowerPC Built-in Functions): Document
25317 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
25318
25319 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
25320
25321 PR target/68609
25322 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
25323 domain check.
25324 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
25325 for V4SFmode.
25326
25327 2016-01-20 Richard Henderson <rth@redhat.com>
25328
25329 PR bootstrap/69343
25330 PR bootstrap/69339
25331 PR tree-opt/68964
25332 Revert:
25333 * tree.c (tm_define_builtin): New.
25334 (find_tm_vector_type): New.
25335 (build_tm_vector_builtins): New.
25336 (build_common_builtin_nodes): Call it.
25337
25338 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
25339
25340 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
25341 (arm_fp_ok): Likewise.
25342 (arm_fp): Likewise.
25343 (arm_crypto): Likewise.
25344
25345 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
25346 Richard Biener <rguenther@suse.de>
25347
25348 PR tree-optimization/69328
25349 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
25350 vectors have same number of elements.
25351 (vectorizable_condition): Fix masked version recognition.
25352
25353 2016-01-20 Richard Biener <rguenther@suse.de>
25354
25355 PR tree-optimization/69345
25356 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
25357 (VN_INFO_PTR_INFO): Likewise.
25358 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
25359 info when it is equal between non-dominating SSA names.
25360 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
25361 Make sure to look at original SSA infos.
25362
25363 2016-01-20 Jeff Law <law@redhat.com>
25364
25365 PR target/25114
25366 * config/m68k/predicates.md (pow2_m1_operand): New predicate
25367 extracted from ...
25368 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
25369 (pc_or_label_operand): New predicate.
25370 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
25371 tests for small integers that are 2^n - 1.
25372
25373 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
25374
25375 * doc/invoke.texi (Options Summary): Add '.' after @xref.
25376
25377 2016-01-19 Jeff Law <law@redhat.com>
25378
25379 PR middle-end/69347
25380 * tree-ssa-threadbackwards.c
25381 (fsm_find_control_statement_thread_paths): Do not try to lookup
25382 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
25383
25384 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
25385
25386 * doc/lto.texi: Remove text that says only Gold has linker plugin
25387 support.
25388
25389 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
25390
25391 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
25392 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
25393 the DIE accordingly.
25394 (modified_type_die): Add REVERSE parameter and pass it recursively,
25395 as well as to base_type_die. Adjust presence check accordingly.
25396 (base_type_for_mode): Adjust call to modified_type_die.
25397 (add_type_attribute): Add REVERSE parameter and pass it to
25398 modified_type_die.
25399 (generic_parameter_die): Adjust call to add_type_attribute.
25400 (add_scalar_info): Likewise.
25401 (add_subscript_info): Likewise.
25402 (gen_array_type_die): Likewise.
25403 (gen_descr_array_type_die): Likewise.
25404 (gen_entry_point_die): Likewise.
25405 (gen_enumeration_type_die): Likewise.
25406 (gen_formal_parameter_die): Likewise.
25407 (gen_subprogram_die): Likewise.
25408 (gen_variable_die ): Likewise.
25409 (gen_const_die): Likewise.
25410 (gen_field_die): Likewise.
25411 (gen_pointer_type_die): Likewise.
25412 (gen_reference_type_die): Likewise.
25413 (gen_ptr_to_mbr_type_die): Likewise.
25414 (gen_inheritance_die): Likewise.
25415 (gen_subroutine_type_die): Likewise.
25416 (gen_typedef_die): Likewise.
25417 (force_type_die): Adjust call to modified_type_die.
25418
25419 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
25420
25421 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
25422 flow throughout the file. Fix broken link to Objective-C 2.0
25423 documentation.
25424 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
25425 errors.
25426
25427 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
25428
25429 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
25430
25431 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
25432
25433 PR ipa/66223
25434 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
25435 (maybe_record_node): Record cxa_pure_virtual as the only possible
25436 target if there are not ohter candidates.
25437 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
25438
25439 2016-01-19 Richard Biener <rguenther@suse.de>
25440
25441 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
25442 (get_memory_order): Likewise.
25443
25444 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
25445
25446 * tree-vect-stmts.c (vectorizable_store): Check
25447 rhs vectype.
25448
25449 2016-01-19 David Malcolm <dmalcolm@redhat.com>
25450
25451 PR jit/68446
25452 * gcc.c (driver::decode_argv): Add call to
25453 init_opts_obstack before init_options_struct.
25454 * opts.c (init_opts_obstack): Remove idempotency.
25455 (init_options_struct): Replace call to init_opts_obstack
25456 with a gcc_assert to verify that it has already been called.
25457 * toplev.c (toplev::main): Add call to init_opts_obstack before
25458 calls to init_options_struct.
25459 (toplev::finalize): Move cleanup of opts_obstack next to
25460 cleanup of save_decoded_options, clearing the latter, and
25461 save_decoded_options_count.
25462
25463 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25464
25465 PR target/69135
25466 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
25467 attribute to unconditional. Remove %? from output template.
25468
25469 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
25470 Jiong Wang <jiong.wang@arm.com>
25471
25472 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
25473 generated from different expand order.
25474
25475 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
25476
25477 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
25478 Add support for CCMP costing.
25479
25480 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
25481
25482 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
25483 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
25484 (fccmpe<mode>): Likewise.
25485 (fcmp): Rename to fcmp and globalize pattern.
25486 (fcmpe): Likewise.
25487 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
25488 (aarch64_gen_ccmp_next): Add FP support.
25489
25490 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
25491
25492 * target.def (gen_ccmp_first): Update documentation.
25493 (gen_ccmp_next): Likewise.
25494 * doc/tm.texi (gen_ccmp_first): Update documentation.
25495 (gen_ccmp_next): Likewise.
25496 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
25497 expand_ccmp_expr_1. Improve comments.
25498 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
25499 (ccmp_ior<mode>): Remove pattern.
25500 (cmp<mode>): Remove expand.
25501 (cmp): Globalize pattern.
25502 (cstorecc4): Use cc_register.
25503 (mov<mode>cc): Remove ccmp_cc_register check.
25504 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
25505 Simplify after removal of CC_DNE/* modes.
25506 (aarch64_ccmp_mode_to_code): Remove.
25507 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
25508 In 'k' case use integer as condition.
25509 (aarch64_nzcv_codes): Remove inverted cases.
25510 (aarch64_code_to_ccmode): Remove.
25511 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
25512 comparison with CC register to be used in folowing CCMP/branch/CSEL.
25513 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
25514 pattern. Return the comparison with CC register. Invert conditions
25515 when bitcode is OR.
25516 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
25517 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
25518
25519 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
25520
25521 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
25522 instrumented_version.
25523
25524 2016-01-19 Richard Biener <rguenther@suse.de>
25525
25526 PR tree-optimization/69336
25527 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
25528 handled components with get_ref_base_and_extent.
25529 (equal_mem_array_ref_p): Adjust.
25530
25531 2016-01-19 Jakub Jelinek <jakub@redhat.com>
25532
25533 PR debug/65779
25534 * shrink-wrap.c: Include valtrack.h.
25535 (move_insn_for_shrink_wrap): Add DEBUG argument. If
25536 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
25537 in between insn and where it will be moved to. Call
25538 dead_debug_insert_temp.
25539 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
25540 first and dead_debug_local_finish at the end.
25541 For uses and defs bitmap, handle all regs in between REGNO and
25542 END_REGNO, not just the first one.
25543
25544 2016-01-19 Richard Biener <rguenther@suse.de>
25545
25546 PR tree-optimization/69352
25547 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
25548 (equal_mem_array_ref_p): Constrain size and max size properly.
25549 Compare the reverse flag.
25550
25551 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
25552
25553 * ira.c (ira): Update regstat data if we deleted insns.
25554
25555 2016-01-19 Jakub Jelinek <jakub@redhat.com>
25556
25557 PR rtl-optimization/68955
25558 PR rtl-optimization/64557
25559 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
25560 here. Fix up formatting.
25561 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
25562
25563 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
25564
25565 PR lto/69133
25566 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
25567 assume that the node has body.
25568 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
25569 check.
25570
25571 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
25572
25573 * lto-streamer-out.c (lto_output): Do not stream instrumentation
25574 thunks.
25575
25576 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
25577
25578 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
25579 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
25580
25581 2016-01-19 Martin Jambor <mjambor@suse.cz>
25582 Martin Liska <mliska@suse.cz>
25583 Michael Matz <matz@suse.de>
25584
25585 * Makefile.in (OBJS): Add new source files.
25586 (GTFILES): Add hsa.c.
25587 * common.opt (disable_hsa): New variable.
25588 (-Whsa): New warning.
25589 * config.in (ENABLE_HSA): New.
25590 * configure.ac: Treat hsa differently from other accelerators.
25591 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
25592 $enable_offloading.
25593 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
25594 * doc/install.texi (Configuration): Document --with-hsa-runtime,
25595 --with-hsa-runtime-include, --with-hsa-runtime-lib and
25596 --with-hsa-kmt-lib.
25597 * doc/invoke.texi (-Whsa): Document.
25598 (hsa-gen-debug-stores): Likewise.
25599 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
25600 to invoke offload compiler for hsa acclerator.
25601 * opts.c (common_handle_option): Determine whether HSA offloading
25602 should be performed.
25603 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
25604 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
25605 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
25606 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
25607 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
25608 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
25609 GF_OMP_FOR_KIND_GRID_LOOP.
25610 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
25611 (pp_gimple_stmt_1): Likewise.
25612 * gimple-walk.c (walk_gimple_stmt): Likewise.
25613 * gimple.c (gimple_build_omp_grid_body): New function.
25614 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
25615 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
25616 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
25617 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
25618 GF_OMP_TEAMS_GRID_PHONY.
25619 (gimple_statement_omp_single_layout): Updated comments.
25620 (gimple_build_omp_grid_body): New function.
25621 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
25622 (gimple_omp_for_grid_phony): New function.
25623 (gimple_omp_for_set_grid_phony): Likewise.
25624 (gimple_omp_parallel_grid_phony): Likewise.
25625 (gimple_omp_parallel_set_grid_phony): Likewise.
25626 (gimple_omp_teams_grid_phony): Likewise.
25627 (gimple_omp_teams_set_grid_phony): Likewise.
25628 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
25629 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
25630 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
25631 (BUILT_IN_GOMP_TARGET): Updated type.
25632 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
25633 (adjust_for_condition): New function.
25634 (get_omp_for_step_from_incr): Likewise.
25635 (extract_omp_for_data): Moved parts to adjust_for_condition and
25636 get_omp_for_step_from_incr.
25637 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
25638 (fixup_child_record_type): Bail out if receiver_decl is NULL.
25639 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
25640 (scan_omp_parallel): Do not create child functions for phony
25641 constructs.
25642 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
25643 (scan_omp_1_op): Checking assert we are not remapping to
25644 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
25645 (parallel_needs_hsa_kernel_p): New function.
25646 (expand_parallel_call): Register apprpriate parallel child
25647 functions as HSA kernels.
25648 (grid_launch_attributes_trees): New type.
25649 (grid_attr_trees): New variable.
25650 (grid_create_kernel_launch_attr_types): New function.
25651 (grid_insert_store_range_dim): Likewise.
25652 (grid_get_kernel_launch_attributes): Likewise.
25653 (get_target_argument_identifier_1): Likewise.
25654 (get_target_argument_identifier): Likewise.
25655 (get_target_argument_value): Likewise.
25656 (push_target_argument_according_to_value): Likewise.
25657 (get_target_arguments): Likewise.
25658 (expand_omp_target): Call get_target_arguments instead of looking
25659 up for teams and thread limit.
25660 (grid_expand_omp_for_loop): New function.
25661 (grid_arg_decl_map): New type.
25662 (grid_remap_kernel_arg_accesses): New function.
25663 (grid_expand_target_kernel_body): New function.
25664 (expand_omp): Call it.
25665 (lower_omp_for): Do not emit phony constructs.
25666 (lower_omp_taskreg): Do not emit phony constructs but create for them
25667 a temporary variable receiver_decl.
25668 (lower_omp_taskreg): Do not emit phony constructs.
25669 (lower_omp_teams): Likewise.
25670 (lower_omp_grid_body): New function.
25671 (lower_omp_1): Call it.
25672 (grid_reg_assignment_to_local_var_p): New function.
25673 (grid_seq_only_contains_local_assignments): Likewise.
25674 (grid_find_single_omp_among_assignments_1): Likewise.
25675 (grid_find_single_omp_among_assignments): Likewise.
25676 (grid_find_ungridifiable_statement): Likewise.
25677 (grid_target_follows_gridifiable_pattern): Likewise.
25678 (grid_remap_prebody_decls): Likewise.
25679 (grid_copy_leading_local_assignments): Likewise.
25680 (grid_process_kernel_body_copy): Likewise.
25681 (grid_attempt_target_gridification): Likewise.
25682 (grid_gridify_all_targets_stmt): Likewise.
25683 (grid_gridify_all_targets): Likewise.
25684 (execute_lower_omp): Call grid_gridify_all_targets.
25685 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
25686 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
25687 (tree_omp_clause): Added union field dimension.
25688 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
25689 * tree.c (omp_clause_num_ops): Added number of arguments of
25690 OMP_CLAUSE__GRIDDIM_.
25691 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
25692 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
25693 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
25694 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
25695 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
25696 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
25697 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
25698 * tree-pass.h (make_pass_gen_hsail): Declare.
25699 (make_pass_ipa_hsa): Likewise.
25700 * ipa-hsa.c: New file.
25701 * lto-section-in.c (lto_section_name): Add hsa section name.
25702 * lto-streamer.h (lto_section_type): Add hsa section.
25703 * timevar.def (TV_IPA_HSA): New.
25704 * hsa-brig-format.h: New file.
25705 * hsa-brig.c: New file.
25706 * hsa-dump.c: Likewise.
25707 * hsa-gen.c: Likewise.
25708 * hsa.c: Likewise.
25709 * hsa.h: Likewise.
25710 * toplev.c (compile_file): Call hsa_output_brig.
25711 * hsa-regalloc.c: New file.
25712
25713 2016-01-18 Jeff Law <law@redhat.com>
25714
25715 PR tree-optimization/69320
25716 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
25717 ranged object, do nothing if the RHS constant is not [0..1].
25718 (optimize_stmt): Comparing a boolean ranged object against a
25719 constant outside [0..1] results in a compile-time constant.
25720
25721 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
25722 test.
25723
25724 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
25725
25726 * doc/invoke.texi (Invoking GCC): Add new section to menu.
25727 (Option Summary): Update to reflect new section and moved options.
25728 (C++ Dialect Options): Move -fstats to new section.
25729 (Debugging Options): Move all dump, statistics, and other GCC
25730 developer options to new section. Rewrite section introduction
25731 and re-order remaining options to put the more basic ones first.
25732 (Optimization Options): Move -fira-verbose and -flto-report* to
25733 new section.
25734 (Developer Options): New section incorporating moved options.
25735 * doc/cppopts.texi (-dM): Update cross-reference.
25736
25737 2016-01-18 Richard Henderson <rth@redhat.com>
25738
25739 PR target/69176
25740 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
25741 operands to pseudo only if CSE is expected. Split long immediate
25742 operands only after reload, and for the stack pointer.
25743 (*add<GPI>3_pluslong): Remove.
25744 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
25745 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
25746 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
25747 (*add<GPI>3 peepholes): New.
25748 (*add<GPI>3 splitters): New.
25749 * config/aarch64/constraints.md (Upl): New.
25750 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
25751
25752 2016-01-18 Richard Biener <rguenther@suse.de>
25753
25754 PR tree-optimization/69297
25755 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
25756 stmt at most once.
25757 (vect_bb_vectorization_profitable_p): Clear visited flag again.
25758
25759 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
25760
25761 PR middle-end/68542
25762 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
25763 of mixind vector and scalar types.
25764 (fold_relational_const): Add handling of vector
25765 comparison with boolean result.
25766 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
25767 comparison of vector operands with boolean result for EQ/NE only.
25768 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
25769 (verify_gimple_cond): Likewise.
25770 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
25771 valid type of VAL.
25772
25773 2016-01-18 Joseph Myers <joseph@codesourcery.com>
25774
25775 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
25776 !TARGET_OCTEON.
25777
25778 2016-01-18 Richard Biener <rguenther@suse.de>
25779
25780 PR middle-end/69308
25781 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
25782
25783 2016-01-18 Tom de Vries <tom@codesourcery.com>
25784
25785 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
25786
25787 2016-01-18 Tom de Vries <tom@codesourcery.com>
25788
25789 * omp-low.c (set_oacc_fn_attrib): Make extern.
25790 * omp-low.h (set_oacc_fn_attrib): Declare.
25791 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
25792 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
25793 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
25794 Add and handle function parameter oacc_kernels_p.
25795 (find_reduc_addr, get_omp_data_i_param): New function.
25796 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
25797 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
25798 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
25799 Calculate dominance info. Skip loops that are not in a kernels region
25800 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
25801 (pass_parallelize_loops::execute): Call parallelize_loops with
25802 oacc_kernels_p argument.
25803 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
25804 New member function.
25805 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
25806 * passes.def: Add argument to pass_parallelize_loops instantation.
25807
25808 2016-01-18 Tom de Vries <tom@codesourcery.com>
25809
25810 * tree-parloops.c (pass_parallelize_loops::execute): Allow
25811 pass_parallelize_loops to be run outside the loop pipeline.
25812
25813 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
25814
25815 * tree-scalar-evolution.c (follow_copies_to_constant): New.
25816 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
25817
25818 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
25819
25820 PR target/63679
25821 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
25822 using get_ref_base_and_extent.
25823 (equal_mem_array_ref_p): New.
25824 (hashable_expr_equal_p): Add call to previous.
25825
25826 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
25827
25828 PR target/63679
25829 * tree-sra.c (disqualified_constants, constant_decl_p): New.
25830 (sra_initialize): Allocate disqualified_constants.
25831 (sra_deinitialize): Free disqualified_constants.
25832 (disqualify_candidate): Update disqualified_constants when appropriate.
25833 (create_access): Scan for constant-pool entries as we go along.
25834 (scalarizable_type_p): Add check against type_contains_placeholder_p.
25835 (maybe_add_sra_candidate): Allow constant-pool entries.
25836 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
25837 (initialize_constant_pool_replacements): New.
25838 (sra_modify_assign): Avoid mangling assignments created by previous,
25839 and don't generate writes into constant pool.
25840 (sra_modify_function_body): Call initialize_constant_pool_replacements.
25841
25842 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
25843
25844 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
25845 andnot instruction.
25846 (scalar_chain::convert_op): Likewise.
25847 * config/i386/i386.md (*andndi3_doubleword): New.
25848
25849 2016-01-18 Richard Biener <rguenther@suse.de>
25850
25851 PR tree-optimization/69170
25852 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
25853 building a vector from scalar results of a pattern stmt.
25854
25855 2016-01-18 Jakub Jelinek <jakub@redhat.com>
25856
25857 * haifa-sched.c (autopref_multipass_init): Work around
25858 -Wmaybe-uninitialized warning.
25859
25860 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
25861
25862 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
25863 against the constant 0.
25864
25865 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25866
25867 PR tree-optimization/68799
25868 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
25869 look up phi candidates in the statement-candidate map.
25870 (phi_add_costs): Likewise.
25871 (record_phi_increments): Likewise.
25872 (phi_incr_cost): Likewise.
25873 (ncd_with_phi): Likewise.
25874 (all_phi_incrs_profitable): Likewise.
25875
25876 2016-01-17 Jakub Jelinek <jakub@redhat.com>
25877
25878 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
25879 -Wmaybe-uninitialized warning.
25880
25881 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
25882
25883 * doc/invoke.texi (Invoking GCC): Add new section to menu.
25884 (Option Summary): Update to reflect new section and moved options.
25885 (C++ Dialect Options): Move -fvtable-verify and related options.
25886 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
25887 and profiling-related options.
25888 (Optimization Options): Move profile generation options and
25889 -fstack-protector and related options.
25890 (Instrumentation Options): New section incorporating moved options.
25891 (Code Generation Options): Move -finstrument-functions and
25892 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
25893
25894 2016-01-16 Tom de Vries <tom@codesourcery.com>
25895
25896 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
25897
25898 2016-01-16 Tom de Vries <tom@codesourcery.com>
25899
25900 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
25901
25902 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
25903
25904 * hash-table.h (hash_table::empty): Turn into an inline wrapper
25905 that checks whether the table is already empty. Rename the
25906 original implementation to...
25907 (hash_table::empty_slot): ...this new private function.
25908
25909 2016-01-15 David Malcolm <dmalcolm@redhat.com>
25910
25911 PR diagnostic/68899
25912 * diagnostic-show-locus.c (layout::print_source_line): Move x
25913 offset of line until after call to
25914 get_line_width_without_trailing_whitespace.
25915
25916 2016-01-15 Jeff Law <law@redhat.com>
25917
25918 PR tree-optimization/69270
25919 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
25920 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
25921 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
25922 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
25923 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
25924 ssa_name_has_boolean_range and constant_boolean_node.
25925
25926 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
25927
25928 PR rtl-optimization/69030
25929 * lra-spills.c (remove_pseudos): Check nrefs and make the function
25930 returning bool.
25931 (spill_pseudos): Delete debug insn for dead pseudo.
25932 (lra_spill): Initiate spill_hard_reg and slots memory separately.
25933
25934 2016-01-15 Jiong Wang <jiong.wang@arm.com>
25935
25936 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
25937 New.
25938 (TYPES_UNOPUS): Likewise.
25939 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
25940 builtin type, from UNOP to UNOPUS.
25941 (lbtruncuv4sf): Likewise.
25942 (lbtruncuv2df): Likewise.
25943 (lrounduv2sf): Likewise.
25944 (lrounduv4sf): Likewise.
25945 (lrounduv2df): Likewise.
25946 (lroundusf): Likewise.
25947 (lroundusf): Likewise.
25948 (lceiluv2sf): Likewise.
25949 (lceiluv4sf): Likewise.
25950 (lceiluv2df): Likewise.
25951 (lceilusf): Likewise.
25952 (lceiludf): Likewise.
25953 (lflooruv2sf): Likewise.
25954 (lflooruv4sf): Likewise.
25955 (lflooruv2df): Likewise.
25956 (lfloorusf): Likewise.
25957 (lfloorudf): Likewise.
25958 (lfrintnuv2sf): Likewise.
25959 (lfrintnuv4sf): Likewise.
25960 (lfrintnuv2df): Likewise.
25961 (lfrintnusf): Likewise.
25962 (lfrintnudf): Likewise.
25963 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
25964 conversion.
25965 (vcvtq_u32_f32): Likewise.
25966 (vcvtq_u64_f64): Likewise.
25967 (vcvta_u32_f32): Likewise.
25968 (vcvtaq_u32_f32): Likewise.
25969 (vcvtaq_u64_f64): Likewise.
25970 (vcvtm_u32_f32): Likewise.
25971 (vcvtmq_u32_f32): Likewise.
25972 (vcvtmq_u64_f64): Likewise.
25973 (vcvtn_u32_f32): Likwise.
25974 (vcvtnq_u32_f32): Likewise.
25975 (vcvtnq_u64_f64): Likewise.
25976 (vcvtp_u32_f32): Likewise.
25977 (vcvtpq_u32_f32): Likewise.
25978 (vcvtpq_u64_f64): Likewise.
25979 (vcvtmd_u64_f64): Likewise.
25980 (vcvtms_u32_f32): Likewise.
25981 (vcvtad_u64_f64): Likewise.
25982 (vcvtas_u32_f32): Likewise.
25983 (vcvtnd_u64_f64): Likewise.
25984 (vcvtns_u32_f32): Likewise.
25985 (vcvtpd_u64_f64): Likewise.
25986 (vcvtps_u32_f32): Likewise.
25987
25988 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25989
25990 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
25991 CSEL of zero_extended registers.
25992
25993 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25994
25995 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
25996 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
25997
25998 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25999
26000 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
26001 false when argument string is not found in the attributes table
26002 at all.
26003
26004 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
26005
26006 PR target/68609
26007 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
26008 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
26009 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
26010 precision estimate.
26011
26012 2016-01-15 Richard Biener <rguenther@suse.de>
26013
26014 PR tree-optimization/66856
26015 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
26016 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
26017 (vect_create_new_slp_node): Increment stmt reference count.
26018 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
26019 an SLP tree before swapping operands.
26020 (vect_build_slp_tree): Likewise.
26021 (destroy_bb_vec_info): Free stmt info after SLP instances.
26022 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
26023 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
26024 (STMT_VINFO_NUM_SLP_USES): New macro.
26025
26026 2016-01-15 Richard Biener <rguenther@suse.de>
26027
26028 PR debug/69137
26029 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
26030 (add_linkage_name): ... here.
26031 (gen_typedef_die): Use add_linkage_name_raw instead of
26032 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
26033 if necessary.
26034
26035 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
26036
26037 * gimplify.c (oacc_default_clause): Decode reference and pointer
26038 types for both kernels and parallel regions.
26039
26040 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
26041
26042 PR middle-end/69246
26043 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
26044
26045 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
26046
26047 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
26048 (convert_scalars_to_vector): Likewise.
26049
26050 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
26051
26052 * doc/extend.texi (Type Traits): Fix grammar.
26053
26054 2016-01-15 Martin Jambor <mjambor@suse.cz>
26055
26056 * tree-inline.c (remap_decl): Use existing dclarations if
26057 remapping a type and prevent_decl_creation_for_types.
26058 (replace_locals_stmt): Do an initial remapping of non-VLA typed
26059 decls first. Do real remapping with
26060 prevent_decl_creation_for_types set.
26061 * tree-inline.h (copy_body_data): New field
26062 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
26063 padding.
26064
26065 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
26066
26067 * config/s390/s390.opt (mmvcle): More verbose help text.
26068
26069 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
26070
26071 * config/s390/s390.opt: Add period to -mzvector option text.
26072
26073 2016-01-15 Richard Biener <rguenther@suse.de>
26074
26075 PR tree-optimization/68961
26076 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
26077 of invariants in stores again.
26078
26079 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
26080
26081 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
26082
26083 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
26084
26085 * config/i386/i386.c (ix86_expand_branch): Don't split
26086 DI mode xor instruction to SI mode.
26087
26088 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
26089
26090 PR ipa/68148
26091 * ipa-icf.c (sem_function::merge): Virtual functions may become
26092 reachable even if they address is not taken and there are no
26093 idrect calls.
26094
26095 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
26096
26097 * lto-streamer-out.c (subtract_estimated_size): New function.
26098 (get_symbol_initial_value): Use it.
26099
26100 2016-01-15 Christian Bruel <christian.bruel@st.com>
26101
26102 PR target/65837
26103 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
26104 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
26105 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
26106 use add_builtin_function_ext_scope instead of add_builtin_function.
26107 (neon_set_p, neon_crypto_set_p): Remove.
26108 (arm_init_builtins): Always call arm_init_neon_builtins and
26109 arm_init_crypto_builtins.
26110 (arm_expand_builtin): Check that builtins are allowed for the arch.
26111 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
26112 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
26113 arm_init_neon_builtins call.
26114
26115 2016-01-15 Richard Biener <rguenther@suse.de>
26116
26117 PR tree-optimization/69117
26118 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
26119 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
26120 of the leader conservatively.
26121 (free_scc_vn): Restore original SSA name infos.
26122
26123 2016-01-14 Jeff Law <law@redhat.com>
26124
26125 PR tree-optimization/69270
26126 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
26127 single bit of precision, verify it's also unsigned.
26128 (record_edge_info): Use constant_boolean_node rather than fold_convert
26129 to convert boolean_true/boolean_false to the right type.
26130
26131 2016-01-14 Richard Henderson <rth@redhat.com>
26132
26133 PR rtl-opt/69014
26134 * loop-doloop.c (record_reg_sets): New.
26135 (doloop_optimize): Reject the transform if the sequence
26136 clobbers registers live at the end of the loop block.
26137 (doloop_optimize_loops): Enable df_live if needed.
26138
26139 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
26140
26141 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
26142 * config/rs6000/rs6000.c: Likewise.
26143 * config/rs6000/rs6000.h: Likewise.
26144 * config/rs6000/rs6000.md: Likewise.
26145 * doc/extend.texi: Likewsie.
26146
26147 2016-01-14 Jeff Law <law@redhat.com>
26148
26149 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
26150 typo.
26151
26152 2016-01-14 Richard Henderson <rth@redhat.com>
26153
26154 PR c/69272
26155 PR tree-opt/68964
26156 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
26157 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
26158 instead of builtin_decl_declared_p to test for declaration.
26159
26160 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
26161
26162 * doc/loop.texi (Loop Analysis and Representation): Document
26163 loop_depth function.
26164
26165 2016-01-14 Tom de Vries <tom@codesourcery.com>
26166
26167 PR tree-optimization/68773
26168 * omp-low.c (expand_omp_target): Don't set force_output.
26169 * varpool.c (varpool_node::get_create): Same.
26170 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
26171 offload_funcs with force_output.
26172
26173 2016-01-14 Jakub Jelinek <jakub@redhat.com>
26174
26175 PR debug/69244
26176 * lra-eliminations.c (move_plus_up): Don't change anything if either
26177 the outer or inner subreg mode is not MODE_INT.
26178 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
26179 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
26180
26181 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
26182
26183 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
26184 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
26185 reduc_uplus_@var{m}): Remove.
26186 * expr.c (expand_expr_real_2): Remove expansion path for
26187 reduc_[us](min|max|plus) optabs.
26188 * optabs-tree.c (scalar_reduc_to_vector): Remove.
26189 * optabs-tree.h (scalar_reduc_to_vector): Remove.
26190 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
26191 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
26192 * tree-vect-loop.c (vectorizable_reduction): Remove test for
26193 reduc_[us](min|max|plus) optabs.
26194
26195 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
26196
26197 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
26198 (reduc_plus_scal_v2sf): New.
26199 (reduc_smax_v2sf): Rename to...
26200 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
26201 (reduc_smin_v2sf): Rename to...
26202 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
26203
26204 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
26205
26206 * alias.c (compare_base_symbol_refs): New function.
26207 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
26208 it.
26209
26210 2016-01-14 Jakub Jelinek <jakub@redhat.com>
26211
26212 PR middle-end/68146
26213 PR tree-optimization/69155
26214 * tree-complex.c: Include cfganal.h.
26215 (phis_to_revisit): New variable.
26216 (extract_component): Add phiarg_p argument. Assert that returned
26217 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
26218 (update_phi_components): Partly rewrite to use loop over real/imag
26219 components instead of code duplication. If extract_component returns
26220 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
26221 create_tmp_reg into the PHI node instead, and mention the phi triplet
26222 in phis_to_revisit.
26223 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
26224 in phis_to_revisit at the end.
26225
26226 2016-01-14 Richard Biener <rguenther@suse.de>
26227
26228 PR tree-optimization/68060
26229 * tree-vect-loop.c (vect_is_simple_reduction): Check the
26230 outer loop reduction is only used in the inner loop before
26231 detecting a double reduction.
26232
26233 2016-01-14 Jakub Jelinek <jakub@redhat.com>
26234
26235 PR target/68269
26236 * combine.c (expand_field_assignment): Punt if compute_mode is
26237 unsupported scalar mode.
26238
26239 2016-01-14 Richard Biener <rguenther@suse.de>
26240
26241 PR tree-optimization/66856
26242 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
26243 SLP node only if it built successfully.
26244 (vect_analyze_slp_instance): Adjust.
26245
26246 2016-01-14 Jeff Law <law@redhat.com>
26247
26248 PR tree-optimization/69270
26249 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
26250 (record_edge_info): Use it. Convert boolean_{true,false}_node
26251 to the type of op0.
26252
26253 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
26254
26255 PR ipa/66487
26256 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
26257 use block_ultimate_origin
26258 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
26259
26260 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
26261
26262 * doc/invoke.texi (Submodel Options): Rename section to
26263 "Machine-Dependent Options" to better reflect its content.
26264 Rewrite introductory text to remove archaic CPU names.
26265 Update references.
26266
26267 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
26268
26269 * doc/invoke.texi (Code Gen Options): Move section up in file,
26270 before target-specific options. Update menu and option summary
26271 to reflect the new section ordering.
26272
26273 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
26274
26275 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
26276 (C++ Dialect Options): Add cross-reference to -std option.
26277 * doc/standards.texi (C++ Language): Document C++14 support.
26278
26279 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
26280
26281 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
26282 for pack/unpack functions for __ibm128.
26283 (PACK_IF): Likewise.
26284 (UNPACK_IF): Likewise.
26285
26286 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
26287 support for __ibm128 pack/unpack functions.
26288 (rs6000_invalid_builtin): Likewise.
26289 (rs6000_init_builtins): Likewise.
26290 (rs6000_opt_masks): Likewise.
26291
26292 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
26293 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
26294 functions
26295 (RS6000_BTM_COMMON): Likewise.
26296
26297 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
26298 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
26299 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
26300 128-bit floating point. Add support for the double values to be
26301 in Altivec registers for TF/IF packing and unpacking, but restrict
26302 TD packing sub-fields to be FPR registers. Don't allow overlapped
26303 register support for packing. Allow pack inputs to be memory
26304 locations. Don't build generator functions for unpack<mode>_dm
26305 and unpack<mode>_nodm.
26306 (unpack<mode>_dm): Likewise.
26307 (unpack<mode>_nodm): Likewise.
26308 (pack<mode>): Likewise.
26309
26310 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
26311 built-in functions to pack/unpack explicit __ibm128 values.
26312 (__builtin_unpack_ibm128): Likewise.
26313
26314 * doc/extend.texi (PowerPC Built-in Functions): Document
26315 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
26316
26317 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
26318
26319 PR c/66208
26320 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
26321 Add new arg loc and pass it down as context.
26322 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
26323 to the location to use for the warning.
26324 (check_function_arguments): New arg loc. All callers changed. Pass
26325 it to check_function_nonnull.
26326 * c-common.h (check_function_arguments): Adjust declaration.
26327
26328 2016-01-13 Jakub Jelinek <jakub@redhat.com>
26329
26330 PR tree-optimization/69156
26331 * gimple.c (validate_type): Removed.
26332 (gimple_builtin_call_types_compatible_p): Use
26333 useless_type_conversion_p instead of validate_type.
26334 * value-prof.c (gimple_stringop_fixed_value): Fold
26335 icall_size to correct type.
26336
26337 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
26338
26339 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
26340 effects.
26341
26342 2016-01-13 Richard Henderson <rth@redhat.com>
26343
26344 PR tree-opt/68964
26345 * target.def (builtin_tm_load, builtin_tm_store): Remove.
26346 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
26347 (ix86_builtin_tm_store): Remove.
26348 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
26349 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
26350 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
26351 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
26352 * doc/tm.texi: Rebuild.
26353
26354 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
26355 (BUILT_IN_TM_MEMCPY_RTWN): New.
26356 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
26357 fallback from vector to integer helpers.
26358 (build_tm_load): Handle vector types directly, instead of
26359 via target hook.
26360 (build_tm_store): Likewise.
26361 (expand_assign_tm): Prepare for register types not handled by
26362 the above. Copy them to memory and use memcpy.
26363 * tree.c (tm_define_builtin): New.
26364 (find_tm_vector_type): New.
26365 (build_tm_vector_builtins): New.
26366 (build_common_builtin_nodes): Call it.
26367
26368 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
26369
26370 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
26371 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
26372
26373 2016-01-13 Tom de Vries <tom@codesourcery.com>
26374
26375 PR tree-optimization/69169
26376 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
26377 handled_struct_type param.
26378 (create_variable_info_for, intra_create_variable_infos): Call
26379 create_variable_info_for_1 with extra arg.
26380
26381 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
26382
26383 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
26384 and "armv8.1-a+crc" entries.
26385
26386 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
26387
26388 PR target/69228
26389 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
26390 Change first operand predicate from register_or_constm1_operand
26391 to register_operand.
26392 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
26393 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
26394 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
26395 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
26396 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
26397 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
26398 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
26399 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
26400 comparison with constm1_rtx from vec_prefetch_gen part.
26401
26402 2016-01-13 Richard Biener <rguenther@suse.de>
26403
26404 PR tree-optimization/69013
26405 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
26406 Exchange assert for a test.
26407
26408 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26409
26410 PR target/69247
26411 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
26412
26413 2016-01-13 Richard Biener <rguenther@suse.de>
26414
26415 PR tree-optimization/69242
26416 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
26417 assert with a check.
26418
26419 2016-01-13 Richard Biener <rguenther@suse.de>
26420
26421 PR tree-optimization/69186
26422 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
26423 Properly guard vect_update_misalignment_for_peel call.
26424
26425 2016-01-12 Jeff Law <law@redhat.com>
26426
26427 PR tree-optimization/pr67755
26428 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
26429 "need_profile_correction".
26430 (thread_block_1): Initialize new field to false by default. If we
26431 have multiple thread paths through a common joiner to different
26432 final targets, then set new field to true.
26433 (compute_path_counts): Only do count adjustment when it's really
26434 needed.
26435
26436 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
26437
26438 * doc/invoke.texi (Spec Files): Move section down in file, past
26439 all command-line option descriptions.
26440
26441 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26442
26443 PR middle-end/54809
26444 * doc/gty.texi: Remove documentation of mark_hook.
26445 * gengtype.c (struct write_types_data): Remove code to support
26446 mark_hook attribute.
26447 (walk_type): Likewise.
26448 (write_func_for_structure): Likewise.
26449
26450 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
26451
26452 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
26453 Directory Options, and -specs= to Overall Options.
26454 (Overall Options): Adjust similarly. Reorder to group related
26455 options together. Make -specs= cross-reference the spec file details.
26456 (Directory Options): Adjust similarly.
26457
26458 2016-01-12 Jeff Law <law@redhat.com>
26459
26460 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
26461
26462 2016-01-12 Olivier Hainque <hainque@adacore.com>
26463
26464 * gcc.c (spec_undefvar_allowed): New global.
26465 (process_command): Set to true when running for --version or --help,
26466 alone or together.
26467 (getenv_spec_function): When the variable is not defined, use the
26468 variable name as the variable value if we're allowed not to issue
26469 a fatal error.
26470
26471 2016-01-12 Bin Cheng <bin.cheng@arm.com>
26472
26473 PR tree-optimization/68911
26474 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
26475 information computed for expression "init + nit * step".
26476
26477 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
26478
26479 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
26480 about name of GCC executable. Remove deleted node from menu.
26481 (Directory Options) <-B>: Remove cross-reference to deleted node.
26482 (Target Options): Delete section.
26483
26484 2016-01-12 Christian Bruel <christian.bruel@st.com>
26485
26486 PR target/69180
26487 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
26488 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
26489
26490 2016-01-12 Jakub Jelinek <jakub@redhat.com>
26491
26492 PR target/69198
26493 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
26494 aligned_mem is properly set for AVX512-VL floating point masked
26495 stores.
26496
26497 PR target/69175
26498 * ifcvt.c (cond_exec_process_if_block): When removing the last
26499 insn from then_bb, remove also any possible barriers that follow it.
26500
26501 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
26502
26503 PR target/68456
26504 PR target/69226
26505 * config/i386/iamcu.h (SIZE_TYPE): New macro.
26506 (PTRDIFF_TYPE): Likewise.
26507 (WCHAR_TYPE): Likewise.
26508 (WCHAR_TYPE_SIZE): Likewise.
26509 (STDINT_LONG32): Likewise.
26510
26511 2016-01-12 Richard Biener <rguenther@suse.de>
26512
26513 PR tree-optimization/69053
26514 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
26515 convert initial value for cond reductions.
26516
26517 2016-01-12 Richard Biener <rguenther@suse.de>
26518
26519 PR tree-optimization/69007
26520 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
26521 widen_sum after dot_prod and sad.
26522
26523 2016-01-12 Richard Biener <rguenther@suse.de>
26524
26525 PR tree-optimization/69168
26526 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
26527 pattern stmt SLP type.
26528 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
26529 end up unused so cope with that case.
26530
26531 2016-01-12 Richard Biener <rguenther@suse.de>
26532
26533 PR tree-optimization/69157
26534 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
26535 stmts def type only during analyze phase.
26536 (vectorizable_call): Likewise.
26537 (vectorizable_simd_clone_call): Likewise.
26538 (vectorizable_conversion): Likewise.
26539 (vectorizable_assignment): Likewise.
26540 (vectorizable_shift): Likewise.
26541 (vectorizable_operation): Likewise.
26542 (vectorizable_store): Likewise.
26543 (vectorizable_load): Likewise.
26544
26545 2016-01-12 Richard Biener <rguenther@suse.de>
26546
26547 PR tree-optimization/69174
26548 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
26549 space.
26550 (vectorizable_load): Properly compute the number of loads needed
26551 for permuted strided SLP loads and do not spuriously assign
26552 to SLP_TREE_VEC_STMTS.
26553
26554 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
26555
26556 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
26557 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
26558 (MD_EXEC_PREFIX): Remove.
26559 (MD_STARTFILE_PREFIX) Removee.
26560 (FILE_NAME_ABSOLUTE_P): Remove.
26561 (CPP_SPEC): Do not read macros from sys/version.h.
26562 (LINK_COMMAND_SPEC): Remove.
26563 (LOCAL_INCLUDE_DIR): Remove.
26564 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
26565 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
26566 (POST_LINK_SPEC): Define to invoke stubify after linker
26567 (LIBSTDCXX): Remove define
26568 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
26569 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
26570 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
26571 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
26572 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
26573 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
26574 (i386_djgpp_asm_named_section): Add propotype of new procedure
26575
26576 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
26577 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
26578 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
26579 in config/i386/djgpp.h).
26580 (STANDARD_STARTFILE_PREFIX_2): Define identical to
26581 STANDARD_STARTFILE_PREFIX_1.
26582 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
26583 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
26584 installation errors.
26585 (MAX_OFILE_ALIGNMENT): Define to 128.
26586 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
26587
26588 * config/i386/djgpp.c: New file. Add implementation of
26589 i386_djgpp_asm_named_section.
26590
26591 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
26592
26593 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
26594 Add rule for building djgpp.o.
26595
26596 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26597
26598 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
26599 (rtx_is_swappable_p): Reductions are swappable.
26600 (insn_is_swappable_p): V2DF reductions are swappable.
26601
26602 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
26603
26604 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
26605 reloads for other unsupported memory operands.
26606
26607 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
26608 Jim Wilson <jim.wilson@linaro.org>
26609
26610 PR target/69194
26611 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
26612 copy_to_mode_reg instead of force_reg.
26613
26614 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
26615
26616 PR target/69225
26617 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
26618 TARGET_80387 is true.
26619
26620 2016-01-11 Jakub Jelinek <jakub@redhat.com>
26621
26622 PR target/69071
26623 * lra-eliminations.c (move_plus_up): Only move plus up
26624 if subreg of the constant can be simplified into constant
26625 and use the simplified subreg of the constant instead of
26626 the original constant.
26627
26628 * fold-const.c (fold_convertible_p): Don't return true
26629 for conversion of VECTOR_TYPE to same sized integral type.
26630 (fold_convert_loc): Fix up formatting. Fold conversion of
26631 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
26632 instead of NOP_EXPR.
26633
26634 PR tree-optimization/69214
26635 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
26636 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
26637 Formatting fix.
26638
26639 PR tree-optimization/69207
26640 * tree-vect-slp.c (vect_get_constant_vectors): For
26641 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
26642 fold_convertible_p to vector_type's element type, and always
26643 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
26644
26645 2016-01-11 Richard Biener <rguenther@suse.de>
26646
26647 PR tree-optimization/69173
26648 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
26649 fixup the cycle if all stmts are in a pattern.
26650
26651 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
26652
26653 PR middle-end/68999
26654 * alias.c (base_alias_check): Move check for addresses with
26655 alignment ANDs before the call for compare_base_decls.
26656 (memrefs_conflict_p): Return -1 for different decls
26657 that went through alignment adjustments.
26658
26659 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26660
26661 PR rtl-optimization/68796
26662 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
26663 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
26664 and QImode comparisons against zero with CC_NZmode.
26665 * config/aarch64/iterators.md (short_mask): New mode_attr.
26666
26667 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
26668
26669 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
26670 (<avx512>_store<mode>_mask): Likewise.
26671
26672 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
26673 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26674
26675 PR rtl-optimization/68841
26676 * ifcvt.c (struct noce_if_info): Add orig_x field.
26677 (bbs_ok_for_cmove_arith): Add to_rename parameter.
26678 Don't record conflicts on to_rename if it's present.
26679 Allow memory destinations in sets.
26680 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
26681 blocks, passing orig_x to the checks.
26682 (noce_process_if_block): Set if_info->orig_x appropriately.
26683
26684 2016-01-11 Tom de Vries <tom@codesourcery.com>
26685
26686 PR tree-optimization/69069
26687 * tree-parloops.c (create_parallel_loop): Add missing phi args.
26688
26689 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
26690
26691 PR rtl-optimization/68920
26692 * config/i386/i386.c (ix86_option_override_internal): Restrict number
26693 of conditional moves for RTL if-conversion to 1 for
26694 TARGET_ONE_IF_CONV_INSN.
26695 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
26696 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
26697 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
26698 parameter to restirct number of conditional moves for
26699 RTL if-conversion.
26700 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
26701 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
26702 conditionl moves.
26703
26704 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
26705
26706 PR bootstrap/69123
26707 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
26708 onepart vars. Fix typo in comment. Fix reversed condition in
26709 unshare test.
26710 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
26711
26712 PR bootstrap/69123
26713 * var-tracking.c (dump_onepart_variable_differences): New.
26714 (dataflow_set_different): If a detailed dump is requested,
26715 delay early returns and dump differences between onepart
26716 variables present before and after, and added variables.
26717
26718 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
26719
26720 PR target/69010
26721 * expr.c (expand_expr_real_1): For boolean vector constants
26722 with a scalar mode use const_scalar_mask_from_tree.
26723 (const_scalar_mask_from_tree): New.
26724 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
26725 assigned to a mask type to handle constants.
26726
26727 2016-01-11 Martin Jambor <mjambor@suse.cz>
26728
26729 PR ipa/69044
26730 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
26731 useless parameters if we cannot change function signature.
26732
26733 2016-01-11 Martin Jambor <mjambor@suse.cz>
26734
26735 PR ipa/66616
26736 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
26737 flag.
26738
26739 2016-01-11 Tom de Vries <tom@codesourcery.com>
26740
26741 PR tree-optimization/69109
26742 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
26743 latch with phi.
26744
26745 2016-01-11 Tom de Vries <tom@codesourcery.com>
26746
26747 PR tree-optimization/69108
26748 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
26749 res is not used in a phi.
26750
26751 2016-01-11 Yury Gribov <y.gribov@samsung.com>
26752
26753 PR 67425
26754 * common.opt (frandom-seed): Fix parameter name.
26755 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
26756
26757 2016-01-11 Tom de Vries <tom@codesourcery.com>
26758
26759 PR tree-optimization/69058
26760 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
26761 not supported.
26762
26763 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
26764
26765 * config/arc/arc.opt (mdiv-rem): Add period to the end.
26766 (mcode-density): Likewise.
26767
26768 2016-01-10 Tom de Vries <tom@codesourcery.com>
26769
26770 PR tree-optimization/69062
26771 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
26772 (parallelize_loops): Don't paralelize loop that has phi with address
26773 arg.
26774
26775 2016-01-10 Tom de Vries <tom@codesourcery.com>
26776
26777 PR tree-optimization/69039
26778 * tree-parloops.c (try_create_reduction_list): Only allow single exit
26779 phi for reduction.
26780
26781 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
26782
26783 PR middle-end/68743
26784 * match.pd: Require target has function_c99_misc before doing
26785 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
26786
26787 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
26788
26789 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
26790 use GMPINC.
26791 * configure: Regenerate.
26792
26793 2016-01-09 Jakub Jelinek <jakub@redhat.com>
26794
26795 PR middle-end/50865
26796 PR tree-optimization/69097
26797 * fold-const.h (expr_not_equal_to): New prototype.
26798 * fold-const.c: Include stringpool.h and tree-ssanames.h.
26799 (expr_not_equal_to): New function.
26800 * match.pd (X % -Y is the same as X % Y): Don't optimize
26801 unless X is known not to be equal to minimum or Y is known
26802 not to be equal to -1.
26803 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
26804 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
26805 (simplify_stmt_using_ranges): Adjust caller.
26806 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
26807 substitute_and_fold.
26808
26809 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
26810
26811 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
26812 w/o DECL_NAME.
26813
26814 2016-01-08 Jakub Jelinek <jakub@redhat.com>
26815
26816 PR tree-optimization/69167
26817 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
26818 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
26819 ops[0] comparison.
26820 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
26821
26822 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
26823 Richard Biener <rguenther@suse.de>
26824
26825 PR tree-optimization/68707
26826 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
26827 instances that can be handled via vect_load_lanes.
26828
26829 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
26830
26831 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
26832 if we can't determine address equivalence.
26833 * alias.c (compare_base_decl): Update for changed return value of
26834 symtab_node::equal_address_to.
26835
26836 2016-01-08 Jason Merrill <jason@redhat.com>
26837
26838 PR c++/68983
26839 PR c++/67557
26840 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
26841 * expr.c (store_field): Not here.
26842 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
26843 call with TREE_ADDRESSABLE type.
26844 * tree-cfg.c (verify_gimple_call): Adjust.
26845
26846 2016-01-08 Olivier Hainque <hainque@adacore.com>
26847
26848 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
26849 libc_internal.
26850
26851 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
26852
26853 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
26854 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
26855 (reduc_smin_v2sf): Rename to...
26856 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
26857 (reduc_splus_v2sf): Rename to...
26858 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
26859
26860 2016-01-08 Jakub Jelinek <jakub@redhat.com>
26861
26862 PR tree-optimization/69162
26863 * gimplify.c (gimplify_va_arg_expr): Encode original type of
26864 valist argument in another argument.
26865 (gimplify_modify_expr): Adjust for the above change. Cleanup.
26866 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
26867 to determine the va_list type, build a MEM_REF instead of
26868 build_fold_indirect_ref.
26869
26870 PR tree-optimization/69172
26871 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
26872 gimple_build.
26873
26874 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
26875
26876 PR tree-optimization/67781
26877 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
26878 and cmpnop in two steps: first the ones not accessed in original
26879 gimple expression in a endian independent way and then the ones not
26880 accessed in the final result in an endian-specific way.
26881
26882 2016-01-08 Jakub Jelinek <jakub@redhat.com>
26883
26884 PR tree-optimization/69083
26885 * tree-vect-slp.c (vect_get_constant_vectors): For
26886 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
26887 element type. If op is fold_convertible_p to vector_type's element
26888 type, use NOP_EXPR instead of VCE.
26889
26890 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
26891
26892 PR rtl-optimization/67778
26893 PR rtl-optimization/68634
26894 PR rtl-optimization/68909
26895 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
26896 block from the stack until done with it. Remove a superfluous
26897 bitmap set. Remove a superfluous bitmap test.
26898
26899 2016-01-07 Martin Sebor <msebor@redhat.com>
26900
26901 PR c/68966
26902 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
26903 constraint on the type of arguments.
26904
26905 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
26906
26907 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
26908 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
26909 unaligned_access on the gcc_options set.
26910 * config/arm/arm.c (arm_option_override_internal): Use
26911 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
26912
26913 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
26914
26915 PR target/69140
26916 * config/i386/i386.c (ix86_frame_pointer_required): Enable
26917 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
26918
26919 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
26920
26921 Revert
26922 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
26923
26924 PR target/69140
26925 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
26926 depending on frame_pointer_needed before remaining integer and SSE
26927 registers are saved.
26928
26929 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
26930
26931 PR 1078
26932 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
26933
26934 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
26935
26936 PR target/69171
26937 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
26938 Use the "xBm" constraint.
26939 (float<sseintvecmodelower><mode>2<mask_name><round_name):
26940 Likewise.
26941 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
26942 (sse_cvtsi2ssq<round_name>): Likewise.
26943 (sse_cvtss2si<round_name>): Likewise.
26944 (sse_cvtss2siq<round_name>): Likewise.
26945 (sse2_cvtsi2sdq<round_name>): Likewise.
26946 (sse2_cvtsd2si<round_name>): Likewise.
26947 (sse2_cvtsd2siq<round_name>): Likewise.
26948 * config/i386/subst.md (round_nimm_scalar_predicate): New
26949 predicate.
26950
26951 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
26952
26953 PR middle-end/67639
26954 * varasm.c (make_decl_rtl): Mark invalid register vars as
26955 DECL_EXTERNAL.
26956
26957 PR rtl-optimization/66206
26958 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
26959 All callers changed.
26960
26961 2016-01-07 Jakub Jelinek <jakub@redhat.com>
26962
26963 PR tree-optimization/69141
26964 * tree-ssa-pre.c: Include langhooks.h.
26965 (eliminate_dom_walker::before_dom_children): Use
26966 lang_hooks.decl_printable_name instead of
26967 cgraph_node::get ()->name ().
26968
26969 PR middle-end/68960
26970 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
26971 it and DECL_ALIGN too.
26972
26973 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
26974
26975 * config/mips/mips-ftypes.def: Sort to lexicographical order.
26976
26977 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
26978
26979 PR target/69140
26980 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
26981 depending on frame_pointer_needed before remaining integer and SSE
26982 registers are saved.
26983
26984 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26985
26986 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
26987 mode iterator with VSX_M2.
26988 (*p9_vecstore_<mode>): Likewise.
26989 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
26990 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
26991 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
26992 (define_split for VSX_LE128 stores): Likewise.
26993 (define_peephole2 for TImode LE swaps): Likewise.
26994 (define_split for VSX_LE128 post-reload stores): Likewise.
26995
26996 2016-01-06 Marek Polacek <polacek@redhat.com>
26997
26998 PR sanitizer/69099
26999 * convert.c (convert_to_integer_1): Adjust call to
27000 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
27001 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
27002 EXPR instead of ARG.
27003 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
27004
27005 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
27006
27007 PR 1078
27008 * doc/extend.texi (RL78 Variable Attributes): New section.
27009
27010 2016-01-05 Marek Polacek <polacek@redhat.com>
27011
27012 PR c/69104
27013 * builtins.c (get_memmodel): Use expansion point location rather than
27014 the input location. Call warning_at rather than warning.
27015 (expand_builtin_atomic_compare_exchange): Likewise.
27016 (expand_builtin_atomic_load): Likewise.
27017 (expand_builtin_atomic_store): Likewise.
27018 (expand_builtin_atomic_clear): Likewise.
27019
27020 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
27021
27022 PR target/68991
27023 * config/i386/i386.c (ix86_expand_vector_logical_operator):
27024 Replace nonimmediate_operand with vector_operand.
27025 * config/i386/predicates.md (vector_operand): New predicate.
27026 (general_vector_operand): Replace nonimmediate_operand with
27027 vector_operand.
27028 * config/i386/sse.md: Replace nonimmediate_operand with
27029 vector_operand and m constraint with Bm constraint on SSE
27030 patterns with 16-byte memory operand.
27031 * config/i386/subst.md (round_nimm_predicate): Replace
27032 nonimmediate_operand with vector_operand.
27033 (round_saeonly_nimm_predicate): Likewise.
27034 (round_saeonly_nimm_scalar_predicate): New.
27035
27036 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
27037
27038 PR target/68991
27039 * config/i386/constraints.md (Bm): New constraint.
27040 * config/i386/predicates.md (vector_memory_operand): New
27041 predicate.
27042 * config/i386/sse.md: Replace xm with xBm in plusminus and
27043 any_logic patterns.
27044
27045 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
27046
27047 PR 1078
27048 * doc/extend.texi (V850 Function Attributes): New section.
27049 (V850 Variable Attributes): New section.
27050
27051 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
27052
27053 PR 1078
27054 * doc/extend.texi (MicroBlaze Function Attributes): Document
27055 interrupt_handler and fast_interrupt attributes.
27056
27057 2016-01-05 Sergei Trofimovich <siarheit@google.com>
27058
27059 PR other/60465
27060 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
27061 for local symbolic operands.
27062 * config/ia64/predicates.md (local_symbolic_operand64): New
27063 predicate.
27064
27065 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27066
27067 PR rtl-optimization/68651
27068 * combine.c (combine_simplify_rtx): Canonicalize x + x into
27069 x << 1.
27070
27071 2016-01-05 Nathan Sidwell <nathan@acm.org>
27072
27073 * alias.c (compare_base_decls): Use symtab_node::get.
27074
27075 2016-01-05 Nick Clifton <nickc@redhat.com>
27076
27077 PR target/68770
27078 * ira-costs.c (copy_cost): Initialise the t_icode field of the
27079 secondary_reload_info structure.
27080
27081 PR target/66655
27082 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
27083 decls if weak support is available.
27084
27085 2016-01-04 Martin Sebor <msebor@redhat.com>
27086
27087 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
27088
27089 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
27090
27091 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
27092 OPTION_MASK_P9_DFORM.
27093
27094 * config/rs6000/constraints.md (wo constraint): New constraint for
27095 ISA 3.0 (power9).
27096
27097 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
27098 for wo constraint.
27099 (rs6000_init_hard_regno_mode_ok): Likewise.
27100
27101 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
27102 wo constraint.
27103
27104 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
27105 expanders not to have constraints. Add support for ISA 3.0 xxperm
27106 instruction. Add support for fusing xxlor with xxperm.
27107 (altivec_vperm_<mode>_internal): Likewise.
27108 (altivec_vperm_v8hiv16qi): Likewise.
27109 (altivec_vperm_<mode>v16q): Likewise.
27110 (altivec_vperm_<mode>_uns): Likewise.
27111 (vperm_v8hiv4si): Likewise.
27112 (vperm_v16qiv8hi): Likewise.
27113
27114 * doc/md.texi (RS/6000 constraints): Document wo constraint.
27115
27116 2016-01-04 Jakub Jelinek <jakub@redhat.com>
27117
27118 Update copyright years.
27119
27120 * gcc.c (process_command): Update copyright notice dates.
27121 * gcov-dump.c (print_version): Ditto.
27122 * gcov.c (print_version): Ditto.
27123 * gcov-tool.c (print_version): Ditto.
27124 * gengtype.c (create_file): Ditto.
27125 * doc/cpp.texi: Bump @copying's copyright year.
27126 * doc/cppinternals.texi: Ditto.
27127 * doc/gcc.texi: Ditto.
27128 * doc/gccint.texi: Ditto.
27129 * doc/gcov.texi: Ditto.
27130 * doc/install.texi: Ditto.
27131 * doc/invoke.texi: Ditto.
27132
27133 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
27134
27135 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
27136 modes larger than TImode as TImode if NEON is not enabled.
27137
27138 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
27139
27140 PR target/69100
27141 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
27142 mode for %f0-%f31 only if TARGET_FPU.
27143
27144 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
27145
27146 PR target/69072
27147 * config/sparc/sparc.c (scan_record_type): Take into account subfields
27148 to compute the PACKED_P predicate.
27149 (function_arg_record_value): Minor tweaks.
27150
27151 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
27152
27153 * doc/install.texi (--with-multilib-list): Describe the meaning of the
27154 option for arm*-*-* targets.
27155
27156 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
27157
27158 * doc/extend.texi (Common Function Attributes): Move docs for
27159 MSP430-specific attributes to....
27160 (MSP430 Function Attributes): ...here. Delete the redundant
27161 entries and copy-edit the remaining text.
27162 (MSP430 Variable Attributes): Use uniform format for index
27163 entries and add a cross-reference to the corresponding function
27164 attribute docs.
27165
27166 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
27167
27168 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
27169 -finite-math typo.
27170 (x86 Options): Likewise.
27171
27172 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
27173
27174 PR 1078
27175
27176 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
27177 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
27178 to corresponding attribute.
27179
27180 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
27181
27182 * doc/extend.texi (Common Function Attributes) <noplt>: Move
27183 to correct alphabetization of table. Copy-edit and correct
27184 markup.
27185 <stack_protect>: Likewise.
27186 <target_clones>: Likewise.
27187 <simd>: Likewise.
27188 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
27189 Correct punctuation.
27190 (Code Gen Options) <-fno-plt>: Copy-edit.
27191
27192 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
27193
27194 PR target/68917
27195 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
27196 SI values. Explicitly convert SI to DI and vice-versa.
27197
27198 2016-01-01 Jakub Jelinek <jakub@redhat.com>
27199
27200 PR tree-optimization/69070
27201 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
27202 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
27203
27204 PR sanitizer/69055
27205 * ubsan.c (ubsan_instrument_float_cast): Call
27206 initialize_sanitizer_builtins.
27207
27208 PR target/69015
27209 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
27210 \f
27211 Copyright (C) 2016 Free Software Foundation, Inc.
27212
27213 Copying and distribution of this file, with or without modification,
27214 are permitted in any medium without royalty provided the copyright
27215 notice and this notice are preserved.