d67b9c6e399dc6a1063a545bb53905ca107c099c
[gcc.git] / gcc / ChangeLog
1 2015-12-23 Thomas Schwinge <thomas@codesourcery.com>
2
3 * tree-core.h (enum omp_clause_code): Merge OMP_CLAUSE_USE_DEVICE
4 into OMP_CLAUSE_USE_DEVICE_PTR. Adjust all users.
5
6 2015-12-23 David Sherwood <david.sherwood@arm.com>
7
8 * config/arm/iterators.md (VMAXMINFNM): New int iterator.
9 (fmaxmin): New int attribute.
10 (fmaxmin_op): Likewise.
11 * config/arm/unspecs.md (UNSPEC_VMAXNM): New unspec.
12 (UNSPEC_VMINNM): Likewise.
13 * config/arm/neon.md (fmaxmin): New pattern.
14 * config/arm/vfp.md (fmaxmin): Likewise.
15
16 2015-12-23 H.J. Lu <hongjiu.lu@intel.com>
17
18 PR target/66232
19 * config/i386/constraints.md (Bs): Allow GOT slot for x32 with
20 64-bit Pmode.
21 (Bw): Likewise.
22 (Bz): Likewise.
23 * config/i386/predicates.md (call_insn_operand): Likewise.
24 (sibcall_insn_operand): Likewise.
25
26 2015-12-22 David Malcolm <dmalcolm@redhat.com>
27
28 PR c/68473
29 * diagnostic-show-locus.c (layout::layout): Make loc_range const.
30 Sanitize the layout_range against ranges that finish before they
31 start.
32
33 2015-12-22 Jeff Law <law@redhat.com>
34
35 * gimple-ssa-split-paths.c (split_paths): Avoid unnecessary block
36 copying.
37
38 2015-12-22 Jakub Jelinek <jakub@redhat.com>
39
40 PR c++/67376
41 * fold-const.c (size_low_cst): Removed.
42 (fold_comparison): For POINTER_PLUS_EXPR where base is ADDR_EXPR
43 call get_inner_reference and handle INDIRECT_REF base of it. Use
44 offset_int for computation of the bitpos.
45 (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Formatting
46 fixes for X +- Y CMP X and C - X CMP X folding. Add X CMP X +- Y
47 and X CMP C - X folding.
48
49 2015-12-22 Richard Henderson <rth@redhat.com>
50
51 PR ipa/67811
52 * gimple.h (struct gtransaction): Add label_norm, label_uninst;
53 replace label with label_over.
54 (gimple_build_transaction): Remove label parameter.
55 (gimple_transaction_label_norm): New.
56 (gimple_transaction_label_uninst): New.
57 (gimple_transaction_label_over): Rename from gimple_transaction_label.
58 (gimple_transaction_label_norm_ptr): New.
59 (gimple_transaction_label_uninst_ptr): New.
60 (gimple_transaction_label_over_ptr): Rename from
61 gimple_transaction_label_ptr.
62 (gimple_transaction_set_label_norm): New.
63 (gimple_transaction_set_label_uninst): New.
64 (gimple_transaction_set_label_over): Rename from
65 gimple_transaction_set_label.
66 * gimple-pretty-print.c (dump_gimple_transaction): Update.
67 * gimple-streamer-in.c (input_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
68 * gimple-streamer-out.c (output_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
69 * gimple-walk.c (walk_gimple_op) [GIMPLE_TRANSACTION]: Same.
70 * tree-cfg.c (make_edges_bb) [GIMPLE_TRANSACTION]: Same.
71 (cleanup_dead_labels) [GIMPLE_TRANSACTION]: Same.
72 (verify_gimple_transaction): Same.
73 (gimple_redirect_edge_and_branch) [GIMPLE_TRANSACTION]: Same.
74 * tree-inline.c (remap_gimple_stmt) [GIMPLE_TRANSACTION]: Same.
75 * gimple.c (gimple_build_transaction): Remove label parameter;
76 initialize all three label memebers.
77 * gimplify.c (gimplify_transaction): Update call
78 to gimple_build_transaction.
79 * trans-mem.c (make_tm_uninst): New.
80 (lower_transaction): Create uninstrumented code path here...
81 (ipa_tm_scan_calls_transaction): ... not here.
82 (ipa_uninstrument_transaction): Remove.
83
84 * tree-eh.c (honor_protect_cleanup_actions): Do not wrap eh_else
85 in a must-not-throw; set ehp_region for it too.
86
87 2015-12-22 Peter Bergner <bergner@vnet.ibm.com>
88
89 PR target/68772
90 * config/rs6000/rs6000.h (ASM_CPU_SPEC): For -mcpu=powerpc64le,
91 pass %(asm_cpu_power8).
92
93 2015-12-22 H.J. Lu <hongjiu.lu@intel.com>
94
95 PR target/68937
96 * config/i386/i386.c (ix86_function_ok_for_sibcall): Count
97 call to global function via GOT slot as indirect call.
98 * config/i386/i386.md (*sibcall_GOT_32): New pattern.
99 (*sibcall_value_GOT_32): Likewise.
100 * config/i386/predicates.md (sibcall_memory_operand): Rewrite.
101 Allow 32-bit GOT slot only with pseudo register as GOT base.
102 (GOT32_symbol_operand): New predicate.
103
104 2015-12-22 Sujoy Saraswati <sujoy.saraswati@hpe.com>
105
106 * fold-const.c (const_binop): Convert sNaN to qNaN when
107 flag_signaling_nans is off.
108 (const_unop): Avoid the operation, other than NEGATE and
109 ABS, if flag_signaling_nans is on and the operand is an sNaN.
110 (fold_convert_const_real_from_real): Avoid the operation if
111 flag_signaling_nans is on and the operand is an sNaN.
112 (integer_valued_real_unary_p): Update comment stating it
113 returns false for sNaN values.
114 (integer_valued_real_binary_p, integer_valued_real_call_p): Same.
115 (integer_valued_real_single_p): Same.
116 (integer_valued_real_invalid_p, integer_valued_real_p): Same.
117 * fold-const-call.c (fold_const_pow): Avoid the operation
118 if flag_signaling_nans is on and the operand is an sNaN.
119 (fold_const_builtin_load_exponent) Same.
120 (fold_const_call_sss): Same for CASE_CFN_POWI.
121 * gimple-fold.c (gimple_assign_integer_valued_real_p): Same.
122 (gimple_call_integer_valued_real_p): Same.
123 (gimple_phi_integer_valued_real_p): Same.
124 (gimple_stmt_integer_valued_real_p): Same.
125 * simplify-rtx.c (simplify_const_unary_operation): Avoid the
126 operation if flag_signaling_nans is on and the operand is an sNaN.
127 (simplify_const_binary_operation): Same.
128 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Avoid the
129 operation if flag_signaling_nans is on and the operand is an sNaN.
130
131 2015-12-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
132
133 * combine.c (simplify_comparison): Convert preprocessor check of
134 WORD_REGISTER_OPERATIONS into runtime check.
135
136 2015-12-22 Eric Botcazou <ebotcazou@adacore.com>
137
138 PR debug/60756
139 * var-tracking.c (tracked_record_parameter_p): New predicate.
140 (track_expr_p): Invoke it.
141 (add_stores): Likewise.
142
143 2015-12-21 Jeff Law <law@redhat.com>
144
145 * dbgcnt.def (dom_unreachable_edges): New debug counter.
146 * tree-ssa-dom.c: Include dbgcnt.h
147 (dom_opt_dom_walker::before_dom_children): Handle the new counter.
148
149 2015-12-21 Andrew Pinski <apinski@cavium.com>
150
151 * config/aarch64/aarch64-option-extensions.def (LSE): Change
152 FEAT_STRING to "atomics".
153
154 2015-12-21 Pierre-Marie de Rodat <derodat@adacore.com>
155
156 * dwarf2out.c (add_data_member_location_attribute): Do not
157 disable dynamic data member offsets descriptions for TREE_BINFO
158 members.
159
160 2015-12-21 Eric Botcazou <ebotcazou@adacore.com>
161
162 PR tree-optimization/65337
163 * tree-ssa-pre.c (eliminate): Also clean up abnormal edges if need be.
164
165 2015-12-21 Dominik Vogt <vogt@linux.vnet.ibm.com>
166
167 * config/s390/s390.c (s390_emit_prologue): Fix base reg condition.
168
169 2015-12-21 Claudiu Zissulescu <claziss@synopsys.com>
170
171 * config/arc/builtins.def: New file.
172 * config/arc/arc.c (arc_init_simd_builtins): Remove.
173 (arc_builtins): Likewise.
174 (TARGET_BUILTIN_DECL): Define.
175 (arc_builtin_id): New enum.
176 (arc_builtin_description): New structure.
177 (arc_bdesc): New variable.
178 (arc_tolower): New function.
179 (def_mbuiltin): Remove.
180 (arc_builtin_decl): New function.
181 (arc_expand_builtin_aligned ): Likewise.
182 (apply_GEN_FCN): Likewise.
183 (arc_init_builtins): Refurbish.
184 (arc_expand_builtin): Likewise.
185 (simd_insn_args_type): Remove.
186 (builtin_description): Likewise
187 (arc_simd_builtin_desc_list): Likewise.
188 (arc_expand_simd_builtin): Likewise.
189 (arc_process_double_reg_moves): Use the new builtin name format.
190 * config/arc/arc.md (unspec): New builtin function UNSPEC codes.
191 (vunspec): New builtin function VUNSPEC codes.
192 (UNSPEC_SWAP, UNSPEC_MUL64, UNSPEC_MULU64, UNSPEC_DIVAW)
193 (UNSPEC_DIRECT, UNSPEC_LP, UNSPEC_CASESI, VUNSPEC_RTIE)
194 (VUNSPEC_SYNC, VUNSPEC_BRK, VUNSPEC_FLAG, VUNSPEC_SLEEP)
195 (VUNSPEC_SWI, VUNSPEC_CORE_READ, VUNSPEC_CORE_WRITE, VUNSPEC_LR)
196 (VUNSPEC_SR, VUNSPEC_TRAP_S, VUNSPEC_UNIMP_S, VUNSPEC_NOP)
197 (UNSPEC_ARC_MEMBAR,VUNSPEC_ARC_CAS, VUNSPEC_ARC_LL)
198 (VUNSPEC_ARC_SC, VUNSPEC_ARC_EX, VUNSPEC_DEXCL)
199 (VUNSPEC_DEXCL_NORES, VUNSPEC_LR_HIGH): Remove.
200 (mul64, mulu64): Remove patterns.
201 (store_direct, *movdf_insn_nolrsr, casesi, casesi_load)
202 (casesi_compact_jump, nopv, swap, divaw, flag, brk, rtie, sync)
203 (swi, sleep, core_read, core_write, lr, sr, trap_s, unimp_s)
204 (doloop_begin_i): Use new builtin function code naming.
205 (kflag, clri, ffs, ffs_f, ffssi2, fls, seti): New patterns.
206 * config/arc/builtins.def: New file.
207 * config/arc/fpx.md: Use new builtin function code naming.
208 * config/arc/simdext.md: New SIMD builtin function UNSPEC
209 codes. Use them in the SIMD patterns.
210
211 2015-12-21 Sujoy Saraswati <sujoy.saraswati@hpe.com>
212
213 PR tree-optimization/61441
214 * real.c (do_add): Make resulting NaN value to be qNaN.
215 (do_multiply, do_divide, do_fix_trunc): Same.
216 (real_arithmetic, real_ldexp, real_convert): Same.
217 (real_isinteger): Updated comment stating it returns false for sNaN.
218
219 2015-12-20 Jeff Law <law@redhat.com>
220
221 PR tree-optimization/64910
222 * config/i386/i386.md (testqi_ext_3): Allow HImode.
223
224 2015-12-20 Andrew Pinsi <apinski@cavium.com>
225
226 * config/aarch64/atomics.md
227 (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): Add early clobber
228 to the scratch register.
229
230 2015-12-20 Sujoy Saraswati <sujoy.saraswati@hpe.com>
231
232 PR tree-optimization/61441
233 * match.pd (f(x) -> x): Removed flag_errno_math check for RINT.
234
235 2015-12-20 Sujoy Saraswati <sujoy.saraswati@hpe.com>
236
237 PR tree-optimization/61441
238 * fold-const.c (const_binop): Use REAL_VALUE_ISSIGNALING_NAN instead
239 of REAL_VALUE_ISNAN to avoid the operation for sNaN operands.
240 * simplify-rtx.c (simplify_const_binary_operation): Same.
241
242 2015-12-19 Jan Hubicka <hubicka@ucw.cz>
243
244 PR tree-optimization/65337
245 * tree-ssa-dce.c (bb_postorder): New static var.
246 (mark_stmt_necessary): Add guard for setting bb_contains_live_stmts.
247 (forward_edge_to_pdom): Remove.
248 (remove_dead_stmt): Instead of redirecting edges only keep an edge
249 on a path to nearest live BB.
250 (eliminate_unnecessary_stmts): Free bb_postorder.
251 * cfganal.c (dfs_find_deadend): Add START_POINTES.
252 * cfganal.h (inverted_post_order_compute): Update prototype.
253
254 2015-12-19 Eric Botcazou <ebotcazou@adacore.com>
255
256 PR rtl-optimization/68910
257 * emit-rtl.c (set_unique_reg_note) <REG_EQUAL>: Add bypass for USEs.
258 * config/sparc/sparc.md (anddi3): Enable only in 64-bit mode.
259 (iordi3): Likewise.
260 (xordi3): Likewise.
261 (one_cmpldi2): Likewise.
262 (*anddi3_sp32): Delete.
263 (*and_not_di_sp32): Likewise.
264 (*iordi3_sp32): Likewise.
265 (*or_not_di_sp32): Likewise.
266 (*xordi3_sp32): Likewise.
267 (*xor_not_di_sp32): Likewise.
268 (32-bit DImode logical operations splitter): Likewise.
269 (*one_cmpldi2_sp32): Likewise.
270
271 2015-12-19 Andrew Burgess <andrew.burgess@embecosm.com>
272
273 * config/arc/arc.md (*storeqi_update): Use 'any_mem_operand' and
274 fix RTL pattern to include the plus.
275 (*storehi_update): Likewise.
276 (*storesi_update): Likewise.
277 (*storesf_update): Likewise.
278 * config/arc/predicates.md (store_update_operand): Delete.
279
280 2015-12-19 Andrew Burgess <andrew.burgess@embecosm.com>
281
282 * config/arc/arc.md (*loadqi_update): Use new 'any_mem_operand'
283 and fix RTL pattern to include the plus.
284 (*load_zeroextendqisi_update): Likewise.
285 (*load_signextendqisi_update): Likewise.
286 (*loadhi_update): Likewise.
287 (*load_zeroextendhisi_update): Likewise.
288 (*load_signextendhisi_update): Likewise.
289 (*loadsi_update): Likewise.
290 (*loadsf_update): Likewise.
291 * config/arc/predicates.md (load_update_operand): Delete.
292 (any_mem_operand): New predicate.
293
294 2015-12-19 Sujoy Saraswati <sujoy.saraswati@hpe.com>
295
296 PR tree-optimization/61441
297 * real.c (real_issignaling_nan): New.
298 * real.h (real_issignaling_nan, REAL_VALUE_ISSIGNALING_NAN): New.
299
300 2015-13-18 John David Anglin <danglin@gcc.gnu.org>
301
302 PR target/68729
303 * config/pa/pa.c (pa_emit_move_sequence): Reorganize handling of
304 floating-point reloads. Only reload operands that are not valid
305 floating-point memory operands.
306
307 2015-12-18 Jakub Jelinek <jakub@redhat.com>
308
309 PR debug/68860
310 * ipa-split.c (split_function): Only perform caller side
311 modifications for decl_debug_args here.
312 * cgraph.c: Include gimplify.h.
313 (cgraph_edge::redirect_call_stmt_to_callee): Add caller side
314 debug stmts for decl_debug_args. Spelling fix in a comment.
315 * tree-inline.c (tree_function_versioning): Populate decl_debug_args
316 for args_to_skip arguments and add callee side debug stmts.
317 Formatting fixes. Avoid shadowing i variable.
318
319 2015-12-18 Nathan Sidwell <nathan@acm.org>
320
321 * config/nvptx/nvptx.c (nvptx_maybe_convert_symbolic_operand):
322 Remove UNSPEC_TO_GENERIC generation.
323 (nvptx_output_mov_insn): Generate cvta for symbolic src.
324 * config/nvptx/nvptx.md (nvptx_register_operand): Allow hard reg.
325 (nvptx_reg_or_mem_operand): Likewise.
326 (nvptx_nonmemory_operand): Likewise.
327 (nvptx_general_operand): Delete.
328 (*mov<mode>_insn): Use nonimmediate_operand, permit hardregs.
329 (oacc_fork, oacc_join): Use general_operand.
330
331 2015-12-18 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
332
333 * dwarf2out.c (gen_producer_string): Ignore -fdebug-prefix-map.
334
335 2015-12-18 Nathan Sidwell <nathan@acm.org>
336
337 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry for
338 stabs debug.
339 (nvptx_assemble_undefined_decl): Use nvptx_assemble_decl_end.
340
341 2015-12-18 Jeff Law <law@redhat.com>
342
343 PR rtl-optimization/49847
344 * cse.c (record_jump_equiv): Handle fold_rtx returning NULL_RTX.
345
346 2015-12-18 Nathan Sidwell <nathan@acm.org>
347
348 * config/nvptx/nvptx.c (worker_bcast_name, worker_red_name): Delete.
349 (nvptx_option_override): Adjust worker symbol creation.
350 (nvptx_gen_wcast): Wrap worker address in UNSPEC_TO_GENERIC.
351 (write_worker_buffer): New.
352 (nvptx_file_end): Call write_worker_buffer.
353 * config/nvptx/nvptx.md (UNSPEC_SHARED_DATA): Delete.
354 (worker_load<mode>, worker_store<mode>): Delete.
355
356 2015-12-18 Richard Biener <rguenther@suse.de>
357
358 PR testsuite/68776
359 * tree-vect-patterns.c (struct vect_recog_func): New.
360 (vect_vect_recog_func_ptrs): Make an array of function name pairs.
361 (vect_pattern_recog_1): Print the recognized pattern name. Return
362 true if a pattern was recognized.
363 (vect_pattern_recog): Adjust. Stop iterating over pattern recognition
364 functions on a stmt if a pattern was recognized.
365
366 2015-12-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
367
368 * ira.c (ira_setup_alts): Move the scan for commutative modifier
369 to the first loop to make it work even with disabled alternatives.
370
371 2015-12-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
372
373 * config/s390/s390.c (s390_init_frame_layout): Try r4 to r2 for the
374 literal pool pointer.
375
376 2015-12-18 Yuri Rumyantsev <ysrumyan@gmail.com>
377
378 PR tree-optimization/68906
379 * tree-ssa-loop-unswitch.c (tree_unswitch_outer_loop): Add check
380 that an exit block belongs to LOOP.
381
382 2015-12-18 Ilya Enkovich <enkovich.gnu@gmail.com>
383
384 PR tree-optimization/68956
385 * tree-vect-stmts.c (vect_init_vector): Fix constants
386 used for boolean vectors.
387
388 2015-12-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
389
390 PR rtl-optimization/68796
391 * config/aarch64/aarch64.md (*and<mode>3nr_compare0_zextract):
392 New pattern.
393 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle
394 ZERO_EXTRACT comparison with zero.
395 (aarch64_mask_from_zextract_ops): New function.
396 * config/aarch64/aarch64-protos.h (aarch64_mask_from_zextract_ops):
397 New prototype.
398
399 2015-12-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
400
401 * config/s390/predicates.md: Change and rename
402 constm1_operand to all_ones_operand
403 * config/s390/s390.c (s390_expand_vcond): Use all_ones_operand
404 * config/s390/vector.md: Likewise
405
406 2015-12-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
407
408 * config/s390/s390.c (s390_expand_vcond): Convert vector
409 conditional into shift.
410 * config/s390/vector.md: Change operand predicate.
411
412 2015-12-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
413
414 * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
415 z900 -march -mtune even on g5 and g6 machines.
416 * config/s390/s390.c (s390_option_override_internal): New argument
417 to distingiush between options and target attributes. Emit
418 deprecation warning for g5 and g6 arch/tune options.
419 (s390_option_override): Set new s390_option_override_internal
420 argument to true.
421 (s390_valid_target_attribute_tree): Set new
422 s390_option_override_internal argument to false.
423 * config/s390/s390.h: Default to z900 in the driver.
424 * doc/invoke.texi: Document the deprecation of g5 and g6.
425
426 2015-12-18 Andris Pavenis <andris.pavenis@iki.fi>
427
428 * config/i386/djgpp-stdint.h: update typedefs for integer types
429
430 2015-12-17 Jeff Law <law@redhat.com>
431
432 * passes.def: Put the split-paths pass immediately before the
433 tracer pass.
434
435 * doc/invoke.texi (-O2 options): Remove -fsplit-paths.
436 (-O3 options): Add -fsplit-paths.
437 * gimple-ssa-split-paths.c: Include predict.h
438 (split_paths): Only split paths in a loop that should be
439 optimized for speed.
440 * opts.c (default_options_table): Move -fsplit-paths from -O2 to
441 -O3.
442
443 2015-12-17 Nathan Sidwell <nathan@acm.org>
444
445 * ipa-icf.c (sem_item_optimizer::merge): Don't pick 'main' as the
446 source function.
447
448 2015-12-17 Sebastian Pop <s.pop@samsung.com>
449
450 * Makefile.in: Replace ISL with isl.
451 * common.opt: Same.
452 * configure: Regenerate.
453 * configure.ac: Same.
454 * doc/install.texi: Same.
455 * doc/invoke.texi: Same.
456 * graphite-isl-ast-to-gimple.c: Same.
457 * graphite-scop-detection.c: Same.
458 * graphite-sese-to-poly.c: Same.
459 * graphite.c: Same.
460 * graphite.h: Same.
461 * params.def: Same.
462 * testsuite/gcc.dg/graphite/fuse-1.c: Same.
463 * testsuite/gcc.dg/graphite/fuse-2.c: Same.
464 * testsuite/gcc.dg/graphite/interchange-1.c: Same.
465 * testsuite/gcc.dg/graphite/pr35356-1.c: Same.
466 * toplev.c: Same.
467
468 2015-12-17 Sebastian Pop <s.pop@samsung.com>
469
470 * graphite-dependences.c: Move all isl include files to...
471 * graphite-isl-ast-to-gimple.c: Same.
472 * graphite-optimize-isl.c: Same.
473 * graphite-poly.c: Same.
474 * graphite-scop-detection.c: Same.
475 * graphite.c: Same.
476 * graphite.h: ... here.
477
478 2015-12-17 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
479
480 * config/avr/avr.h (MOVE_MAX): Set value to 1.
481 (MOVE_MAX_PIECES): Define.
482 (MOVE_RATIO): Define.
483 * config/avr/avr.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P):
484 Provide target hook.
485 (avr_use_by_pieces_infrastructure_p): New function.
486
487 2015-12-17 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
488
489 * config.gcc: mark *-interix* as obsolete.
490
491 2015-12-17 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
492
493 * config.gcc: Mark openbsd 2.0 and 3.X as obsolete.
494
495 2015-12-17 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
496
497 * config.gcc: Mark knetbsd targets as obsolete.
498
499 2015-12-17 Nathan Sidwell <nathan@acm.org>
500
501 * config/nvptx/nvptx.h (NVPTX_RETURN_REGNUM, FRAME_POINTER_REGNUM,
502 ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Renumber.
503 (REGISTER_NAMES): Update and rename.
504 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
505 (enum_reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Reformat.
506
507 2015-12-17 Richard Biener <rguenther@suse.de>
508
509 PR tree-optimization/68946
510 * tree-vect-slp.c (vect_slp_analyze_node_operations): Push
511 SLP def type to stmt operands one stmt at a time.
512
513 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
514
515 * langhooks.h (struct lang_hooks_for_types): New get_bias_field.
516 * langhooks-def.h (LANG_HOOKS_GET_TYPE_BIAS): New.
517 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
518 get_bias_field.
519 * dwarf2out.c
520 (base_type_die): In non-strict DWARF mode, invoke the
521 get_type_bias language hook for INTEGER_TYPE nodes. If it
522 returns a bias, emit an attribute for it.
523 (subrange_type_die): Change signature to handle bias. If
524 non-strict DWARF mode, emit an attribute for it, if one passed.
525 (modified_type_die): For subrange types, invoke the
526 get_type_bias langage hook and pass the bias to
527 subrange_type_die.
528
529 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
530
531 * dwarf2out.h (DWARF2OUT_ARRAY_DESCR_INFO_MAX_DIMEN): New macro.
532 (struct array_descr_info): Use it for the dimensions array's
533 size.
534 * dwarf2out.c (gen_type_die_with_usage): Check that the array
535 descr. language hook does not return an array with more
536 dimensions that it should.
537
538 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
539
540 * langhooks.h (struct lang_hooks_for_types): Add a
541 get_fixed_point_type_info field.
542 * langhooks-def.h (LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO): New
543 macro.
544 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
545 get_fixed_point_type_info field.
546 * dwarf2out.h (enum fixed_point_scale_factor): New.
547 (struct fixed_point_type_info): New.
548 * dwarf2out.c (base_type_die): In DWARFv3 or non-strict DWARF
549 mode, get fixed-point type information using the debugging hook
550 and describe it in DWARF, if any.
551
552 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
553
554 * langhooks.h (struct lang_hooks_for_types): Add a
555 get_debug_type field.
556 * langhooks-def.h (LANG_HOOKS_GET_DEBUG_TYPE): New macro.
557 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
558 get_debug_type field.
559 * dwarf2out.h (struct array_descr_info): Add an array-wide
560 stride field.
561 * dwarf2out.c (modified_type_die): Invoke the get_debug_type
562 language hook, process its result instead, if any.
563 (gen_descr_array_type_die): Add array-wide stride processing.
564
565 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
566
567 * debug.h (struct gcc_debug_hooks): Add a new size_function
568 hook.
569 * debug.c (do_nothing_debug_hooks): Set the size_function field
570 to no-op.
571 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
572 * sdbout.c (sdb_debug_hooks): Likewise.
573 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
574 * stor-layout.c (finalize_size_functions): Let the debug info
575 back-end know about the implementation of size functions.
576 * dwarf2out.h (dw_discr_list_ref): New typedef.
577 (enum dw_val_class): Add value classes for discriminant values
578 and discriminant lists.
579 (struct dw_discr_value): New structure.
580 (struct dw_val_node): Add discriminant values and discriminant
581 lists to the union.
582 (struct dw_loc_descr_node): Add frame_offset_rel and
583 dw_loc_frame_offset (only for checking) fields to handle DWARF
584 procedures generation.
585 (struct dw_discr_list_node): New structure.
586 * dwarf2out.c (dwarf2out_size_function): New.
587 (dwarf2_debug_hooks): Set the size_function field to
588 dwarf2out_size_function.
589 (dwarf2_lineno_debug_hooks): Set the size_function field to
590 no-op.
591 (new_loc_descr): Initialize the
592 dw_loc_frame_offset field.
593 (dwarf_proc_stack_usage_map): New.
594 (dw_val_equal_p): Handle discriminants.
595 (size_of_discr_value): New.
596 (size_of_discr_list): New.
597 (size_of_die): Handle discriminants.
598 (add_loc_descr_to_each): New.
599 (add_loc_list): New.
600 (print_discr_value): New.
601 (print_dw_val): Handle discriminants.
602 (value_format): Handle discriminants.
603 (output_discr_value): New.
604 (output_die): Handle discriminants.
605 (output_loc_operands): Handle DW_OP_call2 and DW_OP_call4.
606 (uint_loc_descriptor): New.
607 (uint_comparison_loc_list): New.
608 (loc_list_from_uint_comparison): New.
609 (add_discr_value): New.
610 (add_discr_list): New.
611 (AT_discr_list): New.
612 (loc_descr_to_next_no_op): New.
613 (free_loc_descr): New.
614 (loc_descr_without_nops): New.
615 (struct loc_descr_context): Add a dpi field.
616 (struct dwarf_procedure_info): New helper structure.
617 (new_dwarf_proc_die): New.
618 (is_handled_procedure_type): New.
619 (resolve_args_picking_1): New.
620 (resolve_args_picking): New.
621 (function_to_dwarf_procedure): New.
622 (copy_dwarf_procedure): New.
623 (copy_dwarf_procs_ref_in_attrs): New.
624 (copy_dwarf_procs_ref_in_dies): New.
625 (break_out_comdat_types): Copy DWARF procedures along with the
626 types that reference them.
627 (loc_list_from_tree): Rename into loc_list_from_tree_1. Handle
628 CALL_EXPR in the cases suitable for DWARF procedures. Handle
629 for PARM_DECL when generating a location description for a DWARF
630 procedure. Handle big unsigned INTEGER_CST nodes. Handle
631 NON_LVALUE_EXPR, EXACT_DIV_EXPR and all unsigned comparison
632 operators. Add a wrapper for loc_list_from_tree that strips
633 DW_OP_nop operations from the result.
634 (type_byte_size): New.
635 (struct vlr_context): New helper structure.
636 (field_byte_offset): Change signature to return either a
637 constant offset or a location description for dynamic ones.
638 Handle dynamic byte offsets with constant bit offsets and handle
639 fields in variant parts.
640 (add_data_member_location): Change signature to handle dynamic
641 member offsets and fields in variant parts. Update call to
642 field_byte_offset. Handle location lists. Emit a variable data
643 member location only when -fgnat-encodings=minimal.
644 (add_bound_info): Emit self-referential bounds only when
645 -fgnat-encodings=minimal.
646 (add_byte_size_attribute): Use type_byte_size in order to handle
647 dynamic type sizes. Emit variable byte size only when
648 -fgnat-encodings=minimal and when the target DWARF version
649 allows them.
650 (add_bit_offset_attribute): Change signature to handle
651 variable-length records. Update call to field_byte_offset.
652 (gen_descr_array_type_die): Update call to gen_field_die.
653 Update loc_descr_context literal.
654 (gen_type_die_for_member): Likewise.
655 (gen_subprogram_die): Update calls to get_decl_die.
656 (gen_field_die): Change signature to handle variable-length
657 records. Update calls to add_bit_offset_attribute and
658 add_data_member_location_attribute.
659 (gen_inheritance_die): Update call to
660 add_data_member_location_attribute.
661 (gen_decl_die): Change signature to handle variable-length
662 records. Update call to gen_field_die.
663 (gen_inheritance_die): Change signature to handle
664 variable-length records. Update call to
665 add_data_member_location_attribute.
666 (is_variant_part): New.
667 (analyze_discr_in_predicate): New.
668 (get_discr_value): New.
669 (analyze_variants_discr): New.
670 (gen_variant_part): New.
671 (gen_member_die): Update calls to gen_decl_die. Call instead
672 gen_variant_part for variant parts.
673 (gen_type_die_with_usage): Update calls to gen_decl_die.
674 (process_scope_var): Likewise.
675 (force_decl_die): Likewise.
676 (declare_in_namespace): Likewise.
677 (dwarf2out_decl): Likewise.
678 (prune_unused_types_walk_loc_descr): New.
679 (prune_unused_types_walk_attribs): Mark DIEs referenced by
680 location descriptions and loc. descr. lists.
681 (prune_unused_types_walk): Don't mark DWARF procedures by
682 default. Mark variant parts since nothing is supposed to
683 reference them.
684 (dwarf2out_init): Allocate dwarf_proc_stack_usage_map.
685 (dwarf2out_c_finalize): Deallocate and reset
686 dwarf_proc_stack_usage_map.
687
688 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com>
689
690 * common.opt (gnat_encodings): New variable
691 (dwarf_gnat_encodings): New enum type.
692 (fgnat_encodings): New option.
693 * flag-types.h (enum dwarf_gnat_encodings): New.
694
695 2015-12-17 Christian Bruel <christian.bruel@st.com>
696
697 * tree.h (TYPE_MODE_RAW): New macro.
698 * tree-streamer-out.c (pack_ts_type_common_value_fields):
699 Replace TYPE_MODE by TYPE_MODE_RAW.
700
701 2015-12-17 Jakub Jelinek <jakub@redhat.com>
702
703 PR tree-optimization/68835
704 * tree.c (get_int_cst_ext_nunits): Return
705 cst.get_precision () / HOST_BITS_PER_WIDE_INT + 1
706 for all unsigned wi::neg_p (cst) constants.
707 (build_new_int_cst): If cst.get_precision is not a multiple
708 of HOST_BITS_PER_WIDE_INT, zero extend -1 to the precision
709 % HOST_BITS_PER_WIDE_INT.
710
711 2015-12-17 Richard Biener <rguenther@suse.de>
712
713 PR tree-optimization/68951
714 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
715 Ignore strided non-group accesses.
716
717 2015-12-17 Andrew Burgess <andrew.burgess@embecosm.com>
718
719 * config/arc/arc.c (arc_loop_hazard): Don't convert the jump label
720 rtx to an rtx_insn until we confirm it's not a return rtx.
721
722 2015-12-17 Richard Biener <rguenther@suse.de>
723
724 * gimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls
725 field.
726 * tree-ssa.c (delete_tree_ssa): Do not zero it.
727
728 2015-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
729
730 PR target/67973
731 * configure.ac (gcc_cv_as_stabs_directive): New test.
732 * configure: Regenerate.
733 * config.in: Regenerate.
734 * config/darwin.h (DBX_DEBUGGING_INFO): Wrap in
735 HAVE_AS_STABS_DIRECTIVE.
736 (PREFERRED_DEBUGGING_TYPE): Likewise.
737 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Only include
738 DBX_DEBUG if HAVE_AS_STABS_DIRECTIVE.
739
740 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
741 attributes): Document stabs.
742
743 2015-12-16 Martin Sebor <msebor@redhat.com>
744
745 PR c/68868
746 * ginclude/stdatomic.h (atomic_init): Use atomic_store instead
747 of plain assignment.
748
749 2015-12-15 Michael Meissner <meissner@linux.vnet.ibm.com>
750
751 PR target/68805
752 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use ROTATE
753 instead of VEC_SELECT for TImode.
754
755 * config/rs6000/vsx.md (VSX_LE): Move TImode from VSX_LE to
756 VSX_LE_128, so that we use ROTATE to swap the 64-bit words instead
757 of using VEC_SELECT.
758 (VSX_LE_128): Likewise.
759 (define_peephole2): Add peephole to eliminate double xxpermdi when
760 copying TImode.
761
762 2015-12-16 John David Anglin <danglin@gcc.gnu.org>
763
764 PR target/68779
765 * config/pa/pa.md (atomic_loaddi): Honor -mdisable-fpregs.
766 (atomic_loaddi_1): Likewise.
767 (atomic_storedi): Likewise.
768 (atomic_storedi_1): Likewise.
769 (atomic_loaddf): Likewise.
770 (atomic_loaddf_1): Likewise.
771 (atomic_storedf): Likewise.
772 (atomic_storedf_1): Likewise.
773 Move all atomic patterns to end of file.
774
775 2015-12-16 Abderrazek Zaafrani <a.zaafrani@samsung.com>
776
777 * graphite-isl-ast-to-gimple.c: Include isl/schedule_node.h.
778 (set_separate_option): New.
779 (translate_isl_ast_to_gimple::set_options_for_schedule_tree): New.
780 (translate_isl_ast_to_gimple::scop_to_isl_ast): Use scop->schedule.
781 * graphite-optimize-isl.c (optimize_isl): Set scop->schedule, do not
782 free the computed schedule tree.
783 * graphite-poly.c (new_scop): Initialize scop->schedule.
784 * graphite.h: Include isl/schedule.h.
785 (struct scop): Add field schedule.
786
787 2015-12-16 Nathan Sidwell <nathan@acm.org>
788
789 * ipa-visibility.c (can_replace_by_local_alias): Make static,
790 check ASM_OUTPUT_DEF.
791 (can_replace_by_local_alias_in_vtable): Make static.
792 (function_and_variable_visibility): Reformat overlong comment.
793
794 2015-12-16 Jeff Law <law@redhat.com>
795
796 * ree.c (add_removable_extension): Use reg_overlap_mentioned_p
797 rather than testing hard register #s.
798
799 2015-12-16 Nathan Sidwell <nathan@acm.org>
800
801 * config/nvptx/nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.
802 (REGISTER_NAMES): Adjust.
803 * config/nvptx/nvptx.c (nvptx_pass_by_reference): Avoid long line.
804 (nvptx_static_hain): Delete.
805 (write_arg_mode): Don't emit initializer if argno < 0.
806 (write_arg_type): Fix whitespace.
807 (init_frame): Initialize reg to zero if frame is zero-sized.
808 (nvptx_declare_function_name): Use write_arg_type to emit chain
809 decl.
810 (nvptx_output_call_insn): Adjust static chain emission.
811 (nvptx_goacc_reduction): Make static.
812 (TARGET_STATIC_CHAIN): Don't override.
813
814 2015-12-16 Aditya Kumar <aditya.k7@samsung.com>
815
816 * graphite-dependences.c (scop_get_dependences): Use local pointers.
817 * graphite-isl-ast-to-gimple.c
818 (translate_isl_ast_to_gimple::scop_to_isl_ast): Use scop->dependence.
819 * graphite-optimize-isl.c (optimize_isl): Same.
820 * graphite-poly.c (new_scop): Remove initialization of removed
821 members.
822 (free_scop): Same.
823 * graphite.h (struct scop): Remove individial dependence pointers and
824 add a scop::dependence to contain all the dependence.
825
826 2015-12-16 Aditya Kumar <aditya.k7@samsung.com>
827
828 * graphite-sese-to-poly.c (build_poly_sr): Use refs.
829
830 2015-12-16 Aditya Kumar <aditya.k7@samsung.com>
831 Sebastian Pop <s.pop@samsung.com>
832
833 * config.in: Regenerate.
834 * configure: Regenerate.
835 * configure.ac: Remove checks for functions that exist in isl 0.13
836 or later.
837 * graphite-isl-ast-to-gimple.c: Remove #ifdefs and code for isl 0.12.
838 * graphite-optimize-isl.c: Same.
839 * graphite-poly.c: Same.
840 * graphite-sese-to-poly.c: Same.
841 * graphite.h: Add comment for isl 0.14.
842 * toplev.c (print_version): Print isl version.
843
844 2015-12-10 Jan Hubicka <hubicka@ucw.cz>
845
846 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not
847 speculate to impossible targets.
848 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
849
850 2015-12-16 Aditya Kumar <aditya.k7@samsung.com>
851 Sebastian Pop <s.pop@samsung.com>
852
853 * graphite-dependences.c (scop_get_reads): Add more dumps.
854 (scop_get_must_writes): Same.
855 (scop_get_may_writes): Same.
856 * graphite-poly.c (new_poly_dr): Same.
857 * graphite-scop-detection.c (build_cross_bb_scalars_def): Same.
858 (gather_bbs::before_dom_children): Same.
859
860 2015-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
861
862 * config/aarch64/aarch64.c (aarch64_extend_bitfield_pattern_p):
863 New function.
864 (aarch64_rtx_costs, ZERO_EXTEND, SIGN_EXTEND cases): Use the above
865 to handle extend+shift rtxes.
866
867 2015-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
868
869 PR target/68696
870 * config/aarch64/aarch64-simd.md (*aarch64_simd_bsl<mode>_alt):
871 New pattern.
872 (aarch64_simd_bsl<mode>_internal): Update comment to reflect
873 the above.
874
875 2015-12-16 Richard Biener <rguenther@suse.de>
876
877 PR tree-optimization/68870
878 * tree-cfgcleanup.c (cleanup_control_expr_graph): Add first_p
879 parameter, if set only perform trivial constant folding.
880 Queue other blocks with conditions for later processing.
881 (cleanup_control_flow_bb): Add first_p parameter and pass it through.
882 (cleanup_tree_cfg_1): Pass true for the first iteration
883 cleanup_control_expr_graph.
884
885 2015-12-16 Nathan Sidwell <nathan@acm.org>
886
887 * config/nvptx/nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete.
888 * config/nvptx/nvptx.h (struct machine_function):
889 Reimplement. Adjust all users.
890 * config/nvptx/nvptx.c (nvptx_declare_function_name): Move stack
891 and frame array generation earlier.
892 (nvptx_call_args): Reimplement.
893 (nvptx_expand_call): Adjust.
894 (nvptx_hard_reno_mode_ok): Delete.
895 (nvptx_reorg): Revert scan of hard regs.
896
897 2015-12-16 Tom de Vries <tom@codesourcery.com>
898
899 * opts.c (default_options_optimization): Set fipa-pta on by
900 default for fopenacc.
901 * passes.def: Move kernels pass group to pass_ipa_oacc.
902 * tree-pass.h (make_pass_oacc_kernels2): Remove.
903 (make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): Declare.
904 * tree-ssa-loop.c (pass_oacc_kernels2, make_pass_oacc_kernels2):
905 Remove.
906 (pass_ipa_oacc, pass_ipa_oacc_kernels): New pass.
907 (make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): New function.
908 * tree-ssa-structalias.c (pass_ipa_pta::clone): New function.
909
910 2015-12-16 Richard Biener <rguenther@suse.de>
911
912 PR tree-optimization/68861
913 * tree-vect-slp.c (vect_build_slp_tree): Properly handle
914 duplicate stmts when applying swapping to stmts.
915
916 2015-12-16 Kirill Yukhin <kirill.yukhin@intel.com>
917
918 * config/i386/i386-c.c (ix86_target_macros_internal): Remove
919 duplicate check (__CLZERO__).
920
921 2015-12-16 Matthew Wahab <matthew.wahab@arm.com>
922
923 * config/arm/arm_neon.h (vqrdmlahq_lane_s16): New.
924 (vqrdmlahq_lane_s32): New.
925 (vqrdmlah_lane_s16): New.
926 (vqrdmlah_lane_s32): New.
927 (vqrdmlshq_lane_s16): New.
928 (vqrdmlshq_lane_s32): New.
929 (vqrdmlsh_lane_s16): New.
930 (vqrdmlsh_lane_s32): New.
931 * config/arm/arm_neon_builtins.def: Add "vqrdmlah_lane" and
932 "vqrdmlsh_lane".
933
934 2015-12-16 Matthew Wahab <matthew.wahab@arm.com>
935
936 * config/arm/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
937 (vqrdmlahq_s16, vqrdmlahq_s32): New.
938 (vqrdmlsh_s16, vqrdmlsh_s32): New.
939 (vqrdmlahq_s16, vqrdmlshq_s32): New.
940 * config/arm/arm_neon_builtins.def: Add "vqrdmlah" and "vqrdmlsh".
941
942 2015-12-16 Matthew Wahab <matthew.wahab@arm.com>
943
944 * doc/sourcebuild.texi (ARM-specific attributes): Add
945 "arm_v8_1a_neon_ok" and "arm_v8_1a_neon_hw".
946
947 2015-12-16 Matthew Wahab <matthew.wahab@arm.com>
948
949 * config/arm/arm-c.c (arm_cpu_builtins): Define
950 __ARM_FEATURE_QRDMX. Clean up some trailing whitespace.
951
952 2015-12-16 Matthew Wahab <matthew.wahab@arm.com>
953
954 * config/arm/iterators.md (VQRDMLH_AS): New.
955 (neon_rdma_as): New.
956 * config/arm/neon.md
957 (neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h<mode>): New.
958 (neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h_lane<mode>): New.
959 * config/arm/unspecs.md (UNSPEC_VQRDMLAH): New.
960 (UNSPEC_VQRDMLSH): New.
961
962 2015-12-16 Matthew Wahab <matthew.wahab@arm.com>
963
964 * config/arm/t-aprofile: Make "armv8.1-a" and "armv8.1-a+crc"
965 matches for "armv8-a".
966
967 2015-12-16 Matthew Wahab <matthew.wahab@arm.com>
968
969 * config/arm/arm-arches.def: Add "armv8.1-a" and "armv8.1-a+crc".
970 * config/arm/arm-protos.h (FL2_ARCH8_1): New.
971 (FL2_FOR_ARCH8_1A): New.
972 * config/arm/arm-tables.opt: Regenerate.
973 * config/arm/arm.c (arm_arch8_1): New.
974 (arm_option_override): Set arm_arch8_1.
975 * config/arm/arm.h (TARGET_NEON_RDMA): New.
976 (arm_arch8_1): Declare.
977 * doc/invoke.texi (ARM Options, -march): Add "armv8.1-a" and
978 "armv8.1-a+crc".
979 (ARM Options, -mfpu): Fix a typo.
980
981 2015-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
982
983 PR target/68648
984 * config/arm/arm.md (*andsi_iorsi3_notsi): Try to simplify
985 the complement of operands[3] during splitting.
986
987 2015-12-16 Richard Biener <rguenther@suse.de>
988
989 PR tree-optimization/68892
990 * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly compute
991 cost for permuted loads.
992
993 2015-12-16 Jakub Jelinek <jakub@redhat.com>
994
995 PR rtl-optimization/65980
996 * jump.c (rtx_renumbered_equal_p) <case LABEL_REF>: Use
997 next_nonnote_nondebug_insn instead of next_real_insn and
998 skip over CODE_LABELs too.
999
1000 2015-12-10 Jan Hubicka <hubicka@ucw.cz>
1001
1002 * symtab.c (symtab_node::fixup_same_cpp_alias_visibility):
1003 Do not copy DECL_VIRTUAL_P.
1004
1005 2015-12-15 Martin Sebor <msebor@redhat.com>
1006
1007 PR c++/42121
1008 * tree-chkp.c (chkp_find_bound_slots_1): Handle flexible array
1009 members.
1010 * tree.c (type_contains_placeholder_1): Avoid assuming type has
1011 a non-null domain or an upper bound to handle flexible array
1012 members.
1013 * varasm.c (output_constructor_regular_field): Same.
1014 (output_constructor): Set min_index to integer_zero_node rather
1015 than null when a type has no domain to avoid crashing later.
1016
1017 2015-12-15 Nathan Sidwell <nathan@acm.org>
1018
1019 * config/nvptx/nvptx.c (write_one_arg): Rename to ...
1020 (write_arg_mode): ... here. Update callers.
1021 (write_arg): Rename to ...
1022 (write__arg_type): ... here. Update callers.
1023 (write_return_mode): New fn, broken out of ...
1024 (write_return): ... here. Rename to ...
1025 (write_return_type): ... here. Call it. Update callers.
1026 (write_fn_proto_from_insn): Use write_arg_mode and
1027 write_return_mode.
1028 (init_frame): New fn.
1029 (nvptx_declare_function_name): Call it for frame and varargs. Only
1030 emit outgoing static chain, if it's live.
1031 (nvptx_output_return): Use reg_names for return reg name.
1032 (nvptx_output_call_insn): Likewise.
1033 (nvptx_reorg): Mark unused hard regs too.
1034
1035 2015-12-15 Nathan Sidwell <nathan@acm.org>
1036
1037 * config/nvptx/nvptx.md (nvptx_register_operand): Don't accept and
1038 then reject subregs.
1039 (nvptx_reg_or_mem_operand): Likewise.
1040 (nvptx_nonmemory_operand): Likewise.
1041 (call_insn_operand): A regular predicate, check SYMBOL_REF_FUNCTION_P.
1042 (call_insn, call_value_insn): Address is not SImode.
1043 * config/nvptx/nvptx.h (FIXED_REGISTERS): Make return reg fixed.
1044 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove
1045 RETURN_REG class.
1046 (REGNO_REG_CLASS): Alwaus ALL_REGS.
1047 (PROMOTE_MODE): QI and HI are the only smaller than SI int modes.
1048 (HARD_FRAME_POINTER_REGNUM): Delete.
1049 (REGISTER_NAMES): Move earlier.
1050 (struct nvptx_args): Remove 'off'.
1051 (INIT_CUMULATIVE_ARGS): Don't initialize 'off'.
1052 (ELIMINABLE_REGS): Remove HARD_FRAME_POINTER_REGNUM.
1053 * config/nvptx/nvptx.c (arg_promotion): Delete.
1054 (nvptx_expand_call): Remove check for funtype being an fntype.
1055
1056 2015-12-15 Jason Merrill <jason@redhat.com>
1057
1058 * hash-map.h, hash-table.h: Make copy constructors explicit.
1059
1060 2015-12-15 Ilya Verbin <ilya.verbin@intel.com>
1061
1062 * cgraphunit.c (output_in_order): Do not assemble "omp declare target
1063 link" variables in ACCEL_COMPILER.
1064 * gimplify.c (gimplify_adjust_omp_clauses): Do not remove mapping of
1065 "omp declare target link" variables.
1066 * omp-low.c (scan_sharing_clauses): Do not remove mapping of "omp
1067 declare target link" variables.
1068 (add_decls_addresses_to_decl_constructor): For "omp declare target
1069 link" variables output address of the artificial pointer instead
1070 of address of the variable. Set most significant bit of the size
1071 to mark them.
1072 (pass_data_omp_target_link): New pass_data.
1073 (pass_omp_target_link): New class.
1074 (find_link_var_op): New static function.
1075 (make_pass_omp_target_link): New function.
1076 * passes.def: Add pass_omp_target_link.
1077 * tree-pass.h (make_pass_omp_target_link): Declare.
1078 * varpool.c (symbol_table::output_variables): Do not assemble "omp
1079 declare target link" variables in ACCEL_COMPILER.
1080
1081 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
1082
1083 PR middle-end/21273
1084 * gensupport.c (collect_insn_data): Look for number of alternatives
1085 in MATCH_SCRATCH.
1086
1087 2015-12-15 Nathan Sidwell <nathan@acm.org>
1088
1089 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Reformat.
1090 (CANNOT_CHANGE_MODE_CLASS): Always return true.
1091 (HARD_REGNO_MODE_OK): Reformat.
1092 * config/nvptx/nvptx.md (define_expand mov<mode>): No
1093 RETURN_REGNUM handling here.
1094 * config/nvptx/nvptx.c (nvptx_function_value): Set ret_reg_mode
1095 here.
1096 (write_one_arg): No QI or HI mode args.
1097 (write_fn_proto_from_insn): No argument promotion here.
1098 (nvptx_output_return_insn): No return promotion here.
1099 (nvptx_output_mov_insn): No RETURN_REGNUM handling needed.
1100 (nvptx_output_call_insn): No return promotion here.
1101
1102 2015-12-15 Martin Jambor <mjambor@suse.cz>
1103
1104 PR ipa/68851
1105 * cgraph.c (collect_callers_of_node_1): Do not collect thunks.
1106 * cgraph.h (cgraph_node): Change comment of collect_callers.
1107
1108 2015-12-15 Jakub Jelinek <jakub@redhat.com>
1109
1110 PR tree-optimization/66688
1111 * tree-cfgcleanup.c (cleanup_control_flow_bb): Handle
1112 noreturn call followed only by debug stmts by removing
1113 the debug stmts and handling it the same as if the noreturn
1114 call is the last stmt.
1115
1116 2015-12-14 Steve Ellcey <sellcey@imgtec.com>
1117
1118 * config/mips/mips.c (mips_promote_function_mode): New function.
1119 (TARGET_PROMOTE_FUNCTION_MODE): Define as above function.
1120 (TARGET_PROMOTE_PROTOTYPES): Remove.
1121
1122 2015-12-14 Jason Merrill <jason@redhat.com>
1123
1124 PR c++/68309
1125 * hash-table.h: Add copy constructor.
1126 * hash-map.h: Add copy constructor.
1127
1128 2015-12-14 Tom de Vries <tom@codesourcery.com>
1129
1130 PR other/68882
1131 * gimple-pretty-print.c (dump_ssaname_info_to_file): New function.
1132 * gimple-pretty-print.h (dump_ssaname_info_to_file): Declare.
1133 * tree-cfg.c (dump_default_def): New function.
1134 (dump_function_to_file): Dump default defs for arguments, static chain,
1135 and decl-by-reference.
1136
1137 2015-12-14 Nathan Sidwell <nathan@acm.org>
1138
1139 * config/nvptx/nvptx.h (PARM_BOUNDARY): Set to 32.
1140 * config/nvptx/nvptx.c (PASS_IN_REG_P, RETURN_IN_REG_P): Delete.
1141 (pass_in_memory, promote_arg, promote_return): New.
1142 (nvptx_function_arg_boundary): Delete.
1143 (nvptx_function_value): Use promote_return.
1144 (nvptx_pass_by_reference): Use pass_in_memory.
1145 (nvptx_return_in_memory): Use pass_in_memory.
1146 (nvptx_promote_function_mode): Use promote_arg.
1147 (write_arg): Adjust arg splitting logic.
1148 (write_return): Check and clear ret_reg_mode, if needed.
1149 (write_fn_proto, nvptx_declare_function_name): Adust write_return
1150 calls.
1151 (TARGET_RUNCTION_ARG_BOUNDARY,
1152 TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Don't override.
1153
1154 2015-12-14 Jakub Jelinek <jakub@redhat.com>
1155
1156 PR c/68833
1157 * common.opt (Wmissing-noreturn): Add Warning option.
1158 * opts-common.c (control_warning_option): If opt is
1159 alias_target with alias_arg, set arg to it.
1160
1161 2015-12-14 Segher Boessenkool <segher@kernel.crashing.org>
1162
1163 PR target/68865
1164 PR target/68879
1165 * config/rs6000/rs6000.md (cstore_si_as_di): Force all operands
1166 into registers.
1167
1168 2015-12-14 Richard Biener <rguenther@suse.de>
1169
1170 Revert accidentially applied
1171 PR tree-optimization/68707
1172 PR tree-optimization/67323
1173 * tree-vect-slp.c (vect_analyze_slp_instance): Drop SLP instances
1174 if they can be vectorized using load/store-lane instructions.
1175
1176 2015-12-14 Richard Biener <rguenther@suse.de>
1177
1178 PR tree-optimization/68852
1179 * tree-vectorizer.h (struct _slp_tree): Add def_type member.
1180 (SLP_TREE_DEF_TYPE): New accessor.
1181 * tree-vect-stmts.c (vect_is_simple_use): Remove BB vectorization
1182 hack.
1183 * tree-vect-slp.c (vect_create_new_slp_node): Initialize
1184 SLP_TREE_DEF_TYPE.
1185 (vect_build_slp_tree): When a node is to be built up from scalars
1186 do not push a NULL as child but instead set its def_type to
1187 vect_external_def.
1188 (vect_analyze_slp_cost_1): Check for child def-type instead
1189 of NULL.
1190 (vect_detect_hybrid_slp_stmts): Likewise.
1191 (vect_bb_slp_scalar_cost): Likewise.
1192 (vect_get_slp_defs): Likewise.
1193 (vect_slp_analyze_node_operations): Likewise. Before
1194 processing node push the children def-types to the underlying
1195 stmts vinfo and restore it afterwards.
1196 (vect_schedule_slp_instance): Likewise.
1197 (vect_slp_analyze_bb_1): Do not mark stmts not in SLP instances
1198 as not vectorizable.
1199
1200 2015-12-14 Richard Biener <rguenther@suse.de>
1201
1202 PR tree-optimization/68775
1203 * tree-vect-slp.c (vect_build_slp_tree): Make sure to apply
1204 a operand swapping even if replacing the op with scalars.
1205
1206 2015-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1207
1208 * combine.c (change_zero_ext): Do not create a shift of zero length.
1209
1210 2015-12-14 Claudiu Zissulescu <claziss@synopsys.com>
1211
1212 * config/arc/arc.c (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P):
1213 Provide target hook.
1214 (arc_no_speculation_in_delay_slots_p): New function.
1215
1216 2015-12-14 Claudiu Zissulescu <claziss@synopsys.com>
1217 Andrew Burgess <andrew.burgess@embecosm.com>
1218
1219 * config/arc/arc.c (frame_move): Set frame related flag.
1220 (arc_save_restore): Emit epilogue related DWARF2 information.
1221 (arc_expand_epilogue): Likewise.
1222 * config/arc/arc.opt (mno-epilogue-cfi): Remove.
1223 (mepilogue-cfi): Likewise.
1224 * doc/invoke.texi: Remove -m[no]-epilogue-cfi documentation.
1225
1226 2015-12-14 Martin Jambor <mjambor@suse.cz>
1227
1228 PR ipa/66616
1229 * ipa-cp.c (propagate_constants_accross_call): Move thuk check...
1230 (call_passes_through_thunk_p): ...here.
1231 (find_more_scalar_values_for_callers_subset): Perform thunk checks
1232 like propagate_constants_accross_call does.
1233
1234 2015-12-14 Jakub Jelinek <jakub@redhat.com>
1235
1236 PR rtl-optimization/68730
1237 * cfgrtl.c (cfg_layout_finalize): Free dominators.
1238
1239 2015-12-13 Alexandre Oliva <aoliva@redhat.com>
1240
1241 PR debug/67355
1242 * var-tracking.c (reverse_op): Don't add dummy zero to reverse
1243 ops that simplify back to the original value.
1244 * alias.c (refs_newer_value_p): Cut off recursion for
1245 expressions containing the original value.
1246
1247 2015-12-13 Kazu Kirata <kazu@gcc.gnu.org>
1248
1249 * config/m68k/m68k.md (load feeding clear byte): New peephole2.
1250
1251 2015-12-13 Tom de Vries <tom@codesourcery.com>
1252
1253 * tree-ssa-structalias.c (find_func_clobbers): Handle sizes and kinds
1254 parameters of GOACC_paralllel.
1255
1256 2015-12-10 Jan Hubicka <hubicka@ucw.cz>
1257
1258 * cgraph.c (cgraph_node::get_untransformed_body): Pass compressed
1259 flag to lto_get_section_data.
1260 * varpool.c (varpool_node::get_constructor): Likewise.
1261 * lto-section-in.c (lto_get_section_data): Add new flag decompress.
1262 (lto_free_section_data): Likewise.
1263 (lto_get_raw_section_data): New function.
1264 (lto_free_raw_section_data): New function.
1265 (copy_function_or_variable): Copy sections w/o decompressing.
1266 (lto_output_decl_state_refs): Picke compressed bit.
1267 * lto-streamer.h (lto_in_decl_state): New flag compressed.
1268 (lto_out_decl_state): Likewise.
1269 (lto_get_section_data, lto_free_section_data): Update prototypes
1270 (lto_get_raw_section_data, lto_free_raw_section_data): Declare.
1271 (lto_write_raw_data): Declare.
1272 (lto_begin_section): Remove FIXME.
1273 (lto_write_raw_data): New function.
1274 (lto_write_stream): Remove FIXME.
1275 (lto_new_out_decl_state): Set compressed flag.
1276
1277 2015-12-10 Jan Hubicka <hubicka@ucw.cz>
1278
1279 * tree.c (free_lang_data_in_type, find_decls_types_r): Also free
1280 unnecesary type decls.
1281 * tree.h (is_redundant_typedef): Declare.
1282 * dwarf2out.c (is_redundant_typedef): Export; booleanize
1283
1284 2015-12-12 Eric Botcazou <ebotcazou@adacore.com>
1285
1286 * config/sparc/sparc.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
1287 * config/sparc/sparc.c (sparc_emit_set_const64): Remove code
1288 conditionalized on HOST_BITS_PER_WIDE_INT == 32.
1289 (sparc_cannot_force_const_mem) <CONST_WIDE_INT>: New case.
1290 <CONST_DOUBLE>: Remove VOIDmode test.
1291 (epilogue_renumber) <CONST_WIDE_INT>: New case.
1292 (sparc_print_operand): Remove support for CONST_DOUBLE with VOIDmode.
1293 (sparc_assemble_integer): Likewise.
1294 (set_extends): Likewise.
1295 (sparc_rtx_costs) <CONST_INT>: Use SMALL_INT.
1296 <CONST_WIDE_INT>: New case.
1297 <CONST_DOUBLE>: Remove support for VOIDmode.
1298 <MULT>: Remove support for CONST_DOUBLE with VOIDmode.
1299 * config/sparc/predicates.md (const_zero_operand): Add const_wide_int.
1300 (const_all_ones_operand): Likewise.
1301 (uns_small_int_operand): Remove const_double and code conditionalized
1302 on HOST_BITS_PER_WIDE_INT == 32.
1303 (arith_double_operand): Likewise.
1304 (arith_double_add_operand): Likewise.
1305 (input_operand): Remove support for CONST_DOUBLE with DImode.
1306 * config/sparc/sparc.md (DImode CONST_INT splitter): Remove code
1307 conditionalized on HOST_BITS_PER_WIDE_INT == 32.
1308 (DFmode CONST_DOUBLE splitter): Likewise.
1309 (*adddi3_insn_sp32): Likewise.
1310 (*subdi3_insn_sp32): Likewise.
1311 (DImode logical splitter): Likewise.
1312 (DImode CONST_DOUBLE splitter): Delete.
1313
1314 2015-12-12 Paolo Bonzini <bonzini@gnu.org>
1315
1316 PR sanitizer/68418
1317 * c-family/c-ubsan.c (ubsan_instrument_shift): Disable
1318 sanitization of left shifts for wrapping signed types as well.
1319
1320 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
1321
1322 PR middle-end/68215
1323 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
1324 Do not gimplify the result.
1325 (do_unop): Adjust call to tree_vec_extract.
1326 (do_binop): Likewise.
1327 (do_compare): Likewise.
1328 (do_plus_minus): Likewise.
1329 (do_negate): Likewise.
1330 (expand_vector_condition): Likewise.
1331 (do_cond): Likewise.
1332
1333 2015-12-11 Nathan Sidwell <nathan@acm.org>
1334
1335 * config/nvptx/nvptx.h (RETURN_ADDR_REGNO): Delete.
1336 (OUTGOING_ARG_POINTER_REGNUM): Delete.
1337 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
1338 (REGISTER_NAMES): Name static chain regs.
1339 * config/nvptx/nvptx.c (nvptx_function_arg): Add ARG_UNUSED, merge
1340 ifs.
1341 (nvptx_incoming_arg): Merge ifs.
1342 (nvptx_function_arg_boundary): Reimplement to avoid mixing units.
1343 (nvptx_function_value): Tail call nvptx_libcall_value.
1344 (nvptx_pass_by_reference): Add ARG_UNUSED.
1345 (nvptx_static_chain): Use conditional op.
1346 (nvptx_handle_kernel_attribute): Use VOID_TYPE_P.
1347
1348 2015-12-11 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1349 Dominique d'Humieres <dominiq@lps.ens.fr>
1350
1351 PR target/26427
1352 PR target/33120
1353 PR testsuite/35710
1354 * config/darwin.c (darwin_use_anchors_for_symbol_p): Fix indention and
1355 trailing whitespace.
1356
1357 2015-12-11 Jan Beulich <jbeulich@suse.com>
1358
1359 * cfgexpand.c (expand_one_var): Exit early for static and
1360 external variables when adjusting stack alignment related.
1361
1362 2015-12-11 Dominik Vogt <vogt@linux.vnet.ibm.com>
1363
1364 * config/s390/s390.c (s390_rtx_costs)
1365 (s390_cannot_force_const_mem, legitimate_pic_operand_p)
1366 (s390_preferred_reload_class, s390_reload_symref_address)
1367 (legitimate_reload_constant_p, print_operand): Wide int support.
1368 * config/s390/predicates.md ("const0_operand", "constm1_operand")
1369 ("consttable_operand"): Likewise.
1370 ("larl_operand"): Add a comment.
1371 * config/s390/s390.h (TARGET_SUPPORTS_WIDE_INT): Enable wide int
1372 support.
1373
1374 2015-12-11 Nathan Sidwell <nathan@acm.org>
1375
1376 * config/nvptx/nvptx.h (TARGET_SUPPORTS_WIDE_INT): Define.
1377 * config/nvptx/nvptx.c (nvptxx_assemble_integer): Return false for
1378 unrecognizable RTX.
1379
1380 2015-12-11 Tom de Vries <tom@codesourcery.com>
1381
1382 * passes.def: Remove unpaired TERMINATE_PASS_LIST.
1383
1384 2015-12-11 Michael Matz <matz@suse.de>
1385
1386 * hash-map.h (hash_map::hash_map): Gather statistics only
1387 when GATHER_STATISTICS is true.
1388 * hash-set.h (hash_set::hash_set): Ditto.
1389 * hash-table.h (hash_table::hash_table): Ditto.
1390 (hash_table::create_ggc): Ditto.
1391
1392 2015-12-11 Martin Jambor <mjambor@suse.cz>
1393
1394 PR ipa/68064
1395 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Add checking
1396 assert that align is nonzero.
1397
1398 2015-12-11 Dominik Vogt <vogt@linux.vnet.ibm.com>
1399
1400 * config/s390/s390.c (s390_expand_setmem): Use new expanders.
1401 * config/s390/s390.md ("*setmem_long")
1402 ("*setmem_long_and", "*setmem_long_31z"): Fix warnings.
1403 ("*setmem_long_and_31z"): New define_insn.
1404 ("setmem_long_<P:mode>"): New expanders.
1405 * (<modesize>): New mode attribute
1406
1407 2015-12-11 Dominik Vogt <vogt@linux.vnet.ibm.com>
1408
1409 * config/s390/s390.md ("movstr", "*movstr"): Fix warning.
1410 ("movstr<P:mode>"): New indirect expanders used by "movstr".
1411
1412 2015-12-11 Martin Liska <mliska@suse.cz>
1413 Uros Bizjak <ubizjak@gmail.com>
1414
1415 PR target/67484
1416 * config/i386/i386.c (ix86_valid_target_attribute_tree):
1417 Use ggc_strdup to copy option_strings to opts->x_ix86_arch_string and
1418 opts->x_ix86_tune_string.
1419
1420 2015-12-11 Richard Biener <rguenther@suse.de>
1421
1422 * lto-streamer.h (lto_simple_header_with_strings): Remove
1423 main_size field already in lto_simple_header.
1424
1425 2015-12-11 Ilya Enkovich <enkovich.gnu@gmail.com>
1426
1427 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
1428 mask vectype.
1429
1430 2015-12-11 Ilya Enkovich <enkovich.gnu@gmail.com>
1431
1432 * config/i386/i386.c (ix86_get_mask_mode): Use scalar
1433 modes for 32 and 16 byte boolean vectors when possible.
1434
1435 2015-12-11 Segher Boessenkool <segher@kernel.crashing.org>
1436
1437 PR rtl-optimization/67778
1438 PR rtl-optimization/68634
1439 * shrink-wrap.c (try_shrink_wrapping): Add a comment about why we want
1440 to put the prologue earlier. When determining if an earlier block is
1441 suitable, make sure it dominates every block reachable from it.
1442
1443 2015-12-11 Segher Boessenkool <segher@kernel.crashing.org>
1444
1445 PR rtl-optimization/68814
1446 * rtlanal.c (set_noop_p): Use BITS_BIG_ENDIAN instead of
1447 BYTES_BIG_ENDIAN.
1448
1449 2015-12-10 Nathan Sidwell <nathan@acm.org>
1450
1451 * config/nvptx/nvptx.c (nvptx_function_arg,
1452 nvptx_function_incoming_arg, nvptx_function_arg_advance,
1453 nvptx_strict_argument_naming, nvptx_function_arg_boundary,
1454 nvptx_libcall_value, nvptx_function_value,
1455 nvptx_function_value_regno_p, nvptx_pass_by_reference,
1456 nvptx_return_in_memory, nvptx_promote_function_mode,
1457 nvptx_static_chain): Move earlier.
1458 (write_one_arg): Break out as helper fn for ...
1459 (write_arg): ... this new function. Adjust all callers.
1460
1461 2015-12-10 Jan Hubicka <hubicka@ucw.cz>
1462
1463 * lto-streamer-out.c (wrap_refs): Only wrap public decls.
1464
1465 2015-12-10 Jan Hubicka <hubicka@ucw.cz>
1466
1467 * ipa-cp.c (ipcp_cloning_candidate_p): Use node->optimize_for_size_p.
1468 (good_cloning_opportunity_p): Likewise.
1469 (gather_context_independent_values): Do not return true when
1470 polymorphic call context is known or when we have known aggregate
1471 value of unused parameter.
1472 (estimate_local_effects): Try to create clone for all context
1473 when either some params are substituted or devirtualization is possible
1474 or some params can be removed; use local flag instead of
1475 node->will_be_removed_from_program_if_no_direct_calls_p.
1476 (identify_dead_nodes): Likewise.
1477
1478 2015-12-10 David Malcolm <dmalcolm@redhat.com>
1479
1480 * doc/invoke.texi (-Wall): Add -Wmisleading-indentation to the
1481 list.
1482 (-Wmisleading-indentation): Update documentation to reflect
1483 being enabled by -Wall in C/C++.
1484
1485 2015-12-10 Vladimir Makarov <vmakarov@redhat.com>
1486
1487 PR rtl-optimization/68691
1488 * lra-spills.c (lra_final_code_change): Check pseudo occurrence
1489 number in non-debug insns and remove debug insns if necessary.
1490
1491 2015-12-10 Martin Sebor <msebor@redhat.com>
1492
1493 * invoke.texi (Warning Options): Update -Wall options. Clarify
1494 when some -Wextra options are enabled. Add -Wplacement-new example.
1495
1496 2015-12-10 Uros Bizjak <ubizjak@gmail.com>
1497
1498 * graphite-scop-detection.c (gather_bbs::before_dom_children):
1499 Change return type to an edge. Always return NULL.
1500
1501 2015-12-10 Jeff Law <law@redhat.com>
1502
1503 PR tree-optimization/68619
1504 * tree-ssa-dom.c (dom_opt_dom_walker::before_dom_children): Propgate
1505 return value from optimize_stmt.
1506 (dom_opt_dom_walker): Add new argument to dom_walker constructor.
1507 (pass_dominator:execute): If a block has an unreachable edge,
1508 remove all jump threads through any successor of the affected block.
1509 (record_equivalences_from_phis): Ignore alternative if the edge
1510 does not have EDGE_EXECUTABLE set.
1511 (single_incoming_edge_ignoring_loop_edges): Similarly.
1512 (optimize_stmt): If a gimple_code has a compile-time constant
1513 condition, return the edge taken for that constant value. Also
1514 change the condition to true/false as necessary.
1515 * domwalk.h (dom_walker::dom_walker): Add new argument
1516 skip_unreachable_blocks. Don't provide empty constructor body.
1517 (dom_walker::before_dom_children): Change return type.
1518 (dom_walker::bb_reachable): Declare new private method.
1519 (dom_walker::propagate_unreachable_to_edges): Likewise.
1520 (dom_walker::m_unreachable_dom): Declare new private data member.
1521 (dom_walker::m_skip_unreachable_blocks): Likewise.
1522 * domwalk.c: Include dumpfile.h.
1523 (dom_walker::dom_walker): New constructor. Initialize private data
1524 members. If needed, set EDGE_EXECUTABLE for all edges in the CFG,
1525 extracted from tree-ssa-sccvn.c.
1526 (dom_walker::bb_reachable): New method extracted from tree-ssa-sccvn.c
1527 (dom_walker::propagate_unreachable_to_edges): Likewise.
1528 (dom_walker::walk): Only call before_dom_children on reachable
1529 blocks. If before_dom_children returns an edge, then clear
1530 EDGE_EXECUTABLE for all other outgoing edges from the same block.
1531 For unreachable blocks, call propagate_unreachable_to_edges.
1532 Similarly, only call after_dom_children on reachable blocks. For
1533 unreachable blocks, conditionally clear m_unreachable_dom.
1534 * tree-ssa-sccvn.c (sccvn_dom_walker::unreachable_dom): Remove
1535 private data member.
1536 (sccvn_dom_walker::after_dom_children): Use methods from dom_walker
1537 class.
1538 (run_scc_vn): Likewise.
1539 (sccvn_dom_walker::before_dom_children): Likewise. Return the taken
1540 outgoing edge if a COND, SWITCH, or GOTO are optimized.
1541 * compare-elim.c (find_comparison_dom_walker::before_dom_children):
1542 Change return type to an edge. Always return NULL.
1543 * fwprop.c (single_def_use_dom_walker::before_dom_children): Likewise.
1544 * gimple-ssa-strength-reduction.c
1545 (find_candidates_dom_walker::before_dom_children): Likewise.
1546 * ipa-prop.c (analysis_dom_walker::before_dom_children): Likewise.
1547 (ipcp_modif_dom_walker::before_dom_children): Likewise.
1548 * tree-into-ssa.c (rewrite_dom_walker::before_dom_children): Likewise.
1549 (rewrite_update_dom_walker::before_dom_children): Likewise.
1550 (mark_def_dom_children::before_dom_children): Likewise.
1551 * tree-ssa-dse.c (dse_dom_walker::before_dom_children): Likewise.
1552 * tree-ssa-loop-im.c
1553 (invariantness_dom_walker::before_dom_children): Likewise.
1554 (move_computations_dom_walker::before_dom_walker): Likewise.
1555 * tree-ssa-phiopt.c
1556 (nontrapping_dom_walker::before_dom_children): Likewise.
1557 * tree-ssa-pre.c
1558 (eliminate_dom_walker::before_dom_children): Likewise.
1559 * tree-ssa-propagate.c
1560 (substitute_and_fold_dom_walker::before_dom_children): Likewise.
1561 * tree-ssa-strlen.c
1562 (strlen_dom_walker::before_dom_children): Likewise.
1563 * tree-ssa-uncprop.c
1564 (uncprop_dom_walker::before_dom_children): Likewise.
1565
1566 2015-12-10 Jakub Jelinek <jakub@redhat.com>
1567
1568 PR rtl-optimization/68376
1569 PR rtl-optimization/68670
1570 * ifcvt.c (noce_try_abs): For one_cmpl allow < 0, >= 0
1571 or > -1 conditions regardless of negate, and disallow
1572 all other conditions.
1573
1574 2015-12-10 Ilya Enkovich <enkovich.gnu@gmail.com>
1575
1576 * tree-chkp.c (chkp_call_returns_bounds_p): Return true
1577 for VA_ARG call.
1578 (chkp_fixup_inlined_call): New.
1579 * tree-chkp.h (chkp_fixup_inlined_call): New.
1580 * tree-stdarg.c: Include tree-chkp.h.
1581 (expand_ifn_va_arg_1): Fixup bndret calls for removed
1582 VA_ARG calls.
1583
1584 2015-12-10 Martin Jambor <mjambor@suse.cz>
1585
1586 * tree-inline.c (duplicate_remap_omp_clause_seq): New function.
1587 (replace_locals_op): Duplicate gimple sequences in OMP clauses.
1588
1589 2015-12-10 David Malcolm <dmalcolm@redhat.com>
1590
1591 * graphite-optimize-isl.c (scop_get_domains): Fix indentation.
1592
1593 2015-12-10 David Malcolm <dmalcolm@redhat.com>
1594
1595 * ifcvt.c (noce_try_inverse_constants): Fix indentation.
1596
1597 2015-12-10 David Malcolm <dmalcolm@redhat.com>
1598
1599 * regrename.c (scan_rtx_address): Fix indentation.
1600
1601 2015-12-10 David Malcolm <dmalcolm@redhat.com>
1602
1603 * function.c (locate_and_pad_parm): Fix indentation.
1604
1605 2015-12-10 Richard Biener <rguenther@suse.de>
1606
1607 * tree-ssa-structalias.c (struct variable_info): Add
1608 is_ipa_escape_point flag.
1609 (new_var_info): Initialize to false.
1610 (find_func_aliases): Generate escape constraints for stores
1611 properly in IPA mode.
1612 (ipa_pta_execute): Compute is_ipa_escape_point for globals.
1613
1614 2015-12-10 Claudiu Zissulescu <claziss@synopsys.com>
1615
1616 * config/arc/atomic.md: Add new file.
1617
1618 2015-12-10 Claudiu Zissulescu <claziss@synopsys.com>
1619
1620 * config/arc/arc-protos.h (arc_expand_atomic_op): Prototype.
1621 (arc_split_compare_and_swap): Likewise.
1622 (arc_expand_compare_and_swap): Likewise.
1623 * config/arc/arc.c (arc_init): Check usage atomic option.
1624 (arc_pre_atomic_barrier): New function.
1625 (arc_post_atomic_barrier): Likewise.
1626 (emit_unlikely_jump): Likewise.
1627 (arc_expand_compare_and_swap_qh): Likewise.
1628 (arc_expand_compare_and_swap): Likewise.
1629 (arc_split_compare_and_swap): Likewise.
1630 (arc_expand_atomic_op): Likewise.
1631 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): New C macro.
1632 (ASM_SPEC): Enable mlock option when matomic is used.
1633 * config/arc/arc.md (UNSPEC_ARC_MEMBAR): Define.
1634 (VUNSPEC_ARC_CAS): Likewise.
1635 (VUNSPEC_ARC_LL): Likewise.
1636 (VUNSPEC_ARC_SC): Likewise.
1637 (VUNSPEC_ARC_EX): Likewise.
1638 * config/arc/arc.opt (matomic): New option.
1639 * config/arc/constraints.md (ATO): New constraint.
1640 * config/arc/predicates.md (mem_noofs_operand): New predicate.
1641 * doc/invoke.texi: Document -matomic.
1642 * config/arc/atomic.md: New file.
1643
1644 2015-12-10 Richard Biener <rguenther@suse.de>
1645
1646 PR tree-optimization/68817
1647 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Detect
1648 gaps early.
1649
1650 2015-12-10 Ilya Enkovich <enkovich.gnu@gmail.com>
1651
1652 * tree-vect-stmts.c (vectorizable_assignment): Support
1653 useless boolean conversion.
1654
1655 2015-12-10 Alan Lawrence <alan.lawrence@arm.com>
1656
1657 * doc/install.texi: Add note against GNAT 4.8 on ARM targets.
1658
1659 2015-12-10 Jakub Jelinek <jakub@redhat.com>
1660
1661 PR tree-optimization/68785
1662 * gimple-fold.c (fold_ctor_reference): Pass return value from
1663 native_encode_expr to native_interpret_expr.
1664 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise.
1665
1666 2015-12-10 Richard Biener <rguenther@suse.de>
1667
1668 PR ipa/68331
1669 * tree-ssa-structalias.c (set_uids_in_ptset): Add fndecl
1670 parameter and make vars_contains_nonlocal properly have
1671 function-scope semantics in IPA mode.
1672 (find_what_var_points_to): Add fndecl parameter.
1673 (find_what_p_points_to): Likewise.
1674 (pt_solution_includes_global): Remove IPA PTA early out.
1675 (compute_points_to_sets): Adjust.
1676 (ipa_pta_execute): Likewise. Clear final_solutions after
1677 each function.
1678
1679 2015-12-10 Tom de Vries <tom@codesourcery.com>
1680
1681 PR ada/65102
1682 * doc/include/fdl.texi: Add nodefaultgnufreedocumentationlicensenode
1683 ifdef to allow disabling default @node GNU Free Documentation License.
1684
1685 2015-12-10 Richard Biener <rguenther@suse.de>
1686
1687 * tree-ssa-structalias.c (create_function_info_for): Add missing
1688 constraint from nonlocal for DECL_RESULT.
1689
1690 2015-12-10 Richard Biener <rguenther@suse.de>
1691
1692 * tree-if-conv.c: Include params.h.
1693 (ifcvt_memrefs_wont_trap): Use PARAM_ALLOW_STORE_DATA_RACES
1694 instead of flag_tree_loop_if_convert_stores to guard cases
1695 we'd introduce store-data-races.
1696
1697 2015-12-10 Richard Biener <rguenther@suse.de>
1698
1699 PR ipa/68721
1700 * ipa-split.c (split_function): Record return value properly
1701 when the split part doesn't set it.
1702
1703 2015-12-10 Richard Biener <rguenther@suse.de>
1704
1705 PR tree-optimization/68806
1706 * tree-vect-loop.c (vect_analyze_loop_2): Properly detect
1707 reduction chains and ignore SLP reductions.
1708
1709 2015-12-10 Richard Biener <rguenther@suse.de>
1710
1711 * tree-if-conv.c (if_convertible_loop_p_1): Do not compute
1712 dependences.
1713 (if_convertible_loop_p): Adjust.
1714
1715 2015-12-10 Tom de Vries <tom@codesourcery.com>
1716
1717 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Remove
1718 invalid assert.
1719
1720 2015-12-10 Martin Liska <mliska@suse.cz>
1721
1722 * tree-vect-data-refs.c: Free an overwritten dataref.
1723
1724 2015-12-09 John David Anglin <danglin@gcc.gnu.org>
1725
1726 PR target/68729
1727 * config/pa/pa.c (pa_emit_move_sequence): Don't check that mode is
1728 consistent with modes of the input and output operands when doing
1729 reloads to and from floating point registers. Do reload for all
1730 address forms.
1731
1732 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
1733
1734 PR ipa/61886
1735 PR middle-end/25140
1736 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use compare_base_decls
1737 (nonoverlapping_component_refs_of_decl_p): Update sanity check.
1738 (decl_refs_may_alias_p): Use compare_base_decls.
1739 * alias.c: Include cgraph.h
1740 (get_alias_set): Add cut-off for recursion.
1741 (rtx_equal_for_memref_p): Use rtx_equal_for_memref_p.
1742 (compare_base_decls): New function.
1743 (base_alias_check): Likewise.
1744 (memrefs_conflict_p): Likewise.
1745 (nonoverlapping_memrefs_p): Likewise.
1746 * alias.h (compare_base_decls): Declare.
1747
1748 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
1749
1750 PR ipa/61886
1751 * ipa-visibility.c (function_and_variable_visibility): Fix vtable
1752 rewritting guard.
1753
1754 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
1755
1756 PR ipa/61886
1757 PR middle-end/25140
1758 * ipa-reference.c (ipa_reference_get_not_read_global,
1759 ipa_reference_get_not_read_global): Fix WRT aliases.
1760 (is_improper): Break out from ...
1761 (is_proper_for_analysis): ... here; fix WRT aliases.
1762 (analyze_function, generate_summary,
1763 ipa_reference_write_optimization_summary,
1764 ipa_reference_read_optimization_summary): Use ipa_reference_var_uid.
1765 * ipa-refrence.h (ipa_reference_var_uid): New inline.
1766 * tree-ssa-alias.c: Revert my accidental previous commit.
1767 (ref_maybe_used_by_call_p_1,
1768 call_may_clobber_ref_p_1): Use ipa_reference_var_uid.
1769
1770 2015-12-09 Andreas Tobler <andreast@gcc.gnu.org>
1771
1772 * config/rs6000/freebsd64.h: Remove the redefinition of WCHAR_TYPE.
1773
1774 2015-12-09 Aditya Kumar <aditya.k7@samsung.com>
1775 Sebastian Pop <s.pop@samsung.com>
1776
1777 * graphite-optimize-isl.c: Include isl/ast_build.h
1778 (optimize_isl): Set several isl_options_set_* options.
1779
1780 2015-12-09 Aditya Kumar <aditya.k7@samsung.com>
1781 Sebastian Pop <s.pop@samsung.com>
1782
1783 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Iterate in
1784 the same order as adding data reference access functions.
1785
1786 2015-12-09 Aditya Kumar <aditya.k7@samsung.com>
1787 Sebastian Pop <s.pop@samsung.com>
1788
1789 * graphite-optimize-isl.c (optimize_isl): Improve dump message.
1790
1791 2015-12-09 Marek Polacek <polacek@redhat.com>
1792
1793 PR tree-optimization/66949
1794 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Don't call
1795 single_non_singleton_phi_for_edges to get the PHI from
1796 factor_out_conditional_conversion. Use NULL_TREE instead of NULL.
1797 (factor_out_conditional_conversion): Adjust declaration. Make it
1798 return the newly-created PHI.
1799
1800 2015-12-09 James Greenhalgh <james.greenhalgh@arm.com>
1801
1802 * config/aarch64/aarch64-protos.h
1803 (aarch64_cannot_change_mode_class): Bring back.
1804 * config/aarch64/aarch64.c
1805 (aarch64_cannot_change_mode_class): Likewise.
1806 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Likewise.
1807 * config/aarch64/aarch64.md (aarch64_movdi_<mode>low): Use
1808 zero_extract rather than truncate.
1809 (aarch64_movdi_<mode>high): Likewise.
1810
1811 2015-12-09 Jakub Jelinek <jakub@redhat.com>
1812
1813 PR tree-optimization/68786
1814 * tree-if-conv.c: Include builtins.h.
1815 (predicate_mem_writes): Put result of get_object_alignment (ref)
1816 into second argument's value.
1817 * tree-vect-stmts.c (vectorizable_mask_load_store): Put minimum
1818 pointer alignment into second argument's value.
1819 * tree-data-ref.c (get_references_in_stmt): Use value of second
1820 argument for build_aligned_type, and only the type to build
1821 a zero second argument for MEM_REF.
1822 * internal-fn.c (expand_mask_load_optab_fn,
1823 expand_mask_store_optab_fn): Likewise.
1824
1825 2015-12-09 Richard Biener <rguenther@suse.de>
1826
1827 PR tree-optimization/68583
1828 * tree-if-conv.c (if_convertible_phi_p): Drop
1829 flag_tree_loop_if_convert_stores check in favor of the
1830 existing any_mask_load_store check.
1831 (insert_gimplified_predicates): Likewise.
1832 (combine_blocks): Likewise.
1833 (tree_if_conversion): Likewise.
1834 (ifcvt_memrefs_wont_trap): Properly check
1835 flag_tree_loop_if_convert_stores in all places that can end
1836 up introducing store-data-races.
1837 (if_convertible_gimple_assign_stmt_p): Remove restriction
1838 on flag_tree_loop_if_convert_stores for stores we can if-convert
1839 without introducing store-data-races. Force versioning for
1840 all if-converted stores.
1841
1842 2015-12-09 Tom de Vries <tom@codesourcery.com>
1843
1844 PR tree-optimization/68716
1845 * tree-ssa-structalias.c (find_func_clobbers): Fix handling of
1846 BUILT_IN_GOMP_PARALLEL and BUILT_IN_GOACC_PARALLEL.
1847
1848 2015-12-09 Martin Liska <mliska@suse.cz>
1849
1850 * hash-traits.h (struct typed_delete_remove): New function.
1851 (typed_delete_remove ::remove): Likewise.
1852 * tree-ssa-loop-ivopts.c (struct iv_common_cand): Replace
1853 auto_vec with vec.
1854 (record_common_cand): Replace XNEW with operator new.
1855
1856 2015-12-09 Martin Liska <mliska@suse.cz>
1857
1858 * tree-if-conv.c (ifcvt_local_dce): Replace vec with auto_vec.
1859
1860 2015-12-09 Martin Liska <mliska@suse.cz>
1861
1862 PR ipa/68790
1863 * ipa-icf.c (sem_function::param_used_p): Return true
1864 if ipa_node_params_sum equals to NULL.
1865
1866 2015-12-09 Richard Biener <rguenther@suse.de>
1867
1868 PR tree-optimization/68583
1869 * tree-if-conv.c (ifc_dr): Make flags bool, add w_unconditionally
1870 flag and rename predicates to w_predicate, rw_predicate and
1871 base_w_predicate.
1872 (DR_WRITTEN_AT_LEAST_ONCE): Rename to ...
1873 (DR_BASE_W_UNCONDITIONALLY): ... this.
1874 (DR_W_UNCONDITIONALLY): Add.
1875 (hash_memrefs_baserefs_and_store_DRs_read): Adjust. Compute
1876 unconditionally written separately from read or written.
1877 (ifcvt_memrefs_wont_trap): Properly treat reads.
1878 (ifcvt_could_trap_p): Inline ...
1879 (if_convertible_gimple_assign_stmt_p): ... here. Refactor
1880 to avoid code duplication.
1881 (if_convertible_loop_p_1): Adjust and properly initialize
1882 predicates.
1883
1884 2015-12-09 Richard Biener <rguenther@suse.de>
1885
1886 * tree-vect-stmts.c (vectorizable_load): Set new vinfo only
1887 if it was not yet set.
1888 * tree-vectorizer.h (set_vinfo_for_stmt): Assert we don't
1889 overwrite an existing entry.
1890
1891 2015-12-09 Chung-Lin Tang <cltang@codesourcery.com>
1892
1893 * c-family/c-omp.c (c_finish_oacc_wait): Remove add_stmt() call.
1894 * c/c-parser.c (c_parser_oacc_wait): Add add_stmt() call.
1895 * cp/parser.c (cp_parser_oacc_wait): Add finish_expr_stmt() call.
1896
1897 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
1898
1899 PR ipa/61886
1900 * symtab.c (symtab_node::equal_address_to): New parameter
1901 MEMORY_ACCESSED.
1902 * cgraph.h (symtab_node::equal_address_to): Update prototype.
1903
1904 2015-12-08 DJ Delorie <dj@redhat.com>
1905
1906 * config/rx/rx.opt (-mjsr): Add.
1907 * config/rx/predicates.md (rx_call_operand): Avoid overflowing
1908 calls when -mjsr.
1909 * config/rx/rx.c (rx_function_ok_for_sibcall): Likewise for
1910 overflowing jumps.
1911 * doc/invoke.texi (-mjsr): Document it.
1912
1913 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
1914
1915 PR ipa/61886
1916 * lto-streamer.h (lto_symtab_merge_decls, lto_symtab_merge_symbols,
1917 lto_symtab_prevailing_decl): MOve to lto-symtab.h.
1918 * lto-streamer-out.c (DFS::DFS_write_tree_body): Check that
1919 DECL_ABSTRACT_ORIGIN is not error_mark_node.
1920
1921 2015-12-08 David Malcolm <dmalcolm@redhat.com>
1922
1923 * tree-nested.c (convert_tramp_reference_stmt): Fix indentation.
1924
1925 2015-12-08 David Malcolm <dmalcolm@redhat.com>
1926
1927 * tree-ssa-loop-unswitch.c (tree_unswitch_outer_loop): Fix
1928 indentation.
1929
1930 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
1931
1932 PR ipa/61886
1933 * lto-cgraph.c (compute_ltrans_boundary): Add transparent alias targets
1934 into the boundary.
1935
1936 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
1937
1938 PR ipa/61886
1939 * varpool.c (varpool_node::get_availability): Recurse only on
1940 weakrefs with definition in the target.
1941 (symbol_table::remove_unreferenced_decls): Keep aliases in the boundary.
1942
1943 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
1944
1945 PR ipa/61886
1946 * ipa-visibility.c (can_replace_by_local_alias): Look through
1947 transparent aliases; refuse weakrefs.
1948 (update_visibility_by_resolution_info): Skip transparent aliases in the
1949 analysis part
1950
1951 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
1952
1953 PR ipa/61886
1954 * symtab.c (symtab_node::verify_base): Fix thinko in a conditional.
1955 (symtab_node::noninterposable_alias): Do not accept transparent
1956 aliases.
1957
1958 2015-12-08 Nathan Sidwell <nathan@acm.org>
1959
1960 * config/nvptx/nvptx.c (decl_chunk_size, decl_chunk_mode,
1961 decl_offset, init_part, object_size, object_finished): Replace
1962 with ...
1963 (struct init_frag): ... this new struct variable.
1964 (begin_decl_field, output_decl_chunk): Replace with ...
1965 (output_init_frag): ... this new function.
1966 (nvptx_assemble_value): Reimplement.
1967 (nvptx_assemble_integer, nvptx_output_skip): Adjust.
1968 (nvptx_assemble_decl_begin, nvptx_assemble_decl_end): Adjust.
1969 (nvptx_output_aligned_decl): Call nvptx_assemble_decl_end.
1970
1971 2015-12-08 Eric Botcazou <ebotcazou@adacore.com>
1972
1973 PR middle-end/68291
1974 PR middle-end/68292
1975 * cfgexpand.c (set_rtl): Always accept mode mismatch for SSA names
1976 with BLKmode promoted mode based on RESULT_DECLs.
1977
1978 2015-12-08 Uros Bizjak <ubizjak@gmail.com>
1979
1980 PR target/68701
1981 * config/i386/i386.c (ix86_option_override_internal): Enable
1982 -maccumulate-outgoing-args when %ebp is fixed due to stack
1983 realignment requirements.
1984
1985 2015-12-08 Tom de Vries <tom@codesourcery.com>
1986
1987 PR tree-optimization/68640
1988 * omp-low.c (install_var_field): Clear the restrict qualifier on the var
1989 type.
1990
1991 2015-12-08 Kirill Yukhin <kirill.yukhin@intel.com>
1992
1993 * config/i386/sse.md (define_insn "<avx512>_vec_dup<mode>_1"): Fix
1994 assembler to make source always 128bit.
1995
1996 2015-12-08 Jakub Jelinek <jakub@redhat.com>
1997
1998 PR c/48088
1999 PR c/68657
2000 * common.opt (Wframe-larger-than=): Add Warning.
2001 * opts.h (control_warning_option): Add ARG argument.
2002 * opts-common.c (cmdline_handle_error): New function.
2003 (read_cmdline_option): Use it.
2004 (control_warning_option): Likewise. Add ARG argument.
2005 If non-NULL, decode it if needed and pass through
2006 to handle_generated_option. Handle CLVC_ENUM like
2007 CLVC_BOOLEAN.
2008 * opts.c (common_handle_option): Adjust control_warning_option
2009 caller.
2010 (enable_warning_as_error): Likewise.
2011
2012 2015-12-08 Matthew Wahab <matthew.wahab@arm.com>
2013
2014 * config/aarch64/aarch64-options-extensions.def: Remove
2015 AARCH64_FL_RDMA from "fp" and "simd". Remove "pan", "lor",
2016 "rdma".
2017 * config/aarch64/aarch64.h (AARCH64_FL_PAN): Remove.
2018 (AARCH64_FL_LOR): Remove.
2019 (AARCH64_FL_RDMA): Remove.
2020 (AARCH64_FL_V8_1): New.
2021 (AARCH64_FL_FOR_AARCH8_1): Replace AARCH64_FL_PAN, AARCH64_FL_LOR
2022 and AARCH64_FL_RDMA with AARCH64_FL_V8_1.
2023 (AARCH64_ISA_RDMA): Replace AARCH64_FL_RDMA with AARCH64_FL_V8_1.
2024 * doc/invoke.texi (AArch64 -march): Rewrite initial paragraph and
2025 section on -march=native. Group descriptions of permitted
2026 architecture names together. Expand description of
2027 -march=armv8.1-a.
2028 (AArch64 -mtune): Slightly rework section on -march=native.
2029 (AArch64 -mcpu): Slightly rework section on -march=native.
2030 (AArch64 Feature Modifiers): Remove "pan", "lor" and "rdma".
2031 State that -march=armv8.1-a enables "crc" and "lse".
2032
2033 2015-12-08 Eric Botcazou <ebotcazou@adacore.com>
2034
2035 * doc/invoke.texi (SPARC options): Fix typo.
2036
2037 2015-12-08 Eric Botcazou <ebotcazou@adacore.com>
2038
2039 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust.
2040 (output_probe_stack_range): Rotate the loop and simplify.
2041
2042 2015-12-08 Uros Bizjak <ubizjak@gmail.com>
2043
2044 * config/i386/i386.c (ix86_emit_swsqrtsf): Cleanup
2045 infinity filterning code.
2046
2047 2015-12-08 Ilya Enkovich <enkovich.gnu@gmail.com>
2048
2049 PR tree-optimization/68766
2050 * tree-vectorizer.c (vectorize_loops): Check for
2051 if-converted loops when debug counters are used.
2052
2053 2015-12-07 DJ Delorie <dj@redhat.com>
2054
2055 * config/rl78/constraints.md (Wfr): Change to be a non-memory
2056 constraint.
2057 * config/rl78/rl78-protos.h (rl78_one_far_p): Declare.
2058 * config/rl78/rl78.c (rl78_one_far_p): Define.
2059 * config/rl78/rl78-virt (movqi_virt): Fix far memory
2060 alternatives.
2061 (movhi_virt): Likewise.
2062 (zero_extendqihi2_virt): Likewise.
2063 (extendqihi2_virt): Likewise.
2064 (add<mode>3_virt): Likewise.
2065 (sub<mode>3_virt): Likewise.
2066 (andqi3_virt): Likewise.
2067 (iorqi3_virt): Likewise.
2068 (xorqi3_virt): Likewise.
2069 * config/rl78/rl78-real.md (bf,br): Use long forms to avoid reloc
2070 overflow in large files.
2071
2072 2015-12-07 Eric Botcazou <ebotcazou@adacore.com>
2073
2074 PR target/63668
2075 * doc/invoke.texi (SPARC options): Document -mstd-struct-return.
2076 * config/sparc/sparc.c (sparc_struct_value_rtx): Minor tweaks.
2077 * config/sparc/sparc.h (CALL_REALLY_USED_REGISTERS): Define.
2078 * config/sparc/sparc.opt (mstd-struct-return): Accept negative.
2079
2080 2015-12-07 Steve Ellcey <sellcey@imgtec.com>
2081
2082 * reorg.c (optimize_skip): Do not put frame related instructions
2083 in annulled delay slots.
2084 (steal_delay_list_from_target): Ditto.
2085 (fill_slots_from_thread): Ditto.
2086
2087 2015-12-07 Evandro Menezes <e.menezes@samsung.com>
2088
2089 * config/aarch64/aarch64-cores.def: Use the Exynos M1 sched model.
2090 * config/aarch64/aarch64.md: Include "exynos-m1.md".
2091 * config/arm/arm.md: Likewise.
2092 * config/arm/exynos-m1.md: New file.
2093
2094 2015-12-07 Jan Hubicka <hubicka@ucw.cz>
2095
2096 * fold-const.c (operand_equal_p): Drop flag_strict_aliasing check.
2097
2098 2015-12-07 Nathan Sidwell <nathan@acm.org>
2099
2100 * config//nvptx/nvptx.c (write_return): New.
2101 (write_fn_proto, nvptx_declare_function_name): Call it.
2102
2103 2015-12-07 Jan Hubicka <hubicka@ucw.cz>
2104
2105 PR ipa/61886
2106 * symtab.c (ultimate_transparent_alias_target): New inline function.
2107 (symbol_table::assembler_names_equal_p): New method; break out from ...
2108 (symbol_table::decl_assembler_name_equal): ... here.
2109 (symbol_table::change_decl_assembler_name): Also update names and
2110 translation links of transparent aliases.
2111 (symtab_node::dump_base): Dump transparent_alias.
2112 (symtab_node::verify_base): Implement basic transparent alias
2113 verification.
2114 (symtab_node::make_decl_local): Support localization of weakrefs;
2115 recurse to transparent aliases; set TREE_STATIC.
2116 (symtab_node::ultimate_alias_target_1): Handle visibility of
2117 transparent aliases.
2118 (symtab_node::resolve_alias): New parmaeter transparent; handle
2119 transparent aliases; recurse to aliases of aliases to fix comdat
2120 groups.
2121 (symtab_node::get_partitioning_class): Handle transparent aliases.
2122 * ipa-visibility.c (cgraph_externally_visible_p,
2123 varpool_node::externally_visible_p): Visibility of transparent alias
2124 depends on its target.
2125 (function_and_variable_visibility): Do not tweak visibility of
2126 transparent laiases.
2127 (function_and_variable_visibility): Likewise.
2128 * ipa.c (symbol_table::remove_unreachable_nodes): Clear
2129 transparent_alias flag.
2130 * alias.c (cgraph_node::create_alias, cgraph_node::get_availability):
2131 Support transparent aliases.
2132 * cgraph.h (symtab_node): Update prototype of resolve_alias;
2133 add transparent_alias flag.
2134 (symbol_table: Add assembler_names_equal_p.
2135 (symtab_node::real_symbol_p): Skip transparent aliases.
2136 * cgraphunit.c (cgraph_node::reset): Reset transparent_alias flag.
2137 (handle_alias_pairs): Set transparent_alias for weakref.
2138 (cgraph_node::assemble_thunks_and_aliases): Do not asemble transparent
2139 aliases.
2140 * lto-cgraph.c (lto_output_node): When outputting same_comdat_group
2141 skip symbols not put into boundary; stream transparent_alias.
2142 (lto_output_varpool_node): Likewise.
2143 (input_overwrite_node, input_varpool_node): Stream transparent alias.
2144 * varpool.c (ctor_for_folding, varpool_node::get_availability,
2145 varpool_node::assemble_aliases,
2146 symbol_table::remove_unreferenced_decls): Handle transparent aliase.
2147 (varpool_node::create_alias): Set transparent_alias.
2148
2149 2015-12-07 Eric Botcazou <ebotcazou@adacore.com>
2150
2151 PR middle-end/68291
2152 PR middle-end/68292
2153 * cfgexpand.c (set_rtl): Always accept PARALLELs with BLKmode for
2154 SSA names based on RESULT_DECLs.
2155 * function.c (expand_function_start): Do not create BLKmode REGs
2156 for GIMPLE registers when coalescing is enabled.
2157
2158 2015-12-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
2159
2160 * final.c (shorten_branches): Fix check for basic asm.
2161 * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Add check for
2162 basic asm.
2163
2164 2015-12-07 Nathan Sidwell <nathan@acm.org>
2165
2166 * config/nvptx/nvptx.c (nvptx_output_call_insn): Emit trap after no
2167 return call.
2168
2169 2015-12-07 David Malcolm <dmalcolm@redhat.com>
2170
2171 * pretty-print.c (text_info::set_range): Rename to...
2172 (text_info::set_location): ...this, converting 2nd param
2173 from source_range to a location_t.
2174 * pretty-print.h (text_info::set_location): Convert
2175 from inline function to external definition.
2176 (text_info::set_range): Delete.
2177
2178 2015-12-07 Nathan Sidwell <nathan@acm.org>
2179
2180 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Look inside
2181 complex and vector types. Cope with packed structs.
2182
2183 2015-12-07 Kirill Yukhin <kirill.yukhin@intel.com>
2184
2185 PR target/68627
2186 * config/i386/sse.md: Make 'v' alternative work on 'avx512f' ISA only.
2187 Force destination to 512 bits register.
2188
2189 2015-12-07 Kirill Yukhin <kirill.yukhin@intel.com>
2190
2191 PR target/68633
2192 * config/i386/sse.md (define_insn "kunpckhi"): Fix operands order.
2193 (define_insn "kunpcksi"): Ditto.
2194 (define_insn "kunpckdi"): Ditto.
2195
2196 2015-12-06 Kaz Kojima <kkojima@gcc.gnu.org>
2197
2198 * config/sh/sh.md (rsqrtsf2): Adjust for canonical form with unspec.
2199
2200 2015-12-06 Victoria Stepanyan <victoria.stepanyan@amd.com>
2201
2202 * common/config/i386/i386-common.c
2203 (OPTION_MASK_ISA_CLZERO_SET): New.
2204 (ix86_handle_option): Handle clzero.
2205 * config.gcc (i[34567]86-*-*): Add clzerointrin.h,
2206 (x86_64-*-*): Likewise.
2207 * config/i386/clzerointrin.h: New header.
2208 * config/i386/cpuid.h (bit_CLZERO): Define.
2209 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2210 CLZERO support.
2211 * config/i386/i386.opt (clzero): New.
2212 * config/i386/i386-c.c: Define __CLZERO__ if needed.
2213 * config/i386/i386.c (ix86_target_string): Define -mclzero option.
2214 (PTA_CLZERO): New.
2215 (ix86_option_override_internal): Handle new option.
2216 (processor_alias_table): Added PTA_CLZERO.
2217 (ix86_valid_target_attribute_inner_p): Add OPT_mclzero.
2218 (ix86_builtins): Add IX86_BUILTIN_CLZERO, IX86_BUILTIN_CLZERO.
2219 (ix86_expand_builtin): Handle IX86_BUILTIN_CLZERO and
2220 IX86_BUILTIN_CLZERO built-ins.
2221 * config/i386/i386.h (TARGET_CLZERO): New.
2222 * config/i386/i386.md (unspecv): Add UNSPEC_CLZERO.
2223 (clzero): New pattern.
2224 (clzero_<mode>): New pattern.
2225 * config/i386/x86intrin.h: Include clzerointrin.h.
2226 * doc/extend.texi: Document clzero builtins.
2227 * doc/invoke.texi: Document -mclzero option.
2228
2229 2015-12-05 Jan Hubicka <hubicka@ucw.cz>
2230
2231 * ipa-icf.c (sem_function::merge): Check that local_original exists.
2232
2233 2015-12-05 David Edelsohn <dje.gcc@gmail.com>
2234
2235 PR target/68609
2236 * config/rs6000/rs6000-protos.h (rs6000_emit_swsqrt): Rename and add
2237 bool arguement.
2238 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Rename. Add
2239 non-reciporcal path.
2240 * config/rs6000/rs6000.md (rsqrt<mode>2): Call new function name.
2241 (sqrt<mode>2): Replace define_insn with define_expand that may call
2242 rs6000_emit_swsqrt.
2243
2244 2015-12-04 Aditya Kumar <aditya.k7@samsung.com>
2245 Sebastian Pop <s.pop@samsung.com>
2246
2247 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
2248 Improve debug.
2249 (get_rename_from_scev): Check that all the ops in an expression
2250 have their uses dominated by corresponding defs.
2251
2252 2015-12-04 Aditya Kumar <aditya.k7@samsung.com>
2253 Sebastian Pop <s.pop@samsung.com>
2254
2255 PR tree-optimization/68693
2256 * graphite-scop-detection.c (dot_all_sese): New
2257 (dot_all_scops_1): Renamed to dot_all_sese.
2258 (dot_all_scops): Removed.
2259 (dot_sese): New.
2260 (dot_cfg): New.
2261 (scop_detection::get_nearest_dom_with_single_entry): Check that
2262 preds are from different loop levels.
2263 (scop_detection::get_nearest_pdom_with_single_exit): Check that
2264 succs are from different loop levels.
2265 (scop_detection::print_sese): Inlined.
2266 (scop_detection::print_edge): New.
2267 (scop_detection::merge_sese): Added dumps.
2268 * graphite.h: Add declarations.
2269
2270 2015-12-04 James Greenhalgh <james.greenhalgh@arm.com>
2271
2272 * config/aarch64/aarch64.md (add<mode>3_pluslong): Add register
2273 constraints.
2274
2275 2015-12-04 Vladimir Makarov <vmakarov@redhat.com>
2276
2277 PR rtl-optimization/68349
2278 * lra-eliminations.c (move_plus_up): New function.
2279 (lra_eliminate_regs_1): Use the function.
2280
2281 2015-12-04 Nathan Sidwell <nathan@acm.org>
2282
2283 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): New, replacing ...
2284 (init_output_initializer): ... this.
2285 (nvptx_output_aligned_decl, nvptx_asm_declare_constant_name,
2286 nvptx_declare_object_name, nvptx_assemble_undefined_decl): Use
2287 nvptx_assemble_decl_begin.
2288
2289 2015-12-04 Dmitry Vyukov <dvyukov@google.com>
2290
2291 * sancov.c: New file.
2292 * Makefile.in (OBJS): Add sancov.o.
2293 * invoke.texi (-fsanitize-coverage=trace-pc): Describe.
2294 * passes.def (sancov_pass): Add.
2295 * tree-pass.h (sancov_pass): Add.
2296 * common.opt (-fsanitize-coverage=trace-pc): Add.
2297 * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_PC): Add.
2298 * builtins.def (DEF_SANITIZER_BUILTIN): Enable for
2299 flag_sanitize_coverage.
2300
2301 2015-12-04 Eric Botcazou <ebotcazou@adacore.com>
2302
2303 PR middle-end/65958
2304 * config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
2305 (unspecv): Add VUNSPEC_PROBE_STACK_RANGE.
2306 * config/arm/arm.md (probe_stack_range): Adjust.
2307 * config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
2308 (unspecv): Add UNSPECV_PROBE_STACK_RANGE.
2309 (probe_stack_range_<PTR:mode>): Adjust.
2310
2311 2015-12-04 David Malcolm <dmalcolm@redhat.com>
2312
2313 * convert.c (convert_to_real_1): When converting from a
2314 REAL_TYPE, preserve the location of EXPR in the result.
2315 * tree.c (get_pure_location): Make non-static.
2316 (set_source_range): Return the resulting location_t.
2317 (make_location): New function.
2318 * tree.h (get_pure_location): New decl.
2319 (get_finish): New inline function.
2320 (set_source_range): Convert return type from void to location_t.
2321 (make_location): New decl.
2322
2323 2015-12-04 Jakub Jelinek <jakub@redhat.com>
2324
2325 PR c/68656
2326 * toplev.c (init_asm_output): Pass UNKNOWN_LOCATION instead of
2327 input_location to inform.
2328 (process_options): Use warning_at (UNKNOWN_LOCATION instead of
2329 warning ( and error_at (UNKNOWN_LOCATION instead of error (.
2330 Pass UNKNOWN_LOCATION instead of input_location to fatal_error.
2331
2332 2015-12-04 Jan Hubicka <hubicka@ucw.cz>
2333
2334 * ipa-inline.c (can_inline_edge_p) Use merged_comdat.
2335 * cgraphclones.c (cgraph_node::create_clone): Use merged_comdat.
2336 * cgraph.c (cgraph_node::dump): Dump merged_comdat.
2337 * ipa-icf.c (sem_function::merge): Drop merged_comdat when merging
2338 comdat and non-comdat.
2339 * cgraph.h (cgraph_node): Rename merged to merged_comdat.
2340 * ipa-inline-analysis.c (simple_edge_hints): Check both merged_comdat
2341 and icf_merged.
2342
2343 2015-12-04 Segher Boessenkool <segher@kernel.crashing.org>
2344
2345 * config/rs6000/rs6000.md (cstore<mode>4_unsigned): Use gpc_reg_operand
2346 instead of register_operand. Remove empty constraints. Use std::swap.
2347 (cstore_si_as_di, cstore<mode>4_signed_imm,
2348 cstore<mode>4_unsigned_imm, cstore<mode>4 for GPR): Use
2349 gpc_reg_operand instead of register_operand.
2350 (cstore<mode>4 for FP): Use gpc_reg_operand instead of
2351 register_operand. Remove empty constraints.
2352
2353 2015-12-04 Nick Clifton <nickc@redhat.com>
2354
2355 * config.gcc (extra_gcc_objs): Define for MSP430.
2356 * common/config/msp430/msp430-common.c (msp430_handle_option):
2357 Pass both -mmcu and -mcpu on to the back end if they are both defined.
2358 * config/msp430/msp430.c (hwmult_name): New function.
2359 (msp430_option_override): If an unrecognised MCU name is
2360 detected only warn if the user has not provided suitable
2361 -mhwmult and -mcpu options. Use msp430_warn_mcu to control
2362 warning messages. Generate warnings about conflicts between
2363 -mmcu and -mcpu and -mhwmult options.
2364 If neither -mcpu nor -mmcu have been specified but -mhwmult=
2365 f5series has the select the 430X isa.
2366 (msp430_no_hwmult): If -mmcu has not been specified and
2367 msp430_hwmult_type is AUTO then return true.
2368 * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Define.
2369 (LIB_SPEC): Add hardware multiply library selection.
2370 * config/msp430/t-msp430: Delete hardware multiply multilibs.
2371 Add rule to build driver-msp430.o
2372 * config/msp430/driver-msp430.c: New file.
2373 * config/msp430/msp430.opt (warn-mcu): New option.
2374 * doc/invoke.texi: Update description of -mhwmult=auto.
2375 Document -mwarn-mcu option.
2376
2377 2015-12-04 Segher Boessenkool <segher&kernel.crashing.org>
2378
2379 * config/rs6000/rs6000.md (cstore<mode>4_signed): New expander.
2380 (cstore<mode>4): Call it.
2381
2382 2015-12-04 Jakub Jelinek <jakub@redhat.com>
2383
2384 * tree-tailcall.c (find_tail_calls): Ignore GIMPLE_NOPs.
2385
2386 PR tree-optimization/68680
2387 * calls.c (special_function_p): Return ECF_MAY_BE_ALLOCA for
2388 BUILT_IN_ALLOCA{,_WITH_ALIGN}. Don't check for __builtin_alloca
2389 by name.
2390
2391 PR tree-optimization/68671
2392 * tree-ssa-reassoc.c (maybe_optimize_range_tests): For basic
2393 blocks starting with the successor of first bb we've modified
2394 and ending with last_bb call reset_flow_sensitive_info_in_bb.
2395
2396 2015-12-04 Jeff Law <law@redhat.com>
2397
2398 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Return boolean
2399 indicating if a gimple conditional was optimized to true/false.
2400 (reassociate_bb): Bubble up return value from
2401 maybe_optimize_range_tests.
2402 (do_reassoc): Similarly, but for reassociate_bb.
2403 (execute_reassoc): Return TODO_cleanup_cfg as needed.
2404
2405 2015-12-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2406
2407 * config/aarch64/aarch64.c (aarch64_override_options_internal):
2408 Do not alter target_flags due to TARGET_GENERAL_REGS_ONLY_P.
2409 * doc/invoke.texi (AArch64 options): Mention that -mgeneral-regs-only
2410 does not affect the assembler directives.
2411
2412 2015-12-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
2413
2414 * config/s390/s390.c (s390_asm_file_start): Implement hook function to
2415 emit .machine and .machinemode to the top of the assembler file.
2416 (TARGET_ASM_FILE_START): Provide target hook.
2417 (s390_asm_output_machine_for_arch): Protect with
2418 HAVE_AS_MACHINE_MACHINEMODE instead of S390_USE_TARGET_ATTRIBUTE.
2419
2420 2015-12-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
2421
2422 * config/s390/s390.opt (s390_arch_string): Remove.
2423 (s390_tune_string): Likewise.
2424 (s390_cost_pointer): Add Variable.
2425 (s390_tune_flags): Add TargetVariable.
2426 (s390_arch_flags, march=, mbackchain, mdebug, mesa, mhard-dfp),
2427 (mhard-float, mlong-double-128, mlong-double-64, mhtm, mvx),
2428 (mpacked-stack, msmall-exec, msoft-float, mstack-guard=, mstack-size=),
2429 (mtune=, mmvcle, mzvector, mzarch, mbranch-cost=, mwarn-dynamicstack),
2430 (mwarn-framesize=): Save option.
2431 (mno-stack-guard, mno-stack-guard): New option.
2432 (mwarn-dynamicstack): Allow mno-warn-dynamicstack.
2433 (mwarn-framesize=): Convert to UInteger (negative values are rejected
2434 now).
2435 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Split setting
2436 macros changeable through the GCC target pragma into a separate
2437 function.
2438 (s390_cpu_cpp_builtins): Likewise.
2439 (s390_pragma_target_parse): New function, implement GCC target pragma
2440 if enabled.
2441 (s390_register_target_pragmas): Register s390_pragma_target_parse if
2442 available.
2443 * common/config/s390/s390-common.c (s390_handle_option):
2444 Export.
2445 Move setting s390_arch_flags to s390.c.
2446 Remove s390_tune_flags.
2447 Allow 0 as argument to -mstack-size (switch to default value).
2448 Allow 0 as argument to -mstack-guard (switch off).
2449 Remove now unnecessary explicit parsing code for -mwarn-framesize.
2450 * config/s390/s390-protos.h (s390_handle_option): Export.
2451 (s390_valid_target_attribute_tree): Export.
2452 (s390_reset_previous_fndecl): Export.
2453 * config/s390/s390-builtins.def: Use new macro B_GROUP to mark the start
2454 and end of HTM and VX builtins.
2455 (s390_asm_output_function_prefix): Declare hook.
2456 (s390_asm_declare_function_size): Likewise.
2457 * config/s390/s390-builtins.h (B_GROUP): Use macro.
2458 * config/s390/s390-opts.h: Add comment about processor_type usage.
2459 * config/s390/s390.h (TARGET_CPU_IEEE_FLOAT_P, TARGET_CPU_ZARCH_P),
2460 (TARGET_CPU_LONG_DISPLACEMENT_P, TARGET_CPU_EXTIMM_P, TARGET_CPU_DFP_P),
2461 (TARGET_CPU_Z10_P, TARGET_CPU_Z196_P, TARGET_CPU_ZEC12_P),
2462 (TARGET_CPU_HTM_P, TARGET_CPU_Z13_P, TARGET_CPU_VX_P),
2463 (TARGET_HARD_FLOAT_P, TARGET_LONG_DISPLACEMENT_P, TARGET_EXTIMM_P),
2464 (TARGET_DFP_P, TARGET_Z10_P, TARGET_Z196_P, TARGET_ZEC12_P),
2465 (TARGET_HTM_P, TARGET_Z13_P, TARGET_VX_P, TARGET_CPU_EXTIMM),
2466 (TARGET_CPU_DFP, TARGET_CPU_Z10, TARGET_CPU_Z196, TARGET_CPU_ZEC12),
2467 (TARGET_CPU_HTM, TARGET_CPU_Z13, TARGET_LONG_DISPLACEMENT),
2468 (TARGET_EXTIMM, TARGET_DFP, TARGET_Z10, TARGET_Z196, TARGET_ZEC12),
2469 (TARGET_Z13, TARGET_VX, S390_USE_TARGET_ATTRIBUTE),
2470 (S390_USE_ARCHITECTURE_MODIFIERS, SWITCHABLE_TARGET),
2471 (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
2472 * config/s390/vecintrin.h: Use vector definitions even if __VEC__ is
2473 undefined.
2474 (vec_all_nan): Rewrite as macro using statement expressions to avoid
2475 that the vector keyword needs to be defined when including the file.
2476 (vec_all_numeric): Likewise.
2477 (vec_any_nan): Likewise.
2478 (vec_any_numeric): Likewise.
2479 * config/s390/s390.c (s390_previous_fndecl): New static variable.
2480 (s390_set_current_function): New function.
2481 (s390_cost): Wrapper macro to allow defining the cost table pointer in
2482 the options file.
2483 (processor_table): Table for march= and mtune= parsing.
2484 (s390_init_builtins): Enable all builtins and types unconditionally.
2485 (s390_expand_builtin): Generate an error message if builtin is not
2486 supported by current options.
2487 Correct an error message.
2488 (s390_function_specific_restore): New function to set s390_cost.
2489 (s390_asm_output_machine_for_arch): New function for emitting .machine
2490 and .machinmode directives to the assembler file.
2491 (s390_asm_output_function_prefix): Likewise.
2492 (s390_asm_declare_function_size): Likewise.
2493 (s390_asm_output_function_label): Add mdebug output for feature testing.
2494 (s390_option_override): Move implementation into internal function.
2495 (s390_option_override_internal): Likewise.
2496 Implement option overriding based on current options.
2497 (s390_valid_target_attribute_inner_p): New function implementing target
2498 attribute logic.
2499 (s390_valid_target_attribute_tree): Likewise.
2500 (s390_valid_target_attribute_p): Likewise.
2501 (s390_reset_previous_fndecl): Likewise.
2502 (s390_set_current_function): Likewise.
2503 (TARGET_SET_CURRENT_FUNCTION): Provide target hook function.
2504 (TARGET_OPTION_VALID_ATTRIBUTE_P): Likewise.
2505 (TARGET_OPTION_RESTORE): Likewise.
2506 * doc/extend.texi: S390: Document target attribute and pragma.
2507 * config.in: Regenerated.
2508 * configure: Regenerated.
2509 * configure.ac: S390: Check for .machinemode and .machine in gas.
2510 S390: Check for architecture modifiers support in gas.
2511
2512 2015-12-04 Kirill Yukhin <kirill.yukhin@intel.com>
2513
2514 * doc/extend.texi ("simd"): Describe new flags.
2515
2516 2015-12-04 Ilya Enkovich <enkovich.gnu@gmail.com>
2517
2518 * config/i386/sse.md (<avx512>_store<mode>_mask): Fix
2519 operand checked for alignment.
2520
2521 2015-12-04 Nathan Sidwell <nathan@acm.org>
2522
2523 * config/nvptx/nvptx.c (write_one_arg): Deal with prologue
2524 emission too. Change 'no_arg_types' to 'prototyped'.
2525 (write_fn_proto): Use write_one_arg for stdarg, static chain &
2526 main.
2527 (nvptx_declare_function_name): Use write_one_arg for prologue copies.
2528
2529 2015-12-04 Richard Biener <rguenther@suse.de>
2530
2531 * tree-ssa-sccvn.c (sccvn_dom_walker): Add unreachable_dom
2532 member and initialize it.
2533 (sccvn_dom_walker::after_dom_children): Reset unreachable_dom
2534 if necessary.
2535 (sccvn_dom_walker::before_dom_children): If unreachable_dom
2536 is set BB is not reachable either. Set unreachable_dom
2537 if not set and BB is unreachable.
2538
2539 2015-12-04 Richard Biener <rguenther@suse.de>
2540
2541 * bitmap.c (bitmap_find_bit): Guard the bitmap descriptor
2542 query with GATHER_STATISTICS.
2543
2544 2015-12-04 Eric Botcazou <ebotcazou@adacore.com>
2545
2546 PR middle-end/65958
2547 * gimplify.c (struct gimplify_ctx): Turn boolean fields into 1-bit
2548 fields, add keep_stack and reorder them.
2549 (gimplify_bind_expr): Save gimplify_ctxp->keep_stack on entry then
2550 set it to false. Do not insert a stack save/restore pair if it has
2551 been set to true by the gimplification of the statements.
2552 Restore it to the saved value on exit if it is still false.
2553 (gimplify_vla_decl): Do not set gimplify_ctxp->save_stack here.
2554 (gimplify_call_expr) <BUILT_IN_ALLOCA[_WITH_ALIGN]>: New case. Set
2555 either save_stack or keep_stack depending on CALL_ALLOCA_FOR_VAR_P.
2556 * doc/extend.texi (Variable Length): Document new behavior.
2557 * doc/generic.texi (Blocks): Document new handling of VLAs.
2558
2559 2015-12-04 Eric Botcazou <ebotcazou@adacore.com>
2560 Tristan Gingold <gingold@adacore.com>
2561
2562 PR middle-end/65958
2563 * config/aarch64/aarch64-protos.h (aarch64_output_probe_stack-range):
2564 Declare.
2565 * config/aarch64/aarch64.md: Declare UNSPECV_BLOCKAGE and
2566 UNSPEC_PROBE_STACK_RANGE.
2567 (blockage): New instruction.
2568 (probe_stack_range_<PTR:mode>): Likewise.
2569 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): New
2570 function.
2571 (aarch64_output_probe_stack_range): Likewise.
2572 (aarch64_expand_prologue): Invoke aarch64_emit_probe_stack_range if
2573 static builtin stack checking is enabled.
2574 * config/aarch64/aarch64-linux.h (STACK_CHECK_STATIC_BUILTIN):
2575 Define to 1.
2576
2577 2015-12-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2578
2579 PR target/68214
2580 * config/arm/arm.md (*call_mem): Delete pattern.
2581 (*call_value_mem): Likewise.
2582 * config/arm/arm.c (output_call_mem): Delete.
2583 * config/arm/arm-protos.h (output_call_mem): Delete prototype.
2584
2585 2015-12-04 Bin Cheng <bin.cheng@arm.com>
2586
2587 * config/aarch64/atomics.md (atomic_store<mode>): Use predicate
2588 aarch64_sync_memory_operand.
2589
2590 2015-12-04 Jakub Jelinek <jakub@redhat.com>
2591
2592 PR target/68655
2593 * config/i386/i386.c (canonicalize_vector_int_perm): New function.
2594 (expand_vec_perm_1): Use it and recurse if everything else
2595 failed. Use nd.perm instead of perm2.
2596 (expand_vec_perm_even_odd_1): If testing_p, use gen_raw_REG
2597 instead of gen_lowpart for the target.
2598 (ix86_expand_vec_perm_const_1): Use canonicalize_vector_int_perm
2599 and recurse if everything else failed.
2600
2601 2015-12-04 Richard Biener <rguenther@suse.de>
2602
2603 PR middle-end/68636
2604 * builtins.c (get_pointer_alignment_1): Take care of byte to
2605 bit alignment computation overflow.
2606
2607 2015-12-04 Richard Biener <rguenther@suse.de>
2608
2609 PR middle-end/67438
2610 * match.pd: Guard ~X cmp ~Y -> Y cmp X and the variant with
2611 a constant with single_use.
2612
2613 2015-12-04 Bin Cheng <bin.cheng@arm.com>
2614 Jiong Wang <jiong.wang@arm.com>
2615
2616 * config/aarch64/aarch64.c (aarch64_legitimize_address): legitimize
2617 address expressions like Ra + Rb + CONST and Ra + Rb<<SCALE + CONST.
2618
2619 2015-12-03 Jan Hubicka <hubicka@ucw.cz>
2620
2621 * alias.c (alias_set_subset_of, alias_sets_must_conflict_p):
2622 Add short circuit for !flag_strict_aliasing
2623 (get_alias_set): Remove flag_strict_aliasing check.
2624 (new_alias_set): Likewise.
2625
2626 2015-12-03 Evandro Menezes <e.menezes@samsung.com>
2627
2628 * config/aarch64/aarch64-cores.def: Use the Exynos M1 cost model.
2629 * config/aarch64/aarch64.c (exynosm1_addrcost_table): New variable.
2630 (exynosm1_regmove_cost): Likewise.
2631 (exynosm1_vector_cost): Likewise.
2632 (exynosm1_tunings): Likewise.
2633 * config/arm/aarch-cost-tables.h (exynosm1_extra_costs): Likewise.
2634 * config/arm/arm.c (arm_exynos_m1_tune): Likewise.
2635
2636 2015-12-03 Alan Lawrence <alan.lawrence@arm.com>
2637 Richard Biener <richard.guenther@gmail.com>
2638
2639 * cfgexpand.c (pass_expand::execute): Replace call to
2640 redirect_edge_var_map_destroy with redirect_edge_var_map_empty.
2641 * tree-ssa.c (delete_tree_ssa): Likewise.
2642 * function.c (set_cfun): Call redirect_edge_var_map_empty.
2643 * passes.c (execute_one_ipa_transform_pass, execute_one_pass): Likewise.
2644 * tree-ssa.h (redirect_edge_var_map_destroy): Remove.
2645 (redirect_edge_var_map_empty): New.
2646 * tree-ssa.c (redirect_edge_var_map_destroy): Remove.
2647 (redirect_edge_var_map_empty): New.
2648
2649 2015-12-03 Jeff Law <law@redhat.com>
2650
2651 PR tree-optimization/68599
2652 * loop-init.c (rtl_loop_init): Set LOOPS_HAVE_RECORDED_EXITS
2653 in call to loop_optimizer_init.
2654 * loop-iv.c (get_simple_loop_desc): Only allow unsafe loop
2655 optimization to drop the assumptions/infinite notations if
2656 the loop has a single exit.
2657
2658 2015-12-03 Richard Sandiford <richard.sandiford@arm.com>
2659
2660 * doc/md.texi (vec_load_lanes@var{m}@var{n}): Document that
2661 the pattern cannot FAIL.
2662 (vec_store_lanes@var{m}@var{n}): Likewise.
2663 (maskload@var{m}@var{n}): Likewise.
2664 (maskstore@var{m}@var{n}): Likewise. Fix a cut-&-paste error
2665 in the name of the pattern.
2666 (rsqrt@var{m}2): Document that mode m must be a scalar or vector
2667 floating-point mode and that all operands have that mode.
2668 (fmin@var{m}3, fmax@var{m}3): Likewise. Document that the
2669 pattern cannot FAIL.
2670 (sqrt@var{m}2): Document that mode m must be a scalar or vector
2671 floating-point mode, that all operands have that mode, and that
2672 the patterns cannot FAIL. Remove previous documentation referring
2673 to @code{double} and @code{float}.
2674 (fmod@var{m}3, remainder@var{m}3, cos@var{m}2, sin@var{m}2)
2675 (sincos@var{m}3, log@var{m}2, pow@var{m}3, atan2@var{m}3)
2676 (copysign@var{m}3): Likewise.
2677 (exp@var{m}2): Likewise. Explicitly state the base.
2678 (floor@var{m}2): As for sqrt@var{m}2, but also specify the operands.
2679 (btrunc@var{m}2, rint@var{m}2): Likewise.
2680 (round@var{m}2): Likewise. Fix incorrect description of rounding
2681 effect.
2682 (ceil@var{m}2): As for round@var{m}2.
2683 (nearbyint@var{m}2): As for floor@var{m}2, but also mention that
2684 the instruction must not raise an inexact condition.
2685 (scalb@var{m}3): Document previously-undocumented pattern
2686 (ldexp@var{m}3, tan@var{m}2, asin@var{m}2, acos@var{m}2)
2687 (atan@var{m}2, expm1@var{m}2, exp10@var{m}2, exp2@var{m}2)
2688 (log1p@var{m}2, log10@var{m}2, log2@var{m}2, logb@var{m}2)
2689 (significand@var{m}2): Likewise.
2690 (ffs@var{m}2): Fix the description of the modes, so that operand 1 has
2691 mode m and operand 0 is defined more freely. Document that @var{m}
2692 can be a scalar or vector integer mode and that the pattern is not
2693 allowed to FAIL.
2694 (clz@var{m}2, ctz@var{m}2, popcount@var{m}2, parity@var{m}2): Likewise.
2695 (clrsb@var{m}2): Likewise, except that the description of the
2696 mode was missing in this case.
2697
2698 2015-12-03 Richard Sandiford <richard.sandiford@arm.com>
2699
2700 * internal-fn.def (RSQRT): New function.
2701 * optabs.def (rsqrt_optab): New optab.
2702 * doc/md.texi (rsqrtM2): Document.
2703 * target.def (builtin_reciprocal): Replace gcall argument with
2704 a function decl. Restrict hook to machine functions.
2705 * doc/tm.texi: Regenerate.
2706 * targhooks.h (default_builtin_reciprocal): Update prototype.
2707 * targhooks.c (default_builtin_reciprocal): Likewise.
2708 * tree-ssa-math-opts.c: Include internal-fn.h.
2709 (internal_fn_reciprocal): New function.
2710 (pass_cse_reciprocals::execute): Call it, and build a call to an
2711 internal function on success. Only call targetm.builtin_reciprocal
2712 for machine functions.
2713 * config/aarch64/aarch64-protos.h (aarch64_builtin_rsqrt): Remove
2714 second argument.
2715 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin_rsqrt):
2716 Rename aarch64_rsqrt_<mode>2 to rsqrt<mode>2.
2717 (aarch64_builtin_rsqrt): Remove md_fn argument and only handle
2718 machine functions.
2719 * config/aarch64/aarch64.c (use_rsqrt_p): New function.
2720 (aarch64_builtin_reciprocal): Replace gcall argument with a
2721 function decl. Use use_rsqrt_p. Remove optimize_size check.
2722 Only handle machine functions. Update call to aarch64_builtin_rsqrt.
2723 (aarch64_optab_supported_p): New function.
2724 (TARGET_OPTAB_SUPPORTED_P): Define.
2725 * config/aarch64/aarch64-simd.md (aarch64_rsqrt_<mode>2): Rename to...
2726 (rsqrt<mode>2): ...this.
2727 * config/i386/i386.c (use_rsqrt_p): New function.
2728 (ix86_builtin_reciprocal): Replace gcall argument with a
2729 function decl. Use use_rsqrt_p. Remove optimize_insn_for_size_p
2730 check. Only handle machine functions.
2731 (ix86_optab_supported_p): Handle rsqrt_optab.
2732 * config/rs6000/rs6000.c (TARGET_OPTAB_SUPPORTED_P): Define.
2733 (rs6000_builtin_reciprocal): Replace gcall argument with a
2734 function decl. Remove optimize_insn_for_size_p check.
2735 Only handle machine functions.
2736 (rs6000_optab_supported_p): New function.
2737
2738 2015-12-03 Bernd Schmidt <bschmidt@redhat.com>
2739
2740 PR target/68471
2741 PR target/68472
2742 * config/i386/i386.c (ix86_mitigate_rop): Don't call
2743 compute_bb_for_insn again. Call df_insn_rescan_all.
2744 * config/i386/i386.md (set_got_rex64): Override modrm_class.
2745
2746 * regrename.c (build_def_use): Ignore stack regs if regstack_completed.
2747
2748 2015-12-03 Nathan Sidwell <nathan@acm.org>
2749
2750 * config/nvptx/nvptx-protos.h (npvptx_section_from_addr_space): Delete.
2751 * config/nvptx/nvptx.c (enum nvptx_data_area): New.
2752 (SYMBOL_DATA_AREA, SET_SYMBOL_DATA_AREA): New defines.
2753 (nvptx_option_override): Set data ares for worker vars.
2754 (nvptx_addr_space_from_sym): Delete.
2755 (nvptx_encode_section_info): New.
2756 (section_for_sym, section_for_decl): New.
2757 (nvptx_maybe_convert_symbolic_operand): Get data area from symbol flags.
2758 (nvptx_section_from_addr_space): Delete.
2759 (nvptx_section_for_decl): Delete.
2760 (nvptx_output_aligned, nvptx_declare_object_name,
2761 nvptx_assemble_undefined_decl): Use section_for_decl, remove
2762 unnecessary checks.
2763 (nvptx_print_operand): Add 'D', adjust 'A'.
2764 (nvptx_expand_worker_addr): Adjust unspec generation.
2765 (TARGET_ENCODE_SECTION_INFO): Override.
2766 * config/nvptx/nvptx.h (ADDR_SPACE_GLOBAL, ADDR_SPACE_SHARED,
2767 ADDR_SPACE_CONST, ADDR_SPACE_LOCAL, ADDR_SPACE_PARAM): Delete.
2768 * config/nvptx/nvptx.md (UNSPEC_FROM_GLOBAL, UNSPEC_FROM_LOCAL,
2769 UNSPEC_FROM_PARAM, UNSPEC_FROM_SHARED, UNSPEC_FROM_CONST,
2770 UNSPEC_TO_GLOBAL, UNSPEC_TO_LOCAL, UNSPEC_TO_PARAM,
2771 UNSPEC_TO_SHARED, UNSPEC_TO_CONST): Delete.
2772 (UNSPEC_TO_GENERIC): New.
2773 (nvptx_register_or_symbolic_operand): Delete.
2774 (cvt_code, cvt_name, cvt_str): Delete.
2775 (convaddr_<cvt_name><mode> [P]): Delete.
2776 (convaddr_<mode> [P]): New.
2777
2778 2015-12-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2779
2780 PR rtl-optimization/68624
2781 * ifcvt.c (noce_try_cmove_arith): Check clobbers of temp regs in both
2782 blocks if they exist and simplify the logic choosing the order to emit
2783 them in.
2784
2785 2015-12-03 Richard Biener <rguenther@suse.de>
2786
2787 PR tree-optimization/66051
2788 * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
2789 on load group size. Do not pass in vectorization_factor.
2790 (vect_transform_slp_perm_load): Do not require any permute support.
2791 (vect_build_slp_tree): Do not pass in vectorization factor.
2792 (vect_analyze_slp_instance): Do not compute vectorization
2793 factor estimate. Use vector size instead of vectorization factor
2794 estimate to split store groups for BB vectorization.
2795
2796 2015-12-03 Ilya Enkovich <enkovich.gnu@gmail.com>
2797
2798 * cfgexpand.c (expand_gimple_stmt_1): Return statement with
2799 DECL as return value is allowed to have NULL bounds.
2800
2801 2015-12-03 Tom de Vries <tom@codesourcery.com>
2802
2803 * graphite-isl-ast-to-gimple.c (binary_op_to_tree)
2804 (gcc_expression_from_isl_expr_op): Guard isl_ast_op_zdiv_r usage with
2805 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
2806
2807 2015-12-03 Richard Biener <rguenther@suse.de>
2808
2809 PR tree-optimization/67800
2810 PR tree-optimization/68333
2811 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Restore
2812 restriction to reduction contexts but allow SLP reductions as well.
2813 (vect_recog_sad_pattern): Likewise.
2814 (vect_recog_widen_sum_pattern): Likewise.
2815
2816 2015-12-03 Richard Biener <rguenther@suse.de>
2817
2818 PR tree-optimization/68639
2819 * tree-vect-data-refs.c (dr_group_sort_cmp): Split groups
2820 belonging to different loops.
2821 (vect_analyze_data_ref_accesses): Likewise.
2822
2823 2015-12-02 Kirill Yukhin <kirill.yukhin@intel.com>
2824
2825 * config/i386/sse.md (define_insn "vec_extract_hi_<mode>_maskm"):
2826 Remove "prefix_extra".
2827 (define_insn "vec_extract_hi_<mode>_mask"): New.
2828 (define_insn "vec_extract_hi_<mode>"): Remove masking.
2829
2830 2015-12-02 Jan Hubicka <hubicka@ucw.cz>
2831
2832 * ipa-pure-const.c (ignore_edge_for_pure_const): New function.
2833 (propagate_pure_const): Use it; fix comments and optimize loops.
2834
2835 2015-12-02 Jan Hubicka <hubicka@ucw.cz>
2836
2837 * ipa-pure-const.c (ignore_edge): Rename to ...
2838 (ignore_edge_for_nothrow) ... this one; also ignore eges to
2839 interposable functions or ones that can not throw.
2840 (propagate_nothrow): Fix handling of availability.
2841
2842 2015-12-02 Jan Hubicka <hubicka@ucw.cz>
2843
2844 PR ipa/68184
2845 * cgraphunit.c (cgraph_node::analyze): Set can_throw_external.
2846
2847 2015-12-02 Aditya Kumar <aditya.k7@samsung.com>
2848 Sebastian Pop <s.pop@samsung.com>
2849
2850 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Handle
2851 isl_ast_op_zdiv_r.
2852 (gcc_expression_from_isl_expr_op): Same.
2853
2854 2015-12-02 Aditya Kumar <aditya.k7@samsung.com>
2855 Sebastian Pop <s.pop@samsung.com>
2856
2857 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Check
2858 that insertion point is still in the region.
2859
2860 2015-12-02 Aditya Kumar <aditya.k7@samsung.com>
2861 Sebastian Pop <s.pop@samsung.com>
2862
2863 PR tree-optimization/68550
2864 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Add dump.
2865 (copy_bb_and_scalar_dependences): Do not code generate loop peeled
2866 statements.
2867
2868 2015-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2869
2870 * configure.ac: Check assembler support for R_PPC64_ENTRY relocation.
2871 * configure: Regenerate.
2872 * config.in: Regenerate.
2873 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): New
2874 function.
2875 (rs6000_output_function_prologue): Use it instead of checking
2876 cfun->machine->r2_setup_needed. Use internal labels instead of
2877 GNU as local label extension. Handle ELFv2 large code model.
2878 (rs6000_output_mi_thunk): Do not set cfun->machine->r2_setup_needed.
2879 (rs6000_elf_declare_function_name): Handle ELFv2 large code model.
2880
2881 2015-12-02 Jakub Jelinek <jakub@redhat.com>
2882
2883 PR target/68647
2884 * optabs.c (expand_doubleword_popcount, expand_doubleword_parity):
2885 New functions.
2886 (expand_unop): Use them.
2887
2888 2015-12-02 Marek Polacek <polacek@redhat.com>
2889
2890 PR c++/68653
2891 * tree.c (nonnull_arg_p): Allow OFFSET_TYPE.
2892
2893 2015-12-02 Nathan Sidwell <nathan@acm.org>
2894
2895 * config/nvptx/nvptx.c (enum nvptx_shuffle_kind): New. Absorb
2896 SHUFFLE defines.
2897 (nvptx_gen_shuffle, nvptx_print_operand, nvptx_expand_shuffle): Adjust.
2898
2899 2015-12-02 Aditya Kumar <aditya.k7@samsung.com>
2900 Sebastian Pop <s.pop@samsung.com>
2901
2902 * graphite-dependences.c (scop_get_reads): Add extra dumps.
2903 (scop_get_must_writes): Same.
2904 (scop_get_may_writes): Same.
2905 (compute_deps): Same.
2906 * graphite-sese-to-poly.c (bounds_are_valid): New.
2907 (pdr_add_data_dimensions): Call bounds_are_valid.
2908
2909 2015-12-02 Aditya Kumar <aditya.k7@samsung.com>
2910 Sebastian Pop <s.pop@samsung.com>
2911
2912 * common.opt (flag_loop_optimize_isl): Renamed flag_loop_nest_optimize.
2913 * graphite-poly.c (apply_poly_transforms): Same.
2914 * graphite.c (gate_graphite_transforms): Same.
2915 * toplev.c (process_options): Same.
2916
2917 2015-12-02 Eric Botcazou <ebotcazou@adacore.com>
2918
2919 * config/mips/mips.c (mips_emit_probe_stack_range): Adjust.
2920 (mips_output_probe_stack_range): Rotate the loop and simplify.
2921
2922 2015-12-02 David Sherwood <david.sherwood@arm.com>
2923
2924 * config/aarch64/aarch64.md: New pattern.
2925 * config/aarch64/aarch64-simd.md: Likewise.
2926 * config/aarch64/iterators.md: New unspecs, iterators.
2927
2928 2015-12-02 Pierre-Marie de Rodat <derodat@adacore.com>
2929
2930 * dwarf2out.c (dwar2out_var_location): In addition to notes,
2931 process indirect calls whose target is compile-time known.
2932 Enhance pattern matching to get the SYMBOL_REF they embed.
2933 (gen_subprogram_die): Handle such calls.
2934 * final.c (final_scan_insn): For call instructions, invoke the
2935 var_location debug hook only after the call has been emitted.
2936
2937 2015-12-02 Tom de Vries <tom@codesourcery.com>
2938
2939 * gimplify.c (enum gimplify_omp_var_data): Add enum value
2940 GOVD_MAP_FORCE.
2941 (oacc_default_clause): Fix default for scalars in oacc kernels.
2942 (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_FORCE.
2943
2944 2015-12-02 Tom de Vries <tom@codesourcery.com>
2945
2946 * omp-low.c (install_var_field, scan_sharing_clauses): Add and handle
2947 parameter base_pointers_restrict.
2948 (omp_target_base_pointers_restrict_p): New function.
2949 (scan_omp_target): Call scan_sharing_clauses with
2950 base_pointers_restrict arg.
2951
2952 2015-12-02 Nathan Sidwell <nathan@acm.org>
2953
2954 * config/nvptx/nvptx-protos.h (nvptx_output_mov_insn): Declare.
2955 (nvptx_underlying_object_mode): Delete.
2956 * config/nvptx/nvptx.c (nvptx_underlying_object_mode): Delete.
2957 (output_reg): New.
2958 (nvptx_declare_function_name): Use output_reg. Remove punning buffer.
2959 (nvptx_output_mov_insn): New.
2960 (nvptx_print_operand): Separate SUBREG handling, remove 'f' case,
2961 Use output_reg. Merge 't' and 'u' handling.
2962 * config/nvptx/nvptx.h (NVPTX_PUNNING_BUFFER_REGNUM): Delete.
2963 (struct machine_function): Remvoe punning_buffer_size.
2964 (REGISTER_NAMES): Remove %punbuffer.
2965 * config/nvptx/nvptx.md (UNSPEC_CPLX_LOWPART,
2966 UNSPEC_CPLX_HIGHPART): Delete.
2967 (*mov<mode>_insn [QHSDIM): Remove unnecessary constraints, use
2968 nvptx_output_mov_insn.
2969 (*mov<mode>_insn [SDFM): Reorder constraints to match integer moc.
2970 Use nvptx_output_mov_insn.
2971 (highpartscsf2, set_highpartscsf2, lowpartscsf2, set_lowpartscsf2):
2972 Delete.
2973 (mov<mode> [SDCM]): Delete.
2974
2975 2015-12-02 Richard Biener <rguenther@suse.de>
2976
2977 * tree.h (tree_invariant_p): Declare.
2978 * tree.c (tree_invariant_p): Export.
2979 * genmatch.c (dt_simplify::gen_1): For GENERIC code-gen never
2980 create SAVE_EXPRs but reject patterns if we would need to.
2981
2982 2015-12-02 Tom de Vries <tom@codesourcery.com>
2983
2984 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call)
2985 (find_func_clobbers, ipa_pta_execute): Handle BUILT_IN_GOACC_PARALLEL.
2986
2987 2015-12-02 Segher Boessenkool <segher@kernel.crashing.org>
2988
2989 * config/rs6000/rs6000.md (cstore_si_as_di): New expander.
2990 (cstore<mode>4): Use it.
2991
2992 2015-12-02 Richard Biener <rguenther@suse.de>
2993
2994 PR tree-optimization/68625
2995 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not call
2996 cleanup_control_flow_bb.
2997 (cleanup_tree_cfg_1): First perform cleanup_control_flow_bb
2998 on all BBs, then cleanup_tree_cfg_bb and finally iterate
2999 over the worklist doing both.
3000
3001 2015-12-02 Richard Sandiford <richard.sandiford@arm.com>
3002
3003 PR tree-optimization/68432
3004 * coretypes.h (optimization_type): New enum.
3005 * doc/tm.texi.in (TARGET_OPTAB_SUPPORTED_P): New hook.
3006 * doc/tm.texi: Regenerate.
3007 * target.def (optab_supported_p): New hook.
3008 * targhooks.h (default_optab_supported_p): Declare.
3009 * targhooks.c (default_optab_supported_p): New function.
3010 * predict.h (function_optimization_type): Declare.
3011 (bb_optimization_type): Likewise.
3012 * predict.c (function_optimization_type): New function.
3013 (bb_optimization_type): Likewise.
3014 * optabs-query.h (convert_optab_handler): Define an overload
3015 that takes an optimization type.
3016 (direct_optab_handler): Likewise.
3017 * optabs-query.c (convert_optab_handler): Likewise.
3018 (direct_optab_handler): Likewise.
3019 * internal-fn.h (direct_internal_fn_supported_p): Take an
3020 optimization_type argument.
3021 * internal-fn.c (direct_optab_supported_p): Likewise.
3022 (multi_vector_optab_supported_p): Likewise.
3023 (direct_internal_fn_supported_p): Likewise.
3024 * builtins.c (replacement_internal_fn): Update call to
3025 direct_internal_fn_supported_p.
3026 * gimple-match-head.c (build_call_internal): Likewise.
3027 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
3028 * tree-vect-stmts.c (vectorizable_internal_function): Likewise.
3029 * tree.c (maybe_build_call_expr_loc): Likewise.
3030 * config/i386/i386.c (ix86_optab_supported_p): New function.
3031 (TARGET_OPTAB_SUPPORTED_P): Define.
3032 * config/i386/i386.md (asinxf2): Remove optimize_insn_for_size_p check.
3033 (asin<mode>2, acosxf2, acos<mode>2, log1pxf2, log1p<mode>2)
3034 (expNcorexf3, expxf2, exp<mode>2, exp10xf2, exp10<mode>2, exp2xf2)
3035 (exp2<mode>2, expm1xf2, expm1<mode>2, ldexpxf3, ldexp<mode>3)
3036 (scalbxf3, scalb<mode>3, rint<mode>2, round<mode>2)
3037 (<rounding_insn>xf2, <rounding_insn><mode>2): Likewise.
3038
3039 2015-12-02 Richard Sandiford <richard.sandiford@arm.com>
3040
3041 * Makefile.in (GENSUPPORT_H): New macro.
3042 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
3043 (build/genattr-common.o, build/genattrtab.o, build/genautomata.o)
3044 (build/gencodes.o, build/genconditions.o, build/genconfig.o)
3045 (build/genconstants.o, build/genextract.o, build/genflags.o)
3046 (build/gentarget-def.o): Use it.
3047 (build/genemit.o): Likewise. Depend on internal-fn.def.
3048 * genopinit.c: Move block comment to optabs.def.
3049 (optab_tag, optab_def): Move to gensupport.h
3050 (pattern): Likewise, renaming to optab_pattern.
3051 (match_pattern): Move to gensupport.c
3052 (gen_insn): Use find_optab.
3053 (patterns, pattern_cmp): Replace pattern with optab_pattern.
3054 (main): Likewise. Use num_optabs.
3055 * optabs.def: Add comment that was previously in genopinit.c.
3056 * gensupport.h (optab_tag): Moved from genopinit.c
3057 (optab_def): Likewise, expanding commentary.
3058 (optab_pattern): Likewise, after renaming from pattern.
3059 (optabs, num_optabs, find_optab): Declare.
3060 * gensupport.c (optabs): Moved from genopinit.c.
3061 (num_optabs): New variable.
3062 (match_pattern): Moved from genopinit.c.
3063 (find_optab): New function, extracted from genopinit.c:gen_insn.
3064 * genemit.c (nofail_optabs): New variable.
3065 (emit_c_code): New function.
3066 (gen_expand): Check whether the instruction is an optab that isn't
3067 allowed to fail. Call emit_c_code.
3068 (gen_split): Call emit_c_code here too.
3069 (main): Initialize nofail_optabs. Don't emit FAIL and DONE here.
3070
3071 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3072
3073 * config/s390/predicates.md (const_mask_operand): New predicate.
3074 * config/s390/s390-builtins.def: Set a smaller bitmask
3075 for a few builtins.
3076 * config/s390/vector.md: Change predicate from immediate_operand
3077 to either const_int_operand or const_mask_operand. Add special
3078 insn conditions on patterns which have to exclude certain values.
3079 * config/s390/vx-builtins.md: Likewise.
3080
3081 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3082
3083 * config/s390/vector.md ("*vec_set<mode>"): Change shift count
3084 mode from DI to SI.
3085
3086 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3087
3088 * config/s390/s390-builtin-types.def: New builtin types added.
3089 * config/s390/s390-builtins.def: Add s390_vec_splat_* definitions.
3090 * config/s390/s390.c (s390_expand_builtin): Always truncate
3091 constants to the mode in the pattern.
3092 * config/s390/vecintrin.h: Let the vec_splat_* macros point to the
3093 respective builtin __builtin_s390_vec_splat_*.
3094
3095 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3096
3097 * config/s390/s390-builtin-types.def: Sort builtin types.
3098
3099 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3100
3101 * config/s390/s390-c.c (s390_get_vstring_flags): Invert the
3102 condition for the RT flag.
3103
3104 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3105
3106 * config/s390/constraints.md ("jKK"): New constraint.
3107 * config/s390/s390.c (tm-constrs.h): Include for
3108 satisfies_constraint_*.
3109 (s390_legitimate_constant_p): Allow jKK constants. Use
3110 satisfies_constraint_* also for the others.
3111 (legitimate_reload_vector_constant_p): Likewise.
3112 (print_operand): Allow h output modifier on vectors.
3113 * config/s390/vector.md ("mov<mode>"): Add vrepi.
3114
3115 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3116
3117 * config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
3118 letter I->K.
3119
3120 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3121
3122 * config/s390/s390.md ("bswap<mode>2"): Add support for strv and strvg.
3123 ("bswaphi2"): New pattern.
3124 New splitter for HI reg-reg bswap.
3125
3126 2015-11-27 Jiri Engelthaler <engycz@gmail.com>
3127
3128 PR driver/68029
3129 * opts-common.c (prune_options): Don't ignore -fdiagnostics-color
3130 if it is the first parameter.
3131
3132 2015-12-01 Richard Sandiford <richard.sandiford@arm.com>
3133
3134 PR tree-optimization/68577
3135 * tree-vect-stmts.c (simple_integer_narrowing): New function.
3136 (vectorizable_call): Restrict internal function handling
3137 to NONE and NARROW cases, using simple_integer_narrowing
3138 to test for the latter. Add cost of narrowing operation
3139 and insert it where necessary.
3140
3141 2015-12-01 Andreas Tobler <andreast@gcc.gnu.org>
3142
3143 * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
3144 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
3145 rs6000_current_abi to ABI_AIX or ABI_ELFv2.
3146
3147 2015-12-01 Nathan Sidwell <nathan@acm.org>
3148
3149 * config/nvptx/nvptx-protos.h (nvptx_output_aligned_decl): Declare.
3150 * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
3151 ASM_OUTPUT_ALIGNED_DECL_LOCAL): Forward to nvptx_output_aligned_decl.
3152 * config/nvptx/nvptx.c (write_fn_marker, write_var_marker): New.
3153 (write_fn_proto, write_fn_proto_from_insn): Call write_fn_marker.
3154 (init_output_initializer): Call write_var_marker.
3155 (nvptx_output_aligned_decl): New.
3156 (nvptx_assemble_undefined_decl, nvptx_file_end): Call write_var_marker.
3157
3158 2015-12-01 Jan Hubicka <hubicka@ucw.cz>
3159
3160 * c-common.c (parse_optimize_options): Do not silently ignore
3161 -fstrict-aliasing changes.
3162
3163 2015-12-01 Jan Hubicka <hubicka@ucw.cz>
3164
3165 * lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
3166 * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
3167 stream TYPE_ALIAS_SET.
3168 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
3169 stream TYPE_ALIAS_SET.
3170
3171 2015-12-01 Nathan Sidwell <nathan@acm.org>
3172
3173 * config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
3174 consider mode.
3175
3176 2015-12-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3177
3178 * config/rs6000/rs6000.c (const_load_sequence_p): Handle extra
3179 indirection for large and small code models.
3180 (adjust_vperm): Likewise.
3181
3182 2015-12-01 Julian Brown <julian@codesourcery.com>
3183 Cesar Philippidis <cesar@codesourcery.com>
3184 James Norris <James_Norris@mentor.com>
3185
3186 * gimple-pretty-print.c (dump_gimple_omp_target): Add host_data support.
3187 * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA.
3188 (is_gimple_omp_oacc): Add support for above.
3189 * gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA.
3190 (omp_notice_variable): Diagnose undefined implicit uses of
3191 use_device variables in offloaded regions.
3192 (gimplify_scan_omp_clauses): Add host_data, use_device
3193 support. Diagnose undefined mapping of use_device variables in
3194 OpenACC clauses.
3195 (gimplify_omp_workshare): Add host_data support.
3196 (gimplify_expr): Likewise.
3197 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New.
3198 * omp-low.c (lookup_decl_in_outer_ctx)
3199 (maybe_lookup_decl_in_outer_ctx): Add optional argument to skip
3200 host_data regions.
3201 (scan_sharing_clauses): Support use_device.
3202 (check_omp_nesting_restrictions): Support host_data.
3203 (expand_omp_target): Support host_data.
3204 (lower_omp_target): Skip over outer host_data regions when looking
3205 up decls. Support use_device.
3206 (make_gimple_omp_edges): Support host_data.
3207 * tree-nested.c (convert_nonlocal_omp_clauses): Add use_device clause.
3208
3209 2015-12-01 Marek Polacek <polacek@redhat.com>
3210
3211 PR middle-end/68582
3212 * cgraphunit.c (check_global_declaration): Only depend
3213 on TREE_THIS_VOLATILE for VAR_DECLs.
3214
3215 2015-12-01 Richard Sandiford <richard.sandiford@arm.com>
3216
3217 PR tree-optimization/68474
3218 * tree-call-cdce.c (use_internal_fn): Protect call to
3219 gen_shrink_wrap_conditions.
3220
3221 2015-12-01 Christian Bruel <christian.bruel@st.com>
3222
3223 PR target/68617
3224 * config/arm/arm.opt (unaligned_access): Save.
3225 * config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define.
3226 * config/arm/arm.c (arm_option_override): Move unaligned_access setting.
3227 (arm_option_override_internal): ... here.
3228 * config/arm/arm.h (TARGET_32BIT_P): New macro.
3229
3230 2015-12-01 Richard Biener <rguenther@suse.de>
3231
3232 PR tree-optimization/68379
3233 * tree-vect-stmts.c (vectorizable_load): For BB vectorization
3234 always base loads on the first used DR of a group.
3235 * tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment):
3236 Compute alignment of the first scalar element unconditionally.
3237
3238 2015-12-01 Richard Biener <rguenther@suse.de>
3239
3240 PR middle-end/68590
3241 * genmatch.c (struct capture_info): Add match_use_count.
3242 (capture_info::walk_match): Increment match_use_count.
3243 (dt_simplify::gen_1): For GENERIC, only wrap multi-use
3244 replacements in a save_expr if they occur more often than
3245 in the original expression.
3246
3247 2015-12-01 Richard Biener <rguenther@suse.de>
3248
3249 PR ipa/68470
3250 * ipa-split.c (split_function): Handle main part not returning.
3251
3252 2015-12-01 Ilya Enkovich <enkovich.gnu@gmail.com>
3253
3254 PR middle-end/68595
3255 * tree-vect-stmts.c (vect_init_vector): Cast boolean
3256 scalars to a proper value before building a vector.
3257
3258 2015-12-01 Richard Sandiford <richard.sandiford@arm.com>
3259
3260 * genattrtab.c (check_attr_test): Take an attr_desc instead of
3261 an is_const flag. Put the file_location argument first.
3262 Update recursive calls. Improve error messages.
3263 (check_attr_value): Take a file location and use it instead
3264 of attr->loc. Improve error messages. Update calls to
3265 check_attr_test.
3266 (check_defs): Update call to check_attr_value.
3267 (make_canonical): Likewise.
3268 (gen_attr): Likewise.
3269 (main): Likewise.
3270 (gen_insn_reserv): Update call to check_attr_test.
3271
3272 2015-12-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3273
3274 * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo.
3275
3276 2015-12-01 Richard Biener <rguenther@suse.de>
3277
3278 PR middle-end/68590
3279 * match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns.
3280
3281 2015-12-01 Jan Hubicka <hubicka@ucw.cz>
3282
3283 * ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
3284 odr_type_p): Move to ...
3285 * ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p,
3286 odr_type_p): here; miscro-optimize.
3287
3288 2015-12-01 Bin Cheng <bin.cheng@arm.com>
3289
3290 PR tree-optimization/68529
3291 * tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param.
3292 Compute no-overflow information for control iv.
3293 (number_of_iterations_lt, number_of_iterations_le): Add new param.
3294 (number_of_iterations_cond): Pass new argument to above functions.
3295
3296 2015-11-30 Jan Hubicka <hubicka@ucw.cz>
3297
3298 * ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
3299 inlining -fno-strict-aliasing into -fstrict-aliasing body.
3300
3301 2015-11-30 Aditya Kumar <aditya.k7@samsung.com>
3302 Sebastian Pop <s.pop@samsung.com>
3303
3304 PR tree-optimization/68565
3305 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on
3306 codegen_error. Fail when rhs of division operations is integer_zerop.
3307 (ternary_op_to_tree): Early return on codegen_error.
3308 (unary_op_to_tree): Same.
3309 (nary_op_to_tree): Same.
3310 (gcc_expression_from_isl_expr_op): Same.
3311 (gcc_expression_from_isl_expression): Same.
3312 (graphite_create_new_loop): On codegen_error continue generating
3313 wrong code.
3314 (graphite_create_new_loop_guard): Same.
3315 (build_iv_mapping): Same.
3316 (graphite_create_new_guard): Same.
3317
3318 2015-11-30 Aditya Kumar <aditya.k7@samsung.com>
3319 Sebastian Pop <s.pop@samsung.com>
3320
3321 * graphite-isl-ast-to-gimple.c: Fix dump messages.
3322 * graphite-scop-detection.c: Same.
3323 * graphite-sese-to-poly.c (isl_id_for_ssa_name): Do not call get_name.
3324
3325 2015-11-30 Cesar Philippidis <cesar@codesourcery.com>
3326
3327 * tree-nested.c (convert_nonlocal_omp_clauses): Add support for
3328 OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
3329 (convert_local_omp_clauses): Likewise.
3330
3331 2015-11-30 Tom de Vries <tom@codesourcery.com>
3332
3333 PR tree-optimization/46032
3334 * tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
3335 factored out of ...
3336 (find_func_aliases_for_call): ... here.
3337 (find_func_aliases_for_builtin_call, find_func_clobbers): Handle
3338 BUILT_IN_GOMP_PARALLEL.
3339 (ipa_pta_execute): Same. Handle node->parallelized_function as a local
3340 function.
3341
3342 2015-11-30 Jakub Jelinek <jakub@redhat.com>
3343
3344 PR tree-optimization/68501
3345 * target.def (builtin_reciprocal): Replace the 3 arguments with
3346 a gcall * one, adjust description.
3347 * targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
3348 with a gcall * one.
3349 * targhooks.c (default_builtin_reciprocal): Likewise.
3350 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
3351 targetm.builtin_reciprocal even on internal functions, adjust
3352 the arguments and allow replacing an internal function with normal
3353 built-in.
3354 * config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
3355 with a gcall * one. Handle internal fns too.
3356 * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
3357 * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
3358 * doc/tm.texi (builtin_reciprocal): Document.
3359
3360 2015-11-30 Richard Biener <rguenther@suse.de>
3361
3362 PR tree-optimization/68592
3363 * tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
3364 on the pattern def sequence.
3365
3366 2015-11-30 Nathan Sidwell <nathan@acm.org>
3367
3368 * config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
3369 (write_one_arg): Reorder parms, add 'sep' param.
3370 (nvptx_write_function_decl): Rename to ...
3371 (write_fn_proto): ... here. Do name replacement. Emit linaer
3372 comment marker. Deal with both decls and defns. Simplify argument
3373 formatting.
3374 (write_function_decl_and_comment): Delete.
3375 (write_func_decl_from_insn): Rename to ...
3376 (write_fn_proto_from_insn): ... here. Don't do name replacement.
3377 (nvptx_record_fndecl): Call write_fn_proto.
3378 (nvptx_record_libfunc): Call write_fn_proto_from_insn.
3379 (nvptx_declare_function_name): Adjust for write_fn_proto changes.
3380 (nvotx_output_call_insn): Call write_fn_prot_from_insn.
3381
3382 2015-11-30 Kirill Yukhin <kirill.yukhin@intel.com>
3383
3384 * config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
3385 (define_insn "*k<logic><mode>"): Use new iterator.
3386
3387 2015-11-30 Eric Botcazou <ebotcazou@adacore.com>
3388
3389 PR target/28115
3390 * config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
3391 (sparc_adjust_cost): Add missing space.
3392
3393 2015-11-30 Richard Biener <rguenther@suse.de>
3394
3395 PR c/68162
3396 * dwarf2out.c (gen_type_die_with_usage): Keep variant types of arrays.
3397
3398 2015-11-30 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com>
3399
3400 * tree-if-conv.c (struct ifc_dr): Add new tree base_predicate field.
3401 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
3402 base ref, DR pairs and store base_predicate for write type DRs.
3403 (ifcvt_memrefs_wont_trap): Guard checks with
3404 -ftree-loop-if-convert-stores flag.
3405
3406 2015-11-29 Jan Hubicka <hubicka@ucw.cz>
3407
3408 * cgraph.c (cgraph_node::make_local): No name is unique during
3409 incremental linking.
3410 * cgraph.h (can_be_discarded_p): Update comment; also common and
3411 WEAK in named sections can be discarded; when doing incremental
3412 link do not rely on resolution being the final one.
3413 * varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
3414 When symbol can be discarded, do not rely on resolution info.
3415 * symtab.c (symtab_node::nonzero_address): Take into account that
3416 symbol can be discarded.
3417 * ipa-visibility.c (update_visibility_by_resolution_info): Handle
3418 definition correctly.
3419 (function_and_variable_visibility): Do not set unique_name when
3420 incrementally linking.
3421
3422 2015-11-29 Nathan Sidwell <nathan@acm.org>
3423
3424 * config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
3425 const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
3426 (ctrap<mode>): Use const0_operand.
3427
3428 2015-11-29 Jan Hubicka <hubicka@ucw.cz>
3429
3430 * ipa-devirt.c (add_type_duplicate): Remove redundant
3431 ODR violation dump.
3432
3433 2015-11-29 David Edelsohn <dje.gcc@gmail.com>
3434
3435 PR target/28115
3436 * config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
3437 recog_memoized test for insn and check recog_memoized for dep_insn.
3438
3439 2015-11-28 Nathan Sidwell <nathan@acm.org>
3440
3441 * config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
3442 (FRAME_POINTER_CFA_OFFSET): Define.
3443 (struct nvptx_args): Use 'tree' type.
3444 (INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.
3445
3446 2015-11-28 Tom de Vries <tom@codesourcery.com>
3447
3448 * lto-wrapper.c (run_gcc): Handle -flinker-output argument.
3449
3450 2015-11-27 Jonathan Wakely <jwakely@redhat.com>
3451
3452 * doc/invoke.texi (Option Summary): Use negative form of
3453 -Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
3454 sort alphabetically and re-justify.
3455
3456 2015-11-27 Vladimir Makarov <vmakarov@redhat.com>
3457
3458 PR rtl-optimization/68536
3459 * lra.c (lra_emit_add): Add code for null base.
3460 * lra-constraints.c (curr_insn_transform): Skip operators for
3461 subreg reloads.
3462
3463 2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3464
3465 Revert
3466 2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3467
3468 * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
3469 multiple_sets.
3470 (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
3471 are not modified by the final modified insns in the basic blocks.
3472
3473 2015-11-27 Nathan Sidwell <nathan@acm.org>
3474
3475 * config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
3476 Don't declare.
3477 * config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
3478 (nvptx_maybe_convert_symbolic_operand): Simplify.
3479 (nvptx_addr_space_from_address): Delete.
3480 (nvptx_print_operand): Adjust 'A' case.
3481
3482 2015-11-27 Richard Biener <rguenther@suse.de>
3483
3484 PR tree-optimization/68559
3485 * tree-vect-data-refs.c (vect_analyze_group_access_1): Move
3486 peeling for gap checks ...
3487 * tree-vect-stmts.c (vectorizable_load): ... here and relax for SLP.
3488 * tree-vect-loop.c (vect_analyze_loop_2): Re-set
3489 LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.
3490
3491 2015-11-27 Nathan Sidwell <nathan@acm.org>
3492
3493 * config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't declare.
3494 * config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
3495 (nvptx_record_fndecl): Don't return value, remove force
3496 argument. Require fndecl.
3497 (nvptx_record_libfunc): New.
3498 (nvptx_record_needed_decl): Deteermine how to record decl here.
3499 (nvptx_maybe_record_fnsym): New.
3500 (nvptx_expand_call): Don't record libfuncs here,
3501 (nvptx_maybe_convert_symbolic_operand): Use
3502 nvptx_maye_record_fnsym.
3503 (nvptx_assemble_integer): Reimplement with single switch.
3504 (nvptx_output_call_insn): Register libfuncs here.
3505 (nvptx_file_end): Adjust nvptx_record_fndecl call.
3506 * config/nvptx/nvptx.md (expand_movdi): Don't call
3507 nvptx_record_needed_decl.
3508
3509 2015-11-27 Richard Biener <rguenther@suse.de>
3510
3511 PR tree-optimization/68553
3512 * tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
3513 generation for 1:1 permutations.
3514 (vect_transform_slp_perm_load): Detect 1:1 permutations.
3515
3516 2015-11-27 Bernd Schmidt <bschmidt@redhat.com>
3517
3518 * gimple.h (nonbarrier_call_p): Declare.
3519 * gimple.c (nonbarrier_call_p): New function.
3520 * tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
3521 Also increment call phase for ASMs with vdef and potential barrier
3522 calls.
3523
3524 2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3525
3526 * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
3527 multiple_sets.
3528 (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
3529 are not modified by the final modified insns in the basic blocks.
3530
3531 2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3532
3533 PR rtl-optimization/68506
3534 * ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
3535 first if emit_a exists or then_bb modifies 'b'. Reindent if-else
3536 blocks.
3537
3538 2015-11-27 Martin Liska <mliska@suse.cz>
3539
3540 PR c++/68312
3541 * vec.h (release_vec_vec): New function.
3542
3543 2015-11-27 Jakub Jelinek <jakub@redhat.com>
3544
3545 PR tree-optimization/68552
3546 * optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
3547 (expand_vec_perm): ... here. Do it regardless of vec_perm_const_optab
3548 or whether v0 == v1.
3549
3550 2015-11-27 Martin Liska <mliska@suse.cz>
3551
3552 * tree-ssa-uninit.c: Fix whitespaces in the source file.
3553 The change is just automatical.
3554
3555 2015-11-27 Martin Liska <mliska@suse.cz>
3556
3557 * tree-chkp.c (chkp_make_static_bounds): Release buffer
3558 used for string.
3559
3560 2015-11-27 Martin Liska <mliska@suse.cz>
3561
3562 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
3563 Do not release memory for comp_alias_ddrs.
3564 * tree-vect-loop.c (destroy_loop_vec_info): Release
3565 the memory for all loop_vec_info.
3566
3567 2015-11-27 Martin Liska <mliska@suse.cz>
3568
3569 * ipa-devirt.c (ipa_devirt): Use auto_vec instead
3570 of a local-scope vec.
3571 (struct final_warning_record): Use auto_vec instead of vec.
3572
3573 2015-11-27 Richard Biener <rguenther@suse.de>
3574
3575 PR tree-optimization/68553
3576 * tree-vect-slp.c (vect_get_mask_element): Remove.
3577 (vect_transform_slp_perm_load): Implement in a simpler way.
3578
3579 2015-11-26 Alexandre Oliva <aoliva@redhat.com>
3580
3581 PR rtl-optimization/67753
3582 PR rtl-optimization/64164
3583 * function.c (assign_parm_setup_block): Right-shift
3584 upward-padded big-endian args when bypassing the stack slot.
3585
3586 2015-11-26 Maciej W. Rozycki <macro@imgtec.com>
3587
3588 * doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
3589 `-mcompact-branches='.
3590 (MIPS Options): Likewise.
3591
3592 2015-11-26 Jakub Jelinek <jakub@redhat.com>
3593
3594 * Makefile.in (build/genmatch.o): Depend on internal-fn.def.
3595
3596 2015-11-26 David Edelsohn <dje.gcc@gmail.com>
3597
3598 * doc/install.texi (Prerequisites): Increase ISL requirement to
3599 0.14 or 0.15.
3600
3601 2015-11-26 Matthew Wahab <matthew.wahab@arm.com>
3602
3603 * config/aarch64/arm_neon.h
3604 (vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New.
3605 (vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New.
3606 (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
3607 (vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New.
3608 (vqrdmlah_lane_s16, vqrdmlah_lane_s32): New.
3609 (vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New.
3610 (vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New.
3611 (vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New.
3612 (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
3613 (vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New.
3614 (vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New.
3615 (vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New.
3616
3617 2015-11-26 Matthew Wahab <matthew.wahab@arm.com>
3618
3619 * config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
3620 (vqrdmlahq_s16, vqrdmlahq_s32): New.
3621 (vqrdmlsh_s16, vqrdmlsh_s32): New.
3622 (vqrdmlshq_s16, vqrdmlshq_s32): New.
3623
3624 2015-11-26 Matthew Wahab <matthew.wahab@arm.com>
3625
3626 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
3627 ARM_FEATURE_QRDMX.
3628
3629 2015-11-26 Pierre-Marie de Rodat <derodat@adacore.com>
3630
3631 PR debug/53927
3632 * tree-nested.c (finalize_nesting_tree_1): Append a field to
3633 hold the frame base address.
3634 * dwarf2out.c (gen_subprogram_die): Generate for
3635 DW_AT_static_link a location description that computes the value
3636 of this field.
3637
3638 2015-11-26 Tom de Vries <tom@codesourcery.com>
3639
3640 revert:
3641 2015-11-25 Tom de Vries <tom@codesourcery.com>
3642
3643 * cfgloop.c (find_single_latch): New function, factored out of ...
3644 (flow_loops_find): ... here.
3645 (verify_loop_structure): Improve verification of loop->latch.
3646 * cfgloop.h (find_single_latch): Declare.
3647 * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
3648
3649 2015-11-26 Matthew Wahab <matthew.wahab@arm.com>
3650
3651 * config/aarch64/aarch64-simd-builtins.def:
3652 Add missing changes from r230962.
3653
3654 2015-11-26 Nathan Sidwell <nathan@acm.org>
3655
3656 * config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee
3657 arg with name. Don't deal with split regs. Tweak formatting.
3658 (nvptx_expand_call): Adjust write_func_decl_from_insn call.
3659 (nvptx_output_call_insn): Don't deal with split regs here.
3660
3661 2015-11-26 Matthew Wahab <matthew.wahab@arm.com>
3662
3663 * config/aarch64/aarch64-simd-builtins.def
3664 (sqrdmlah, sqrdmlsh): New.
3665 (sqrdmlah_lane, sqrdmlsh_lane): New.
3666 (sqrdmlah_laneq, sqrdmlsh_laneq): New.
3667
3668 2015-11-26 Matthew Wahab <matthew.wahab@arm.com>
3669
3670 * config/aarch64/aarch64-simd.md
3671 (aarch64_sqmovun<mode>): Fix some white-space.
3672 (aarch64_<sur>qmovun<mode>): Likewise.
3673 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New.
3674 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New.
3675 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New.
3676 * config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New.
3677 (UNSPEC_SQRDMLSH): New.
3678 (SQRDMLH_AS): New.
3679 (rdma_as): New.
3680
3681 2015-11-26 Richard Biener <rguenther@suse.de>
3682
3683 PR tree-optimization/66721
3684 * tree-vect-loop.c (vect_analyze_loop_2): Compute scalar
3685 iteration cost earlier. Re-do analysis without SLP when
3686 vectorization using SLP fails and without has a chance to succeed.
3687
3688 2015-11-26 Richard Biener <rguenther@suse.de>
3689
3690 * genmatch.c (dt_simplify::gen_1): For generic wrap all
3691 multi-result-use captures in a SAVE_EXPR.
3692
3693 2015-11-26 Matthew Wahab <matthew.wahab@arm.com>
3694
3695 * config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
3696 (TARGET_SIMD_RDMA): New.
3697
3698 2015-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3699
3700 * combine.c (subst): Do not return clobber of zero in widening mult
3701 case. Just return x unchanged if it is a no-op substitution.
3702
3703 2015-11-26 Vladimir Makarov <vmakarov@redhat.com>
3704
3705 PR target/68416
3706 * config/i386/i386.h (enum reg_class): Add
3707 bounds registers to ALL_REGS.
3708
3709 2015-11-26 Jakub Jelinek <jakub@redhat.com>
3710
3711 PR tree-optimization/68128
3712 * tree.h (OMP_CLAUSE_SHARED_READONLY): Define.
3713 * gimplify.c: Include gimple-walk.h.
3714 (enum gimplify_omp_var_data): Add GOVD_WRITTEN.
3715 (omp_notice_variable): Set flags to n->value if n already
3716 exists in target region, but we need to jump to do_outer.
3717 (omp_shared_to_firstprivate_optimizable_decl_p,
3718 omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New
3719 functions.
3720 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY
3721 on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
3722 not modified in the body. Call omp_mark_stores for outer
3723 contexts on OMP_CLAUSE_SHARED clauses if they could be written
3724 in the body or on OMP_CLAUSE_LASTPRIVATE.
3725 (gimplify_adjust_omp_clauses): Add body argument, call
3726 omp_find_stores_{stmt,op} on the body through walk_gimple_seq.
3727 Set OMP_CLAUSE_SHARED_READONLY
3728 on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
3729 not modified in the body. Call omp_mark_stores for outer
3730 contexts on OMP_CLAUSE_SHARED clauses if they could be written
3731 in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR
3732 without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION.
3733 (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task,
3734 gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update,
3735 gimplify_expr): Adjust gimplify_adjust_omp_clauses callers.
3736 * tree-nested.c (convert_nonlocal_omp_clauses,
3737 convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on
3738 non-local vars or local vars referenced from nested routines.
3739 * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY
3740 attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE. Even for
3741 TREE_READONLY, don't call use_pointer_for_field with non-NULL
3742 second argument until we are sure we are keeping OMP_CLAUSE_SHARED.
3743
3744 2015-11-26 Paolo Bonzini <bonzini@gnu.org>
3745
3746 * doc/implement-c.texi (Integers Implementation): Make GCC's promises
3747 about signed left shift stronger and clarify the cases when they're
3748 broken.
3749
3750 2015-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3751 Bernd Schmidt <bschmidt@redhat.com>
3752
3753 PR rtl-optimization/67226
3754 * calls.c (store_one_arg): Take into account
3755 crtl->args.pretend_args_size when checking for overlap between
3756 arg->value and argblock + arg->locate.offset during sibcall
3757 optimization.
3758
3759 2015-11-26 Wilco Dijkstra <wdijkstr@arm.com>
3760
3761 * config/aarch64/aarch64.md (cbranch<mode>4): Use
3762 aarch64_fp_compare_operand.
3763 (store_pairsf): Use aarch64_reg_or_fp_zero.
3764 (store_pairdf): Likewise.
3765 (cstore<mode>4): Use aarch64_fp_compare_operand.
3766 (cmov<mode>6): Likewise.
3767 * config/aarch64/aarch64-ldpstp.md: Use aarch64_reg_or_fp_zero.
3768
3769 2015-11-25 Aditya Kumar <aditya.k7@samsung.com>
3770 Sebastian Pop <s.pop@samsung.com>
3771
3772 PR tree-optimization/68453
3773 * graphite-isl-ast-to-gimple.c (translate_isl_ast_for_loop): Do
3774 not redirect edges already pointing to their destination.
3775 (translate_isl_ast_node_for): Split edges after loops to create
3776 basic blocks for close phi nodes. Save merge points at the end of
3777 a loop guard.
3778 (translate_isl_ast_node_if): Save merge points at the end of the
3779 if region.
3780 (add_close_phis_to_outer_loops): New.
3781 (add_close_phis_to_merge_points): New.
3782 (copy_loop_close_phi_args): Call add_close_phis_to_merge_points.
3783 (copy_bb_and_scalar_dependences): Do not split basic blocks on
3784 loop close phi locations.
3785
3786 2015-11-25 Jan Hubicka <jh@suse.cz>
3787
3788 * ipa-visibility.c (cgraph_externally_visible_p,
3789 varpool_node::externally_visible_p): When doing incremental linking,
3790 hidden symbols may be still used later.
3791 (update_visibility_by_resolution_info): Do not drop weak during
3792 incremental link.
3793 (function_and_variable_visibility): Fix formating.
3794 * flag-types.h (lto_linker_output): Declare.
3795 * common.opt 9flag_incremental_link): New flag.
3796
3797 2015-11-25 Michael Meissner <meissner@linux.vnet.ibm.com>
3798
3799 * config/rs6000/constraints.md (wb constraint): New constraint for
3800 ISA 3.0 d-form scalar addressing.
3801
3802 * config/rs6000/rs6000.c (mode_supports_vmx_dform): Add support
3803 for ISA 3.0 D-form addressing to load SFmode/DFmode scalars into
3804 Altivec registers. Add wb constraint for Altivec registers with
3805 D-form addressing. If we have ISA 3.0 d-form support, undo
3806 secondary reload support for using FPR registers if we want to do
3807 D-form addressing.
3808 (rs6000_debug_reg_global): Likewise.
3809 (rs6000_setup_reg_addr_masks): Likewise.
3810 (rs6000_init_hard_regno_mode_ok): Likewise.
3811 (rs6000_secondary_reload): Likewise.
3812 (rs6000_preferred_reload_class): Likewise.
3813 (rs6000_secondary_reload_class): Likewise.
3814
3815 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wb
3816 constraint.
3817
3818 * config/rs6000/rs6000.md (f32_lr2 mode attribute): Add support
3819 for ISA 3.0 SFmode/DFmode d-form addressing to Altivec registers.
3820 (f32_lm2): Likewise.
3821 (f32_li2): Likewise.
3822 (f32_sr2): Likewise.
3823 (f32_sm2): Likewise.
3824 (f32_si2): Likewise.
3825 (f64_p9): Likewise.
3826 (extendsfdf2_fpr): Likewise.
3827 (mov<mode>_hardfloat): Likewise.
3828 (mov<mode>_hardfloat32): Likewise.
3829 (mov<mode>_hardfloat64): Likewise.
3830
3831 * doc/md.texi (RS/6000 constraints): Document wb constraint.
3832 Fixup we constraint documentation.
3833
3834 2015-11-25 Tom de Vries <tom@codesourcery.com>
3835
3836 * omp-low.c (pass_expand_omp_ssa::clone): New function.
3837 * passes.def: Add pass_oacc_kernels pass group.
3838 * tree-ssa-loop-ch.c (pass_ch::clone): New function.
3839
3840 2015-11-25 Tom de Vries <tom@codesourcery.com>
3841
3842 * tree-pass.h (make_pass_oacc_kernels, make_pass_oacc_kernels2):
3843 Declare.
3844 * tree-ssa-loop.c (gate_oacc_kernels): New static function.
3845 (pass_data_oacc_kernels, pass_data_oacc_kernels2): New pass_data.
3846 (class pass_oacc_kernels, class pass_oacc_kernels2): New pass.
3847 (make_pass_oacc_kernels, make_pass_oacc_kernels2): New function.
3848
3849 2015-11-25 Jan Hubicka <hubicka@ucw.cz>
3850
3851 * timevar.def (TV_IPA_LTO_DECOMPRESS, TV_IPA_LTO_COMPRESS,
3852 TV_IPA_LTO_OUTPUT): New.
3853 * lto-compress.c: Include timevar.h
3854 (lto_end_compression, lto_end_uncompression): Add timers.
3855 * langhooks.c: Include timevar.h.
3856 (lhd_append_data): Add timer.
3857
3858 2015-11-25 Jan Hubicka <hubicka@ucw.cz>
3859
3860 * varasm.c (default_elf_asm_output_limited_string,
3861 default_elf_asm_output_ascii): Replace fprintf by putc.
3862
3863 2015-11-25 Vladimir Makarov <vmakarov@redhat.com>
3864
3865 PR rtl-optimization/67954
3866 * lra-constraints.c (curr_insn_transform): Add check on scratch
3867 pseudo when change class to NO_REGS. Add an assert.
3868
3869 2015-11-25 Nathan Sidwell <nathan@acm.org>
3870
3871 * config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number
3872 constraint is 'n'.
3873 * config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg number.
3874 (nvptx_write_function_decl): Number args from 0.
3875 (nvptx_declare_function_name): Likewise.
3876 (nvptx_function_incoming_arg): Likewise.
3877 (nvptx_output_call_insn): Correct formatting.
3878
3879 2015-11-25 David Sherwood <david.sherwood@arm.com>
3880
3881 * optabs.def: Add new optabs fmax_optab/fmin_optab.
3882 * internal-fn.def: Add new fmax/fmin internal functions.
3883 * doc/md.texi: Add fmin and fmax patterns.
3884
3885 2015-11-25 Jason Merrill <jason@redhat.com>
3886
3887 PR c++/68385
3888 * tree.c (integer_zerop, integer_onep, integer_each_onep)
3889 (integer_all_onesp, integer_minus_onep, integer_pow2p)
3890 (integer_nonzerop, integer_truep, tree_log2, tree_floor_log2)
3891 (real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS.
3892
3893 2015-11-25 Richard Biener <rguenther@suse.de>
3894
3895 PR middle-end/68528
3896 * fold-const.c (fold_binary_loc): Do not call negate_expr_p
3897 on stripped operands.
3898
3899 2015-11-25 Nathan Sidwell <nathan@acm.org>
3900
3901 * config/nvptx/nvptx.c (walk_args_for_params): Delete.
3902 (nvptx_declare_function_name): Move assignments next to register
3903 declarations, and process params here.
3904
3905 2015-11-25 David Edelsohn <dje.gcc@gmail.com>
3906
3907 * config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
3908 both the symbol and the "dot" symbol for function descriptors. Fix
3909 inversion for rename of symbols with dollar sign.
3910
3911 2015-11-25 Tom de Vries <tom@codesourcery.com>
3912
3913 * cfgloop.c (find_single_latch): New function, factored out of ...
3914 (flow_loops_find): ... here.
3915 (verify_loop_structure): Improve verification of loop->latch.
3916 * cfgloop.h (find_single_latch): Declare.
3917 * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
3918
3919 2015-11-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3920
3921 * config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
3922 (STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
3923 (STARTFILE_SPEC): Use %(startfile_vtv).
3924 (ENDFILE_SPEC): Use %(endfile_vtv).
3925 (SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
3926 ENDFILE_VTV_SPEC.
3927
3928 * gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.
3929
3930 2015-11-25 Bernd Schmidt <bschmidt@redhat.com>
3931
3932 * ifcvt.c (noce_mem_write_may_trap_or_fault_p,
3933 noce_can_store_speculate): Delete.
3934 (noce_process_if_block): Don't try to handle single MEM stores.
3935 * rtl.h (memory_must_be_modified_in_insn_p): Don't declare.
3936 * alias.c (memory_must_be_modified_in_insn_p): Delete.
3937
3938 2015-11-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3939
3940 PR rtl-optimization/68435
3941 * ifcvt.c (noce_try_cmove_arith): Skip final insn when checking
3942 for conflicts between a, b and the set destinations.
3943
3944 2015-11-25 Richard Biener <rguenther@suse.de>
3945
3946 PR tree-optimization/68517
3947 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
3948 Properly handle zero-sized types.
3949
3950 2015-11-24 Jan Hubicka <hubicka@ucw.cz>
3951
3952 * ipa-inline-analysis.c: Include gimplify.h
3953 (set_cond_stmt_execution_predicate,
3954 set_switch_stmt_execution_predicate): Be sure to not leak locations
3955 to function body.
3956
3957 2015-11-25 Jakub Jelinek <jakub@redhat.com>
3958
3959 PR target/67089
3960 * tree-ssa-math-opts.c (uaddsub_overflow_check_p,
3961 match_uaddsub_overflow): New functions.
3962 (pass_optimize_widening_mul::execute): Call match_uaddsub_overflow.
3963
3964 2015-11-25 Richard Biener <rguenther@suse.de>
3965
3966 PR tree-optimization/68492
3967 * tree-vect-slp.c (vect_build_slp_tree): Consistently build up
3968 op from scalars after operand swapping.
3969
3970 2015-11-25 Richard Biener <rguenther@suse.de>
3971
3972 PR tree-optimization/68502
3973 * tree-vect-data-refs.c (vect_analyze_group_access_1): Restore
3974 check that the step is a multiple of the type size.
3975
3976 2015-11-24 Michael Collison <michael.collison@linaro.org>
3977
3978 * config/aarch64/aarch64-simd.md (widen_ssum, widen_usum)
3979 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns
3980 * config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes.
3981
3982 2015-11-24 Steve Ellcey <sellcey@imgtec.com>
3983
3984 * frame-header-opt.c (gate): Check for optimize > 0.
3985 (has_inlined_assembly): New function.
3986 (needs_frame_header_p): Remove is_leaf_function check,
3987 add argument type check.
3988 (callees_functions_use_frame_header): Add is_leaf_function
3989 and has_inlined_assembly calls..
3990 (set_callers_may_not_allocate_frame): New function.
3991 (frame_header_opt): Add is_leaf_function call, add
3992 set_callers_may_not_allocate_frame call.
3993 * config/mips/mips.c (mips_compute_frame_info): Add check
3994 to see if callee saved regs can be put in frame header.
3995 (mips_expand_prologue): Add check to see if step1 is zero,
3996 fix cfa restores when using frame header to store regs.
3997 (mips_can_use_return_insn): Check to see if registers are
3998 stored in frame header.
3999 * config/mips/mips.h (machine_function): Add
4000 callers_may_not_allocate_frame and
4001 use_frame_header_for_callee_saved_regs fields.
4002
4003 2015-11-24 Segher Boessenkool <segher@kernel.crashing.org>
4004
4005 PR rtl-optimization/68520
4006 * shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if
4007 its bit was already set in BB_WITH.
4008
4009 2015-11-24 Jan Hubicka <hubicka@ucw.cz>
4010
4011 * alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
4012 double check that type is main variant.
4013 * tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
4014 variant.
4015 (verify_type_variant): Verify that variants have no
4016 TYPE_ALIAS_SET_KNOWN_P set
4017 * tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
4018 streaming so constant fields come first; stream TYPE_ALIAS_SET==0
4019 only for main variants; stream TYPE_ALIAS_SET as a bit.
4020 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
4021 accordingly.
4022
4023 2015-11-24 Jan Hubicka <hubicka@ucw.cz>
4024
4025 * tree.c (make_vector_type): Properly compute canonical type of the
4026 main variant.
4027 (verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is
4028 a main variant.
4029
4030 2015-11-24 Nathan Sidwell <nathan@acm.org>
4031
4032 * config/nvptx/nvptx.c (maybe_split_mode): Return new mode or
4033 VOIDmode, don't alter incoming mode.
4034 (nvptx_split_reg_p): Delete.
4035 (write_one_arg, walk_args_for_param, nvptx_declare_function_name,
4036 write_func_decl_from_insn, nvptx_output_call_insn): Adjust
4037 maybe_split_mode calls.
4038 (nvptx_print_operand): Use maybe_split_mode.
4039
4040 2015-11-24 Jan Hubicka <hubicka@ucw.cz>
4041
4042 * lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
4043 only for types where LTO sets them.
4044 * tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
4045 (make_vector_type): Likewise.
4046 (gimple_canonical_types_compatible_p): Use canonical_type_used_p.
4047 * tree.h (canonical_type_used_p): New inline.
4048 * alias.c (get_alias_set): Handle structural equality for all
4049 types that pass canonical_type_used_p.
4050 (record_component_aliases): Look through all types with
4051 record_component_aliases for possible pointers; sanity check that
4052 the alias sets match.
4053
4054 2015-11-24 Michael Meissner <meissner@linux.vnet.ibm.com>
4055
4056 * config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.
4057
4058 2015-11-24 Jan Hubicka <hubicka@ucw.cz>
4059
4060 * tree.c (free_node): New function.
4061 (type_hash_canon): Use it.
4062 * tree.h (free_node): Declare.
4063
4064 2015-11-24 David Edelsohn <dje.gcc@gmail.com>
4065 Michael Meissner <meissner@linux.vnet.ibm.com>
4066
4067 * config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
4068 (Fv2): New mode attribute to be used when ISA 2.07 instructions
4069 are used on SF values, and ISA 2.06 instructions on DF values.
4070 (add<mode>3_fpr): Use <Fv2> instead of <Fv>.
4071 (sub<mode>3_fpr): Use <Fv2> instead of <Fv>.
4072 (mul<mode>3_fpr): Use <Fv2> instead of <Fv>.
4073 (div<mode>3_fpr): Use <Fv2> instead of <Fv>.
4074 (sqrt<mode>2): Use <Fv2> instead of <Fv>.
4075 (fre<Fs>): Use <Fv2> instead of <Fv>.
4076 (rsqrt<mode>2): Use <Fv2> instead of <Fv>.
4077 (cmp<mode>_fpr): Use <Fv2> instead of <Fv>.
4078 (xsrdpi<mode>): Add support for the lround function.
4079 (lround<mode>di2): Likewise.
4080 (fma<mode>4_fpr): Use <Fv2> instead of <Fv>.
4081 (fms<mode>4_fpr): Use <Fv2> instead of <Fv>.
4082 (nfma<mode>4_fpr): Use <Fv2> instead of <Fv>.
4083 (nfms<mode>4_fpr): Use <Fv2> instead of <Fv>.
4084
4085 2015-11-24 Aditya Kumar <aditya.k7@samsung.com>
4086 Sebastian Pop <s.pop@samsung.com>
4087
4088 PR tree-optimization/67984
4089 * graphite-isl-ast-to-gimple.c (is_constant): New.
4090 (get_rename): Call is_constant.
4091 (get_new_name): Same.
4092
4093 2015-11-24 Aditya Kumar <aditya.k7@samsung.com>
4094 Sebastian Pop <s.pop@samsung.com>
4095
4096 * graphite-dependences.c: Only include graphite.h.
4097 * graphite-isl-ast-to-gimple.c: Same.
4098 * graphite-optimize-isl.c: Same.
4099 * graphite-poly.c: Same.
4100 * graphite-scop-detection.c: Same.
4101 * graphite-sese-to-poly.c: Same.
4102 * graphite.c: Same.
4103 * graphite-isl-ast-to-gimple.h: Move to graphite.h.
4104 * graphite-poly.h: Same.
4105 * graphite-scop-detection.h: Same.
4106 * graphite.h: New.
4107
4108 2015-11-24 Pierre-Marie de Rodat <derodat@adacore.com>
4109
4110 * dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead of
4111 DW_TAG_namespace for IMPORTED_DECL declarations. Call
4112 dwarf2out_imported_module_or_decl_1 for all DWARF versions as this
4113 function already takes care of checking what it can emit.
4114
4115 2015-11-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
4116
4117 * doc/invoke.texi (-fpic): Add the AArch64 limit.
4118 (-fPIC): Add AArch64.
4119
4120 2015-11-24 Tom de Vries <tom@codesourcery.com>
4121
4122 * tree-ssa-loop-im.c (tree_ssa_lim): Make static.
4123 (pass_lim::execute): Allow to run outside pass_tree_loop.
4124
4125 2015-11-24 Wilco Dijkstra <wdijkstr@arm.com>
4126
4127 * config/aarch64/aarch64.md (add<mode>3):
4128 Block early expansion into 2 add instructions.
4129 (add<mode>3_pluslong): New pattern to combine complex
4130 immediates into 2 additions.
4131
4132 2015-11-24 Segher Boessenkool <segher@kernel.crashing.org>
4133
4134 PR target/66217
4135 PR target/67677
4136 PR target/68332
4137 * config/rs6000/predicates.md (and_operand): Check that the operand
4138 is a const_int before calling rs6000_is_valid_and_mask.
4139
4140 2015-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4141
4142 * config/aarch64/aarch64.md (*condjump): Rename to...
4143 (condjump): ... This.
4144 (*compare_condjump<mode>): New define_insn_and_split.
4145 (*compare_cstore<mode>_insn): Likewise.
4146 (*cstore<mode>_insn): Rename to...
4147 (cstore<mode>_insn): ... This.
4148 * config/aarch64/iterators.md (CMP): Handle ne code.
4149 * config/aarch64/predicates.md (aarch64_imm24): New predicate.
4150
4151 2015-11-24 Mikhail Maltsev <maltsevm@gmail.com>
4152
4153 PR target/68497
4154 * config/i386/i386.c (output_387_binary_op): Fix assertion for
4155 -fno-checking case.
4156
4157 2015-11-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4158
4159 * tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
4160 (val_ssa_equiv_hash_traits::remove): Likewise.
4161 (pass_uncprop::execute): Adjust.
4162
4163 2015-11-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4164
4165 * hash-map-traits.h (simple_hashmap_traits ::remove): call
4166 destructors on values that are being removed.
4167 * mem-stats.h (hash_map): Pass type of values to
4168 simple_hashmap_traits.
4169 * tree-sra.c (sra_deinitialize): Remove work around for hash
4170 maps not destructing values.
4171 * genmatch.c (sinfo_hashmap_traits): Adjust.
4172 * tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.
4173
4174 2015-11-24 Richard Biener <rguenther@suse.de>
4175 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4176
4177 PR middle-end/68375
4178 * cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
4179 bogus assertion.
4180
4181 2015-11-24 Jakub Jelinek <jakub@redhat.com>
4182
4183 PR target/68483
4184 * tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
4185 is valid vec_shr pattern, don't lower it even if can_vec_perm_p
4186 returns false.
4187 * optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
4188 whenever first is nelt or above. Don't mask expected with
4189 2 * nelt - 1.
4190
4191 2015-11-24 Ilya Enkovich <enkovich.gnu@gmail.com>
4192
4193 PR c/68337
4194 * gimple-fold.c: Include ipa-chkp.h.
4195 (gimple_fold_builtin_memory_op): Don't fold call if we
4196 are going to instrument it and it may copy pointers.
4197
4198 2015-11-24 Bernd Schmidt <bschmidt@redhat.com>
4199 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4200
4201 PR rtl-optimization/68194
4202 PR rtl-optimization/68328
4203 PR rtl-optimization/68185
4204 * ree.c (combine_reaching_defs): Reject copy_needed case if
4205 copies_list is not empty.
4206
4207 2015-11-24 Richard Biener <rguenther@suse.de>
4208
4209 PR middle-end/68221
4210 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
4211 use mem_ref_offset.
4212
4213 2015-11-24 Segher Boessenkool <segher@kernel.crashing.org>
4214
4215 PR rtl-optimization/68381
4216 * combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
4217 is poisoned.
4218
4219 2015-11-23 Nick Clifton <nickc@redhat.com>
4220 Jeff Law <law@redhat.com>
4221
4222 * ree.c (add_removable_extension): Avoid mis-optimizing cases where
4223 the source/dest of the target extension require a different number of
4224 hard registers.
4225 (combine_set_extension): Remove #if 0 code.
4226
4227 2015-11-23 Aditya Kumar <aditya.k7@samsung.com>
4228 Sebastian Pop <s.pop@samsung.com>
4229
4230 PR tree-optimization/68314
4231 * graphite-optimize-isl.c (optimize_isl): Do not call
4232 isl_union_map_is_equal.
4233 * graphite-poly.c (new_scop): Remove original_schedule.
4234 (free_scop): Same.
4235 * graphite-poly.h (struct scop): Same.
4236 * graphite-sese-to-poly.c (build_pbb_minimal_scattering_polyhedrons):
4237 Remove.
4238 (build_pbb_scattering_polyhedrons): Add back.
4239 (build_scop_minimal_scattering): Remove.
4240 (build_scop_scattering): Add back.
4241 (build_scop_original_schedule): Remove.
4242 (build_poly_scop): Revert to only call build_scop_scattering.
4243
4244 2015-11-23 Aditya Kumar <aditya.k7@samsung.com>
4245 Sebastian Pop <s.pop@samsung.com>
4246
4247 PR tree-optimization/68493
4248 * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Add
4249 missing early return when codegen_error is set.
4250
4251 2015-11-23 Aditya Kumar <aditya.k7@samsung.com>
4252 Sebastian Pop <s.pop@samsung.com>
4253
4254 PR tree-optimization/68279
4255 * graphite-poly.c (new_scop): Remove poly_scop_p.
4256 * graphite-poly.h (struct scop): Same.
4257 (build_poly_scop): Declare.
4258 * graphite-sese-to-poly.c: Do not include graphite-sese-to-poly.h.
4259 (cleanup_loop_iter_dom): New.
4260 (build_loop_iteration_domains): Early return when scev analysis fails.
4261 (create_pw_aff_from_tree): Same.
4262 (add_condition_to_pbb): Same.
4263 (add_conditions_to_domain): Same.
4264 (add_conditions_to_constraints): Same.
4265 (build_scop_iteration_domain): Same.
4266 (build_poly_scop): Same. Do not initialize poly_scop_p.
4267 * graphite-sese-to-poly.h: Remove.
4268 * graphite.c: Do not include graphite-sese-to-poly.h.
4269 (graphite_transform_loops): Stop before code generation when
4270 build_poly_scop fails.
4271 * sese.c (scalar_evolution_in_region): Add fixme note about scev
4272 analysis.
4273
4274 2015-11-23 Aditya Kumar <aditya.k7@samsung.com>
4275 Sebastian Pop <s.pop@samsung.com>
4276
4277 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
4278 Remove call to update_ssa.
4279 * sese.c (sese_insert_phis_for_liveouts): Same.
4280
4281 2015-11-23 Marek Polacek <polacek@redhat.com>
4282
4283 PR tree-optimization/68455
4284 * tree-vrp.c (extract_range_from_binary_expr_1): Don't call
4285 extract_range_from_multiplicative_op_1 on symbolic ranges.
4286
4287 2015-11-23 Richard Henderson <rth@redhat.com>
4288
4289 * optabs.def (uaddv4_optab, usubv4_optab): New.
4290 * internal-fn.c (expand_addsub_overflow): Use them.
4291 * doc/md.texi (Standard Names): Add uaddv<m>4, usubv<m>4.
4292
4293 * config/i386/i386.c (ix86_cc_mode): Extend add overflow check
4294 to reversed operands.
4295 * config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.
4296 (*add<SWI>3_cconly_overflow_1): Rename *add<SWI>3_cconly_overflow.
4297 (*add<SWI>3_cc_overflow_1): Rename *add<SWI>3_cc_overflow.
4298 (*addsi3_zext_cc_overflow_1): Rename *add3_zext_cc_overflow.
4299 (*add<SWI>3_cconly_overflow_2): New.
4300 (*add<SWI>3_cc_overflow_2): New.
4301 (*addsi3_zext_cc_overflow_2): New.
4302
4303 2015-11-23 Richard Biener <rguenther@suse.de>
4304
4305 PR tree-optimization/68465
4306 * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
4307 Also record equalities from multiple predecessor blocks if
4308 only one non-backedge exists.
4309
4310 2015-11-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4311
4312 PR target/68363
4313 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
4314 that are not INSN_P.
4315
4316 2015-11-23 Bilyan Borisov <bilyan.borisov@arm.com>
4317
4318 * config/aarch64/aarch64-builtins.c
4319 (aarch64_gimple_fold_builtin): Fold FMULX.
4320
4321 2015-11-23 David Edelsohn <dje.gcc@gmail.com>
4322
4323 * system.h: Don't poison calloc and strdup if USES_ISL is defined.
4324 * graphite-dependences.c: Define USES_ISL. Include ISL header files
4325 after GCC header files and before graphite header files.
4326 * graphite-dependences.c: Same.
4327 * graphite-isl-ast-to-gimple.c: Same.
4328 * graphite-optimize-isl.c: Same.
4329 * graphite-poly.c: Same.
4330 * graphite-scop-detection.c: Same.
4331 * graphite-sese-to-poly.c: Same.
4332 * graphite.c: Same.
4333
4334 2015-11-23 Richard Biener <rguenth@gcc.gnu.org>
4335 Jiong Wang <jiong.wang@arm.com>
4336
4337 PR tree-optimization/68317
4338 PR tree-optimization/68326
4339 * tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
4340 final min and max are not infinity.
4341
4342 2015-11-23 Ilya Enkovich <enkovich.gnu@gmail.com>
4343 Richard Biener <rguenther@suse.de>
4344
4345 PR tree-optimization/68327
4346 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4347 compute vectype for non-relevant mask producers.
4348 * tree-vect-stmts.c (vectorizable_comparison): Check stmt
4349 relevance earlier.
4350
4351 2015-11-23 Tom de Vries <tom@codesourcery.com>
4352
4353 PR tree-optimization/68460
4354 * tree-parloops.c (gather_scalar_reductions): Also call
4355 free_stmt_vec_info_vec if simple_loop_info == NULL.
4356
4357 2015-11-23 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
4358
4359 * opts.c (finish_options): Allow -fsanitize-recover=address for
4360 userspace sanitization.
4361 * asan.c (asan_expand_check_ifn): Redefine recover_p.
4362 * doc/invoke.texi (fsanitize-recover): Update documentation.
4363
4364 2015-11-23 Tom de Vries <tom@codesourcery.com>
4365
4366 * omp-low.c (build_receiver_ref): Mark by_ref mem_ref as non-trapping.
4367
4368 2015-11-23 Richard Biener <rguenther@suse.de>
4369
4370 PR tree-optimization/68445
4371 * tree-vect-slp.c (vect_create_mask_and_perm): Properly use
4372 two different strides.
4373
4374 2015-11-23 Robin Dapp <rdapp@linux.vnet.ibm.com>
4375
4376 * config/s390/s390.h: Add new symref flags, _NOTALIGN2 etc.
4377 * config/s390/s390.c (s390_check_symref_alignment): Use new
4378 symref flags, early abort on wrong alignment
4379 (s390_secondary_reload): Use new symref flags.
4380 (s390_encode_section_info): Likewise.
4381 * config/s390/predicates.md: Likewise.
4382
4383 2015-11-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4384
4385 PR target/68390
4386 * config/arm/arm.c (arm_function_ok_for_sibcall): Get function type
4387 for indirect function call.
4388
4389 2015-11-22 Bilyan Borisov <bilyan.borisov@arm.com>
4390
4391 * config/aarch64/aarch64-simd.md
4392 (*aarch64_mulx_elt_<vswap_width_name><mode>, VDQSF): New.
4393 (*aarch64_mulx_elt<mode>, VDQF): Likewise.
4394 (*aarch64_mulx_elt_to_64v2df): Likewise.
4395 (*aarch64_vgetfmulx<mode>, VDQF_DF): Likewise.
4396 * config/aarch64/arm_neon.h (vmulx_lane_f32): New.
4397 (vmulx_lane_f64): Likewise.
4398 (vmulxq_lane_f32): Refactored & moved.
4399 (vmulxq_lane_f64): Likewise.
4400 (vmulx_laneq_f32): New.
4401 (vmulx_laneq_f64): Likewise.
4402 (vmulxq_laneq_f32): Likewise.
4403 (vmulxq_laneq_f64): Likewise.
4404 (vmulxs_lane_f32): Likewise.
4405 (vmulxs_laneq_f32): Likewise.
4406 (vmulxd_lane_f64): Likewise.
4407 (vmulxd_laneq_f64): Likewise.
4408
4409 2015-11-21 Jan Hubicka <hubicka@ucw.cz>
4410
4411 * tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
4412 In LTO we do not compute TYPE_CANONICAL of pointers.
4413 (gimple_canonical_types_compatible_p): Improve coments; sanity check
4414 that pointers do not have canonical type that would make us believe
4415 they are different.
4416 * alias.c (get_alias_set): Do structural type equality on pointers;
4417 enable pointer path for LTO; also glob pointer to vector with pointer
4418 to vector element; glob pointers and references for LTO; do more strict
4419 sanity checking about build_pointer_type returning the canonical type
4420 which is also the main variant.
4421 (record_component_aliases): When component type is pointer and we
4422 do LTO; record void_type_node alias set.
4423
4424 2015-11-21 Nathan Sidwell <nathan@acm.org>
4425
4426 * config/nvptx/nvptx.md (clz<mode>2): Use operand 1 for type.
4427
4428 * config/nvptx/nvptx.c (write_function_decl_and_comment): Print
4429 leading blank line.
4430 (write_func_decl_from_insn): Likewise.
4431 (init_output_initializer, nvptx_assemble_undefined_decl): Likewise.
4432 (nvptx_file_end): Likewise.
4433 (nvptx_function_end): Undent output.
4434 (nvptx_expand_call): Fix formatting.
4435 (nvptx_output_call_insn): Indent output.
4436 * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
4437 ASM__OUTPUT_ALIGNED_DECL_LOCAL): Print leading blank line.
4438
4439 2015-11-21 Jakub Jelinek <jakub@redhat.com>
4440
4441 PR debug/66432
4442 * tree-inline.c (copy_debug_stmt): If
4443 gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
4444 in decl_debug_args, don't call remap_gimple_op_r on it.
4445
4446 2015-11-07 Jan Hubicka <hubicka@ucw.cz>
4447
4448 * ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL;
4449 do not check AGGREGATE_TYPE_P when adding TYPE_MODE;
4450 Check that all record types are complete.
4451 * ipa-icf-gimple.c (func_checker::compatible_types_p): Do not
4452 compare alias sets for types w/o alias sets.
4453
4454 2015-11-20 Eric Botcazou <ebotcazou@adacore.com>
4455
4456 * config/sparc/sparc.md (umulxhi_vis): Move around.
4457 (*umulxhi_sp64): Likewise.
4458 (umulxhi_v8plus): Likewise.
4459 (xmulx_vis): Likewise.
4460 (*xmulx_sp64): Likewise.
4461 (xmulx_v8plus): Likewise.
4462 (xmulxhi_vis): Likewise.
4463 (*xmulxhi_sp64): Likewise.
4464 (xmulxhi_v8plus): Likewise.
4465
4466 2015-11-20 David Malcolm <dmalcolm@redhat.com>
4467
4468 PR 62314
4469 * diagnostic-show-locus.c (colorizer::set_fixit_hint): New.
4470 (class layout): Update comment
4471 (layout::print_any_fixits): New method.
4472 (layout::move_to_column): New method.
4473 (diagnostic_show_locus): Add call to layout.print_any_fixits.
4474
4475 2015-11-20 Jakub Jelinek <jakub@redhat.com>
4476
4477 PR middle-end/68221
4478 * omp-low.c (lower_rec_input_clauses): If C/C++ array reduction
4479 has non-zero bias, subtract it in integer type instead of
4480 pointer plus of negated bias.
4481
4482 PR middle-end/68339
4483 * omp-low.c (expand_simd_clones): Call node->get_body () before
4484 allocating stuff in GC.
4485
4486 2015-11-20 Jim Wilson <jim.wilson@linaro.org>
4487
4488 * tree-vect-data-refs.c (compare_tree): Call STRIP_NOPS.
4489
4490 2015-11-20 Evandro Menezes <e.menezes@samsung.com>
4491
4492 * config/aarch64/aarch64.md (predicated): Copy attribute from
4493 "arm.md".
4494 * config/arm/arm.md (predicated): Added description.
4495
4496 2015-11-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4497
4498 * config/arm/arm.c (arm_option_override): Require TARGET_32BIT
4499 for unaligned_access.
4500 * config/arm/arm.md (unaligned_loadsi): Remove redundant TARGET_32BIT
4501 from matching condition.
4502 (unaligned_loadhis): Likewise.
4503 (unaligned_loadhiu): Likewise.
4504 (unaligned_storesi): Likewise.
4505 (unaligned_storehi): Likewise.
4506
4507 2015-11-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4508
4509 PR target/68149
4510 * config/arm/arm.md (unaligned_loaddi): Delete.
4511 (unaligned_storedi): Likewise.
4512 * config/arm/arm.c (gen_movmem_ldrd_strd): Don't generate
4513 unaligned DImode memory ops. Instead perform two back-to-back
4514 unaligned SImode ops.
4515
4516 2015-11-20 Nathan Sidwell <nathan@codesourcery.com>
4517 James Norris <jnorris@codesourcery.com>
4518
4519 * config/nvptx/nvptx.c (nvptx_use_anchors_for_symbol_p): New.
4520 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Override.
4521
4522 2015-11-20 Alan Hayward <alan.hayward@arm.com>
4523
4524 PR tree-optimization/68413
4525 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Cache
4526 evolution base
4527 (vectorizable_reduction): Use cached base
4528
4529 2015-11-20 Tom de Vries <tom@codesourcery.com>
4530
4531 * tree-parloops.c (build_new_reduction): Fix trailing whitespace in
4532 dump-file string.
4533 (try_create_reduction_list): Same. Fix typo in dump-file string.
4534
4535 2015-11-20 Eric Botcazou <ebotcazou@adacore.com>
4536
4537 * doc/md.texi (Standard Names): Move entry for addptr3 around,
4538 add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
4539 glitch in entries for cbranch4 and jump.
4540
4541 2015-11-20 Tom de Vries <tom@codesourcery.com>
4542
4543 PR tree-optimization/68373
4544 * tree-scalar-evolution.c (final_value_replacement_loop): Factor out
4545 of ...
4546 (scev_const_prop): ... here.
4547 * tree-scalar-evolution.h (final_value_replacement_loop): Declare.
4548 * tree-parloops.c (try_create_reduction_list): Call
4549 final_value_replacement_loop.
4550
4551 2015-11-20 Bin Cheng <bin.cheng@arm.com>
4552
4553 PR tree-optimization/52272
4554 * tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct.
4555 (struct iv_common_cand_hasher): New struct.
4556 (iv_common_cand_hasher::hash): New function.
4557 (iv_common_cand_hasher::equal): New function.
4558 (struct ivopts_data): New fields, iv_common_cand_tab and
4559 iv_common_cands.
4560 (tree_ssa_iv_optimize_init): Initialize above fields.
4561 (record_common_cand, common_cand_cmp): New functions.
4562 (add_iv_candidate_derived_from_uses): New function.
4563 (add_iv_candidate_for_use): Record iv_common_cands derived from
4564 iv use in hash table, instead of adding candidates directly.
4565 (add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses.
4566 (record_important_candidates): Add important candidates to iv uses'
4567 related_cands. Always keep related_cands for future use.
4568 (try_add_cand_for): Use iv uses' related_cands.
4569 (free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields
4570 in struct ivopts_data, iv_common_cand_tab and iv_common_cands.
4571
4572 2015-11-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4573
4574 * config/s390/s390.md ("bswaphi2"): New pattern.
4575
4576 2015-11-20 Dominik Vogt <vogt@linux.vnet.ibm.com>
4577
4578 * config/s390/s390.md (GPR1_REGNUM): New constant.
4579 ("*trunc<BFP:mode><DFP_ALL:mode>2")
4580 ("*trunc<DFP_ALL:mode><BFP:mode>2")
4581 ("trunc<BFP:mode><DFP_ALL:mode>2")
4582 ("trunc<DFP_ALL:mode><BFP:mode>2")
4583 ("*extend<BFP:mode><DFP_ALL:mode>2")
4584 ("*extend<DFP_ALL:mode><BFP:mode>2")
4585 ("extend<BFP:mode><DFP_ALL:mode>2")
4586 ("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1.
4587
4588 2015-11-19 Aditya Kumar <aditya.k7@samsung.com>
4589 Sebastian Pop <s.pop@samsung.com>
4590
4591 PR tree-optimization/68428
4592 * graphite-scop-detection.c (harmful_stmt_in_region): Do not iterate
4593 over basic blocks outside the scop.
4594
4595 2015-11-19 Aditya Kumar <aditya.k7@samsung.com>
4596 Sebastian Pop <s.pop@samsung.com>
4597
4598 PR tree-optimization/68341
4599 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Remove
4600 gcc_unreachable and safely fail codegen.
4601 (copy_loop_close_phi_args): Do not insert merge phis in a basic
4602 block with loop phi nodes.
4603 (edge_for_new_close_phis): New.
4604 (copy_bb_and_scalar_dependences): Call edge_for_new_close_phis.
4605
4606 2015-11-19 Nathan Sidwell <nathan@acm.org>
4607
4608 * config/nvptx/nvptx.h (SUPPORTS_WEAK): Define.
4609 * config/nvptx/nvptx.c (nvptx_write_function_decl): Support DECL_WEAK.
4610 (nvptx_declare_objec_name): Likewise.
4611
4612 2015-11-19 Aditya Kumar <aditya.k7@samsung.com>
4613
4614 * graphite-isl-ast-to-gimple.c (get_true_edge_from_guard_bb): Move...
4615 (get_false_edge_from_guard_bb): Move...
4616 * sese.c (get_false_edge_from_guard_bb)
4617 (get_true_edge_from_guard_bb): ... here.
4618
4619 2015-11-19 David Edelsohn <dje.gcc@gmail.com>
4620
4621 Revert
4622 2015-11-18 Alan Modra <amodra@gmail.com>
4623
4624 * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
4625 type-limits warning.
4626
4627
4628 2015-11-19 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4629
4630 * tree.h (desired_pro_or_demotion_p): New function.
4631 * tree-vrp.c (simplify_cond_using_ranges): Call it.
4632
4633 2015-11-19 Michael Matz <matz@suse.de>
4634
4635 PR rtl-optimization/68392
4636 * fwprop.c (update_uses): Use flag_checking instead of
4637 gcc_checking_assert.
4638
4639 2015-11-19 David Malcolm <dmalcolm@redhat.com>
4640
4641 * doc/gty.texi (Support for inheritance): Fix missing
4642 parentheses in example.
4643
4644 2015-11-19 Marek Polacek <polacek@redhat.com>
4645
4646 PR tree-optimization/68431
4647 * tree-vrp.c (extract_range_from_binary_expr_1): Fix condition.
4648
4649 2015-11-19 Nathan Sidwell <nathan@acm.org>
4650
4651 * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1,
4652 atomic_exchange<mode>): Input values can be immediates.
4653
4654 2015-11-19 Eric Botcazou <ebotcazou@adacore.com>
4655
4656 PR lto/61313
4657 * configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
4658 by the user.
4659 * configure: Regenerate.
4660
4661 2015-11-19 Eric Botcazou <ebotcazou@adacore.com>
4662
4663 PR target/68408
4664 * config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
4665 (DTORS_SECTION_ASM_OP): Likewise.
4666
4667 2015-11-19 Jakub Jelinek <jakub@redhat.com>
4668
4669 PR rtl-optimization/68376
4670 * ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
4671 encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.
4672
4673 2015-11-19 Richard Biener <rguenther@suse.de>
4674
4675 PR middle-end/68117
4676 * tree-ssa.c (delete_tree_ssa): Revert removal of call to
4677 redirect_edge_var_map_destroy.
4678
4679 2015-11-19 Jakub Jelinek <jakub@redhat.com>
4680
4681 PR target/67770
4682 * config/i386/i386.md (simple_return): Disable if
4683 ix86_static_chain_on_stack is true.
4684
4685 2015-11-19 Richard Sandiford <richard.sandiford@arm.com>
4686
4687 PR bootstrap/68393
4688 * internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P
4689 destinations.
4690
4691 2015-11-18 Jeff Law <law@redhat.com>
4692
4693 PR tree-optimization/68198
4694 * tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish
4695 between threading a multi-way branch and a thread path that contains
4696 a multi-way branch. Disallow the case where a path contains a
4697 multi-way branch and does not thread a multi-way branch.
4698 (thread_through_all_blocks): Update comment.
4699
4700 2015-11-18 Joseph Myers <joseph@codesourcery.com>
4701
4702 PR c/65083
4703 * ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
4704 (atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
4705 (atomic_flag_clear, atomic_flag_clear_explicit): Declare as
4706 functions before defining as macros.
4707
4708 2015-11-18 Nathan Sidwell <nathan@codesourcery.com>
4709
4710 * config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
4711 (nvptx_record_offload_symbol): Remove code compensating for lack
4712 of default dimension handling.
4713 (nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.
4714
4715 2015-11-18 Aditya Kumar <aditya.k7@samsung.com>
4716
4717 * graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return
4718 type to bool for early exit.
4719 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return
4720 in case of error.
4721 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
4722 (add_phi_arg_for_new_expr): Enable codegen for if-block where one
4723 predecessor dominates the other.
4724 (translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the
4725 element is not found it returns -1.
4726 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail
4727 out early when codegen fails.
4728 (graphite_regenerate_ast_isl): Remove codegen region when pending
4729 phis could not be generated.
4730
4731 2015-11-18 Aditya Kumar <aditya.k7@samsung.com>
4732
4733 * graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove
4734 semicolon.
4735 (class translate_isl_ast_to_gimple): Indentation.
4736 (translate_pending_phi_nodes): Comment.
4737 (add_parameters_to_ivs_params): Moved from sese.c inside class
4738 translate_isl_ast_to_gimple.
4739 (get_max_schedule_dimensions): Same.
4740 (generate_isl_context): Same.
4741 (extend_schedule): Same.
4742 (generate_isl_schedule): Same.
4743 (set_options): Same.
4744 (scop_to_isl_ast): Same.
4745 (is_valid_rename): Same.
4746 (get_rename): Same.
4747 (get_rename_from_scev): Same.
4748 (get_def_bb_for_const): Same.
4749 (get_new_name): Same.
4750 (collect_all_ssa_names): Same.
4751 (copy_loop_phi_args): Same.
4752 (copy_loop_phi_nodes): Same.
4753 (copy_loop_close_phi_args): Same.
4754 (copy_loop_close_phi_nodes): Same.
4755 (copy_cond_phi_args): Same.
4756 (copy_cond_phi_nodes): Same.
4757 (graphite_copy_stmts_from_block): Same.
4758 (copy_bb_and_scalar_dependences): Same.
4759 (add_phi_arg_for_new_expr): Same.
4760 (rename_uses): Same.
4761 (set_rename): Same.
4762 (set_rename_for_each_def): Same.
4763 (gsi_insert_earliest): Same.
4764 (rename_all_uses): Same.
4765 (codegen_error_p): Same.
4766 (print_isl_ast_node): Same.
4767 (translate_isl_ast_for_loop): Call function codegen_error_p.
4768 (translate_isl_ast_to_gimple::translate_isl_ast): Same.
4769 (translate_isl_ast_node_user): Make nb_loops const and release
4770 iv_map before exit.
4771 (get_true_edge_from_guard_bb): Move all free-functions early.
4772 (get_false_edge_from_guard_bb): Same.
4773 (bb_contains_loop_close_phi_nodes): Same.
4774 (bb_contains_loop_phi_nodes): Same.
4775 (is_loop_closed_ssa_use): Same.
4776 (number_of_phi_nodes): Same.
4777 (phi_uses_name): Same.
4778 (later_of_the_two): Same.
4779 (substitute_ssa_name):
4780 (get_edges): Same.
4781 (get_loc): Same.
4782 (get_loop_init_value): Same.
4783 (find_init_value): Same.
4784 (find_init_value_close_phi): Same.
4785 (ast_build_before_for): Same.
4786 (graphite_regenerate_ast_isl): Formatting changes.
4787 * graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
4788 * sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
4789 (set_rename): Same.
4790 (gsi_insert_earliest): Same.
4791 (collect_all_ssa_names): Same.
4792 (rename_all_uses): Same.
4793 (rename_uses): Same.
4794 (get_def_bb_for_const): Same.
4795 (copy_loop_phi_nodes): Same.
4796 (copy_loop_close_phi_args): Same.
4797 (copy_loop_close_phi_nodes): Same.
4798 (copy_cond_phi_args): Same.
4799 (copy_cond_phi_nodes): Same.
4800 (set_rename_for_each_def): Same.
4801 (graphite_copy_stmts_from_block): Same.
4802 (copy_bb_and_scalar_dependences): Same.
4803 (if_region_set_false_region): Same.
4804 (scev_analyzable_p): Same.
4805 * sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c.
4806
4807 2015-11-18 Andreas Tobler <andreast@gcc.gnu.org>
4808
4809 * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
4810 commit from r125920 for FreeBSD.
4811
4812 2015-11-18 Jason Merrill <jason@redhat.com>
4813
4814 * ggc-page.c (ggc_globals): Change finalizers and vec_finalizers
4815 to be vecs of vecs.
4816 (add_finalizer): Split out from ggc_internal_alloc.
4817 (ggc_handle_finalizers): Run finalizers for the current depth.
4818 (init_ggc, ggc_pch_read): Reserve space for finalizers.
4819
4820 2015-11-18 Sandra Loosemore <sandra@codesourcery.com>
4821
4822 PR target/68410
4823 * config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
4824 from || expression.
4825
4826 2015-11-18 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
4827
4828 * config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and
4829 atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb
4830 and atmega328pb.
4831 * doc/avr-mmcu.texi: Regenerate.
4832
4833 2015-11-18 Nathan Sidwell <nathan@codesourcery.com>
4834
4835 * config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types.
4836 (pseudo_node_t, struct bracket, bracket_vec_t): New types.
4837 (struct bb_sese): New struct.
4838 (bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New.
4839 (BB_GET_SESE, BB_SET_SESE): Define.
4840 (nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New.
4841 (nvptx_find_sese): New.
4842 (nvptx_neuter_pars): Find SESE regions when optimizing.
4843
4844 2015-11-18 Alan Modra <amodra@gmail.com>
4845
4846 * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
4847 type-limits warning.
4848
4849 2015-11-18 Richard Sandiford <richard.sandiford@arm.com>
4850
4851 PR bootstrap/68406
4852 * hash-set.h (hash_set::traverse): Expand Key typedef.
4853
4854 2015-11-18 Martin Liska <mliska@suse.cz>
4855
4856 * config/arm/arm.c (arm_valid_target_attribute_p): Finalize
4857 options struct.
4858
4859 2015-11-18 Nathan Sidwell <nathan@codesourcery.com>
4860
4861 * config/nvptx/nvptx.c (global_lock_var): New.
4862 (nvptx_global_lock_addr): New.
4863 (nvptx_lockless_update): Recomment and adjust for clarity.
4864 (nvptx_lockfull_update): New.
4865 (nvptx_reduction_update): New.
4866 (nvptx_goacc_reduction_fini): Call it.
4867
4868 2015-11-18 Bernd Schmidt <bschmidt@redhat.com>
4869
4870 * regrename.h (struct du_head): Add target_data_1 and target_data_2
4871 fields.
4872 * regrename.c (create_new_chain): Clear entire struct after allocating.
4873
4874 * config/i386/i386.opt (mmitigate-rop): New option.
4875 * doc/invoke.texi (mmitigate-rop): Document.
4876 * config/i386/i386.c: Include "regrename.h".
4877 (ix86_rop_should_change_byte_p, reg_encoded_number,
4878 ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
4879 static functions.
4880 (ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
4881 * config/i386/i386.md (attr "modrm_class"): New.
4882 (cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
4883 x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
4884 (x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.
4885
4886 2015-11-18 Ilya Enkovich <enkovich.gnu@gmail.com>
4887
4888 PR target/68405
4889 * config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing break.
4890
4891 2015-11-18 Jakub Jelinek <jakub@redhat.com>
4892
4893 PR tree-optimization/68157
4894 * tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
4895 pow_stmt or mul_stmt from stmt's uid.
4896 (reassociate_bb): Set uid of mul_stmt from stmt's uid.
4897
4898 2015-11-18 Martin Liska <mliska@suse.cz>
4899
4900 * haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list.
4901
4902 2015-11-18 Martin Liska <mliska@suse.cz>
4903
4904 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
4905 Fix GNU coding style.
4906 (find_def_preds): Use auto_vec.
4907 (destroy_predicate_vecs): Change signature of the function.
4908 (prune_uninit_phi_opnds_in_unrealizable_paths): Use the
4909 new signature.
4910 (simplify_preds_4): Use destroy_predicate_vecs instread of
4911 just releasing preds vector.
4912 (normalize_preds): Likewise.
4913 (is_use_properly_guarded): Use new signature of
4914 destroy_predicate_vecs.
4915 (find_uninit_use): Likewise.
4916
4917 2015-11-18 Richard Biener <rguenther@suse.de>
4918
4919 PR tree-optimization/67790
4920 * tree-vect-loop.c (vect_is_simple_reduction_1): Remove
4921 IL rewrite for MINUS_EXPR reductions, rename back to ...
4922 (vect_is_simple_reduction): ... this, removing the wrapper.
4923 (vect_force_simple_reduction): Adjust.
4924 (vectorizable_reduction): Adjust reduc_index for MINUS_EXPR
4925 reductions and make use if reduc_index in all places. For
4926 the final reduction of MINUS_EXPR use PLUS_EXPR.
4927
4928 2015-11-18 Alan Modra <amodra@gmail.com>
4929
4930 * configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
4931 to ld.
4932 * configure: Regenerate.
4933
4934 2015-11-17 Tom de Vries <tom@codesourcery.com>
4935
4936 * tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.
4937
4938 2015-11-17 Tom de Vries <tom@codesourcery.com>
4939
4940 * tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
4941 uses of ssa_name with constant.
4942
4943 2015-11-17 Tom de Vries <tom@codesourcery.com>
4944
4945 * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
4946 something changed.
4947
4948 2015-11-17 Tom de Vries <tom@codesourcery.com>
4949
4950 * cfgloop.h (struct loop): Add in_oacc_kernels_region field.
4951 * omp-low.c (mark_loops_in_oacc_kernels_region): New function.
4952 (expand_omp_target): Call mark_loops_in_oacc_kernels_region.
4953
4954 2015-11-17 Bernd Schmidt <bschmidt@redhat.com>
4955
4956 * regrename.c (regrename_find_superclass): New function, code moved
4957 from ...
4958 (rename_chains): ... here. Call it.
4959 * regrename.h (regrename_find_superclass): Declare.
4960
4961 * regrename.c (record_out_operands): Terminate earlyclobbered
4962 operands here.
4963
4964 PR target/66785
4965 * regrename.c (record_operand_use): Keep track of failed operands
4966 and stop appending if we see any.
4967 * regrename.h (struct operand_rr_info): Add a failed field and shrink
4968 n_chains to short.
4969
4970 2015-11-17 Sandra Loosemore <sandra@codesourcery.com>
4971
4972 PR 48568
4973 * doc/extend.texi (Common Function Attributes) [visibility]:
4974 Add cross-references to matching variable and type attributes.
4975 (Common Variable Attributes) [visibility]: Add missing entry.
4976
4977 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
4978
4979 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
4980 entries that map directly to optabs.
4981
4982 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
4983
4984 * config/i386/i386.c (ix86_builtin_vectorized_function): Remove
4985 entries that map directly to optabs.
4986
4987 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
4988
4989 * internal-fn.h (direct_internal_fn_info): Add vectorizable flag.
4990 * internal-fn.c (direct_internal_fn_array): Update accordingly.
4991 * tree-vectorizer.h (vectorizable_function): Delete.
4992 * tree-vect-stmts.c: Include internal-fn.h.
4993 (vectorizable_internal_function): New function.
4994 (vectorizable_function): Inline into...
4995 (vectorizable_call): ...here. Explicitly reject calls that read
4996 from or write to memory. Try using an internal function before
4997 falling back on the old vectorizable_function behavior.
4998
4999 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5000
5001 * target.def (builtin_vectorized_function): Take a combined_fn (in
5002 the form of an unsigned int) rather than a function decl.
5003 (builtin_md_vectorized_function): New.
5004 * targhooks.h (default_builtin_vectorized_function): Replace the
5005 fndecl argument with an unsigned int.
5006 (default_builtin_md_vectorized_function): Declare.
5007 * targhooks.c (default_builtin_vectorized_function): Replace the
5008 fndecl argument with an unsigned int.
5009 (default_builtin_md_vectorized_function): New function.
5010 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION):
5011 New hook.
5012 * doc/tm.texi: Regenerate.
5013 * tree-vect-stmts.c (vectorizable_function): Update call to
5014 builtin_vectorized_function, also passing internal functions.
5015 Call builtin_md_vectorized_function for target-specific builtins.
5016 * config/aarch64/aarch64-protos.h
5017 (aarch64_builtin_vectorized_function): Replace fndecl argument
5018 with an unsigned int.
5019 * config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h.
5020 (aarch64_builtin_vectorized_function): Update after above changes.
5021 Use CASE_CFN_*.
5022 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace
5023 fndecl argument with an unsigned int.
5024 * config/arm/arm-builtins.c: Include case-cfn-macros.h
5025 (arm_builtin_vectorized_function): Update after above changes.
5026 Use CASE_CFN_*.
5027 * config/i386/i386.c: Include case-cfn-macros.h
5028 (ix86_veclib_handler): Take a combined_fn rather than a
5029 built_in_function.
5030 (ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise. Use
5031 mathfn_built_in rather than calling builtin_decl_implicit directly.
5032 (ix86_builtin_vectorized_function) Update after above changes.
5033 Use CASE_CFN_*.
5034 * config/rs6000/rs6000.c: Include case-cfn-macros.h
5035 (rs6000_builtin_vectorized_libmass): Replace fndecl argument
5036 with a combined_fn. Use CASE_CFN_*. Use mathfn_built_in rather
5037 than calling builtin_decl_implicit directly.
5038 (rs6000_builtin_vectorized_function): Update after above changes.
5039 Use CASE_CFN_*. Move BUILT_IN_MD to...
5040 (rs6000_builtin_md_vectorized_function): ...this new function.
5041 (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define.
5042
5043 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5044
5045 * tree-vect-patterns.c: Include internal-fn.h.
5046 (vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*.
5047
5048 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5049
5050 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P)
5051 (BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete.
5052
5053 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5054
5055 * builtins.c (expand_errno_check, expand_builtin_mathfn)
5056 (expand_builtin_mathfn_2): Delete.
5057 (expand_builtin): Remove handling of functions with
5058 internal function equivalents.
5059 * internal-fn.def (SET_EDOM): New internal function.
5060 * internal-fn.h (set_edom_supported_p): Declare.
5061 * internal-fn.c (expand_SET_EDOM): New function.
5062 (set_edom_supported_p): Likewise.
5063 * tree-call-cdce.c: Include builtins.h and internal-fn.h.
5064 Rewrite comment at head of file.
5065 (is_call_dce_candidate): Rename to...
5066 (can_test_argument_range): ...this. Don't check gimple_call_lhs
5067 or gimple_call_builtin_p here.
5068 (edom_only_function): New function.
5069 (shrink_wrap_one_built_in_call_with_conds): New function, split out
5070 from...
5071 (shrink_wrap_one_built_in_call): ...here.
5072 (can_use_internal_fn, use_internal_fn): New functions.
5073 (shrink_wrap_conditional_dead_built_in_calls): Call use_internal_fn
5074 for calls that have an lhs.
5075 (pass_call_cdce::gate): Remove optimize_function_for_speed_p check.
5076 (pass_call_cdce::execute): Skip blocks that are optimized for size.
5077 Check gimple_call_builtin_p here. Use can_use_internal_fn for
5078 calls with an lhs.
5079 * opts.c (default_options_table): Enable -ftree-builtin-call-cdce
5080 at -O and above.
5081
5082 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5083
5084 * builtins.h (called_as_built_in): Declare.
5085 * builtins.c (called_as_built_in): Make external.
5086 * internal-fn.h (expand_internal_call): Define a variant that
5087 specifies the internal function explicitly.
5088 * internal-fn.c (expand_load_lanes_optab_fn)
5089 (expand_store_lanes_optab_fn, expand_ANNOTATE, expand_GOMP_SIMD_LANE)
5090 (expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE)
5091 (expand_GOMP_SIMD_ORDERED_START, expand_GOMP_SIMD_ORDERED_END)
5092 (expand_UBSAN_NULL, expand_UBSAN_BOUNDS, expand_UBSAN_VPTR)
5093 (expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK, expand_TSAN_FUNC_EXIT)
5094 (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB)
5095 (expand_UBSAN_CHECK_MUL, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW)
5096 (expand_MUL_OVERFLOW, expand_LOOP_VECTORIZED)
5097 (expand_mask_load_optab_fn, expand_mask_store_optab_fn)
5098 (expand_ABNORMAL_DISPATCHER, expand_BUILTIN_EXPECT, expand_VA_ARG)
5099 (expand_UNIQUE, expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS)
5100 (expand_GOACC_LOOP, expand_GOACC_REDUCTION, expand_direct_optab_fn)
5101 (expand_unary_optab_fn, expand_binary_optab_fn): Add an internal_fn
5102 argument.
5103 (internal_fn_expanders): Update prototype.
5104 (expand_internal_call): Define a variant that specifies the
5105 internal function explicitly. Use it to implement the previous
5106 interface.
5107 * cfgexpand.c (expand_call_stmt): Try to expand calls to built-in
5108 functions as calls to internal functions.
5109
5110 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5111
5112 * Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd.
5113 (generated_files): Likewise.
5114 (s-cfn-operators, cfn-operators.pd): New rules.
5115 (s-match): Depend on cfn-operators.pd.
5116 * gencfn-macros.c: Expand comment to describe -o behavior.
5117 (print_define_operator_list): New function.
5118 (main): Accept -o. Call print_define_operator_list.
5119 * genmatch.c (main): Add the current directory to the include path.
5120 * match.pd (DEFINE_MATH_FN): Delete. Include cfn-operators.pd
5121 instead.
5122
5123 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5124
5125 * doc/match-and-simplify.texi: Document the "null" identifier.
5126 * genmatch.c (id_base::NULL_ID): New kind.
5127 (null_id): New variable.
5128 (get_operator): Add a parameter that says whether null identifiers
5129 are allowed.
5130 (contains_id): New function.
5131 (lower_for): Skip substitutions that would have a null_id in
5132 either the match or the result.
5133 (parser::parse_for): Allow the null identifier to be used.
5134 (parser::parse_operator_list): Likewise.
5135 (main): Initialize null_id.
5136
5137 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5138
5139 * match.pd: Use HYPOT and COS rather than hypot and cos.
5140 Use CASE_CFN_* macros. Guard log/exp folds with
5141 SCALAR_FLOAT_TYPE_P.
5142 * genmatch.c (internal_fn): New enum.
5143 (fn_id::fn): Change to an unsigned int.
5144 (fn_id::fn_id): Accept internal_fn too.
5145 (add_builtin): Rename to...
5146 (add_function): ...this and turn into a template.
5147 (get_operator): Only try one variation if the original name fails.
5148 Only add _EXPR if the original name was all lower case.
5149 Try converting internal and built-in function names to their
5150 CFN equivalents.
5151 (expr::gen_transform): Use maybe_build_call_expr_loc for generic.
5152 (dt_simplify::gen_1): Likewise.
5153 (dt_node::gen_kids_1): Use gimple_call_combined_fn for gimple
5154 and get_call_combined_fn for generic.
5155 (dt_simplify::gen): Use combined_fn as the type of fn_ids.
5156 (decision_tree::gen): Likewise.
5157 (main): Use lower case in the strings for {VIEW_,}CONVERT[012].
5158 Use add_function rather than add_builtin. Register internal
5159 functions too.
5160 * generic-match-head.c: Include case-cfn-macros.h.
5161 * gimple-fold.c (replace_stmt_with_simplification): Use
5162 gimple_call_combined_fn to test whether we can keep an
5163 existing call.
5164 * gimple-match.h (code_helper): Replace built_in_function
5165 with combined_fn.
5166 * gimple-match-head.c: Include fold-const-call.h, internal-fn.h
5167 and case-fn-macros.h.
5168 (gimple_resimplify1): Use fold_const_call.
5169 (gimple_resimplify2, gimple_resimplify3): Likewise.
5170 (build_call_internal, build_call): New functions.
5171 (maybe_push_res_to_seq): Use them.
5172 (gimple_simplify): Use fold_const_call. Set *rcode to a combined_fn
5173 rather than a built-in function.
5174 * tree.h (build_call_expr_internal_loc): Declare.
5175 (maybe_build_call_expr_loc): Likewise.
5176 * tree.c (build_call_expr_internal_loc_array): New function.
5177 (maybe_build_call_expr_loc): Likewise.
5178
5179 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5180
5181 * builtins.h (mathfn_built_in): Add a variant that takes
5182 a combined_fn.
5183 * builtins.c: Include case-cfn-macros.h.
5184 (CASE_MATHFN): Use CASE_CFN_*.
5185 (CASE_MATHFN_REENT): Use CFN_ codes.
5186 (mathfn_built_in_2, mathfn_built_in_1): Replace built_in_function
5187 argument with a combined_fn.
5188 (mathfn_built_in): Add a variant that takes a combined_fn.
5189 (expand_builtin_int_roundingfn_2): Update callers accordingly.
5190 (fold_builtin_sincos, fold_builtin_classify): Likewise.
5191
5192 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5193
5194 * tree-vect-patterns.c: Include case-cfn-macros.h.
5195 (vect_recog_pow_pattern): Use combined_fn instead of built-in codes.
5196
5197 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5198
5199 * tree-ssa-math-opts.c: Include case-cfn-macros.h.
5200 (execute_cse_sincos_1): Use combined_fn instead of built-in codes.
5201 (pass_cse_sincos::execute): Likewise.
5202
5203 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5204
5205 * tree-ssa-reassoc.c: Include case-cfn-macros.h.
5206 (stmt_is_power_of_op): Use combined_fn instead of built-in codes.
5207 (decrement_power, acceptable_pow_call): Likewise.
5208 (attempt_builtin_copysign): Likewise.
5209
5210 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5211
5212 * tree-vrp.c: Include case-cfn-macros.h.
5213 (extract_range_basic): Switch on combined_fn rather than handling
5214 built-in functions and internal functions separately.
5215
5216 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5217
5218 * fold-const.h (negate_mathfn_p): Take a combined_fn rather
5219 than a built_in_function.
5220 (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
5221 a function decl.
5222 (integer_valued_real_call_p): Likewise.
5223 * fold-const.c: Include case-cfn-macros.h
5224 (negate_mathfn_p): Take a combined_fn rather than a built_in_function.
5225 (negate_expr_p): Update accordingly.
5226 (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
5227 a function decl.
5228 (integer_valued_real_call_p): Likewise.
5229 (tree_invalid_nonnegative_warnv_p): Update accordingly.
5230 (integer_valued_real_p): Likewise.
5231 * gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call
5232 to tree_call_nonnegative_warnv_p.
5233 (gimple_call_integer_valued_real_p): Likewise
5234 integer_valued_real_call_p.
5235 * gimple-ssa-backprop.c: Include case-cfn-macros.h.
5236 (backprop::process_builtin_call_use): Extend to combined_fn.
5237 (strip_sign_op_1): Likewise.
5238 (backprop::process_use): Don't check for built-in calls here.
5239 (backprop::execute): Likewise.
5240 (backprop::optimize_builtin_call): Update call to negate_mathfn_p.
5241
5242 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5243
5244 * fold-const-call.h (fold_const_call): Replace built_in_function
5245 arguments with combined_fn arguments.
5246 * fold-const-call.c: Include case-cfn-macros.h.
5247 (fold_const_call_ss, fold_const_call_cs, fold_const_call_sc)
5248 (fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc)
5249 (fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace
5250 built_in_function arguments with combined_fn arguments.
5251 * builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2)
5252 (fold_builtin_3): Update calls to fold_const_call.
5253
5254 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5255
5256 * Makefile.in (HASH_TABLE_H): Add GGC_H.
5257 (MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h.
5258 (s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o)
5259 (build/gencfn-macros$(build_exeext): New rules.
5260 (genprogerr): Add cfn-macros.
5261 * hash-set.h (hash_set): Use the traits value_type as the key.
5262 * gencfn-macros.c: New file.
5263
5264 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5265
5266 * internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
5267 (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
5268 * builtins.c (associated_internal_fn): Handle them.
5269
5270 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5271
5272 * builtins.h (associated_internal_fn): Declare.
5273 (replacement_internal_fn): Likewise.
5274 * builtins.c: Include internal-fn.h
5275 (associated_internal_fn, replacement_internal_fn): New functions.
5276 * internal-fn.def (DEF_INTERNAL_FLT_FN): New macro.
5277 (ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P)
5278 (LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT)
5279 (RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB)
5280 (LDEXP): New functions.
5281 * internal-fn.c: Include recog.h.
5282 (unary_direct, binary_direct): New macros.
5283 (expand_direct_optab_fn): New function.
5284 (expand_unary_optab_fn): New macro.
5285 (expand_binary_optab_fn): Likewise.
5286 (direct_unary_optab_supported_p): Likewise.
5287 (direct_binary_optab_supported_p): Likewise.
5288
5289 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5290
5291 * coretypes.h (tree_pair): New type.
5292 * internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro. Use it
5293 for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES.
5294 * internal-fn.h (direct_internal_fn_info): New structure.
5295 (direct_internal_fn_array): Declare.
5296 (direct_internal_fn_p, direct_internal_fn): New functions.
5297 (direct_internal_fn_types, direct_internal_fn_supported_p): Declare.
5298 * internal-fn.c (not_direct, mask_load_direct, load_lanes_direct)
5299 (mask_store_direct, store_lanes_direct): New macros.
5300 (direct_internal_fn_array) New array.
5301 (get_multi_vector_move): Return the optab handler without asserting
5302 that it is available.
5303 (expand_LOAD_LANES): Rename to...
5304 (expand_load_lanes_optab_fn): ...this and add an optab argument.
5305 (expand_STORE_LANES): Rename to...
5306 (expand_store_lanes_optab_fn): ...this and add an optab argument.
5307 (expand_MASK_LOAD): Rename to...
5308 (expand_mask_load_optab_fn): ...this and add an optab argument.
5309 (expand_MASK_STORE): Rename to...
5310 (expand_mask_store_optab_fn): ...this and add an optab argument.
5311 (direct_internal_fn_types, direct_optab_supported_p)
5312 (multi_vector_optab_supported_p, direct_internal_fn_supported_p)
5313 (direct_internal_fn_supported_p): New functions.
5314 (direct_mask_load_optab_supported_p): New macro.
5315 (direct_load_lanes_optab_supported_p): Likewise.
5316 (direct_mask_store_optab_supported_p): Likewise.
5317 (direct_store_lanes_optab_supported_p): Likewise.
5318
5319 2015-11-17 Richard Sandiford <richard.sandiford@arm.com>
5320
5321 * tree-core.h (internal_fn): Move immediately after the definition
5322 of built_in_function.
5323 (combined_fn): New enum.
5324 * tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn)
5325 (internal_fn_p, as_internal_fn): New functions.
5326 (get_call_combined_fn, combined_fn_name): Declare.
5327 * tree.c (get_call_combined_fn): New function.
5328 (combined_fn_name): Likewise.
5329 * gimple.h (gimple_call_combined_fn): Declare.
5330 * gimple.c (gimple_call_combined_fn): New function.
5331
5332 2015-11-17 Martin Sebor <msebor@redhat.com>
5333
5334 PR c++/68308
5335 * cp/init.c (build_new_1): Check for expression constness
5336 the right way.
5337
5338 2015-11-17 Sandra Loosemore <sandra@codesourcery.com>
5339
5340 PR target/53587
5341 * doc/invoke.texi (Option Summary): Add -mms-bitfields to x86
5342 option list.
5343 (x86 Options): Add -mms-bitfields and -mno-ms-bitfields. Move
5344 discussion of the Microsoft structure layout details here from
5345 its former home in extend.texi.
5346 * doc/extend.texi (x86 Variable Attributes): Replace detailed
5347 discussion with pointer to its new location. Add cross-reference
5348 to corresponding type attributes.
5349 (x86 Type Attributes): Add cross-references to command-line options
5350 and variable attributes.
5351
5352 2015-11-17 Ilya Enkovich <enkovich.gnu@gmail.com>
5353
5354 PR middle-end/68134
5355 * targhooks.c (default_get_mask_mode): Filter out
5356 scalar modes returned by mode_for_vector.
5357
5358 2015-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5359
5360 PR target/68143
5361 * config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
5362 offset from dstbase and use it appropriately in
5363 adjust_automodify_address.
5364 (arm_block_set_aligned_vect): Likewise.
5365
5366 2015-11-17 Eric Botcazou <ebotcazou@adacore.com>
5367
5368 * config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
5369 (MULTILIB_DIRNAMES): Adjust accordingly.
5370
5371 2015-11-17 James Greenhalgh <james.greenhalgh@arm.com>
5372
5373 * config/aarch64/aarch64-cores.def (cortex-a35): New.
5374 * config/aarch64/aarch64.c (cortexa35_tunings): New.
5375 * config/aarch64/aarch64-tune.md: Regenerate.
5376 * doc/invoke.texi (-mcpu): Add Cortex-A35
5377
5378 2015-11-17 Uros Bizjak <ubizjak@gmail.com>
5379
5380 PR target/68263
5381 * config/i386/i386.h (BIGGEST_ALIGNMENT): Always define
5382 to 32 for IAMCU.
5383 * config/i386/sse.md (*mov<mode>_internal): Always enable
5384 AVX and SSE unaligned moves for IAMCU.
5385
5386 2015-11-17 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com>
5387
5388 * tree-if-conv.c: Include varasm.h
5389 (ref_DR_map): Define.
5390 (baseref_DR_map): Like wise
5391 (struct ifc_dr): Add new tree predicate field.
5392 (hash_memrefs_baserefs_and_store_DRs_read_written_info): New function.
5393 (memrefs_read_or_written_unconditionally): Remove.
5394 (write_memrefs_written_at_least_once): Remove.
5395 (ifcvt_memrefs_wont_trap): Use hash maps to query
5396 unconditional read/written information.
5397 (if_convertible_loop_p_1): Initialize hash maps and predicates
5398 before hashing data references and delete hashmaps at the end.
5399
5400 2015-11-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
5401
5402 PR 56036
5403 * doc/invoke.texi (Optimize Options): Move @end table to the right
5404 place.
5405
5406 2015-11-16 Sandra Loosemore <sandra@codesourcery.com>
5407
5408 PR 65129
5409 * doc/extend.texi (__builtin_assume_aligned): Fix formatting of
5410 return value.
5411
5412 2015-11-16 Michael Meissner <meissner@linux.vnet.ibm.com>
5413
5414 * config/rs6000/vsx.md (VSX_L): Do not include IBM extended double
5415 128-bit types, just types that fit in a single vector.
5416 * config/rs6000/rs6000.md (FMOVE128_GPR): Likewise.
5417
5418 2015-11-16 David Wohlferd <dw@LimeGreenSocks.com>
5419
5420 * doc/md.texi ('#' and '*' constraint modifiers): Do not include these
5421 in the user documentation.
5422 (define_peephole2, define_split): Similarly.
5423
5424 2015-11-16 Andris Pavenis <andris.pavenis@iki.fi>
5425
5426 * lto-streamer-out.c (write_global_references): Adjust integer type.
5427 (lto_output_decl_state_refs): Likewise.
5428
5429 2015-11-16 James Greenhalgh <james.greenhalgh@arm.com>
5430
5431 * config/arm/arm-cores.def (cortex-a35): New.
5432 * config/arm/arm.c (arm_cortex_a35_tune): New.
5433 * config/arm/arm-tables.opt: Regenerate.
5434 * config/arm/arm-tune.md: Regenerate.
5435 * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-a35.
5436 * config/arm/t-aprofile: Likewise.
5437 * doc/invoke.texi (-mcpu): Likewise.
5438
5439 2015-11-16 Jim Wilson <jim.wilson@linaro.org>
5440
5441 * config/arm/t-aprofile (MULTILIB_MATCHES): Add lines for exynos-m1
5442 and qdf24xx and xgene1 to match -march=armv8-a.
5443
5444 2015-11-16 Segher Boessenkool <segher@kernel.crashing.org>
5445
5446 PR rtl-optimization/68330
5447 * simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND
5448 of LSHIFTRT by a non-zero constant integer.
5449
5450 2015-11-16 Richard Biener <rguenther@suse.de>
5451
5452 PR tree-optimization/68306
5453 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix
5454 bogus copying from verify_data_ref_alignment and use continue
5455 instead of return.
5456
5457 2015-11-16 Oleg Endo <olegendo@gcc.gnu.org>
5458 Kaz Kojima <kkojima@gcc.gnu.org>
5459
5460 PR target/68277
5461 * config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
5462 operands[2].
5463 (*addsi3): Add another insn_and_split variant for reload.
5464
5465 2015-11-16 Richard Biener <rguenther@suse.de>
5466
5467 PR middle-end/68117
5468 * cfgexpand.c (pass_expand::execute): Destroy the edge
5469 redirection var map before setting RTL CFG hooks.
5470
5471 2015-11-16 Alan Lawrence <alan.lawrence@arm.com>
5472
5473 * config/i386/sse.md (reduc_splus_v8df): Rename to...
5474 (reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar.
5475
5476 (reduc_splus_v4df): Rename to...
5477 (reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar.
5478
5479 (reduc_splus_v2df): Rename to...
5480 (reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar.
5481
5482 (reduc_splus_v16sf): Rename to...
5483 (reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar.
5484
5485 (reduc_splus_v8sf): Rename to...
5486 (reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar.
5487
5488 (reduc_splus_v4sf): Rename to...
5489 (reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar.
5490
5491 (reduc_<code>_<mode>, all 3 variants): Rename each to...
5492 (reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar.
5493
5494 (reduc_umin_v8hf): Rename to...
5495 (reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar.
5496
5497 2015-11-16 Kirill Yukhin <kirill.yukhin@intel.com>
5498
5499 * omp-low.c (pass_omp_simd_clone::gate): If target allows - call
5500 without additional conditions.
5501 * doc/extend.texi (@item simd): New.
5502
5503 2015-11-16 Tom de Vries <tom@codesourcery.com>
5504
5505 * passes.c (first_pass_instance): Remove variable.
5506 (execute_todo): Remove setting of first_pass_instance.
5507 * tree-pass.h (first_pass_instance): Remove declaration.
5508
5509 2015-11-16 Tom de Vries <tom@codesourcery.com>
5510
5511 * passes.def: Add arg to pass_ccp pass instantiation.
5512 * tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p. Use nonzero_p
5513 instead of first_pass_instance.
5514 (do_ssa_ccp): Add and handle param nonzero_p.
5515 (pass_ccp::pass_ccp): Initialize nonzero_p.
5516 (pass_ccp::set_pass_param): New member function. Set nonzero_p.
5517 (pass_ccp::execute): Call do_ssa_ccp with extra arg.
5518 (pass_ccp::nonzero_p): New private member.
5519
5520 2015-11-16 Tom de Vries <tom@codesourcery.com>
5521
5522 * passes.def: Add arg to pass_object_sizes pass instantiation.
5523 * tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize
5524 insert_min_max_p.
5525 (pass_object_sizes::set_pass_param): New member function. Set
5526 insert_min_max_p.
5527 (pass_object_sizes::insert_min_max_p): New private member.
5528 (pass_object_sizes::execute): Use insert_min_max_p instead of
5529 first_pass_instance.
5530
5531 2015-11-16 Tom de Vries <tom@codesourcery.com>
5532
5533 * passes.def: Add arg to pass_dominator pass instantiation.
5534 * tree-pass.h (first_pass_instance): Remove pass_dominator-related bit
5535 of comment.
5536 * tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize
5537 may_peel_loop_headers_p.
5538 (pass_dominator::set_pass_param): New member function. Set
5539 may_peel_loop_headers_p.
5540 (pass_dominator::may_peel_loop_headers_p): New private member.
5541 (pass_dominator::execute): Use may_peel_loop_headers_p instead of
5542 first_pass_instance.
5543
5544 2015-11-16 Tom de Vries <tom@codesourcery.com>
5545
5546 * passes.def: Add arg to pass_reassoc pass instantiation.
5547 * tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable.
5548 (acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead
5549 of first_pass_instance.
5550 (execute_reassoc): Add and handle insert_powi_p parameter.
5551 (pass_reassoc::insert_powi_p): New private member.
5552 (pass_reassoc::pass_reassoc): Initialize insert_powi_p.
5553 (pass_reassoc::set_pass_param): New member function. Set insert_powi_p.
5554 (pass_reassoc::execute): Call execute_reassoc with extra arg.
5555
5556 2015-11-16 Tom de Vries <tom@codesourcery.com>
5557
5558 * gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument.
5559 * gen-pass-instances.awk (handle_line): Same.
5560 * pass_manager.h (class pass_manager): Define and undefine
5561 NEXT_PASS_WITH_ARG.
5562 * passes.c (opt_pass::set_pass_param): New function.
5563 (pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG.
5564 * passes.def: Add extra arg to NEXT_PASS (pass_vrp).
5565 * tree-pass.h (gimple_opt::set_pass_param): Declare.
5566 * tree-vrp.c (vrp_finalize, execute_vrp): Add and handle
5567 warn_array_bounds_p parameter.
5568 (pass_vrp::pass_vrp): Initialize warn_array_bounds_p.
5569 (pass_vrp::set_pass_param): New function.
5570 (pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call.
5571 (pass_vrp::warn_array_bounds_p): New private member.
5572
5573 2015-11-16 Eric Botcazou <ebotcazou@adacore.com>
5574
5575 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
5576 (output_probe_stack_range): Rotate the loop and simplify.
5577
5578 2015-11-16 Eric Botcazou <ebotcazou@adacore.com>
5579
5580 * config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
5581 (output_probe_stack_range): Rotate the loop and simplify.
5582
5583 2015-11-16 Eric Botcazou <ebotcazou@adacore.com>
5584
5585 * config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
5586 an lea instruction when possible.
5587 (output_adjust_stack_and_probe): Rotate the loop and simplify.
5588 (ix86_emit_probe_stack_range): Adjust.
5589 (output_probe_stack_range): Rotate the loop and simplify.
5590
5591 2015-11-16 Christian Bruel <christian.bruel@st.com>
5592
5593 * config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON.
5594 Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP
5595 with appropriate pragma GCC target.
5596
5597 2015-11-16 Christian Bruel <christian.bruel@st.com>
5598
5599 PR target/65837
5600 * config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset
5601 __ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP.
5602
5603 2015-11-16 James Greenhalgh <james.greenhalgh@arm.com>
5604
5605 * config/aarch64/aarch64.c (cortexa57_branch_costs): New.
5606 (cortexa57_tunings): Use it.
5607
5608 2015-11-16 Christian Bruel <christian.bruel@st.com>
5609
5610 PR target/65837
5611 * config/arm/arm-c.c (arm_cpu_builtins): Set or reset
5612 __ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__
5613 (arm_pragma_target_parse): Change check for arm_cpu_builtins.
5614 undefine __ARM_FP.
5615 * config/arm/arm.c (arm_can_inline_p): Check FPUs.
5616 (arm_valid_target_attribute_rec): Handle -mfpu attribute target.
5617 * doc/invoke.texi (-mfpu=): Mention attribute and pragma.
5618 * doc/extend.texi (-mfpu=): Describe attribute.
5619
5620 2015-11-16 Christian Bruel <christian.bruel@st.com>
5621
5622 PR target/65837
5623 * config/arm/arm-protos.h (arm_init_neon_builtins): Declare.
5624 * config/arm/arm.c (arm_valid_target_attribute_tree): Call
5625 arm_init_neon_builtins.
5626 * config/arm/arm-builtins.c (arm_init_neon_builtins): Split into...
5627 (arm_init_neon_builtins_internal)
5628 (arm_init_crypto_builtins_internal):
5629 Test and set neon_set_p, neon_crypto_set_p.
5630 (neon_set_p, neon_crypto_set_p): New static booleans.
5631
5632 2015-11-16 Christian Bruel <christian.bruel@st.com>
5633
5634 PR target/65837
5635 * config/arm/arm.c (arm_fpu_desc): Remove.
5636 (all_fpus): Make global.
5637 (arm_option_override): Use FPU TARGET accessors.
5638 (arm_declare_function_name): Likewise.
5639 * config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5)
5640 (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16)
5641 (TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO)
5642 (TARGET_NEON): Likewise.
5643 (all_fpus): Declare extern.
5644 (TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV)
5645 (TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors.
5646
5647 2015-11-15 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5648
5649 PR middle-end/68366
5650 * sdbout.c: Include emit-rtl.h and function.h.
5651
5652 2015-11-15 Gerald Pfeifer <gerald@pfeifer.com>
5653
5654 * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
5655 Remove support for FreeBSD 5 and earlier.
5656
5657 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5658
5659 * configure: Regenerate.
5660 * configure.ac: Always define ENABLE_OFFLOADING.
5661 * cgraph.c (cgraph_node::create): Adjust.
5662 * gcc.c (process_command): Likewise.
5663 * omp-low.c (create_omp_child_function): Likewise.
5664 (expand_omp_target): Likewise.
5665 * varpool.c (varpool_node::get_create): Likewise.
5666
5667 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5668
5669 * defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
5670 * df-scan.c (df_get_exit_block_use_set): Adjust.
5671 * except.c (expand_eh_return): Likewise.
5672
5673 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5674
5675 * config/i386/i386.h (TARGET_PECOFF): Remove define.
5676 * defaults.h (TARGET_PECOFF): New default definition.
5677 * varasm.c (handle_vtv_comdat_section): Adjust.
5678
5679 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5680
5681 * defaults.h: New definition of SDB_DEBUGGING_INFO.
5682 * doc/tm.texi: Regenerate.
5683 * doc/tm.texi.in: Adjust.
5684 * final.c (rest_of_clean_state): Remove check if
5685 SDB_DEBUGGING_INFO is defined.
5686 * function.c (number_blocks): Likewise.
5687 * output.h: Likewise.
5688 * sdbout.c: Likewise.
5689 * toplev.c (process_options): Likewise.
5690
5691 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5692
5693 * gsyms.h (enum sdb_type): Remove code for EXTENDED_SDB_BASIC_TYPES.
5694 (enum sdb_masks): Likewise.
5695 * sdbout.c (plain_type_1): Likewise.
5696 * system.h: Poison EXTENDED_SDB_BASIC_TYPES macro.
5697
5698 2015-11-14 Jakub Jelinek <jakub@redhat.com>
5699
5700 * omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
5701 internal calls - 0 if ordered simd and 1 for ordered threads simd.
5702 * tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
5703 argument is 1, replace it with GOMP_ordered_* call instead of removing
5704 it.
5705
5706 2015-11-13 Rich Felker <dalias@libc.org>
5707
5708 * config/sh/sh.md (symGOT_load): Suppress __stack_chk_guard
5709 address loading hack for FDPIC targets.
5710
5711 2015-11-13 Ajit Agarwal <ajitkum@xilinx.com>
5712 Jeff Law <law@redhat.com>
5713
5714 * Makefile.in (OBJS): Add gimple-ssa-split-paths.o
5715 * common.opt (-fsplit-paths): New flag controlling path splitting.
5716 * doc/invoke.texi (fsplit-paths): Document.
5717 * opts.c (default_options_table): Add -fsplit-paths to -O2.
5718 * passes.def: Add split_paths pass.
5719 * timevar.def (TV_SPLIT_PATHS): New timevar.
5720 * tracer.c: Include "tracer.h"
5721 (ignore_bb_p): No longer static.
5722 (transform_duplicate): New function, broken out of tail_duplicate.
5723 (tail_duplicate): Use transform_duplicate.
5724 * tracer.h (ignore_bb_p): Declare
5725 (transform_duplicate): Likewise.
5726 * tree-pass.h (make_pass_split_paths): Declare.
5727 * gimple-ssa-split-paths.c: New file.
5728
5729 2015-11-13 Kai Tietz <ktietz70@googlemail.com>
5730 Marek Polacek <polacek@redhat.com>
5731 Jason Merrill <jason@redhat.com>
5732
5733 * convert.c (maybe_fold_build1_loc): New.
5734 (maybe_fold_build2_loc): New.
5735 (convert_to_pointer_1): Split out from convert_to_pointer.
5736 (convert_to_pointer_nofold): New.
5737 (convert_to_real_1): Split out from convert_to_real.
5738 (convert_to_real_nofold): New.
5739 (convert_to_integer_1): Split out from convert_to_integer.
5740 (convert_to_integer_nofold): New.
5741 (convert_to_complex_1): Split out from convert_to_complex.
5742 (convert_to_complex_nofold): New.
5743 * convert.h: Declare new functions.
5744 * tree-complex.c (create_one_component_var): Break up line to
5745 avoid sequence point issues.
5746
5747 2015-11-13 Jason Merrill <jason@redhat.com>
5748
5749 * fold-const.c (fold_convert_const): Fold changing cv-quals on
5750 VECTOR_CST.
5751
5752 * hash-map.h (hash_map::empty): New.
5753
5754 2015-11-13 Nathan Sidwell <nathan@codesourcery.com>
5755
5756 * omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
5757 (oacc_loop_fixed_partitions): Correct return type to bool.
5758 (oacc_loop_auto_partitions): New.
5759 (oacc_loop_partition): Take mask argument, call
5760 oacc_loop_auto_partitions.
5761 (execute_oacc_device_lower): Provide mask to oacc_loop_partition.
5762
5763 2015-11-13 Michael Meissner <meissner@linux.vnet.ibm.com>
5764
5765 * config/rs6000/constraints.md (we constraint): New constraint for
5766 64-bit power9 vector support.
5767 (wL constraint): New constraint for the element in a vector that
5768 can be addressed by the MFVSRLD instruction.
5769
5770 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Add
5771 declaration.
5772 (convert_int_to_float128): Likewise.
5773 (rs6000_generate_compare): Add support for ISA 3.0 (power9)
5774 hardware support for IEEE 128-bit floating point.
5775 (rs6000_expand_float128_convert): Likewise.
5776 (convert_float128_to_int): Likewise.
5777 (convert_int_to_float128): Likewise.
5778
5779 * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for
5780 ISA 3.0 hardware IEEE 128-bit floating point.
5781 (UNSPEC_IEEE128_MOVE): Likewise.
5782 (UNSPEC_IEEE128_CONVERT): Likewise.
5783 (FMA_F): Add support for IEEE 128-bit floating point hardware support.
5784 (Ff): Add support for DImode.
5785 (Fv): Likewise.
5786 (any_fix code iterator): New and updated iterators for IEEE
5787 128-bit floating point hardware support.
5788 (any_float code iterator): Likewise.
5789 (s code attribute): Likewise.
5790 (su code attribute): Likewise.
5791 (az code attribute): Likewise.
5792 (uns code attribute): Likewise.
5793 (neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit
5794 floating point hardware support.
5795 (abs<mode>2, FLOAT128 iterator): Likewise.
5796 (add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit
5797 floating point hardware.
5798 (sub<mode>3, IEEE128 iterator): Likewise.
5799 (mul<mode>3, IEEE128 iterator): Likewise.
5800 (div<mode>3, IEEE128 iterator): Likewise.
5801 (copysign<mode>3, IEEE128 iterator): Likewise.
5802 (sqrt<mode>2, IEEE128 iterator): Likewise.
5803 (neg<mode>2, IEEE128 iterator): Likewise.
5804 (abs<mode>2, IEEE128 iterator): Likewise.
5805 (nabs<mode>2, IEEE128 iterator): Likewise.
5806 (fma<mode>4_hw, IEEE128 iterator): Likewise.
5807 (fms<mode>4_hw, IEEE128 iterator): Likewise.
5808 (nfma<mode>4_hw, IEEE128 iterator): Likewise.
5809 (nfms<mode>4_hw, IEEE128 iterator): Likewise.
5810 (extend<SFDF:mode><IEEE128:mode>2_hw): Likewise.
5811 (trunc<mode>df2_hw, IEEE128 iterator): Likewise.
5812 (trunc<mode>sf2_hw, IEEE128 iterator): Likewise.
5813 (fix_fixuns code attribute): Likewise.
5814 (float_floatuns code attribute): Likewise.
5815 (fix<uns>_<mode>si2_hw): Likewise.
5816 (fix<uns>_<mode>di2_hw): Likewise.
5817 (float<uns>_<mode>si2_hw): Likewise.
5818 (float<uns>_<mode>di2_hw): Likewise.
5819 (xscvqp<su>wz_<mode>): Likewise.
5820 (xscvqp<su>dz_<mode>): Likewise.
5821 (xscv<su>dqp_<mode): Likewise.
5822 (ieee128_mfvsrd): Likewise.
5823 (ieee128_mfvsrwz): Likewise.
5824 (ieee128_mtvsrw): Likewise.
5825 (ieee128_mtvsrd): Likewise.
5826 (trunc<mode>df2_odd): Likewise.
5827 (cmp<mode>_h): Likewise.
5828 (128-bit GPR splitters): Don't split a 128-bit move that is a
5829 direct move between GPR and vector registers using ISA 3.0 direct
5830 move instructions.
5831 (maddld4): Add support for the ISA 3.0 integer multiply-add
5832 instruction.
5833
5834 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0
5835 debugging.
5836 (rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we
5837 constraint. Disable the VSX<->GPR direct move helpers if we have
5838 the MFVSRLD and MTVSRDD instructions.
5839 (rs6000_secondary_reload_simple_move): Add support for doing
5840 vector direct moves directly without additional scratch registers
5841 if we have ISA 3.0 instructions.
5842 (rs6000_secondary_reload_direct_move): Update comments.
5843 (rs6000_output_move_128bit): Add support for ISA 3.0 vector
5844 instructions.
5845
5846 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0
5847 direct move instructions.
5848 (vsx_movti_64bit): Likewise.
5849 (vsx_extract_<mode>): Likewise.
5850
5851 * config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New
5852 macros for ISA 3.0 direct move instructions.
5853 (TARGET_DIRECT_MOVE_128): Likewise.
5854 (TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add
5855 instruction.
5856
5857 * doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL
5858 constraints. Update wa documentation to say not to use %x<n> on
5859 instructions that only take Altivec registers.
5860
5861 2015-11-13 David Malcolm <dmalcolm@redhat.com>
5862
5863 * Makefile.in (OBJS): Add gcc-rich-location.o.
5864 * diagnostic.c (diagnostic_append_note): Pass line_table to
5865 rich_location ctor.
5866 (emit_diagnostic): Likewise.
5867 (inform): Likewise.
5868 (inform_n): Likewise.
5869 (warning): Likewise.
5870 (warning_at): Likewise.
5871 (warning_n): Likewise.
5872 (pedwarn): Likewise.
5873 (permerror): Likewise.
5874 (error): Likewise.
5875 (error_n): Likewise.
5876 (error_at): Likewise.
5877 (sorry): Likewise.
5878 (fatal_error): Likewise.
5879 (internal_error): Likewise.
5880 (internal_error_no_backtrace): Likewise.
5881 (source_range::debug): Likewise.
5882 * gcc-rich-location.c: New file.
5883 * gcc-rich-location.h: New file.
5884 * genmatch.c (fatal_at): Pass line_table to rich_location ctor.
5885 (warning_at): Likewise.
5886 * gimple.h (gimple_set_block): Use set_block function.
5887 * input.c (dump_line_table_statistics): Dump stats on how many
5888 ranges were optimized vs how many needed ad-hoc table.
5889 (write_digit_row): Add "map" param; use its range_bits
5890 to calculate the per-character offset.
5891 (dump_location_info): Print the range and column bits for each
5892 ordinary map. Use the range bits to calculate the per-character
5893 offset. Pass the map as a new param to the various calls to
5894 write_digit_row. Eliminate uses of
5895 ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
5896 * print-tree.c (print_node): Print any source range information.
5897 * rtl-error.c (diagnostic_for_asm): Likewise.
5898 * toplev.c (general_init): Initialize line_table's
5899 default_range_bits.
5900 * tree-cfg.c (move_block_to_fn): Likewise.
5901 (move_block_to_fn): Likewise.
5902 * tree-inline.c (copy_phis_for_bb): Likewise.
5903 * tree.c (tree_set_block): Likewise.
5904 (get_pure_location): New function.
5905 (set_source_range): New functions.
5906 (set_block): New function.
5907 (set_source_range): New functions.
5908 * tree.h (CAN_HAVE_RANGE_P): New.
5909 (EXPR_LOCATION_RANGE): New.
5910 (EXPR_HAS_RANGE): New.
5911 (get_expr_source_range): New inline function.
5912 (DECL_LOCATION_RANGE): New.
5913 (set_source_range): New decls.
5914 (get_decl_source_range): New inline function.
5915
5916 2015-11-13 Alan Lawrence <alan.lawrence@arm.com>
5917
5918 PR tree-optimization/67682
5919 * tree-vect-slp.c (vect_split_slp_store_group): New.
5920 (vect_analyze_slp_instance): During basic block SLP, recurse on
5921 subgroups if vect_build_slp_tree fails after 1st vector.
5922
5923 2015-11-13 Christian Bruel <christian.bruel@st.com>
5924
5925 PR target/65837
5926 * config/arm/arm.c (arm_option_override): Move NEON check...
5927 (arm_option_check_internal): here
5928 (arm_file_start): Move .fpu print...
5929 (arm_declare_function_name): here
5930 (arm_option_print): Dump current fpu name.
5931 * config/arm/arm.opt (arm_fpu_index): Mark Save.
5932
5933 2015-11-13 Segher Boessenkool <segher@kernel.crashing.org>
5934 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5935
5936 * combine.c (subst): Don't substitute or simplify when
5937 handling register-wise widening multiply.
5938 (force_to_mode): Likewise.
5939
5940 2015-11-13 Richard Sandiford <richard.sandiford@arm.com>
5941
5942 PR tree-optimization/68264
5943 * tree-call-cdce.c (gen_one_condition): Update commentary.
5944 (gen_conditions_for_pow_int_base): Invert the sense of the tests
5945 passed to gen_one_condition.
5946 (gen_conditions_for_domain): Likewise. Use unordered comparisons.
5947 (shrink_wrap_one_built_in_call): Invert the sense of the tests,
5948 using EDGE_FALSE_VALUE for edges to the call block and
5949 EDGE_TRUE_VALUE for the others.
5950
5951 2015-11-13 Nathan Sidwell <nathan@codesourcery.com>
5952
5953 * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with
5954 complex types.
5955
5956 2015-11-13 Nathan Sidwell <nathan@codesourcery.com>
5957
5958 * gimplify.c (oacc_default_clause): Use inform for enclosing scope.
5959
5960 2015-11-13 Tom de Vries <tom@codesourcery.com>
5961
5962 * gen-pass-instances.awk (handle_line): Rename prefix_len var to
5963 len_of_prefix.
5964
5965 2015-11-13 Tom de Vries <tom@codesourcery.com>
5966
5967 * gen-pass-instances.awk (handle_line): Add args_str variable.
5968
5969 2015-11-13 Martin Liska <mliska@suse.cz>
5970
5971 * graphite-poly.c (free_scop): Release scop->drs vector.
5972 * graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
5973 Release dom vector.
5974 (try_generate_gimple_bb): Use vNULL as a default initialization
5975 for vectors.
5976
5977 2015-11-13 Martin Liska <mliska@suse.cz>
5978
5979 PR ipa/68311
5980 * ipa-icf.c (sem_item_optimizer::traverse_congruence_split):
5981 Replace array initialization (using a variable post-increment)
5982 that possible triggers multiple unsequenced modifications
5983 with a pair of pushes to a vector.
5984
5985 2015-11-13 Richard Biener <rguenther@suse.de>
5986
5987 PR tree-optimization/68306
5988 * tree-vect-data-refs.c (verify_data_ref_alignment): Move
5989 loop related checks ...
5990 (vect_verify_datarefs_alignment): ... here.
5991 (vect_slp_analyze_and_verify_node_alignment): Compute and
5992 verify alignment of the single DR that it matters.
5993 * tree-vect-stmts.c (vectorizable_store): Add an assert.
5994 (vectorizable_load): Add a comment.
5995 * tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used
5996 for determining load cost.
5997
5998 2015-11-13 Ilya Enkovich <enkovich.gnu@gmail.com>
5999
6000 * tree-vect-loop.c (vect_determine_vectorization_factor): Check
6001 mix of boolean and integer vectors in a single statement.
6002 * tree-vect-slp.c (vect_mask_constant_operand_p): New.
6003 (vect_get_constant_vectors): Use vect_mask_constant_operand_p to
6004 determine constant type.
6005 * tree-vect-stmts.c (vectorizable_comparison): Provide vectype
6006 for loop invariants.
6007
6008 2015-11-13 Alan Hayward <alan.hayward@arm.com>
6009
6010 PR tree-optimization/66558
6011 * tree-vect-loop.c (is_integer_induction):Add.
6012 (vectorizable_reduction): Add integer induction checks.
6013
6014 2015-11-13 Christophe Lyon <christophe.lyon@linaro.org>
6015
6016 Revert [ARM] Remove neon-testgen.ml and generated tests.
6017
6018 2015-11-12 Christophe Lyon <christophe.lyon@linaro.org>
6019
6020 [ARM] Remove neon-testgen.ml and generated tests.
6021
6022 * config/arm/neon-testgen.ml: Remove.
6023
6024 2015-11-13 Richard Biener <rguenther@suse.de>
6025
6026 * tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter.
6027 Signal fatal failure if early checks fail.
6028 (vect_analyze_loop): If vect_analyze_loop_2 fails fatally
6029 do not bother testing further vector sizes.
6030
6031 2015-11-13 Uros Bizjak <ubizjak@gmail.com>
6032
6033 * config/i386/predicates.md (misaligned_operand): Return true if
6034 operand is aligned to less than its natural alignmnet.
6035
6036 2015-11-13 Ilya Enkovich <enkovich.gnu@gmail.com>
6037
6038 * doc/md.texi (vec_cmp@var{m}@var{n}): New item.
6039 (vec_cmpu@var{m}@var{n}): New item.
6040 (vcond@var{m}@var{n}): Specify comparison is signed.
6041 (vcondu@var{m}@var{n}): New item.
6042 (vcond_mask_@var{m}@var{n}): New item.
6043 (maskload@var{m}@var{n}): New item.
6044 (maskstore@var{m}@var{n}): New item.
6045
6046 2015-11-13 Ilya Enkovich <enkovich.gnu@gmail.com>
6047
6048 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
6049 types of stored value and storage are compatible.
6050
6051 2015-11-13 Andris Pavenis <andris.pavenis@iki.fi>
6052
6053 * gcc.c (POST_LINK_SPEC): Define if not already defined.
6054 (LINK_COMMAND_SPEC): Use post_link.
6055 (post_link_spec): New, initialize to POST_LINK_SPEC.
6056 (post_link): Initialize new static spec.
6057 * doc/tm.texi.in (POST_LINK_SPEC): Document.
6058 * doc/tm.texi: Regenerated.
6059
6060 2015-11-13 David Malcolm <dmalcolm@redhat.com>
6061
6062 PR driver/67613
6063 * Makefile.in (GCC_OBJS): Add spellcheck.o.
6064 (OBJS): Add spellcheck-tree.o.
6065 * gcc.c: Include "spellcheck.h".
6066 (suggest_option): New function.
6067 (driver::handle_unrecognized_options): Call suggest_option to
6068 provide a hint about misspelled options.
6069 * spellcheck.c: Update file comment.
6070 (levenshtein_distance): Convert 4-param implementation from static
6071 to extern scope. Remove note about unit tests from leading
6072 comment for const char * implementation. Move tree
6073 implementation to...
6074 * spellcheck-tree.c: New file.
6075 * spellcheck.h (levenshtein_distance): Add 4-param decl.
6076
6077 2015-11-13 David Malcolm <dmalcolm@redhat.com>
6078
6079 * Makefile.in (OBJS): Add spellcheck.o.
6080 * spellcheck.c: New file.
6081 * spellcheck.h: New file.
6082
6083 2015-11-13 James Bowman <james.bowman@ftdichip.com>
6084
6085 * config/ft32/ft32.md (*sne): New insn pattern.
6086
6087 2015-11-12 Brad Lucier <lucier@math.purdue.edu>
6088
6089 * cprop.c (is_too_expensive): Remove.
6090 (gcse.h): Include.
6091 (one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not
6092 is_too_expensive.
6093 * gcse.h (gcse_or_cprop_is_too_expensive): Declare.
6094 * gcse.c (is_too_expensive): Rename to ...
6095 (gcse_or_cprop_is_too_expensive): ... this.
6096 Expand warning to add required size of max-gcse-memory.
6097 (one_pre_gcse_pass): Use it.
6098 (one_code_hoisting_pass): Use it.
6099 * params.def (max-gcse-memory): Increase from 50MB to 128MB.
6100
6101 2015-11-12 James Norris <jnorris@codesourcery.com>
6102 Joseph Myers <joseph@codesourcery.com>
6103
6104 * gimple-pretty-print.c (dump_gimple_omp_target): Handle
6105 GF_OMP_TARGET_KIND_OACC_DECLARE.
6106 * gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
6107 (is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
6108 * gimplify.c (oacc_declare_returns): New.
6109 (gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
6110 (device_resident_p): New function.
6111 (oacc_default_clause): Handle device_resident clause.
6112 (gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
6113 (gimplify_expr): Handle OACC_DECLARE.
6114 * omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
6115 * omp-low.c (expand_omp_target): Handle
6116 GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
6117 (build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
6118 (lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
6119 GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
6120 (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
6121 * tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
6122 GOMP_MAP_DEVICE_RESIDENT.
6123
6124 2015-11-12 Christophe Lyon <christophe.lyon@linaro.org>
6125
6126 [ARM] Remove neon-testgen.ml and generated tests.
6127
6128 * config/arm/neon-testgen.ml: Remove.
6129
6130 2015-11-12 Jim Wilson <jim.wilson@linaro.org>
6131
6132 * config/aarch64/aarch64-cores.def (qdf24xx): New.
6133 * config/aarch64/aarch64-tune.md: Regenerated.
6134 * config/arm/arm-cores.def (qdf24xx): New.
6135 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Regenerated.
6136 * config/arm/bpabi.h (BE8_LINK_SPEC): Add qdf24xx support.
6137 * doc/invoke.texi (AArch64 Options/-mtune): Add "qdf24xx".
6138 (ARM Options/-mtune): Likewise.
6139
6140 2015-11-12 Martin Liska <mliska@suse.cz>
6141
6142 * config/i386/i386.c (ix86_valid_target_attribute_p):
6143 Finalize options at the of the function.
6144 * gcc.c (driver_get_configure_time_options): Call newly
6145 introduced init_opts_obstack.
6146 * lto-wrapper.c (main): Likewise.
6147 * opts.c (init_opts_obstack): New function.
6148 (init_options_struct): Call newly introduced init_opts_obstack.
6149 * opts.h (init_options_struct): Declare.
6150
6151 2015-11-12 Martin Liska <mliska@suse.cz>
6152
6153 PR ipa/68035
6154 * ipa-icf.c (void sem_item::set_hash): New function.
6155 (sem_function::get_hash): Use renamed m_hash member variable.
6156 (sem_item::update_hash_by_addr_refs): Utilize get_hash.
6157 (sem_item::update_hash_by_local_refs): Likewise.
6158 (sem_variable::get_hash): Use renamed m_hash member variable.
6159 (sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash.
6160 (sem_item_optimizer::build_hash_based_classes): Utilize set_hash.
6161 (sem_item_optimizer::build_graph): As the hash value of an item
6162 is lazy initialized, force the calculation.
6163 * ipa-icf.h (set_hash): Declare new function and rename hash member
6164 variable to m_hash.
6165
6166 2015-11-12 Richard Biener <rguenther@suse.de>
6167
6168 * tree-vectorizer.h (vect_slp_analyze_data_ref_dependences):
6169 Rename to vect_slp_analyze_instance_dependence.
6170 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
6171 Remove WAR special-case.
6172 (vect_slp_analyze_node_dependences): Instead add more specific
6173 code here, not relying on other instances being vectorized.
6174 (vect_slp_analyze_instance_dependence): Adjust accordingly.
6175 * tree-vect-slp.c (vect_build_slp_tree_1): Remove excessive
6176 vertical space in dump files.
6177 (vect_print_slp_tree): Likewise.
6178 (vect_analyze_slp_instance): Dump a header for the final SLP tree.
6179 (vect_slp_analyze_bb_1): Delay computing relevant stmts and
6180 not vectorized stmts until after dependence analysis removed
6181 instances. Merge alignment and dependence checks.
6182 * tree-vectorizer.c (pass_slp_vectorize::execute): Clear visited
6183 flag on all stmts.
6184
6185 2015-11-12 Evandro Menezes <e.menezes@samsung.com>
6186
6187 * config/aarch64/aarch64-protos.h (tune_params): Add new members
6188 "max_case_values" and "cache_line_size".
6189 * config/aarch64/aarch64.c (aarch64_case_values_threshold): New
6190 function.
6191 (aarch64_override_options_internal): Tune heuristics based on new
6192 members in "tune_params".
6193 (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6194
6195 2015-11-12 Richard Biener <rguenther@suse.de>
6196
6197 PR tree-optimization/68306
6198 * tree-vect-data-refs.c (verify_data_ref_alignment): Remove
6199 relevant and vectorizable checks here.
6200 (vect_verify_datarefs_alignment): Add relevant check here.
6201
6202 2015-11-12 Nathan Sidwell <nathan@codesourcery.com>
6203
6204 * gimplify.c (oacc_default_clause): New.
6205 (omp_notice_variable): Call it.
6206
6207 2015-11-12 Ilya Enkovich <enkovich.gnu@gmail.com>
6208
6209 PR tree-optimization/68305
6210 * tree-vect-slp.c (vect_get_constant_vectors): Support
6211 COND_EXPR with SSA_NAME as a condition.
6212
6213 2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
6214
6215 * config/visium/visium-protos.h (notice_update_cc): Delete.
6216 (print_operand): Likewise.
6217 (print_operand_address): Likewise.
6218
6219 2015-11-12 Uros Bizjak <ubizjak@gmail.com>
6220
6221 * config/alpha/alpha.h (FUNCTION_VALUE, LIBCALL_VALUE,
6222 FUNCTION_VALUE_REGNO_P): Remove.
6223 * config/alpha/alpha-protos.h (function_value): Remove.
6224 * config/alpha/alpha.c (function_value): Rename to...
6225 (alpha_function_value_1): ... this. Make static.
6226 (alpha_function_value, alpha_libcall_value,
6227 alpha_function_value_regno_p): New functions.
6228 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6229 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6230
6231 2015-11-12 Uros Bizjak <ubizjak@gmail.com>
6232
6233 * config/alpha/alpha.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6234 * config/alpha/alpha.c (alpha_memory_latency): Make static.
6235 (alpha_register_move_cost, alpha_memory_move_cost): New functions.
6236 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
6237
6238 2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
6239
6240 PR target/67265
6241 * config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
6242 assertion on the CFA register.
6243
6244 2015-11-12 Ilya Enkovich <enkovich.gnu@gmail.com>
6245
6246 * expr.c (do_store_flag): Expand vector comparison as
6247 VEC_COND_EXPR if vector comparison is not supported by target.
6248
6249 2015-11-12 Renlin Li <renlin.li@arm.com>
6250
6251 * config/arm/arm.md (addsi3_compare_op2): Make the order of
6252 assembly pattern consistent with constraint order.
6253
6254 2015-11-12 Tom de Vries <tom@codesourcery.com>
6255
6256 * gen-pass-instances.awk (handle_line): Simplify match regexp.
6257
6258 2015-11-12 Tom de Vries <tom@codesourcery.com>
6259
6260 * gen-pass-instances.awk (handle_line): Simplify init of
6261 postfix_starts_at.
6262
6263 2015-11-12 Tom de Vries <tom@codesourcery.com>
6264
6265 * gen-pass-instances.awk (handle_line): Rename var where to
6266 call_starts_at.
6267
6268 2015-11-12 Claudiu Zissulescu <claziss@synopsys.com>
6269
6270 * config/arc/arc.c (gen_compare_reg): Swap operands also when we
6271 do not expand to rtl.
6272
6273 2015-11-12 Richard Biener <rguenther@suse.de>
6274
6275 PR tree-optimization/58497
6276 * tree-vect-generic.c: Include gimplify.h.
6277 (tree_vec_extract): Lookup constant/constructor DEFs.
6278 (do_cond): Unshare cond.
6279
6280 2015-11-12 Uros Bizjak <ubizjak@gmail.com>
6281
6282 * config/i386/i386.c (ix86_legitimate_combined_insn): Reject
6283 combined insn if the alignment of vector mode memory operand
6284 is less than ssememalign.
6285
6286 2015-11-12 Tom de Vries <tom@codesourcery.com>
6287
6288 * gen-pass-instances.awk (handle_line): Print parentheses and
6289 pass_name explicitly.
6290
6291 2015-11-12 Tom de Vries <tom@codesourcery.com>
6292
6293 * gen-pass-instances.awk (handle_line): Add pass_num, prefix
6294 and postfix vars.
6295
6296 2015-11-12 Tom de Vries <tom@codesourcery.com>
6297
6298 * gen-pass-instances.awk (handle_line): Add comments.
6299
6300 2015-11-12 Tom de Vries <tom@codesourcery.com>
6301
6302 * gen-pass-instances.awk (handle_line): Rename len_of_end to
6303 len_of_close.
6304
6305 2015-11-12 Tom de Vries <tom@codesourcery.com>
6306
6307 * gen-pass-instances.awk (handle_line): Add len_of_call variable.
6308
6309 2015-11-12 Tom de Vries <tom@codesourcery.com>
6310
6311 * gen-pass-instances.awk (handle_line): Restructure using early-out.
6312
6313 2015-11-12 Tom de Vries <tom@codesourcery.com>
6314
6315 * gen-pass-instances.awk (handle_line): Unify semicolon use.
6316
6317 2015-11-12 Tom de Vries <tom@codesourcery.com>
6318
6319 * gen-pass-instances.awk (handle_line): Remove unused var line_length.
6320
6321 2015-11-12 Tom de Vries <tom@codesourcery.com>
6322
6323 * gen-pass-instances.awk: Add emacs indent setting.
6324
6325 2015-11-12 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
6326
6327 * fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
6328 to match.pd.
6329 Move Convert A/(B/C) to (A/B)*C to match.pd.
6330 Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
6331 Move Optimize (X & (-A)) / A where A is a power of 2, to
6332 X >> log2(A) to match.pd.
6333
6334 * match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
6335 (rdiv @0 (rdiv:s @1 @2)): New simplifier.
6336 (div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
6337 New simplifier.
6338 (rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.
6339
6340 2015-11-12 Charles Baylis <charles.baylis@linaro.org>
6341
6342 * config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max
6343 variable.
6344 (neon_vst2_lane<mode>): Likewise.
6345 (neon_vld3_lane<mode>): Likewise.
6346 (neon_vst3_lane<mode>): Likewise.
6347 (neon_vld4_lane<mode>): Likewise.
6348 (neon_vst4_lane<mode>): Likewise.
6349
6350 2015-11-11 Aditya Kumar <aditya.k7@samsung.com>
6351 Sebastian Pop <s.pop@samsung.com>
6352
6353 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
6354 New member codegen_error
6355 (translate_isl_ast_for_loop): Remove call to single_succ_edge and
6356 early return.
6357 (translate_isl_ast_node_user): Early return in case of error.
6358 (translate_isl_ast_to_gimple::translate_isl_ast): Same.
6359 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
6360 (add_parameters_to_ivs_params): Remove macro.
6361 (graphite_regenerate_ast_isl): Add if_region pointer to region.
6362 * graphite-poly.c (new_poly_dr): Remove macro.
6363 (print_pdr): Same.
6364 (new_gimple_poly_bb): Same.
6365 (free_gimple_poly_bb): Same.
6366 (print_scop_params): Same.
6367 * graphite-poly.h (struct poly_dr): Same.
6368 (struct poly_bb): Add new_bb.
6369 (gbb_from_bb): Remove dead code.
6370 (pbb_from_bb): Same.
6371 * graphite-scop-detection.c (parameter_index_in_region_1): Same.
6372 (parameter_index_in_region): Same.
6373 (find_scop_parameters): Same.
6374 (build_cross_bb_scalars_def): New.
6375 (build_cross_bb_scalars_use): New.
6376 (graphite_find_cross_bb_scalar_vars): New
6377 (try_generate_gimple_bb): Reads and Writes.
6378 (build_alias_set): Move.
6379 (gather_bbs::before_dom_children): Gather bbs visited.
6380 (build_scops): call build_alias_set.
6381 * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
6382 (remove_simple_copy_phi): Delete.
6383 (remove_invariant_phi): Delete.
6384 (simple_copy_phi_p): Delete.
6385 (reduction_phi_p): Delete.
6386 (isl_id_for_dr): Remove unused param.
6387 (parameter_index_in_region_1): Remove macro usage.
6388 (set_scop_parameter_dim): Same.
6389 (add_param_constraints): Same.
6390 (add_conditions_to_constraints): Same
6391 (build_scop_iteration_domain): Same.
6392 (pdr_add_alias_set): Comment.
6393 (add_scalar_version_numbers): New.
6394 (build_poly_dr): ISL id.
6395 (build_scop_drs): Move.
6396 (build_poly_sr_1): Same.
6397 (insert_stmts): Remove.
6398 (build_poly_sr): New.
6399 (new_pbb_from_pbb): Delete.
6400 (insert_out_of_ssa_copy_on_edge): Delete.
6401 (create_zero_dim_array): Delete.
6402 (scalar_close_phi_node_p): Delete.
6403 (propagate_expr_outside_region): Delete.
6404 (rewrite_close_phi_out_of_ssa): Delete.
6405 (rewrite_phi_out_of_ssa): Delete.
6406 (rewrite_degenerate_phi): Delete.
6407 (rewrite_reductions_out_of_ssa): Delete.
6408 (rewrite_cross_bb_scalar_dependence): Delete.
6409 (handle_scalar_deps_crossing_scop_limits):
6410 (rewrite_cross_bb_scalar_deps): Delete.
6411 (build_poly_scop): Remove calls to out-of-ssa functions.
6412 * graphite.c (graphite_transform_loops): Early return in case of
6413 codegen error.
6414 * sese.c (debug_rename_map_1): Delete.
6415 (debug_rename_map): Delete.
6416 (sese_record_loop): Remove macro.
6417 (build_sese_loop_nests): Same.
6418 (new_sese_info): Same.
6419 (free_sese_info): Same.
6420 (sese_insert_phis_for_liveouts):
6421 (is_loop_closed_ssa_use): New.
6422 (number_of_phi_nodes): New.
6423 (bb_contains_loop_close_phi_nodes): New.
6424 (bb_contains_loop_phi_nodes): New.
6425 (phi_uses_name): New.
6426 (is_valid_rename):
6427 (get_rename): Add old_bb and loop_phi for more precise matching of
6428 exprs.
6429 (set_rename): Pass region.
6430 (later_of_the_two): New.
6431 (gsi_insert_earliest): New.
6432 (collect_all_ssa_names): New.
6433 (substitute_ssa_name): New.
6434 (rename_all_uses): New.
6435 (get_rename_from_scev): New.
6436 (rename_uses): Pass old_bb for more precise matching of exprs.
6437 (get_def_bb_for_const): New.
6438 (get_new_name): New.
6439 (get_loc): New.
6440 (get_edges): New.
6441 (copy_loop_phi_args): New.
6442 (copy_loop_phi_nodes): New.
6443 (get_loop_init_value): New.
6444 (find_init_value): New.
6445 (find_init_value_close_phi): New.
6446 (copy_loop_close_phi_args): New.
6447 (copy_loop_close_phi_nodes): New.
6448 (add_phi_arg_for_new_expr): New.
6449 (copy_cond_phi_args): New.
6450 (copy_cond_phi_nodes): New.
6451 (copy_phi_nodes): New.
6452 (should_copy_to_new_region): New.
6453 (set_rename_for_each_def): New.
6454 (graphite_copy_stmts_from_block): Early return in case of error.
6455 (copy_bb_and_scalar_dependences): Same.
6456 * sese.h (vec_find): New.
6457 (SESE_PARAMS): Delete.
6458 (SESE_LOOPS): Delete.
6459 (SESE_LOOP_NEST): Delete.
6460 (sese_contains_loop): Remove macro usage.
6461 (sese_nb_params): Same.
6462 (struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.
6463
6464 2015-11-11 Abderrazek Zaafrani <a.zaafrani@samsung.com>
6465
6466 * graphite-sese-to-poly.c (build_scop_original_schedule): Call
6467 isl_union_map_add_map on every pbb->schedule.
6468
6469 2015-11-11 Tom de Vries <tom@codesourcery.com>
6470
6471 * tree-parloops.c (create_parallel_loop): Return void.
6472
6473 2015-11-11 Tom de Vries <tom@codesourcery.com>
6474
6475 * tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit
6476 block only when needed.
6477
6478 2015-11-11 Uros Bizjak <ubizjak@gmail.com>
6479
6480 * config/alpha/alpha-protos.h (print_operand): Remove.
6481 (print_operand_address): Remove.
6482 * config/alpha/alpha.h (PRINT_OPERAND): Remove.
6483 (PRINT_OPERAND_ADDRESS): Remove.
6484 (PRINT_OPERAND_PUNCT_VALID_P): Remove.
6485 * config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define.
6486 (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
6487 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
6488 (print_operand_address): Rename to...
6489 (alpha_print_operand_address): ...this and make static.
6490 (print_operand): Rename to...
6491 (alpha_print_operand): ...this and make static.
6492 (alpha_print_operand_punct_valid_p): New static function.
6493
6494 2015-11-11 Richard Biener <rguenther@suse.de>
6495
6496 * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
6497 Declare.
6498 (vect_analyze_data_refs_alignment): Make loop vect specific.
6499 (vect_verify_datarefs_alignment): Likewise.
6500 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
6501 Add missing continue.
6502 (vect_compute_data_ref_alignment): Export.
6503 (vect_compute_data_refs_alignment): Merge into...
6504 (vect_analyze_data_refs_alignment): ... this.
6505 (verify_data_ref_alignment): Split out from ...
6506 (vect_verify_datarefs_alignment): ... here.
6507 (vect_slp_analyze_and_verify_node_alignment): New function.
6508 (vect_slp_analyze_and_verify_instance_alignment): Likewise.
6509 * tree-vect-slp.c (vect_supported_load_permutation_p): Remove
6510 misplaced checks on alignment.
6511 (vect_slp_analyze_bb_1): Add fatal output parameter. Do
6512 alignment analysis after SLP discovery and do it per instance.
6513 (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
6514 bother to re-try using different vector sizes.
6515
6516 2015-11-11 Nathan Sidwell <nathan@codesourcery.com>
6517 Cesar Philippidis <cesar@codesourcery.com>
6518
6519 * gimplify.c (enum omp_region_type): Add ORT_ACC,
6520 ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS. Adjust ORT_NONE.
6521 (gimple_add_tmp_var): Add ORT_ACC checks.
6522 (gimplify_var_or_parm_decl): Likewise.
6523 (omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a mask.
6524 (omp_add_variable): Look in outer contexts for openacc and allow
6525 reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA checks.
6526 (omp_notice_variable, omp_is_private, omp_check_private): Add
6527 ORT_ACC checks.
6528 (gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE.
6529 Permit private openacc reductions.
6530 (gimplify_oacc_cache): Specify ORT_ACC.
6531 (gimplify_omp_workshare): Adjust OpenACC region types.
6532 (gimplify_omp_target_update): Likewise.
6533 * omp-low.c (scan_sharing_clauses): Remove Openacc firstprivate sorry.
6534 (lower-rec_input_clauses): Don't handle openacc firstprivate
6535 references here.
6536 (lower_omp_target): Emit initializers for openacc firstprivate vars.
6537
6538 2015-11-11 Eric Botcazou <ebotcazou@adacore.com>
6539
6540 PR target/67265
6541 * ira.c (ira_setup_eliminable_regset): Do not necessarily create the
6542 frame pointer for stack checking if non-call exceptions aren't used.
6543 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
6544
6545 2015-11-11 Segher Boessenkool <segher@kernel.crashing.org>
6546
6547 * simplify-rtx.c (simplify_truncation): Simplify TRUNCATE of AND of
6548 [LA]SHIFTRT.
6549
6550 2015-11-11 Martin Liska <mliska@suse.cz>
6551 Richard Biener <rguenther@suse.de>
6552
6553 PR rtl-optimization/68287
6554 * lra-lives.c (lra_create_live_ranges_1): Reserve the right
6555 number of elements.
6556
6557 2015-11-11 Simon Dardis <simon.dardis@imgtec.com>
6558
6559 * config/mips/mips.c (mips_breakable_sequence_p): New function.
6560 (mips_break_sequence): New function.
6561 (mips_reorg_process_insns): Use them. Use compact branches in selected
6562 situations.
6563
6564 2015-11-11 Alan Lawrence <alan.lawrence@arm.com>
6565
6566 * fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo.
6567
6568 2015-11-11 Jiong Wang <jiong.wang@arm.com>
6569 Jim Wilson <wilson@gcc.gnu.org>
6570
6571 PR target/67305
6572 * config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
6573 be true and eliminable registers mentioned.
6574
6575 2015-11-11 Claudiu Zissulescu <claziss@synopsys.com>
6576
6577 * common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2
6578 options.
6579 * config/arc/arc-opts.h: Add ARCv2 CPUs.
6580 * config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype.
6581 * config/arc/arc.c (arc_secondary_reload): Handle subreg (reg)
6582 situation, and store instructions with large offsets.
6583 (arc_secondary_reload_conv): New function.
6584 (arc_init): Add ARCv2 options.
6585 (arc_conditional_register_usage): Select the proper register usage
6586 for ARCv2 processors.
6587 (arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1
6588 architecture.
6589 (arc_compute_function_type): Likewise.
6590 (arc_print_operand): Handle new ARCv2 punctuation characters.
6591 (arc_return_in_memory): ARCv2 ABI returns in registers up to 16 bytes.
6592 (workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New
6593 function.
6594 (arc_reorg, arc_hazard): Use it.
6595 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and __EM__.
6596 (ASM_SPEC): Add ARCv2 options.
6597 (TARGET_NORM): ARC HS has norm instructions by default.
6598 (TARGET_OPTFPE): Use optimized floating point emulation for ARC HS.
6599 (TARGET_AT_DBR_CONDEXEC): Only for ARC600 family.
6600 (TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI): Define.
6601 (SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY):
6602 Likewise.
6603 (TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise.
6604 (TARGET_LP_WR_INTERLOCK): Likewise.
6605 * config/arc/arc.md
6606 (commutative_binary_mult_comparison_result_used, movsicc_insn)
6607 (mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart)
6608 (umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart)
6609 (umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i):
6610 Use it for ARCv2.
6611 (mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm)
6612 (umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2)
6613 (prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu)
6614 (arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store)
6615 (extzvsi): New pattern.
6616 * config/arc/arc.opt: New ARCv2 options.
6617 * config/arc/arcEM.md: New file.
6618 * config/arc/arcHS.md: Likewise.
6619 * config/arc/constraints.md (C3p): New constraint, accepts 1 and 2
6620 values.
6621 (Cm2): A signed 9-bit integer constant constraint.
6622 (C62): An unsigned 6-bit integer constant constraint.
6623 (C16): A signed 16-bit integer constant constraint.
6624 * config/arc/predicates.md (mult_operator): Add ARCv2 processort.
6625 (short_const_int_operand): New predicate.
6626 * config/arc/t-arc-newlib: Add ARCv2 multilib options.
6627 * doc/invoke.texi: Add documentation for -mcpu=<archs/arcem>
6628 -mcode-density and -mdiv-rem.
6629
6630 2015-11-11 Julia Koval <julia.koval@intel.com>
6631
6632 * config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo.
6633
6634 2015-11-11 Julia Koval <julia.koval@intel.com>
6635
6636 * config/i386/i386.c: Handle "skylake" and "skylake-avx512".
6637
6638 2015-11-11 Martin Liska <mliska@suse.cz>
6639
6640 * gimple-ssa-strength-reduction.c (create_phi_basis):
6641 Use auto_vec.
6642 * passes.c (release_dump_file_name): New function.
6643 (pass_init_dump_file): Used from this function.
6644 (pass_fini_dump_file): Likewise.
6645 * tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
6646 * var-tracking.c (vt_initialize): Use pool_allocator.
6647
6648 2015-11-11 Richard Biener <rguenth@gcc.gnu.org>
6649 Jiong Wang <jiong.wang@arm.com>
6650
6651 PR tree-optimization/68234
6652 * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
6653 node which estimiated to be VR_VARYING initially.
6654
6655 2015-11-11 Robert Suchanek <robert.suchanek@imgtec.com>
6656
6657 * regname.c (scan_rtx_reg): Check the matching number of consecutive
6658 registers when tying chains.
6659 (build_def_use): Move terminated_this_insn earlier in the function.
6660
6661 2015-11-10 Mike Frysinger <vapier@gentoo.org>
6662
6663 * configure.ac: Use = with test and not ==.
6664 * configure: Regenerated.
6665
6666 2015-11-11 David Edelsohn <dje.gcc@gmail.com>
6667
6668 * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
6669 machine asserts. Update defines for 64 bit.
6670
6671 2015-11-11 Charles Baylis <charles.baylis@linaro.org>
6672
6673 PR target/63870
6674 * config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
6675 lane number.
6676 (neon_vst1_lane<mode>): Likewise.
6677 (neon_vld2_lane<mode>): Likewise.
6678 (neon_vst2_lane<mode>): Likewise.
6679 (neon_vld3_lane<mode>): Likewise.
6680 (neon_vst3_lane<mode>): Likewise.
6681 (neon_vld4_lane<mode>): Likewise.
6682 (neon_vst4_lane<mode>): Likewise.
6683
6684 2015-11-11 Charles Baylis <charles.baylis@linaro.org>
6685
6686 PR target/63870
6687 * config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
6688 qualifier_struct_load_store_lane_index.
6689 (arm_storestruct_lane_qualifiers) Likewise.
6690 * config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
6691 big-endian.
6692 (neon_vst1_lane<mode>) Likewise.
6693 (neon_vld2_lane<mode>) Likewise.
6694 (neon_vst2_lane<mode>) Likewise.
6695 (neon_vld3_lane<mode>) Likewise.
6696 (neon_vst3_lane<mode>) Likewise.
6697 (neon_vld4_lane<mode>) Likewise.
6698 (neon_vst4_lane<mode>) Likewise.
6699
6700 2015-11-11 Charles Baylis <charles.baylis@linaro.org>
6701
6702 PR target/63870
6703 * config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
6704 qualifier_struct_load_store_lane_index.
6705 (builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
6706 (arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
6707 argument qualifiers.
6708 (arm_expand_neon_builtin): Handle new NEON argument qualifier.
6709 * config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.
6710
6711 2015-11-10 Nathan Sidwell <nathan@codesourcery.com>
6712
6713 * config/nvptx/nvptx.opt (moptimize): New flag.
6714 * config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
6715 default.
6716 (nvptx_optimize_inner): New.
6717 (nvptx_process_pars): Call it when optimizing.
6718 * doc/invoke.texi (Nvidia PTX Options): Document -moptimize.
6719
6720 2015-11-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6721
6722 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
6723 Remove redundant code.
6724
6725 2015-11-10 Jeff Law <law@redhat.com>
6726
6727 * config/ft32/ft32.c (ft32_print_operand): Supply mode to
6728 call to output_address.
6729 * config/moxie/moxie.c (moxie_print_operand_address): Similarly.
6730 Add unnamed machine_mode argument.
6731
6732 2015-11-10 Michael Meissner <meissner@linux.vnet.ibm.com>
6733
6734 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
6735 default to 64-bit.
6736
6737 2015-11-10 Uros Bizjak <ubizjak@gmail.com>
6738
6739 * config/i386/i386.md (*movabs<mode>_1): Add explicit
6740 size directives for -masm=intel.
6741 (*movabs<mode>_2): Ditto.
6742
6743 2015-11-10 Uros Bizjak <ubizjak@gmail.com>
6744
6745 * config/i386/i386.c (ix86_print_operand): Remove dead code that
6746 tried to avoid (%rip) for call operands.
6747
6748 2015-11-10 Uros Bizjak <ubizjak@gmail.com>
6749
6750 * config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
6751 argument. Do not use RIP relative addressing when no_rip is set.
6752 (ix86_print_operand): Update call to ix86_print_operand_address_as.
6753 (ix86_print_operand_address): Ditto.
6754 * config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
6755 absolute movabs operand 0. Add square braces for -masm=intel.
6756 (*movabs<mode>_2): Ditto for operand 1.
6757
6758 2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6759
6760 * config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
6761 combine_vcvtf2i pattern.
6762
6763 2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6764
6765 * config/arm/arm.c (neon_valid_immediate): Remove integer
6766 CONST_DOUBLE handling. It should never occur.
6767
6768 2015-11-10 Matthew Wahab <matthew.wahab@arm.com>
6769
6770 * config/aarch64/atomics.md (unspecv): Move to iterators.md.
6771 (ATOMIC_LDOP): Likewise.
6772 (atomic_ldop): Likewise.
6773 * config/aarch64/iterators.md (unspecv): Moved from atomics.md.
6774 (ATOMIC_LDOP): Likewise.
6775 (atomic_ldop): Likewise.
6776
6777 2015-11-10 Martin Liska <mliska@suse.cz>
6778
6779 * alloc-pool.h (allocate_raw): New function.
6780 (operator new (size_t, object_allocator<T> &a)): Use the
6781 function instead of object_allocator::allocate).
6782
6783 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com>
6784
6785 * config/i386/sse.md (HALFMASKMODE): New attribute.
6786 (DOUBLEMASKMODE): New attribute.
6787 (vec_pack_trunc_qi): New.
6788 (vec_pack_trunc_<mode>): New.
6789 (vec_unpacks_lo_hi): New.
6790 (vec_unpacks_lo_si): New.
6791 (vec_unpacks_lo_di): New.
6792 (vec_unpacks_hi_hi): New.
6793 (vec_unpacks_hi_<mode>): New.
6794
6795 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com>
6796
6797 * optabs.c (expand_binop_directly): Allow scalar mode for
6798 vec_pack_trunc_optab.
6799 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
6800 boolean vector producers from pattern sequence when computing VF.
6801 * tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
6802 vect_recog_mask_conversion_pattern.
6803 (search_type_for_mask): Choose the smallest
6804 type if different size types are mixed.
6805 (build_mask_conversion): New.
6806 (vect_recog_mask_conversion_pattern): New.
6807 (vect_pattern_recog_1): Allow scalar mode for boolean vectype.
6808 * tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
6809 load with pattern.
6810 (vectorizable_conversion): Support boolean vectors.
6811 (free_stmt_vec_info): Allow patterns for statements with no lhs.
6812 * tree-vectorizer.h (NUM_PATTERNS): Increase to 14.
6813
6814 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com>
6815
6816 * config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
6817 * config/i386/i386.c (ix86_expand_sse_movcc): Make public.
6818 Cast mask to FP mode if required.
6819 * config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
6820 (vcond_mask_<mode><avx512fmaskmodelower>): New.
6821 (vcond_mask_<mode><sseintvecmodelower>): New.
6822 (vcond_mask_<mode><sseintvecmodelower>): New.
6823 (vcond_mask_v2div2di): New.
6824 (vcond_mask_<mode><sseintvecmodelower>): New.
6825 (vcond_mask_<mode><sseintvecmodelower>): New.
6826
6827 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com>
6828
6829 * optabs-query.h (get_vcond_mask_icode): New.
6830 * optabs-tree.c (expand_vec_cond_expr_p): Use
6831 get_vcond_mask_icode for VEC_COND_EXPR with mask.
6832 * optabs.c (expand_vec_cond_mask_expr): New.
6833 (expand_vec_cond_expr): Use get_vcond_mask_icode when possible.
6834 * optabs.def (vcond_mask_optab): New.
6835 * tree-vect-patterns.c (vect_recog_bool_pattern): Don't
6836 generate redundant comparison for COND_EXPR.
6837 * tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
6838 as a condition.
6839 (vectorizable_condition): Likewise.
6840 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
6841 cond_exp with no embedded comparison.
6842 (vect_build_slp_tree_1): Likewise.
6843
6844 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com>
6845
6846 * config/i386/sse.md (maskload<mode>): Rename to ...
6847 (maskload<mode><sseintvecmodelower>): ... this.
6848 (maskstore<mode>): Rename to ...
6849 (maskstore<mode><sseintvecmodelower>): ... this.
6850 (maskload<mode><avx512fmaskmodelower>): New.
6851 (maskstore<mode><avx512fmaskmodelower>): New.
6852
6853 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com>
6854
6855 * internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
6856 (expand_MASK_STORE): Adjust to maskstore optab changes.
6857 * optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
6858 Adjust to maskload, maskstore optab changes.
6859 * optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
6860 * optabs.def (maskload_optab): Transform into convert optab.
6861 (maskstore_optab): Likewise.
6862 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
6863 can_vec_mask_load_store_p signature change.
6864 (predicate_mem_writes): Use boolean mask.
6865 * tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
6866 can_vec_mask_load_store_p signature change. Allow invariant masks.
6867 (vectorizable_operation): Ignore type precision for boolean vectors.
6868
6869 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com>
6870
6871 * expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
6872 (const_vector_mask_from_tree): New.
6873 (const_vector_from_tree): Use const_vector_mask_from_tree
6874 for boolean vectors.
6875 * optabs-query.h (get_vec_cmp_icode): New.
6876 * optabs-tree.c (expand_vec_cmp_expr_p): New.
6877 * optabs-tree.h (expand_vec_cmp_expr_p): New.
6878 * optabs.c (vector_compare_rtx): Add OPNO arg.
6879 (expand_vec_cond_expr): Adjust to vector_compare_rtx change.
6880 (expand_vec_cmp_expr): New.
6881 * optabs.def (vec_cmp_optab): New.
6882 (vec_cmpu_optab): New.
6883 * optabs.h (expand_vec_cmp_expr): New.
6884 * tree-vect-generic.c (expand_vector_comparison): Add vector
6885 comparison optabs check.
6886 * tree-vect-loop.c (vect_determine_vectorization_factor): Ignore mask
6887 operations for VF. Add mask type computation.
6888 * tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
6889 (vectorizable_comparison): New.
6890 (vect_analyze_stmt): Add vectorizable_comparison.
6891 (vect_transform_stmt): Likewise.
6892 (vect_init_vector): Support boolean vector invariants.
6893 (vect_get_vec_def_for_operand): Add VECTYPE arg.
6894 (vectorizable_condition): Directly provide vectype for invariants
6895 used in comparison.
6896 * tree-vectorizer.h (get_mask_type_for_scalar_type): New.
6897 (enum vect_var_kind): Add vect_mask_var.
6898 (enum stmt_vec_info_type): Add comparison_vec_info_type.
6899 (vectorizable_comparison): New.
6900 (vect_get_vec_def_for_operand): Add VECTYPE arg.
6901 * tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
6902 (vect_create_destination_var): Likewise.
6903 * tree-vect-patterns.c (check_bool_pattern): Check fails
6904 if we can vectorize comparison directly.
6905 (search_type_for_mask): New.
6906 (vect_recog_bool_pattern): Support cases when bool pattern check fails.
6907 * tree-vect-slp.c (vect_build_slp_tree_1): Allow
6908 comparison statements.
6909 (vect_get_constant_vectors): Support boolean vector constants.
6910 * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
6911 (ix86_expand_int_vec_cmp): New.
6912 (ix86_expand_fp_vec_cmp): New.
6913 * config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
6914 op_true and op_false.
6915 (ix86_int_cmp_code_to_pcmp_immediate): New.
6916 (ix86_fp_cmp_code_to_pcmp_immediate): New.
6917 (ix86_cmp_code_to_pcmp_immediate): New.
6918 (ix86_expand_mask_vec_cmp): New.
6919 (ix86_expand_fp_vec_cmp): New.
6920 (ix86_expand_int_sse_cmp): New.
6921 (ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
6922 (ix86_expand_int_vec_cmp): New.
6923 (ix86_get_mask_mode): New.
6924 (TARGET_VECTORIZE_GET_MASK_MODE): New.
6925 * config/i386/sse.md (avx512fmaskmodelower): New.
6926 (vec_cmp<mode><avx512fmaskmodelower>): New.
6927 (vec_cmp<mode><sseintvecmodelower>): New.
6928 (vec_cmpv2div2di): New.
6929 (vec_cmpu<mode><avx512fmaskmodelower>): New.
6930 (vec_cmpu<mode><sseintvecmodelower>): New.
6931 (vec_cmpuv2div2di): New.
6932
6933 2015-11-10 Richard Biener <rguenther@suse.de>
6934
6935 PR tree-optimization/68240
6936 * tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
6937 properly.
6938 (visit_phi): For PHIs with just a single executable edge
6939 take its value directly.
6940 (expressions_equal_p): Handle VN_TOP properly.
6941
6942 2015-11-10 Richard Biener <rguenther@suse.de>
6943
6944 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
6945 Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
6946 conservatively.
6947
6948 2015-11-10 Richard Biener <rguenther@suse.de>
6949
6950 PR tree-optimization/56118
6951 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
6952 cost favor vectorized version.
6953
6954 2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6955
6956 * config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
6957 * config/aarch64/iterators.md (NEG_NOT): New code iterator.
6958 (neg_not_op): New code attribute.
6959
6960 2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6961
6962 * ifcvt.c (noce_try_inverse_constants): New function.
6963 (noce_process_if_block): Call it.
6964 * optabs.h (emit_conditional_neg_or_complement): Declare prototype.
6965 * optabs.def (negcc_optab, notcc_optab): Declare.
6966 * optabs.c (emit_conditional_neg_or_complement): New function.
6967 * doc/tm.texi (Standard Names): Document negcc, notcc names.
6968
6969 2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6970
6971 PR rtl-optimization/68236
6972 * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
6973 if insn_queue doesn't exist.
6974 (haifa_sched_finish): Reset insn_queue to NULL.
6975
6976 2015-11-10 Robert Suchanek <robert.suchanek@imgtec.com>
6977
6978 * regrename.c (create_new_chain): Initialize renamed and tied_chain.
6979 (build_def_use): Initialize terminated_this_insn.
6980 (find_best_rename_reg): Pick and check register from the tied chain.
6981 (regrename_do_replace): Mark head as renamed.
6982 (struct du_head *terminated_this_insn). New static variable.
6983 (scan_rtx_reg): Tie chains in move insns. Set terminated_this_insn.
6984 * regrename.h (struct du_head): Add tied_chain, renamed members.
6985
6986 2015-11-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6987
6988 PR bootstrap/68256
6989 * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
6990 Return false.
6991
6992 2015-11-09 Eric Botcazou <ebotcazou@adacore.com>
6993
6994 PR target/57845
6995 * config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
6996 not promote the mode for aggregate types.
6997
6998 2015-11-09 Nathan Sidwell <nathan@codesourcery.com>
6999
7000 * omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
7001 * omp-low.c (build_oacc_routine_dims): New.
7002
7003 2015-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
7004
7005 * config/rs6000/constraints.md (wF constraint): New constraints
7006 for power9/toc fusion.
7007 (wG constraint): Likewise.
7008
7009 * config/rs6000/predicates.md (u6bit_cint_operand): New
7010 predicate, recognize 0..63.
7011 (upper16_cint_operand): New predicate for power9 and toc fusion.
7012 (fpr_reg_operand): Likewise.
7013 (toc_fusion_or_p9_reg_operand): Likewise.
7014 (toc_fusion_mem_raw): Likewise.
7015 (toc_fusion_mem_wrapped): Likewise.
7016 (fusion_gpr_addis): If power9 fusion, allow fusion for a larger
7017 address range.
7018 (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
7019 instead.
7020 (fusion_addis_mem_combo_load): Add support for power9 fusion of
7021 floating point loads, floating point stores, and gpr stores.
7022 (fusion_addis_mem_combo_store): Likewise.
7023 (fusion_offsettable_mem_operand): Likewise.
7024
7025 * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations.
7026 (emit_fusion_load_store): Likewise.
7027 (fusion_p9_p): Likewise.
7028 (expand_fusion_p9_load): Likewise.
7029 (expand_fusion_p9_store): Likewise.
7030 (emit_fusion_p9_load): Likewise.
7031 (emit_fusion_p9_store): Likewise.
7032 (fusion_wrap_memory_address): Likewise.
7033
7034 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
7035 elements for power9 fusion.
7036 (rs6000_debug_print_mode): Rework debug information to print more
7037 information about fusion.
7038 (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support.
7039 (rs6000_legitimate_address_p): Recognize toc fusion as a valid
7040 offsettable memory address.
7041 (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
7042 (emit_fusion_gpr_load): Move most of the code from
7043 emit_fusion_gpr_load into emit_fusion-addis that handles both
7044 power8 and power9 fusion.
7045 (emit_fusion_addis): Likewise.
7046 (emit_fusion_load_store): Likewise.
7047 (fusion_wrap_memory_address): Add support for TOC fusion.
7048 (fusion_split_address): Likewise.
7049 (fusion_p9_p): Add support for power9 fusion.
7050 (expand_fusion_p9_load): Likewise.
7051 (expand_fusion_p9_store): Likewise.
7052 (emit_fusion_p9_load): Likewise.
7053 (emit_fusion_p9_store): Likewise.
7054
7055 * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
7056 new instructions in ISA 3.0.
7057 (TARGET_CTZ): Likewise.
7058 (TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
7059 (TARGET_TOC_FUSION_FP): Likewise.
7060
7061 * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
7062 fusion unspecs.
7063 (UNSPEC_FUSION_ADDIS): Likewise.
7064 (QHSI mode iterator): New iterator for power9 fusion.
7065 (GPR_FUSION): Likewise.
7066 (FPR_FUSION): Likewise.
7067 (mod<mode>3): Add support for ISA 3.0 modulus instructions.
7068 (umod<mode>3): Likewise.
7069 (divmod peephole): Likewise.
7070 (udivmod peephole): Likewise.
7071 (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
7072 instructions.
7073 (ctz<mode>2_h): Likewise.
7074 (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
7075 (ashdi3_extswsli_dot): Likewise.
7076 (ashdi3_extswsli_dot2): Likewise.
7077 (power9 fusion splitter): New power9/toc fusion support.
7078 (toc_fusionload_<mode>): Likewise.
7079 (toc_fusionload_di): Likewise.
7080 (fusion_gpr_load_<mode>): Update predicate function.
7081 (power9 fusion peephole2s): New power9/toc fusion support.
7082 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
7083 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
7084 (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
7085 (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
7086 (fusion_p9_<mode>_constant): Likewise.
7087
7088 2015-11-09 Steve Ellcey <sellcey@imgtec.com>
7089
7090 * optabs.c (prepare_libcall_arg): New function.
7091 (expand_fixed_convert): Add call to prepare_libcall_arg.
7092
7093 2015-11-09 Nikolai Bozhenov <n.bozhenov@samsung.com>
7094
7095 * sched-int.h (dump_rgn_dependencies_dot): Declare
7096 * sched-rgn.c (dump_rgn_dependencies_dot): New function
7097 * print-rtl.h (print_insn): Add prototype
7098
7099 * haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
7100 * common.opt (-fsched-verbose): Set default value to 1.
7101 * invoke.texi (-fsched-verbose): Update the option's description.
7102
7103 2015-11-09 Eric Botcazou <ebotcazou@adacore.com>
7104
7105 * config/visium/visium.h (PRINT_OPERAND): Delete.
7106 (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
7107 (PRINT_OPERAND_ADDRESS): Likewise.
7108 * config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
7109 to...
7110 (visium_print_operand_punct_valid_p): ...this. New function.
7111 (TARGET_PRINT_OPERAND): Define to...
7112 (print_operand): Rename to...
7113 (visium_print_operand): ...this.
7114 (TARGET_PRINT_OPERAND_ADDRESS): Define to...
7115 (visium_output_address): Rename to...
7116 (visium_print_operand_address): ...this.
7117 (print_operand_address): Delete.
7118
7119 2015-11-09 Eric Botcazou <ebotcazou@adacore.com>
7120
7121 PR middle-end/68259
7122 * tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
7123 Check that the type of the first operand is an aggregate type.
7124
7125 2015-11-09 Nathan Sidwell <nathan@codesourcery.com>
7126
7127 * omp-low.c: Fix some OpenACC comment typos.
7128 (lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
7129 * omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
7130 BUILT_IN_GOACC_GET_NUM_THREADS): Delete.
7131
7132 2015-11-09 Uros Bizjak <ubizjak@gmail.com>
7133
7134 * config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
7135
7136 2015-11-09 Jeff Law <law@redhat.com>
7137
7138 * tree-ssanames.c (verify_ssaname_freelists): Simplify check for
7139 being in gimple/ssa form. Remove redundant check for SSA_NAME.
7140 Fix comment typo.
7141
7142 2015-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
7143 Peter Bergner <bergner@vnet.ibm.com>
7144
7145 * config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
7146 ISA 3.0 (power9).
7147 (-mpower9-vector): Likewise.
7148 (-mpower9-dform): Likewise.
7149 (-mpower9-minmax): Likewise.
7150 (-mtoc-fusion): Likewise.
7151 (-mmodulo): Likewise.
7152 (-mfloat128-hardware): Likewise.
7153
7154 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
7155 mask for ISA 3.0 (power9).
7156 (POWERPC_MASKS): Add new ISA 3.0 switches.
7157 (power9 cpu): Add power9 cpu.
7158
7159 * config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9.
7160 (ASM_CPU_SPEC): Likewise.
7161 (EXTRA_SPECS): Likewise.
7162
7163 * config/rs6000/rs6000-opts.h (enum processor_type): Add
7164 PROCESSOR_POWER9.
7165
7166 * config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9.
7167 (rs6000_debug_reg_global): Add support for power9 fusion.
7168 (rs6000_setup_reg_addr_masks): Cache mode size.
7169 (rs6000_option_override_internal): Until real power9 tuning is
7170 added, use -mtune=power8 for -mcpu=power9.
7171 (rs6000_setup_reg_addr_masks): Do not allow pre-increment,
7172 pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
7173 of Altivec registers.
7174 (rs6000_option_override_internal): Add support for ISA 3.0 switches.
7175 (rs6000_loop_align): Add support for power9 cpu.
7176 (rs6000_file_start): Likewise.
7177 (rs6000_adjust_cost): Likewise.
7178 (rs6000_issue_rate): Likewise.
7179 (insn_must_be_first_in_group): Likewise.
7180 (insn_must_be_last_in_group): Likewise.
7181 (force_new_group): Likewise.
7182 (rs6000_register_move_cost): Likewise.
7183 (rs6000_opt_masks): Likewise.
7184
7185 * config/rs6000/rs6000.md (cpu attribute): Add power9.
7186 * config/rs6000/rs6000-tables.opt: Regenerate.
7187
7188 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
7189 _ARCH_PWR9 if power9 support is available.
7190
7191 * config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
7192 * config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
7193
7194 * configure.ac: Determine if the assembler supports the ISA 3.0
7195 instructions.
7196 * config.in (HAVE_AS_POWER9): Likewise.
7197 * configure: Regenerate.
7198
7199 * doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
7200 switches.
7201
7202 2015-11-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7203
7204 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
7205 Remove integer CONST_DOUBLE handling. It should never occur.
7206
7207 2015-11-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7208
7209 PR target/68129
7210 * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
7211 * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
7212 Delete VOIDmode case. Assert that mode is not VOIDmode.
7213 * config/aarch64/predicates.md (const0_operand): Remove const_double
7214 match.
7215
7216 2015-11-09 Martin Liska <mliska@suse.cz>
7217
7218 * ipa-inline-analysis.c (estimate_function_body_sizes): Call
7219 body_info release function.
7220 * ipa-prop.c (ipa_release_body_info): New function.
7221 (ipa_analyze_node): Call the function.
7222 (ipa_node_params::~ipa_node_params): Release known_csts.
7223 * ipa-prop.h (ipa_release_body_info): Declare.
7224
7225 2015-11-09 Martin Liska <mliska@suse.cz>
7226
7227 * gcc.c (record_temp_file): Release name string.
7228 * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec.
7229 * lra-lives.c (free_live_range_list): Utilize
7230 lra_live_range_pool for allocation and deallocation.
7231 (create_live_range): Likewise.
7232 (copy_live_range): Likewise.
7233 (lra_merge_live_ranges): Likewise.
7234 (remove_some_program_points_and_update_live_ranges): Likewise.
7235 (lra_create_live_ranges_1): Release point_freq_vec that can
7236 be not freed from previous iteration of the function.
7237 * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec.
7238 * tree-sra.c (sra_deinitialize): Release all vectors in
7239 base_access_vec.
7240 * tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
7241 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
7242 Release edge_info for a removed edge.
7243 (thread_through_all_blocks): Free region vector.
7244 * tree-ssa.h (free_dom_edge_info): Declare function extern.
7245
7246 2015-11-09 Ilya Enkovich <enkovich.gnu@gmail.com>
7247
7248 * optabs.c (expand_vec_cond_expr): Always get sign from type.
7249 * tree.c (wide_int_to_tree): Support negative values for boolean.
7250 (build_nonstandard_boolean_type): Use signed type for booleans.
7251
7252 2015-11-09 Richard Biener <rguenther@suse.de>
7253
7254 PR tree-optimization/68248
7255 * tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2.
7256
7257 2015-11-09 Richard Biener <rguenther@suse.de>
7258
7259 PR tree-optimization/56118
7260 * tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
7261 * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
7262 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
7263 function.
7264 (vect_slp_analyze_data_ref_dependences): Instead of computing
7265 all dependences of the region DRs just analyze the code motions
7266 SLP vectorization will perform. Remove SLP instances that
7267 cannot have their store/load motions applied.
7268 (vect_analyze_data_refs): Allow DRs without a vectype
7269 in BB vectorization.
7270
7271 2015-11-09 Julian Brown <julian@codesourcery.com>
7272
7273 * final.c (output_asm_insn): Pass VOIDmode to output_address.
7274 (output_address): Add MODE argument. Pass to print_operand_address
7275 hook.
7276 * targhooks.c (default_print_operand_address): Add MODE argument.
7277 * targhooks.h (default_print_operand_address): Update prototype.
7278 * output.h (output_address): Update prototype.
7279 * target.def (print_operand_address): Add MODE argument.
7280 * config/vax/vax.c (print_operand_address): Pass VOIDmode to
7281 output_address.
7282 (print_operand): Pass access mode to output_address.
7283 * config/mcore/mcore.c (mcore_print_operand_address): Add MODE
7284 argument.
7285 (mcore_print_operand): Update calls to mcore_print_operand_address.
7286 * config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
7287 output_address.
7288 * config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
7289 output_address.
7290 * config/tilegx/tilegx.c (output_memory_reference_mode): Remove
7291 global.
7292 (tilegx_print_operand): Don't set above global. Update calls to
7293 output_address.
7294 (tilegx_print_operand_address): Add MODE argument. Use instead of
7295 output_memory_reference_mode global.
7296 * config/frv/frv.c (frv_print_operand_address): Add MODE argument.
7297 (frv_print_operand): Pass mode to frv_print_operand_address calls.
7298 * config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
7299 output_address.
7300 * config/cris/cris.c (cris_print_operand_address): Add MODE argument.
7301 (cris_print_operand): Pass mode to output_address calls.
7302 * config/spu/spu.c (print_operand): Pass mode to output_address calls.
7303 * config/aarch64/aarch64.h (aarch64_print_operand)
7304 (aarch64_print_operand_address): Remove prototypes.
7305 * config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
7306 global.
7307 (aarch64_print_operand): Make static. Update calls to output_address.
7308 (aarch64_print_operand_address): Add MODE argument. Use instead of
7309 aarch64_memory_reference_mode global.
7310 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
7311 hooks.
7312 * config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
7313 Delete macro definitions.
7314 * config/pa/pa.c (pa_print_operand): Pass mode in output_address calls.
7315 * config/xtensa/xtensa.c (print_operand): Pass mode in
7316 output_address calls.
7317 * config/h8300/h8300.c (h8300_print_operand_address): Add MODE
7318 argument.
7319 (h83000_print_operand): Update calls to h8300_print_operand_address
7320 and output_address.
7321 * config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument.
7322 * config/tilepro/tilepro.c (output_memory_reference_mode): Delete
7323 global.
7324 (tilepro_print_operand): Pass mode to output_address.
7325 (tilepro_print_operand_address): Add MODE argument. Use instead of
7326 output_memory_reference_mode.
7327 * config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
7328 (nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
7329 to output_address calls.
7330 (nvptx_print_operand_address): Add MODE argument.
7331 * config/alpha/alpha.c (print_operand): Pass mode argument in
7332 output_address calls.
7333 * config/m68k/m68k.c (print_operand): Pass mode argument in
7334 output_address call.
7335 * config/avr/avr.c (avr_print_operand_address): Add MODE argument.
7336 (avr_print_operand): Update calls to avr_print_operand_address.
7337 * config/sparc/sparc.c (sparc_print_operand_address): Add MODE
7338 argument. Update calls to output_address.
7339 (sparc_print_operand): Pass mode to output_address.
7340 * config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
7341 argument.
7342 (iq2000_print_operand): Pass mode in output_address calls.
7343 * config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
7344 MODE argument.
7345 (xstormy16_print_operand): Pass mode to
7346 xstormy16_print_operand_address calls.
7347 * config/mips/mips.c (mips_print_operand): Update calls to
7348 output_address.
7349 (mips_print_operand_address): Add MODE argument.
7350 * config/epiphany/epiphany.c (epiphany_print_operand): Update calls
7351 to output_address.
7352 (epiphany_print_operand_address): Add MODE argument. Add FIXME note.
7353 * config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
7354 output_address.
7355 * config/rx/rx.c (rx_print_operand_address): Add MODE argument.
7356 (rx_print_operand): Update calls to output_address,
7357 rx_print_operand_address.
7358 * config/nds32/nds32.c (nds32_print_operand): Update calls to
7359 output_address.
7360 (nds32_print_operand_address): Add MODE argument.
7361 * config/rs6000/rs6000.c (print_operand): Pass mem mode to
7362 output_address calls.
7363 * config/c6x/c6x.c (print_address_offset): Pass mem mode to
7364 output_address call.
7365 (c6x_print_address_operand): Update calls to output_address.
7366 (c6x_print_operand_address): Pass mode to above.
7367 * config/v850/v850.c (v850_print_operand_address): Add MODE argument.
7368 (v850_print_operand): Pass mode to v850_print_operand_address,
7369 output_address.
7370 * config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument.
7371 (mmix_print_operand): Pass mode in output_address calls.
7372 * config/sh/sh.c (sh_print_operand_address): Add MODE argument.
7373 (sh_print_operand): Pass mem mode to output_address,
7374 sh_print_operand_address.
7375 * config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument.
7376 (cr16_print_operand): Pass mode to output_address,
7377 cr16_print_operand_address.
7378 * config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
7379 output_address.
7380 * config/microblaze/microblaze.c (print_operand): Pass mode to
7381 output_address.
7382 * config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
7383 output_address.
7384 (nios2_print_operand_address): Add MODE argument. Update call to
7385 nios2_print_operand_address.
7386 * config/s390/s390.c (print_operand): Pass mode to output_address.
7387 * config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument.
7388 * config/arc/arc.c (arc_print_operand): Pass VOIDmode to
7389 output_address.
7390 * config/arm/arm.c (arm_print_operand_address): Add MODE argument.
7391 Use instead of output_memory_reference_mode.
7392 (output_memory_reference_mode): Delete global.
7393 (arm_print_operand): Pass mem mode to output_address.
7394 * config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument.
7395 (m32r_print_operand): Pass mode to output_address.
7396 * config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
7397 argument.
7398 (msp430_print_operand): Pass mode to msp430_print_operand_addr.
7399 * config/i386/i386.c (ix86_print_operand): Pass mode to
7400 output_address calls.
7401 (ix86_print_operand_address): Add MODE argument.
7402
7403 2015-11-09 Eric Botcazou <ebotcazou@adacore.com>
7404
7405 PR middle-end/68251
7406 * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
7407 * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
7408 * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
7409 * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
7410
7411 2015-11-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7412
7413 PR rtl-optimization/67749
7414 * ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
7415 case before emitting the two blocks. Instead modify the register
7416 in the corresponding final insn of the basic block.
7417
7418 2015-11-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7419
7420 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
7421 assembler syntax.
7422 Support Solaris ld.
7423 Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.
7424
7425 * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
7426 HAVE_INITFINI_ARRAY_SUPPORT.
7427 * config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value.
7428
7429 * configure.ac (gcc_cv_as_sparc_nobits): Remove.
7430 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
7431 Don't check HAVE_AS_SPARC_NOBITS.
7432 Heed SECTION_NOTYPE.
7433
7434 * configure: Regenerate.
7435 * config.in: Regenerate.
7436
7437 2015-11-09 Eric Botcazou <ebotcazou@adacore.com>
7438
7439 PR middle-end/68253
7440 * fold-const.c (fold_truth_andor_1): Initialize new variables to 0.
7441
7442 2015-11-09 Richard Henderson <rth@redhat.com>
7443
7444 * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
7445 __SEG_GS, __SEG_TLS.
7446 (ix86_register_pragmas): Register address spaces __seg_fs,
7447 __seg_gs, __seg_tls.
7448 * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
7449 (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
7450 (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
7451 * config/i386/i386.c (ix86_decompose_address): Likewise.
7452 (ix86_legitimate_address_p): Likewise.
7453 (memory_address_length): Likewise. Check mem address space too.
7454 (ix86_print_operand): Use ix86_print_operand_address_as.
7455 (ix86_print_operand_address_as): Rename from
7456 ix86_print_operand_address, add new addr_space_t parameter.
7457 Validate that either the parameter or the ix86_address segment
7458 is default address space. Handle ADDR_SPACE_SEG_TLS.
7459 (ix86_print_operand_address): New.
7460 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
7461 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
7462 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
7463 (ix86_addr_space_zero_address_valid): New.
7464 (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
7465 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
7466 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
7467 * config/i386/predicates.md (address_no_seg_operand): Likewise.
7468 (vsib_address_operand): Likewise.
7469 (address_mpx_no_base_operand): Likewise.
7470 (address_mpx_no_index_operand): Likewise.
7471 * doc/extend.texi (x86 Named Address Spaces): New section.
7472
7473 * config/i386/i386.c (ix86_check_no_addr_space): New.
7474 (decide_alg): Add have_as parameter.
7475 (alg_usable_p): Likewise; disable rep algorithms if set.
7476 (ix86_expand_set_or_movmem): Notice if either MEM has a
7477 non-default address space.
7478 (ix86_expand_strlen): Likewise.
7479 * config/i386/i386.md (strmov, strset): Likewise.
7480 (*strmovdi_rex_1): Use ix86_check_no_addr_space.
7481 (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
7482 *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
7483 *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
7484 *cmpstrnqi_1, *strlenqi_1): Likewise.
7485
7486 * config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
7487 (*movabs<mode>_2): Likewise.
7488
7489 * dwarf2out.c (modified_type_die): Pass the address space number
7490 through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
7491 * target.def (TARGET_ADDR_SPACE_DEBUG): New.
7492 * targhooks.c (default_addr_space_debug): New.
7493 * targhooks.h (default_addr_space_debug): Declare.
7494 * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
7495 * doc/tm.texi: Rebuild.
7496
7497 * gimple.c (check_loadstore): Return false when 0 is a valid address.
7498 * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
7499 null when 0 is valid in the source address space.
7500 * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
7501 * targhooks.c (default_addr_space_zero_address_valid): New.
7502 * targhooks.h (default_addr_space_zero_address_valid): Declare.
7503 * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
7504 * doc/tm.texi: Rebuild.
7505
7506 * cselib.c (add_mem_for_addr): Compare address spaces when
7507 matching memories.
7508 (cselib_lookup_mem): Likewise.
7509 * fold-const.c (operand_equal_p): Check address spaces of
7510 pointer types before checking integer constants.
7511
7512 PR tree-opt/66768
7513 * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
7514 the correct type for the base.
7515
7516 2015-11-09 Jeff Law <law@redhat.com>
7517
7518 * tree-into-ssa.c (names_to_release): No longer static.
7519 * tree-into-ssa.h (names_to_release): Declare.
7520 * tree-ssanames.c (verify_ssaname_freelists): New debug function.
7521 (release_free_names_and_compact_live_names): New function extracted
7522 from pass_release_ssa_names::execute.
7523 (pass_release_ssa_names::execute): Use it.
7524
7525 2015-11-09 Alan Modra <amodra@gmail.com>
7526
7527 * gensupport.c (add_mnemonic_string): Make len param a size_t.
7528 (gen_mnemonic_setattr): Make "size" var a size_t. Use
7529 obstack_blank_fast to shrink obstack. Cast obstack_next_free
7530 return value.
7531
7532 2015-11-09 Segher Boessenkool <segher@kernel.crashing.org>
7533
7534 PR rtl-optimization/68182
7535 * bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
7536 branch with only one successor just like unconditional branches.
7537
7538 2015-11-08 Jeff Law <law@redhat.com>
7539
7540 * tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
7541 non-FSM path has no edges marked with EDGE_DFS_BACK.
7542 (ssa_redirect_edges): No longer call mark_loop_for_removal.
7543 (thread_single_edge, def_split_header_continue_p): Remove.
7544 (bb_ends_with_multiway_branch): Likewise.
7545 (thread_through_loop_header): Remove cases of threading from
7546 latch through the header. Simplify knowing we won't thread
7547 the latch.
7548 (thread_through_all_blocks): Simplify knowing that only the FSM
7549 threader needs to handle backedges.
7550
7551 2015-11-08 Eric Botcazou <ebotcazou@adacore.com>
7552
7553 * doc/extend.texi (type attributes): Document scalar_storage_order.
7554 (Structure-Packing Pragmas): Rename into...
7555 (Structure-Layout Pragmas): ...this. Document scalar_storage_order.
7556 * doc/invoke.texi (C Dialect Options): Document -fsso-struct
7557 (Warnings): Document -Wno-scalar-storage-order.
7558 * flag-types.h (enum scalar_storage_order_kind): New enumeration.
7559 * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to
7560 extract_bit_field and store_bit_field.
7561 (initialize_argument_information): Adjust call to store_expr.
7562 (load_register_parameters): Adjust call to extract_bit_field.
7563 * expmed.c (check_reverse_storage_order_support): New function.
7564 (check_reverse_float_storage_order_support): Likewise.
7565 (flip_storage_order): Likewise.
7566 (store_bit_field_1): Add REVERSE parameter. Flip the storage order
7567 of the value if it is true. Pass REVERSE to recursive call after
7568 adjusting the target offset.
7569 Do not use extraction or movstrict instruction if REVERSE is true.
7570 Pass REVERSE to store_fixed_bit_field.
7571 (store_bit_field): Add REVERSE parameter and pass to it to above.
7572 (store_fixed_bit_field): Add REVERSE parameter and pass to it to
7573 store_split_bit_field and store_fixed_bit_field_1.
7574 (store_fixed_bit_field_1): Add REVERSE parameter. Flip the storage
7575 order of the value if it is true and adjust the target offset.
7576 (store_split_bit_field): Add REVERSE parameter and pass it to
7577 store_fixed_bit_field. Adjust the target offset if it is true.
7578 (extract_bit_field_1): Add REVERSE parameter. Flip the storage order
7579 of the value if it is true. Pass REVERSE to recursive call after
7580 adjusting the target offset.
7581 Do not use extraction or subreg instruction if REVERSE is true.
7582 Pass REVERSE to extract_fixed_bit_field.
7583 (extract_bit_field): Add REVERSE parameter and pass to it to above.
7584 (extract_fixed_bit_field): Add REVERSE parameter and pass to it to
7585 extract_split_bit_field and extract_fixed_bit_field_1.
7586 (extract_fixed_bit_field_1): Add REVERSE parameter. Flip the storage
7587 order of the value if it is true and adjust the target offset.
7588 (extract_split_bit_field): Add REVERSE parameter and pass it to
7589 extract_fixed_bit_field. Adjust the target offset if it is true.
7590 * expmed.h (flip_storage_order): Declare.
7591 (store_bit_field): Adjust prototype.
7592 (extract_bit_field): Likewise.
7593 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
7594 (emit_group_store): Adjust call to store_bit_field.
7595 (copy_blkmode_from_reg): Likewise.
7596 (copy_blkmode_to_reg): Likewise.
7597 (write_complex_part): Likewise.
7598 (read_complex_part): Likewise.
7599 (optimize_bitfield_assignment_op): Add REVERSE parameter. Assert
7600 that it isn't true if the target is a register.
7601 <PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1,
7602 and flip the storage order of the value.
7603 <BIT_IOR_EXPR>: Flip the storage order of the value.
7604 (get_bit_range): Adjust call to get_inner_reference.
7605 (expand_assignment): Adjust calls to get_inner_reference, store_expr,
7606 optimize_bitfield_assignment_op and store_field. Handle MEM_EXPRs
7607 with reverse storage order.
7608 (store_expr_with_bounds): Add REVERSE parameter and pass it to
7609 recursive calls and call to store_bit_field. Force the value into a
7610 register if it is true and then flip the storage order of the value.
7611 (store_expr): Add REVERSE parameter and pass it to above.
7612 (categorize_ctor_elements_1): Adjust call to
7613 initializer_constant_valid_p.
7614 (store_constructor_field): Add REVERSE parameter and pass it to
7615 recursive calls and call to store_field.
7616 (store_constructor): Add REVERSE parameter and pass it to calls to
7617 store_constructor_field and store_expr. Set it to true for an
7618 aggregate type with TYPE_REVERSE_STORAGE_ORDER.
7619 (store_field): Add REVERSE parameter and pass it to recursive calls
7620 and calls to store_expr and store_bit_field. Temporarily flip the
7621 storage order of the value with record type and integral mode and
7622 adjust the shift if it is true.
7623 (get_inner_reference): Add PREVERSEP parameter and set it to true
7624 upon encoutering a reference with reverse storage order.
7625 (expand_expr_addr_expr_1): Adjust call to get_inner_reference.
7626 (expand_constructor): Adjust call to store_constructor.
7627 (expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER
7628 of the union type to store_expr in the MEM case and assert that it
7629 isn't set in the REG case. Adjust call to store_field.
7630 (expand_expr_real_1) <MEM_REF>: Handle reverse storage order.
7631 <normal_inner_ref>: Add REVERSEP variable and adjust calls to
7632 get_inner_reference and extract_bit_field. Temporarily flip the
7633 storage order of the value with record type and integral mode and
7634 adjust the shift if it is true. Flip the storage order of the value
7635 at the end if it is true.
7636 <VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to
7637 get_inner_reference. Do not fetch an inner reference if it is true.
7638 * expr.h (store_expr_with_bounds): Ajust prototype.
7639 (store_expr): Likewise.
7640 * fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set
7641 REF_REVERSE_STORAGE_ORDER on the reference according to it.
7642 (optimize_bit_field_compare): Deal with reverse storage order.
7643 Adjust calls to get_inner_reference and make_bit_field_ref.
7644 (decode_field_reference): Add PREVERSEP parameter and adjust call to
7645 get_inner_reference.
7646 (fold_truth_andor_1): Deal with reverse storage order. Adjust calls
7647 to decode_field_reference and make_bit_field_ref.
7648 (fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference.
7649 <VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag.
7650 (fold_comparison): Adjust call to get_inner_reference.
7651 (split_address_to_core_and_offset): Adjust call to
7652 get_inner_reference.
7653 * gimple-expr.c (useless_type_conversion_p): Return false for array
7654 types with different TYPE_REVERSE_STORAGE_ORDER flag.
7655 * gimplify.c (gimplify_expr) <MEM_REF>: Propagate the
7656 REF_REVERSE_STORAGE_ORDER flag.
7657 * lto-streamer-out.c (hash_tree): Deal with TYPE_REVERSE_STORAGE_ORDER.
7658 * output.h (assemble_real): Adjust prototype.
7659 * print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER.
7660 * stor-layout.c (finish_record_layout): Propagate the
7661 TYPE_REVERSE_STORAGE_ORDER flag to the variants.
7662 * tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document.
7663 (TYPE_SATURATING): Adjust.
7664 (REF_REVERSE_STORAGE_ORDER): Document.
7665 * tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and
7666 set it to true upon encoutering a reference with reverse storage order.
7667 * tree-dfa.h (get_ref_base_and_extent): Adjust prototype.
7668 * tree-inline.c (remap_gimple_op_r): Propagate the
7669 REF_REVERSE_STORAGE_ORDER flag.
7670 (copy_tree_body_r): Likewise.
7671 * tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to
7672 store_expr.
7673 * tree-streamer-in.c (unpack_ts_base_value_fields): Deal with
7674 TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER.
7675 * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
7676 * tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the
7677 REF_REVERSE_STORAGE_ORDER flag.
7678 (verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER.
7679 (gimple_canonical_types_compatible_p): Likewise.
7680 * tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag.
7681 (TYPE_SATURATING): Adjust.
7682 (REF_REVERSE_STORAGE_ORDER): New flag.
7683 (reverse_storage_order_for_component_p): New inline predicate.
7684 (storage_order_barrier_p): Likewise.
7685 (get_inner_reference): Adjust prototype.
7686 * varasm.c: Include expmed.h.
7687 (assemble_variable_contents): Adjust call to output_constant.
7688 (assemble_real): Add REVERSE parameter. Flip the storage
7689 order of the value if REVERSE is true.
7690 (compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER.
7691 (assemble_constant_contents): Adjust call to output_constant.
7692 (output_constant_pool_2): Adjust call to assemble_real.
7693 (initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with
7694 TYPE_REVERSE_STORAGE_ORDER.
7695 (initializer_constant_valid_p): Add REVERSE parameter.
7696 (output_constant): Add REVERSE parameter.
7697 <INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true.
7698 <REAL_TYPE>: Adjust call to assemble_real.
7699 <COMPLEX_TYPE>: Pass it to recursive calls.
7700 <ARRAY_TYPE>: Likewise. Adjust call to output_constructor.
7701 <RECORD_TYPE>: Likewise. Adjust call to output_constructor.
7702 (struct oc_local_state): Add REVERSE field.
7703 (output_constructor_array_range): Adjust calls to output_constant.
7704 (output_constructor_regular_field): Likewise.
7705 (output_constructor_bitfield): Adjust call to output_constructor.
7706 Flip the storage order of the value if REVERSE is true.
7707 (output_constructor): Add REVERSE parameter. Set it to true for an
7708 aggregate type with TYPE_REVERSE_STORAGE_ORDER. Adjust call to
7709 output_constructor_bitfield.
7710 * varasm.h (initializer_constant_valid_p): Default REVERSE to false.
7711 * asan.c (instrument_derefs): Adjust call to get_inner_reference.
7712 * builtins.c (get_object_alignment_2): Likewise.
7713 * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
7714 and get_ref_base_and_extent.
7715 * dbxout.c (dbxout_expand_expr): Likewise.
7716 * dwarf2out.c (add_var_loc_to_decl): Likewise.
7717 (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
7718 (loc_list_from_tree): Likewise.
7719 (fortran_common): Likewise.
7720 * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
7721 get_ref_base_and_extent.
7722 (get_base_constructor): Likewise.
7723 (fold_const_aggregate_ref_1): Likewise.
7724 * gimple-laddress.c (pass_laddress::execute): Adjust call to
7725 get_inner_reference.
7726 * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
7727 get_inner_reference and bail out on reverse storage order.
7728 * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
7729 * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
7730 build_ref_for_offset.
7731 * ipa-polymorphic-call.c (set_by_invariant): Adjust call to
7732 get_ref_base_and_extent.
7733 (ipa_polymorphic_call_context): Likewise.
7734 (extr_type_from_vtbl_ptr_store): Likewise.
7735 (check_stmt_for_type_change): Likewise.
7736 (get_dynamic_type): Likewise.
7737 * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
7738 get_ref_base_and_extent.
7739 (compute_complex_assign_jump_func): Likewise.
7740 (get_ancestor_addr_info): Likewise.
7741 (compute_known_type_jump_func): Likewise.
7742 (determine_known_aggregate_parts): Likewise.
7743 (ipa_get_adjustment_candidate): Likewise.
7744 (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on MEM_REF.
7745 * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
7746 (build_ref_for_offset): Adjust prototype.
7747 * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
7748 get_inner_reference.
7749 * tree-affine.c (tree_to_aff_combination): Adjust call to
7750 get_inner_reference.
7751 (get_inner_reference_aff): Likewise.
7752 * tree-data-ref.c (split_constant_offset_1): Likewise.
7753 (dr_analyze_innermost): Likewise. Bail out if reverse storage order.
7754 * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
7755 get_inner_reference.
7756 * tree-sra.c (struct access): Add REVERSE and move WRITE around.
7757 (dump_access): Print new fields.
7758 (create_access): Adjust call to get_ref_base_and_extent and set the
7759 REVERSE flag according to the result.
7760 (completely_scalarize_record): Set the REVERSE flag.
7761 (scalarize_elem): Add REVERSE parameter.
7762 (build_access_from_expr_1): Preserve storage order barriers.
7763 (build_accesses_from_assign): Likewise.
7764 (build_ref_for_offset): Add REVERSE parameter and set the
7765 REF_REVERSE_STORAGE_ORDER flag accordingly.
7766 (build_ref_for_model): Adjust call to build_ref_for_offset and clear
7767 the REF_REVERSE_STORAGE_ORDER flag if there are components.
7768 (analyze_access_subtree): Likewise.
7769 (create_artificial_child_access): Set the REVERSE flag.
7770 (get_access_for_expr): Adjust call to get_ref_base_and_extent.
7771 (turn_representatives_into_adjustments): Propagate REVERSE flag.
7772 (ipa_sra_check_caller): Adjust call to get_inner_reference.
7773 * tree-ssa-alias.c (ao_ref_base): Adjust call to
7774 get_ref_base_and_extent.
7775 (aliasing_component_refs_p): Likewise.
7776 (stmt_kills_ref_p_1): Likewise.
7777 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
7778 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
7779 Return true if reverse storage order.
7780 <BIT_FIELD_REF>: Likewise.
7781 <COMPONENT_REF>: Likewise.
7782 <ARRAY_REF>: Likewise.
7783 <ARRAY_RANGE_REF>: Likewise.
7784 (split_address_cost): Likewise. Bail out if reverse storage order.
7785 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
7786 get_inner_reference. Bail out if reverse storage order.
7787 (bswap_replace): Adjust call to get_inner_reference.
7788 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
7789 the REF_REVERSE_STORAGE_ORDER flag.
7790 <BIT_FIELD_REF>: Likewise.
7791 * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
7792 barriers.
7793 (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
7794 to the REF_REVERSE_STORAGE_ORDER flag.
7795 <BIT_FIELD_REF>: Likewise.
7796 <VIEW_CONVERT_EXPR>: Set it for storage order barriers.
7797 (contains_storage_order_barrier_p): New predicate.
7798 (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
7799 Punt on storage order barriers if necessary.
7800 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
7801 * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
7802 call to get_ref_base_and_extent.
7803 (do_structure_copy): Likewise.
7804 * tree-vect-data-refs.c (vect_check_gather): Adjust call to
7805 get_inner_reference.
7806 (vect_analyze_data_refs): Likewise. Bail out if reverse storage order.
7807 * tsan.c (instrument_expr): Adjust call to get_inner_reference.
7808 * ubsan.c (instrument_bool_enum_load): Likewise.
7809 (instrument_object_size): Likewise.
7810 * var-tracking.c (track_expr_p): Adjust call to
7811 get_ref_base_and_extent.
7812 * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to
7813 get_inner_reference.
7814 * config/s390/s390.c (s390_expand_atomic): Adjust call to
7815 store_bit_field.
7816 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to
7817 extract_bit_field.
7818 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
7819
7820 2015-11-07 Eric Botcazou <ebotcazou@adacore.com>
7821
7822 * config/sparc/sparc.opt (mfix-at697f): Add final period.
7823
7824 2015-11-07 Segher Boessenkool <segher@kernel.crashing.org>
7825
7826 PR rtl-optimization/67864
7827 * common/config/i386/i386-common.c (ix86_option_optimization_table)
7828 <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
7829 at -Os and up.
7830
7831 2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
7832
7833 * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
7834 internal functions.
7835
7836 2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
7837
7838 * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
7839 * builtins.c, genmatch.c, tree-core.h: Don't undef them here.
7840
7841 2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
7842
7843 * internal-fn.def: #undef DEF_INTERNAL_FN at the end.
7844 * internal-fn.c: Don't undef it here.
7845 * tree-core.h: Likewise.
7846
7847 2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
7848
7849 * builtins.c (fold_builtin_nan): Delete.
7850 (fold_builtin_memcmp): Remove case where both arguments are constant.
7851 (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
7852 (fold_builtin_strspn, fold_builtin_strcspn): Likewise.
7853 (fold_builtin_1): Remove BUILT_IN_NAN* handling.
7854 * fold-const-call.c: Include fold-const.h.
7855 (host_size_t_cst_p): New function.
7856 (build_cmp_result, fold_const_builtin_nan): Likewise.
7857 (fold_const_call_1): New function, split out from...
7858 (fold_const_call): ...here (for all three interfaces). Handle
7859 constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.
7860
7861 2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
7862
7863 * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
7864 (fold_builtin_1): Don't call them.
7865 * fold-const-call.c: Include tm.h.
7866 (fold_const_call_ss): New variant for integer-to-integer folds.
7867 (fold_const_call): Call it.
7868
7869 2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
7870
7871 * builtins.c (fold_builtin_classify): Move constant cases to...
7872 * fold-const-call.c (fold_const_call_ss): ...here.
7873
7874 2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
7875
7876 * builtins.h (c_getstr): Move to...
7877 * fold-const.h (c_getstr): ...here.
7878 * builtins.c (c_getstr): Move to...
7879 * fold-const.c (c_getstr): ...here.
7880
7881 2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
7882
7883 * builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
7884 ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.
7885
7886 2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
7887
7888 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
7889 the dominance info; free it if we can't.
7890 (pass_call_cdce::execute): Don't free the dominance info here.
7891
7892 2015-11-06 Jeff Law <law@redhat.com>
7893
7894 * tree-ssa-threadedge.c (dummy_simplify): Remove.
7895 (thread_around_empty_blocks): Remove backedge_seen_p argument.
7896 If we thread to a backedge, then return false. Update recursive
7897 call to eliminate backedge_seen_p argument.
7898 (thread_through_normal_block): Remove backedge_seen_p argument.
7899 Remove backedge_seen_p argument from calls to
7900 thread_around_empty_blocks. Remove checks on backedge_seen_p.
7901 If we thread to a backedge, then return 0.
7902 (thread_across_edge): Remove bookkeeping for backedge_seen. Don't
7903 pass it to thread_through_normal_block or thread_through_empty_blocks.
7904 For joiner handling, if we see a backedge, do not try normal
7905 threading.
7906
7907 2015-11-06 Abderrazek Zaafrani <a.zaafrani@samsung.com>
7908
7909 * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
7910 * graphite-poly.c (new_scop): Initialize original_schedule.
7911 (free_scop): Free original_schedule.
7912 * graphite-poly.h (struct scop): Add field original_schedule.
7913 * graphite-sese-to-poly.c (build_scop_original_schedule): New.
7914 (build_poly_scop): Call build_scop_original_schedule.
7915
7916 2015-11-06 Abderrazek Zaafrani <a.zaafrani@samsung.com>
7917
7918 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
7919 (build_pbb_minimal_scattering_polyhedrons): New.
7920 (build_scop_scattering): Remove.
7921 (build_scop_minimal_scattering): New.
7922 (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
7923 (build_poly_scop): Call build_scop_minimal_scattering.
7924
7925 2015-11-06 Jeff Law <law@redhat.com>
7926
7927 * cfg-flags.def (IGNORE): New edge flag.
7928 * tree-vrp.c (identify_jump_threads): Mark and clear edges
7929 scheduled for removal with EDGE_IGNORE around call into
7930 jump threader. Do no thread across edges with EDGE_IGNORE,
7931 but do allow threading across those with EDGE_DFS_BACK.
7932
7933 2015-11-06 David Wohlferd <dw@LimeGreenSocks.com>
7934
7935 * doc/md.texi (multi-alternative constraints): Don't document
7936 alternatives inherently tied to reload for the user documentation.
7937
7938 2015-11-06 Michael Collison <michael.collison@linaro.org>
7939 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7940
7941 Revert:
7942 2015-08-01 Michael Collison <michael.collison@linaro.org
7943 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7944
7945 * config/arm/arm.md (*arm_smin_cmp): New pattern.
7946 (*arm_umin_cmp): Likewise.
7947
7948 2015-11-06 Jakub Jelinek <jakub@redhat.com>
7949
7950 * gimplify.c (gimplify_omp_ordered): Fix up diagnostics wording.
7951 * omp-low.c (check_omp_nesting_restrictions): Update for the
7952 various new OpenMP 4.5 nesting restrictions, clarified
7953 nesting glossary, closely nested region relationship clarified
7954 to mean explicit or implicit parallel regions (target/teams),
7955 use %</%> or %qs where appropriate.
7956
7957 2015-11-06 Aditya Kumar <aditya.k7@samsung.com>
7958 Sebastian Pop <s.pop@samsung.com>
7959
7960 * graphite-scop-detection.c (loop_is_valid_scop): Call
7961 optimize_loop_nest_for_speed_p.
7962
7963 2015-11-06 Aditya Kumar <aditya.k7@samsung.com>
7964 Sebastian Pop <s.pop@samsung.com>
7965
7966 * graphite-optimize-isl.c (optimize_isl): Call
7967 isl_options_set_schedule_maximize_band_depth.
7968
7969 2015-11-06 Aditya Kumar <aditya.k7@samsung.com>
7970 Sebastian Pop <s.pop@samsung.com>
7971
7972 * graphite-scop-detection.c (scop_detection::merge_sese): Entry
7973 and exit edges should not be a part of irreducible loop.
7974 (scop_detection::can_represent_loop_1): Loops should not be
7975 irreducible.
7976 (scop_detection::harmful_stmt_in_region): All the basic block
7977 should belong to reducible loops.
7978
7979 2015-11-06 Christophe Lyon <christophe.lyon@linaro.org>
7980
7981 * config/aarch64/aarch64-simd-builtins.def: Update builtins
7982 tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
7983 * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
7984 (aarch64_tbl3<mode>) ... this, which supports v16qi too.
7985 (aarch64_tbx4v8qi): Rename to...
7986 aarch64_tbx4<mode>): ... this.
7987 (aarch64_qtbl3<mode>): New pattern.
7988 (aarch64_qtbx3<mode>): New pattern.
7989 (aarch64_qtbl4<mode>): New pattern.
7990 (aarch64_qtbx4<mode>): New pattern.
7991 * config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
7992 (vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
7993 (vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
7994 (vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
7995 (vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
7996 (vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
7997 (vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
7998 (vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
7999 functions.
8000
8001 2015-11-06 Mike Stump <mikestump@comcast.net>
8002
8003 PR debug/66728
8004 * dwarf2out.c (get_full_len): Return a value based upon the actual
8005 precision needed for the value.
8006 (add_const_value_attribute): Use a maximal wide-int for
8007 CONST_WIDE_INTs, not VOIDmode.
8008 (output_die): Don't ever output NULL with printf.
8009
8010 * rtl.h (get_precision of rtx_mode_t): Ensure we never process
8011 BLKmode nor VOIDmode values.
8012
8013 2015-11-06 David Malcolm <dmalcolm@redhat.com>
8014
8015 * diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
8016 and "range2".
8017 (parse_gcc_colors): Update comment to describe default GCC_COLORS.
8018 * diagnostic-core.h (warning_at_rich_loc): New declaration.
8019 (error_at_rich_loc): New declaration.
8020 (permerror_at_rich_loc): New declaration.
8021 (inform_at_rich_loc): New declaration.
8022 * diagnostic-show-locus.c (adjust_line): Delete.
8023 (struct point_state): New struct.
8024 (class colorizer): New class.
8025 (class layout_point): New class.
8026 (class layout_range): New class.
8027 (struct line_bounds): New.
8028 (class layout): New class.
8029 (colorizer::colorizer): New ctor.
8030 (colorizer::~colorizer): New dtor.
8031 (layout::layout): New ctor.
8032 (layout::print_source_line): New method.
8033 (layout::print_annotation_line): New method.
8034 (layout::get_state_at_point): New method.
8035 (layout::get_x_bound_for_row): New method.
8036 (diagnostic_show_locus): Reimplement in terms of class layout.
8037 (diagnostic_print_caret_line): Delete.
8038 * diagnostic.c (diagnostic_initialize): Replace
8039 MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
8040 (diagnostic_set_info_translated): Convert param from location_t
8041 to rich_location *. Eliminate calls to set_location on the
8042 message in favor of storing the rich_location ptr there.
8043 (diagnostic_set_info): Convert param from location_t to
8044 rich_location *.
8045 (diagnostic_build_prefix): Break out array into...
8046 (diagnostic_kind_color): New variable.
8047 (diagnostic_get_color_for_kind): New function.
8048 (diagnostic_report_diagnostic): Colorize the option_text
8049 using the color for the severity.
8050 (diagnostic_append_note): Update for change in signature of
8051 diagnostic_set_info.
8052 (diagnostic_append_note_at_rich_loc): New function.
8053 (emit_diagnostic): Update for change in signature of
8054 diagnostic_set_info.
8055 (inform): Likewise.
8056 (inform_at_rich_loc): New function.
8057 (inform_n): Update for change in signature of diagnostic_set_info.
8058 (warning): Likewise.
8059 (warning_at): Likewise.
8060 (warning_at_rich_loc): New function.
8061 (warning_n): Update for change in signature of diagnostic_set_info.
8062 (pedwarn): Likewise.
8063 (permerror): Likewise.
8064 (permerror_at_rich_loc): New function.
8065 (error): Update for change in signature of diagnostic_set_info.
8066 (error_n): Likewise.
8067 (error_at): Likewise.
8068 (error_at_rich_loc): New function.
8069 (sorry): Update for change in signature of diagnostic_set_info.
8070 (fatal_error): Likewise.
8071 (internal_error): Likewise.
8072 (internal_error_no_backtrace): Likewise.
8073 (source_range::debug): New function.
8074 * diagnostic.h (struct diagnostic_info): Eliminate field
8075 "override_column". Add field "richloc".
8076 (struct diagnostic_context): Add field "colorize_source_p".
8077 (diagnostic_override_column): Delete.
8078 (diagnostic_set_info): Convert param from location_t to
8079 rich_location *.
8080 (diagnostic_set_info_translated): Likewise.
8081 (diagnostic_append_note_at_rich_loc): New function.
8082 (diagnostic_num_locations): New function.
8083 (diagnostic_expand_location): Get the location from the
8084 rich_location.
8085 (diagnostic_print_caret_line): Delete.
8086 (diagnostic_get_color_for_kind): New declaration.
8087 * genmatch.c (linemap_client_expand_location_to_spelling_point): New.
8088 (error_cb): Update for change in signature of "error" callback.
8089 (fatal_at): Likewise.
8090 (warning_at): Likewise.
8091 * input.c (linemap_client_expand_location_to_spelling_point): New.
8092 * pretty-print.c (text_info::set_range): New method.
8093 (text_info::get_location): New method.
8094 * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
8095 (struct text_info): Eliminate "locations" array in favor of
8096 "m_richloc", a rich_location *.
8097 (textinfo::set_location): Add a "caret_p" param, and reimplement
8098 in terms of a call to set_range.
8099 (textinfo::get_location): Eliminate inline implementation in favor of
8100 an out-of-line reimplementation.
8101 (textinfo::set_range): New method.
8102 * rtl-error.c (diagnostic_for_asm): Update for change in signature
8103 of diagnostic_set_info.
8104 * tree-diagnostic.c (default_tree_printer): Update for new
8105 "caret_p" param for textinfo::set_location.
8106 * tree-pretty-print.c (percent_K_format): Likewise.
8107
8108 2015-11-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8109
8110 Properly apply.
8111 2015-11-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8112 * config/aarch64/aarch64.c
8113 (aarch64_can_use_per_function_literal_pools_p): New.
8114 (aarch64_use_blocks_for_constant_p): Adjust declaration
8115 and use aarch64_can_use_function_literal_pools_p.
8116 (aarch64_select_rtx_section): Update.
8117
8118 2015-11-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8119
8120 * config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
8121 * config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
8122 (arm_output_multireg_pop): Likewise.
8123 (output_move_double): Likewise.
8124 (output_move_quad): Likewise.
8125 (output_return_instruction): Likewise.
8126 (arm_print_operand): Remove support for %( and %. print modifiers.
8127 (arm_output_shift): Make unified asm.
8128 (arm_declare_function_name): Likewise.
8129 * config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
8130 (ASM_APP_OFF): Adjust.
8131 (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
8132 (ASM_OUTPUT_REG_POP): Likewise.
8133 * config/arm/arm.md: Adjust uses of %., %(, %)
8134 * config/arm/sync.md: Likewise.
8135 * config/arm/thumb2.md: Likewise.
8136 * config/arm/ldmstm.md: Regenerate.
8137 * config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
8138 * doc/invoke.texi (masm-unified-syntax): Update documentation.
8139
8140 2015-11-06 David Malcolm <dmalcolm@redhat.com>
8141
8142 * input.c (dump_line_table_statistics): Dump stats on adhoc table.
8143
8144 2015-11-07 Jan Hubicka <hubicka@ucw.cz>
8145
8146 * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
8147 add OEP_MATCH_SIDE_EFFECTS.
8148 * fold-const.c (operand_equal_p): Update documentation; handle
8149 OEP_MATCH_SIDE_EFFECTS.
8150 * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
8151 OEP_MATCH_SIDE_EFFECTS.
8152
8153 2015-11-06 Benedikt Huber <benedikt.huber@theobroma-systems.com>
8154 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
8155
8156 * config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
8157 * config/aarch64/aarch64-protos.h: Declare.
8158 * config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
8159 frsqrts.
8160 * config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
8161 * config/aarch64/aarch64.c: New functions. Emit rsqrt estimation
8162 code when applicable.
8163 * config/aarch64/aarch64.md: Added enum entries.
8164 * config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
8165
8166 2015-11-07 Jan Hubicka <hubicka@ucw.cz>
8167
8168 PR ipa/68057
8169 PR ipa/68220
8170 * ipa-polymorphic-call.c
8171 (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
8172 issue when offset is out of range.
8173 (contains_type_p): Fix out of range check, clear dynamic flag.
8174
8175 2015-11-06 Arnout Vandecappelle <arnout@mind.be>
8176
8177 * config.gcc (e6500): Fix cpu_is_64bit typo.
8178
8179 2015-11-06 Alan Lawrence <alan.lawrence@arm.com>
8180
8181 * tree-sra.c (completely_scalarize): Properly handle negative array
8182 indices using offset_int.
8183
8184 2015-11-06 Richard Biener <rguenther@suse.de>
8185
8186 * alloc-pool.h (object_allocator::allocate): Default-initialize
8187 object.
8188
8189 2015-11-06 Richard Biener <rguenther@suse.de>
8190
8191 * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
8192 * lra.c (init_reg_info): Truncate copy_vec instead of
8193 re-allocating a new one and leaking the old.
8194 * ipa-inline-analysis.c (estimate_function_body_sizes): Free
8195 bb_infos vec.
8196 * sched-deps.c (sched_deps_finish): Free the dn/dl pools.
8197 * postreload-gcse.c (free_mem): Free modify_mem_list and
8198 canon_modify_mem_list.
8199
8200 2015-11-06 Ilya Enkovich <enkovich.gnu@gmail.com>
8201
8202 PR tree-optimization/68145
8203 * tree-vect-stmts.c (vectorizable_operation): Fix
8204 determination for booleans.
8205
8206 2015-11-06 Tom de Vries <tom@codesourcery.com>
8207
8208 * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
8209 cond_jump, instead of split after last nondebug insn before cond_jump.
8210 * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
8211 returning.
8212
8213 2015-11-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8214
8215 PR target/68088
8216 * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
8217 subregs from accumulator and make sure it's a register.
8218
8219 2015-11-06 Simon Dardis <simon.dardis@imgtec.com>
8220
8221 * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
8222 low part to scalar.
8223 (reduc_uplus_<mode>): Remove.
8224 (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
8225 loongson_extract_lo_<mode>.
8226 (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
8227 reduc_smax_<mode>, reduc_smax_<mode>, use vec
8228 loongson_extract_lo_<mode>.
8229 (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
8230
8231 2015-11-06 Richard Biener <rguenther@suse.de>
8232
8233 * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
8234 members.
8235 (vect_stmt_in_region_p): Declare.
8236 * tree-vect-slp.c (new_bb_vec_info): Work on a region.
8237 (destroy_bb_vec_info): Likewise.
8238 (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
8239 (vect_get_and_check_slp_defs): Likewise.
8240 (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
8241 (vect_slp_bb): Likewise.
8242 * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
8243 in terms of vect_stmt_in_region_p.
8244 (vect_pattern_recog): Iterate over the BB region.
8245 * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
8246 * tree-vectorizer.c (vect_stmt_in_region_p): New function.
8247 (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
8248 * config/i386/i386.c: Include gimple-iterator.h.
8249 * config/aarch64/aarch64.c: Likewise.
8250
8251 2015-11-06 Alexandre Oliva <aoliva@redhat.com>
8252
8253 PR rtl-optimization/67753
8254 PR rtl-optimization/64164
8255 * function.c (assign_parm_setup_block): Avoid allocating a
8256 stack slot if we don't have an ABI-reserved one. Emit the
8257 copy to target_reg in the conversion seq if the copy from
8258 entry_parm is in it too. Don't use the conversion seq to copy
8259 a PARALLEL to a REG or a CONCAT.
8260
8261 2015-11-06 Richard Biener <rguenther@suse.de>
8262
8263 * tree-hash-traits.h (tree_operand_hash): Provide equal, not
8264 equal_keys.
8265
8266 2015-11-05 Cesar Philippidis <cesar@codesourcery.com>
8267 Thomas Schwinge <thomas@codesourcery.com>
8268 James Norris <jnorris@codesourcery.com>
8269
8270
8271 * gimplify.c (gimplify_scan_omp_clauses): Add support for
8272 OMP_CLAUSE_TILE. Update handling of OMP_CLAUSE_INDEPENDENT.
8273 (gimplify_adjust_omp_clauses): Likewise.
8274 * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
8275 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
8276 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
8277 * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
8278 (omp_clause_code_name): Likewise.
8279 (walk_tree_1): Handle OMP_CLAUSE_TILE.
8280 * tree.h (OMP_TILE_LIST): New macro.
8281
8282 2015-11-05 Martin Sebor <msebor@redhat.com>
8283
8284 PR c++/67942
8285 * doc/invoke.texi (-Wplacement-new): Document new option.
8286
8287 2015-11-05 Alan Lawrence <alan.lawrence@arm.com>
8288
8289 PR tree-optimization/65963
8290 * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
8291 LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
8292
8293 2015-11-05 James Greenhalgh <james.greenhalgh@arm.com>
8294
8295 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
8296 (noce_convert_multiple_sets): Likewise.
8297 (noce_process_if_block): Call them.
8298
8299 2015-11-05 Nathan Sidwell <nathan@codesourcery.com>
8300
8301 * gimple-fold.c: Include omp-low.h.
8302 (fold_internal_goacc_dim): New.
8303 (gimple_fold_call): Call it.
8304
8305 2015-11-05 Jakub Jelinek <jakub@redhat.com>
8306 Ilya Verbin <ilya.verbin@intel.com>
8307
8308 * builtin-types.def
8309 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
8310 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
8311 * cgraph.h (enum cgraph_simd_clone_arg_type): Add
8312 SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
8313 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
8314 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
8315 (struct cgraph_simd_clone_arg): Adjust comment.
8316 * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
8317 to GOMP_target_ext. Add num_teams and thread_limit arguments.
8318 (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
8319 to GOMP_target_data_ext.
8320 (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
8321 to GOMP_target_update_ext.
8322 (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
8323 BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
8324 BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
8325 BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
8326 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
8327 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
8328 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
8329 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
8330 BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
8331 BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
8332 * tree-core.h (enum omp_clause_schedule_kind): Add
8333 OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
8334 OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
8335 OMP_CLAUSE_SCHEDULE_LAST value.
8336 * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
8337 OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
8338 * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
8339 OMP_FOR_CHECK. Remove comment.
8340 * tree-pretty-print.c (dump_omp_clause): Handle
8341 GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
8342 Simplify. Print schedule clause modifiers.
8343 * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
8344 SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
8345 cases.
8346 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
8347 (omp_default_clause): Tweak for
8348 private/firstprivate/is_device_ptr variables on target
8349 construct and use_device_ptr on target data.
8350 (omp_check_private): Likewise.
8351 (omp_notice_variable): For references check whether what it refers
8352 to has mappable type, rather than the reference itself.
8353 (omp_is_private): Diagnose linear iteration variables on non-simd
8354 constructs.
8355 (omp_no_lastprivate): Return true only for Fortran.
8356 (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
8357 GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
8358 Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
8359 GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
8360 based array sections. Use GOMP_MAP_ALWAYS_P. Fix up handling of
8361 lastprivate and linear when combined with distribute. Gimplify
8362 variable low-bound for array reduction. Look through
8363 POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
8364 reductions.
8365 (gimplify_adjust_omp_clauses_1): For implicit references to
8366 variables with reference type and when not ref to scalar or
8367 ref to pointer, map what they refer to using tofrom and
8368 use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
8369 (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
8370 from target exit data. Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
8371 Drop OMP_CLAUSE_MAP_PRIVATE support. Use GOMP_MAP_ALWAYS_P.
8372 Diagnose the same var on both firstprivate and lastprivate on
8373 distribute construct.
8374 (gimplify_omp_for): Fix up handling of predetermined
8375 lastprivate or linear iter vars when combined with distribute.
8376 (find_omp_teams, computable_teams_clause, optimize_target_teams): New
8377 functions.
8378 (gimplify_omp_workshare): Call optimize_target_teams.
8379 * omp-low.c (struct omp_region): Add sched_modifiers field.
8380 (struct omp_for_data): Likewise.
8381 (omp_any_child_fn_dumped): New variable.
8382 (extract_omp_for_data): Fill in sched_modifiers, and mask out
8383 OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
8384 from sched_kind.
8385 (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
8386 bits of OMP_CLAUSE_SCHED_KIND.
8387 (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
8388 drop OMP_CLAUSE_MAP_PRIVATE support. Look through POINTER_PLUS_EXPR
8389 for array section reductions.
8390 (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
8391 for distribute parallel for, if there are lastprivate clauses on the
8392 for.
8393 (lower_rec_input_clauses): Handle non-zero low-bound on array
8394 section reductions.
8395 (lower_reduction_clauses): Likewise.
8396 (lower_send_clauses): Look through POINTER_PLUS_EXPR
8397 for array section reductions.
8398 (expand_parallel_call): Use nonmonotonic entrypoints for
8399 nonmonotonic: dynamic/guided.
8400 (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
8401 child_fn if current_function_decl has assembler name set, but child_fn
8402 does not. Dump the header and IL of the child function when not in SSA
8403 form.
8404 (expand_omp_target): Likewise. Pass num_teams and thread_limit
8405 arguments to BUILT_IN_GOMP_TARGET.
8406 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
8407 Initialize the extra _looptemp_ clause to fd->loop.n2.
8408 (expand_omp_for): Use nonmonotonic entrypoints for
8409 nonmonotonic: dynamic/guided. Initialize region->sched_modifiers.
8410 (expand_omp): Clear omp_any_child_fn_dumped. Dump function header
8411 again if we have dumped any child functions.
8412 (lower_omp_for_lastprivate): Determine the right count variable
8413 for distribute simd, or distribute parallel for{, simd}.
8414 (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
8415 and GOMP_MAP_ALWAYS_POINTER. Drop OMP_CLAUSE_MAP_PRIVATE
8416 support.
8417 (simd_clone_clauses_extract): Handle variable step
8418 for references and arguments passed by reference.
8419 (simd_clone_mangle): Mangle ref/uval/val variable steps.
8420 (simd_clone_adjust_argument_types): Handle
8421 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
8422 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
8423 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
8424 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
8425 (simd_clone_linear_addend): New function.
8426 (simd_clone_adjust): Handle variable step like similarly
8427 to constant step, use simd_clone_linear_addend to determine
8428 the actual step at runtime.
8429
8430 2015-11-05 Nathan Sidwell <nathan@codesourcery.com>
8431
8432 * target.def (goacc.dim_limit): New hook.
8433 * targhooks.h (default_goacc_dim_limit): Declare.
8434 * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
8435 * doc/tm.texi: Rebuilt.
8436 * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
8437 * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
8438 (default_goacc_dim_limit): New.
8439 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
8440 (nvptx_goacc_dim_limit) New.
8441 (TARGET_GOACC_DIM_LIMIT): Override.
8442 * tree-vrp.c: Include omp-low.h, target.h.
8443 (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
8444 IFN_GOACC_DIM_POS.
8445
8446 2015-11-05 Ilya Enkovich <enkovich.gnu@gmail.com>
8447
8448 * tree-vect-generic.c (do_compare): Use -1 for true
8449 result instead of 1.
8450
8451 2015-11-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8452
8453 * config/aarch64/aarch64.c
8454 (aarch64_can_use_per_function_literal_pools_p): New.
8455 (aarch64_use_blocks_for_constant_p): Adjust declaration
8456 and use aarch64_can_use_function_literal_pools_p.
8457 (aarch64_select_rtx_section): Update.
8458
8459 2015-11-05 Ilya Enkovich <enkovich.gnu@gmail.com>
8460
8461 * targhooks.c (default_get_mask_mode): Use BLKmode in
8462 case target doesn't support required vector mode.
8463 * stor-layout.c (layout_type); Check for BLKmode.
8464
8465 2015-11-04 Aditya Kumar <aditya.k7@samsung.com>
8466 Sebastian Pop <s.pop@samsung.com>
8467
8468 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
8469 Remove use of parameter_rename_map.
8470 (copy_def): Remove.
8471 (copy_internal_parameters): Remove.
8472 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
8473 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
8474 (free_sese_info): Do not free parameter_rename_map.
8475 (set_rename): Do not use parameter_rename_map.
8476 (rename_uses): Update call to set_rename.
8477 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
8478 * sese.h (parameter_rename_map_t): Remove.
8479 (struct sese_info_t): Remove field parameter_rename_map.
8480
8481 2015-11-04 Aditya Kumar <aditya.k7@samsung.com>
8482 Sebastian Pop <s.pop@samsung.com>
8483
8484 * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
8485 (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
8486 * graphite-scop-detection.c (dot_all_scops_1): Moved out of
8487 anonymous namespace.
8488 * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
8489 (isl_id_for_pbb): Use a buffer of size 10.
8490 (isl_id_for_ssa_name): Same.
8491 * sese.c (set_rename): Add more dumps.
8492
8493 2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
8494
8495 * omp-low.c (struct omp_context): Remove reduction_map field.
8496 (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
8497 (new_omp_context, delete_omp_context, scan_omp_target): Remove
8498 reduction_map handling.
8499 (lower_omp_target): Remove obsolete openacc reduction handling.
8500
8501 2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
8502
8503 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
8504
8505 2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
8506 Cesar Philippidis <cesar@codesourcery.com>
8507
8508 * config/nvptx/nvptx.c: Include gimple headers.
8509 (worker_red_size, worker_red_align, worker_red_name,
8510 worker_red_sym): New.
8511 (nvptx_option_override): Initialize worker reduction buffer.
8512 (nvptx_file_end): Write out worker reduction buffer var.
8513 (nvptx_expand_shuffle, nvptx_expand_worker_addr,
8514 nvptx_expand_cmp_swap): New builtin expanders.
8515 (enum nvptx_builtins): New.
8516 (nvptx_builtin_decls): New.
8517 (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
8518 (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
8519 (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
8520 nvptx_lockless_update): New helpers.
8521 (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
8522 nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
8523 (nvptx_goacc_reduction): New.
8524 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
8525 TARGET_BUILTIN_DECL): Override.
8526 (TARGET_GOACC_REDUCTION): Override.
8527
8528 2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
8529 Cesar Philippidis <cesar@codesourcery.com>
8530
8531 * internal-fn.def (GOACC_REDUCTION): New.
8532 * internal-fn.h (enum ifn_goacc_reduction_kind): New.
8533 * internal-fn.c (expand_GOACC_REDUCTION): New.
8534 * target.def (goacc.reduction): New OpenACC hook.
8535 * targhooks.h (default_goacc_reduction): Declare.
8536 * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
8537 * doc/tm.texi: Rebuilt.
8538 * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
8539 scan_sharing_clauses): Remove oacc reduction handling here.
8540 (lower_rec_input_clauses): Don't handle OpenACC reductions here.
8541 (oacc_lower_reduction_var_helper): Delete.
8542 (lower_oacc_reductions): New.
8543 (lower_reduction_clauses): Don't handle OpenACC reductions here.
8544 (lower_oacc_head_tail): Call lower_oacc_reductions.
8545 (oacc_gimple_assign, oacc_init_reduction_array,
8546 oacc_initialize_reduction_data, oacc_finalize_reduction_data,
8547 oacc_process_reduction_data): Delete.
8548 (lower_omp_target): Remove old OpenACC reduction handling. Insert
8549 dummy OpenACC gang reduction for reductions at outer level.
8550 (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
8551 (default_goacc_reduction): New.
8552 (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
8553
8554 2015-11-04 Martin Liska <mliska@suse.cz>
8555
8556 * cgraphunit.c (cgraph_node::expand_thunk): Call
8557 allocate_struct_function before init_function_start.
8558 (cgraph_node::expand): Use push_cfun and pop_cfun.
8559 * config/i386/i386.c (ix86_code_end): Call
8560 allocate_struct_function before init_function_start.
8561 * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
8562 * function.c (init_function_start): Move preamble to all
8563 callers.
8564 * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
8565 (execute_one_pass): Handle newly added TODO_discard_function.
8566 (execute_pass_list_1): Terminate if cfun equals to NULL.
8567 (execute_pass_list): Do not push and pop cfun, expect that
8568 cfun is set.
8569 * tree-pass.h (TODO_discard_function): Define.
8570
8571 2015-11-04 Mikhail Maltsev <maltsevm@gmail.com>
8572
8573 * cfganal.c (inverted_post_order_compute): Remove conditional
8574 compilation, use flag_checking.
8575 * config.in: Regenerate.
8576 * configure: Regenerate.
8577 * configure.ac: Remove ENABLE_CHECKING.
8578 * genconditions.c: Do not #undef ENABLE_CHECKING.
8579 * sese.h (bb_in_region): Comment out broken check.
8580 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
8581 conditional compilation, use flag_checking.
8582
8583 2015-11-04 Tom de Vries <tom@codesourcery.com>
8584
8585 PR tree-optimization/67742
8586 * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
8587 field.
8588 (push_fields_onto_fieldstack): Handle restrict_pointed_type field.
8589 (create_variable_info_for_1): Add and handle handle_param parameter.
8590 Add restrict handling.
8591 (create_variable_info_for): Call create_variable_info_for_1 with extra
8592 arg.
8593 (make_param_constraints): Drop restrict_name parameter. Ignore
8594 vi->only_restrict_pointers.
8595 (intra_create_variable_infos): Call create_variable_info_for_1 with
8596 extra arg. Remove restrict handling. Call make_param_constraints with
8597 one fewer arg.
8598
8599 2015-11-04 Tom de Vries <tom@codesourcery.com>
8600
8601 * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
8602 variable.
8603
8604 2015-11-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8605
8606 * config/arm/coff.h: Remove.
8607
8608 2015-11-03 Eric Botcazou <ebotcazou@adacore.com>
8609
8610 * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
8611 check for aggregate types and beef up comment for mode check.
8612
8613 2015-11-03 Richard Biener <rguenther@suse.de>
8614
8615 * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
8616 data references here.
8617 * tree-vect-loop.c: Include cgraph.h.
8618 (vect_analyze_loop_2): Collect data references here.
8619 * tree-vect-slp.c (find_bb_location): Inline ...
8620 (vect_slp_bb): ... here. Renamed from vect_slp_analyze_bb.
8621 Factor in vect_slp_transform_bb.
8622 (vect_slp_transform_bb): Removed.
8623 (vect_slp_analyze_bb_1): Collect data references here.
8624 * tree-vectorizer.c (pass_slp_vectorize::execute): Call
8625 vect_slp_bb.
8626 * tree-vectorizer.h (vect_slp_bb): Declare.
8627 (vect_slp_analyze_bb): Remove.
8628 (vect_slp_transform_bb): Remove.
8629 (find_bb_location): Remove.
8630 (vect_analyze_data_refs): Remove stmt count reference parameter.
8631
8632 2015-11-03 Evgeny Stupachenko <evstupac@gmail.com>
8633
8634 * multiple_target.c (create_dispatcher_calls): Add target check
8635 on ifunc.
8636 (create_target_clone): Change assembler name for versioned declarations.
8637
8638 2015-11-03 Thomas Schwinge <thomas@codesourcery.com>
8639 Chung-Lin Tang <cltang@codesourcery.com>
8640
8641 * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
8642 * omp-low.c (check_omp_nesting_restrictions): Allow
8643 GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
8644 contexts.
8645
8646 2015-11-03 Bilyan Borisov <bilyan.borisov@arm.com>
8647
8648 * config/aarch64/aarch64-simd-builtins.def (fmulx): New.
8649 * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
8650 * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
8651 builtin.
8652 (vmulxq_f32): Likewise.
8653 (vmulx_f64): New.
8654 (vmulxq_f64): Rewrite to call fmulx builtin.
8655 (vmulxs_f32): Likewise.
8656 (vmulxd_f64): Likewise.
8657 (vmulx_lane_f32): Remove.
8658 * config/aarch64/iterators.md (UNSPEC): Add fmulx.
8659
8660 2015-11-03 Alan Lawrence <alan.lawrence@arm.com>
8661
8662 * config/aarch64/aarch64.md (*movhf_aarch64): Use
8663 aarch64_reg_or_fp_zero for second operand.
8664
8665 2015-11-03 Alexandre Oliva <aoliva@redhat.com>
8666
8667 * gimple-expr.c: Include hash-set.h and rtl.h.
8668 (mark_addressable_queue): New var.
8669 (mark_addressable): Factor actual marking into...
8670 (mark_addressable_1): ... this. Queue it up during expand.
8671 (mark_addressable_2): New.
8672 (flush_mark_addressable_queue): New.
8673 * gimple-expr.h (flush_mark_addressable_queue): Declare.
8674 * cfgexpand.c: Include gimple-expr.h.
8675 (pass_expand::execute): Flush mark_addressable queue.
8676
8677 2015-11-02 Alexandre Oliva <aoliva@redhat.com>
8678
8679 * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
8680 bb_no_side_effects_p tests...
8681 (tree_ssa_ifcombine_bb): ... here.
8682
8683 PR tree-optimization/68083
8684 * tree-ssa-ifcombine.c: Include tree-ssa.h.
8685 (bb_no_side_effects_p): Test for undefined uses too.
8686 * tree-ssa.c (gimple_uses_undefined_value_p): New.
8687 * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
8688
8689 2015-11-02 Jeff Law <law@redhat.com>
8690
8691 * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
8692 cases where the loop latch edge is in the middle of an FSM path.
8693
8694 2015-11-03 Tom de Vries <tom@codesourcery.com>
8695
8696 * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
8697 (make_param_constraints): ... this. Add and handle restrict_name
8698 parameter. Handle is_full_var case.
8699 (intra_create_variable_infos): Use make_param_constraints.
8700
8701 2015-11-03 Tom de Vries <tom@codesourcery.com>
8702
8703 * tree-ssa-structalias.c (make_restrict_var_constraints): Replace
8704 make_copy_constraint call with make_constraint_from call.
8705
8706 2015-11-02 Andreas Tobler <andreast@gcc.gnu.org>
8707
8708 * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
8709 PIE executables.
8710
8711 2015-11-02 Richard Sandiford <richard.sandiford@arm.com>
8712
8713 * builtins.h (fold_fma): Move to fold-const-call.h.
8714 * builtins.c: Include fold-const-call.h.
8715 (mathfn_built_in_2): New function, split out from...
8716 (mathfn_built_in_1): ...here.
8717 (do_real_to_int_conversion, fold_const_builtin_pow)
8718 (fold_const_builtin_logb, fold_const_builtin_significand)
8719 (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
8720 (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
8721 (fold_builtin_sincos): Use fold_const_call to handle constants.
8722 (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
8723 checks for ERROR_MARK. Use fold_const_call to handle constant
8724 folds for math functions.
8725 (fold_fma): Move to fold-const-call.c.
8726 * fold-const.c: Include fold-const-call.h.
8727 * Makefile.in (OBJS): Add fold-const-call.o.
8728 (PLUGIN_HEADERS): Add fold-const-call.h.
8729 * realmpfr.h (real_from_mpfr): Allow the format to be specified
8730 directly.
8731 * realmpfr.c (real_from_mpfr): Likewise.
8732 * fold-const-call.h, fold-const-call.c: New files.
8733
8734 2015-11-02 Julian Brown <julian@codesourcery.com>
8735
8736 * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
8737 brackets and semicolon.
8738
8739 2015-11-02 Alan Lawrence <alan.lawrence@arm.com>
8740
8741 Revert:
8742 2015-10-27 Alan Lawrence <alan.lawrence@arm.com>
8743
8744 PR tree-optimization/65963
8745 * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
8746 LSHIFT_EXPRs as equivalent MULT_EXPRs.
8747
8748 2015-11-02 Thomas Schwinge <thomas@codesourcery.com>
8749
8750 PR middle-end/68166
8751 * fold-const.c: Include "md5.h".
8752
8753 2015-11-01 Jeff Law <law@redhat.com>
8754
8755 * vmsdbgout.c: Revert unused header file reduction patch.
8756
8757 * config/mcore/mcore.c: Include regs.h.
8758
8759 2015-10-31 Segher Boessenkool <segher@kernel.crashing.org>
8760
8761 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.
8762
8763 2015-10-31 Segher Boessenkool <segher@kernel.crashing.org>
8764
8765 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
8766 same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
8767 live as for using it elsewhere, for TARGET_MINIMAL_TOC.
8768
8769 2015-10-31 Markus Trippelsdorf <markus@trippelsdorf.de>
8770
8771 * ggc-common.c: Restore needed header for checking=release.
8772
8773 2015-10-31 Tom de Vries <tom@codesourcery.com>
8774
8775 * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.
8776
8777 2015-10-31 Tom de Vries <tom@codesourcery.com>
8778
8779 * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
8780 existing varinfo for arguments.
8781
8782 2015-10-31 Tom de Vries <tom@codesourcery.com>
8783
8784 * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
8785 create_function_info_for. Dump constraints generated during
8786 create_function_info_for. Move intra_create_variable_infos call and
8787 function-return-values-escape bit to ...
8788 (create_function_info_for): ... here, and merge
8789 intra_create_variable_infos call with argument loop. Add and handle
8790 nonlocal_p parameter.
8791
8792 2015-10-31 Tom de Vries <tom@codesourcery.com>
8793
8794 * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
8795 updating is alap, and seperated from preceding code. Make sure
8796 insert_vi_for_tree is seperated from surrounding code.
8797
8798 2015-10-31 Tom de Vries <tom@codesourcery.com>
8799
8800 * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
8801
8802 2015-10-30 Jeff Law <law@redhat.com>
8803 Nathan Sidwell <nathan@acm.org>
8804
8805 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
8806 args.
8807 (MOVE_MAX): Set to 8.
8808
8809 2015-10-30 Cesar Philippidis <cesar@codesourcery.com>
8810
8811 * cgraph.c: Include context.h for offloading.
8812 * varpool.c: Include context.h and omp-low.h.
8813
8814 2015-10-30 Anatoly Sokolov <aesok@post.ru>
8815
8816 * rtl.h (contains_symbol_ref_p): Declare.
8817 (SYMBOL_REF_P): Define.
8818 * rtlanal.c (contains_symbol_ref_p: New function.
8819 * lra-constraints.c (contains_symbol_ref_p): Remove.
8820 * var-tracking.c (contains_symbol_ref): Remove.
8821 (track_expr_p): Use contains_symbol_ref_p instead of
8822 contains_symbol_ref.
8823
8824 2015-10-30 Alan Lawrence <alan.lawrence@arm.com>
8825
8826 * gimple-fold.c (fold_array_ctor_reference): Move searching code to:
8827 * fold-const.c (get_array_ctor_element_at_index): New.
8828 (fold): Remove binary-search through CONSTRUCTOR, call previous.
8829
8830 * fold-const.h (get_array_ctor_element_at_index): New.
8831
8832 2015-10-30 Evgeny Stupachenko <evstupac@gmail.com>
8833
8834 * Makefile.in (OBJS): Add multiple_target.o.
8835 * attrib.c (make_attribute): Moved from config/i386/i386.c
8836 * config/i386/i386.c (make_attribute): Deleted.
8837 * multiple_target.c (create_dispatcher_calls): New.
8838 (get_attr_len): Ditto.
8839 (get_attr_str): Ditto.
8840 (separate_attrs): Ditto.
8841 (is_valid_asm_symbol): Ditto.
8842 (create_new_asm_name): Ditto.
8843 (create_target_clone): Ditto.
8844 (expand_target_clones): Ditto.
8845 (ipa_target_clone): Ditto.
8846 (ipa_dispatcher_calls): Ditto.
8847 * passes.def (pass_target_clone): Two new ipa passes.
8848 * tree-pass.h (make_pass_target_clone): Ditto.
8849 * doc/extend.texi (target_clones): New attribute description.
8850
8851 2015-10-30 Vladimir Makarov <vmakarov@redhat.com>
8852
8853 PR rtl-optimization/68106
8854 * lra-remat.c (input_regno_present_p): Process hard regs
8855 explicitly present in machine description insns.
8856 (call_used_input_regno_present_p): Ditto.
8857 (calculate_gen_cands): Ditto.
8858 (do_remat): Ditto.
8859
8860 2015-10-30 Jim Wilson <jim.wilson@linaro.org>
8861
8862 * config/arm/neon-testgen.ml: Fix comment typo.
8863
8864 2015-10-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8865
8866 * rtlanal.c (reg_set_p): Expand function comment.
8867
8868 2015-10-30 Andrew MacLeod <amacleod@redhat.com>
8869
8870 * alias.c: Remove unused headers.
8871 * asan.c: Likewise.
8872 * attribs.c: Likewise.
8873 * auto-inc-dec.c: Likewise.
8874 * auto-profile.c: Likewise.
8875 * bb-reorder.c: Likewise.
8876 * bitmap.c: Likewise.
8877 * bt-load.c: Likewise.
8878 * builtins.c: Likewise.
8879 * caller-save.c: Likewise.
8880 * calls.c: Likewise.
8881 * ccmp.c: Likewise.
8882 * cfg.c: Likewise.
8883 * cfganal.c: Likewise.
8884 * cfgbuild.c: Likewise.
8885 * cfgcleanup.c: Likewise.
8886 * cfgexpand.c: Likewise.
8887 * cfghooks.c: Likewise.
8888 * cfgloop.c: Likewise.
8889 * cfgloopanal.c: Likewise.
8890 * cfgloopmanip.c: Likewise.
8891 * cfgrtl.c: Likewise.
8892 * cgraph.c: Likewise.
8893 * cgraphbuild.c: Likewise.
8894 * cgraphclones.c: Likewise.
8895 * cgraphunit.c: Likewise.
8896 * cilk-common.c: Likewise.
8897 * combine-stack-adj.c: Likewise.
8898 * combine.c: Likewise.
8899 * compare-elim.c: Likewise.
8900 * convert.c: Likewise.
8901 * coverage.c: Likewise.
8902 * cppbuiltin.c: Likewise.
8903 * cprop.c: Likewise.
8904 * cse.c: Likewise.
8905 * cselib.c: Likewise.
8906 * data-streamer-in.c: Likewise.
8907 * data-streamer-out.c: Likewise.
8908 * data-streamer.c: Likewise.
8909 * dbxout.c: Likewise.
8910 * dce.c: Likewise.
8911 * ddg.c: Likewise.
8912 * debug.c: Likewise.
8913 * df-core.c: Likewise.
8914 * df-problems.c: Likewise.
8915 * df-scan.c: Likewise.
8916 * dfp.c: Likewise.
8917 * dojump.c: Likewise.
8918 * dominance.c: Likewise.
8919 * domwalk.c: Likewise.
8920 * double-int.c: Likewise.
8921 * dse.c: Likewise.
8922 * dumpfile.c: Likewise.
8923 * dwarf2asm.c: Likewise.
8924 * dwarf2cfi.c: Likewise.
8925 * dwarf2out.c: Likewise.
8926 * emit-rtl.c: Likewise.
8927 * except.c: Likewise.
8928 * explow.c: Likewise.
8929 * expmed.c: Likewise.
8930 * expr.c: Likewise.
8931 * final.c: Likewise.
8932 * fixed-value.c: Likewise.
8933 * fold-const.c: Likewise.
8934 * function.c: Likewise.
8935 * fwprop.c: Likewise.
8936 * gcse.c: Likewise.
8937 * generic-match-head.c: Likewise.
8938 * ggc-common.c: Likewise.
8939 * gimple-builder.c: Likewise.
8940 * gimple-expr.c: Likewise.
8941 * gimple-fold.c: Likewise.
8942 * gimple-iterator.c: Likewise.
8943 * gimple-low.c: Likewise.
8944 * gimple-match-head.c: Likewise.
8945 * gimple-pretty-print.c: Likewise.
8946 * gimple-ssa-isolate-paths.c: Likewise.
8947 * gimple-ssa-strength-reduction.c: Likewise.
8948 * gimple-streamer-in.c: Likewise.
8949 * gimple-streamer-out.c: Likewise.
8950 * gimple-walk.c: Likewise.
8951 * gimple.c: Likewise.
8952 * gimplify-me.c: Likewise.
8953 * gimplify.c: Likewise.
8954 * godump.c: Likewise.
8955 * graph.c: Likewise.
8956 * graphds.c: Likewise.
8957 * haifa-sched.c: Likewise.
8958 * hw-doloop.c: Likewise.
8959 * ifcvt.c: Likewise.
8960 * init-regs.c: Likewise.
8961 * internal-fn.c: Likewise.
8962 * ipa-chkp.c: Likewise.
8963 * ipa-comdats.c: Likewise.
8964 * ipa-cp.c: Likewise.
8965 * ipa-devirt.c: Likewise.
8966 * ipa-icf-gimple.c: Likewise.
8967 * ipa-icf.c: Likewise.
8968 * ipa-inline-analysis.c: Likewise.
8969 * ipa-inline-transform.c: Likewise.
8970 * ipa-inline.c: Likewise.
8971 * ipa-polymorphic-call.c: Likewise.
8972 * ipa-profile.c: Likewise.
8973 * ipa-prop.c: Likewise.
8974 * ipa-pure-const.c: Likewise.
8975 * ipa-ref.c: Likewise.
8976 * ipa-reference.c: Likewise.
8977 * ipa-split.c: Likewise.
8978 * ipa-utils.c: Likewise.
8979 * ipa-visibility.c: Likewise.
8980 * ipa.c: Likewise.
8981 * ira-build.c: Likewise.
8982 * ira-color.c: Likewise.
8983 * ira-conflicts.c: Likewise.
8984 * ira-costs.c: Likewise.
8985 * ira-emit.c: Likewise.
8986 * ira-lives.c: Likewise.
8987 * ira.c: Likewise.
8988 * jump.c: Likewise.
8989 * langhooks.c: Likewise.
8990 * lcm.c: Likewise.
8991 * lists.c: Likewise.
8992 * loop-doloop.c: Likewise.
8993 * loop-init.c: Likewise.
8994 * loop-invariant.c: Likewise.
8995 * loop-iv.c: Likewise.
8996 * loop-unroll.c: Likewise.
8997 * lower-subreg.c: Likewise.
8998 * lra-assigns.c: Likewise.
8999 * lra-coalesce.c: Likewise.
9000 * lra-constraints.c: Likewise.
9001 * lra-eliminations.c: Likewise.
9002 * lra-lives.c: Likewise.
9003 * lra-remat.c: Likewise.
9004 * lra-spills.c: Likewise.
9005 * lra.c: Likewise.
9006 * lto-cgraph.c: Likewise.
9007 * lto-compress.c: Likewise.
9008 * lto-opts.c: Likewise.
9009 * lto-section-in.c: Likewise.
9010 * lto-section-out.c: Likewise.
9011 * lto-streamer-in.c: Likewise.
9012 * lto-streamer-out.c: Likewise.
9013 * lto-streamer.c: Likewise.
9014 * mcf.c: Likewise.
9015 * mode-switching.c: Likewise.
9016 * modulo-sched.c: Likewise.
9017 * optabs.c: Likewise.
9018 * opts-global.c: Likewise.
9019 * passes.c: Likewise.
9020 * plugin.c: Likewise.
9021 * postreload-gcse.c: Likewise.
9022 * postreload.c: Likewise.
9023 * predict.c: Likewise.
9024 * print-tree.c: Likewise.
9025 * profile.c: Likewise.
9026 * real.c: Likewise.
9027 * realmpfr.c: Likewise.
9028 * recog.c: Likewise.
9029 * ree.c: Likewise.
9030 * reg-stack.c: Likewise.
9031 * regcprop.c: Likewise.
9032 * reginfo.c: Likewise.
9033 * regrename.c: Likewise.
9034 * regstat.c: Likewise.
9035 * reload.c: Likewise.
9036 * reload1.c: Likewise.
9037 * reorg.c: Likewise.
9038 * resource.c: Likewise.
9039 * rtl-chkp.c: Likewise.
9040 * rtl-error.c: Likewise.
9041 * rtlanal.c: Likewise.
9042 * rtlhooks.c: Likewise.
9043 * sanopt.c: Likewise.
9044 * sched-deps.c: Likewise.
9045 * sched-ebb.c: Likewise.
9046 * sched-rgn.c: Likewise.
9047 * sdbout.c: Likewise.
9048 * sel-sched-dump.c: Likewise.
9049 * sel-sched-ir.c: Likewise.
9050 * sel-sched.c: Likewise.
9051 * sese.c: Likewise.
9052 * shrink-wrap.c: Likewise.
9053 * simplify-rtx.c: Likewise.
9054 * stack-ptr-mod.c: Likewise.
9055 * statistics.c: Likewise.
9056 * stmt.c: Likewise.
9057 * stor-layout.c: Likewise.
9058 * store-motion.c: Likewise.
9059 * stringpool.c: Likewise.
9060 * symtab.c: Likewise.
9061 * target-globals.c: Likewise.
9062 * targhooks.c: Likewise.
9063 * toplev.c: Likewise.
9064 * tracer.c: Likewise.
9065 * trans-mem.c: Likewise.
9066 * tree-affine.c: Likewise.
9067 * tree-call-cdce.c: Likewise.
9068 * tree-cfg.c: Likewise.
9069 * tree-cfgcleanup.c: Likewise.
9070 * tree-chkp-opt.c: Likewise.
9071 * tree-chkp.c: Likewise.
9072 * tree-chrec.c: Likewise.
9073 * tree-complex.c: Likewise.
9074 * tree-data-ref.c: Likewise.
9075 * tree-dfa.c: Likewise.
9076 * tree-diagnostic.c: Likewise.
9077 * tree-dump.c: Likewise.
9078 * tree-eh.c: Likewise.
9079 * tree-emutls.c: Likewise.
9080 * tree-if-conv.c: Likewise.
9081 * tree-inline.c: Likewise.
9082 * tree-into-ssa.c: Likewise.
9083 * tree-iterator.c: Likewise.
9084 * tree-loop-distribution.c: Likewise.
9085 * tree-nested.c: Likewise.
9086 * tree-nrv.c: Likewise.
9087 * tree-object-size.c: Likewise.
9088 * tree-outof-ssa.c: Likewise.
9089 * tree-parloops.c: Likewise.
9090 * tree-phinodes.c: Likewise.
9091 * tree-predcom.c: Likewise.
9092 * tree-pretty-print.c: Likewise.
9093 * tree-profile.c: Likewise.
9094 * tree-scalar-evolution.c: Likewise.
9095 * tree-sra.c: Likewise.
9096 * tree-ssa-address.c: Likewise.
9097 * tree-ssa-alias.c: Likewise.
9098 * tree-ssa-ccp.c: Likewise.
9099 * tree-ssa-coalesce.c: Likewise.
9100 * tree-ssa-copy.c: Likewise.
9101 * tree-ssa-dce.c: Likewise.
9102 * tree-ssa-dse.c: Likewise.
9103 * tree-ssa-forwprop.c: Likewise.
9104 * tree-ssa-ifcombine.c: Likewise.
9105 * tree-ssa-live.c: Likewise.
9106 * tree-ssa-loop-ch.c: Likewise.
9107 * tree-ssa-loop-im.c: Likewise.
9108 * tree-ssa-loop-ivcanon.c: Likewise.
9109 * tree-ssa-loop-ivopts.c: Likewise.
9110 * tree-ssa-loop-manip.c: Likewise.
9111 * tree-ssa-loop-niter.c: Likewise.
9112 * tree-ssa-loop-prefetch.c: Likewise.
9113 * tree-ssa-loop-unswitch.c: Likewise.
9114 * tree-ssa-loop.c: Likewise.
9115 * tree-ssa-math-opts.c: Likewise.
9116 * tree-ssa-operands.c: Likewise.
9117 * tree-ssa-phiopt.c: Likewise.
9118 * tree-ssa-phiprop.c: Likewise.
9119 * tree-ssa-pre.c: Likewise.
9120 * tree-ssa-propagate.c: Likewise.
9121 * tree-ssa-reassoc.c: Likewise.
9122 * tree-ssa-scopedtables.c: Likewise.
9123 * tree-ssa-sink.c: Likewise.
9124 * tree-ssa-strlen.c: Likewise.
9125 * tree-ssa-structalias.c: Likewise.
9126 * tree-ssa-tail-merge.c: Likewise.
9127 * tree-ssa-ter.c: Likewise.
9128 * tree-ssa-threadupdate.c: Likewise.
9129 * tree-ssa-uncprop.c: Likewise.
9130 * tree-ssa-uninit.c: Likewise.
9131 * tree-ssa.c: Likewise.
9132 * tree-ssanames.c: Likewise.
9133 * tree-stdarg.c: Likewise.
9134 * tree-streamer-in.c: Likewise.
9135 * tree-streamer-out.c: Likewise.
9136 * tree-streamer.c: Likewise.
9137 * tree-switch-conversion.c: Likewise.
9138 * tree-tailcall.c: Likewise.
9139 * tree-vect-data-refs.c: Likewise.
9140 * tree-vect-generic.c: Likewise.
9141 * tree-vect-loop-manip.c: Likewise.
9142 * tree-vect-loop.c: Likewise.
9143 * tree-vect-patterns.c: Likewise.
9144 * tree-vect-slp.c: Likewise.
9145 * tree-vect-stmts.c: Likewise.
9146 * tree-vectorizer.c: Likewise.
9147 * tree-vrp.c: Likewise.
9148 * tree.c: Likewise.
9149 * tsan.c: Likewise.
9150 * ubsan.c: Likewise.
9151 * value-prof.c: Likewise.
9152 * var-tracking.c: Likewise.
9153 * varasm.c: Likewise.
9154 * varpool.c: Likewise.
9155 * vmsdbgout.c: Likewise.
9156 * vtable-verify.c: Likewise.
9157 * web.c: Likewise.
9158 * wide-int-print.cc: Likewise.
9159 * wide-int.cc: Likewise.
9160 * xcoffout.c: Likewise.
9161
9162 2015-10-30 James Greenhalgh <james.greenhalgh@arm.com>
9163
9164 * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
9165 between pass numbering and execution order.
9166
9167 2015-10-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9168
9169 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
9170 check for dependencies.
9171
9172 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
9173
9174 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
9175 CDI_DOMINATORS.
9176
9177 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
9178
9179 * real.h (format_helper): New.
9180 (real_convert, exact_real_truncate, real_from_string3, real_to_target)
9181 (real_from_target, real_nan, real_2expN, real_value_truncate)
9182 (significand_size, real_from_string2, exact_real_inverse)
9183 (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
9184 (real_round, real_isinteger, real_from_integer): Replace
9185 machine_mode arguments with format_helper arguments.
9186 * real.c (exact_real_inverse, real_from_string2, real_from_string3)
9187 (real_from_integer, real_nan, real_2expN, real_convert)
9188 (real_value_truncate, exact_real_truncate, real_to_target)
9189 (real_from_target, significand_size, real_powi, real_trunc)
9190 (real_floor, real_ceil, real_round, real_isinteger): Replace
9191 machine_mode arguments with format_helper arguments.
9192 (real_to_target_fmt, real_from_target_fmt): Delete.
9193 * dfp.h (decimal_real_convert): Replace mode argument with real_format.
9194 * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
9195 argument with real_format.
9196 * builtins.c (do_real_to_int_conversion): Update type of fn argument.
9197
9198 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
9199
9200 * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
9201 (fixed_to_decimal, fixed_convert_from_real)
9202 (real_convert_from_fixed): Fix mode arguments to real_2expN.
9203
9204 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
9205
9206 * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
9207 SCALAR_FLOAT_MODE_P.
9208
9209 2015-10-30 Alan Lawrence <alan.lawrence@arm.com>
9210
9211 * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
9212 (completely_scalarize): Comment zero-length arrays.
9213 (get_access_replacement): Correct comment re. precondition.
9214
9215 2015-10-30 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9216
9217 * config/i386/i386.c (get_builtin_code_for_version): Set priority
9218 for PROCESSOR_ZNVER1.
9219 (enum processor_model): Add M_AMDFAM17H_znver1.
9220 (struct arch_names_table): Likewise.
9221 * doc/extend.texi: ADD znver1.
9222
9223 2015-10-30 Richard Biener <rguenther@suse.de>
9224
9225 * gimple-fold.c (fold_gimple_assign): Do not dispatch to
9226 fold () on single RHSs. Allow CONSTRUCTORS with trailing
9227 zeros to be folded to VECTOR_CSTs.
9228 * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
9229 * fold-const.c (fold): Use build_vector_from_ctor.
9230
9231 2015-10-30 Evandro Menezes <e.menezes@samsung.com>
9232
9233 * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
9234 "mov %0.h[0], %1.h[0] to "neon_move".
9235 (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
9236 (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
9237 "mov_imm".
9238 (*cmovsi_insn_uxtw): Likewise.
9239
9240 2015-10-30 Tom de Vries <tom@codesourcery.com>
9241
9242 * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
9243 unsigned, and initialize, and use initial value instead of hardcoded
9244 constant. Add generic constraints dumping section. Don't dump global
9245 initializers constraints dumping section if empty. Don't update
9246 variable from if unused.
9247
9248 2015-10-29 Mikhail Maltsev <maltsevm@gmail.com>
9249
9250 * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
9251 flag_checking and/or CHECKING_P to eliminate conditional compilation
9252 on ENABLE_CHECKING.
9253 * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
9254 * config/bfin/bfin.c (hwloop_optimize): Likewise.
9255 * config/i386/i386.c (ix86_print_operand_address): Likewise.
9256 (output_387_binary_op): Likewise.
9257 * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
9258 * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
9259 * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
9260 Likewise.
9261 * config/rs6000/rs6000.h: Likewise.
9262 * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
9263
9264 2015-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
9265
9266 * config/sh/sh.opt (mfdpic): Add missing period.
9267
9268 2015-08-29 Anatoly Sokolov <aesok@post.ru>
9269
9270 * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
9271 BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
9272 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
9273 * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
9274 mcore_base_register_rtx_p, mcore_legitimate_index_p,
9275 mcore_legitimate_address_p): New functions.
9276 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
9277
9278 2015-10-29 Jeff Law <law@redhat.com>
9279
9280 * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
9281 method.
9282 * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
9283 * tree-ssa-threadedge.c
9284 (record_temporary_equivalences_from_stmts_at_dest): Remove
9285 backedge_seen argument and associated code which invalidated
9286 equivalences based on the value of that argument.
9287 (thread_through_normal_block): Corresponding changes.
9288
9289 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org>
9290
9291 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
9292 function earlier in the file.
9293 (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
9294 df_regs_ever_live_p.
9295
9296 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org>
9297
9298 * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
9299 by ignoring it.
9300
9301 2015-10-29 Richard Henderson <rth@redhat.com>
9302
9303 PR target/68124
9304 PR rtl-opt/67609
9305 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
9306 sse check to the exact conditions of PR 67609.
9307
9308 2015-10-29 Michael Meissner <meissner@linux.vnet.ibm.com>
9309
9310 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
9311 setup into 3 functions: init_float128_ibm, init_float128_ieee, and
9312 rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
9313 of the traditional names that TFmode uses for handling IEEE
9314 extended double. If -mfloat128, add KFmode functions for all of
9315 the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
9316 make TFmode use the same emulation functions as KFmode.
9317 (init_float128_ibm): Likewise.
9318 (init_float128_ieee): Likewise.
9319 (rs6000_generate_compare): For IEEE 128-bit floating point
9320 comparisons, call the unordered comparison function instead of the
9321 ordered comparison function.
9322 (rs6000_expand_float128_convert): Deal with operands that are
9323 memory operands. Restructure the code to use a switch statement on
9324 the mode. Add support for TFmode defaulting to either IBM extended
9325 double or IEEE 128-bit floating point. If the underlying types are
9326 the same, use a move instead of a conversion function.
9327 (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
9328 use for IEEE 128-bit floating point constants with -mfloat128.
9329 (rs6000_c_mode_for_suffix): Likewise.
9330 (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
9331 128-bit floating point with IBM extended double floating point.
9332 (rs6000_invalid_binary_op): Likewise.
9333 (rs6000_gen_le_vsx_permute): On little endian systems generate a
9334 ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
9335 types that can go in vector registers.
9336 (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
9337 point types that can go in vector registers on little endian
9338 PowerPC systems.
9339 (mark_swaps_for_removal): Likewise.
9340 (rs6000_analyze_swaps): Likewise.
9341 (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
9342
9343 * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
9344 rework IEEE 128-bit floating point insns to deal with TFmode being
9345 either IBM extended double or IEEE 128-bit floating point.
9346 (IFKF): Likewise.
9347 (IBM128): Update iterator to add condition that the mode is IBM
9348 extended double.
9349 (IEEE128): New iterator for IEEE 128-bit floating point.
9350 (TFIFKF): Rename TFIFKF iterator to FLOAT128.
9351 (FLOAT128): Likewise.
9352 (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
9353 iterator.
9354 (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
9355 for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
9356 instead of hard coding TFmode or KFmode.
9357 (negtf2_internal): Likewise.
9358 (neg<mode>2_internal): Likewise.
9359 (abs<mode>2): Likewise.
9360 (abstf2_internal): Likewise.
9361 (abs<mode>2_internal): Likewise.
9362 (ieee_128bit_neg<mode>2): Likewise.
9363 (ieee_128bit_neg<mode>2_internal): Likewise.
9364 (ieee_128bit_abs<mode>2): Likewise.
9365 (ieee_128bit_abs<mode>2_internal): Likewise.
9366 (ieee_128bit_nabs<mode>2): Likewise.
9367 (ieee_128bit_nabs<mode>2_internal): Likewise.
9368 (extendiftf2): Add explicit conversions between 128-bit floating
9369 point types. Drop the old conversions that had become unwieldy.
9370 (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
9371 (extendifkf2): Likewise.
9372 (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
9373 (extendtfkf2): Likewise.
9374 (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
9375 (trunciftf2): Likewise.
9376 (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
9377 (truncifkf2): Likewise.
9378 (float<SDI:mode><IFKF:mode>2): Likewise.
9379 (trunckftf2): Likewise.
9380 (floatuns<SDI:mode><IFKF:mode>2): Likewise.
9381 (trunctfif2): Likewise.
9382 (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
9383 (extenddftf2): Rework 128-bit floating point conversions to
9384 properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
9385 KFmode expanders into one function.
9386 (extenddf<mode>2): Likewise.
9387 (extenddftf2_fprs): Likewise.
9388 (extenddf<mode>2_fprs): Likewise.
9389 (extenddftf2_vsx): Likewise.
9390 (extenddf<mode>2_vsx): Likewise.
9391 (extendsftf2): Likewise.
9392 (extendsf<mode>2): Likewise.
9393 (trunctfdf2): Likewise.
9394 (trunc<mode>df2): Likewise.
9395 (trunctfdf2_internal1): Likewise.
9396 (trunc<mode>df2_internal1): Likewise.
9397 (trunctfdf2_internal2): Likewise.
9398 (trunc<mode>df2_internal2): Likewise.
9399 (trunctfsf2): Likewise.
9400 (trunc<mode>sf2): Likewise.
9401 (trunctfsf2_fprs): Likewise.
9402 (trunc<mode>sf2_fprs): Likewise.
9403 (floatsit2f): Likewise.
9404 (floatsi<mode>2): Likewise.
9405 (fix_trunc_helper): Likewise.
9406 (fix_trunc_helper<mode>): Likewise.
9407 (fix_trunctfsi2): Likewise.
9408 (fix_trunc<mode>si2): Likewise.
9409 (fix_trunctfsi2_fprs): Likewise.
9410 (fix_trunc<mode>si2_fprs): Likewise.
9411 (fix_trunctfsi2_internal): Likewise.
9412 (fix_trunc<mode>si2_internal): Likewise.
9413 (fix_trunctfdi2): Likewise.
9414 (fix_trunc<mode>di2): Likewise.
9415 (fixuns_trunctf<mode>2): Likewise.
9416 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
9417 (floatditf2): Likewise.
9418 (floatdi<mode>2): Likewise.
9419 (floatuns<mode>tf2): Likewise.
9420 (floatuns<SDI:mode><IEEE128:mode>): Likewise.
9421 (cmptf_internal1): Use a mode iterator to add support for both
9422 types (IFmode, TFmode) that support IBM extended double.
9423 (cmp<mode>_internal1): Likewise.
9424 (cmptf_internal2): Likewise.
9425 (cmp<mode>_internal2): Likewise.
9426
9427 * doc/extend.texi (Floating Types): Document __ibm128 and
9428 __float128 on PowerPC.
9429
9430 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9431 -mfloat128 and -mno-float128.
9432
9433 2015-10-29 Michael Meissner <meissner@linux.vnet.ibm.com>
9434
9435 * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
9436 floating point modes that can go in vector registers.
9437 (MODES_TIEABLE_P): Move tests for vector modes before tests for
9438 scalar floating point, so that IEEE 128-bit floating point that
9439 can go in vector registers bind with vectors and not FP.
9440 (struct rs6000_args): Add libcall field.
9441
9442 * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
9443 and -mfloat128-software switches. Replace them with a binary
9444 -mfloat128 switch.
9445 (-mfloat128): Likewise.
9446
9447 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
9448 128-bit floating point types in GPRs, even if the appropriate
9449 option enabling the type was not used.
9450 (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
9451 debugging.
9452 (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
9453 pre-decrement on IEEE 128-bit floating point values.
9454 (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
9455 is IEEE 128-bit floating point.
9456 (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
9457 128-bit floating point types that can go in vector registers.
9458 (rs6000_option_override_internal): Change -mfloat128-none and
9459 -mfloat128-software to -mfloat128, and move code to be near other
9460 VSX option handling.
9461 (rs6000_option_override_internal): Disable -mfloat128 if we don't
9462 have the Altivec ABI.
9463 (rs6000_init_builtins): Don't make TFmode use either IFmode or
9464 KFmode floating point nodes. Instead, have three separate nodes.
9465 (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
9466 eventually moving the long double default to IEEE 128-bit floating
9467 point.
9468 (rs6000_opt_masks): Add -mfloat128.
9469 (struct rs6000_opt_var): Fix typo in comment.
9470 (init_cumulative_args): Initialize libcall field in
9471 CUMULATIVE_ARGS.
9472 (rs6000_function_arg): Treat library functions as if they had
9473 prototypes to prevent IEEE 128-bit support functions from passing
9474 arguments in both GPRs and vector registers.
9475 (rs6000_arg_partial_bytes): Likewise.
9476
9477 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
9478 an option that can be turned on via -mcpu=<xxx>.
9479
9480 * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
9481 longer used.
9482
9483 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9484 __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
9485 double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
9486 double is IBM extended double.
9487
9488 * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
9489 SUBREGs.
9490
9491 2015-10-29 Mikhail Maltsev <maltsevm@gmail.com>
9492
9493 * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
9494 * genconditions.c: Define CHECKING_P in the generated code.
9495 * genextract.c: Use flag_checking in insn_extract.
9496 * gengtype.c (main): Remove conditional compilation.
9497 * gengtype.h: Likewise.
9498
9499 2015-10-29 Jeff Law <law@redhat.com>
9500
9501 PR tree-optimization/67892
9502 * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
9503 in comment.
9504 (thread_through_normal_block): If we have seen a backedge, then
9505 do nothing. No longer call find_jump_threads_backwards here.
9506 (thread_across_edge): Use find_jump_threads_backwards to find
9507 jump threads if the old style threader was not successful.
9508 * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
9509 gsi_last_nondebug_bb. Return NULL if the block does not end
9510 with a control statement.
9511 (find_jump_threads_backwards): Setup code moved here from
9512 tree-ssa-threadedge.c::thread_through_normal_block. Accept
9513 single edge argument instead of name & block.
9514 * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
9515 prototype.
9516
9517 2015-10-29 Tom de Vries <tom@codesourcery.com>
9518
9519 * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
9520 types.
9521
9522 2015-10-29 Nathan Sidwell <nathan@codesourcery.com>
9523
9524 * omp-low.c (lower_omp_target): Remove unreachable code & merge
9525 ifs.
9526
9527 2015-10-29 Marc Glisse <marc.glisse@inria.fr>
9528
9529 * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
9530
9531 2015-10-29 Richard Sandiford <richard.sandiford@arm.com>
9532
9533 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
9534 guard_bb0 and use guard_bb throughout.
9535
9536 2015-10-29 Richard Sandiford <richard.sandiford@arm.com>
9537
9538 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
9539 unnecessary label.
9540
9541 2015-10-29 Richard Biener <rguenther@suse.de>
9542
9543 PR middle-end/68142
9544 * fold-const.c (extract_muldiv_1): Avoid introducing undefined
9545 overflow.
9546
9547 2015-10-29 Andrew MacLeod <amacleod@redhat.com>
9548
9549 * alias.c: Reorder #include statements and remove duplicates.
9550 * asan.c: Likewise.
9551 * attribs.c: Likewise.
9552 * auto-inc-dec.c: Likewise.
9553 * auto-profile.c: Likewise.
9554 * bb-reorder.c: Likewise.
9555 * bt-load.c: Likewise.
9556 * builtins.c: Likewise.
9557 * caller-save.c: Likewise.
9558 * calls.c: Likewise.
9559 * ccmp.c: Likewise.
9560 * cfg.c: Likewise.
9561 * cfganal.c: Likewise.
9562 * cfgbuild.c: Likewise.
9563 * cfgcleanup.c: Likewise.
9564 * cfgexpand.c: Likewise.
9565 * cfghooks.c: Likewise.
9566 * cfgloop.c: Likewise.
9567 * cfgloopanal.c: Likewise.
9568 * cfgloopmanip.c: Likewise.
9569 * cfgrtl.c: Likewise.
9570 * cgraph.c: Likewise.
9571 * cgraphbuild.c: Likewise.
9572 * cgraphclones.c: Likewise.
9573 * cgraphunit.c: Likewise.
9574 * cilk-common.c: Likewise.
9575 * combine-stack-adj.c: Likewise.
9576 * combine.c: Likewise.
9577 * compare-elim.c: Likewise.
9578 * convert.c: Likewise.
9579 * coverage.c: Likewise.
9580 * cppbuiltin.c: Likewise.
9581 * cprop.c: Likewise.
9582 * cse.c: Likewise.
9583 * cselib.c: Likewise.
9584 * data-streamer-in.c: Likewise.
9585 * data-streamer-out.c: Likewise.
9586 * data-streamer.c: Likewise.
9587 * dbxout.c: Likewise.
9588 * dce.c: Likewise.
9589 * ddg.c: Likewise.
9590 * debug.c: Likewise.
9591 * df-core.c: Likewise.
9592 * df-problems.c: Likewise.
9593 * df-scan.c: Likewise.
9594 * dfp.c: Likewise.
9595 * dojump.c: Likewise.
9596 * dominance.c: Likewise.
9597 * double-int.c: Likewise.
9598 * dse.c: Likewise.
9599 * dumpfile.c: Likewise.
9600 * dwarf2asm.c: Likewise.
9601 * dwarf2cfi.c: Likewise.
9602 * dwarf2out.c: Likewise.
9603 * emit-rtl.c: Likewise.
9604 * except.c: Likewise.
9605 * explow.c: Likewise.
9606 * expmed.c: Likewise.
9607 * expr.c: Likewise.
9608 * final.c: Likewise.
9609 * fixed-value.c: Likewise.
9610 * fold-const.c: Likewise.
9611 * function.c: Likewise.
9612 * fwprop.c: Likewise.
9613 * gcse.c: Likewise.
9614 * generic-match-head.c: Likewise.
9615 * ggc-common.c: Likewise.
9616 * gimple-builder.c: Likewise.
9617 * gimple-expr.c: Likewise.
9618 * gimple-fold.c: Likewise.
9619 * gimple-iterator.c: Likewise.
9620 * gimple-low.c: Likewise.
9621 * gimple-match-head.c: Likewise.
9622 * gimple-pretty-print.c: Likewise.
9623 * gimple-ssa-isolate-paths.c: Likewise.
9624 * gimple-ssa-strength-reduction.c: Likewise.
9625 * gimple-streamer-in.c: Likewise.
9626 * gimple-streamer-out.c: Likewise.
9627 * gimple-walk.c: Likewise.
9628 * gimple.c: Likewise.
9629 * gimplify-me.c: Likewise.
9630 * gimplify.c: Likewise.
9631 * godump.c: Likewise.
9632 * graph.c: Likewise.
9633 * graphite-poly.c: Likewise.
9634 * haifa-sched.c: Likewise.
9635 * hw-doloop.c: Likewise.
9636 * ifcvt.c: Likewise.
9637 * incpath.c: Likewise.
9638 * init-regs.c: Likewise.
9639 * internal-fn.c: Likewise.
9640 * ipa-chkp.c: Likewise.
9641 * ipa-comdats.c: Likewise.
9642 * ipa-cp.c: Likewise.
9643 * ipa-devirt.c: Likewise.
9644 * ipa-icf-gimple.c: Likewise.
9645 * ipa-icf.c: Likewise.
9646 * ipa-inline-analysis.c: Likewise.
9647 * ipa-inline-transform.c: Likewise.
9648 * ipa-inline.c: Likewise.
9649 * ipa-polymorphic-call.c: Likewise.
9650 * ipa-profile.c: Likewise.
9651 * ipa-prop.c: Likewise.
9652 * ipa-pure-const.c: Likewise.
9653 * ipa-ref.c: Likewise.
9654 * ipa-reference.c: Likewise.
9655 * ipa-split.c: Likewise.
9656 * ipa-utils.c: Likewise.
9657 * ipa-visibility.c: Likewise.
9658 * ipa.c: Likewise.
9659 * ira-build.c: Likewise.
9660 * ira-color.c: Likewise.
9661 * ira-conflicts.c: Likewise.
9662 * ira-costs.c: Likewise.
9663 * ira-emit.c: Likewise.
9664 * ira-lives.c: Likewise.
9665 * ira.c: Likewise.
9666 * jump.c: Likewise.
9667 * langhooks.c: Likewise.
9668 * lcm.c: Likewise.
9669 * lists.c: Likewise.
9670 * loop-doloop.c: Likewise.
9671 * loop-init.c: Likewise.
9672 * loop-invariant.c: Likewise.
9673 * loop-iv.c: Likewise.
9674 * loop-unroll.c: Likewise.
9675 * lower-subreg.c: Likewise.
9676 * lra-assigns.c: Likewise.
9677 * lra-coalesce.c: Likewise.
9678 * lra-constraints.c: Likewise.
9679 * lra-eliminations.c: Likewise.
9680 * lra-lives.c: Likewise.
9681 * lra-remat.c: Likewise.
9682 * lra-spills.c: Likewise.
9683 * lra.c: Likewise.
9684 * lto-cgraph.c: Likewise.
9685 * lto-compress.c: Likewise.
9686 * lto-opts.c: Likewise.
9687 * lto-section-in.c: Likewise.
9688 * lto-section-out.c: Likewise.
9689 * lto-streamer-in.c: Likewise.
9690 * lto-streamer-out.c: Likewise.
9691 * lto-streamer.c: Likewise.
9692 * mode-switching.c: Likewise.
9693 * modulo-sched.c: Likewise.
9694 * omp-low.c: Likewise.
9695 * optabs.c: Likewise.
9696 * opts-global.c: Likewise.
9697 * passes.c: Likewise.
9698 * plugin.c: Likewise.
9699 * postreload-gcse.c: Likewise.
9700 * postreload.c: Likewise.
9701 * predict.c: Likewise.
9702 * print-tree.c: Likewise.
9703 * profile.c: Likewise.
9704 * real.c: Likewise.
9705 * realmpfr.c: Likewise.
9706 * recog.c: Likewise.
9707 * ree.c: Likewise.
9708 * reg-stack.c: Likewise.
9709 * regcprop.c: Likewise.
9710 * reginfo.c: Likewise.
9711 * regrename.c: Likewise.
9712 * regstat.c: Likewise.
9713 * reload.c: Likewise.
9714 * reload1.c: Likewise.
9715 * reorg.c: Likewise.
9716 * resource.c: Likewise.
9717 * rtl-chkp.c: Likewise.
9718 * rtl-error.c: Likewise.
9719 * rtlanal.c: Likewise.
9720 * rtlhooks.c: Likewise.
9721 * sanopt.c: Likewise.
9722 * sched-deps.c: Likewise.
9723 * sched-ebb.c: Likewise.
9724 * sched-rgn.c: Likewise.
9725 * sese.c: Likewise.
9726 * shrink-wrap.c: Likewise.
9727 * simplify-rtx.c: Likewise.
9728 * stack-ptr-mod.c: Likewise.
9729 * statistics.c: Likewise.
9730 * stmt.c: Likewise.
9731 * stor-layout.c: Likewise.
9732 * store-motion.c: Likewise.
9733 * stringpool.c: Likewise.
9734 * symtab.c: Likewise.
9735 * target-globals.c: Likewise.
9736 * targhooks.c: Likewise.
9737 * toplev.c: Likewise.
9738 * tracer.c: Likewise.
9739 * trans-mem.c: Likewise.
9740 * tree-affine.c: Likewise.
9741 * tree-call-cdce.c: Likewise.
9742 * tree-cfg.c: Likewise.
9743 * tree-cfgcleanup.c: Likewise.
9744 * tree-chkp-opt.c: Likewise.
9745 * tree-chkp.c: Likewise.
9746 * tree-chrec.c: Likewise.
9747 * tree-complex.c: Likewise.
9748 * tree-data-ref.c: Likewise.
9749 * tree-dfa.c: Likewise.
9750 * tree-diagnostic.c: Likewise.
9751 * tree-dump.c: Likewise.
9752 * tree-eh.c: Likewise.
9753 * tree-emutls.c: Likewise.
9754 * tree-if-conv.c: Likewise.
9755 * tree-inline.c: Likewise.
9756 * tree-into-ssa.c: Likewise.
9757 * tree-iterator.c: Likewise.
9758 * tree-loop-distribution.c: Likewise.
9759 * tree-nested.c: Likewise.
9760 * tree-nrv.c: Likewise.
9761 * tree-object-size.c: Likewise.
9762 * tree-outof-ssa.c: Likewise.
9763 * tree-parloops.c: Likewise.
9764 * tree-phinodes.c: Likewise.
9765 * tree-predcom.c: Likewise.
9766 * tree-pretty-print.c: Likewise.
9767 * tree-profile.c: Likewise.
9768 * tree-scalar-evolution.c: Likewise.
9769 * tree-sra.c: Likewise.
9770 * tree-ssa-address.c: Likewise.
9771 * tree-ssa-alias.c: Likewise.
9772 * tree-ssa-ccp.c: Likewise.
9773 * tree-ssa-coalesce.c: Likewise.
9774 * tree-ssa-copy.c: Likewise.
9775 * tree-ssa-dce.c: Likewise.
9776 * tree-ssa-dom.c: Likewise.
9777 * tree-ssa-dse.c: Likewise.
9778 * tree-ssa-forwprop.c: Likewise.
9779 * tree-ssa-ifcombine.c: Likewise.
9780 * tree-ssa-live.c: Likewise.
9781 * tree-ssa-loop-ch.c: Likewise.
9782 * tree-ssa-loop-im.c: Likewise.
9783 * tree-ssa-loop-ivcanon.c: Likewise.
9784 * tree-ssa-loop-ivopts.c: Likewise.
9785 * tree-ssa-loop-manip.c: Likewise.
9786 * tree-ssa-loop-niter.c: Likewise.
9787 * tree-ssa-loop-prefetch.c: Likewise.
9788 * tree-ssa-loop-unswitch.c: Likewise.
9789 * tree-ssa-loop.c: Likewise.
9790 * tree-ssa-math-opts.c: Likewise.
9791 * tree-ssa-operands.c: Likewise.
9792 * tree-ssa-phiopt.c: Likewise.
9793 * tree-ssa-phiprop.c: Likewise.
9794 * tree-ssa-pre.c: Likewise.
9795 * tree-ssa-propagate.c: Likewise.
9796 * tree-ssa-reassoc.c: Likewise.
9797 * tree-ssa-sccvn.c: Likewise.
9798 * tree-ssa-scopedtables.c: Likewise.
9799 * tree-ssa-sink.c: Likewise.
9800 * tree-ssa-strlen.c: Likewise.
9801 * tree-ssa-structalias.c: Likewise.
9802 * tree-ssa-tail-merge.c: Likewise.
9803 * tree-ssa-ter.c: Likewise.
9804 * tree-ssa-threadedge.c: Likewise.
9805 * tree-ssa-threadupdate.c: Likewise.
9806 * tree-ssa-uncprop.c: Likewise.
9807 * tree-ssa-uninit.c: Likewise.
9808 * tree-ssa.c: Likewise.
9809 * tree-ssanames.c: Likewise.
9810 * tree-stdarg.c: Likewise.
9811 * tree-streamer-in.c: Likewise.
9812 * tree-streamer-out.c: Likewise.
9813 * tree-streamer.c: Likewise.
9814 * tree-switch-conversion.c: Likewise.
9815 * tree-tailcall.c: Likewise.
9816 * tree-vect-data-refs.c: Likewise.
9817 * tree-vect-generic.c: Likewise.
9818 * tree-vect-loop-manip.c: Likewise.
9819 * tree-vect-loop.c: Likewise.
9820 * tree-vect-patterns.c: Likewise.
9821 * tree-vect-slp.c: Likewise.
9822 * tree-vect-stmts.c: Likewise.
9823 * tree-vectorizer.c: Likewise.
9824 * tree-vrp.c: Likewise.
9825 * tree.c: Likewise.
9826 * tsan.c: Likewise.
9827 * ubsan.c: Likewise.
9828 * value-prof.c: Likewise.
9829 * var-tracking.c: Likewise.
9830 * varasm.c: Likewise.
9831 * varpool.c: Likewise.
9832 * vtable-verify.c: Likewise.
9833 * web.c: Likewise.
9834 * wide-int-print.cc: Likewise.
9835 * wide-int.cc: Likewise.
9836 * xcoffout.c: Likewise.
9837
9838 2015-10-29 H.J. Lu <hongjiu.lu@intel.com>
9839
9840 * Makefile.in (NO_PIE_CFLAGS): New.
9841 (NO_PIE_FLAG): Likewise.
9842 (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
9843 (NO_PIE_FLAG_FOR_BUILD): Likewise.
9844 (BUILD_NO_PIE_CFLAGS): Likewise.
9845 (BUILD_NO_PIE_FLAG): Likewise.
9846 (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
9847 (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
9848 (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
9849 $(BUILD_NO_PIE_CFLAGS).
9850 (BUILD_CXXFLAGS): Likewise.
9851 (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
9852 $(BUILD_NO_PIE_FLAG).
9853 * configure.ac (BUILD_NO_PIE_CFLAGS): New. AC_SUBST.
9854 (BUILD_NO_PIE_FLAG): Likewise.
9855 (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
9856 (NO_PIE_FLAG_FOR_BUILD): Likewise.
9857 * configure: Regenerated.
9858
9859 2015-10-29 Richard Biener <rguenther@suse.de>
9860
9861 PR middle-end/56956
9862 * fold-const.c (fold_cond_expr_with_comparison): Do not fold
9863 unsigned conditonal negation to ABS_EXPR.
9864
9865 2015-10-29 Richard Biener <rguenther@suse.de>
9866
9867 * gimple-match-head.c (gimple_simplify): Remove premature checking
9868 of builtin_decl_implicit of function calls we simplify.
9869
9870 2015-10-29 Bin Cheng <bin.cheng@arm.com>
9871
9872 * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
9873 (get_computation_cost_at): Ditto.
9874 (determine_use_iv_cost_address): Pass NULL for arguments depends_on
9875 and inv_expr_id.
9876
9877 2015-10-28 Tom de Vries <tom@codesourcery.com>
9878
9879 * tree-ssa-structalias.c (intra_create_variable_infos): Remove
9880 superfluous code.
9881
9882 2015-10-28 Jason Merrill <jason@redhat.com>
9883
9884 * Makefile.in (TAGS): Include libcpp and libiberty.
9885
9886 2015-10-28 Nathan Sidwell <nathan@codesourcery.com>
9887
9888 * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
9889 (extract_omp_for_data): Remove OpenACC special handling of
9890 chunking.
9891
9892 * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
9893 (struct parallel): Update comment.
9894 (nvptx_reorg): Likewise.
9895 (nvptx_neuter): Cleanup whitespace.
9896
9897 2015-10-28 Richard Henderson <rth@redhat.com>
9898
9899 * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
9900
9901 2015-10-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9902
9903 PR target/67839
9904 * config/avr/predicates.md (low_io_address_operand): Don't
9905 consider MODE when computing upper bound.
9906 (io_address_operand): Likewise.
9907
9908 2015-10-28 Jan Hubicka <hubicka@ucw.cz>
9909
9910 * fold-const.c (operand_equal_p): Do not verify that types are
9911 compatible for MEM_REFs.
9912
9913 2015-10-28 Richard Biener <rguenther@suse.de>
9914
9915 * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
9916 in simplifying VEC_COND_EXPR conditions.
9917
9918 2015-10-28 Tom de Vries <tom@codesourcery.com>
9919
9920 * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
9921 into vi_next of a full_var.
9922
9923 2015-10-28 Tom de Vries <tom@codesourcery.com>
9924
9925 * tree-ssa-structalias.c (new_var_info, make_heapvar)
9926 (make_constraint_from_restrict, make_constraint_from_global_restrict)
9927 (create_function_info_for, create_variable_info_for_1)
9928 (create_variable_info_for): Add and handle add_id parameter.
9929 (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
9930 (init_base_vars): Add extra argument to calls to new_var_info.
9931 (get_vi_for_tree): Add extra argument to call to
9932 create_variable_info_for.
9933 (process_constraint, do_deref, process_all_all_constraints): Add extra
9934 argument to calls to new_scalar_tmp_constraint_exp.
9935 (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
9936 argument to calls to make_heapvar.
9937 (make_restrict_var_constraints): Add extra argument to call to
9938 make_constraint_from_global_restrict.
9939 (intra_create_variable_infos): Add extra argument to call to
9940 create_variable_info_for_1.
9941 (ipa_pta_execute): Add extra argument to call to
9942 create_function_info_for.
9943
9944 2015-10-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9945
9946 * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
9947 (sibcall_value): Likewise.
9948
9949 2015-10-28 Nathan Sidwell <nathan@codesourcery.com>
9950
9951 * config/nvptx/nvptx.h (struct machine_function): Add
9952 axis_predicate.
9953 * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
9954 nvptx_expand_oacc_join): Declare.
9955 * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
9956 (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
9957 UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
9958 (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
9959 UNSPECV_JOINING, UNSPECV_JOIN): New.
9960 (BITS, BITD): New mode iterators.
9961 (br_true_uni, br_false_uni): New.
9962 (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
9963 (oacc_dim_size, oacc_dim_pos): New.
9964 (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
9965 (oacc_fork, oacc_join): New.
9966 (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
9967 (worker_load<mode>, worker_store<mode>): New.
9968 (nvptx_barsync): New.
9969 * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
9970 (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
9971 (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
9972 worker_bcast_sym): New.
9973 (nvptx_option_override): Initialize worker broadcast buffer.
9974 (nvptx_emit_forking, nvptx_emit_joining): New.
9975 (nvptx_init_axis_predicate): New.
9976 (nvptx_declare_function_name): Init axis predicates.
9977 (nvptx_expand_call): Add fork/join markers around routine call.
9978 (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
9979 (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
9980 (nvptx_gen_vcast): New.
9981 (struct wcast_data_t): New.
9982 (enum propagate_mask): New.
9983 (nvptx_gen_wcast): New.
9984 (nvptx_print_operand): Add 'S' case.
9985 (struct parallel): New.
9986 (parallel::parallel, parallel::~parallel): New.
9987 (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
9988 (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
9989 nvptx_find_par, nvptx_discover_pars): New.
9990 (nvptx_propagate): New.
9991 (vprop_gen, nvptx_vpropagate): New.
9992 (wprop_gen, nvptx_wpropagate): New.
9993 (nvptx_wsync): New.
9994 (nvptx_single, nvptx_skip_par): New.
9995 (nvptx_process_pars, nvptx_neuter_pars): New.
9996 (ntptx_reorg): Split blocks, generate parallel structure, apply
9997 neutering.
9998 (nvptx_cannot_copy_insn_p): New.
9999 (nvptx_file_end): Emit worker broadcast decl.
10000 (nvptx_goacc_fork_join): New.
10001 (TARGET_CANNOT_COPY_INSN_P): Override.
10002 (TARGET_GOACC_FORK_JOIN): Override.
10003
10004 2015-10-28 Richard Biener <rguenther@suse.de>
10005
10006 * fold-const.c (negate_expr_p): Adjust the division case to
10007 properly avoid introducing undefined overflow.
10008 (fold_negate_expr): Likewise.
10009
10010 2015-10-28 Richard Biener <rguenther@suse.de>
10011
10012 PR tree-optimization/65962
10013 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10014 Avoid creating loop carried dependences also for outer loops
10015 of the loop a use to replace is in.
10016
10017 2015-10-28 Richard Biener <rguenther@suse.de>
10018
10019 * common.opt (fchecking): New flag controlling flag_checking.
10020 * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
10021 * timevar.c (timer::print): Adjust output.
10022 * doc/invoke.texi (fchecking): Document.
10023
10024 2015-10-28 Richard Biener <rguenther@suse.de>
10025
10026 PR middle-end/68067
10027 * fold-const.c (negate_expr_p): We cannot negate plus or minus
10028 if overflow is not wrapping. Likewise multiplication unless
10029 one operand is constant and not power of two.
10030 (fold_negate_expr): Adjust accordingly.
10031
10032 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
10033
10034 * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
10035 fields.
10036 (is_oacc_parallel, is_oacc_kernels): New.
10037 (enclosing_target_ctx): May return NULL.
10038 (ctx_in_oacc_kernels_region): New.
10039 (check_oacc_kernel_gwv): New.
10040 (oacc_loop_or_target_p): Delete.
10041 (scan_omp_for): Don't calculate gwv mask. Check parallel clause
10042 operands. Strip reductions fro kernels.
10043 (scan_omp_target): Don't calculate gwv mask.
10044 (lower_oacc_head_mark, lower_oacc_loop_marker,
10045 lower_oacc_head_tail): New.
10046 (struct oacc_collapse): New.
10047 (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
10048 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
10049 Remove OpenACC handling.
10050 (expand_oacc_for): New.
10051 (expand_omp_for): Call expand_oacc_for.
10052 (lower_omp_for): Call lower_oacc_head_tail.
10053
10054 2015-10-27 Mikhail Maltsev <maltsevm@gmail.com>
10055
10056 * attribs.c (check_attribute_tables): New function, broken out from...
10057 (init_attributes): Use it.
10058 * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
10059 gcc_checking_assert and checking_* functions to eliminate
10060 ENABLE_CHECKING conditionals.
10061 * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
10062 (pass_expand::execute): Likewise.
10063 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
10064 * cgraphunit.c (mark_functions_to_output): Likewise.
10065 (cgraph_node::expand_thunk): Likewise.
10066 (symbol_table::compile): Likewise.
10067 * ddg.c (add_cross_iteration_register_deps): Likewise.
10068 (create_ddg_all_sccs): Likewise.
10069 * df-core.c (df_finish_pass, df_analyze): Likewise.
10070 * diagnostic-core.h: Likewise.
10071 * diagnostic.c (diagnostic_report_diagnostic): Likewise.
10072 * dominance.c (calculate_dominance_info): Likewise.
10073 * dwarf2out.c (add_AT_die_ref): Likewise.
10074 (const_ok_for_output_1, mem_loc_descriptor): Likewise.
10075 (loc_list_from_tree, gen_lexical_block_die): Likewise.
10076 gen_type_die_with_usage, gen_type_die): Likewise.
10077 (dwarf2out_decl): Likewise.
10078 * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
10079 * except.c (duplicate_eh_regions): Likewise.
10080 * fwprop.c (register_active_defs, update_df_init): Likewise.
10081 (fwprop_init, fwprop_done): Likewise.
10082 (update_uses): Likewise.
10083 * ggc-page.c (ggc_grow): Likewise.
10084 * gimplify.c (gimplify_body): Likewise.
10085 (gimplify_hasher::equal): Likewise.
10086 * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
10087 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
10088 Likewise.
10089 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
10090 (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
10091 * hash-table.h (::find_empty_slot_for_expand): Likewise.
10092 * ifcvt.c (if_convert): Likewise.
10093 * ipa-cp.c (ipcp_propagate_stage): Likewise.
10094 * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
10095 (odr_type_p, odr_types_equivalent_p): Likewise.
10096 (add_type_duplicate, get_odr_type): Likewise.
10097 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
10098 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
10099 (sem_item_optimizer::verify_classes): Likewise.
10100 (sem_item_optimizer::traverse_congruence_split): Likewise.
10101 (sem_item_optimizer::checking_verify_classes): New.
10102 * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
10103 method.
10104 * cfgrtl.c (commit_edge_insertions): Likewise.
10105 (fixup_reorder_chain, cfg_layout_finalize): Likewise.
10106 (rtl_flow_call_edges_add): Likewise.
10107 * cgraph.c (symbol_table::create_edge): Likewise.
10108 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
10109 * cgraph.h (symtab_node): Likewise.
10110 (symtab_node::checking_verify_symtab_nodes): Define.
10111 (cgraph_node::checking_verify_cgraph_nodes): Define.
10112 * cfghooks.h (checking_verify_flow_info): Define.
10113 * cfgloop.h (checking_verify_loop_structure): Define.
10114 * dominance.h (checking_verify_dominators): Define.
10115 * et-forest.c: Fix comment.
10116 * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
10117 CHECKING_P gcc_checking_assert and checking_* functions to eliminate
10118 ENABLE_CHECKING conditionals.
10119 * ipa-inline-transform.c (save_inline_function_body): Likewise.
10120 * ipa-inline.c (inline_small_functions): Likewise.
10121 (early_inliner): Likewise.
10122 * ipa-inline.h (estimate_edge_growth): Likewise.
10123 * ipa-visibility.c (function_and_variable_visibility): Likewise.
10124 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
10125 (ipa_single_use): Likewise.
10126 * ira-int.h: Likewise.
10127 * ira.c (ira): Likewise.
10128 * loop-doloop.c (doloop_optimize_loops): Likewise.
10129 * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
10130 * loop-invariant.c (move_loop_invariants): Likewise.
10131 * lra-assigns.c (lra_assign): Likewise.
10132 * lra-constraints.c (lra_constraints): Likewise.
10133 * lra-eliminations.c (lra_eliminate): Likewise.
10134 * lra-int.h (struct lra_reg): Likewise.
10135 * lra-lives.c (check_pseudos_live_through_calls): Likewise.
10136 (lra_create_live_ranges_1): Likewise.
10137 * lra-remat.c (create_remat_bb_data): Likewise.
10138 * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
10139 (lra): Likewise.
10140 (check_rtl): Always define. Remove incorrect guard around
10141 extract_constrain_insn call.
10142 * lto-cgraph.c (input_cgraph_1: Use flag_checking,
10143 CHECKING_P gcc_checking_assert and checking_* functions to eliminate
10144 ENABLE_CHECKING conditionals.
10145 * lto-streamer-out.c (DFS::DFS): Likewise.
10146 (lto_output): Likewise.
10147 * lto-streamer.c (lto_streamer_init): Likewise.
10148 * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
10149 expand_omp_target, execute_expand_omp): Likewise.
10150 (lower_omp_target): Likewise.
10151 * passes.c (execute_function_todo): Likewise.
10152 (execute_todo, execute_one_pass): Likewise.
10153 (verify_curr_properties): Always define.
10154 * predict.c (tree_estimate_probability: Use flag_checking,
10155 CHECKING_P gcc_checking_assert and checking_* functions to eliminate
10156 ENABLE_CHECKING conditionals.
10157 (propagate_freq): Likewise.
10158 * pretty-print.c (pp_format): Likewise.
10159 * real.c (real_to_decimal_for_mode): Likewise.
10160 * recog.c (split_all_insns): Likewise.
10161 * regcprop.c (kill_value_one_regno): Likewise.
10162 (copy_value): Likewise.
10163 (validate_value_data): Define unconditionally.
10164 * reload.c: Fix comment.
10165 * timevar.c: Include options.h
10166 * tree-ssa.h (checking_verify_ssa): Define.
10167 * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
10168 * sched-deps.c (CHECK): Remove unused macro.
10169 (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
10170 gcc_checking_assert and checking_* functions to eliminate
10171 ENABLE_CHECKING conditionals.
10172 * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
10173 * sel-sched.c (struct moveop_static_params): Likewise.
10174 (find_best_reg_for_expr, move_cond_jump): Likewise.
10175 (move_op_orig_expr_not_found): Likewise.
10176 (code_motion_process_successors, move_op): Likewise.
10177 * ssa-iterators.h (first_readonly_imm_use): Likewise.
10178 (next_readonly_imm_use): Likewise.
10179 * store-motion.c (compute_store_table): Likewise.
10180 * symbol-summary.h (function_summary::function_summary): Likewise.
10181 * target.h (cumulative_args_t): Likewise.
10182 (get_cumulative_args, pack_cumulative_args): Likewise.
10183 * timevar.c: (timer::print): Likewise.
10184 * trans-mem.c (ipa_tm_execute): Likewise.
10185 * tree-cfg.c (move_stmt_op): Likewise.
10186 (move_sese_region_to_fn): Likewise.
10187 (gimple_flow_call_edges_add): Likewise.
10188 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
10189 Likewise.
10190 * tree-eh.c (remove_unreachable_handlers): Likewise.
10191 * tree-if-conv.c (pass_if_conversion::execute): Likewise.
10192 * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
10193 * tree-into-ssa.c (update_ssa): Likewise.
10194 * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
10195 * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
10196 * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
10197 * tree-predcom.c (suitable_component_p): Likewise.
10198 * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
10199 * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
10200 * tree-ssa-live.c (verify_live_on_entry): Likewise.
10201 * tree-ssa-live.h (register_ssa_partition): Likewise.
10202 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
10203 * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
10204 (tree_transform_and_unroll_loop): Likewise.
10205 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
10206 * tree-ssa-operands.c (get_expr_operands): Likewise.
10207 * tree-ssa-propagate.c (replace_exp_1): Likewise.
10208 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
10209 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
10210 * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
10211 * tree-ssanames.c (release_ssa_name_fn): Likewise.
10212 * tree-stdarg.c (expand_ifn_va_arg): Likewise.
10213 * tree-vect-loop-manip.c
10214 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
10215 (slpeel_checking_verify_cfg_after_peeling): Likewise.
10216 (vect_do_peeling_for_loop_bound): Likewise.
10217 (vect_do_peeling_for_alignment): Likewise.
10218 * tree-vrp.c (supports_overflow_infinity): Likewise.
10219 (set_value_range): Likewise.
10220 * tree.c (free_lang_data_in_cgraph): Likewise.
10221 * value-prof.c (gimple_remove_histogram_value): Likewise.
10222 (free_hist): Likewise.
10223 * var-tracking.c (canonicalize_values_star): Likewise.
10224 (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
10225
10226 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
10227
10228 * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
10229 IFN_GOACC_LOOP): New.
10230 * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
10231 IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
10232 IFN_UNIQUE_OACC_TAIL_MARK.
10233 (enum ifn_goacc_loop_kind): New.
10234 * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
10235 IFN_UNIQUE_OACC_JOIN cases.
10236 (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
10237 (expand_GOACC_LOOP): New.
10238 * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
10239 * omp-low.c: Include gimple-pretty-print.h.
10240 (struct oacc_loop): New.
10241 (enum oacc_loop_flags): New.
10242 (oacc_thread_numbers): New.
10243 (oacc_xform_loop): New.
10244 (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
10245 new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
10246 (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
10247 (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
10248 oacc_loop_discovery): New.
10249 (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
10250 oacc_loop_process): New.
10251 (oacc_loop_fixed_partitions, oacc_loop_partition): New.
10252 (execute_oacc_device_lower): Discover & process loops. Process
10253 internal fns.
10254 * target.def (goacc.fork_join): Change sense of hook, clarify
10255 documentation.
10256 * doc/tm.texi: Regenerated.
10257
10258 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
10259
10260 * target-insns.def (oacc_fork, oacc_join): Define.
10261 * target.def (goacc.validate_dims): Adjust doc to avoid warning.
10262 (goacc.fork_join): New GOACC hook.
10263 * targhooks.h (default_goacc_fork_join): Declare.
10264 * omp-low.c (default_goacc_forkjoin): New.
10265 * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
10266 * doc/tm.texi: Regenerate.
10267
10268 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
10269
10270 * omp-low.c (oacc_init_rediction_array): New.
10271 (oacc_initialize_reduction_data): Initialize array.
10272
10273 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
10274
10275 * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
10276
10277 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
10278
10279 * internal-fn.c (expand_UNIQUE): New.
10280 * internal-fn.h (enum ifn_unique_kind): New.
10281 * internal-fn.def (IFN_UNIQUE): New.
10282 * target-insns.def (unique): Define.
10283 * gimple.h (gimple_call_internal_unique_p): New.
10284 * gimple.c (gimple_call_same_target_p): Check internal fn
10285 uniqueness.
10286 * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
10287 * tree-ssa-threadedge.c
10288 (record_temporary_equivalences_from_stmts): Likewise.
10289 * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
10290
10291 2015-10-27 Richard Henderson <rth@redhat.com>
10292
10293 PR rtl-opt/67609
10294 * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
10295 narrowing subregs on SSE and MMX registers.
10296 * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
10297 appear to be sub-words of multi-register pseudos must be rejected.
10298 * doc/tm.texi: Regenerate.
10299
10300 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10301
10302 PR target/68102
10303 * config/aarch64/aarch64.md (*movsi_aarch64): Check that
10304 operands[0] is a reg before taking its REGNO in split condition.
10305 (*movdi_aarch64): Likewise.
10306
10307 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10308
10309 * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
10310 Handle floating point inner modes properly.
10311
10312 2015-10-27 Alan Hayward <alan.hayward@arm.com>
10313
10314 * tree-vect-looop.c
10315 (vectorizable_live_operation): Change iterator.
10316
10317 2015-10-27 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10318 Aditya Kumar <aditya.k7@samsung.com>
10319
10320 * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
10321 function to schedule based on isl_schedule_node.
10322 (get_schedule_map_st): New schedule optimizer based on
10323 isl_schedule_node.
10324 (scop_get_domains): New. Return the isl_union_set containing the
10325 domains of all the pbbs.
10326 (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
10327
10328 2015-10-27 H.J. Lu <hongjiu.lu@intel.com>
10329
10330 PR target/67215
10331 * calls.c (prepare_call_address): Don't handle -fno-plt here.
10332 * config/i386/i386.c (ix86_expand_call): Generate indirect call
10333 via GOT for -fno-plt. Support indirect call via GOT for x32.
10334 * config/i386/predicates.md (sibcall_memory_operand): Allow
10335 GOT memory operand.
10336
10337 2015-10-27 Richard Biener <rguenther@suse.de>
10338
10339 PR tree-optimization/68104
10340 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
10341 strided access check ...
10342 (vect_compute_data_refs_alignment): ... here.
10343
10344 2015-10-27 Daniel Jacobowitz <dan@codesourcery.com>
10345 Joseph Myers <joseph@codesourcery.com>
10346 Mark Shinwell <shinwell@codesourcery.com>
10347 Andrew Stubbs <ams@codesourcery.com>
10348 Rich Felker <dalias@libc.org>
10349
10350 * config.gcc: Handle --enable-fdpic.
10351 * config/sh/constraints.md (Ccl): New constraint.
10352 * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
10353 * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
10354 __SH_FDPIC__.
10355 * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
10356 library functions.
10357 * config/sh/sh-protos.h (function_symbol_result): New struct.
10358 (function_symbol): Return function_symbol_result.
10359 (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
10360 declarations.
10361 * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
10362 target hook.
10363 (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
10364 (sh_option_override): Force -fPIC if FDPIC is in effect.
10365 (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
10366 UNSPEC_GOTOFFFUNCDESC cases.
10367 (prepare_move_operands): Use FDPIC initial GOT register for
10368 TLS-related GOT access; inhibit cross-section address offset constants
10369 for FDPIC.
10370 (sh_assemble_integer): New function.
10371 (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
10372 PC-relative call sites.
10373 (expand_ashiftrt): Adapt invocation of function_symbol.
10374 (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
10375 (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
10376 UNSPEC_GOTOFFFUNCDESC.
10377 (legitimize_pic_address): Resolve function symbols to function
10378 descriptors for FDPIC. Do not use GOT-relative addressing for local
10379 data that may be read-only on FDPIC.
10380 (sh_emit_storesi, sh_emit_storehi): New functions.
10381 (sh_trampoline_init): Generate FDPIC trampolines.
10382 (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
10383 (sh_expand_sym_label2reg): Don't assume sibcalls are local.
10384 (sh_output_mi_thunk): Generate FDPIC call.
10385 (function_symbol): Return function_symbol_result. For SFUNC_STATIC on
10386 FDPIC, generate call site labels to use PC-relative addressing rather
10387 than GOT-relative addressing.
10388 (sh_conditional_register_usage): Make PIC register fixed and call used
10389 when FDPIC is in effect.
10390 (sh_legitimate_constant_p): Impose FDPIC constant constraints.
10391 (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
10392 sh_get_fdpic_reg_initial_val): New functions.
10393 * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
10394 Handle -mfdpic.
10395 (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
10396 PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
10397 SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
10398 (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
10399 FDPIC_SELF_SPECS.
10400 (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
10401 (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
10402 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
10403 * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
10404 constants.
10405 (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
10406 sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
10407 sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
10408 sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
10409 (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
10410 *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
10411 ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
10412 call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
10413 sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
10414 sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
10415 block_move_real, block_lump_real, block_move_real_i4,
10416 block_lump_real_i4): Add support for FDPIC calls.
10417 (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
10418 call_value_pop): Adjust for new function_symbol signature.
10419 * config/sh/sh.opt (-mfdpic): New option.
10420 * doc/install.texi (Options specification): Document --enable-fdpic.
10421 * doc/invoke.texi (SH Options): Document -mfdpic.
10422
10423
10424 2015-10-27 Alan Lawrence <alan.lawrence@arm.com>
10425
10426 PR tree-optimization/65963
10427 * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
10428 LSHIFT_EXPRs as equivalent MULT_EXPRs.
10429
10430 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10431
10432 PR target/67929
10433 * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
10434 * config/arm/constraints.md (Dp): Update callsite.
10435 * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
10436
10437 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10438
10439 * builtins.c (fold_builtin_load_exponent): Rename to...
10440 (fold_const_builtin_load_exponent): ...this and only handle
10441 constant arguments.
10442 (fold_builtin_2): Update accordingly.
10443 * match.pd: Add rules previously handled by fold_builtin_load_exponent.
10444
10445 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10446
10447 * builtins.c (fold_builtin_logb): Rename to...
10448 (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
10449 (fold_builtin_significand): Rename to...
10450 (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
10451 (fold_builtin_1): Update accordingly.
10452
10453 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10454
10455 * builtins.c (fold_builtin_fmin_fmax): Delete.
10456 (fold_builtin_2): Handle constant fmin and fmax arguments here.
10457 * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
10458
10459 2015-10-27 Evandro Menezes <e.menezes@samsung.com>
10460
10461 * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
10462 for register extension into sign and zero register extension.
10463 * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
10464 for sign and zero register extension.
10465 (cortexa57_addrcost_table): Likewise.
10466 (xgene1_addrcost_table): Likewise.
10467
10468 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10469
10470 * fold-const.c (fold_minmax): Delete.
10471 (fold_binary_loc): Don't call it.
10472 * match.pd: Add rules previously handled by fold_minmax.
10473
10474 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10475
10476 * builtins.c (fold_builtin_fma): Remove constant handling.
10477 (fold_builtin_3): Handle constant fma arguments here.
10478
10479 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10480
10481 * builtins.c (fold_builtin_fabs): Remove constant handling.
10482 (fold_builtin_abs): Likewise.
10483
10484 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10485
10486 * builtins.c (fold_builtin_copysign): Delete.
10487 (fold_builtin_2): Handle constant copysign arguments here.
10488 * match.pd: Add rules previously handled by fold_builtin_copysign.
10489
10490 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10491
10492 * builtins.c (fold_builtin_signbit): Delete.
10493 (fold_builtin_2): Handle constant signbit arguments here.
10494 * match.pd: Add rules previously handled by fold_builtin_signbit.
10495
10496 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10497
10498 * match.pd: Handle sqrt(x) cmp 0 specially.
10499
10500 2015-10-27 Ilya Enkovich <enkovich.gnu@gmail.com>
10501
10502 * tree-vect-generic.c (expand_vector_operations_1): Check
10503 optab type before using it.
10504
10505 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10506
10507 * config/aarch64/aarch64-protos.h
10508 (struct tune_params): Add autoprefetcher_model field.
10509 * config/aarch64/aarch64.c: Include params.h
10510 (generic_tunings): Specify autoprefetcher_model value.
10511 (cortexa53_tunings): Likewise.
10512 (cortexa57_tunings): Likewise.
10513 (cortexa72_tunings): Likewise.
10514 (thunderx_tunings): Likewise.
10515 (xgene1_tunings): Likewise.
10516 (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
10517 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
10518 (aarch64_override_options_internal): Set
10519 PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
10520
10521 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10522
10523 * builtins.c (fold_builtin_exponent): Delete.
10524 (fold_builtin_2): Handle constant expN arguments here.
10525 * match.pd: Fold expN(logN(x)) -> x.
10526
10527 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10528
10529 * builtins.c (fold_builtin_powi): Delete.
10530 (fold_builtin_2): Handle constant powi arguments here.
10531 * match.pd: Add rules previously handled by fold_builtin_powi.
10532
10533 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10534
10535 * builtins.c (fold_builtin_pow): Delete in favor of...
10536 (fold_const_builtin_pow): ...this new function. Only handle constant
10537 arguments.
10538 (fold_builtin_2): Update accordingly.
10539 * match.pd: Add rules previously handled by fold_builtin_pow.
10540
10541 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10542
10543 * builtins.c (fold_builtin_hypot): Delete.
10544 (fold_builtin_2): Handle constant hypot arguments here.
10545 * match.pd: Fold hypot(x, 0) and hypot(0, x) to x. Canonicalize
10546 hypot(x, x) to fabs(x)*sqrt(2).
10547
10548 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
10549
10550 * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
10551 instead of make_ssa_name if not yet in SSA form.
10552
10553 2015-10-27 Richard Biener <rguenther@suse.de>
10554
10555 * cfg.c (free_edge): Add function argument and use it instead of cfun.
10556 (clear_edges): Likewise.
10557 * cfg.h (clear_edges): Adjust prototype.
10558 * cfgexpand.c (pass_expand::execute): Adjust.
10559 * cfgloop.c (release_recorded_exits): Add function argument and use
10560 it instead of cfun.
10561 * cfgloop.h (release_recorded_exits): Adjust prototype.
10562 (loops_state_satisfies_p): Add overload with function argument.
10563 (loops_state_set): Likewise.
10564 (loops_state_clear): Likewise.
10565 (struct loop_iterator): Add function argument to constructor
10566 and iterator and use it instead of cfun.
10567 (FOR_EACH_LOOP_FN): New macro.
10568 (loop_optimizer_finalize): Add overload with function argument.
10569 * loop-init.c (loop_optimizer_init): Adjust.
10570 (fix_loop_structure): Likewise.
10571 (loop_optimizer_finaliz): Add function argument and use it
10572 instead of cfun.
10573 * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
10574 * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
10575 * cgraph.c (release_function_body): Do not push/pop cfun.
10576 * final.c (rest_of_clean_state): Adjust.
10577 * graphite.c (graphite_finalize): Likewise.
10578 * tree-ssa-copy.c (fini_copy_prop): Likewise.
10579 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
10580 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
10581 (tree_unroll_loops_completely): Likewise.
10582 (pass_complete_unrolli::execute): Likewise.
10583 * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
10584 Add function argument and use it instead of cfun.
10585 * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
10586 Adjust prototype.
10587 * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
10588 * tree-ssa.c (delete_tree_ssa): Add function argument and use it
10589 instead of cfun.
10590 * tree-ssa.h (delete_tree_ssa): Adjust prototype.
10591 * tree-ssanames.c (fini_ssanames): Add function argument and use it
10592 instead of cfun.
10593 * tree-ssanames.c (fini_ssanames): Adjust prototype.
10594 * tree-vrp.c (execute_vrp): Adjust.
10595 * value-prof.c (free_histograms): Add function argument and use it
10596 instead of cfun.
10597 * value-prof.h (free_histograms): Adjust prototype.
10598
10599 2015-10-27 Thomas Schwinge <thomas@codesourcery.com>
10600
10601 * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
10602 (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
10603 (OACC_PARALLEL_COMBINED): Don't define macros. Adjust all users.
10604
10605 2015-10-27 Tom de Vries <tom@codesourcery.com>
10606
10607 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
10608 field_type.
10609
10610 2015-10-27 Bin Cheng <bin.cheng@arm.com>
10611
10612 * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
10613 (inv_can_prop_to_addr_use): New function.
10614 (record_use): Call can_prop_to_addr_uses, set the new field.
10615 (get_inv_cost): Count cost if inv can't be propagated into its
10616 address uses.
10617
10618 2015-10-26 Doug Evans <dje@google.com>
10619
10620 * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
10621
10622 2015-10-26 Eric Botcazou <ebotcazou@adacore.com>
10623
10624 * match.pd (fold_widened_comparison): Apply simplifications to all
10625 integral types.
10626
10627 2015-10-26 Simon Dardis <simon.dardis@imgtec.com>
10628
10629 * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
10630 * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
10631 * doc/tm.texi: Regenerated.
10632 * reorg.c (dbr_schedule): Use new hook.
10633 * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
10634
10635 2015-10-26 Jeff Law <law@redhat.com>
10636
10637 PR tree-optimization/68013
10638 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10639 Make sure the first block in the path is in VISITED_BBs.
10640
10641 2015-10-26 Richard Biener <rguenther@suse.de>
10642 Dominik Vogt <vogt@linux.vnet.ibm.com>
10643
10644 PR middle-end/67443
10645 * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
10646 Properly prune ref->ref for accesses outside of ref.
10647
10648 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
10649
10650 * gimple-fold.c (replace_stmt_with_simplification): Don't allow
10651 new statements to be inserted if inplace. Allow calls to have
10652 nonempty sequences.
10653
10654 2015-10-26 Richard Biener <rguenther@suse.de>
10655
10656 * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
10657 (do_valueize): New function.
10658 (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
10659 replace_uses_by.
10660 * tree-ssa-threadedge.c: Remove builtins.h include, include
10661 gimple-fold.h
10662 (fold_assignment_stmt): Remove.
10663 (threadedge_valueize): New function.
10664 (record_temporary_equivalences_from_stmts): Use
10665 gimple_fold_stmt_to_constant_1, note additional cleanup
10666 opportunities.
10667
10668 2015-10-26 Richard Biener <rguenther@suse.de>
10669
10670 * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
10671 ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
10672
10673 2015-10-26 Alan Hayward <alan.hayward@arm.com>
10674
10675 * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
10676 VEC_COND_EXPR types.
10677
10678 2015-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10679
10680 * auto-inc-dec.c (insert_move_insn_before): Delete.
10681 (attempt_change): Remember to cost the simple move in the
10682 FORM_PRE_ADD and FORM_POST_ADD cases.
10683
10684 2015-10-26 Kaz Kojima <kkojima@gcc.gnu.org>
10685
10686 PR target/68091
10687 * config/sh/sh.c (sh_vector_mode_supported_p): Use
10688 TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
10689
10690 2015-10-26 Tom de Vries <tom@codesourcery.com>
10691
10692 * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
10693 factored out of ...
10694 (intra_create_variable_infos): ... here.
10695
10696 2015-10-26 Tom de Vries <tom@codesourcery.com>
10697
10698 * tree-ssa-structalias.c (intra_create_variable_infos): Add
10699 restrict_pointer_p and recursive_restrict_p variables.
10700
10701 2015-10-26 Tom de Vries <tom@codesourcery.com>
10702
10703 * tree-ssa-structalias.c (intra_create_variable_infos): Inline
10704 get_vi_for_tree call.
10705
10706 2015-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10707
10708 PR middle-end/67989
10709 * optabs.c (expand_atomic_compare_and_swap): Handle case when
10710 ptarget_oval or ptarget_bool are const0_rtx.
10711
10712 2015-10-26 Christian Bruel <christian.bruel@st.com>
10713
10714 * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
10715 * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
10716 * cp/method.c (implicitly_declare_fn): Likewise.
10717 * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
10718 * java/class.c (add_method_1): Likewise.
10719
10720 2015-10-26 Richard Biener <rguenther@suse.de>
10721
10722 * alloc-pool.h (base_pool_allocator): Use placement new.
10723 (base_pool_allocator::remove): Likewise. Compute size outside of
10724 flag_checking.
10725
10726 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
10727
10728 * builtins.c (do_real_to_int_conversion): New function.
10729 (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
10730 (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
10731 arguments here.
10732 * match.pd: Add rules previously handled by fold_fixed_mathfn
10733 and fold_builtin_int_roundingfn.
10734
10735 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
10736
10737 * match.pd: Use macros to define built-in operator lists.
10738
10739 2015-10-20 Richard Sandiford <richard.sandiford@arm.com>
10740 Richard Biener <rguenther@suse.de>
10741
10742 * genmatch.c (dt_simplify::gen): Skip captures that are
10743 part of the result.
10744 (parser::parse_expr): Allow captures in results too.
10745 * builtins.c (fold_builtin_cexp): Delete.
10746 (fold_builtin_1): Handle constant cexp arguments here.
10747 * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
10748
10749 2015-10-26 Mikhail Maltsev <maltsevm@gmail.com>
10750
10751 * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
10752 conditional compilation.
10753 (base_pool_allocator::remove): Use flag_checking.
10754
10755 2015-10-25 John David Anglin <danglin@gcc.gnu.org>
10756
10757 * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
10758
10759 PR middle-end/68079
10760 * dojump.c (do_compare_and_jump): Canonicalize both function and
10761 method types.
10762
10763 2015-10-25 Uros Bizjak <ubizjak@gmail.com>
10764
10765 PR target/68084
10766 * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
10767 for =@ccae.
10768
10769 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
10770
10771 PR ipa/pr67600
10772 * ipa-polymorphic-call.c
10773 (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
10774 instance offset with offset of outer type.
10775
10776 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
10777
10778 * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
10779
10780 2015-10-23 Caroline Tice <cmtice@google.com>
10781
10782 (from Richard Biener
10783 * tree.c (int_cst_hasher::hash): Replace XOR with more efficient
10784 call to iterative_hash_host_wide_int.
10785
10786 2015-10-23 David Edelsohn <dje.gcc@gmail.com>
10787
10788 * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
10789 Define as yes.
10790
10791 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
10792
10793 * tree-vect-generic.c (expand_vector_operations_1): Check
10794 optab exists before use it.
10795
10796 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
10797
10798 * tree-vect-generic.c (expand_vector_condition): Avoid
10799 uninitialized variable warning.
10800
10801 2015-10-23 Jeff Law <law@redhat.com>
10802
10803 * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
10804 here. Instead...
10805 (execute_todo): Call it here.
10806 * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
10807 statistics
10808 (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
10809
10810 2015-10-23 Gregor Richards <gregor.richards@uwaterloo.ca>
10811 Szabolcs Nagy <szabolcs.nagy@arm.com>
10812
10813 * config.gcc (enable_secureplt): Add *-linux*-musl*.
10814
10815 2015-10-23 Jeff Law <law@redhat.com>
10816
10817 PR tree-optimization/67830
10818 * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
10819 Explicitly verify the mask has no bits outside the type of
10820 the innermost operands.
10821
10822 2015-10-23 Gregor Richards <gregor.richards@uwaterloo.ca>
10823 Szabolcs Nagy <szabolcs.nagy@arm.com>
10824
10825 * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
10826 (MUSL_DYNAMIC_LINKER64): Define.
10827 (GNU_USER_DYNAMIC_LINKER32): Update.
10828 (GNU_USER_DYNAMIC_LINKER64): Update.
10829 (CHOOSE_DYNAMIC_LINKER): Update.
10830
10831 * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
10832 (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
10833 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
10834 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
10835 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
10836 (CHOOSE_DYNAMIC_LINKER): Update.
10837 (INCLUDE_DEFAULTS): Redefine.
10838
10839 * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
10840
10841 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
10842
10843 * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
10844 comparing addresses.
10845
10846 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
10847
10848 * fold-const.c (operand_equal_p): Handle matching of vector
10849 constructors.
10850
10851 2015-10-23 David Edelsohn <dje.gcc@gmail.com>
10852
10853 * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
10854
10855 2015-10-23 Steve Ellcey <sellcey@imgtec.com>
10856 Andrew Pinski <apinski@cavium.com>
10857
10858 PR rtl-optimization/67736
10859 * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
10860 of gen_lowpart.
10861
10862 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
10863
10864 PR middle-end/68066
10865 * tree.c (build_truth_vector_type): Support BLK mode
10866 returned for boolean vector.
10867
10868 2015-10-23 Alan Hayward <alan.hayward@arm.com>
10869
10870 PR tree-optimization/65947
10871 * tree-vect-loop.c
10872 (vect_is_simple_reduction_1): Find condition reductions.
10873 (vect_model_reduction_cost): Add condition reduction costs.
10874 (get_initial_def_for_reduction): Add condition reduction initial var.
10875 (vect_create_epilog_for_reduction): Add condition reduction epilog.
10876 (vectorizable_reduction): Condition reduction support.
10877 * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
10878 * doc/sourcebuild.texi (Vector-specific attributes): Document
10879 vect_max_reduc
10880
10881 2015-10-23 Richard Biener <rguenther@suse.de>
10882
10883 * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
10884 and builtins.def.
10885
10886 2015-10-23 Richard Biener <rguenther@suse.de>
10887 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
10888
10889 * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
10890 into (A ^ B) - B to match.pd
10891 Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
10892
10893 * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
10894 New simplifier.
10895 (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
10896 New simplifier.
10897 (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
10898 New simplifier.
10899 (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
10900 New simplifier.
10901 (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
10902 INTEGER_CST@1)): New simplifier.
10903
10904 2015-10-23 Richard Sandiford <richard.sandiford@arm.com>
10905
10906 * builtins.c (integer_valued_real_p): Move to fold-const.c.
10907 (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
10908 (fold_builtin_ceil, fold_builtin_round): Delete.
10909 (fold_builtin_1): Handle constant trunc, floor, ceil and round
10910 arguments here.
10911 * convert.c (convert_to_real): Remove narrowing of rounding
10912 functions.
10913 * fold-const.h (integer_valued_real_unary_p)
10914 (integer_valued_real_binary_p, integer_valued_real_call_p)
10915 (integer_valued_real_single_p, integer_valued_real_p): Declare.
10916 * fold-const.c (tree_single_nonnegative_warnv_p): Move
10917 name_registered_for_update_p check to SSA_NAME case statement.
10918 Don't call tree_simple_nonnegative_warnv_p for SSA names.
10919 (integer_valued_real_unary_p, integer_valued_real_binary_p)
10920 (integer_valued_real_call_p, integer_valued_real_single_p)
10921 (integer_valued_real_invalid_p): New functions.
10922 (integer_valued_real_p): Move from fold-const.c and rework
10923 to call the functions above. Handle SSA names.
10924 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
10925 * gimple-fold.c (gimple_assign_integer_valued_real_p)
10926 (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
10927 (gimple_stmt_integer_valued_real_p): New functions.
10928 * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
10929 Fold f(x)->x for the same f if x is known to be integer-valued.
10930 Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
10931 the result. Canonicalize floor(x) as trunc(x) if x is
10932 nonnegative.
10933
10934 2015-10-23 Tom de Vries <tom@codesourcery.com>
10935
10936 * tree-ssa-structalias.c (intra_create_variable_infos): Use
10937 make_constraint_from.
10938
10939 2015-10-23 Tom de Vries <tom@codesourcery.com>
10940
10941 * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
10942 setting of is_full_var in case of a single field.
10943
10944 2015-10-22 Martin Sebor <msebor@redhat.com>
10945
10946 PR driver/68043
10947 * config/i386/i386.opt: Add missing periods to the ends of sentences.
10948 * config/msp430/msp430.opt: Same.
10949
10950 2015-10-21 David Wohlferd <dw@LimeGreenSocks.com>
10951
10952 * doc/extend.exp (Global Register Variables): Rewrite.
10953
10954 2015-10-22 Jeff Law <law@redhat.com>
10955
10956 * genattrtab.c (main): If we do not have any annul-true or annul-false
10957 slots, then write out a dummy eligible_for_annul_true or
10958 eligible_for_annul_false as needed.
10959
10960 2015-10-22 Nick Clifton <nickc@redhat.com>
10961
10962 * config/msp430/msp430.opt: Add -msilicon-errata and
10963 -msilicon-errata-warn.
10964 * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
10965 assembler.
10966 * doc/invoke.texi: Document new options.
10967
10968 2015-10-22 Richard Biener <rguenther@suse.de>
10969
10970 PR tree-optimization/58497
10971 * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
10972 (expand_vector_operations_1): Use it. Lower operations on
10973 all uniform vectors to scalar operations if the HW supports it.
10974
10975 2015-10-22 Richard Biener <rguenther@suse.de>
10976
10977 PR tree-optimization/19049
10978 PR tree-optimization/65962
10979 * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
10980 to strided accesses if single-element interleaving doesn't work.
10981
10982 2015-10-22 Richard Biener <rguenther@suse.de>
10983
10984 PR middle-end/68046
10985 PR middle-end/61893
10986 * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
10987 (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
10988 (expand_unop): Likewise.
10989
10990 2015-10-22 Richard Biener <rguenther@suse.de>
10991
10992 * fold-const.c (fold_addr_of_array_ref_difference): Properly
10993 convert operands before folding a MINUS_EXPR.
10994 (fold_binary_loc): Move simplification of MINUS_EXPR on
10995 converted POINTER_PLUS_EXPRs ...
10996 * match.pd: ... here.
10997
10998 2015-10-22 Richard Sandiford <richard.sandiford@arm.com>
10999
11000 * builtins.c (fold_builtin_tan): Delete.
11001 (fold_builtin_1): Handle constant tan arguments here.
11002 * match.pd: Simplify (tan (atan x)) to x.
11003
11004 2015-10-22 Richard Sandiford <richard.sandiford@arm.com>
11005
11006 * builtins.c (fold_builtin_cproj): Delete.
11007 (fold_builtin_1): Handle constant arguments here.
11008 (build_complex_cproj): Move and rename to...
11009 * tree.c: (build_complex_inf): ...this.
11010 * tree.h (build_complex_inf): Declare.
11011 * match.pd: Fold cproj(x)->x if x has no infinity.
11012 Use build_complex_inf for existing cproj rules.
11013
11014 2015-10-22 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11015
11016 PR target/68015
11017 * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
11018 already have a comparison result.
11019
11020 2015-10-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11021
11022 PR target/63304
11023 * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
11024 (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
11025 (aarch64_classify_address): Likewise.
11026 (aarch64_secondary_reload): Likewise.
11027 (aarch64_override_options_after_change_1): Adjust.
11028 * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
11029 Use aarch64_nopcrelative_literal_loads.
11030 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
11031 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
11032 Declare.
11033
11034 2015-10-21 Martin Sebor <msebor@redhat.com>
11035
11036 PR driver/68043
11037 * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
11038 (print_filtered_help): Reference aliased option's name and encourage
11039 readers to use it in preference to the alias if the former is not
11040 documented. Mention when using an option is diagnosed.
11041 * gcc.c (display_help): End each sentence with a period.
11042
11043 * common.opt: End each sentence that describes an option with
11044 a period.
11045 * config/aarch64/aarch64.opt: Same.
11046 * config/alpha/alpha.opt: Same.
11047 * config/arc/arc.opt: Same.
11048 * config/arm/arm.opt: Same.
11049 * config/avr/avr.opt: Same.
11050 * config/bfin/bfin.opt: Same.
11051 * config/c6x/c6x.opt: Same.
11052 * config/cr16/cr16.opt: Same.
11053 * config/cris/cris.opt: Same.
11054 * config/cris/linux.opt: Same.
11055 * config/darwin.opt: Same.
11056 * config/epiphany/epiphany.opt: Same.
11057 * config/fr30/fr30.opt: Same.
11058 * config/frv/frv.opt: Same.
11059 * config/ft32/ft32.opt: Same.
11060 * config/g.opt: Same.
11061 * config/h8300/h8300.opt: Same.
11062 * config/i386/cygming.opt: Same.
11063 * config/i386/djgpp.opt: Same.
11064 * config/i386/i386.opt: Same.
11065 * config/i386/interix.opt: Same.
11066 * config/i386/mingw-w64.opt: Same.
11067 * config/i386/mingw.opt: Same.
11068 * config/ia64/ia64.opt: Same.
11069 * config/ia64/ilp32.opt: Same.
11070 * config/iq2000/iq2000.opt: Same.
11071 * config/linux.opt: Same.
11072 * config/lm32/lm32.opt: Same.
11073 * config/lynx.opt: Same.
11074 * config/m32c/m32c.opt: Same.
11075 * config/m32r/m32r.opt: Same.
11076 * config/m68k/ieee.opt: Same.
11077 * config/m68k/m68k.opt: Same.
11078 * config/mcore/mcore.opt: Same.
11079 * config/mep/mep.opt: Same.
11080 * config/microblaze/microblaze.opt: Same.
11081 * config/mips/mips.opt: Same.
11082 * config/mmix/mmix.opt: Same.
11083 * config/mn10300/mn10300.opt: Same.
11084 * config/moxie/moxie.opt: Same.
11085 * config/msp430/msp430.opt: Same.
11086 * config/nios2/elf.opt: Same.
11087 * config/nios2/nios2.opt: Same.
11088 * config/nvptx/nvptx.opt: Same.
11089 * config/pa/pa-hpux.opt: Same.
11090 * config/pa/pa-hpux1010.opt: Same.
11091 * config/pa/pa-hpux1111.opt: Same.
11092 * config/pa/pa-hpux1131.opt: Same.
11093 * config/pa/pa.opt: Same.
11094 * config/pa/pa64-hpux.opt: Same.
11095 * config/pdp11/pdp11.opt: Same.
11096 * config/rl78/rl78.opt: Same.
11097 * config/rs6000/476.opt: Same.
11098 * config/rs6000/aix64.opt: Same.
11099 * config/rs6000/darwin.opt: Same.
11100 * config/rs6000/linux64.opt: Same.
11101 * config/rs6000/rs6000.opt: Same.
11102 * config/rs6000/sysv4.opt: Same.
11103 * config/s390/s390.opt: Same.
11104 * config/s390/tpf.opt: Same.
11105 * config/sh/sh.opt: Same.
11106 * config/sol2.opt: Same.
11107 * config/sparc/long-double-switch.opt: Same.
11108 * config/sparc/sparc.opt: Same.
11109 * config/spu/spu.opt: Same.
11110 * config/stormy16/stormy16.opt: Same.
11111 * config/tilegx/tilegx.opt: Same.
11112 * config/tilepro/tilepro.opt: Same.
11113 * config/v850/v850.opt: Same.
11114 * config/vax/vax.opt: Same.
11115 * config/visium/visium.opt: Same.
11116 * config/vms/vms.opt: Same.
11117 * config/vxworks.opt: Same.
11118 * config/xtensa/xtensa.opt: Same.
11119
11120 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
11121 Sebastian Pop <s.pop@samsung.com>
11122
11123 * graphite-scop-detection.c (parameter_index_in_region): Update call to
11124 invariant_in_sese_p_rec.
11125 * graphite-sese-to-poly.c (extract_affine): Same.
11126 * sese.c (invariant_in_sese_p_rec): Pass in an extra
11127 parameter has_vdefs.
11128 (scalar_evolution_in_region): Return chrec_dont_know when the scalar
11129 variable depends on virtual definitions in the current region.
11130 * sese.h (invariant_in_sese_p_rec): Update declaration.
11131
11132 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
11133 Sebastian Pop <s.pop@samsung.com>
11134
11135 * graphite-scop-detection.c (build_scops): Do not handle scops
11136 with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
11137 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
11138
11139 2015-10-21 Mikhail Maltsev <maltsevm@gmail.com>
11140
11141 * config.in: Regenerate.
11142 * configure: Regenerate.
11143 * configure.ac (CHECKING_P): Define.
11144 * system.h: Use CHECKING_P.
11145
11146 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
11147
11148 PR ipa/67056
11149 * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
11150 is negative we don't know the type.
11151 (check_stmt_for_type_change): Skip constructors of non-polymorphic
11152 types as those won't help devirutalization.
11153
11154 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
11155
11156 * fold-const.c (operand_equal_p): Add code matching empty constructors.
11157
11158 2015-10-21 Eric Botcazou <ebotcazou@adacore.com>
11159
11160 * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
11161 comments.
11162 (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
11163 Add comments on sign of the result.
11164 * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
11165 Recurse on operand #1 instead of operand #0.
11166 <CEIL_MOD_EXPR>: Do not recurse.
11167 <ROUND_MOD_EXPR>: Likewise.
11168
11169 2015-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11170
11171 * cfgrtl.c (pass_free_cfg::execute): Adjust.
11172 * final.c (dbr_sequence_length): Always define.
11173 (shorten_branches): Adjust.
11174 * genattr-common.c (main): Always define DELAY_SLOTS.
11175 * genattr.c (main): Unconditionally declare functions and define
11176 macros related to delay slots.
11177 * genattrtab.c (write_eligible_delay): Adjust.
11178 (main): Always write out delay slot functions.
11179 * opts.c (default_options_table): Adjust.
11180 * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
11181 (redirect_with_delay_list_safe_p): Likewise.
11182 (fill_simple_delay_slots): Likewise.
11183 (fill_slots_from_thread): Likewise.
11184 (make_return_insns): Likewise.
11185 (dbr_schedule): Likewise.
11186 (rest_of_handle_delay_slots): Likewise.
11187 (pass_delay_slots::gate): Likewise.
11188 * toplev.c (process_options): Likewise.
11189
11190 2015-10-21 Richard Henderson <rth@redhat.com>
11191
11192 * targhooks.c (default_addr_space_pointer_mode): Remove check
11193 for generic address space.
11194 (default_addr_space_address_mode): Likewise.
11195 (default_addr_space_valid_pointer_mode): Likewise.
11196 (default_addr_space_legitimate_address_p): Likewise.
11197 (default_addr_space_legitimize_address): Likewise.
11198 * target.def (addr_space.pointer_mode): Update documentation
11199 of default behavior.
11200 (addr_space.address_mode): Likewise.
11201 * tm.texi: Update.
11202
11203 * expr.c (expand_expr_real_2): Use convert_modes on disjoint
11204 address spaces.
11205
11206 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
11207
11208 * builtins.c (fold_builtin_cabs): Delete.
11209 (fold_builtin_1): Update accordingly. Handle constant arguments here.
11210 * match.pd: Add rules previously handled by fold_builtin_cabs.
11211
11212 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
11213
11214 * fold-const.h (fold_strip_sign_ops): Delete.
11215 * fold-const.c (fold_strip_sign_ops): Likewise.
11216 (fold_unary_loc, fold_binary_loc): Remove calls to it.
11217 * builtins.c (fold_builtin_cos, fold_builtin_cosh)
11218 (fold_builtin_ccos): Delete.
11219 (fold_builtin_pow): Don't call fold_strip_sign_ops.
11220 (fold_builtin_hypot, fold_builtin_copysign): Likewise.
11221 Remove fndecl argument.
11222 (fold_builtin_1): Update calls accordingly. Handle constant
11223 cos, cosh, ccos and ccosh here.
11224
11225 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
11226
11227 * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
11228 * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
11229 * common.opt (fssa-backprop): New option.
11230 * fold-const.h (negate_mathfn_p): Declare.
11231 * fold-const.c (negate_mathfn_p): Make public.
11232 * timevar.def (TV_TREE_BACKPROP): New.
11233 * tree-pass.h (make_pass_backprop): Declare.
11234 * passes.def (pass_backprop): Add.
11235 * gimple-ssa-backprop.c: New file.
11236
11237 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
11238 Sebastian Pop <s.pop@samsung.com>
11239
11240 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
11241 Do not call create_empty_if_region_on_edge when cond_expr is true.
11242 (translate_isl_ast_node_for): Check whether a guard has been generated.
11243
11244 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
11245
11246 * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
11247 (operator=): Removed.
11248 (dr_info): Make alias_set number the last argument with default
11249 value of invalid_alias_set.
11250 * graphite-sese-to-poly.c (build_scop_drs): Update constructor
11251 of dr_info.
11252 (rewrite_reductions_out_of_ssa): Iterate only through the
11253 basic blocks which are inside region.
11254 (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
11255 * sese.h (struct sese_l): Removed assignment operator.
11256 (split_region_for_bb): Removed dead code.
11257
11258 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
11259
11260 * graphite-poly.h (struct dr_info): Removed conversion constructor.
11261 (struct scop): Renamed scop::region to scop::scop_info
11262 (scop_set_region): Same.
11263 (SCOP_REGION): Removed
11264 (SCOP_CONTEXT): Removed.
11265 (POLY_SCOP_P): Removed.
11266 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
11267 Rename scop->region to scop->scop_info.
11268 (add_parameters_to_ivs_params): Same.
11269 (graphite_regenerate_ast_isl): Same.
11270 * graphite-poly.c (new_scop): Same.
11271 (free_scop): Same.
11272 (print_scop_params): Same.
11273 * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
11274 (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
11275 (dot_all_scops_1): Rename scop->region to scop->scop_info.
11276 (scop_detection::nb_pbbs_in_loops): Same.
11277 (find_scop_parameters): Same.
11278 (try_generate_gimple_bb): Same.
11279 (gather_bbs::before_dom_children): Same.
11280 (gather_bbs::after_dom_children): Same.
11281 (build_scops): Same.
11282 * graphite-sese-to-poly.c (build_scop_scattering): Same.
11283 (extract_affine_chrec): Same.
11284 (extract_affine): Same.
11285 (set_scop_parameter_dim): Same.
11286 (build_loop_iteration_domains): Same.
11287 (create_pw_aff_from_tree): Same.
11288 (add_param_constraints): Same.
11289 (build_scop_iteration_domain): Same.
11290 (build_scop_drs): Same.
11291 (analyze_drs_in_stmts): Same.
11292 (insert_out_of_ssa_copy_on_edge): Same.
11293 (rewrite_close_phi_out_of_ssa):Same.
11294 (rewrite_reductions_out_of_ssa):Same.
11295 (handle_scalar_deps_crossing_scop_limits):Same.
11296 (rewrite_cross_bb_scalar_deps):Same.
11297 (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
11298 (build_poly_scop):Same.
11299 (build_alias_set): Use pointer to dr_info.
11300 * graphite.c (print_graphite_scop_statistics):
11301 (graphite_transform_loops):
11302 * sese.h (struct sese_l): Remove conversion constructor.
11303
11304 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
11305
11306 PR middle-end/67966
11307 * tree.c (verify_type): Verify that TYPE_MODE match
11308 between TYPE_CANONICAL and type.
11309 * expr.c (store_expr_with_bounds): Revert my previous change.
11310 * expmed.c (store_bit_field_1): Revert prevoius change.
11311 * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
11312 to match for all types.
11313
11314 2015-10-21 Nathan Sidwell <nathan@codesourcery.com>
11315
11316 * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
11317 nesting.
11318
11319 2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
11320
11321 * doc/tm.texi: Regenerated.
11322 * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
11323 * stor-layout.c (layout_type): Use mode to get vector mask size.
11324 * target.def (get_mask_mode): New.
11325 * targhooks.c (default_get_mask_mode): New.
11326 * targhooks.h (default_get_mask_mode): New.
11327 * tree-vect-stmts.c (get_same_sized_vectype): Add special case
11328 for boolean vector.
11329 * tree.c (MAX_BOOL_CACHED_PREC): New.
11330 (nonstandard_boolean_type_cache): New.
11331 (build_nonstandard_boolean_type): New.
11332 (make_vector_type): Vector mask has no canonical type.
11333 (build_truth_vector_type): New.
11334 (build_same_sized_truth_vector_type): New.
11335 (truth_type_for): Support vector masks.
11336 * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
11337 (build_truth_vector_type): New.
11338 (build_same_sized_truth_vector_type): New.
11339 (build_nonstandard_boolean_type): New.
11340 * tree-cfg.c (verify_gimple_comparison) Require boolean
11341 vector type for vector comparison.
11342 (verify_gimple_assign_ternary): Likewise.
11343 * optabs.c (expand_vec_cond_expr): Accept boolean vector as
11344 condition operand.
11345 * tree-vect-stmts.c (vectorizable_condition): Use boolean
11346 vector type for vector comparison.
11347 * tree-vect-generic.c (elem_op_func): Add new operand to hold
11348 vector type.
11349 (do_unop): Adjust to modified function type.
11350 (do_binop): Likewise.
11351 (do_plus_minus): Likewise.
11352 (do_negate); Likewise.
11353 (expand_vector_piecewise): Likewise.
11354 (do_cond): Likewise.
11355 (do_compare): Use comparison instead of condition.
11356 (expand_vector_divmod): Use boolean vector type for comparison.
11357 (expand_vector_operations_1): Skip scalar mask operations.
11358
11359 2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
11360
11361 * omp-low.c (simd_clone_create): Set in_other_partition
11362 for created clones.
11363
11364 2015-10-21 David Wohlferd <dw@LimeGreenSocks.com>
11365
11366 * doc/extend.exp (Local Register Variables): Rewrite.
11367
11368 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
11369
11370 * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
11371 and x*x in cases where the operands are sign ops. Extend these
11372 rules to handle copysign as a sign op (including for cos, cosh
11373 and pow, which already treated negate and abs as sign ops).
11374
11375 2015-10-21 Uros Bizjak <ubizjak@gmail.com>
11376
11377 PR target/68018
11378 * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
11379 for 64-bit MS_ABI targets also when default incoming stack boundary
11380 is overriden.
11381
11382 2015-10-21 Richard Biener <rguenther@suse.de>
11383
11384 * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
11385 cond stmts, enhanced and split out from ...
11386 (vn_phi_eq): ... here.
11387
11388 2015-10-21 Richard Biener <rguenther@suse.de>
11389
11390 PR middle-end/68031
11391 * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
11392 (tree_ssa_name_nonnegative_warnv_p): Fold into ...
11393 (tree_single_nonnegative_warnv_p): ... here. For SSA names
11394 make sure they are not registered for update.
11395
11396 2015-10-21 Richard Biener <rguenther@suse.de>
11397
11398 PR tree-optimization/68026
11399 * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
11400 unsigned VARYING values.
11401
11402 2015-10-21 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
11403
11404 * asan.c (asan_emit_stack_protection): Don't pass local stack to
11405 asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
11406 NULL and use local stack than.
11407 (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
11408 in addition to __asan_init.
11409 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
11410 (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
11411 * asan.h (asan_intercepted_p): Handle new string builtins.
11412 * ubsan.c (ubsan_use_new_style_p): New function.
11413 (ubsan_instrument_float_cast): If location is unknown, assign
11414 input_location to loc. Propagate loc to ubsan_create_data if
11415 ubsan_use_new_style_p returned true.
11416
11417 2015-10-21 Jeff Law <law@redhat.com>
11418
11419 * Makefile.in (OBJS): Remove sched-vis.c
11420 * sched-vis.c: Removed. Code moved into...
11421 * print-rtl.c: Here. Include cfg.h, pretty-print.h and print-rtl.h.
11422 * rtl.h: Remove prototypes for functions now living in print-rtl.c
11423 * print-rtl.h Add prototypes for new functions in print-rtl.c.
11424 * auto-inc-dec.c: Include print-rtl.h
11425 * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
11426 * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
11427
11428 * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
11429 ATTRIBUTE_UNUSED.
11430
11431 2015-10-21 Richard Biener <rguenther@suse.de>
11432 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
11433
11434 * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
11435 to match.pd.
11436 * doc/implement-c.texi (Integers Implementation): Make GCC's promises
11437 about signed left shift stronger and clarify the cases when they're
11438 broken.
11439 Move (a * (1 << b)) is (a << b) to match.pd.
11440 Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
11441 Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
11442 Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
11443
11444 * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
11445 New simplifier.
11446 (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
11447 (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
11448 (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
11449 : New simplifier.
11450 (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
11451 New simplifier.
11452 (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
11453
11454 2015-10-21 Gregor Richards <gregor.richards@uwaterloo.ca>
11455 Szabolcs Nagy <szabolcs.nagy@arm.com>
11456 Alan Modra <amodra@gmail.com>
11457
11458 * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
11459 * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
11460 (LINK_SPEC): Add %(link_secure_plt).
11461 (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
11462 * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
11463
11464 2015-10-20 Gregor Richards <gregor.richards@uwaterloo.ca>
11465 Szabolcs Nagy <szabolcs.nagy@arm.com>
11466
11467 * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
11468 (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
11469
11470 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11471
11472 * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
11473 New function.
11474 (fusion_load_store): Use it.
11475 * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
11476 ldp and stp in VD modes.
11477 * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
11478 (store_pair<mode>, VD): Likewise.
11479
11480 2015-10-20 Vladimir Makarov <vmakarov@redhat.com>
11481
11482 PR rtl-optimization/67609
11483 * lra-splill.c (lra_final_code_change): Don't remove all
11484 sub-registers.
11485
11486 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11487
11488 * simplify-rtx.c (simplify_binary_operation): If either operand was
11489 a constant pool reference use them if all other simplifications failed.
11490
11491 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11492
11493 * config/aarch64/aarch64.md
11494 (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
11495 * config/aarch64/aarch64-simd.md
11496 (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
11497 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
11498 (aarch64_fpconst_pow_of_2): New function.
11499 (aarch64_vec_fpconst_pow_of_2): Likewise.
11500 * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
11501 prototype.
11502 (aarch64_vec_fpconst_pow_of_2): Likewise.
11503 * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
11504 (aarch64_fp_vec_pow2): Likewise.
11505
11506 2015-10-20 Uros Bizjak <ubizjak@gmail.com>
11507
11508 * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
11509 (ALPHA_ARG_SIZE): Ditto. Remove unused NAMED argument.
11510 * config/alpha/alpha.c (alpha_function_arg_advance): Update
11511 ALPHA_ARG_SIZE usage.
11512 (alpha_arg_partial_bytes): Ditto.
11513
11514 2015-10-20 H.J. Lu <hongjiu.lu@intel.com>
11515
11516 PR target/66810
11517 * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
11518 error_mark_node decls.
11519
11520 2015-10-20 H.J. Lu <hongjiu.lu@intel.com>
11521
11522 PR target/67963
11523 PR target/67985
11524 * common/config/i386/i386-common.c (ix86_handle_option): Remove
11525 OPT_miamcu handling.
11526 * config/i386/i386.c (PTA_NO_80387): New macro.
11527 (processor_alias_table): Add PTA_NO_80387 to lakemont.
11528 (ix86_option_override_internal): Update MASK_80387 from
11529 PTA_NO_80387. Don't warn x87/MMX/SSE/AVX for -miamcu. Warn
11530 SSE math only if 80387 is supported. Don't change
11531 MASK_FLOAT_RETURNS.
11532 (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
11533 80387 is supported.
11534 * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
11535 if TARGET_80387 is true and TARGET_IAMCU is false.
11536 (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
11537 is true and TARGET_IAMCU_P is false.
11538
11539 2015-10-20 Richard Biener <rguenther@suse.de>
11540
11541 PR tree-optimization/68017
11542 * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
11543
11544 2015-10-20 Martin Liska <mliska@suse.cz>
11545
11546 * cgraphclones.c (cgraph_node::create_virtual_clone):
11547 Verify cgraph_node.local.versionable instead of calling
11548 tree_versionable_function_p.
11549 * ipa-cp.c (determine_versionability): Save the information
11550 to ipa_node_params summary.
11551 (ipcp_versionable_function_p): Use it.
11552 (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
11553 (ipcp_generate_summary): Do not compute cgraph_node
11554 versionability.
11555 * ipa-inline-analysis.c (inline_generate_summary): Compute
11556 versionability for all cgraph nodes.
11557 * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
11558 ipa_node_params::versionability.
11559 * ipa-prop.h (struct ipa_node_params): Declare it.
11560
11561 2015-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11562
11563 PR other/67868
11564 * varasm.c (assemble_variable): Move special vtv handling to..
11565 (handle_vtv_comdat_sections): .. here. New function.
11566 (output_object_block): Handle vtv sections.
11567
11568 2015-10-20 Szabolcs Nagy <szabolcs.nagy@arm.com>
11569
11570 PR target/66912
11571 * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
11572
11573 2015-10-20 Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
11574
11575 * doc/extend.texi: Update documentation WRT inline functions.
11576
11577 2015-10-20 Alan Modra <amodra@gmail.com>
11578
11579 PR go/66870
11580 * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
11581 * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
11582 (TARGET_CAN_SPLIT_STACK_64BIT): Define.
11583
11584 2015-10-19 Pierre-Marie de Rodat <derodat@adacore.com>
11585
11586 PR rtl-optimization/66790
11587 * df.h (DF_MIR): New macro.
11588 (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
11589 (DF_MIR_INFO_BB): New macro.
11590 (DF_MIR_IN, DF_MIR_OUT): New macros.
11591 (struct df_mir_bb_info): New.
11592 (df_mir): New macro.
11593 (df_mir_add_problem, df_mir_simulate_one_insn): New forward
11594 declarations.
11595 (df_mir_get_bb_info): New.
11596 * df-problems.c (struct df_mir_problem_data): New.
11597 (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
11598 df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
11599 df_mir_confluence_0, df_mir_confluence_n,
11600 df_mir_transfer_function, df_mir_free, df_mir_top_dump,
11601 df_mir_bottom_dump, df_mir_verify_solution_start,
11602 df_mir_verify_solution_end): New.
11603 (problem_MIR): New.
11604 (df_mir_add_problem, df_mir_simulate_one_insn): New.
11605 * timevar.def (TV_DF_MIR): New.
11606 * ree.c: Include bitmap.h
11607 (add_removable_extension): Add an INIT_REGS parameter. Use it
11608 to skip zero-extensions that may get an uninitialized register.
11609 (find_removable_extensions): Compute must-initialized registers
11610 using the MIR dataflow problem. Update the call to
11611 add_removable_extension.
11612 (find_and_remove_re): Call df_mir_add_problem.
11613
11614 2015-10-19 Segher Boessenkool <segher@kernel.crashing.org>
11615
11616 * common/config/mn10300/mn10300-common.c
11617 (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
11618 Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
11619
11620 2015-10-19 David Wohlferd <dw@LimeGreenSocks.com>
11621
11622 * doc/extend.texi (Explicit Register Variables): Simplify and
11623 avoid unnecessary and confusion abbreviations. Update cross
11624 references.
11625 doc/implement-c.tex: Update cross reference.
11626
11627 2015-10-19 Jeff Law <law@redhat.com>
11628
11629 * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
11630 that create irreducible loops unless the path elimiantes a multiway
11631 branch.
11632
11633 2015-10-19 Richard Biener <rguenther@suse.de>
11634
11635 PR tree-optimization/67975
11636 * tree-cfg.h (extract_true_false_controlled_edges): Declare.
11637 * tree-cfg.c (extract_true_false_controlled_edges): Split out
11638 core worker from ...
11639 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
11640 * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
11641 instead of block number for PHIs with two or one args.
11642 (vn_phi_eq): Compare edge predicates of PHIs that are in different
11643 blocks.
11644
11645 2015-10-19 Richard Biener <rguenther@suse.de>
11646
11647 * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
11648 (gimple_stmt_nonnegative_warnv_p): Use it.
11649 * match.pd (CPROJ): New operator list.
11650 (cproj (complex ...)): Move simplifications from ...
11651 * builtins.c (fold_builtin_cproj): ... here.
11652
11653 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
11654
11655 * config/i386/i386.c (ix86_expand_vector_move): Use
11656 GET_MODE_BITSIZE for IA MCU psABI to get vector natural
11657 alignment.
11658
11659 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
11660
11661 * doc/invoke.texi: Replace @optindex with @opindex.
11662
11663 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
11664
11665 PR target/67995
11666 * config/i386/i386.c (ix86_valid_target_attribute_tree): If
11667 arch= is set, clear all bits in x_ix86_isa_flags, except for
11668 ISA_64BIT, ABI_64, ABI_X32, and CODE16.
11669
11670 2015-10-19 Joost VandeVondele <vondele@gnu.gcc.org>
11671
11672 PR middle-end/68002
11673 * common.opt (fkeep-static-functions): New option.
11674 * doc/invoke.texi: Document it.
11675 * cgraphunit.c (cgraph_node::finalize_function): Use it.
11676
11677 2015-10-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11678
11679 * sched-int.h (struct autopref_multipass_data_): Remove offset
11680 field. Add min_offset, max_offset, multi_mem_insn_p fields.
11681 * haifa-sched.c (analyze_set_insn_for_autopref): New function.
11682 (autopref_multipass_init): Use it. Handle PARALLEL sets.
11683 (autopref_rank_data): New function.
11684 (autopref_rank_for_schedule): Use it.
11685 (autopref_multipass_dfa_lookahead_guard_1): Likewise.
11686
11687 2015-10-18 Mikhail Maltsev <maltsevm@gmail.com>
11688
11689 PR other/65800
11690 * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
11691
11692 2015-10-18 Iain Sandoe <iain@codesourcery.com>
11693
11694 * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
11695 (HAVE_LD_SYSROOT): New. (SYSROOT_SPEC): New.
11696 (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
11697 (STANDARD_STARTFILE_PREFIX_1): New.
11698 (STANDARD_STARTFILE_PREFIX_2): New.
11699
11700 2015-10-18 Iain Sandoe <iain@codesourcery.com>
11701
11702 * config/darwin-driver.c (darwin_default_min_version): Refactor code.
11703 (darwin_driver_init): Note a version-min when provided on the c/l.
11704 * config/darwin.h (%darwin_minversion): Remove.
11705 * config/i386/darwin.h: Likewise.
11706 * config/rs6000/darwin.h: Likewise.
11707 * config/darwin.opt (mmacosx-version-min=): Use the configured default,
11708 rather than an arbitrary constant.
11709
11710 2015-10-18 Iain Sandoe <iain@codesourcery.com>
11711
11712 * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
11713 PPC, detect conflicts between -arch and multilib settings. Detect
11714 and warn about conflicts between multiple -arch definitions.
11715
11716 2015-10-18 Iain Sandoe <iain@codesourcery.com>
11717
11718 * config/darwin-driver.c: Adjust includes to add diagnostic-core.
11719
11720 2015-10-16 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11721
11722 * lra-constraints.c (add_next_usage_insn): Change argument type
11723 from rtx to rtx_insn *.
11724
11725 2015-10-16 H.J. Lu <hongjiu.lu@intel.com>
11726
11727 * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
11728 for Lakemont.
11729
11730 2015-10-16 Andrew MacLeod <amacleod@redhat.com>
11731
11732 * config/tilepro/gen-mul-tables.cc: Adjust include files.
11733 * config/tilegx/mul-tables.c: Regenerate.
11734 * config/tilepro/mul-tables.c: Regenerate.
11735
11736 * config/tilegx/tilegx-c.c: Adjust include files.
11737 * config/tilegx/tilegx.c: Likewise.
11738 * config/tilepro/tilepro-c.c: Likewise.
11739 * config/tilepro/tilepro.c: Likewise.
11740 * config/aarch64/aarch64-builtins.c: Likewise.
11741 * config/aarch64/aarch64.c: Likewise.
11742 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
11743 * config/alpha/alpha.c: Likewise.
11744 * config/arc/arc.c: Likewise.
11745 * config/arm/aarch-common.c: Likewise.
11746 * config/arm/arm-builtins.c: Likewise.
11747 * config/arm/arm-c.c: Likewise.
11748 * config/arm/arm.c: Likewise.
11749 * config/avr/avr-c.c: Likewise.
11750 * config/avr/avr-devices.c: Likewise.
11751 * config/avr/avr-log.c: Likewise.
11752 * config/avr/avr.c: Likewise.
11753 * config/bfin/bfin.c: Likewise.
11754 * config/c6x/c6x.c: Likewise.
11755 * config/cr16/cr16.c: Likewise.
11756 * config/cris/cris.c: Likewise.
11757 * config/darwin-c.c: Likewise.
11758 * config/darwin-driver.c: Likewise.
11759 * config/darwin.c: Likewise.
11760 * config/default-c.c: Likewise.
11761 * config/epiphany/epiphany.c: Likewise.
11762 * config/epiphany/mode-switch-use.c: Likewise.
11763 * config/epiphany/resolve-sw-modes.c: Likewise.
11764 * config/fr30/fr30.c: Likewise.
11765 * config/frv/frv.c: Likewise.
11766 * config/ft32/ft32.c: Likewise.
11767 * config/glibc-c.c: Likewise.
11768 * config/h8300/h8300.c: Likewise.
11769 * config/i386/host-cygwin.c: Likewise.
11770 * config/i386/host-mingw32.c: Likewise.
11771 * config/i386/i386-c.c: Likewise.
11772 * config/i386/i386.c: Likewise.
11773 * config/i386/msformat-c.c: Likewise.
11774 * config/i386/winnt-cxx.c: Likewise.
11775 * config/i386/winnt-stubs.c: Likewise.
11776 * config/i386/winnt.c: Likewise.
11777 * config/ia64/ia64-c.c: Likewise.
11778 * config/ia64/ia64.c: Likewise.
11779 * config/iq2000/iq2000.c: Likewise.
11780 * config/lm32/lm32.c: Likewise.
11781 * config/m32c/m32c-pragma.c: Likewise.
11782 * config/m32c/m32c.c: Likewise.
11783 * config/m32r/m32r.c: Likewise.
11784 * config/mcore/mcore.c: Likewise.
11785 * config/mep/mep-pragma.c: Likewise.
11786 * config/mep/mep.c: Likewise.
11787 * config/microblaze/microblaze-c.c: Likewise.
11788 * config/microblaze/microblaze.c: Likewise.
11789 * config/mips/mips-tables.opt
11790 * config/mips/mips.c: Likewise.
11791 * config/mmix/mmix.c: Likewise.
11792 * config/mn10300/mn10300.c: Likewise.
11793 * config/moxie/moxie.c: Likewise.
11794 * config/msp430/msp430-c.c: Likewise.
11795 * config/msp430/msp430.c: Likewise.
11796 * config/nds32/nds32-cost.c: Likewise.
11797 * config/nds32/nds32-fp-as-gp.c: Likewise.
11798 * config/nds32/nds32-intrinsic.c: Likewise.
11799 * config/nds32/nds32-isr.c: Likewise.
11800 * config/nds32/nds32-md-auxiliary.c: Likewise.
11801 * config/nds32/nds32-memory-manipulation.c: Likewise.
11802 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
11803 * config/nds32/nds32-predicates.c: Likewise.
11804 * config/nds32/nds32.c: Likewise.
11805 * config/nios2/nios2.c: Likewise.
11806 * config/nvptx/mkoffload.c: Likewise.
11807 * config/nvptx/nvptx.c: Likewise.
11808 * config/pa/pa.c: Likewise.
11809 * config/pdp11/pdp11.c: Likewise.
11810 * config/rl78/rl78-c.c: Likewise.
11811 * config/rl78/rl78.c: Likewise.
11812 * config/rs6000/host-darwin.c: Likewise.
11813 * config/rs6000/rs6000-c.c: Likewise.
11814 * config/rs6000/rs6000-linux.c: Likewise.
11815 * config/rs6000/rs6000.c: Likewise.
11816 * config/rx/rx.c: Likewise.
11817 * config/s390/s390-c.c: Likewise.
11818 * config/s390/s390.c: Likewise.
11819 * config/sh/sh-c.c: Likewise.
11820 * config/sh/sh-mem.cc: Likewise.
11821 * config/sh/sh.c: Likewise.
11822 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
11823 * config/sh/sh_treg_combine.cc: Likewise.
11824 * config/sol2-c.c: Likewise.
11825 * config/sol2-cxx.c: Likewise.
11826 * config/sol2-stubs.c: Likewise.
11827 * config/sol2.c: Likewise.
11828 * config/sparc/sparc-c.c: Likewise.
11829 * config/sparc/sparc.c: Likewise.
11830 * config/spu/spu-c.c: Likewise.
11831 * config/spu/spu.c: Likewise.
11832 * config/stormy16/stormy16.c: Likewise.
11833 * config/v850/v850-c.c: Likewise.
11834 * config/v850/v850.c: Likewise.
11835 * config/vax/vax.c: Likewise.
11836 * config/visium/visium.c: Likewise.
11837 * config/vms/vms-c.c: Likewise.
11838 * config/vms/vms.c: Likewise.
11839 * config/vxworks.c: Likewise.
11840 * config/winnt-c.c: Likewise.
11841 * config/xtensa/xtensa.c: Likewise.
11842
11843 2015-10-16 Christian Bruel <christian.bruel@st.com>
11844
11845 PR target/67745
11846 * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
11847 (FUNCTION_BOUNDARY_P): New macro:
11848 * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
11849 New hook.
11850 * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
11851 * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
11852 * target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
11853 * function.c (allocate_struct_function): Call
11854 relayout_function hook.
11855 * passes.c (rest_of_decl_compilation): Likewise.
11856
11857 2015-10-16 Christian Bruel <christian.bruel@st.com>
11858
11859 PR target/67745
11860 * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
11861 * config/arm/arm.c (arm_option_override_internal): Call
11862 arm_override_options_after_change_1.
11863 (arm_override_options_after_change): New function.
11864 (arm_override_options_after_change_1): Likewise.
11865 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
11866
11867 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
11868
11869 Revert:
11870 * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
11871 empty constructors.
11872
11873 2015-10-16 Eric Botcazou <ebotcazou@adacore.com>
11874
11875 * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
11876 argument is an ADDR_EXPR.
11877
11878 2015-10-16 Richard Biener <rguenther@suse.de>
11879
11880 * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
11881 and get rid of force_gimple_operand_gsi.
11882 (gimple_fold_builtin_memory_chk): Likewise.
11883 (gimple_fold_builtin_stxcpy_chk): Likewise.
11884 (rewrite_to_defined_overflow): Likewise.
11885 (gimple_convert_to_ptrofftype): New function.
11886 * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
11887
11888 2015-10-16 Richard Biener <rguenther@suse.de>
11889
11890 * tree-nested.h (build_addr): Adjust prototype.
11891 * tree-nested.c (build_addr): Remove context argument and use
11892 mark_addressable.
11893 (get_static_chain): Adjust calls to build_addr.
11894 (convert_nl_goto_reference): Likewise.
11895 (convert_tramp_reference_op): Likewise.
11896 (finalize_nesting_tree_1): Likewise.
11897 * value-prof.c (gimple_ic): Likewise.
11898 * gimple-low.c (lower_builtin_setjmp): Likewise.
11899 * tree-parloops.c (take_address_of): Likewise.
11900 (create_call_for_reduction_1): Likewise.
11901 * tree-profile.c (gimple_gen_interval_profiler): Likewise.
11902 (gimple_gen_ic_func_profiler): Likewise.
11903
11904 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
11905
11906 * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
11907 empty constructors.
11908
11909 2015-10-16 Michael Collison <michael.collison@linaro.org>
11910 Andrew Pinski <andrew.pinski@caviumnetworks.com>
11911
11912 * match.pd ((x < y) && (x < z) -> x < min (y,z),
11913 (x > y) and (x > z) -> x > max (y,z))
11914
11915 2015-10-15 Gregor Richards <gregor.richards@uwaterloo.ca>
11916 Szabolcs Nagy <szabolcs.nagy@arm.com>
11917
11918 * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
11919 (DYNAMIC_LINKER): Renamed to ...
11920 (GLIBC_DYNAMIC_LINKER): This.
11921 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
11922
11923 2015-10-15 Marek Polacek <polacek@redhat.com>
11924
11925 * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
11926 gimple_call_builtin instead of is_gimple_call.
11927
11928 2015-10-15 Richard Biener <rguenther@suse.de>
11929
11930 * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
11931
11932 2015-10-15 Richard Biener <rguenther@suse.de>
11933
11934 * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
11935 * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
11936 * tree-vect-loop.c (get_initial_def_for_induction): Drop
11937 use of force_gimple_operand in favor of gimple_build.
11938 Use vect_get_new_ssa_name.
11939 * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
11940 (vectorizable_mask_load_store): Likewise.
11941 (vectorizable_call): Likewise.
11942 (vectorizable_store): Likewise.
11943 (vectorizable_load): Likewise.
11944 (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
11945
11946 2015-10-15 Richard Sandiford <richard.sandiford@arm.com>
11947
11948 PR tree-optimization/67945
11949 * tree-pass.h (PROP_gimple_opt_math): New property flag.
11950 * generic-match-head.c (canonicalize_math_p): New function.
11951 * gimple-match-head.c: Include tree-pass.h.
11952 (canonicalize_math_p): New function.
11953 * match.pd: Group math built-in rules into simplifications
11954 and canonicalizations. Guard the latter with canonicalize_math_p.
11955 * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
11956 PROP_gimple_opt_math property.
11957
11958 2015-10-15 Marek Polacek <polacek@redhat.com>
11959
11960 PR tree-optimization/67953
11961 * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
11962
11963 2015-10-15 Jiong Wang <jiong.wang@arm.com>
11964
11965 * config.gcc: Recognize "." in architecture base name for AArch64.
11966
11967 2015-10-14 Uros Bizjak <ubizjak@gmail.com>
11968
11969 * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
11970 ROUND_UP macro.
11971 * config/mips/mips.c (mips_setup_incoming_varargs): Use
11972 ROUND_DOWN to calculate off.
11973 (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
11974 (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
11975 rounded_size.
11976
11977 2015-10-14 Eric Botcazou <ebotcazou@adacore.com>
11978
11979 * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
11980
11981 2015-10-14 Peter Bergner <bergner@vnet.ibm.com>
11982 Torvald Riegel <triegel@redhat.com>
11983
11984 PR target/67281
11985 * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
11986 (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
11987 trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
11988 (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
11989 *trechkpt, *treclaim, *tsr, *ttest): ...to this. Add memory barrier.
11990 (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
11991 trechkpt, treclaim, tsr, ttest): New define_expands.
11992 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
11993 __TM_FENCE__ for htm.
11994 * doc/extend.texi: Update documentation for htm builtins.
11995
11996 2015-10-14 Uros Bizjak <ubizjak@gmail.com>
11997
11998 PR target/67967
11999 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
12000 REG_CFA_EXPRESSION to aligned SSE stores.
12001
12002 2015-10-14 Jeff Law <law@redhat.com>
12003
12004 * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
12005 num_threaded_edges for successful FSM threads too.
12006
12007 2015-10-14 Richard Biener <rguenther@suse.de>
12008
12009 * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
12010 (vect_is_simple_use_1): Likewise. Make overload of vect_is_simple_use.
12011 (vect_get_vec_def_for_operand): Remove unused parameter.
12012 * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
12013 (vect_create_epilog_for_reduction): Likewise.
12014 (vectorizable_reduction): Likewise.
12015 (vectorizable_live_operation): Likewise.
12016 * tree-vect-patterns.c (type_conversion_p): Likewise.
12017 (vect_recog_vector_vector_shift_pattern): Likewise.
12018 (check_bool_pattern): Likewise.
12019 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
12020 (vect_analyze_slp_cost_1): Likewise.
12021 * tree-vect-stmts.c (process_use): Likewise.
12022 (vect_get_vec_def_for_operand): Do not handle reductions.
12023 (vect_get_vec_defs): Adjust.
12024 (vectorizable_mask_load_store): Likewise.
12025 (vectorizable_call): Likewise.
12026 (vectorizable_simd_clone_call): Likewise.
12027 (vect_get_loop_based_defs): Likewise.
12028 (vectorizable_conversion): Likewise.
12029 (vectorizable_assignment): Likewise.
12030 (vectorizable_shift): Likewise.
12031 (vectorizable_operation): Likewise.
12032 (vectorizable_store): Likewise.
12033 (vectorizable_load): Likewise.
12034 (vect_is_simple_cond): Likewise.
12035 (vectorizable_condition): Likewise.
12036 (vect_is_simple_use): Remove unused parameters.
12037 (vect_is_simple_use_1): Adjust and rename.
12038
12039 2015-10-14 Richard Biener <rguenther@suse.de>
12040
12041 PR tree-optimization/67915
12042 * match.pd: Handle comparisons of addresses of STRING_CSTs.
12043 * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
12044 * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
12045 stmt folding in favor of GIMPLE one.
12046
12047 2015-10-14 Marek Polacek <polacek@redhat.com>
12048
12049 PR tree-optimization/67815
12050 * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
12051 (reassociate_bb): Call it.
12052
12053 2015-10-14 Richard Biener <rguenther@suse.de>
12054
12055 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
12056 Reset info at start.
12057 (vect_analyze_group_access_1): Add debug print.
12058 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
12059 (vect_compute_single_scalar_iteration_cost): ... to this.
12060 (vect_analyze_loop_2): Adjust.
12061 * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
12062 * tree-vectorizer.h: ... here.
12063 (add_stmt_info_to_vec): Remove.
12064 * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
12065
12066 2015-10-14 Dominik Vogt <vogt@linux.vnet.ibm.com>
12067
12068 * targhooks.c (default_target_option_pragma_parse): Do not warn if
12069 called on behalf of "#pragma GCC pop_options".
12070
12071 2015-10-14 Tom de Vries <tom@codesourcery.com>
12072
12073 * cfganal.c (verify_no_unreachable_blocks): New function.
12074 (inverted_post_order_compute) [ENABLE_CHECKING]: Call
12075 verify_no_unreachable_blocks.
12076 cfganal.h (verify_no_unreachable_blocks): Declare.
12077
12078 2015-10-13 Mikhail Maltsev <maltsevm@gmail.com>
12079
12080 * common.opt: Add flag_checking.
12081 * system.h (CHECKING_P): Define.
12082
12083 2015-10-13 Jakub Jelinek <jakub@redhat.com>
12084 Aldy Hernandez <aldyh@redhat.com>
12085 Ilya Verbin <ilya.verbin@intel.com>
12086
12087 * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
12088 BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
12089 BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
12090 BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
12091 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
12092 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
12093 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
12094 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
12095 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
12096 BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
12097 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
12098 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
12099 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
12100 * cgraph.h (enum cgraph_simd_clone_arg_type): Add
12101 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
12102 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
12103 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
12104 (struct cgraph_simd_clone_arg): Adjust comment.
12105 * coretypes.h (struct gomp_ordered): New forward decl.
12106 * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
12107 set critical clauses to it.
12108 (gimple_build_omp_ordered): Return gomp_ordered * instead of
12109 gimple *. Add CLAUSES argument, set ordered clauses to it.
12110 (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
12111 GIMPLE_OMP_ORDERED.
12112 * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
12113 GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
12114 * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP. Add another bit
12115 to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
12116 GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP. Adjust
12117 GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
12118 Add another bit to GF_OMP_TARGET_KIND_MASK mask. Add
12119 GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
12120 renumber
12121 GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
12122 (gomp_critical): Add clauses field.
12123 (gomp_ordered): New struct.
12124 (is_a_helper <gomp_ordered *>::test): New inline.
12125 (gimple_build_omp_critical): Add CLAUSES argument.
12126 (gimple_build_omp_ordered): Likewise. Return gomp_ordered *
12127 instead of gimple *.
12128 (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
12129 gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
12130 gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
12131 gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
12132 inline functions.
12133 * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
12134 (dump_gimple_omp_target): Handle enter data and exit data.
12135 (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
12136 (dump_gimple_omp_critical): Print clauses.
12137 (dump_gimple_omp_ordered): New function.
12138 (dump_gimple_omp_task): Handle taskloop.
12139 (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
12140 GIMPLE_OMP_ORDERED.
12141 * gimple-walk.c (walk_gimple_op): Walk clauses on
12142 GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
12143 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
12144 (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
12145 (struct gimplify_omp_ctx): Add loop_iter_var,
12146 target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
12147 and target_firstprivatize_array_bases fields.
12148 (delete_omp_context): Release loop_iter_var.
12149 (gimplify_bind_expr): Handle ORT_NONE.
12150 (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
12151 ORT_COMBINED_TARGET.
12152 (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
12153 OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
12154 (omp_firstprivatize_variable): Handle ORT_NONE. Adjust check for
12155 ORT_TARGET for the addition of ORT_COMBINED_TARGET. Handle
12156 ctx->target_map_scalars_firstprivate.
12157 (omp_add_variable): Handle ORT_NONE. Allow map clause together with
12158 data sharing clauses. For data sharing clause with VLA decl
12159 on omp target/target data don't add firstprivate for the pointer.
12160 Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
12161 (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
12162 the addition of ORT_COMBINED_TARGET.
12163 (omp_notice_variable): Handle ORT_NONE. Adjust check for ORT_TARGET
12164 for the addition of ORT_COMBINED_TARGET. Handle implicit mapping of
12165 pointers as zero length array sections and
12166 ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
12167 data sharing.
12168 (omp_check_private): Handle omp_member_access_dummy_var vars.
12169 (find_decl_expr): New function.
12170 (gimplify_scan_omp_clauses): Add CODE argument. For OMP_CLAUSE_IF
12171 complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
12172 Handle OMP_CLAUSE_GANG separately. Handle
12173 OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
12174 clauses. Diagnose linear clause on combined
12175 distribute {, parallel for} simd construct, unless it is the loop
12176 iterator. Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
12177 Handle map clauses with COMPONENT_REF. Initialize
12178 ctx->target_map_scalars_firstprivate,
12179 ctx->target_firstprivatize_array_bases and
12180 ctx->target_map_pointers_as_0len_arrays. Add firstprivate for
12181 linear clause even to target region if combined. Remove
12182 map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
12183 OMP_TARGET_{,ENTER_,EXIT_}DATA. For GOMP_MAP_FIRSTPRIVATE_POINTER
12184 map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
12185 Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}. Handle
12186 OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
12187 For linear clause on worksharing loop combined with parallel add
12188 shared clause on the parallel. Handle OMP_CLAUSE_REDUCTION
12189 with MEM_REF OMP_CLAUSE_DECL. Set DECL_NAME on
12190 omp_member_access_dummy_var vars. Add lastprivate clause to outer
12191 taskloop if needed.
12192 (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
12193 If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
12194 GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
12195 GOMP_MAP_POINTER.
12196 (gimplify_adjust_omp_clauses): Add CODE argument. Handle removal
12197 of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
12198 in target body. Handle removal of struct mapping if struct is not
12199 seen in target body. Remove GOMP_MAP_STRUCT map clause on
12200 OMP_TARGET_EXIT_DATA. Adjust check for ORT_TARGET for the
12201 addition of ORT_COMBINED_TARGET. Use GOMP_MAP_FIRSTPRIVATE_POINTER
12202 instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
12203 for VLAs. Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
12204 clause appear together. Handle
12205 OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}. Don't remove map
12206 clause if it has map-type-modifier always. Handle
12207 OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
12208 clauses.
12209 (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
12210 Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
12211 callers.
12212 (gimplify_omp_for): Likewise. Handle OMP_TASKLOOP. Initialize
12213 loop_iter_var. Use OMP_FOR_ORIG_DECLS. Fix handling of lastprivate
12214 iterators in doacross loops.
12215 (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
12216 gimplify_adjust_omp_clauses callers. Use ORT_COMBINED_TARGET
12217 for OMP_TARGET_COMBINED. Adjust check for ORT_TARGET
12218 for the addition of ORT_COMBINED_TARGET.
12219 (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
12220 gimplify_adjust_omp_clauses callers. Handle OMP_TARGET_ENTER_DATA
12221 and OMP_TARGET_EXIT_DATA.
12222 (gimplify_omp_ordered): New function.
12223 (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
12224 OMP_TARGET_EXIT_DATA. Use gimplify_omp_ordered for OMP_ORDERED.
12225 Gimplify clauses on OMP_CRITICAL.
12226 * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
12227 expand_GOMP_SIMD_ORDERED_END): New functions.
12228 * internal-fn.def (GOMP_SIMD_ORDERED_START,
12229 GOMP_SIMD_ORDERED_END): New internal functions.
12230 * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
12231 BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
12232 BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
12233 BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
12234 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
12235 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
12236 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
12237 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
12238 BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
12239 BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
12240 BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
12241 BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
12242 (BUILT_IN_GOMP_TASK): Add INT argument to the end.
12243 (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
12244 adjust type.
12245 (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
12246 GOMP_target_data_41, adjust type.
12247 (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
12248 GOMP_target_update_41, adjust type.
12249 * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
12250 field.
12251 (struct omp_for_data): Add ordered and simd_schedule fields.
12252 (omp_member_access_dummy_var, unshare_and_remap_1,
12253 unshare_and_remap, is_taskloop_ctx): New functions.
12254 (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
12255 (extract_omp_for_data): Handle taskloops and doacross loops
12256 and simd schedule modifier.
12257 (omp_adjust_chunk_size): New function.
12258 (get_ws_args_for): Use it.
12259 (lookup_sfield): Change first argument to splay_tree_key,
12260 add overload with first argument tree.
12261 (maybe_lookup_field): Likewise.
12262 (use_pointer_for_field): Handle omp_member_access_dummy_var.
12263 (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
12264 task_shared_vars, clear TREE_ADDRESSABLE on the copy.
12265 (build_outer_var_ref): Add LASTPRIVATE argument, handle
12266 taskloops and omp_member_access_dummy_var vars.
12267 (build_sender_ref): Change first argument to splay_tree_key,
12268 add overload with first argument tree.
12269 (install_var_field): For mask & 8 use &DECL_UID as key instead
12270 of the tree itself.
12271 (fixup_child_record_type): Const qualify *.omp_data_i.
12272 (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
12273 C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
12274 OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
12275 OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
12276 on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
12277 (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
12278 (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
12279 kinds.
12280 (add_taskreg_looptemp_clauses): New function.
12281 (scan_omp_parallel): Use it.
12282 (scan_omp_task): Likewise.
12283 (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
12284 For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
12285 (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
12286 and GF_OMP_TARGET_KIND_EXIT_DATA. Formatting fixes. Allow the
12287 sandwiched taskloop constructs. Type check
12288 OMP_CLAUSE_DEPEND_{KIND,SOURCE}. Allow ordered simd inside of simd
12289 region. Diagnose depend(source) or depend(sink:...) on
12290 target constructs or task/taskloop.
12291 (handle_simd_reference): Use get_name.
12292 (lower_rec_input_clauses): Likewise. Ignore all
12293 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
12294 Allow _LOOPTEMP_ clause on GOMP_TASK. Unshare new_var
12295 before passing it to omp_clause_{default,copy}_ctor. Handle
12296 OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL. Set
12297 lastprivate_firstprivate flag for linear that needs copyin and
12298 copyout. Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
12299 (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
12300 on taskloop lookup decl in outer context. Pass true to
12301 build_outer_var_ref lastprivate argument. Handle
12302 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
12303 outside of outer taskloop for.
12304 (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
12305 OMP_CLAUSE_DECL.
12306 (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
12307 GOMP_TASK. Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE. Handle
12308 omp_member_access_dummy_var vars. Handle OMP_CLAUSE_REDUCTION
12309 with MEM_REF OMP_CLAUSE_DECL. Use new lookup_sfield overload.
12310 (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
12311 abstract origin. Handle omp_member_access_dummy_var vars.
12312 (expand_parallel_call): Use expand_omp_build_assign.
12313 (expand_task_call): Handle taskloop construct expansion. Add
12314 REGION argument. Use GOMP_TASK_* defines instead of hardcoded
12315 integers. Add priority argument to GOMP_task* calls. Or in
12316 GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
12317 GOMP_task call.
12318 (expand_omp_build_assign): Add prototype. Add AFTER
12319 argument, if true emit statements after *GSI_P and continue linking.
12320 (expand_omp_taskreg): Adjust expand_task_call caller.
12321 (expand_omp_for_init_counts): Rename zero_iter_bb argument to
12322 zero_iter1_bb and first_zero_iter to first_zero_iter1, add
12323 zero_iter2_bb and first_zero_iter2 arguments, handle computation
12324 of counts even for ordered loops.
12325 (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
12326 (expand_omp_ordered_source, expand_omp_ordered_sink,
12327 expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
12328 functions.
12329 (expand_omp_for_generic): Use omp_adjust_chunk_size. Handle linear
12330 clauses on worksharing loop. Handle DOACROSS loop expansion.
12331 (expand_omp_for_static_nochunk): Handle linear clauses on
12332 worksharing loop. Adjust expand_omp_for_init_counts
12333 callers.
12334 (expand_omp_for_static_chunk): Likewise. Use omp_adjust_chunk_size.
12335 (expand_omp_simd): Handle addressable fd->loop.v. Adjust
12336 expand_omp_for_init_counts callers.
12337 (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
12338 functions.
12339 (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
12340 Handle doacross loops.
12341 (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
12342 GF_OMP_TARGET_KIND_EXIT_DATA. Pass flags and depend arguments to
12343 GOMP_target_{41,update_41,enter_exit_data} libcalls.
12344 (expand_omp): Don't expand ordered depend constructs here, record
12345 ord_stmt instead for later expand_omp_for_generic.
12346 (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
12347 GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend
12348 clause as stand-alone directive.
12349 (lower_omp_ordered_clauses): New function.
12350 (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
12351 don't lower anything.
12352 (lower_omp_for_lastprivate): Use last _looptemp_ clause
12353 on taskloop for comparison.
12354 (lower_omp_for): Handle taskloop constructs. Adjust OMP_CLAUSE_DECL
12355 and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
12356 expansion for linear adjustments.
12357 (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
12358 (lower_depend_clauses): Assert not seeing sink/source depend kinds.
12359 Set TREE_ADDRESSABLE on array. Change first argument from gimple *
12360 to tree * pointing to the stmt's clauses.
12361 (lower_omp_taskreg): Adjust lower_depend_clauses caller.
12362 (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
12363 and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
12364 GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
12365 map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
12366 clauses. Always use short kind and 8-bit align shift.
12367 (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
12368 (struct lower_omp_regimplify_operands_data): New type.
12369 (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
12370 New functions.
12371 (lower_omp_1): Use lower_omp_regimplify_operands instead of
12372 gimple_regimplify_operands.
12373 (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
12374 GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend
12375 clause as stand-alone directive.
12376 (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
12377 (simd_clone_mangle): Mangle the various linear kinds
12378 per the new ABI.
12379 (simd_clone_adjust_argument_types): Handle
12380 SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
12381 (simd_clone_init_simd_arrays): Don't do anything for uval.
12382 (simd_clone_adjust): Handle
12383 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
12384 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
12385 Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
12386 * omp-low.h (omp_member_access_dummy_var): New prototype.
12387 * passes.def (pass_simduid_cleanup): Schedule another copy of the
12388 pass after all optimizations.
12389 * tree.c (omp_clause_code_name): Add entries for
12390 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
12391 and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
12392 (omp_clause_num_ops): Likewise. Bump number of OMP_CLAUSE_REDUCTION
12393 arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
12394 (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
12395 OMP_CLAUSE_REDUCTION 5 arguments. Handle
12396 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
12397 and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
12398 clauses.
12399 * tree-core.h (enum omp_clause_linear_kind): New.
12400 (struct tree_omp_clause): Change type of map_kind
12401 from unsigned char to unsigned int. Add subcode.if_modifier
12402 and subcode.linear_kind fields.
12403 (enum omp_clause_code): Add
12404 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
12405 and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
12406 (OMP_CLAUSE_REDUCTION): Document
12407 OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
12408 (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
12409 * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
12410 (OMP_CRITICAL): Move before OMP_SINGLE. Add OMP_CRITICAL_CLAUSES
12411 operand.
12412 (OMP_ORDERED): Move before OMP_SINGLE. Add OMP_ORDERED_CLAUSES
12413 operand.
12414 (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
12415 codes.
12416 * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
12417 (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
12418 char.
12419 (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
12420 (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
12421 (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
12422 (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
12423 OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
12424 OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
12425 OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
12426 OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
12427 OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
12428 OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
12429 OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
12430 OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
12431 OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
12432 * tree-inline.c (remap_gimple_stmt): Handle clauses on
12433 GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL. For
12434 IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
12435 * tree-nested.c (convert_nonlocal_omp_clauses): Handle
12436 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
12437 and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
12438 clauses. Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
12439 (convert_local_omp_clauses): Likewise.
12440 * tree-pretty-print.c (dump_omp_clause): Handle
12441 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
12442 and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
12443 clauses. Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
12444 OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
12445 OMP_CLAUSE_DEPEND_{SOURCE,SINK}. Use "delete" for
12446 GOMP_MAP_FORCE_DEALLOC. Handle
12447 GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
12448 (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
12449 and clauses on OMP_ORDERED and OMP_CRITICAL.
12450 * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
12451 Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
12452 (vectorize_loops): Adjust comments.
12453 (pass_simduid_cleanup::execute): Likewise.
12454 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
12455 SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
12456 * wide-int.h (wi::gcd): New.
12457
12458 2015-10-13 Uros Bizjak <ubizjak@gmail.com>
12459
12460 * config/i386/i386.c (classify_argument): Use CEIL where applicable.
12461 (ix86_function_arg_advance): Ditto.
12462 (ix86_function_arg): Ditto.
12463 (ix86_gimplify_va_arg): Ditto.
12464 (ix86_class_max_nregs): Ditto.
12465 (inline_memory_move_cost): Ditto.
12466 (ix86_set_reg_reg_cost): Ditto.
12467 * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
12468
12469 2015-10-13 Alexandre Oliva <aoliva@redhat.com>
12470
12471 PR middle-end/67912
12472 * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
12473
12474 2015-10-13 Uros Bizjak <ubizjak@gmail.com>
12475
12476 * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
12477 ROUND_UP macro and UNITS_PER_WORD * 2.
12478 * config/sparc/sparc.c (sparc_compute_frame_size):
12479 Use ROUND_UP and ROUND_DOWN macros where applicable.
12480 (function_arg_record_value, function_arg_record_value_1)
12481 (function_arg_record_value_1): Ditto.
12482 (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
12483 alignment to double-word.
12484 (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
12485 (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
12486 rounded_size.
12487
12488 2015-10-13 Nikolai Bozhenov <n.bozhenov@samsung.com>
12489
12490 * rtl.h (print_insn): Fix prototype.
12491
12492 2015-10-13 Tom de Vries <tom@codesourcery.com>
12493
12494 * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
12495 -1. Add assert that returned entry matches phi argument.
12496 (parallelize_loops): Move calls to init_stmt_vec_info_vec and
12497 free_stmt_vec_info_vec ...
12498 (gather_scalar_reductions): ... here. Initialize gimple_uids of phis
12499 with -1.
12500
12501 2014-10-13 Yuri Rumyantsev <ysrumyan@gmail.com>
12502
12503 PR tree-optimization/67909, 67947
12504 * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
12505 really skip the inner loop.
12506
12507 2015-10-13 Jeff Law <law@redhat.com>
12508
12509 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12510 Allow single block jump threading paths.
12511
12512 2015-10-13 Tom de Vries <tom@codesourcery.com>
12513
12514 PR tree-optimization/67476
12515 * doc/invoke.texi (@item parloops-schedule): New item.
12516 * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
12517 * tree-parloops.c: Include params-enum.h.
12518 (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
12519
12520 2015-10-13 Tom de Vries <tom@codesourcery.com>
12521
12522 * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
12523 * params-enum.h: New file.
12524 * opts.c (handle_param): Handle case that param arg is a string.
12525 * params-list.h: Handle DEFPARAMENUM5 in params.def.
12526 * params.c (find_param): New function, factored out of ...
12527 (set_param_value): ... here.
12528 (param_string_value_p): New function.
12529 * params.h (struct param_info): Add value_names field.
12530 (find_param, param_string_value_p): Declare.
12531
12532 2015-10-13 Tom de Vries <tom@codesourcery.com>
12533
12534 PR tree-optimization/67476
12535 * omp-low.c (expand_omp_for_generic): Handle original loop tree.
12536
12537 2015-10-13 Richard Biener <rguenther@suse.de>
12538
12539 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
12540 the data dependence vector.
12541 (vect_peeling_hash_insert): Get the peeling hash table as argument.
12542 (vect_peeling_hash_get_lowest_cost): Likewise.
12543 (vect_enhance_data_refs_alignment): Adjust.
12544 (struct _vect_peel_info, struct _vect_peel_extended_info,
12545 struct peel_info_hasher): Move from ...
12546 * tree-vectorizer.h: ... here.
12547 (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
12548 (LOOP_VINFO_PEELING_HTAB): Likewise.
12549 (struct _loop_vec_info): Remove min_profitable_iters and
12550 peeling_htab members.
12551 * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
12552 here.
12553 (destroy_loop_vec_info): Adjust.
12554 (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
12555 (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
12556 to estimate alias versioning cost.
12557 * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
12558
12559 2015-10-13 Richard Sandiford <richard.sandiford@arm.com>
12560
12561 * real.h (real_isinteger): Declare.
12562 * real.c (real_isinteger): New function.
12563 * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
12564 if y is an even integer.
12565
12566 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
12567
12568 revert:
12569 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
12570 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
12571 counts when these are more informative.
12572
12573 2015-10-12 Jeff Law <law@redhat.com>
12574
12575 * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
12576 (fsm_find_control_stmt_paths): Change name of first argument to
12577 more accurately relfect what it really is. Handle simplification
12578 of GIMPLE_COND after finding a thread path for NAME.
12579 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
12580 nontrivial conditions to be handled by FSM threader.
12581 (thread_through_normal_block): Extract the name to looup via
12582 FSM threader from COND_EXPR.
12583
12584 * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
12585 restriction that traced SSA_NAME is a user variable.
12586
12587 2015-10-12 Tom de Vries <tom@codesourcery.com>
12588
12589 PR tree-optimization/67476
12590 * omp-low.c (expand_omp_for_generic): Add missing phis.
12591
12592 2015-10-12 Tom de Vries <tom@codesourcery.com>
12593
12594 PR tree-optimization/67476
12595 * omp-low.c (expand_omp_for_generic): Handle simple latch.
12596
12597 2015-10-12 Christophe Lyon <christophe.lyon@linaro.org>
12598
12599 * config/aarch64/aarch64-simd-builtins.def: Update builtins
12600 tables: add tbl3 and tbx4.
12601 * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
12602 (aarch64_tbx4v8qi): New.
12603 * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
12604 (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
12605 Rewrite using builtin functions.
12606 * config/aarch64/iterators.md (UNSPEC_TBX): New.
12607
12608 2015-10-12 Uros Bizjak <ubizjak@gmail.com>
12609
12610 * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
12611 ROUND_UP macro.
12612 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
12613 Use ROUND_UP and ROUND_DOWN macros where applicable.
12614 (rs6000_darwin64_record_arg_flush): Ditto.
12615 (rs6000_function_arg): Use ROUND_UP to calculate align_words.
12616 (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
12617 rounded_size.
12618
12619 2015-10-12 Uros Bizjak <ubizjak@gmail.com>
12620
12621 * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
12622 (AARCH64_ROUND_DOWN): Ditto.
12623 * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
12624
12625 2015-10-12 Richard Biener <rguenther@suse.de>
12626
12627 PR ipa/67783
12628 * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
12629 code that analyzes IVs on each stmt but in a cheaper way avoiding
12630 quadratic behavior.
12631
12632 2015-10-12 Nick Clifton <nickc@redhat.com>
12633
12634 * config/msp430/msp430.c (msp430_mcu_names): Rename to
12635 msp430_mcu_data, add fields for ISA and hardware multiply
12636 support. Import latest data from the devices.csv file.
12637 (msp430_override_option): Use the data from the new array.
12638 (msp430_use_f5_series_hwmult): Likewise.
12639 (use_32bit_hwmult): Likewise.
12640 (msp430_no_hwmult): Likewise.
12641 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
12642 MCU names.
12643 * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
12644 not recognised then no hardware multiply support is assumed and
12645 that only the MSP430 ISA is allowed.
12646
12647 2015-10-12 Richard Biener <rguenther@suse.de>
12648
12649 * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
12650 related code ...
12651 (vect_analyze_loop_2): ... here.
12652
12653 2015-10-11 Jason Merrill <jason@redhat.com>
12654
12655 PR c++/67557
12656 * expr.c (store_field): Call store_constructor directly when
12657 storing a CONSTRUCTOR into a target smaller than its type.
12658 Guard against unsafe bitwise copy.
12659
12660 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
12661
12662 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
12663 counts when these are more informative.
12664
12665 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
12666
12667 * tree-profile.c (tree_profiling): Do not clear
12668 pure/const when not instrumenting.
12669 (pass tree_profile): Add dump of symtab.
12670
12671 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
12672
12673 * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
12674 addresses.
12675 (fold_addr_of_array_ref_difference): Likewise.
12676
12677 2015-10-11 Jeff Law <law@redhat.com>
12678
12679 * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
12680 tree-ssa-threadbackward.c.
12681 (fsm_find_control_statement_thread_paths): Likewise.
12682 (thread_through_normal_block): Break out FSM bits and move them
12683 into a new function in tree-ssa-threadbackward.c. Call new function
12684 instead.
12685 Minimize header file usage.
12686 * tree-ssa-threadbackward.h: New file.
12687 * tree-ssa-threadbackward.c: Likewise.
12688 * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
12689
12690 2015-10-11 Uros Bizjak <ubizjak@gmail.com>
12691
12692 * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
12693
12694 2015-10-11 Segher Boessenkool <segher@kernel.crashing.org>
12695
12696 PR rtl-optimization/67864
12697 * bb-reorder (reorder_basic_blocks_simple): Prefer existing
12698 fallthrough edges for conditional jumps. Don't sort candidate
12699 edges if not optimizing for speed.
12700
12701 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12702
12703 * defaults.h (REVERSE_CONDITION): New default definition.
12704 * jump.c (reversed_comparison_code_parts): Adjust.
12705
12706 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12707
12708 * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
12709 check HARD_FRAME_POINTER_IS_ARG_POINTER.
12710
12711 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12712
12713 * defaults.h (FRAME_ADDR_RTX): New default definition.
12714 * builtins.c (expand_builtin_return_addr): Adjust.
12715
12716 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12717
12718 * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
12719 * builtins.c (expand_builtin_return_addr): Adjust.
12720
12721 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12722
12723 * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
12724 * builtins.c (expand_builtin_return_addr): Adjust.
12725 * doc/tm.texi: Likewise.
12726 * doc/tm.texi.in: Likewise.
12727 * except.c (expand_builtin_unwind_init): Likewise.
12728
12729 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12730
12731 * builtins.c (expand_builtin_return_addr): Adjust.
12732 * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
12733
12734 2015-10-10 Jan Hubicka <hubicka@ucw.cz>
12735
12736 * tree.c (type_with_interoperable_signedness): New.
12737 (gimple_canonical_types_compatible_p): Use it.
12738 * tree.h (type_with_interoperable_signedness): Declare
12739
12740 2015-10-10 Jan Hubicka <hubicka@ucw.cz>
12741
12742 * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
12743 and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
12744 when OEP_ADDRESS_OF is se.
12745
12746 2015-10-10 Aditya Kumar <aditya.k7@samsung.com>
12747 Sebastian Pop <s.pop@samsung.com>
12748
12749 * graphite-dependences.c (scop_get_dependences): Add dump of the
12750 data dependence graph.
12751 * graphite-poly.c (print_isl_union_map): New.
12752 (debug_isl_union_map): New.
12753 * graphite-poly.h (print_isl_union_map): Declare.
12754 (debug_isl_union_map): Declare.
12755
12756 2015-10-10 Aditya Kumar <aditya.k7@samsung.com>
12757 Sebastian Pop <s.pop@samsung.com>
12758
12759 * graphite-poly.c (print_iteration_domain): Remove verbosity.
12760 Remove OpenScop formatting.
12761 (print_iteration_domains): Same.
12762 (debug_iteration_domain): Same.
12763 (debug_iteration_domains): Same.
12764 (print_pdr): Same.
12765 (debug_pdr): Same.
12766 (dump_gbb_cases): Same.
12767 (dump_gbb_conditions): Same.
12768 (print_pdrs): Same.
12769 (debug_pdrs): Same.
12770 (print_pbb_body): Same.
12771 (print_pbb): Same.
12772 (print_scop_params): Same.
12773 (print_scop_context): Same.
12774 (print_scop): Same.
12775 (debug_pbb_domain): Same.
12776 (debug_pbb): Same.
12777 (debug_scop_context): Same.
12778 (debug_scop): Same.
12779 (debug_scop_params): Same.
12780 * graphite-poly.h: Same.
12781 * graphite.c (graphite_transform_loops): Same.
12782
12783 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12784
12785 * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
12786 call that isn't needed.
12787
12788 2015-10-09 Jeff Law <law@redhat.com>
12789
12790 * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
12791 rather than moving each name to the freelist individually.
12792
12793 2015-10-09 Steve Ellcey <sellcey@imgtec.com>
12794
12795 * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
12796 * frame-header-opt.c: New file.
12797 * config/mips/mips-proto.h (mips_register_frame_header_opt):
12798 Add prototype.
12799 * config/mips/mips.c (mips_compute_frame_info): Check
12800 optimize_call_stack flag.
12801 (mips_option_override): Register new frame_header_opt pass.
12802 (mips_frame_info, mips_int_mask, mips_shadow_set,
12803 machine_function): Move these types to...
12804 * config/mips/mips.h: here.
12805 (machine_function): Add does_not_use_frame_header and
12806 optimize_call_stack fields.
12807 * config/mips/t-mips (frame-header-opt.o): Add new make rule.
12808 * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
12809 Document new flags.
12810 * config/mips/mips.opt (mframe-header-opt): Add new option.
12811
12812 2015-10-09 Uros Bizjak <ubizjak@gmail.com>
12813
12814 * config/i386/i386.c
12815 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
12816 ROUND_DOWN where applicable.
12817
12818 2015-10-09 Jeff Law <law@redhat.com>
12819
12820 * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
12821 correct statement.
12822
12823 2015-10-09 Renlin Li <renlin.li@arm.com>
12824
12825 * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
12826 operands[0] and operands[2].
12827 (neon_vtrn<mode>_insn): Likewise.
12828 (neon_vzip<mode>_insn): Likewise.
12829
12830 2015-10-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
12831
12832 * match.pd: ((X inner_op C0) outer_op C1) New pattern.
12833 ((X & C2) << C1): Expand to...
12834 (X {&,^,|} C2 << C1): ...This.
12835 ((X & C2) >> C1): Expand to...
12836 (X {&,^,|} C2 >> C1): ...This.
12837
12838 2015-10-09 Alexander Fomin <alexander.fomin@intel.com>
12839
12840 PR target/67895
12841 * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
12842 Adjust embedded rounding/SAE specifier position.
12843 (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
12844 (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
12845 (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
12846 (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
12847 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
12848 Likewise.
12849 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
12850
12851 2015-10-09 Martin Jambor <mjambor@suse.cz>
12852
12853 tree-optimization/67794
12854 * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
12855 between types of state,ents but accept original definitions as a
12856 parameter.
12857 (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
12858 iterate over definitions.
12859
12860 2015-10-09 James Norris <jnorris@codesourcery.com>
12861
12862 * config/rs6000/rs6000.c (rs6000_offload_options): New.
12863 (TARGET_OFFLOAD_OPTIONS): New.
12864
12865 2015-10-09 Alexandre Oliva <aoliva@redhat.com>
12866
12867 PR middle-end/67891
12868 * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
12869
12870 PR middle-end/67766
12871 * function.c (expand_function_end): Move return value
12872 promotion past the handling of PARALLELs and CONCATs.
12873
12874 PR rtl-optimization/67828
12875 * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
12876 (tree_may_unswitch_on): Don't unswitch on expressions
12877 involving undefined values.
12878
12879 2015-10-09 Richard Biener <rguenther@suse.de>
12880
12881 * genmatch.c (print_operand): Fix formatting.
12882 (dt_node::append_simplify): Warn for multiple simplifiers
12883 that match the same pattern.
12884 * match.pd (log (exp @0)): Remove duplicates.
12885
12886 2015-10-09 Richard Biener <rguenth@suse.de>
12887
12888 PR target/67366
12889 * gimple-fold.c (optabs-query.h): Include
12890 (gimple_fold_builtin_memory_op): Allow unaligned stores
12891 when movmisalign_optabs are available.
12892
12893 2015-10-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12894
12895 PR target/67366
12896 * config/arm/arm.md (movmisalign<mode>): New.
12897 * config/arm/iterators.md (HSI): New.
12898
12899 2015-10-09 Richard Biener <rguenther@suse.de>
12900
12901 PR tree-optimization/67891
12902 * gimple-match.h (gimple_simplified_result_is_gimple_val):
12903 New helper.
12904 (gimple_resimplify1): Declare.
12905 (gimple_resimplify2): Likewise.
12906 (gimple_resimplify3): Likewise.
12907 * gimple-match-head.c (gimple_resimplify1): Export.
12908 (gimple_resimplify2): Likewise.
12909 (gimple_resimplify3): Likewise.
12910 (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
12911 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
12912 * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
12913 to avoid creating stmts without VN info.
12914
12915 2015-10-08 Jan Hubicka <hubicka@ucw.cz>
12916
12917 * ipa-icf.c (sem_item::compare_symbol_references): Fix use
12918 of availability.
12919
12920 2015-10-08 Jeff Law <law@redhat.com>
12921
12922 * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
12923 and release_ssa_name in two places.
12924 (gimple_stringop_fixed_value): Similarly.
12925
12926 * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
12927 release_defs.
12928
12929 * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
12930 unlink_stmt_vdef and release_ssa_name_fn.
12931
12932 * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
12933 release_defs.
12934
12935 2015-10-08 H.J. Lu <hongjiu.lu@intel.com>
12936
12937 * config/i386/i386.c (ix86_compute_frame_layout): Round up the
12938 SSE register save area to 16 bytes only if the incoming stack
12939 boundary is no less than 16 bytes.
12940
12941 2015-10-08 Jeff Law <law@redhat.com>
12942
12943 * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
12944 release_ssa_name. Fix typo in comment.
12945
12946 2015-10-08 Nathan Sidwell <nathan@acm.org>
12947
12948 * config/nvptx/nvptx.h (struct machine_function): Add comment.
12949 * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
12950 may return pointer as well as in memory.
12951 (nvptx_output_return): Likewise.
12952
12953 2015-10-08 Richard Sandiford <richard.sandiford@arm.com>
12954
12955 * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
12956 (fold_builtin_1): Update accordingly. Handle constant arguments here.
12957 * match.pd: Add rules previously handled by fold_builtin_sqrt
12958 and fold_builtin_cbrt.
12959
12960 2015-10-08 Richard Sandiford <richard.sandiford@arm.com>
12961
12962 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
12963 * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
12964 * fold-const.h (tree_unary_nonnegative_warnv_p)
12965 (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
12966 (tree_expr_nonnegative_warnv_p): Add depth parameters.
12967 * fold-const.c: Include gimple-fold.h and params.h.
12968 (tree_ssa_name_nonnegative_warnv_p): New function.
12969 (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
12970 (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
12971 (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
12972 Add a depth parameter and increment it for recursive calls to
12973 tree_expr_nonnegative_warnv_p. Use tree_ssa_name_nonnegative_warnv_p
12974 to handle SSA names.
12975 * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
12976 (gimple_stmt_nonnegative_warnv_p): Declare.
12977 * tree-vrp.c (remove_range_assertions): Remove assert that condition
12978 cannot be proven false.
12979 (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
12980 (gimple_stmt_nonnegative_warnv_p): Move to...
12981 * gimple-fold.c: ...here. Add depth parameters and pass them
12982 down to the tree routines. Accept statements that aren't
12983 assignments or calls but just return false for them.
12984 (gimple_val_nonnegative_real_p): Delete.
12985 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
12986 tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
12987 Check HONOR_NANs first.
12988
12989 2015-10-08 Martin Jambor <mjambor@suse.cz>
12990
12991 * ipa-cp.c (meet_with_1): Make the argument of abs signed. Remove
12992 unnecessary MIN.
12993
12994 2015-10-08 Yuri Rumyantsev <ysrumyan@gmail.com>
12995
12996 * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
12997 in the tail of outer-loop.
12998
12999 2015-10-08 David Edelsohn <dje.gcc@gmail.com>
13000
13001 * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
13002 return UI_NONE.
13003
13004 2015-10-08 Yuri Rumyantsev <ysrumyan@gmail.com>
13005
13006 * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
13007 "cfghooks.h", add prototypes for introduced new functions.
13008 (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
13009 checks on ability of loop unswitching to tree_unswitch_single_loop;
13010 invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
13011 on innermost loop check.
13012 (tree_unswitch_single_loop): Add all required checks on ability of
13013 loop unswitching under zero recursive level guard.
13014 (tree_unswitch_outer_loop): New function.
13015 (find_loop_guard): Likewise.
13016 (empty_bb_without_guard_p): Likewise.
13017 (used_outside_loop_p): Likewise.
13018 (get_vop_from_header): Likewise.
13019 (hoist_guard): Likewise.
13020 (check_exit_phi): Likewise.
13021
13022 2015-10-08 Marek Polacek <polacek@redhat.com>
13023
13024 * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
13025 ops element.
13026
13027 2015-10-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13028
13029 PR c/65345
13030 * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
13031 create_tmp_var_raw instead of create_tmp_var.
13032
13033 2015-10-07 Jan Hubicka <hubicka@ucw.cz>
13034
13035 * expr.c (store_expr_with_bounds): Handle aggregate moves from
13036 BLKmode.
13037 * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
13038 to define gimple type system; compare aggregates only by size.
13039
13040 2015-10-07 Jeff Law <law@redhat.com>
13041
13042 * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
13043 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
13044 here instead. Tighten test to avoid setting LOOPS_NEED_FIXUP
13045 unnecessarily.
13046
13047 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
13048 Sebastian Pop <s.pop@samsung.com>
13049
13050 * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
13051 * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
13052 (generate_isl_schedule): Same.
13053 * graphite-optimize-isl.c (scop_get_domains): Same.
13054 (apply_schedule_map_to_scop): Same.
13055 * graphite-poly.c (print_iteration_domains): Same.
13056 (remove_gbbs_in_scop): Same.
13057 (new_scop): Same.
13058 (free_scop): Same.
13059 (print_scop): Same.
13060 * graphite-poly.h (struct scop): Rename bbs to pbbs.
13061 (SCOP_BBS): Remove.
13062 * graphite-scop-detection.c (compare_bb_depths): Remove.
13063 (graphite_sort_dominated_info): Remove.
13064 (try_generate_gimple_bb): Move out of scop_detection.
13065 (all_non_dominated_preds_marked_p): Remove.
13066 (build_scop_bbs_1): Remove.
13067 (build_scop_bbs): Remove.
13068 (nb_pbbs_in_loops): Do not use SCOP_BBS.
13069 (find_scop_parameters): Same.
13070 (sese_dom_walker): Rename gather_bbs.
13071 (before_dom_children): Call try_generate_gimple_bb and collect gbb
13072 and pbb.
13073 (build_scops): Call gather_bbs.
13074 * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
13075 (add_conditions_to_constraints): Same.
13076 (build_scop_iteration_domain): Same.
13077 (build_scop_drs): Same.
13078 (new_pbb_from_pbb): Same.
13079 * sese.c (new_sese_info): Create bbs.
13080 * sese.h (struct sese_info_t): Add bbs.
13081
13082 2015-10-07 David Edelsohn <dje.gcc@gmail.com>
13083
13084 * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
13085 encoding in 64-bit mode.
13086
13087 2015-10-07 Uros Bizjak <ubizjak@gmail.com>
13088
13089 PR target/66697
13090 * config/i386/i386.c (ix86_option_override_internal): Always use
13091 8-byte minimum stack boundary in 64-bit mode.
13092 (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
13093 (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
13094 Add a REG_CFA_EXPRESSION note if needed.
13095 (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
13096 (ix86_handle_force_align_arg_pointer_attribute): New.
13097 (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
13098 (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
13099 with ix86_handle_force_align_arg_pointer_attribute.
13100 * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
13101
13102 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
13103 Sebastian Pop <s.pop@samsung.com>
13104
13105 * graphite-scop-detection.c (parameter_index_in_region): Remove
13106 use of SESE_ADD_PARAMS.
13107 (find_scop_parameters): Same.
13108 * sese.c (new_sese_info): Same.
13109 * sese.h (struct sese_info_t): Remove add_params.
13110 (SESE_ADD_PARAMS): Remove.
13111
13112 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
13113 Sebastian Pop <s.pop@samsung.com>
13114
13115 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
13116 an sese_info_p.
13117 (copy_def): Same.
13118 (copy_internal_parameters): Same.
13119 (translate_isl_ast_to_gimple): Use an sese_l.
13120 (build_iv_mapping): Same.
13121 * graphite-poly.c (new_sese): Rename new_sese_info.
13122 (free_sese): Rename free_sese_info.
13123 * graphite-poly.h (struct scop): Use an sese_info_p.
13124 (scop_set_region): Same.
13125 * graphite-scop-detection.c (struct sese_l): Moved...
13126 (get_entry_bb): Moved...
13127 (get_exit_bb): Moved...
13128 (parameter_index_in_region_1): Use an sese_info_p.
13129 (parameter_index_in_region): Same.
13130 (scan_tree_for_params): Same.
13131 (find_params_in_bb): Same.
13132 (sese_dom_walker): Use an sese_l.
13133 * graphite-sese-to-poly.c (remove_invariant_phi): Same.
13134 (reduction_phi_p): Same.
13135 (parameter_index_in_region_1): Use an sese_info_p.
13136 (propagate_expr_outside_region): Use an sese_l.
13137 * graphite.c: Replace uses of SCOP_REGION.
13138 * sese.c (sese_record_loop): Use an sese_info_p.
13139 (build_sese_loop_nests): Same.
13140 (sese_build_liveouts_use): Same.
13141 (sese_build_liveouts_bb): Same.
13142 (sese_build_liveouts_bb): Same.
13143 (sese_bad_liveouts_use): Same.
13144 (sese_reset_debug_liveouts_bb): Same.
13145 (sese_build_liveouts): Same.
13146 (new_sese): Renamed new_sese_info.
13147 (free_sese): Renamed free_sese_info.
13148 (set_rename): Use an sese_info_p.
13149 (graphite_copy_stmts_from_block): Same.
13150 (copy_bb_and_scalar_dependences): Same.
13151 (outermost_loop_in_sese_1): Use an sese_l.
13152 (outermost_loop_in_sese): Same.
13153 (if_region_set_false_region): Use an sese_info_p.
13154 (move_sese_in_condition): Same.
13155 (scalar_evolution_in_region): Use an sese_l.
13156 * sese.h (struct sese_l): ... here.
13157 (SESE_ENTRY): Remove.
13158 (SESE_ENTRY_BB): Remove.
13159 (SESE_EXIT): Remove.
13160 (SESE_EXIT_BB): Remove.
13161 (sese_contains_loop): Use an sese_info_p.
13162 (sese_nb_params): Same.
13163 (bb_in_sese_p): Use an sese_l.
13164 (stmt_in_sese_p): Same.
13165 (defined_in_sese_p): Same.
13166 (loop_in_sese_p): Same.
13167 (sese_loop_depth): Same.
13168 (struct ifsese_s): Use an sese_info_p.
13169 (gbb_loop_at_index): Use an sese_l.
13170 (nb_common_loops): Same.
13171 (scev_analyzable_p): Same.
13172
13173 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
13174
13175 * config/i386/i386.c (ix86_conditional_register_usage): Use
13176 CALL_USED_REGISTERS_MASK.
13177 * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
13178
13179 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
13180
13181 PR bootstrap/67385
13182 * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
13183 * configure: Regenerated.
13184
13185 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
13186
13187 PR target/67850
13188 * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
13189 (ix86_set_current_function): This.
13190 (TARGET_EXPAND_TO_RTL_HOOK): Removed.
13191
13192 2015-10-07 Richard Biener <rguenther@suse.de>
13193
13194 * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
13195 (vinfo_for_stmt): Adjust.
13196 (set_vinfo_for_stmt): Likewise.
13197 * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
13198 * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
13199 * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
13200 of inner loop.
13201 (vect_analyze_loop_1): Remove.
13202 (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
13203 inner loop when vectorizing an outer loop by splitting out from ...
13204 (vect_analyze_loop_form): ... here.
13205
13206 2015-10-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13207
13208 PR c/65345
13209 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
13210 Use create_tmp_var_raw instead of create_tmp_var.
13211
13212 2015-10-07 Richard Sandiford <richard.sandiford@arm.com>
13213
13214 * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
13215 (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
13216 * real.c (CACHED_FRACTION): New helper macro.
13217 (dconst_third_ptr): Use it.
13218 (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
13219 * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
13220 dconst_sixth.
13221 (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
13222
13223 2015-10-06 Jeff Law <law@redhat.com>
13224
13225 PR tree-optimization/67816
13226 * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
13227 from remove_jump_threads_starting_at. Accept an edge rather than
13228 a basic block.
13229 * tree-ssa-threadupdate.c (removed_edges): New hash table.
13230 (remove_jump_threads_including): Note edges that get removed from
13231 the CFG for later pruning of jump threading paths including them.
13232 (thread_through_all_blocks): Remove paths which include edges that
13233 have been removed.
13234 * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
13235 on each outgoing edges when optimizing away a control statement.
13236
13237 2015-10-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13238
13239 * reorg.c (emit_delay_sequence): Store list of delay slot insns
13240 in a vector instead of rtx_insn_list.
13241 (add_to_delay_list): Likewise.
13242 (delete_from_delay_slot): Likewise.
13243 (optimize_skip): Likewise.
13244 (redirect_with_delay_list_safe_p): Likewise.
13245 (check_annul_list_true_false): Likewise.
13246 (steal_delay_list_from_target): Likewise.
13247 (steal_delay_list_from_fallthrough): Likewise.
13248 (redundant_insn): Likewise.
13249 (fill_simple_delay_slots): Likewise.
13250 (fill_slots_from_thread): Likewise.
13251 (fill_eager_delay_slots): Likewise.
13252 (relax_delay_slots): Likewise.
13253
13254 2015-10-06 Sandra Loosemore <sandra@codesourcery.com>
13255
13256 * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
13257 For -mgpopt=local, also exclude unintialized common symbols.
13258 * doc/invoke.texi (Nios II Options): Document the change.
13259
13260 2015-10-07 Kugan Vivekanandarajah <kuganv@linaro.org>
13261
13262 * config/aarch64/iterators.md (vwcore): Add missing cases for
13263 V4HF/V8HF modes.
13264
13265 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
13266 Sebastian Pop <s.pop@samsung.com>
13267
13268 * graphite-poly.c (new_scop): Initialize drs.
13269 * graphite-poly.h (struct dr_info): New.
13270 (struct scop): Add drs.
13271 * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
13272 (pdr_add_memory_accesses): Same.
13273 (build_poly_dr): Same.
13274 (build_alias_set): Same.
13275 (build_scop_drs): Same.
13276 (build_pbb_drs): Remove.
13277 * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
13278 * tree-data-ref.h (data_reference): Remove alias_set.
13279
13280 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
13281 Sebastian Pop <s.pop@samsung.com>
13282
13283 * graphite-poly.c (free_data_refs_aux): Remove.
13284 (free_gimple_poly_bb): Do not call free_data_refs_aux.
13285 * graphite-poly.h (struct base_alias_pair): Remove.
13286 * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
13287 base_alias_pair and dr->aux.
13288 (build_alias_set): Same.
13289 * tree-data-ref.c (create_data_ref): Initialize alias_set.
13290 * tree-data-ref.h (data_reference): Add alias_set.
13291
13292 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
13293 Sebastian Pop <s.pop@samsung.com>
13294
13295 * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
13296 Do not set PDR_BASE_OBJECT_SET.
13297 * graphite-poly.h (poly_dr): Same.
13298 (PDR_BASE_OBJECT_SET): Remove.
13299 (new_poly_dr): Update decl.
13300 * graphite-sese-to-poly.c (build_poly_dr): Update call to
13301 new_poly_dr.
13302 (write_alias_graph_to_ascii_dimacs): Remove.
13303 (write_alias_graph_to_ascii_dot): Remove.
13304 (write_alias_graph_to_ascii_ecc): Remove.
13305 (dr_same_base_object_p): Remove.
13306 (build_alias_set_optimal_p): Rename build_alias_set. Remove dead
13307 code.
13308 (build_base_obj_set_for_drs): Remove.
13309 (dump_alias_graphs): Remove.
13310 (build_scop_drs): Remove dead code.
13311
13312 2015-10-05 Michael Meissner <meissner@linux.vnet.ibm.com>
13313 Peter Bergner <bergner@vnet.ibm.com>
13314
13315 PR target/67808
13316 * config/rs6000/rs6000.md (extenddftf2): In the expander, only
13317 allow registers, but provide insns for the combiner to create for
13318 loads from memory. Separate VSX code from non-VSX code. For
13319 non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
13320 externaldftf2_internal to externaldftf2_fprs. Reorder constraints
13321 so that registers come before memory operations. Drop support from
13322 converting DFmode to TFmode, if the DFmode value is in a GPR
13323 register.
13324 (extenddftf2_fprs): Likewise.
13325 (extenddftf2_internal): Likewise.
13326 (extenddftf2_vsx): Likewise.
13327 (extendsftf2): In the expander, only allow registers, but provide
13328 insns for the combiner to create for stores and loads.
13329
13330 2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13331
13332 * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
13333 from the decl parameter.
13334
13335 2015-10-06 Nathan Sidwell <nathan@codesourcery.com>
13336
13337 PR 67861
13338 * gimple-fold.c (gimple_fold_builtin): Add break after
13339 BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
13340
13341 2015-10-06 H.J. Lu <hongjiu.lu@intel.com>
13342
13343 * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
13344 to scop->isl_context.
13345
13346 2015-10-06 Eric Botcazou <ebotcazou@adacore.com>
13347
13348 * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
13349 (output_probe_stack_range): Rotate the loop and simplify.
13350 (thumb1_expand_prologue): Tweak sorry message.
13351 * config/arm/arm.md (probe_stack): Use bare string.
13352
13353 2015-10-06 Nick Clifton <nickc@redhat.com>
13354
13355 * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
13356
13357 2015-10-06 Nick Clifton <nickc@redhat.com>
13358
13359 * config/msp430/msp430.c (ATTR_NOINIT): New constant.
13360 (ATTR_PERSIST): New constant.
13361 (msp430_data_attr): New function - verifies an attribute that only
13362 applies to variables.
13363 (msp430_attributes): Add noinit and persistent attributes.
13364 (noinit_section): New variable.
13365 (presis_section): New variable.
13366 (TARGET_ASM_INIT_SECTIONS): Define.
13367 (msp430_init_sections): New function - initialises the noinit and
13368 persist section variables.
13369 (msp430_select_section): Add support for noinit and persist
13370 attributes.
13371 (msp430_section_type_flags): Likewise.
13372 * doc/extend.texi: Document the reent, critical, wakeup, noinit
13373 and persistent attributes.
13374
13375 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
13376 Sebastian Pop <s.pop@samsung.com>
13377
13378 * graphite-dependences.c (scop_get_transformed_schedule): Remove.
13379 (no_violations): Remove.
13380 (subtract_commutative_associative_deps): Remove.
13381 (compute_deps): Do not call subtract_commutative_associative_deps.
13382 (transform_is_safe): Remove.
13383 (graphite_legal_transform): Remove.
13384 * graphite-poly.h (graphite_legal_transform): Remove.
13385
13386 2015-10-05 Aditya Kumar <hiraditya@msn.com>
13387
13388 * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
13389 which are in this region are passed so gcc_assert and remove redundant
13390 computation.
13391 * sese.c (sese_build_liveouts): Pass only those bbs which are not
13392 in region.
13393 (sese_bad_liveouts_use): Only BBs which are not in region are passed so
13394 gcc_assert on that and remove unnecessary computation.
13395 (sese_build_liveouts_use): Same.
13396
13397 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
13398
13399 * graphite-dependences.c (scop_get_reads): Renamed scop->context
13400 to scop->param_context.
13401 (scop_get_must_writes): Same.
13402 (scop_get_may_writes): Same.
13403 (scop_get_original_schedule): Same.
13404 (scop_get_transformed_schedule): Same.
13405 (subtract_commutative_associative_deps): Same.
13406 * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
13407 (generate_isl_context): Same.
13408 (generate_isl_schedule): Same.
13409 (scop_to_isl_ast): Same.
13410 (graphite_regenerate_ast_isl): Same.
13411 * graphite-optimize-isl.c (scop_get_domains): Same.
13412 (optimize_isl): Renamed scop->context to scop->param_context.
13413 * graphite-poly.c (new_poly_bb): Change the type of argument to
13414 gimple_poly_bb_p.
13415 (new_scop): Renamed scop->context to scop->param_context.
13416 (free_scop): Same.
13417 (print_scop_context): Same.
13418 * graphite-poly.h (new_poly_dr): Change the type of argument from
13419 void* to data_reference_p.
13420 (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
13421 (new_poly_bb): Change the type of argument from void* to
13422 gimple_poly_bb_p.
13423 (pbb_set_black_box): Same.
13424 (struct scop): Rename context to param_context, ctx to isl_context.
13425 * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
13426 Move declarations closer to assignment.
13427 (find_params_in_bb): Same.
13428 (find_scop_parameters): Same.
13429 * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
13430 Global to be used for statement IDs.
13431 (isl_id_for_pbb): Use ssa_name_version_typesize.
13432 (simple_copy_phi_p): Move declarations closer to assignment.
13433 (build_pbb_scattering_polyhedrons): Same.
13434 (build_scop_scattering): Same.
13435 (isl_id_for_ssa_name): Same.
13436 (extract_affine_name): Same.
13437 (extract_affine_int): Same.
13438 (extract_affine): Same.
13439 (set_scop_parameter_dim): Use renamed member.
13440 (build_loop_iteration_domains): Same.
13441 (add_param_constraints): Same.
13442 (build_scop_iteration_domain): Same.
13443 (pdr_add_data_dimensions): Same.
13444 (build_poly_dr): Same.
13445 (build_scop_drs): Move declarations closer to assignment.
13446 (analyze_drs_in_stmts): Same.
13447 (insert_out_of_ssa_copy): Same.
13448 (insert_out_of_ssa_copy_on_edge): Same.
13449 (propagate_expr_outside_region): Same.
13450 (rewrite_phi_out_of_ssa): Same.
13451 (rewrite_degenerate_phi): Same.
13452 (rewrite_reductions_out_of_ssa): Same.
13453 (rewrite_cross_bb_scalar_dependence): Same.
13454 (handle_scalar_deps_crossing_scop_limits): Same.
13455 (rewrite_cross_bb_scalar_deps): Same.
13456 * graphite.c (graphite_transform_loops): Use renamed member.
13457
13458 2015-10-06 Uros Bizjak <ubizjak@gmail.com>
13459
13460 PR c/65345
13461 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
13462 create_tmp_var_raw instead of create_tmp_var.
13463
13464 2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13465
13466 PR c/65345
13467 * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
13468 Use create_tmp_var_raw instead of create_tmp_var.
13469
13470 2015-10-06 Alexander Fomin <alexander.fomin@intel.com>
13471
13472 PR target/67849
13473 * config/i386/sse.md (define_split vec_select/V8FI): Restrict
13474 split for upper-bank registers when target does not support
13475 AVX512VL.
13476 (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
13477 split when target does not support AVX512VL.
13478
13479 2015-10-06 David Edelsohn <dje.gcc@gmail.com>
13480
13481 PR c/65345
13482 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
13483 Adjust to use create_tmp_var_raw instead of create_tmp_var.
13484
13485 2015-10-06 Nick Clifton <nickc@redhat.com>
13486
13487 * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
13488 multiplication.
13489
13490 2015-10-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
13491
13492 * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
13493 (case ${target}): Add znver1.
13494 * config/i386/cpuid.h(bit_CLZERO): Define.
13495 * config/i386/driver-i386.c: (host_detect_local_cpu): Let
13496 -march=native recognize znver1 processors.
13497 * config/i386/i386-c.c (ix86_target_macros_internal): Add
13498 znver1, clzero def_and_undef.
13499 * config/i386/i386.c (struct processor_costs znver1_cost): New.
13500 (m_znver1): New definition.
13501 (m_AMD_MULTIPLE): Includes m_znver1.
13502 (processor_target_table): Add znver1 entry.
13503 (ix86_target_string) : Add clzero entry.
13504 (static const char *const cpu_names): Add znver1 entry.
13505 (ix86_option_override_internal): Add znver1 instruction sets.
13506 (PTA_CLZERO) : New definition.
13507 (ix86_option_override_internal): Handle new clzerooption.
13508 (ix86_issue_rate): Add znver1.
13509 (ix86_adjust_cost): Add znver1.
13510 (ia32_multipass_dfa_lookahead): Add znver1.
13511 (has_dispatch): Add znver1.
13512 * config/i386/i386.h (TARGET_znver1): New definition.
13513 (TARGET_CLZERO): Define.
13514 (TARGET_CLZERO_P): Define.
13515 (struct ix86_size_cost): Add TARGET_ZNVER1.
13516 (enum processor_type): Add PROCESSOR_znver1.
13517 * config/i386/i386.md (define_attr "cpu"): Add znver1.
13518 (set_attr znver1_decode): New definitions for znver1.
13519 * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
13520 (mclzero): New.
13521 * config/i386/mmx.md (set_attr znver1_decode): New definitions
13522 for znver1.
13523 * config/i386/sse.md (set_attr znver1_decode): Likewise.
13524 * config/i386/x86-tune.def: Add znver1 tunings.
13525 * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
13526 * doc/invoke.texi: Add details about znver1
13527
13528 2015-10-06 Richard Biener <rguenther@suse.de>
13529
13530 PR tree-optimization/67859
13531 * tree-ssa-pre.c (create_expression_by_pieces): Properly
13532 discard not inserted stmts.
13533
13534 2015-10-06 Jonathan Wakely <jwakely@redhat.com>
13535
13536 * doc/extend.texi (Template Instantiation): Reorder options and
13537 de-emphasize -frepo.
13538 * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
13539 example instead of -frepo.
13540
13541 2015-10-06 Eric Botcazou <ebotcazou@adacore.com>
13542
13543 PR c/65345
13544 * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
13545 use create_tmp_var_raw rather than create_tmp_var.
13546
13547 2015-10-06 Richard Biener <rguenther@suse.de>
13548
13549 * tree-vectorizer.h (vec_info): New base class for...
13550 (_loop_vec_info): ... this and ...
13551 (_bb_vec_info): ... this.
13552 (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
13553 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
13554 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
13555 vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
13556 vect_destroy_datarefs): Adjust interface to take a vec_info *
13557 rather than both a loop_vec_info and a bb_vec_info argument.
13558 * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
13559 vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
13560 vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
13561 vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
13562 accordingly.
13563 * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
13564 (destroy_loop_vec_info, vect_analyze_loop_2,
13565 vect_is_simple_reduction_1, get_initial_def_for_induction,
13566 vect_create_epilog_for_reduction, vectorizable_reduction,
13567 vectorizable_live_operation, vect_transform_loop): Adjust.
13568 * tree-vect-patterns.c (type_conversion_p,
13569 vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
13570 vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
13571 vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
13572 check_bool_pattern, vect_recog_bool_pattern,
13573 vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
13574 * tree-vect-slp.c (vect_get_and_check_slp_defs,
13575 vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
13576 vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
13577 vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
13578 (new_bb_vec_info): Initialize base classs.
13579 * tree-vect-stmts.c (record_stmt_cost, process_use,
13580 vect_get_vec_def_for_operand, vect_finish_stmt_generation,
13581 vectorizable_mask_load_store, vectorizable_call,
13582 vectorizable_simd_clone_call, vectorizable_conversion,
13583 vectorizable_assignment, vectorizable_shift,
13584 vectorizable_operation, vectorizable_store,
13585 vectorizable_load, vect_is_simple_cond, vectorizable_condition,
13586 new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
13587 * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
13588
13589 2015-10-05 Kaz Kojima <kkojima@gcc.gnu.org>
13590
13591 PR c/65345
13592 * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
13593 create_tmp_var_raw rather than create_tmp_var.
13594
13595 2015-10-05 Marek Polacek <polacek@redhat.com>
13596
13597 * tree-ssa-loop-im.c
13598 (move_computations_dom_walker::before_dom_children): Don't set
13599 SSA_NAME_ANTI_RANGE_P.
13600 * tree-ssa-phiopt.c (value_replacement): Likewise.
13601
13602 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
13603 Sebastian Pop <s.pop@samsung.com>
13604
13605 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
13606
13607 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
13608 Sebastian Pop <s.pop@samsung.com>
13609
13610 * graphite-poly.c (new_gimple_poly_bb): ... here.
13611 (free_data_refs_aux): ... here.
13612 (free_gimple_poly_bb): ... here.
13613 (remove_gbbs_in_scop): ... here.
13614 (new_scop): Call new_sese.
13615 (free_scop): Call remove_gbbs_in_scop and free_sese.
13616 * graphite-poly.h (base_alias_pair): ... here.
13617 (new_gimple_poly_bb): Declare.
13618 (free_gimple_poly_bb): Declare.
13619 * graphite-scop-detection.c (parameter_index_in_region_1):
13620 (parameter_index_in_region): ... here.
13621 (scan_tree_for_params): ... here.
13622 (find_params_in_bb): ... here.
13623 (find_scop_parameters): ... here.
13624 (build_scops): Call find_scop_parameters.
13625 * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
13626 (free_scops): Move...
13627 (single_pred_cond_non_loop_exit): Move...
13628 (sese_dom_walker::before_dom_children): Move...
13629 (sese_dom_walker::after_dom_children): Move...
13630 (build_poly_scop): Move...
13631 * graphite-sese-to-poly.h (base_alias_pair): Move...
13632 * graphite.c (free_scops): ... here.
13633
13634 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
13635 Sebastian Pop <s.pop@samsung.com>
13636
13637 * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
13638 (trivially_empty_bb_p): Move...
13639 (same_close_phi_node): Move...
13640 (new_gimple_poly_bb): Move...
13641 (compare_bb_depths): Move...
13642 (graphite_sort_dominated_info): Move...
13643 (remove_duplicate_close_phi): Move...
13644 (make_close_phi_nodes_unique): Move...
13645 (canonicalize_loop_closed_ssa): Move...
13646 (canonicalize_loop_closed_ssa_form): Move...
13647 (loop_ivs_can_be_represented): Move...
13648 (single_pred_cond_non_loop_exit): Move...
13649 (graphite_can_represent_init): Move...
13650 (graphite_can_represent_scev): Move...
13651 (stmt_has_simple_data_refs_p): Move...
13652 (stmt_has_side_effects): Move...
13653 (graphite_can_represent_stmt): Move...
13654 (scop_detection): ... here.
13655 (sese_dom_walker): ... and here.
13656 (build_scops): Call all moved functions.
13657 * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
13658 (all_non_dominated_preds_marked_p): Move...
13659 (build_scop_bbs_1): Move...
13660 (build_scop_bbs): Move...
13661 (set_scop_parameter_dim): Move...
13662 (nb_pbbs_in_loops): Move...
13663 (build_poly_scop): Do not call all the moved functions.
13664
13665 2015-10-05 Martin Jambor <mjambor@suse.cz>
13666 Jan Hubicka <hubicka@ucw.cz>
13667
13668 * ipa-cp.c (ipcp_alignment_lattice): New type.
13669 (ipcp_param_lattices): Use the above to represent alignment.
13670 (ipcp_alignment_lattice::print): New function.
13671 (print_all_lattices): Use it to print alignment information.
13672 (ipcp_alignment_lattice::top_p): New function.
13673 (ipcp_alignment_lattice::bottom_p): Likewise.
13674 (ipcp_alignment_lattice::set_to_bottom): Likewise.
13675 (ipcp_alignment_lattice::meet_with_1): Likewise.
13676 (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
13677 (set_all_contains_variable): Use set_to_bottom of alignment lattice.
13678 (initialize_node_lattices): Likewise.
13679 (propagate_alignment_accross_jump_function): Work with the new class
13680 for alignment lattices.
13681 (propagate_constants_accross_call): Pass only the alignment lattice to
13682 propagate_alignment_accross_jump_function.
13683 (ipcp_store_alignment_results): Work with the new class for alignment
13684 lattices.
13685
13686 2015-10-05 Marek Polacek <polacek@redhat.com>
13687
13688 PR tree-optimization/67821
13689 * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
13690
13691 2015-10-05 Thomas Schwinge <thomas@codesourcery.com>
13692
13693 PR other/65021
13694 * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
13695 function to...
13696 (mkoffload_cleanup): ... this. Adjust all users.
13697 (maybe_unlink): Look at save_temps and verbose flags instead of
13698 debug flag.
13699 (main): Parse "-save-temps" flag.
13700 (generate_target_descr_file, generate_target_offloadend_file)
13701 (generate_host_descr_file, prepare_target_image): Pass it on.
13702 * config/nvptx/mkoffload.c (tool_cleanup): Implement.
13703 (mkoffload_cleanup): New function.
13704 (maybe_unlink): Look at save_temps and verbose flags instead of
13705 debug flag.
13706 (main): Instead of calling utils_cleanup, register atexit handler
13707 for mkoffload_cleanup.
13708 (main): Parse "-save-temps" flag.
13709 (compile_native, main): Pass it on.
13710 * lto-wrapper.c (compile_offload_image): Likewise.
13711
13712 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13713
13714 * gimple.h (gimple_op_ptr): Require a non const gimple *.
13715 (gimple_assign_lhs_ptr): Likewise.
13716 (gimple_assign_rhs1_ptr): Likewise.
13717 (gimple_assign_rhs2_ptr): Likewise.
13718 (gimple_assign_rhs3_ptr): Likewise.
13719 (gimple_call_lhs_ptr): Likewise.
13720 (gimple_call_fn_ptr): Likewise.
13721 (gimple_call_chain_ptr): Likewise.
13722 (gimple_call_arg_ptr): Likewise.
13723 (gimple_cond_lhs_ptr): Likewise.
13724 (gimple_cond_rhs_ptr): Likewise.
13725 (gimple_switch_index_ptr): Likewise.
13726 (gimple_return_retval_ptr): Likewise.
13727
13728 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13729
13730 * gimple.h (gimple_asm_input_op_ptr): Remove.
13731 (gimple_asm_output_op_ptr): Likewise.
13732
13733 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13734
13735 * gimple.h (gimple_location_ptr): Remove.
13736 * tree-vrp.c (check_all_array_refs): Adjust.
13737
13738 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13739
13740 * tree-ssa-operands.c (build_uses): store tree * instead of
13741 tree.
13742 (finalize_ssa_uses): Adjust.
13743 (append_use): Likewise.
13744 (verify_ssa_operands): Likewise.
13745
13746 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
13747
13748 * real.h (build_real_truncate): Declare.
13749 * tree.c (build_real_truncate): New function.
13750 (strip_float_extensions): Use it.
13751 * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
13752 (fold_builtin_hypot, fold_builtin_pow): Likewise.
13753 * match.pd: Likewise.
13754
13755 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
13756 Jiong Wang <jiong.wang@arm.com>
13757
13758 * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
13759
13760 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
13761
13762 * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
13763 * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
13764 (aarch64_print_operand, aarch64_float_const_representable_p)
13765 (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
13766 instead of REAL_VALUE_FROM_CONST_DOUBLE.
13767 * config/arc/arc.c (arc_print_operand): Likewise.
13768 * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
13769 (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
13770 (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
13771 Likewise.
13772 * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
13773 (consttable_16): Likewise.
13774 * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
13775 * config/avr/avr.c (avr_print_operand): Likewise.
13776 * config/bfin/bfin.md: Likewise (in a define_split).
13777 * config/c6x/c6x.md: Likewise (in a define_split).
13778 * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
13779 (cr16_print_operand): Likewise.
13780 * config/cris/cris.c (cris_print_operand): Likewise.
13781 * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
13782 * config/fr30/fr30.c (fr30_print_operand): Likewise.
13783 (fr30_const_double_is_zero): Likewise.
13784 * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
13785 * config/frv/frv.md: Likewise (in a define_split).
13786 * config/frv/predicates.md (int_2word_operand): Likewise.
13787 * config/h8300/h8300.c (h8300_print_operand): Likewise.
13788 * config/i386/i386.c (standard_80387_constant_p): Likewise.
13789 (ix86_print_operand, ix86_split_to_parts): Likewise.
13790 * config/i386/i386.md: Likewise (in a define_split).
13791 * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
13792 * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
13793 * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
13794 * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
13795 (print_operand): Likewise.
13796 * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
13797 * config/mep/mep.md: Likewise (in define_split).
13798 * config/microblaze/microblaze.c (microblaze_const_double_ok)
13799 (print_operand): Likewise.
13800 * config/mips/mips.md (consttable_float): Likewise.
13801 * config/mmix/mmix.c (mmix_intval): Likewise.
13802 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
13803 * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
13804 * config/pa/pa.c (pa_singlemove_string): Likewise.
13805 * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
13806 (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
13807 * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
13808 (output_toc): Likewise.
13809 * config/rs6000/rs6000.md: Likewise (in define_splits).
13810 * config/rx/rx.c (rx_print_operand): Likewise.
13811 * config/s390/s390.c (s390_output_pool_entry): Likewise.
13812 * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
13813 * config/sh/sh.md (consttable_sf, consttable_df): Likewise
13814 (and also in define_splits).
13815 * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
13816 (fp_high_losum_p): Likewise.
13817 * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
13818 (*movsf_high): Likewise.
13819 * config/spu/spu.c (const_double_to_hwint): Likewise.
13820 * config/v850/v850.c (const_double_split): Likewise.
13821 * config/vax/vax.c (vax_float_literal): Likewise.
13822 * config/visium/visium.c (visium_expand_copysign): Likewise.
13823 * config/visium/visium.md: Likewise (in define_split).
13824 * config/xtensa/predicates.md (const_float_1_operand): Likewise.
13825 * config/xtensa/xtensa.c (print_operand): Likewise.
13826 (xtensa_output_literal): Likewise.
13827 * cprop.c (implicit_set_cond_p): Likewise.
13828 * dwarf2out.c (insert_float): Likewise.
13829 * expmed.c (expand_mult, make_tree): Likewise.
13830 * expr.c (compress_float_constant): Likewise.
13831 * rtlanal.c (split_double): Likewise.
13832 * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
13833 (simplify_const_unary_operation, simplify_binary_operation_1)
13834 (simplify_const_binary_operation): Likewise.
13835 (simplify_const_relational_operation): Likewise.
13836 * varasm.c (output_constant_pool_2): Likewise.
13837
13838 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
13839
13840 * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
13841 instead of CONST_DOUBLE_FROM_REAL_VALUE.
13842 (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
13843 * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
13844 instead of CONST_DOUBLE_FROM_REAL_VALUE.
13845 * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
13846 * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
13847 (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
13848 (ix86_emit_swsqrtsf): Likewise.
13849 * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
13850 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
13851 (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
13852 * config/pa/pa.c (pa_expand_builtin): Likewise.
13853 * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
13854 (rs6000_scale_v2df): Likewise.
13855 * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
13856 * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
13857 (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
13858 * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
13859 (vec_ctul): Likewise.
13860 * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
13861 * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
13862 * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
13863 * cse.c (fold_rtx): Likewise.
13864 * emit-rtl.c (immed_double_const): Likewise (in comments).
13865 (init_emit_once): Likewise.
13866 * expr.c (compress_float_constant, expand_expr_real_1)
13867 (const_vector_from_tree): Likewise.
13868 * optabs.c (expand_float, expand_fix): Likewise.
13869 * reg-stack.c (reg_to_stack): Likewise.
13870 * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
13871 (simplify_const_unary_operation, simplify_binary_operation_1)
13872 (simplify_const_binary_operation, simplify_relational_operation)
13873 (simplify_immed_subreg): Likewise.
13874
13875 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
13876
13877 * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
13878 * doc/tm.texi: Regenerate.
13879 * real.h (REAL_ARITHMETIC): Delete.
13880 * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
13881 (ix86_expand_round_sse4): Use real_arithmetic instead of
13882 REAL_ARITHMETIC.
13883 * config/i386/sse.md (round<mode>2): Likewise.
13884 * rtl.h (rtx_to_tree_code): Likewise (in comment).
13885 * explow.c (rtx_to_tree_code): Likewise (in comment).
13886 * match.pd: Likewise.
13887 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13888 * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
13889 (expand_pow_as_sqrts): Likewise.
13890 * tree-pretty-print.c (dump_generic_node): Remove code that
13891 was conditional on REAL_ARITHMETIC being undefined.
13892
13893 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
13894
13895 * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
13896 * doc/tm.texi: Regenerate.
13897 * real.h (real_less): Declare.
13898 (REAL_VALUES_LESS): Delete.
13899 * real.c (real_less): New function.
13900 (real_compare): Use it.
13901 * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
13902 of REAL_VALUES_LESS.
13903 * config/microblaze/microblaze.c (microblaze_const_double_ok):
13904 Likewise.
13905 * fold-const.c (fold_convert_const_int_from_real): Likewise.
13906 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
13907 (simplify_const_relational_operation): Likewise.
13908 * tree-call-cdce.c (check_pow): Likewise.
13909 (gen_conditions_for_pow_cst_base): Likewise.
13910
13911 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
13912
13913 * real.h (REAL_VALUES_IDENTICAL): Delete.
13914 * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
13915 instead of REAL_VALUES_IDENTICAL.
13916 * fold-const.c (operand_equal_p): Likewise.
13917 * ipa-icf.c (sem_variable::equals): Likewise.
13918 * tree-complex.c (some_nonzerop): Likewise.
13919 (expand_complex_multiplication): Likewise.
13920 * tree.c (simple_cst_equal): Likewise.
13921 * varasm.c (compare_constant): Likewise.
13922
13923 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
13924
13925 * real.h (real_equal): Declare.
13926 (REAL_VALUES_EQUAL): Delete.
13927 * real.c (real_equal): New function.
13928 (real_compare): Use it.
13929 * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
13930 * doc/tm.texi: Regenerate.
13931 * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
13932 real_equal instead of REAL_VALUES_EQUAL.
13933 * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
13934 * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
13935 (fp_const_from_val): Likewise.
13936 * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
13937 * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
13938 (floating_exact_log2): Likewise.
13939 * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
13940 * config/vax/vax.c (vax_float_literal): Likewise.
13941 * config/xtensa/predicates.md (const_float_1_operand): Likewise.
13942 * cprop.c (implicit_set_cond_p): Likewise.
13943 * expmed.c (expand_mult): Likewise.
13944 * fold-const.c (const_binop): Likewise.
13945 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13946 (simplify_const_binary_operation): Likewise.
13947 (simplify_const_relational_operation): Likewise.
13948 * tree-call-cdce.c (check_pow): Likewise.
13949 (gen_conditions_for_pow_cst_base): Likewise.
13950 * tree-inline.c (estimate_num_insns): Likewise.
13951 * tree-ssa-dom.c (record_equality): Likewise.
13952 * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
13953 (gimple_expand_builtin_pow): Likewise.
13954 (pass_optimize_widening_mul::execute): Likewise.
13955 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
13956 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
13957 * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
13958
13959 2015-10-05 Richard Biener <rguenther@suse.de>
13960
13961 PR ipa/67783
13962 * ipa-inline-analysis.c (estimate_function_body_sizes): Only
13963 consider loop header PHI defs as IVs.
13964
13965 2015-10-05 Richard Biener <rguenther@suse.de>
13966
13967 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
13968 call handling ...
13969 (create_expression_by_pieces): ... here and build GIMPLE
13970 calls directly. Use gimple_build API and avoid force_gimple_operand.
13971 (insert_into_preds_of_block): Simplify.
13972 (do_regular_insertion): Add comment.
13973
13974 2015-10-04 Jason Merrill <jason@redhat.com>
13975
13976 * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
13977
13978 2015-10-04 Uros Bizjak <ubizjak@gmail.com>
13979
13980 * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
13981 check for general register.
13982 (ix86_emit_save_regs): Ditto.
13983 (ix86_emit_save_regs_using_mov): Ditto.
13984 (ix86_emit_restore_regs_using_pop): Ditto.
13985 (ix86_emit_restore_regs_using_mov): Ditto.
13986
13987 2015-10-03 Marek Polacek <polacek@redhat.com>
13988
13989 * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
13990 (insn-dfatab.o): Likewise.
13991
13992 2015-10-03 Max Filippov <jcmvbkbc@gmail.com>
13993
13994 * config.gcc (xtensa*-*-uclinux*): New configuration.
13995 * config/xtensa/uclinux.h: New file.
13996 * config/xtensa/uclinux.opt: New file.
13997
13998 2015-10-03 Jonathan Wakely <jwakely@redhat.com>
13999
14000 * doc/cpp.texi (Standard Predefined Macros): Document value of
14001 __cplusplus for C++14.
14002
14003 2015-10-02 Bernd Schmidt <bernds@codesourcery.com>
14004
14005 * gcc.c (process_command): Use spec_machine rather than
14006 spec_host_machine to build tooldir_prefix2.
14007
14008 2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
14009 Bernd Schmidt <bernds@codesourcery.com>
14010
14011 * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
14012 (Token, Stmt): Remove structs.
14013 (decls, vars, fns): Remove variables.
14014 (alloc_comment, append_stmt, is_keyword): Remove macros.
14015 (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
14016 (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
14017 (parse_init, parse_file): Remove functions.
14018 (read_file): Accept a pointer to a length and store into it.
14019 (process): Don't try to parse the input file, just write it out as
14020 a string, but looking for maps. Also write out the length.
14021 (main): Don't use "-S" to compile PTX code.
14022
14023 2015-10-02 Jeff Law <law@redhat.com>
14024
14025 * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
14026 fixups.
14027
14028 2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
14029
14030 PR target/67822
14031 * config/nvptx/mkoffload.c (main): Scan the argument vector for
14032 -fopenmp, and skip generating an offloading image if specified.
14033
14034 2015-10-02 Uros Bizjak <ubizjak@gmail.com>
14035
14036 * system.h (ROUND_UP): New macro definition.
14037 (ROUND_DOWN): Ditto.
14038 * ggc-page.c (ROUND_UP): Remove local macro definition.
14039 (PAGE_ALIGN): Implement using ROUND_UP macro.
14040
14041 * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
14042 * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
14043 to align values.
14044 (ix86_compute_frame_layout): Ditto.
14045 (ix86_expand_prologue): Ditto.
14046 (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
14047 to round down values.
14048 (expand_set_or_movmem_via_rep): Ditto.
14049
14050 2015-10-02 Marek Polacek <polacek@redhat.com>
14051
14052 * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
14053
14054 2015-10-02 Aditya Kumar <aditya.k7@samsung.com>
14055
14056 * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
14057 (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
14058 * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
14059 (free_gimple_bb): Renamed free_gimple_poly_bb.
14060 (try_generate_gimple_bb): Hoist loop invariant code.
14061 (analyze_drs_in_stmts): Same.
14062 (build_scop_drs): Call renamed functions.
14063 (new_pbb_from_pbb): Same.
14064 (scop_ivs_can_be_represented): Delete as functionality now moved to
14065 graphite-scop-detection.c
14066 (build_poly_scop): Remove call to scop_ivs_can_be_represented.
14067
14068 2015-10-02 Aditya Kumar <hiraditya@msn.com>
14069
14070 * graphite-scop-detection.c (stmt_has_side_effects): New function
14071 outlined from stmt_simple_for_scop_p.
14072 (graphite_can_represent_stmt): Same.
14073 (stmt_simple_for_scop_p): Moved code out of this function for better
14074 readability.
14075
14076 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
14077
14078 * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
14079 F_AVX512IFMA.
14080 (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
14081
14082 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14083
14084 * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
14085
14086 2015-10-02 Vladimir Makarov <vmakarov@redhat.com>
14087
14088 PR rtl-optimization/67756
14089 * lra-constraints.c (match_reload): Add a new parameter. Use it
14090 for creating a pseudo with the same value.
14091 (curr_insn_transform): Pass a new argument to match_reload.
14092
14093 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
14094
14095 * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
14096 (expand_vec_perm_even_odd_1): Handle V64QImode.
14097 (ix86_expand_vec_perm_const_1): Try expansion with
14098 expand_vec_perm_even_odd_trunc as well.
14099 * config/i386/sse.md (VI124_AVX512F): Rename to ...
14100 (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
14101 to V54QI.
14102 (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
14103 (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
14104 to V32HI and V16SI.
14105 (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
14106 (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
14107 (define_expand "vec_unpacks_lo_<mode>"): Ditto.
14108 (define_expand "vec_unpacks_hi_<mode>"): Ditto.
14109 (define_expand "vec_unpacku_lo_<mode>"): Ditto.
14110 (define_expand "vec_unpacku_hi_<mode>"): Ditto.
14111
14112 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
14113
14114 * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
14115 -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
14116
14117 2015-10-02 Jason Merrill <jason@redhat.com>
14118
14119 PR c/59218
14120 * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
14121 (diagnose_tm_1_op): Also diagnose volatile accesses in
14122 transaction_safe function.
14123
14124 2015-10-02 Jonathan Wakely <jwakely@redhat.com>
14125
14126 * system.h (malloc.h): Don't include obsolete header.
14127
14128 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14129
14130 * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
14131 (TLS_SECTION_ASM_FLAG): Delete.
14132
14133 2015-10-02 Marek Polacek <polacek@redhat.com>
14134
14135 PR c/64249
14136 * doc/invoke.texi: Document -Wduplicated-cond.
14137 * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
14138 (insn-dfatab.o): Likewise.
14139 * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
14140 warning.
14141
14142 2015-10-02 Oleg Endo <olegendo@gcc.gnu.org>
14143
14144 * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
14145 sequences.
14146
14147 2015-10-02 Renlin Li <renlin.li@arm.com>
14148
14149 * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
14150
14151 2015-10-02 Renlin Li <renlin.li@arm.com>
14152
14153 PR target/66776
14154 * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
14155
14156 2015-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14157
14158 PR rtl-optimization/67786
14159 PR rtl-optimization/67787
14160 * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
14161 it modifies a reg used in the condition calculation.
14162
14163 2015-10-02 James Greenhalgh <james.greenhalgh@arm.com>
14164
14165 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
14166 alternatives for reads from memory and moves from general-purpose
14167 registers.
14168 (*aarch64_combinez_be<mode>): Likewise.
14169
14170 2015-10-02 Kai Tietz <ktietz70@googlemail.com>
14171
14172 PR target/51726
14173 * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
14174 selectany within this function without need to keep attribute.
14175 (i386_pe_encode_section_info): Remove selectany-code.
14176
14177 2015-10-02 Richard Biener <rguenther@suse.de>
14178
14179 * tree-ssa-sccvn.c (has_VN_INFO): New function.
14180 (free_scc_vn): Use it.
14181 (visit_use): Remove dead code and refactor to use gassign
14182 and use less indentation.
14183
14184 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
14185
14186 PR target/67788
14187 PR target/67789
14188 * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
14189 (rs6000_cannot_copy_insn_p): New function.
14190 * config/rs6000/rs6000.md (cannot_copy): New attribute.
14191 (load_toc_v4_PIC_1_normal): Set cannot_copy.
14192 (load_toc_v4_PIC_1_476): Ditto.
14193
14194 2015-10-01 Aditya Kumar <aditya.k7@samsung.com>
14195
14196 * graphite-scop-detection.c (struct sese_l): New conversion constructor
14197 so that this type can be pushed into a vec.
14198 (class scop_builder): use sese_l to collect scops.
14199 (get_scops): New getter function.
14200 (remove_intersecting_scops): Use sese_l instead of scops_p.
14201 (intersects): Same.
14202 (add_scop): Same.
14203 (subsumes): Same.
14204 (remove_subscops): Same.
14205 (build_scops): Add scops to vec<scops_p> once all the scops have been
14206 detected.
14207
14208 2015-10-01 Aditya Kumar <aditya.k7@samsung.com>
14209
14210 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
14211 Renamed type from gimple_bb_p to gimple_poly_bb_p.
14212 (translate_isl_ast_node_user): Same.
14213 * graphite-poly.c (new_poly_bb): Same.
14214 * graphite-poly.h (gbb_from_bb): Same.
14215 * sese.h: Same.
14216 * graphite-sese-to-poly.c (new_gimple_bb):
14217 gimple_bb_p -> gimple_poly_bb_p
14218 (build_scop_scattering): Same.
14219 (find_params_in_bb): Same.
14220 (add_conditions_to_domain): Same.
14221 (sese_dom_walker::before_dom_children): Same.
14222 (analyze_drs_in_stmts): Same.
14223 (new_pbb_from_pbb): Same.
14224 (free_data_refs_aux): New pointer to type base_alias_pair.
14225 * graphite-sese-to-poly.h: Same.
14226 * sese.c (if_region_set_false_region): Fixed Indentation.
14227 (move_sese_in_condition): Same.
14228
14229 2015-10-01 Sebastian Pop <s.pop@samsung.com>
14230 Aditya Kumar <aditya.k7@samsung.com>
14231
14232 PR tree-optimization/66980
14233 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
14234 when data reference analysis has failed.
14235
14236 2015-10-01 Sebastian Pop <s.pop@samsung.com>
14237 Aditya Kumar <aditya.k7@samsung.com>
14238
14239 PR tree-optimization/67754
14240 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
14241 scev analysis on the same loop nest as analyze_drs_in_stmts.
14242 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
14243 renamed...
14244 (try_generate_gimple_bb): Call outermost_loop_in_sese.
14245 (analyze_drs_in_stmts): Same.
14246 * sese.c (outermost_loop_in_sese): ...here.
14247
14248 2015-10-01 Sebastian Pop <s.pop@samsung.com>
14249 Aditya Kumar <aditya.k7@samsung.com>
14250
14251 PR tree-optimization/67754
14252 * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
14253 recursion on the inner loops.
14254
14255 2015-10-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14256
14257 * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
14258 function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
14259 tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
14260 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
14261 tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
14262
14263 2015-10-01 Marek Polacek <polacek@redhat.com>
14264
14265 PR c/65345
14266 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
14267 create_tmp_var_raw rather than create_tmp_var.
14268
14269 2015-10-01 Marek Polacek <polacek@redhat.com>
14270
14271 PR tree-optimization/67769
14272 * tree-ssa-phiopt.c (conditional_replacement): Call
14273 reset_flow_sensitive_info_in_bb.
14274 (minmax_replacement): Likewise.
14275 (abs_replacement): Likewise.
14276
14277 2015-10-01 Nathan Sidwell <nathan@codesourcery.com>
14278
14279 * builtins.c: Don't include gomp-constants.h.
14280 (fold_builtin_1): Don't fold acc_on_device here.
14281 * gimple-fold.c: Include gomp-constants.h.
14282 (gimple_fold_builtin_acc_on_device): New.
14283 (gimple_fold_builtin): Call it.
14284
14285 2015-10-01 H.J. Lu <hongjiu.lu@intel.com>
14286
14287 * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
14288 (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
14289
14290 2015-10-01 James Greenhalgh <james.greenhalgh@arm.com>
14291
14292 * config/arm/aarch-common-protos.h
14293 (aarch_accumulator_forwarding): New.
14294 (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
14295 * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
14296 (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
14297 * config/arm/cortex-a53.md: Rewrite.
14298
14299 2015-10-01 Richard Biener <rguenther@suse.de>
14300
14301 * gimple-match.h (mprts_hook): Declare.
14302 * gimple-match.head.c (mprts_hook): Define.
14303 (maybe_push_res_to_seq): Use new hook.
14304 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
14305 * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
14306 (vn_ssa_aux::has_constants): Remove.
14307 * tree-ssa-sccvn.c: Include gimple-match.h.
14308 (VN_INFO_GET): Assert we don't re-use SSA names.
14309 (vn_get_expr_for): Remove.
14310 (expr_has_constants): Likewise.
14311 (stmt_has_constants): Likewise.
14312 (simplify_binary_expression): Likewise.
14313 (simplify_unary_expression): Likewise.
14314 (vn_lookup_simplify_result): New hook.
14315 (visit_copy): Adjust.
14316 (visit_reference_op_call): Likewise.
14317 (visit_phi): Likewise.
14318 (visit_use): Likewise.
14319 (process_scc): Likewise.
14320 (init_scc_vn): Likewise.
14321 (visit_reference_op_load): Likewise. Use match-and-simplify and
14322 a gimple seq for inserted expressions.
14323 (try_to_simplify): Remove GENERIC stmt combining code.
14324 (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
14325 * tree-ssa-pre.c (eliminate_insert): Adjust.
14326 (eliminate_dom_walker::before_dom_children): Likewise.
14327
14328 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
14329
14330 * doc/invoke.texi (Optimization Options): Add
14331 -freorder-blocks-algorithm=.
14332 (Optimize Options) <-O>: Add -freorder-blocks.
14333 <-O2>: Remove -freorder-blocks. Add -freorder-blocks-algorithm=stc.
14334 <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
14335 <-freorder-blocks>: Also enabled at levels -O and -Os.
14336 <-freorder-blocks-algorithm=>: Document new option.
14337
14338 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
14339
14340 * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
14341 with flag_reorder_blocks_algorithm.
14342 * common.opt (freorder-blocks-algorithm=): New flag.
14343 (reorder_blocks_algorithm): New enum.
14344 * flag-types.h (reorder_blocks_algorithm): New enum.
14345 * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
14346 and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
14347
14348 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
14349
14350 * bb-reorder.c: Add intro comment.
14351 (reorder_basic_blocks_software_trace_cache): Print a header to
14352 the dump file.
14353 (edge_order): New function.
14354 (reorder_basic_blocks_simple): New function.
14355 (reorder_basic_blocks): Choose between the STC and the simple
14356 algorithms (always choose the former).
14357
14358 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
14359
14360 * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
14361 function, factored out from ...
14362 (reorder_basic_blocks): ... here.
14363
14364 2015-10-01 Tom de Vries <tom@codesourcery.com>
14365
14366 * tree-cfg.c (dump_function_to_file): Dump function attributes using
14367 __attribute__(()) string. Move dumping of function attributes to before
14368 function name.
14369
14370 2015-10-01 Lynn Boger <laboger@linux.vnet.ibm.com>
14371
14372 PR target/66870
14373 * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
14374 * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
14375 based on gold linker version.
14376 * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
14377 HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
14378 * configure, config.in: Regenerate.
14379
14380 2015-10-01 Alan Modra <amodra@gmail.com>
14381
14382 * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
14383 r2_setup_needed when TARGET_SINGLE_PIC_BASE.
14384 (rs6000_output_mi_thunk): Likewise.
14385
14386 2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
14387
14388 * config/nvptx/mkoffload.c (process): Change offload data format.
14389
14390 2015-09-30 Jeff Law <law@redhat.com>
14391
14392 * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
14393 with constant conditions.
14394 * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
14395 (remove_ctrl_stmt_and_useless_edges): No longer static.
14396 * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
14397 (remove_ctrl_stmt_and_useless_edges): Likewise.
14398
14399 2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
14400 Cesar Philippidis <cesar@codesourcery.com>
14401
14402 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
14403 (TARGET_GOACC_VALIDATE_DIMS): Override.
14404 * target.def (TARGET_GOACC): New target hook prefix.
14405 (validate_dims): New hook.
14406 * targhooks.h (default_goacc_validate_dims): New.
14407 * omp-low.c (oacc_validate_dims): New.
14408 (execute_oacc_device_lower): New.
14409 (default_goacc_validate_dims): New.
14410 (pass_data_oacc_device_lower): New.
14411 (pass_oacc_device_lower): New pass.
14412 (make_pass_oacc_device_lower): New.
14413 * tree-pass.h (make_pass_oacc_device_lower): Declare.
14414 * passes.def (pass_oacc_device_lower): Add it.
14415 * doc/tm.texi: Rebuilt.
14416 * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
14417 * doc/invoke.texi (oaccdevlow): Document tree dump flag.
14418
14419 2015-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
14420
14421 PR rtl-optimization/67037
14422 * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
14423
14424 2015-09-30 Bernd Schmidt <bernds@redhat.com>
14425
14426 * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
14427 * passes.c: Include tree-ssanames.h.
14428 (execute_function_todo): Flush the pending free SSA_NAMEs after
14429 eliminating unreachable basic blocks.
14430 * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
14431 (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
14432 (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
14433 (flush_ssanames_freelist): New function.
14434 (release_ssaname_fn): Put released names on the queue.
14435 (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
14436 * tree-ssanames.h (flush_ssanames_freelist): Declare.
14437
14438 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
14439
14440 * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
14441 (generate_target_descr_file, generate_target_offloadend_file)
14442 (generate_host_descr_file, prepare_target_image): Pass it on.
14443 * config/nvptx/mkoffload.c (main): Parse "-v" flag.
14444 (compile_native, main): Pass it on.
14445 * lto-wrapper.c (compile_offload_image): Likewise.
14446
14447 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
14448 Ilya Verbin <ilya.verbin@intel.com>
14449 Andrey Turetskiy <andrey.turetskiy@intel.com>
14450
14451 * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
14452 (prepare_target_image, main): Refactor argv building to use
14453 obstacks.
14454
14455 2015-09-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14456
14457 * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
14458 * config/spu/spu.c (spu_expand_atomic_op): New function.
14459 * config/spu/spu.md (AINT): New mode iterator.
14460 (ATOMIC): New code iterator.
14461 (atomic_name, atomic_pred): New code predicates.
14462 ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
14463 ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
14464 (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
14465 "atomic_<atomic_name>_fetch<mode>"): Likewise.
14466
14467 2015-09-30 Ilya Enkovich <enkovich.gnu@gmail.com>
14468
14469 * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
14470 debug insns.
14471 (scalar_chain::convert_reg): Likewise.
14472
14473 2015-09-30 Richard Biener <rguenther@suse.de>
14474
14475 * builtins.c: Add comment that no new simplifications should
14476 be added here.
14477
14478 2015-09-30 Marek Polacek <polacek@redhat.com>
14479
14480 PR tree-optimization/67690
14481 * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
14482 reset_flow_sensitive_info_in_bb.
14483 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
14484 * tree-ssanames.c: Include "gimple-iterator.h".
14485 (reset_flow_sensitive_info_in_bb): New function.
14486 * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
14487
14488 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
14489
14490 * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
14491 variable, replacing it with...
14492 (offload_abi): ... this new variable. Adjust all users.
14493 * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
14494
14495 2015-09-30 Matthias Klose <doko@ubuntu.com>
14496
14497 * configure.ac: Remove extraneous ;;.
14498 * configure: Regenerate.
14499
14500 2015-09-29 James Bowman <james.bowman@ftdichip.com>
14501
14502 * config/ft32/predicates.md (ft32_imm_operand): New predicate.
14503 * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
14504 predicate, disallow register for operand 2.
14505
14506 2015-09-29 Aditya Kumar <aditya.k7@samsung.com>
14507
14508 * graphite-dependences.c (scop_get_dependences): Moved in down
14509 in order to be visible to its caller.
14510 * graphite-poly.h: Removed compute_deps, and extend_schedule.
14511
14512 2015-09-29 Sebastian Pop <s.pop@samsung.com>
14513 Aditya Kumar <aditya.k7@samsung.com>
14514
14515 PR tree-optimization/67754
14516 * graphite-optimize-isl.c (optimize_isl): Call
14517 isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
14518
14519 2015-09-29 Nathan Sidwell <nathan@codesourcery.com>
14520
14521 * builtins.c (expand_builtin_acc_on_device): Delete.
14522 (expand_builtin): Don't call it.
14523 (fold_builtin_1): Fold acc_on_device.
14524
14525 2015-09-29 H.J. Lu <hongjiu.lu@intel.com>
14526
14527 * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
14528 (ix86_nsaved_sseregs): Likewise.
14529
14530 2015-09-29 Jeff Law <law@redhat.com>
14531
14532 * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
14533 computation of unused value.
14534
14535 * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
14536 * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
14537 inline macro expansion.
14538
14539 * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
14540
14541 * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
14542 (gen_shl_sext): Likewise.
14543 * config/sh/sh.md (divsi3): Likewise.
14544 (imm->ext_dest_operand splitter): Likewise.
14545
14546 2015-09-29 Sebastian Pop <s.pop@samsung.com>
14547 Aditya Kumar <aditya.k7@samsung.com>
14548
14549 * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
14550 (nb_data_writes_in_bb): Remove.
14551 (split_pbb): Remove.
14552 (split_reduction_stmt): Remove.
14553 (is_reduction_operation_p): Remove.
14554 (phi_contains_arg): Remove.
14555 (follow_ssa_with_commutative_ops): Remove.
14556 (detect_commutative_reduction_arg): Remove.
14557 (detect_commutative_reduction_assign): Remove.
14558 (follow_inital_value_to_phi): Remove.
14559 (edge_initial_value_for_loop_phi): Remove.
14560 (initial_value_for_loop_phi): Remove.
14561 (used_outside_reduction): Remove.
14562 (detect_commutative_reduction): Remove.
14563 (translate_scalar_reduction_to_array_for_stmt): Remove.
14564 (remove_phi): Remove.
14565 (dr_indices_valid_in_loop): Remove.
14566 (close_phi_written_to_memory): Remove.
14567 (translate_scalar_reduction_to_array): Remove.
14568 (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
14569 (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
14570 (rewrite_commutative_reductions_out_of_ssa): Remove.
14571 (build_poly_scop): Remove call to
14572 rewrite_commutative_reductions_out_of_ssa.
14573
14574 2015-09-29 Evandro Menezes <e.menezes@samsung.com>
14575
14576 * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
14577 Add new insn types for vector load and store pairs.
14578 * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
14579 types "neon_ldp{,_q}".
14580 * config/arm/cortex-a57.md (neon_load_c): Add insn types
14581 "neon_ldp{,_q}".
14582 (neon_store_complex): Add insn types "neon_stp{,_q}".
14583 * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
14584 "neon_{ldp,stp}_q".
14585
14586 2015-09-29 Jeff Law <law@redhat.com>
14587
14588 * config/rx/constraints.md (Int08): Fix undefined left shift
14589 behaviour.
14590 (Sint08, Sint16, Sint24): Likewise.
14591 * config/rx/rx.c (rx_get_stack_layout): Likewise.
14592
14593 * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
14594 behaviour.
14595
14596 * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
14597 left shift behaviour.
14598 * config/msp430/constraints.md ('L' constraint): Similarly.
14599 ('Ys' constraint): Similarly.
14600
14601 2015-09-29 Richard Biener <rguenther@suse.de>
14602
14603 PR tree-optimization/67170
14604 * tree-ssa-alias.h (get_continuation_for_phi): Adjust
14605 the translate function pointer parameter to get the
14606 bool whether to disambiguate only by reference.
14607 (walk_non_aliased_vuses): Likewise.
14608 * tree-ssa-alias.c (maybe_skip_until): Adjust.
14609 (get_continuation_for_phi_1): Likewise.
14610 (get_continuation_for_phi): Likewise.
14611 (walk_non_aliased_vuses): Likewise.
14612 * tree-ssa-sccvn.c (const_parms): New bitmap.
14613 (vn_reference_lookup_3): Adjust for interface change.
14614 Disambiguate parameters pointing to readonly memory.
14615 (free_scc_vn): Free const_parms.
14616 (run_scc_vn): Initialize const_parms from a fn spec attribute.
14617
14618 2015-09-29 Richard Biener <rguenther@suse.de>
14619
14620 PR tree-optimization/67741
14621 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
14622 builtin calls with correct signature.
14623
14624 2015-09-29 Ilya Enkovich <enkovich.gnu@gmail.com>
14625
14626 PR target/65105
14627 * config/i386/i386.c: Include dbgcnt.h.
14628 (has_non_address_hard_reg): New.
14629 (convertible_comparison_p): New.
14630 (scalar_to_vector_candidate_p): New.
14631 (remove_non_convertible_regs): New.
14632 (scalar_chain): New.
14633 (scalar_chain::scalar_chain): New.
14634 (scalar_chain::~scalar_chain): New.
14635 (scalar_chain::add_to_queue): New.
14636 (scalar_chain::mark_dual_mode_def): New.
14637 (scalar_chain::analyze_register_chain): New.
14638 (scalar_chain::add_insn): New.
14639 (scalar_chain::build): New.
14640 (scalar_chain::compute_convert_gain): New.
14641 (scalar_chain::replace_with_subreg): New.
14642 (scalar_chain::replace_with_subreg_in_insn): New.
14643 (scalar_chain::emit_conversion_insns): New.
14644 (scalar_chain::make_vector_copies): New.
14645 (scalar_chain::convert_reg): New.
14646 (scalar_chain::convert_op): New.
14647 (scalar_chain::convert_insn): New.
14648 (scalar_chain::convert): New.
14649 (convert_scalars_to_vector): New.
14650 (pass_data_stv): New.
14651 (pass_stv): New.
14652 (make_pass_stv): New.
14653 (ix86_option_override): Created and register stv pass.
14654 (flag_opts): Add -mstv.
14655 (ix86_option_override_internal): Likewise.
14656 * config/i386/i386.md (SWIM1248x): New.
14657 (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
14658 (and<mode>3): Use SWIM1248x iterator instead of SWIM.
14659 (*anddi3_doubleword): New.
14660 (*zext<mode>_doubleword): New.
14661 (*zextsi_doubleword): New.
14662 (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
14663 (*<code>di3_doubleword): New.
14664 * config/i386/i386.opt (mstv): New.
14665 * dbgcnt.def (stv_conversion): New.
14666
14667 2015-09-29 Tom de Vries <tom@codesourcery.com>
14668
14669 * tree-cfg.c (dump_function_to_file): Dump function attributes.
14670
14671 2015-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
14672
14673 PR target/67716
14674 * config/sh/sh.c (sh_override_options_after_change): New.
14675 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
14676 (sh_option_override): Move align_loops, align_jumps and
14677 align_functions handling into sh_override_options_after_change.
14678
14679 2015-09-28 Nathan Sidwell <nathan@codesourcery.com>
14680
14681 * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
14682 (nvptx_record_offload_symbol): Record function execution geometry.
14683 * config/nvptx/mkoffload.c (process): Include launch geometry in
14684 function data.
14685 * omp-low.c (oacc_launch_pack): New.
14686 (replace_oacc_fn_attrib): New.
14687 (set_oacc_fn_attrib): New.
14688 (get_oacc_fn_attrib): New.
14689 (expand_omp_target): Create keyed varargs for GOACC_parallel call
14690 generation.
14691 * omp-low.h (get_oacc_fn_attrib): Declare.
14692 * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
14693 (DEF_FUNCTION_TYPE_VAR_11): Delete.
14694 * tree.h (OMP_CLAUSE_EXPR): New.
14695 * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
14696
14697 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
14698 Sebastian Pop <s.pop@samsung.com>
14699
14700 * sese.c (invariant_in_sese_p_rec): Remove unused variable.
14701
14702 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
14703 Sebastian Pop <s.pop@samsung.com>
14704
14705 * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
14706 * graphite-scop-detection.c (struct sese_l): New type.
14707 (get_entry_bb): API for getting entry bb of SESE.
14708 (get_exit_bb): API for getting exit bb of SESE.
14709 (class debug_printer): New type. Simple printer in debug mode.
14710 (trivially_empty_bb_p): New. Return true when BB is empty or
14711 contains only debug instructions.
14712 (graphite_can_represent_expr): Call scalar_evoution_in_region
14713 instead of analyze_scalar_evolution. Pass in scop instead of only
14714 the scop entry.
14715 (stmt_has_simple_data_refs_p): Pass in scop instead of only the
14716 scop entry.
14717 (stmt_simple_for_scop_p): Same.
14718 (harmful_stmt_in_bb): Same.
14719 (graphite_can_represent_loop): Deleted.
14720 (struct scopdet_info): Deleted.
14721 (scopdet_basic_block_info): Deleted.
14722 (build_scops_1): Deleted.
14723 (bb_in_sd_region): Deleted.
14724 (find_single_entry_edge): Deleted.
14725 (find_single_exit_edge): Deleted.
14726 (create_single_entry_edge): Deleted.
14727 (sd_region_without_exit): Deleted.
14728 (create_single_exit_edge): Deleted.
14729 (unmark_exit_edges): Deleted.
14730 (mark_exit_edges): Deleted.
14731 (create_sese_edges): Deleted.
14732 (build_graphite_scops): Deleted.
14733 (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
14734 (build_scops): Use the new scop_builder to build scops.
14735 (dot_all_scops_1): Use the new pretty printer. Print loop father
14736 as well.
14737 (loop_body_is_valid_scop): New. Return true if loop body is a
14738 valid scop.
14739 (class scop_builder): New. Builds SCoPs for polyhedral
14740 optimizations.
14741 (scop_builder): New constructor.
14742 (static sese_l invalid_sese): sese_l with invalid edges.
14743 (get_sese): Get an sese (from a loop) if possible, invalid_sese
14744 otherwise.
14745 (get_nearest_dom_with_single_entry): Get nearest dominator of a
14746 basic_block with single entry. Return NULL if we get to the
14747 beginning of a function.
14748 (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
14749 a basic_block with single exit. Return NULL if we get to the
14750 beginning of a function.
14751 (print_sese): Pretty-print SESE.
14752 (merge_sese): Merge two SESEs if possible and return the new SESE.
14753 (build_scop_depth): Start building the SCoP within a loop nest.
14754 (build_scop_breadth): Start building the SCoP at a single loop
14755 depth. Merge adjacent SESEs if valid.
14756 (can_represent_loop_1): Returns true if Graphite can represent
14757 loop inside SCoP. Helper for can_represent_loop.
14758 (can_represent_loop): Returns true if Graphite can represent LOOP
14759 and all its nested loops in SCoP.
14760 (loop_is_valid_scop): Returns true if LOOP and all its nests
14761 constitute a valid SCoP.
14762 (region_has_one_loop): Returns true of a region has only one loop.
14763 (add_scop): Add SCoP to the list of valid scops. Removes an
14764 already existing scop if it intersects with or subsumed by this one.
14765 (harmful_stmt_in_region): Returns true if SCoP has any statment
14766 which cannot be represented by Graphite.
14767 (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
14768 (remove_subscops): Remove any SCoP from the list of already found
14769 SCoPs, if subsumed by S1.
14770 (intersects): Return true if region bounded by SCoPs S1 and S2
14771 intersect.
14772 (remove_intersecting_scops): Remove any SCoP which intersects with S1.
14773 * graphite.c (print_graphite_scop_statistics):
14774 (print_graphite_statistics): Print SCoP info while debugging.
14775 (graphite_initialize): Early exit in case number of loops in a
14776 function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
14777 basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
14778 (graphite_finalize):
14779 * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
14780 * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
14781 (recompute_all_dominators): Recalculate POST_DOMINATORS.
14782 * tree-cfg.c (print_loops): Print the function name while printing
14783 loops.
14784
14785 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
14786 Sebastian Pop <s.pop@samsung.com>
14787
14788 PR tree-optimization/67700
14789 * graphite-sese-to-poly.c (parameter_index_in_region): Call
14790 invariant_in_sese_p_rec.
14791 (extract_affine): Same.
14792 (rewrite_cross_bb_scalar_deps): Call update_ssa.
14793 * sese.c (invariant_in_sese_p_rec): Export. Handle vdefs and vuses.
14794 * sese.h (invariant_in_sese_p_rec): Declare.
14795
14796 2015-09-28 David Wohlferd <dw@LimeGreenSocks.com>
14797
14798 * doc/extend.texi (Asm Labels): Break out text for data vs functions.
14799
14800 2015-09-28 Jiong Wang <jiong.wang@arm.com>
14801
14802 Revert:
14803 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14804 Jiong Wang <jiong.wang@arm.com>
14805
14806 * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
14807 * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
14808 (REG_CLASS_NAMES): Likewise.
14809 (REG_CLASS_CONTENTS): Likewise.
14810 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
14811 (aarch64_register_move_cost): Likewise.
14812 (aarch64_load_symref_appropriately): Invoke the new added pattern if
14813 possible.
14814 * config/aarch64/constraints.md (Uc0): New constraint.
14815
14816 2015-09-28 Daniel Hellstrom <daniel@gaisler.com>
14817
14818 * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
14819
14820 2015-09-28 David Edelsohn <dje.gcc@gmail.com>
14821
14822 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
14823 SECTION_EXCLUDE in XO mapping class.
14824
14825 2015-09-28 Oleg Endo <olegendo@gcc.gnu.org>
14826
14827 PR target/54236
14828 * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
14829 and handle ne and eq codes.
14830 * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
14831 (sh_recog_treg_set_expr): Early accept negt_reg_operand. Eearly reject
14832 CONST_INT_P. Use reverse_condition.
14833 (sh_split_treg_set_expr): Likewise.
14834
14835 2015-09-28 James Greenhalgh <james.greenhalgh@arm.com>
14836
14837 * config/arm/types.md (type): Add rotate_imm.
14838 * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
14839 ROR immediate case.
14840 (*rorsi3_insn_uxtw): Likewise.
14841 * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
14842 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
14843 * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
14844
14845 2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14846
14847 PR rtl-optimization/67481
14848 * ifcvt.c (contains_ccmode_rtx_p): New function.
14849 (insn_valid_noce_process_p): Use it.
14850
14851 2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14852
14853 PR rtl-optimization/67456
14854 PR rtl-optimization/67464
14855 PR rtl-optimization/67465
14856 * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
14857 move in the mode of x. Handle combination of complex and simple
14858 block pairs as well as the case when one is empty.
14859
14860 2015-09-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14861
14862 * doc/gimple.texi: Update references to gimple_statement_base.
14863 * gdbhooks.py: Likewise.
14864 * gimple.h: Likewise.
14865
14866 2015-09-28 Daniel Cederman <cederman@gaisler.com>
14867
14868 * config/sparc/driver-sparc.c: map LEON to leon3
14869
14870 2015-09-28 Daniel Cederman <cederman@gaisler.com>
14871
14872 * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
14873 and make it inverse to change default
14874 * config/sparc/sync.md: Only use supervisor ASI for CASA when in
14875 supervisor mode
14876 * doc/invoke.texi: Document change of default
14877
14878 2015-09-28 Daniel Cederman <cederman@gaisler.com>
14879
14880 * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
14881 true on %f0 for a target without FPU.
14882 * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
14883 without FPU.
14884 (untyped_return): Do not load %f0 for a target without FPU.
14885
14886 2015-09-28 Andrew Pinski <apinski@cavium.com>
14887
14888 * config/aarch64/aarch64.md (prefetch):
14889 Change the predicate of operand 0 to register_operand.
14890
14891 2015-09-27 Uros Bizjak <ubizjak@gmail.com>
14892
14893 * config/i386/predicates.md (register_sse4nonimm_operand): New
14894 predicate.
14895 * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
14896 (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
14897 Use register_sse4nonimm_operand as operand 0 predicate.
14898 (*vec_extractv8hi_sse2): Remove insn pattern.
14899 (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
14900 *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
14901
14902 2015-09-27 Oleg Endo <olegendo@gcc.gnu.org>
14903 Kaz Kojima <kkojima@gcc.gnu.org>
14904
14905 PR target/67391
14906 * config/sh/sh-protos.h (sh_lra_p): Declare.
14907 * config/sh/sh.c (sh_lra_p): Make non-static.
14908 * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
14909 arith_reg_operand for operands[1]. Remove TARGET_SHMEDIA case.
14910 Expand into addsi3_scr if operands[2] if needed.
14911 (*addsi3_compact): Rename to *addsi3_compact_lra. Use
14912 arith_reg_operand for operands[1]. Allow it only when LRA is enabled.
14913 (addsi3_scr, *addsi3): New insn_and_split patterns.
14914
14915 2015-09-27 Alexandre Oliva <aoliva@redhat.com>
14916
14917 PR rtl-optimization/64164
14918 PR tree-optimization/67312
14919 PR middle-end/67340
14920 PR middle-end/67490
14921 PR bootstrap/67597
14922 * cfgexpand.c (parm_in_stack_slot_p): Remove.
14923 (ssa_default_def_partition): Remove.
14924 (get_rtl_for_parm_ssa_default_def): Remove.
14925 (set_rtl): Check that RTL assignments match expectations.
14926 Loop on SUBREGs, CONCATs and PARALLELs subexprs. Set only the
14927 default def location for params and results. Record SSA names
14928 or types in REG and MEM attrs, respectively.
14929 (set_parm_rtl): New.
14930 (expand_one_ssa_partition): Drop logic that assigned MEMs with
14931 unassigned addresses.
14932 (adjust_one_expanded_partition_var): Don't accept NULL RTL on
14933 deferred stack alloc vars.
14934 (expand_used_vars): Skip partitions holding parm default defs.
14935 Move adjust_one_expanded_partition_var loop...
14936 (pass_expand::execute): ... here. Drop redundant assert.
14937 Adjust comments before the final loop over all ssa names.
14938 Require assigned rtl of parms and results to match exactly.
14939 Reset its attributes to match them, not any other variables in
14940 the same partition.
14941 (expand_debug_expr): Use entry value for PARM's default defs
14942 only iff they have zero nondebug uses.
14943 * cfgexpand.h (parm_in_stack_slot_p): Remove.
14944 (get_rtl_for_parm_ssa_default_def): Remove.
14945 (set_parm_rtl): Declare.
14946 * doc/invoke.texi: Improve wording.
14947 * explow.c (promote_decl_mode): Fix promote_function_mode for
14948 result decls not by reference.
14949 (promote_ssa_mode): Disregard BLKmode from promote_decl, and
14950 bypass TYPE_MODE to get the actual vector mode.
14951 * function.c: Include tree-dfa.h. Revert 2015-08-14's and
14952 2015-08-19's changes as follows. Drop include of
14953 basic-block.h and df.h.
14954 (rtl_for_parm): Remove.
14955 (maybe_reset_rtl_for_parm): Remove.
14956 (parm_in_unassigned_mem_p): Remove.
14957 (use_register_for_decl): Add logic for RESULT_DECLs matching
14958 assign_parms' behavior.
14959 (split_complex_args): Revert.
14960 (assign_parms_augmented_arg_list): Revert. Add comment
14961 referencing the logic above.
14962 (assign_parm_adjust_stack_rtl): Revert.
14963 (assign_parm_setup_block): Revert. Use set_parm_rtl instead
14964 of SET_DECL_RTL. Set up a REG if the parm demands so.
14965 (assign_parm_setup_reg): Revert. Consolidated SET_DECL_RTL
14966 calls into a single set_parm_rtl. Set up a temporary RTL
14967 temporarily for expand_assignment.
14968 (assign_parm_setup_stack): Revert. Use set_parm_rtl.
14969 (assign_parms_unsplit_complex): Revert. Use set_parm_rtl.
14970 (assign_bounds): Revert.
14971 (assign_parms): Revert. Use set_parm_rtl.
14972 (allocate_struct_function): Relayout result and parms of
14973 non-abstruct functions.
14974 (expand_function_start): Revert. Use set_parm_rtl. If the
14975 result is not a hard reg, create a pseudo from the promoted
14976 mode of the default def. Promote static chain mode.
14977 * tree-outof-ssa.c (remove_ssa_form): Drop unused
14978 partition_has_default_def. Set up
14979 partitions_for_parm_default_defs.
14980 (finish_out_of_ssa): Remove partition_has_default_def.
14981 Release partitions_for_parm_default_defs.
14982 * tree-outof-ssa.h (struct ssaexpand): Remove
14983 partition_has_default_def. Add
14984 partitions_for_parm_default_defs.
14985 * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
14986 stor-layout.h.
14987 (build_ssa_conflict_graph): Fix conflict-detection of default
14988 defs of even unused default defs of params and results.
14989 (for_all_parms): New.
14990 (create_default_def): New.
14991 (register_default_def): New.
14992 (coalesce_with_default): New.
14993 (create_outofssa_var_map): Create default defs for all parms
14994 and results, and register their partitions. Add GIMPLE_RETURN
14995 operands as coalesce candidates with results. Add default
14996 defs of each parm or result as coalesce candidates with its
14997 other defs. Mark each result def, and each default def of
14998 parms, as used_in_copy.
14999 (gimple_can_coalesce_p): Call it. Call use_register_for_decl
15000 with the ssa names, even anonymous ones. Drop
15001 parm_in_stack_slot_p calls. Require same signedness and
15002 alignment.
15003 (coalesce_ssa_name): Add coalesce candidates for all defs of
15004 each parm and result, even unused ones.
15005 (parm_default_def_partition_arg): New type.
15006 (set_parm_default_def_partition): New.
15007 (get_parm_default_def_partitions): New.
15008 * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
15009 * tree-ssa-live.c (partition_view_init): Regard unused defs of
15010 parms and results as used.
15011 (verify_live_on_entry): Don't error out just because they're
15012 not live.
15013
15014 2015-09-26 David Edelsohn <dje.gcc@gmail.com>
15015
15016 * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
15017 (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
15018 (output_fde): Don't output length for debug_frame on AIX.
15019 (output_call_frame_info): Don't output length for debug_frame on AIX.
15020 (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
15021 HAVE_XCOFF_DWARF_EXTRAS.
15022 (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
15023 HAVE_XCOFF_DWARF_EXTRAS.
15024 (output_compilation_unit_header): Don't output length on AIX.
15025 (output_pubnames): Don't output length on AIX.
15026 (output_aranges): Delete argument. Compute length locally. Don't
15027 output length on AIX.
15028 (output_line_info): Don't output length on AIX.
15029 (dwarf2out_finish): Don't compute aranges_length.
15030 * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
15031 (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
15032 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
15033 symbol decoration for AIX.
15034 (rs6000_xcoff_debug_unwind_info): New.
15035 (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
15036 for SECTION_DEBUG.
15037 (rs6000_xcoff_declare_function_name): Emit different
15038 .function pseudo-op when DWARF2_DEBUG. Don't call
15039 xcoffout_declare_function for DWARF2_DEBUG.
15040 * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
15041 Redefine.
15042 * config/rs6000/aix71.h: New.
15043 * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
15044 locations support.
15045 * configure: Regenerate.
15046 * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
15047 DWARF support.
15048
15049 2015-09-26 Jeff Law <law@redhat.com>
15050
15051 * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
15052 behaviour.
15053 * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
15054 behaviour.
15055
15056 * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
15057 behaviour
15058
15059 * config/mips/mips.c (mips_compute_frame_info): Fix left shift
15060 undefined behaviour.
15061
15062 * config/cris/cris.md (asrandb): Fix left shift undefined
15063 behaviour.
15064 (asrandw): Likewise.
15065
15066 2015-09-25 Vladimir Makarov <vmakarov@redhat.com>
15067
15068 PR target/61578
15069 * lra-constarints.c (match_reload): Check presence of the input pseudo
15070 in the output operand.
15071
15072 2015-09-25 Tobias Burnus <burnus@net-b.de>
15073
15074 * doc/invoke.texi (-fsanitize): Minor wording tweak.
15075
15076 2015-09-25 Tobias Burnus <burnus@net-b.de>
15077
15078 * doc/invoke.texi (-fsanitize): Update URLs.
15079
15080 2015-09-25 Teresa Johnson <tejohnson@google.com>
15081
15082 * opts.c (finish_options): Unset -freorder-blocks-and-partition
15083 if not using profile.
15084
15085 2015-09-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
15086
15087 PR pretty-print/67567
15088 * pretty-print.c (pp_string): Add gcc_checking_assert.
15089 * pretty-print.h (output_buffer_append_r): Likewise.
15090
15091 2015-09-25 Oleg Endo <olegendo@gcc.gnu.org>
15092
15093 PR target/67675
15094 * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
15095 addr2 individually. Don't emit logical or insn if one is known to
15096 be aligned approriately.
15097 (sh_expand_cmpnstr): Likewise.
15098
15099 2015-09-25 Richard Sandiford <richard.sandiford@arm.com>
15100
15101 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
15102 __builtin_aarch64_fp[sc]r arguments into a register.
15103
15104 2015-09-25 H.J. Lu <hongjiu.lu@intel.com>
15105
15106 * config.gcc (x86_archs): Replace lakemount with lakemont.
15107 (with_cpu): Likewise.
15108 (with_arch): Likewise.
15109 * config/i386/i386-c.c (ix86_target_macros_internal): Replace
15110 PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT. Replace
15111 __tune_lakemount__ with __tune_lakemont__.
15112 * config/i386/i386.c (lakemount_cost): Renamed to ...
15113 (lakemont_cost): This.
15114 (m_LAKEMOUNT): Renamed to ...
15115 (m_LAKEMONT): This.
15116 (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
15117 (processor_target_table): Replace "lakemount" with "lakemont".
15118 (processor_alias_table): Likewise.
15119 (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
15120 PROCESSOR_LAKEMONT.
15121 (ix86_adjust_cost): Likewise.
15122 (ia32_multipass_dfa_lookahead): Likewise.
15123 * config/i386/i386.h (processor_type): Likewise.
15124 * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
15125 * doc/invoke.texi: Replace lakemount with lakemont. Replace
15126 Lakemount with Lakemont.
15127
15128 2015-09-24 H.J. Lu <hongjiu.lu@intel.com>
15129
15130 * config.gcc (x86_archs): Replace iamcu with lakemount.
15131 (with_cpu): Likewise.
15132 (with_arch): Likewise.
15133 * doc/invoke.texi: Likewise.
15134 * config/i386/i386-c.c (ix86_target_macros_internal): Replace
15135 PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT. Replace
15136 __tune_iamcu__ with __tune_lakemount__.
15137 * config/i386/i386.c (iamcu_cost): Renamed to ...
15138 (lakemount_cost): This.
15139 (m_IAMCU): Renamed to ...
15140 (m_LAKEMOUNT): This.
15141 (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
15142 (processor_target_table): Replace "iamcu" with "lakemount".
15143 (processor_alias_table): Likewise.
15144 (ix86_issue_rate): Replace PROCESSOR_IAMCU with
15145 PROCESSOR_LAKEMOUNT.
15146 (ix86_adjust_cost): Likewise.
15147 (ia32_multipass_dfa_lookahead): Likewise.
15148 * config/i386/i386.h (processor_type): Likewise.
15149 * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
15150
15151 2015-09-24 John David Anglin <danglin@gcc.gnu.org>
15152
15153 * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
15154 * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
15155 Declare.
15156 * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
15157 (pa_expand_compare_and_swap_loop): New.
15158 (pa_maybe_emit_compare_and_swap_exchange_loop): New.
15159 * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
15160 atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
15161 (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
15162 (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
15163 Revise.
15164
15165 2015-09-24 Michael Collison <michael.collison@linaro.org>
15166
15167 PR other/57195
15168 * read-md.c (read_name): Allow mode iterators inside angle
15169 brackets in rtl expressions.
15170
15171 2015-09-24 Vladimir Makarov <vmakarov@redhat.com>
15172
15173 PR target/61578
15174 * ira-color.c (update_allocno_cost): Add parameter.
15175 (update_costs_from_allocno): Decrease conflict cost. Pass the new
15176 parameter.
15177
15178 2015-09-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
15179
15180 PR driver/67640
15181 * opts-common.c (prune_options): Discard all -fdiagnostics-color
15182 but the last one, which is moved to the front to be processed
15183 first.
15184 * opts.c (enable_warning_as_error): Reject options that do not
15185 control warnings.
15186
15187 2015-09-24 Jiong Wang <jiong.wang@arm.com>
15188
15189 * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
15190
15191 2015-09-24 Jiong Wang <jiong.wang@arm.com>
15192
15193 * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
15194 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
15195 (aarch64_cannot_force_const_mem): Likewise.
15196 (aarch64_classify_address): Likewise.
15197 (aarch64_classify_symbolic_expression): Likewise.
15198 (aarch64_print_operand): Likewise.
15199 (aarch64_classify_symbol): Likewise.
15200 (aarch64_mov_operand_p): Likewise.
15201 * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
15202 (aarch64_mov_operand): Likewise.
15203
15204 2015-09-24 Segher Boessenkool <segher@kernel.crashing.org>
15205
15206 * config/rs6000/rs6000.c (debug_stack_info): Invert the test
15207 for info->spe_gp_size.
15208
15209 2015-09-24 Richard Biener <rguenther@suse.de>
15210
15211 PR lto/67699
15212 * lto-cgraph.c (compute_ltrans_boundary): Do not stream
15213 abstract origins.
15214
15215 2015-09-24 Thomas Schwinge <thomas@codesourcery.com>
15216
15217 * tree-object-size.c (plus_stmt_object_size)
15218 (cond_expr_object_size): Change the formal parameters from gimple
15219 to gimple *.
15220 * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
15221 * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
15222 * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
15223
15224 2015-09-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15225
15226 * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
15227 Check for ld -type pie on Solaris 11.x and 12.
15228 * configure: Regenerate.
15229 * config.in: Regenerate.
15230
15231 * gcc.c (LD_PIE_SPEC): Allow redefinition.
15232
15233 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
15234 (STARTFILE_SPEC): Use it.
15235 (ENDFILE_CRTEND_SPEC): Define.
15236 (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
15237 (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
15238 ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
15239 [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
15240 (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
15241 * config/i386/sol2.h (ENDFILE_SPEC): Remove.
15242 (ENDFILE_ARCH_SPEC): Define.
15243 * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
15244
15245 2015-09-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15246
15247 * configure.ac (gcc_cv_solaris_crts): New test.
15248 * configure. Regenerate.
15249 * config.in: Regenerate.
15250 * config/sol2.h (STARTFILE_SPEC): Simplify, provide
15251 HAVE_SOLARIS_CRTS variant.
15252
15253 2015-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15254
15255 * tree-inline.h (count_insns_seq): Delete prototype.
15256 (estimate_num_insns_seq): Define prototype.
15257 * tree-inline.c (count_insns_seq): Delete.
15258 (estimate_num_insns_seq): Remove static qualifier.
15259 * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
15260 with estimate_num_insns_seq.
15261
15262 2015-09-24 Richard Biener <rguenther@suse.de>
15263
15264 * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
15265 members.
15266 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
15267 and base for MEM_REF and TARGET_MEM_REF. Handle BIT_FIELD_REF
15268 offset.
15269 (ao_ref_init_from_vn_reference): Record clique and base in the
15270 built base.
15271 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
15272
15273 2015-09-24 Richard Biener <rguenther@suse.de>
15274
15275 PR tree-optimization/48885
15276 * tree-ssa-structalias.c (visit_loadstore): Handle default defs
15277 as not including any restrict tags from other pointers.
15278
15279 2015-09-23 Thomas Schwinge <thomas@codesourcery.com>
15280
15281 * gcc.c (handle_foffload_option): Don't lose the trailing NUL
15282 character when appending to offload_targets.
15283
15284 * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
15285 offload targets by commas, not colons.
15286 * config.in: Regenerate.
15287 * configure: Likewise.
15288 * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
15289 instead of setting up the default offload targets here...
15290 (process_command): ..., do it here.
15291 libgomp/
15292 * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
15293 targets are separated by commas.
15294 * config.h.in: Regenerate.
15295
15296 2015-09-23 Thomas Schwinge <thomas@codesourcery.com>
15297 Nathan Sidwell <nathan@codesourcery.com>
15298
15299 * omp-low.h (omp_reduction_init_op): Declare.
15300 * omp-low.c (omp_reduction_init_op): New, broken out of ...
15301 (omp_reduction_init): ... here. Call it.
15302 * tree-parloops.c (initialize_reductions): Use
15303 omp_reduction_init_op.
15304
15305 2015-09-23 Richard Biener <rguenther@suse.de>
15306
15307 PR middle-end/67662
15308 * fold-const.c (fold_binary_loc): Do not reassociate two vars with
15309 undefined overflow unless they will cancel out.
15310
15311 2015-09-23 Kirill Yukhin <kirill.yukhin@intel.com>
15312
15313 * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
15314 insn emit.
15315
15316 2015-09-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
15317
15318 PR c/49655
15319 * opts.h (write_langs): Declare.
15320 * opts-global.c (write_langs): Make it extern.
15321
15322 2015-09-23 Oleg Endo <olegendo@gcc.gnu.org>
15323
15324 PR target/67391
15325 * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
15326 overlapping regs when matching the pattern.
15327
15328 2015-09-23 James Greenhalgh <james.greenhalgh@arm.com>
15329
15330 * config/aarch64/aarch64-simd.md
15331 (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
15332 (aarch64_float_truncate_hi_v4sf_le): New.
15333 (aarch64_float_truncate_hi_v4sf_be): Likewise.
15334
15335 2015-09-23 Richard Biener <rguenther@suse.de>
15336
15337 * tree-ssa-structalias.c (intra_create_variable_infos): Build
15338 representatives for all restrict qualified pointer destinations.
15339
15340 2015-09-23 Kirill Yukhin <kirill.yukhin@intel.com>
15341
15342 * config/i386/i386.md (define_code_attr mshift): New.
15343 (define_mode_iterator SWI1248_AVX512BW): Rename ...
15344 (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
15345 only.
15346 (define_insn "*k<logic><mode>"): Use new iterator name.
15347 (define_insn "*<mshift><mode>3"): New.
15348
15349 2015-09-23 Mikhail Maltsev <maltsevm@gmail.com>
15350
15351 PR middle-end/67649
15352 * memory-block.h (memory_block_pool::allocate): Use valgrind API to
15353 mark the block as accessible.
15354
15355 2015-09-22 Segher Boessenkool <segher@kernel.crashing.org>
15356
15357 * function.c (thread_prologue_and_epilogue_insns): Delete
15358 orig_entry_edge argument to try_shrink_wrapping.
15359 * shrink-wrap.c (can_get_prologue): New function.
15360 (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
15361 (try_shrink_wrapping): Delete orig_entry_edge argument. Use
15362 can_get_prologue where needed. Remove code that finds a single
15363 edge for the prologue. Remove code that tests if any reg clobbered
15364 by the prologue is live on the prologue edge. Remove code that finds
15365 the new prologue edge after duplicating blocks. Make a new prologue
15366 block and edge.
15367 * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
15368
15369 2015-09-22 Jeff Law <law@redhat.com>
15370
15371 * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
15372 behavior.
15373
15374 2015-09-22 Nathan Sidwell <nathan@codesourcery.com>
15375
15376 * doc/invoke.texi (-Wmultiple-inheritance, -Wvirtual-inheritance,
15377 -Wtemplates, -Wnamespaces): Document.
15378
15379 2015-09-22 Tom de Vries <tom@codesourcery.com>
15380
15381 PR tree-optimization/67671
15382 * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
15383 pointer references as restrict.
15384
15385 2015-09-22 Chung-Lin Tang <cltang@codesourcery.com>
15386
15387 * config/nios2/nios2.c (nios2_legitimize_address): When handling
15388 'reg + reloc' cases, allow first operand to be non-REG, and use
15389 force_reg() to enforce address pattern.
15390
15391 2015-09-22 Alexander Fomin <alexander.fomin@intel.com>
15392
15393 PR target/67480
15394 * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
15395 (define_mode_iterator VI12_AVX_AVX512F): New.
15396 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
15397 all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
15398 (define_insn "*<code><mode>3"): ... Into new pattern using
15399 VI12_AVX_AVX512F iterators without masking.
15400
15401 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
15402
15403 * config.gcc: Support "skylake-avx512".
15404 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
15405 PROCESSOR_SKYLAKE_AVX512.
15406 * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
15407 (processor_target_table): Add "skylake-avx512".
15408 (PTA_SKYLAKE_AVX512): Define.
15409 (ix86_option_override_internal): Add "skylake_avx512".
15410 (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
15411 F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
15412 * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
15413 (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
15414 * doc/invoke.texi (skylake-avx512): New.
15415
15416 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
15417
15418 * config/i386/i386.md (define_insn "kunpckhi"): Fix
15419 operand in pattern.
15420 (define_insn "kunpcksi"): Ditto.
15421 (define_insn "kunpckdi"): Ditto.
15422
15423 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
15424
15425 * config/i386/i386.md (define_split not/xor SWI1248x): Use
15426 iterator instead of fixed modes.
15427
15428 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
15429
15430 * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
15431 Adjust declaration.
15432 * config/aarch64/aarch64.c (aarch64_emit_bic): New.
15433 (aarch64_gen_atomic_ldop): Adjust comment. Add parameter
15434 out_result. Update to support update-fetch operations.
15435 * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
15436 Adjust for change to aarch64_gen_atomic_ldop.
15437 (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
15438 (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
15439 (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
15440 (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
15441 (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
15442
15443 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
15444
15445 * config/aarch64/aarch64-protos.h
15446 (aarch64_atomic_ldop_supported_p): Declare.
15447 * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
15448 (enum aarch64_atomic_load_op_code): New.
15449 (aarch64_emit_atomic_load_op): New.
15450 (aarch64_gen_atomic_ldop): Update to support load-operate
15451 patterns.
15452 * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
15453 to an expander.
15454 (aarch64_atomic_<atomic_optab><mode>): New.
15455 (aarch64_atomic_<atomic_optab><mode>_lse): New.
15456 (atomic_fetch_<atomic_optab><mode>): Change to an expander.
15457 (aarch64_atomic_fetch_<atomic_optab><mode>): New.
15458 (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
15459
15460 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
15461
15462 * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
15463 (UNSPECV_ATOMIC_LDOP_OR): New.
15464 (UNSPECV_ATOMIC_LDOP_BIC): New.
15465 (UNSPECV_ATOMIC_LDOP_XOR): New.
15466 (UNSPECV_ATOMIC_LDOP_PLUS): New.
15467 (ATOMIC_LDOP): New.
15468 (atomic_ldop): New.
15469 (aarch64_atomic_load<atomic_ldop><mode>): New.
15470
15471 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
15472
15473 * config/aarch64/aarch64.md
15474 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
15475 pattern.
15476
15477 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
15478
15479 * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
15480 Declare.
15481 * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
15482 (aarch64_gen_atomic_ldop): New.
15483 (aarch64_split_atomic_op): Fix whitespace and add a comment.
15484 * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
15485 (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
15486 (atomic_exchange<mode>): Replace with an expander.
15487 (aarch64_atomic_exchange<mode>): New.
15488 (aarch64_atomic_exchange<mode>_lse): New.
15489 (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
15490 (aarch64_atomic_swp<mode>): New.
15491
15492 2015-09-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
15493
15494 * tree-inline.c (expand_call_inline): Use inform for extra note.
15495 Do not give a note with UNKNOWN_LOCATION.
15496 Replace input_location with gimple_location (stmt).
15497 Use true/false instead of TRUE/FALSE.
15498
15499 2015-09-22 Tom de Vries <tom@codesourcery.com>
15500
15501 PR tree-optimization/67666
15502 * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
15503 with single field non-conservative.
15504
15505 2015-09-21 David S. Miller <davem@davemloft.net>
15506
15507 PR/67622
15508 Revert:
15509 2015-09-11 David S. Miller <davem@davemloft.net>
15510
15511 * config/sparc/constraints.md: Make "U" constraint a real register
15512 constraint.
15513 * config/sparc/sparc.c (TARGET_LRA_P): Define.
15514 (D_MODES, DF_MODES): Add missing cast.
15515 (TF_MODES, TF_MODES_NO_S): Include T_MODE.
15516 (OF_MODES, OF_MODES_NO_S): Include O_MODE.
15517 (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
15518 cost to 8.
15519 * config/sparc/sparc.h (PROMOTE_MODE): Define.
15520 * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
15521 provide these insn when flag_pic.
15522
15523 2015-09-17 David S. Miller <davem@davemloft.net>
15524
15525 * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
15526 Declare.
15527 * config/sparc/sparc.c (sparc_secondary_memory_needed): New
15528 function.
15529 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
15530 (HARD_REGNO_CALLER_SAVE_MODE): Define.
15531 * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
15532 (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
15533 (embmedany_losum, embmedany_brsum, embmedany_textuhi)
15534 (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
15535 provide when flag_pic.
15536
15537 2015-09-21 Jeff Law <law@redhat.com>
15538
15539 * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
15540 behavior.
15541
15542 2015-09-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15543
15544 * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
15545
15546 2015-09-21 Richard Biener <rguenther@suse.de>
15547
15548 * passes.c (rest_of_decl_compilation): Do not call
15549 dwarf2out_early_global_decl for aliases.
15550
15551 2015-09-21 Richard Biener <rguenther@suse.de>
15552
15553 PR debug/67664
15554 * dwarf2out.c (add_location_or_const_value_attribute): Remove
15555 attribute parameter. Early exit if either DW_AT_const_value
15556 or DW_AT_location are present already.
15557 (gen_variable_die): Adjust caller.
15558 (dwarf2out_late_global_decl): Likewise.
15559
15560 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
15561
15562 PR target/67657
15563 * config/sh/sh.c (sh_remove_overlapping_post_inc,
15564 sh_peephole_emit_move_insn): Add new functions.
15565 * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
15566 sh_peephole_emit_move_insn): Declere them.
15567 * config/sh/sh.md: Use them in various peephole2 patterns.
15568
15569 2015-09-21 Richard Biener <rguenther@suse.de>
15570
15571 PR middle-end/67651
15572 * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
15573 address with -fno-delete-null-pointer-checks.
15574
15575 2015-09-21 Alan Lawrence <alan.lawrence@arm.com>
15576
15577 * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
15578 (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
15579 (reduc_uplus_v16qi): Remove.
15580
15581 * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
15582 (reduc_<VEC_reduc_name>_v2df): Remove.
15583 (reduc_<VEC_reduc_name>_v4sf): Remove.
15584 (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
15585
15586 * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
15587 gen_ function by removing * prefix.
15588 (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
15589
15590 2015-09-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
15591
15592 PR middle-end/60832
15593 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
15594 Print i_bound without converting it to a tree.
15595
15596 2015-09-21 Bilyan Borisov <bilyan.borisov@arm.com>
15597
15598 * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
15599 operands[4] operands[5] swap with std::swap, removed tmp variable.
15600 (arm_evpc_neon_vzip): Replaced in0/in1 and
15601 out0/out1 swaps with std::swap, removed x variable.
15602 (arm_evpc_neon_vtrn): Replaced in0/int1 and
15603 out0/out1 swaos with std::swap, removed x variable.
15604 (arm_expand_vec_perm_const_1): Replaced
15605 d->op0/d->op1 swap with std::swap, removed x variable.
15606 (arm_evpc_neon_vuzp): Replaced in0/in1 and
15607 out0/out1 swaps with std::swap, removed x variable.
15608
15609 2015-09-21 Jonathan Yong <10walls@gmail.com>
15610
15611 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
15612 sysroot/usr/lib/32api for additional win32 libraries,
15613 fixes failing Cygwin bootstrapping.
15614
15615 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
15616
15617 * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
15618
15619 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
15620
15621 PR target/67126
15622 * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
15623 (*mov_t_msb_neg): Rewrite negc pattern.
15624
15625 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
15626
15627 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
15628 immediate generation code.
15629
15630 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
15631
15632 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
15633 redundant immediate generation code.
15634
15635 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
15636
15637 * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
15638 (AARCH64_NUM_BITMASKS): Remove.
15639 (aarch64_bitmasks_cmp): Remove.
15640 (aarch64_build_bitmask_table): Remove.
15641
15642 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
15643
15644 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
15645 slow immediate matching loops with a faster algorithm.
15646
15647 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
15648
15649 * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
15650 faster algorithm.
15651
15652 2015-09-20 Jeff Law <law@redhat.com>
15653
15654 PR tree-optimization/47679
15655 * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
15656 * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
15657 * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
15658 (thread_through_normal_block): Use record_temporary_equivalences.
15659
15660 2015-09-19 Trevor Saunders <tbsaunde@tbsaunde.org>
15661
15662 * coretypes.h (gimple): Change typedef to be a forward declaration.
15663 * gimple.h (gimple_statement_base): rename to gimple.
15664 * (all functions and types using gimple): Adjust.
15665 * *.[ch]: Likewise.
15666
15667 2015-09-19 Andrew Dixie <andrewd@gentrack.com>
15668 David Edelsohn <dje.gcc@gmail.com>
15669
15670 * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
15671 (ASM_PREFERRED_EH_DATA_FORMAT): Define.
15672 (EH_FRAME_THROUGH_COLLECT2): Define.
15673 (EH_TABLES_CAN_BE_READ_ONLY): Define.
15674 (ASM_OUTPUT_DWARF_PCREL): Define.
15675 (ASM_OUTPUT_DWARF_DATAREL): Define.
15676
15677 2015-09-19 John David Anglin <danglin@gcc.gnu.org>
15678
15679 * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
15680 of TARGET_ELF32.
15681
15682 2015-09-18 Jeff Law <law@redhat.com>
15683
15684 PR tree-optimization/47679
15685 * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped. Move
15686 it here ...
15687 (dom_opt_dom_walker): New private member holding the avail_exprs_stack
15688 object. Update constructor.
15689 (pass_dominator::execute): Corresponding chagnes to declaration
15690 and initialization of avail_exprs_stack. Update constructor call
15691 for dom_opt_dom_walker object.
15692 (lookup_avail_expr, record_cond): Accept additional argument. Pass
15693 it down to children as needed.
15694 (record_equivalences_from_incoming_edge): Likewise.
15695 (eliminate_redundant_computations): Likewise.
15696 (record_equivalences_from_stmt): Likewise.
15697 (simplify_stmt_for_jump_threading): Likewise.
15698 (record_temporary_equivalences): Likewise.
15699 (optimize_stmt): Likewise.
15700 (dom_opt_dom_walker::thread_across_edge): Update access to
15701 avail_exprs_stack object and pass it to children as needed.
15702 (dom_opt_dom_walker::before_dom_children): Similarly.
15703 (dom_opt_dom_walker::after_dom_children): Similarly.
15704 * tree-ssa-threadedge.c (pfn_simplify): New typedef.
15705 (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
15706 Add avail_expr_stack argument. Pass it to children as needed.
15707 (dummy_simplify): Likewise.
15708 (simplify_control_stmt_condition): Likewise.
15709 (thread_around_empty_blocks): Likewise.
15710 (thread_through_normal_block): Likewise.
15711 (thread_across_edge): Likewise.
15712 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
15713 * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
15714
15715 PR tree-optimization/47679
15716 * tree-ssa-dom.c (const_and_copies): No longer file scoped. Move
15717 it here ...
15718 (dom_opt_dom_walker): New private member holding the const_and_copies
15719 object. Update constructor.
15720 (pass_dominator::execute): Corresponding changes to declaration
15721 and initialization of const_and_copies. Update constructor call
15722 for the dom_opt_dom_walker object.
15723 (record_temporary_equivalences): Accept const_and_copies argument
15724 pass it down to children as needed.
15725 (record_equality): Likewise.
15726 (record_equivalences_from_incoming_edge): Likewise.
15727 (cprop_into_successor_phis, optimize_stmt): Likewise.
15728 (eliminate_redundant_computations): Likewise.
15729 (dom_opt_dom_walker::thread_across_edge): Update access to
15730 const_and_copies object and pass it to children as needed.
15731 (dom_opt_dom_walker::before_dom_children): Similarly.
15732 (dom_opt_dom_walker::after_dom_children): Similarly.
15733
15734 PR tree-optimization/47679
15735 * tree-ssa-dom.c (avail_exprs): No longer file scoped. Bury
15736 it into the avail_exprs_stack class.
15737 (pass_dominator::execute): Corresponding changes to declaration
15738 and initialization of avail_exprs. Pass avail_exprs to
15739 dump_dominator_optimization_stats.
15740 (record_cond): Extract avail_exprs from avail_exprs_stack.
15741 (lookup_avail_expr): Similarly.
15742 (htab_staticstics): Remove unnecessary prototype. Move to earlier
15743 position in file.
15744 (dump_dominator_optimization_stats): Make static and prototype.
15745 Add argument for the hash table to dump.
15746 (debug_dominator_optimization_stats): Remove.
15747 * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
15748 prototype.
15749 (debug_dominator_optimization_stats): Similarly.
15750 * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
15751 "void" in prototype for pop_to_marker method. Add accessor method
15752 for the underlying avail_exprs table.
15753
15754 * tree-ssa-threadedge.c: Remove trailing whitespace.
15755
15756 2014-09-18 John David Anglin <danglin@gcc.gnu.org>
15757
15758 * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
15759 unsigned.
15760 (pa_ldil_cint_p): Likewise.
15761 * config/pa/pa.c (pa_cint_ok_for_move): likewise.
15762 (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
15763 Update callers.
15764 * config/pa/pa.md: Likewise.
15765
15766 2015-09-18 David Malcolm <dmalcolm@redhat.com>
15767
15768 * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
15769 * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
15770 (diagnostic_show_locus): Likewise.
15771 (diagnostic_print_caret_line): Likewise.
15772 * diagnostic-show-locus.c: New file.
15773
15774 2015-09-18 David Edelsohn <dje.gcc@gmail.com>
15775
15776 * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
15777 "back" parameter. Declare label in #if block.
15778
15779 2015-09-18 Uros Bizjak <ubizjak@gmail.com>
15780
15781 PR middle-end/67619
15782 * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
15783 the address to a register.
15784
15785 2015-09-18 Jeff Law <law@redhat.com>
15786
15787 PR tree-optimization/47679
15788 * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
15789 * tree-ssa-dom.c: Remove unnecessary header includes.
15790 (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
15791 (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
15792 (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
15793 (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
15794 (pass_phi_only_cprop::execute): Likewise.
15795 (make_pass_phi_only_cprop): Likewise.
15796 * tree-ssa-phionlycprop.c: New file with moved code. Eliminate
15797 uses of file scoped statics by passing the required objects
15798 as parameters wherever needed.
15799
15800 2015-09-18 Andrew Dixie <andrewd@gentrack.com>
15801 David Edelsohn <dje.gcc@gmail.com>
15802
15803 * defaults.h (EH_FRAME_SECTION_NAME): Depend on
15804 EH_FRAME_THROUGH_COLLECT2.
15805 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
15806 DW_EH_PE_datarel.
15807 * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
15808 even if EH_FRAME_SECTION_NAME is undefined. Restrict special
15809 collect2 labels to EH_FRAME_THROUGH_COLLECT2.
15810 * except.c (switch_to_exception_section): Use a read-only section
15811 even if EH_FRAME_SECTION_NAME is undefined.
15812 * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
15813 * collect2.c (write_c_file_stat): Provide dbase on AIX.
15814 (scan_prog_file): Don't export __dso_handle nor
15815 __gcc_unwind_dbase.
15816 * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
15817 (EH_TABLES_CAN_BE_READ_ONLY): Define.
15818 (ASM_OUTPUT_DWARF_PCREL): Define.
15819 (ASM_OUTPUT_DWARF_DATAREL): Define.
15820 (EH_FRAME_THROUGH_COLLECT2): Define.
15821 (EH_FRAME_IN_DATA_SECTION): Delete.
15822 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
15823 * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
15824 Declare.
15825 (rs6000_asm_output_dwarf_datarel): Declare.
15826 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
15827 (rs6000_aix_asm_output_dwarf_datarel): New.
15828 (rs6000_xcoff_asm_init_sections): Don't set exception_section.
15829 * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
15830 (EH_FRAME_THROUGH_COLLECT2): Define.
15831 * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
15832 (EH_FRAME_THROUGH_COLLECT2): Define.
15833 (EH_TABLES_CAN_BE_READ_ONLY): Define.
15834 * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
15835 (EH_FRAME_THROUGH_COLLECT2): New.
15836 (ASM_OUTPUT_DWARF_DATAREL): New.
15837 * doc/tm.texi: Regenerate.
15838
15839 2015-09-18 Richard Biener <rguenther@suse.de>
15840
15841 * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
15842 we're in early phase.
15843 (schedule_generic_params_dies_gen): Likewise.
15844 (gen_remaining_tmpl_value_param_die_attribute): Do only as much
15845 work as possible, retaining unhandled cases.
15846 (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
15847 clear out generic_type_instances at the end.
15848 (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
15849 (dwarf2out_early_finish): ... here. Do most of
15850 gen_remaining_tmpl_value_param_die_attribute here.
15851
15852 2015-09-18 Alan Lawrence <alan.lawrence@arm.com>
15853
15854 PR tree-optimization/67283
15855 * tree-sra.c (type_consists_of_records_p): Rename to...
15856 (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
15857 (completely_scalarize_record): Rename to...
15858 (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
15859 (scalarize_elem): New.
15860 (analyze_all_variable_accesses): Follow renamings.
15861
15862 2015-09-18 Richard Biener <rguenther@suse.de>
15863
15864 * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
15865 in early-dwarf.
15866
15867 2015-09-18 Richard Biener <rguenther@suse.de>
15868
15869 PR tree-optimization/66142
15870 * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
15871 treat MEM[&x] and x the same.
15872 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
15873 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
15874 when we simplified sth.
15875 (vn_reference_maybe_forwprop_address): Likewise.
15876 (valueize_refs_1): When we simplified through
15877 vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
15878 set valueized_anything to true.
15879 (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
15880 one ref kills the other instead of just a offset-based test.
15881 * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
15882 for the operand_equal_p test to compare bases and also compare
15883 sizes.
15884
15885 2015-09-17 Christian Bruel <christian.bruel@st.com>
15886
15887 * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
15888
15889 2015-09-17 Richard Henderson <rth@redhat.com>
15890
15891 PR libstdc++/65913
15892 * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
15893 pointers that encode the alignment of the object.
15894
15895 2015-09-17 Eric Botcazou <ebotcazou@adacore.com>
15896
15897 PR rtl-optimization/66790
15898 * df-problems.c (LIVE): Amend documentation.
15899
15900 2015-09-17 Richard Sandiford <richard.sandiford@arm.com>
15901
15902 * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
15903 and optabs-tree.o.
15904 (GTFILES): Replace optabs.c with optabs-libfunc.c.
15905 * genopinit.c (main): Add an include guard to insn-opinit.h.
15906 Protect the rtx_code parts with NUM_RTX_CODE.
15907 * optabs.h: Split parts out to...
15908 * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
15909 * optabs.c: Split parts out to...
15910 * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
15911 * cilk-common.c: Include optabs-query.h rather than optabs.h.
15912 * fold-const.c: Likewise.
15913 * target-globals.c: Likewise.
15914 * tree-if-conv.c: Likewise.
15915 * tree-ssa-forwprop.c: Likewise.
15916 * tree-ssa-loop-prefetch.c: Likewise.
15917 * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
15918 Remove unncessary include files.
15919 * tree-ssa-phiopt.c: Likewise.
15920 * tree-ssa-reassoc.c: Likewise.
15921 * tree-switch-conversion.c: Likewise.
15922 * tree-vect-data-refs.c: Likewise.
15923 * tree-vect-generic.c: Likewise.
15924 * tree-vect-loop.c: Likewise.
15925 * tree-vect-patterns.c: Likewise.
15926 * tree-vect-slp.c: Likewise.
15927 * tree-vect-stmts.c: Likewise.
15928 * tree-vrp.c: Likewise.
15929 * toplev.c: Include optabs-query.h and optabs-libfuncs.h
15930 rather than optabs.h.
15931 * expr.c: Include optabs-tree.h.
15932 * function.c: Likewise.
15933
15934 2015-09-17 Eric Botcazou <ebotcazou@adacore.com>
15935
15936 PR middle-end/65958
15937 * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
15938 * config/arm/arm-protos.h (output_probe_stack_range): Declare.
15939 * config/arm/arm.c: Include common/common-target.h.
15940 (use_return_insn): Return 0 if the static chain register was saved
15941 above a non-APCS frame.
15942 (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
15943 (struct scratch_reg): New.
15944 (get_scratch_register_on_entry): New function.
15945 (release_scratch_register_on_entry): Likewise.
15946 (arm_emit_probe_stack_range): Likewise.
15947 (output_probe_stack_range): Likewise.
15948 (arm_expand_prologue): Factor out code dealing with the IP register
15949 for nested function and adjust it for stack checking.
15950 Invoke arm_emit_probe_stack_range if static builtin stack checking
15951 is enabled.
15952 (thumb1_expand_prologue): Sorry out if static builtin stack checking
15953 is enabled.
15954 (arm_expand_epilogue): Add the saved static chain register, if any, to
15955 the amount of pre-pushed registers to pop.
15956 (arm_frame_pointer_required): Return true if static stack checking is
15957 enabled and we want to catch the exception with the EABI unwinder.
15958 * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
15959 (UNSPEC_PROBE_STACK_RANGE): Likewise.
15960 * config/arm/arm.md (probe_stack): New insn.
15961 (probe_stack_range): Likewise.
15962
15963 2015-09-17 Richard Biener <rguenther@suse.de>
15964
15965 * genmatch.c (parser::parse_expr): Improve error message
15966 for mis-placed flags.
15967
15968 2015-09-17 Richard Biener <rguenther@suse.de>
15969
15970 * passes.c (rest_of_decl_compilation): Always call early_global_decl
15971 debug hook when we created a varpool node.
15972 * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
15973 dwarf2out_early_global_decl, when not just add location or
15974 value attributes to existing DIEs.
15975
15976 2015-09-17 James Greenhalgh <james.greenhalgh@arm.com>
15977
15978 * config/aarch64/aarch64.md (copysigndf3): New.
15979 (copysignsf3): Likewise.
15980
15981 2015-09-17 David S. Miller <davem@davemloft.net>
15982
15983 * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
15984 * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
15985 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
15986 (HARD_REGNO_CALLER_SAVE_MODE): Define.
15987 * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
15988 (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
15989 (embmedany_losum, embmedany_brsum, embmedany_textuhi)
15990 (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
15991 provide when flag_pic.
15992
15993 2015-09-17 Kaz Kojima <kkojima@gcc.gnu.org>
15994
15995 * config/sh/sh.c (label_ref_list_d_pool): Adjust to
15996 object_allocator change.
15997
15998 2015-09-17 Bin Cheng <bin.cheng@arm.com>
15999
16000 PR tree-optimization/66388
16001 * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
16002 (dump_iv): Dump no_overflow information.
16003 (alloc_iv): Initialize new field for struct iv.
16004 (mark_bivs): Count number of no_overflow bivs.
16005 (find_deriving_biv_for_expr, record_biv_for_address_use): New
16006 functions.
16007 (idx_find_step): Call new functions above.
16008 (add_candidate_1, add_candidate): New paramter.
16009 (add_iv_candidate_for_biv): Add sizetype cand for BIV.
16010 (get_computation_aff): Simplify convertion of cand for BIV.
16011 (get_computation_cost_at): Step cand's base if necessary.
16012
16013 2015-09-17 Bin Cheng <bin.cheng@arm.com>
16014
16015 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
16016 parameter.
16017 (tree_simplify_using_condition): Ditto.
16018 (simplify_using_initial_conditions): Ditto.
16019 (loop_exits_before_overflow): Pass new argument to function
16020 simplify_using_initial_conditions. Remove case for type conversions
16021 simplification.
16022 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
16023 parameter.
16024 * tree-scalar-evolution.c (simple_iv): Simplify type conversions
16025 in iv base using loop initial conditions.
16026
16027 2015-09-16 Jeff Law <law@redhat.com>
16028
16029 PR tree-optimization/47679
16030 * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
16031 (free_all_edge_infos): Use it.
16032 (allocate_edge_info): Free preexisting edge info data.
16033 (pass_dominator::execute): Set up initial edge info structures.
16034 (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
16035 thread_across_edge.
16036 * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
16037 If non-null, then push/pop markers appropriately.
16038 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
16039 * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
16040 thread-across_edge.
16041
16042 2015-09-16 James Bowman <james.bowman@ftdichip.com>
16043
16044 * config/ft32/ft32.c: Fix the memory address space predicate.
16045
16046 2015-09-16 Kaz Kojima <kkojima@gcc.gnu.org>
16047
16048 PR target/67573
16049 * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
16050 (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
16051
16052 2015-09-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
16053
16054 * toplev.h (check_global_declaration): Remove declaration.
16055 * toplev.c (check_global_declaration): Move to ...
16056 * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
16057 (analyze_functions): Update call.
16058
16059 2015-09-16 David S. Miller <davem@davemloft.net>
16060
16061 * lra-constraints.c (simplify_operand_subreg): Do not assume that
16062 lowpart of a SUBREG has offset zero.
16063
16064 2015-09-16 Jeff Law <law@redhat.com>
16065
16066 PR tree-optimization/47679
16067 * tree-ssa-dom.c (enum expr_kind): Moved from here to
16068 tree-ssa-scopedtables.h.
16069 (struct hashable_expr, class expr_hash_elt): Likewise.
16070 (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
16071 Move associated methods into tree-ssa-scopedtables.c.
16072 (avail_expr_hash, initialize_expr_from_cond): Similarly.
16073 (hashable_expr_equal_p, add_expr_commutative): Likewise.
16074 (add_hashable_expr): Likewise.
16075 (record_cond): Delete element directly.
16076 * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
16077 private copy ctor and assignment operator methods.
16078 (expr_elt_hasher): Inline trivial methods.
16079 (initialize_expr_from_cond): Prototype.
16080 * tree-ssa-scopedtables.c: Add necessary includes, functions and
16081 methods that were previously in tree-ssa-dom.c. Improve various
16082 comments.
16083
16084 2015-09-16 Paolo Carlini <paolo.carlini@oracle.com>
16085
16086 * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
16087
16088 2015-09-16 Segher Boessenkool <segher@kernel.crashing.org>
16089
16090 PR bootstrap/67587
16091 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
16092 fixup_partitions.
16093
16094 2015-09-16 Richard Biener <rguenther@suse.de>
16095
16096 PR middle-end/67253
16097 * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
16098 location of possibly shared trees.
16099
16100 2015-09-16 Richard Biener <rguenther@suse.de>
16101
16102 PR middle-end/67271
16103 * fold-const.c (native_encode_expr): Bail out on bogus offsets.
16104
16105 2015-09-16 Eric Botcazou <ebotcazou@adacore.com>
16106
16107 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
16108 offset and size computations instead of HOST_WIDE_INT.
16109
16110 2015-09-16 Richard Biener <rguenther@suse.de>
16111
16112 PR middle-end/67442
16113 * fold-const.c (extract_muldiv_1): Properly extend multiplication
16114 result before builting a tree via wide_int_to_tree.
16115
16116 2015-09-16 Mikhail Maltsev <maltsevm@gmail.com>
16117
16118 * Makefile.in: Add memory-block.cc
16119 (pool_allocator::initialize): Use fixed block size.
16120 (pool_allocator::release): Use memory_block_pool.
16121 (pool_allocator::allocate): Likewise.
16122 * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
16123 object pools.
16124 * cfg.c (initialize_original_copy_tables): Likewise.
16125 * cselib.c (elt_list_pool, elt_loc_list_pool,
16126 cselib_val_pool): Likewise.
16127 * df-problems.c (df_chain_alloc): Likewise.
16128 * df-scan.c (df_scan_alloc): Likewise.
16129 * dse.c (cse_store_info_pool, rtx_store_info_pool,
16130 read_info_type_pool, insn_info_type_pool, bb_info_pool,
16131 group_info_pool, deferred_change_pool): Likewise.
16132 * et-forest.c (et_nodes, et_occurrences): Likewise.
16133 * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
16134 ipcp_agg_lattice_pool): Likewise.
16135 * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
16136 * ipa-profile.c (histogram_pool): Likewise.
16137 * ipa-prop.c (ipa_refdesc_pool): Likewise.
16138 * ira-build.c (live_range_pool, allocno_pool, object_pool,
16139 initiate_cost_vectors, pref_pool, copy_pool): Likewise.
16140 * ira-color.c (update_cost_record_pool): Likewise.
16141 * lra-lives.c (lra_live_range_pool): Likewise.
16142 * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
16143 * memory-block.cc: New file.
16144 * memory-block.h: New file.
16145 * regcprop.c (queued_debug_insn_change_pool): Use common block size.
16146 * sched-deps.c (sched_deps_init): Likewise.
16147 * sel-sched-ir.c (sched_lists_pool): Likewise.
16148 * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
16149 * tree-sra.c (access_pool): Likewise.
16150 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
16151 * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
16152 * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
16153 * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
16154 * tree-ssa-strlen.c (strinfo_pool): Likewise.
16155 * tree-ssa-structalias.c (variable_info_pool): Likewise.
16156 * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
16157 location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
16158
16159 2015-09-15 Max Filippov <jcmvbkbc@gmail.com>
16160
16161 * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
16162 definition.
16163 (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
16164 call0 ABI.
16165
16166 2015-09-15 Max Filippov <jcmvbkbc@gmail.com>
16167
16168 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
16169 to pass TLS call argument, according to current ABI.
16170 * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
16171 callx0 for TLS call, according to current ABI.
16172
16173 2015-09-15 Eric Botcazou <ebotcazou@adacore.com>
16174
16175 * tree-eh.c (lower_try_finally_dup_block): Clear location information
16176 on stack restore statements.
16177 (decide_copy_try_finally): Do not consider a stack restore statement as
16178 coming from sources.
16179
16180 2015-09-15 Uros Bizjak <ubizjak@gmail.com>
16181
16182 * config/alpha/alpha.c (alpha_expand_block_clear): Use
16183 HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
16184
16185 2015-09-15 Jeff Law <law@redhat.com>
16186
16187 PR tree-optimization/47679
16188 * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
16189 methods and private members.
16190 (avail_exprs_stack): Similarly. Change type of global
16191 from a pair of expr_hash_elt_t to the new class.
16192 (expr_elt_hasher::hash): Corresponding changes.
16193 (expr_elt_hasher::equal): Similarly.
16194 (avail_expr_hash): Similarly.
16195 (pass_dominator::execute): Similarly.
16196 (dom_opt_dom_walker::thread_across_edge): Similarly.
16197 (record_cond): Similarly.
16198 (dom_opt_dom_walker::before_dom_children): Similarly.
16199 (dom_opt_dom_walker::after_dom_children): Similarly.
16200 (lookup_avail_expr): Likewise.
16201 (initialize_hash_element): Now a expr_hash_elt constructor.
16202 (initialize_hash_element_from_expr): Similarly.
16203 (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
16204 (free_expr_hash_elt): Call dtor for the element.
16205 (remove_local_expressions_from_table): Now the "pop_to_marker"
16206 method in the available_exprs_stack class.
16207 (avail_expr_stack::record_expr): Method factored out.
16208 (print_expr_hash_elt): Now a method in the expr_hash_elt class.
16209 Fix formatting.
16210 (hashable_expr_equal_p): Fix formatting.
16211
16212 2015-09-15 David Malcolm <dmalcolm@redhat.com>
16213
16214 * input.h (location_get_source_line): Drop "expanded_location"
16215 param in favor of a file and line number.
16216 * input.c (location_get_source_line): Likewise.
16217 (dump_location_info): Update for change in signature of
16218 location_get_source_line.
16219 * diagnostic.c (diagnostic_print_caret_line): Likewise.
16220
16221 2015-09-15 Eric Botcazou <ebotcazou@adacore.com>
16222
16223 * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
16224 Bump to 4KB for SJLJ exceptions.
16225 (STACK_CHECK_PROTECT): Likewise. Bump to 8KB for SJLJ exceptions.
16226 * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
16227 * doc/tm.texi: Regenerate.
16228
16229 2015-09-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16230
16231 * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
16232 of -1 when shifting. Change type of val to unsigned HOST_WIDE_INT.
16233 Update prototype.
16234
16235 2015-09-15 Richard Biener <rguenther@suse.de>
16236
16237 PR tree-optimization/67470
16238 * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
16239 structure for PHI hoisting by inserting a forwarder block
16240 if appropriate.
16241
16242 2015-09-15 Christian Bruel <christian.bruel@st.com>
16243
16244 * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
16245 (arm_option_print): New function.
16246
16247 2015-09-15 Christian Bruel <christian.bruel@st.com>
16248
16249 PR target/52144
16250 * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
16251 * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
16252 Remove flags parameter.
16253 * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
16254 (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
16255 (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
16256 (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
16257 (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
16258 (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
16259 (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
16260 * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
16261
16262 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
16263
16264 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
16265
16266 * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
16267 AARCH64_VALID_SIMD_DREG_MODE.
16268
16269 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
16270
16271 * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
16272 aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
16273 (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
16274 (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
16275 aarch64_ld4_lane<mode>): Combine together, making...
16276 (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
16277 (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
16278 aarch64_st4_lane<mode>): Combine together, making...
16279 (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
16280 * config/aarch64/iterators.md (nregs): Add comment.
16281
16282 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
16283
16284 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
16285 Change operand mode from <V_TWO_ELEM> to BLK.
16286 (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
16287 (aarch64_vec_store_lanesoi_lane<mode): Likewise
16288 (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
16289 (aarch64_ld2_lane<mode>): Likewise.
16290 (aarch64_st2_lane<VQ:mode>): Likewise.
16291 * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
16292
16293 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
16294
16295 * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
16296 Change operand mode from <V_FOUR_ELEM> to BLK.
16297 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
16298 (aarch64_vec_store_lanesxi_lane<mode): Likewise.
16299 (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
16300 (aarch64_ld4_lane<mode>): Likewise.
16301 (aarch64_st4_lane<mode>): Likewise.
16302 * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
16303
16304 2015-09-15 Richard Biener <rguenther@suse.de>
16305
16306 PR middle-end/67563
16307 * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
16308 transfer EH info from old to new stmt.
16309 (replace_call_with_value): Likewise.
16310 (replace_call_with_call_and_fold): Likewise.
16311 (gimple_fold_builtin_memory_op): Likewise.
16312 (gimple_fold_builtin_memset): Likewise.
16313 (gimple_fold_builtin_stpcpy): Likewise.
16314 (gimple_fold_call): Likewise.
16315
16316 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
16317
16318 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
16319 comment.
16320 * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
16321 (aarch64_simd_intEI_type_node): Likewise.
16322 (aarch64_simd_builtin_std_type): Remove EImode case.
16323 (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
16324 * config/aarch64/aarch64-modes.def: Remove EImode.
16325
16326 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
16327
16328 * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
16329 Change operand mode from <V_THREE_ELEM> to BLK.
16330 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
16331 (aarch64_vec_store_lanesci_lane<mode>): Likewise.
16332 (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
16333 (aarch64_ld3_lane<mode>): Likewise.
16334 (aarch64_st3_lane<mode>): Likewise.
16335 * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
16336
16337 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
16338
16339 * config/aarch64/aarch64-simd.md
16340 (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
16341 Change all TImode operands to BLKmode.
16342 (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
16343 Change all EImode operands to BLKmode.
16344 (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
16345 Change all OImode operands to BLKmode.
16346
16347 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
16348 and call set_mem_size.
16349 (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
16350
16351 * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
16352
16353 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
16354
16355 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
16356 to...
16357 (aarch64_vec_store_lanesoi_lane<mode>): ...this.
16358
16359 (vec_store_lanesci_lane<mode>): Rename to...
16360 (aarch64_vec_store_lanesci_lane<mode>): ...this.
16361
16362 (vec_store_lanesxi_lane<mode>): Rename to...
16363 (aarch64_vec_store_lanesxi_lane<mode>): ...this.
16364
16365 (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
16366 aarch64_st4_lane<mode>): Follow renaming.
16367
16368 2015-09-15 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16369
16370 * config/s390/s390.c (s390_const_operand_ok): Add missing
16371 brackets.
16372
16373 2015-09-15 Richard Biener <rguenther@suse.de>
16374
16375 PR lto/67568
16376 * lto-streamer.h (lto_location_cache::current_sysp): Properly
16377 initialize.
16378 * lto-streamer-out.c (clear_line_info): Likewise.
16379
16380 2015-09-15 Richard Biener <rguenther@suse.de>
16381
16382 * doc/match-and-simplify.texi: Fix wording.
16383
16384 2015-09-15 Bin Cheng <bin.cheng@arm.com>
16385
16386 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
16387 unnecessary type conversion in op1.
16388
16389 2015-09-14 Segher Boessenkool <segher@kernel.crashing.org>
16390
16391 * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
16392 (dup_block_and_redirect): Delete function.
16393 (can_dup_for_shrink_wrapping): New function.
16394 (fix_fake_fallthrough_edge): New function.
16395 (try_shrink_wrapping): Rewrite function.
16396 (convert_to_simple_return): Call fix_fake_fallthrough_edge.
16397
16398 2015-09-14 Rich Felker <dalias@libc.org>
16399
16400 * configure.ac: Change target pattern for sh TLS support
16401 test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
16402 * configure: Regenerate.
16403
16404 2015-09-14 Jeff Law <law@redhat.com>
16405
16406 PR tree-optimization/47679
16407 * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
16408 type rather than void *.
16409
16410 2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
16411
16412 PR fortran/67460
16413 * diagnostic.c (diagnostic_initialize): Do not set
16414 some_warnings_are_errors.
16415 (diagnostic_finish): Use DK_WERROR count instead.
16416 (diagnostic_report_diagnostic): Do not set
16417 some_warnings_are_errors.
16418 * diagnostic.h (struct diagnostic_context): Remove
16419 some_warnings_are_errors.
16420
16421 2015-09-14 Richard Sandiford <richard.sandiford@arm.com>
16422
16423 * config/sparc/predicates.md (const_all_ones_operand): Use
16424 CONSTM1_RTX to simplify definition.
16425
16426 2015-09-14 Oleg Endo <olegendo@gcc.gnu.org>
16427
16428 PR target/67061
16429 * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
16430 Handle call insns.
16431
16432 2015-09-14 Chung-Lin Tang <cltang@codesourcery.com>
16433
16434 * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
16435 OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
16436 OPT_fshow_column to handled saved option cases.
16437 (append_compiler_options): Do not skip the above added options.
16438
16439 2015-09-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16440
16441 PR target/63304
16442 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
16443 nopcrelative_literal_loads.
16444 (aarch64_classify_address): Likewise.
16445 (aarch64_constant_pool_reload_icode): Define.
16446 (aarch64_secondary_reload): Handle secondary reloads for
16447 literal pools.
16448 (aarch64_override_options): Handle nopcrelative_literal_loads.
16449 (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
16450 * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
16451 Define.
16452 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
16453 * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
16454 * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
16455 predicate.
16456 * doc/invoke.texi (mpc-relative-literal-loads): Document.
16457
16458 2015-09-14 John David Anglin <danglin@gcc.gnu.org>
16459
16460 PR middle-end/67401
16461 * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
16462 sync_compare_and_swap_optab libcall to target_oval.
16463
16464 2015-09-14 Marek Polacek <polacek@redhat.com>
16465
16466 * rtlanal.c (split_double): Cast to unsigned when shifting a negative
16467 value.
16468 * sched-int.h (UNKNOWN_DEP_COST): Likewise.
16469
16470 2015-09-11 Mark Wielaard <mjw@redhat.com>
16471
16472 PR c/28901
16473 * toplev.c (check_global_declaration): Check and use
16474 warn_unused_const_variable.
16475 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
16476 (-Wunused-variable): Remove non-constant. For C implies
16477 -Wunused-const-variable.
16478 (-Wunused-const-variable): New.
16479
16480 2015-09-14 Richard Biener <rguenther@suse.de>
16481
16482 * doc/match-and-simplify.texi: Update for changed syntax
16483 of inner ifs and the new switch expression.
16484
16485 2015-09-14 Yuri Rumyantsev <ysrumyan@gmail.com>
16486
16487 * config/i386/haswell.md: New file describing Haswell pipeline.
16488 * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
16489 haswell-like processors.
16490 (ix86_reassociation_width): Increase reassociation width for 64-bit
16491 Haswell processor family.
16492 * config/i386/i386.md: Introduce haswell cpu and include new md file.
16493
16494 2015-09-14 Richard Biener <rguenther@suse.de>
16495
16496 * doc/match-and-simplify.texi: Fixup some formatting issues
16497 and document the 's' flag.
16498
16499 2015-09-13 Olivier Hainque <hainque@adacore.com>
16500 Eric Botcazou <ebotcazou@adacore.com>
16501
16502 * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
16503 gr6 as possible values, defaulting to gr5. Set target_cpu_default2.
16504 * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
16505 (TARGET_CPU_gr5): Likewise.
16506 (TARGET_CPU_gr6): Likewise.
16507 (MULTILIB_DEFAULTS): Likewise.
16508 * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
16509 for mcpu=gr5 and mcpu=gr6.
16510 (MULTILIB_DIRNAMES): Adjust accordingly.
16511
16512 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16513
16514 * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
16515 (mem_ref_p): Likewise.
16516 (outermost_indep_loop): Adjust.
16517 (mem_ref_in_stmt): Likewise.
16518 (determine_max_movement): Likewise.
16519 (mem_ref_alloc): Likewise.
16520 (record_mem_ref_loc): Likewise.
16521 (set_ref_stored_in_loop): Likewise.
16522 (mark_ref_stored): Likewise.
16523 (gather_mem_refs_stmt): Likewise.
16524 (mem_refs_may_alias_p): Likewise.
16525 (for_all_locs_in_loop): Likewise.
16526 (struct rewrite_mem_ref_loc): Likewise.
16527 (rewrite_mem_refs): Likewise.
16528 (struct first_mem_ref_loc_1): Likewise.
16529 (first_mem_ref_loc): Likewise.
16530 (struct sm_set_flag_if_changed): Likewise.
16531 (execute_sm_if_changed_flag_set): Likewise.
16532 (execute_sm): Likewise.
16533 (hoist_memory_references):
16534 (struct ref_always_accessed): Likewise.
16535 (ref_always_accessed_p): Likewise.
16536 (refs_independent_p): Likewise.
16537 (record_dep_loop): Likewise.
16538 (ref_indep_loop_p_1): Likewise.
16539 (ref_indep_loop_p_2): Likewise.
16540 (ref_indep_loop_p): Likewise.
16541 (can_sm_ref_p): Likewise.
16542 (find_refs_for_sm): Likewise.
16543 (tree_ssa_lim_finalize): Likewise.
16544
16545 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16546
16547 * dwarf2out.c (dw_attr_ref): Remove typedef.
16548 (dw_line_info_ref): Likewise.
16549 (pubname_ref): Likewise.
16550 (dw_ranges_ref): Likewise.
16551 (dw_ranges_by_label_ref): Likewise.
16552 (comdat_type_node_ref): Likewise.
16553 (get_AT): Adjust.
16554 (get_AT_low_pc): Likewise.
16555 (get_AT_hi_pc): Likewise.
16556 (get_AT_string): Likewise.
16557 (get_AT_flag): Likewise.
16558 (get_AT_unsigned): Likewise.
16559 (get_AT_ref): Likewise.
16560 (get_AT_file): Likewise.
16561 (remove_AT): Likewise.
16562 (print_die): Likewise.
16563 (check_die): Likewise.
16564 (die_checksum): Likewise.
16565 (attr_checksum_ordered): Likewise.
16566 (struct checksum_attributes): Likewise.
16567 (collect_checksum_attributes): Likewise.
16568 (die_checksum_ordered): Likewise.
16569 (same_die_p): Likewise.
16570 (is_declaration_die): Likewise.
16571 (clone_die): Likewise.
16572 (clone_as_declaration): Likewise.
16573 (copy_declaration_context): Likewise.
16574 (break_out_comdat_types): Likewise.
16575 (copy_decls_walk): Likewise.
16576 (output_location_lists): Likewise.
16577 (external_ref_hasher::hash): Likewise.
16578 (optimize_external_refs_1): Likewise.
16579 (build_abbrev_table): Likewise.
16580 (size_of_die): Likewise.
16581 (unmark_all_dies): Likewise.
16582 (size_of_pubnames): Likewise.
16583 (output_die_abbrevs): Likewise.
16584 (output_die): Likewise.
16585 (output_pubnames): Likewise.
16586 (add_ranges_num): Likewise.
16587 (add_ranges_by_labels): Likewise.
16588 (add_high_low_attributes): Likewise.
16589 (gen_producer_string): Likewise.
16590 (dwarf2out_set_name): Likewise.
16591 (new_line_info_table): Likewise.
16592 (prune_unused_types_walk_attribs): Likewise.
16593 (prune_unused_types_update_strings): Likewise.
16594 (prune_unused_types): Likewise.
16595 (resolve_addr): Likewise.
16596 (optimize_location_lists_1): Likewise.
16597 (index_location_lists): Likewise.
16598 (dwarf2out_finish): Likewise.
16599
16600 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16601
16602 * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
16603
16604 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16605
16606 * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
16607 (dump_asserts_for): Adjust.
16608 (register_new_assert_for): Likewise.
16609 (process_assert_insertions): Likewise.
16610 (insert_range_assertions): Likewise.
16611
16612 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16613
16614 * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
16615 and remove typedef.
16616 (new_temp_expr_table): Adjust.
16617 (free_temp_expr_table): Likewise.
16618 (version_to_be_replaced_p): Likewise.
16619 (make_dependent_on_partition): Likewise.
16620 (add_to_partition_kill_list): Likewise.
16621 (remove_from_partition_kill_list): Likewise.
16622 (add_dependence): Likewise.
16623 (finished_with_expr): Likewise.
16624 (process_replaceable): Likewise.
16625 (kill_expr): Likewise.
16626 (kill_virtual_exprs): Likewise.
16627 (mark_replaceable): Likewise.
16628 (find_replaceable_in_bb): Likewise.
16629 (find_replaceable_exprs): Likewise.
16630 (debug_ter): Likewise.
16631
16632 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16633
16634 * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
16635 (struct btr_user): Rename from btr_user_s.
16636 (struct btr_def): Rename from btr_def_s.
16637 (find_btr_def_group): Adjust.
16638 (add_btr_def): Likewise.
16639 (new_btr_user): Likewise.
16640 (note_other_use_this_block): Likewise.
16641 (compute_defs_uses_and_gen): Likewise.
16642 (link_btr_uses): Likewise.
16643 (build_btr_def_use_webs): Likewise.
16644 (block_at_edge_of_live_range_p): Likewise.
16645 (btr_def_live_range): Likewise.
16646 (combine_btr_defs): Likewise.
16647 (move_btr_def): Likewise.
16648 (migrate_btr_def): Likewise.
16649 (migrate_btr_defs): Likewise.
16650
16651 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16652
16653 * var-tracking.c (shared_hash_def): Rename to shared_hash.
16654 (shared_hash): Remove typedef.
16655 (struct dataflow_set): Adjust.
16656 (shared_hash_unshare): Likewise.
16657 (dataflow_set_merge): Likewise.
16658 (vt_initialize): Likewise.
16659 (vt_finalize): Likewise.
16660
16661 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16662
16663 * var-tracking.c (struct location_chain): Rename from
16664 location_chain_def.
16665 (struct variable_part): Adjust.
16666 (variable_htab_free): Likewise.
16667 (unshare_variable): Likewise.
16668 (get_init_value): Likewise.
16669 (get_addr_from_local_cache): Likewise.
16670 (drop_overlapping_mem_locs): Likewise.
16671 (val_reset): Likewise.
16672 (struct variable_union_info): Likewise.
16673 (variable_union): Likewise.
16674 (find_loc_in_1pdv): Likewise.
16675 (insert_into_intersection): Likewise.
16676 (intersect_loc_chains): Likewise.
16677 (canonicalize_loc_order_check): Likewise.
16678 (canonicalize_values_mark): Likewise.
16679 (canonicalize_values_star): Likewise.
16680 (canonicalize_vars_star): Likewise.
16681 (variable_merge_over_cur): Likewise.
16682 (remove_duplicate_values): Likewise.
16683 (variable_post_merge_new_vals): Likewise.
16684 (variable_post_merge_perm_vals): Likewise.
16685 (find_mem_expr_in_1pdv): Likewise.
16686 (dataflow_set_preserve_mem_locs): Likewise.
16687 (dataflow_set_remove_mem_locs): Likewise.
16688 (variable_part_different_p): Likewise.
16689 (onepart_variable_different_p): Likewise.
16690 (find_src_set_src): Likewise.
16691 (dump_var): Likewise.
16692 (set_slot_part): Likewise.
16693 (clobber_slot_part): Likewise.
16694 (delete_slot_part): Likewise.
16695 (vt_expand_var_loc_chain): Likewise.
16696 (emit_note_insn_var_location): Likewise.
16697 (vt_finalize): Likewise.
16698
16699 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16700
16701 * dse.c (store_info_t): Remove typedef.
16702 (group_info_t): Likewise.
16703 (const_group_info_t): Likewise.
16704 (deferred_change_t): Likewise.
16705 (get_group_info): Adjust.
16706 (free_store_info): Likewise.
16707 (canon_address): Likewise.
16708 (clear_rhs_from_active_local_stores): Likewise.
16709 (record_store): Likewise.
16710 (replace_read): Likewise.
16711 (check_mem_read_rtx): Likewise.
16712 (scan_insn): Likewise.
16713 (remove_useless_values): Likewise.
16714 (dse_step1): Likewise.
16715 (dse_step2_init): Likewise.
16716 (dse_step2_nospill): Likewise.
16717 (scan_stores_nospill): Likewise.
16718 (scan_reads_nospill): Likewise.
16719 (dse_step3_exit_block_scan): Likewise.
16720 (dse_step3): Likewise.
16721 (dse_step5_nospill): Likewise.
16722 (dse_step6): Likewise.
16723
16724 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16725
16726 * alias.c (alias_set_entry_d): Rename to alias_set_entry.
16727 (alias_set_entry): Remove typedef.
16728 (alias_set_subset_of): Adjust.
16729 (alias_sets_conflict_p): Likewise.
16730 (init_alias_set_entry): Likewise.
16731 (get_alias_set): Likewise.
16732 (new_alias_set): Likewise.
16733 (record_alias_subset): Likewise.
16734
16735 2015-09-13 Gerald Pfeifer <gerald@pfeifer.com>
16736
16737 * doc/install.texi (Downloading the source): Mark up
16738 contrib/download_prerequisites properly and drop leading "./".
16739
16740 2015-09-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16741
16742 * config/arc/arc.h: Remove define of STRUCT_VALUE.
16743 * config/lm32/lm32.h: Likewise.
16744 * config/mep/mep.h: Likewise.
16745 * config/visium/visium.h: Likewise.
16746 * system.h: Poison STRUCT_VALUE macro.
16747
16748 2015-09-12 John David Anglin <danglin@gcc.gnu.org>
16749
16750 * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
16751 CONSTANT_P operands.
16752
16753 2015-09-11 David S. Miller <davem@davemloft.net>
16754
16755 * config/sparc/constraints.md: Make "U" constraint a real register
16756 constraint.
16757 * config/sparc/sparc.c (TARGET_LRA_P): Define.
16758 (D_MODES, DF_MODES): Add missing cast.
16759 (TF_MODES, TF_MODES_NO_S): Include T_MODE.
16760 (OF_MODES, OF_MODES_NO_S): Include O_MODE.
16761 (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
16762 cost to 8.
16763 * config/sparc/sparc.h (PROMOTE_MODE): Define.
16764 * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
16765 provide these insn when flag_pic.
16766
16767 2015-09-11 Jeff Law <law@redhat.com>
16768
16769 PR tree-optimization/47679
16770 * tree-ssa-dom.c (struct cond_equivalence): Update comment.
16771 * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
16772 member with m_. Update inline member functions as necessary. Add
16773 toplevel comment.
16774 * tree-ssa-scopedtables.c: Update const_and_copies's member
16775 functions to use m_ prefix to access the stack.
16776
16777 2015-09-11 Aditya Kumar <aditya.k7@samsung.com>
16778
16779 * graphite-optimize-isl.c (disable_tiling): Remove.
16780 (get_schedule_for_band): Do not use disable_tiling.
16781 (get_prevector_map): Delete function.
16782 (enable_polly_vector): Remove.
16783 (get_schedule_for_band_list): Remove dead code.
16784
16785 2015-09-11 Aditya Kumar <aditya.k7@samsung.com>
16786
16787 * graphite-optimize-isl.c (get_tile_map): Refactor.
16788 (get_schedule_for_band): Same.
16789 (getScheduleForBand): Same.
16790 (get_prevector_map): Same.
16791 (get_schedule_for_band_list): Same.
16792 (get_schedule_map): Same.
16793 (get_single_map): Same.
16794 (apply_schedule_map_to_scop): Same.
16795 (optimize_isl): Same.
16796
16797 2015-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16798
16799 PR target/63304
16800 * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
16801 (movtf): Delete.
16802 * config/aarch64/iterators.md (GPF_TF_F16): New.
16803 (GPF_F16): Delete.
16804
16805 2015-09-10 Nathan Sidwell <nathan@acm.org>
16806
16807 * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
16808 (nvptx_reorg): Adjust comments.
16809
16810 2015-09-15 John David Anglin <danglin@gcc.gnu.org>
16811
16812 PR bootstrap/67363
16813 * configure.ac: Check if setenv and unsetenv are declared.
16814 * configure: Rebuild.
16815 * config.in: Rebuild.
16816 * system.h: Declare setenv and unsetenv if not declared.
16817
16818 2015-09-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16819
16820 * config/rs6000/rs6000.c (swap_web_entry): Update preceding
16821 commentary to simplify permute mask adjustment equation.
16822 (special_handling_values): Add SH_VPERM.
16823 (const_load_sequence_p): New function.
16824 (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
16825 the mask loaded from the constant pool.
16826 (adjust_vperm): New function.
16827 (handle_special_swappables): Call adjust_vperm.
16828 (dump_swap_insn_table): Handle SH_VPERM.
16829
16830 2015-09-10 H.J. Lu <hongjiu.lu@intel.com>
16831
16832 * shrink-wrap.c (requires_stack_frame_p): Remove static.
16833 * shrink-wrap.h (requires_stack_frame_p): Put back.
16834
16835 2015-09-10 Richard Sandiford <richard.sandiford@arm.com>
16836
16837 * reload1.c (elimination_costs_in_insn): Locally turn
16838 -Wmaybe-uninitialized into a warning.
16839
16840 2015-09-10 Segher Boessenkool <segher@kernel.crashing.org>
16841
16842 * shrink-wrap.c (requires_stack_frame_p): Make static.
16843 (prepare_shrink_wrap): Likewise.
16844 (dup_block_and_redirect): Likewise.
16845 * shrink-wrap.h: Remove declarations of those functions.
16846
16847 2015-09-10 Mark Wielaard <mjw@redhat.com>
16848
16849 * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
16850
16851 2015-09-10 Oleg Endo <olegendo@gcc.gnu.org>
16852
16853 PR target/67506
16854 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
16855 missing simplify_gen_subreg.
16856
16857 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16858
16859 * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
16860 the vector element is bigger than 64 bit.
16861
16862 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16863
16864 * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
16865 ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
16866
16867 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16868
16869 * config/s390/s390.c: Add V1TImode to constant pool modes.
16870
16871 2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16872
16873 PR target/67439
16874 * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
16875 predicate. Set predicable_short_it attr to "no".
16876
16877 2015-09-10 Jiong Wang <jiong.wang@arm.com>
16878
16879 PR rtl-optimization/67421
16880 * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
16881 left wide shift tranformation.
16882
16883 2015-09-10 Claudiu Zissulescu <claziss@synopsys.com>
16884
16885 * common/config/arc/arc-common.c: Remove references to A5.
16886 * config/arc/arc-opts.h: Likewise.
16887 * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
16888 * config/arc/arc.opt, config/arc/constraints.md: Likewise.
16889 * config/arc/t-arc-newlib: Likewise.
16890
16891 2015-09-10 Claudiu Zissulescu <claziss@synopsys.com>
16892
16893 * config/arc/arc.md (length): Fix attribute length for conditional
16894 executed instructions with long immediate.
16895
16896 2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16897
16898 * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
16899 type for second alternative.
16900
16901 2015-09-10 Markus Trippelsdorf <markus@trippelsdorf.de>
16902
16903 * doc/invoke.texi (Downloading GCC): Mention
16904 contrib/download_prerequisites script.
16905
16906 2015-09-10 Jakub Jelinek <jakub@redhat.com>
16907
16908 PR c++/67523
16909 * gimplify.c (gimplify_omp_for): If inner stmt is not found
16910 for combined loop, assert seen_error () and return GS_ERROR.
16911
16912 PR middle-end/67521
16913 * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
16914 if decl is already in outer->variables.
16915
16916 PR middle-end/67517
16917 * gimplify.c (gimplify_scan_omp_clauses): Instead of
16918 asserting that decl is not specified in octx->variables,
16919 break out of the loop if it is.
16920
16921 PR c++/67514
16922 * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
16923 iterator is not explicitly determined, but is defined inside
16924 of the combined workshare region, handle it like if it has
16925 DECL_EXPR in OMP_FOR_PRE_BODY.
16926
16927 2015-09-09 Nathan Sidwell <nathan@acm.org>
16928
16929 * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
16930 (*cmp<mode>): Add assembler spacing.
16931 (setcc_int<mode>, set_cc_float<mode>): Likewise.
16932 * config/nvptx/nvptx.c (nvptx_option_override): Override debug
16933 level.
16934 (write_func_decl_from_insn): Refactor argument loops & comma emission.
16935 (nvptx_expand_call): Likewise.
16936 (nvptx_output_call_insn): Likewise.
16937 (nvptx_reorg_subreg): Add spacing.
16938
16939 2015-09-09 Marek Polacek <polacek@redhat.com>
16940
16941 PR middle-end/67512
16942 * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
16943 for comparisons.
16944
16945 2015-09-09 Paolo Carlini <paolo.carlini@oracle.com>
16946
16947 PR c++/53184
16948 * doc/invoke.texi ([Wsubobject-linkage]): Document.
16949
16950 2015-09-09 Tom de Vries <tom@codesourcery.com>
16951
16952 * params-list.h: Add missing copyright notice.
16953
16954 2015-09-09 Nathan Sidwell <nathan@acm.org>
16955
16956 * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
16957 sel_truesi, not andsi.
16958
16959 2015-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16960
16961 * config/arm/arm.md (*subsi3_compare0): Rename to...
16962 (subsi3_compare0): ... This.
16963 (modsi3): New define_expand.
16964 * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
16965 when operand is power of 2.
16966
16967 2015-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16968
16969 * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
16970 (*neg<mode>2_compare0): Rename to...
16971 (neg<mode>2_compare0): ... This.
16972 * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
16973 Move check for speed inside the if-then-elses. Reflect
16974 CSNEG sequence in MOD by power of 2 case.
16975
16976 2015-09-09 Alan Modra <amodra@gmail.com>
16977
16978 PR target/67378
16979 * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
16980 reload replacement for PRE_MODIFY address reg.
16981
16982 2015-09-09 Sebastian Pop <s.pop@samsung.com>
16983
16984 PR tree-optimization/53852
16985 * config.in: Regenerate.
16986 * configure: Regenerate.
16987 * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
16988 * graphite-optimize-isl.c (optimize_isl): Stop computation when
16989 PARAM_MAX_ISL_OPERATIONS is reached.
16990 * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
16991 * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
16992 result equal to isl_stat_ok as the status now can be isl_error_quota.
16993 (subtract_commutative_associative_deps): Same.
16994 (compute_deps): Same.
16995
16996 2015-09-08 Aditya Kumar <hiraditya@msn.com>
16997 Sebastian Pop <s.pop@samsung.com>
16998
16999 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
17000 Return the parameter if it was saved in corresponding
17001 parameter_rename_map of the region.
17002 (copy_def): Copy def from sese region to the newly created region.
17003 (copy_internal_parameters): Copy all the internal parameters defined
17004 within a region to the newly created region.
17005 (graphite_regenerate_ast_isl): Copy parameters to the new region before
17006 translating isl to gimple.
17007 * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
17008 the loop-nest does not have any data-references.
17009 (build_graphite_scops): Create a scop only when there is at least one
17010 loop inside it.
17011 (contains_only_close_phi_nodes): Deleted.
17012 (print_graphite_scop_statistics): Deleted
17013 (print_graphite_statistics): Deleted
17014 (limit_scops): Deleted.
17015 (build_scops): Removed call to limit_scops.
17016 * sese.c (new_sese): Construct.
17017 (free_sese): Destruct.
17018 (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
17019 added.
17020 (set_rename): Pass sese region so that parameters inside the region can
17021 be added to its parameter_rename_map.
17022 (rename_uses): Pass sese region.
17023 (graphite_copy_stmts_from_block): Do not copy parameters that have been
17024 generated in the header of the scop. For each SSA_NAME in the
17025 parameter_rename_map rename its usage.
17026 (invariant_in_sese_p_rec): Return false if tree t is defined outside
17027 sese region.
17028 (scalar_evolution_in_region): If the tree t is invariant just return t.
17029 * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
17030 struct sese to keep track of all the parameters which need renaming.
17031 * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
17032 any data-refs.
17033 * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
17034
17035 2015-09-08 Tom de Vries <tom@codesourcery.com>
17036
17037 * Makefile.in (generated_files): Add params.list.
17038 (params.list, s-params.list): Add rule.
17039 * params.h (enum compiler_param): Include params-list.h. Move define
17040 DEFPARAM, include params.def and undef DEFPARAM ...
17041 * params-list.h: ... here. New file.
17042
17043 2015-09-08 David Malcolm <dmalcolm@redhat.com>
17044
17045 * pretty-print.h (printer_fn): Fix typo in comment.
17046
17047 2015-09-07 Jeff Law <law@redhat.com>
17048
17049 * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
17050
17051 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17052
17053 * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
17054 (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
17055 (arm_neon_fp16_hw): New.
17056
17057 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17058
17059 * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
17060 UNITS_PER_WORD >= 4.
17061
17062 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17063
17064 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
17065 aarch64_simd_vec_unpacks_hi_<mode>): New insn.
17066 (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
17067 (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
17068 (aarch64_float_extend_lo_v2df): Rename to...
17069 (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
17070
17071 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
17072 (float_extend_lo): Add v4sf.
17073
17074 * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
17075 * config/aarch64/iterators.md (VQ_HSF): New iterator.
17076 (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
17077 (Vwide): New mode_attr.
17078
17079 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17080
17081 * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
17082 aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
17083 aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
17084 vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
17085 V4HF and V8HF variants to iterator.
17086
17087 * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
17088
17089 * config/aarch64/iterators.md (VDQF_F16): New.
17090 (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
17091
17092 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17093
17094 * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
17095 vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
17096 vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
17097 vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
17098 vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
17099 vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
17100 vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
17101 vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
17102 vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
17103 vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
17104 vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
17105 vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
17106 vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
17107 vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
17108 vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
17109 vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
17110 vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
17111 vld1q_dup_f16): New.
17112
17113 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17114
17115 * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
17116 Reparameterize to...
17117 (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
17118 (aarch64_float_truncate_hi_v4sf): Reparameterize to...
17119 (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
17120
17121 * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
17122 v8hf variant.
17123 (float_truncate_lo_): Use BUILTIN_VDF iterator.
17124
17125 * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
17126
17127 * config/aarch64/iterators.md (VDF, Vdtype): New.
17128 (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
17129
17130 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17131
17132 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
17133 * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
17134 (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
17135 Add __builtin_aarch64_simd_hf.
17136 * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
17137 float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
17138 vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
17139 vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
17140 vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
17141 vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
17142 vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
17143 vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
17144 vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
17145
17146 * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
17147 V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
17148 (VDC, Vdbl): Add V4HF.
17149
17150 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17151
17152 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
17153 V4HFmode and V8HFmode.
17154 (aarch64_split_simd_move): Add case for V8HFmode.
17155 * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
17156 (aarch64_simd_builtin_std_type): Handle HFmode.
17157 (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
17158
17159 * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
17160 aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
17161 (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
17162
17163 * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
17164 Float16x8_t.
17165
17166 * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
17167 * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
17168 New typedefs.
17169 (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
17170 vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
17171 vst1q_lane_f16): New.
17172 * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
17173 (VALLDI_F16, VALL_F16): New.
17174 (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
17175 Add cases for V4HF and V8HF.
17176 (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
17177
17178 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17179
17180 * config/arm/arm-builtins.c (VAR11, VAR12): New.
17181 * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
17182 vld4_dup): Add v4hf variant.
17183 (vget_high, vget_low): Add v8hf variant.
17184 (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
17185 vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
17186 v4hf and v8hf variants.
17187
17188 * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
17189 (VDX): Add V4HF.
17190 (V_DOUBLE): Add case for V4HF.
17191 (VQX): Add V8HF.
17192 (V_HALF): Add case for V8HF.
17193 (VDQX): Add V4HF, V8HF.
17194 (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
17195 V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
17196
17197 * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
17198 neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
17199 vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
17200 neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
17201 neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
17202 neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
17203 vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
17204 neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
17205 neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
17206
17207 (neon_vcreate, neon_vreinterpretv8qi<mode>,
17208 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
17209 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
17210 Change VDX to VD_RE.
17211
17212 (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
17213 neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
17214 Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
17215
17216 * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
17217 float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
17218 vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
17219 vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
17220 vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
17221 vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
17222 vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
17223 vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
17224 vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
17225
17226 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17227
17228 * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
17229 vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
17230 vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
17231 vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
17232 vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
17233 vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
17234 vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
17235 vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
17236 vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
17237 vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
17238 New.
17239
17240 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17241
17242 * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
17243
17244 * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
17245
17246 * config/arm/arm-builtins.c (v8hf_UP): New.
17247 (arm_init_simd_builtin_types): Initialise Float16x8_t.
17248
17249 * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
17250
17251 * config/arm/arm_neon.h (float16x8_t): New typedef.
17252
17253 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
17254
17255 * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
17256 vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
17257 vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
17258 vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
17259 vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
17260 vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
17261 vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
17262 vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
17263 vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
17264 vreinterpret_u16_f16, vreinterpret_u32_f16): New.
17265
17266 2015-09-07 Ilya Verbin <ilya.verbin@intel.com>
17267
17268 * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
17269 non-alphanumeric characters in the symbol name.
17270
17271 2015-09-07 Marek Polacek <polacek@redhat.com>
17272
17273 PR inline-asm/67448
17274 * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
17275 a memory input.
17276
17277 2015-09-07 Marek Polacek <polacek@redhat.com>
17278
17279 * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
17280
17281 2015-09-04 Paolo Bonzini <bonzini@gnu.org>
17282
17283 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
17284 not warn.
17285
17286 2015-09-04 Jakub Jelinek <jakub@redhat.com>
17287
17288 PR middle-end/67452
17289 * tree-ssa-live.c: Include cfgloop.h.
17290 (remove_unused_locals): Clear loop->simduid if simduid is about
17291 to be removed from cfun->local_decls.
17292
17293 2015-09-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
17294
17295 PR target/65210
17296 * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
17297 attribute as well.
17298
17299 2015-09-04 Tom de Vries <tom@codesourcery.com>
17300
17301 * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
17302
17303 2015-09-04 Jeff Law <law@redhat.com>
17304
17305 * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
17306 unnecessary constructor. It's now trivial and implemented inside...
17307 * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
17308 constructor. Add comments to various methods. Remove unused
17309 private fields.
17310 * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
17311 * tree-vrp.c (identify_jump_threads): Likewise.
17312 * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
17313 indentation issues.
17314 (thread_across_edge): Similarly.
17315 (record_temporary_equivalences_from_stmts_at_dest): Remove unused
17316 arguments in constructor call.
17317
17318 2015-09-04 Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de>
17319
17320 * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
17321 temp path contains a '-'.
17322
17323 2015-09-04 Andrey Turetskiy <andrey.turetskiy@intel.com>
17324 Petr Murzin <petr.murzin@intel.com>
17325 Kirill Yukhin <kirill.yukhin@intel.com>
17326
17327 * config/i386/i386-builtin-types.def
17328 (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
17329 (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
17330 (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
17331 (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
17332 * config/i386/i386.c
17333 (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
17334 IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
17335 IX86_BUILTIN_SCATTERALTDIV16SI.
17336 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
17337 __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
17338 __builtin_ia32_scatteraltdiv8si.
17339 (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
17340 IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
17341 IX86_BUILTIN_SCATTERALTDIV16SI.
17342 (ix86_vectorize_builtin_scatter): New.
17343 (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
17344 ix86_vectorize_builtin_scatter.
17345
17346 2015-09-04 Andrey Turetskiy <andrey.turetskiy@intel.com>
17347 Petr Murzin <petr.murzin@intel.com>
17348 Kirill Yukhin <kirill.yukhin@intel.com>
17349
17350 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
17351 * doc/tm.texi: Regenerate.
17352 * target.def: Add scatter builtin.
17353 * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
17354 for loads/stores in case of gather/scatter accordingly.
17355 (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
17356 STMT_VINFO_GATHER_P(S).
17357 (vect_check_gather): Rename to ...
17358 (vect_check_gather_scatter): this.
17359 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
17360 STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
17361 (vect_check_gather_scatter): Use it instead of vect_check_gather.
17362 (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
17363 variable and new checkings for it accordingly.
17364 * tree-vect-stmts.c
17365 (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
17366 STMT_VINFO_GATHER_P(S).
17367 (vect_check_gather_scatter): Use it instead of vect_check_gather.
17368 (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
17369
17370 2015-09-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
17371
17372 * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
17373 define_insn.
17374 (mulv16qi3): New define_expand.
17375
17376 2015-09-03 Martin Sebor <msebor@redhat.com>
17377
17378 PR c/66516
17379 * doc/extend.texi (Other Builtins): Document when the address
17380 of a built-in function can be taken.
17381
17382 2015-09-03 Richard Biener <rguenther@suse.de>
17383
17384 * dwarf2out.c (flush_limbo_die_list): Split out from ...
17385 (dwarf2out_early_finish): ... here.
17386 (dwarf2out_finish): Do not call dwarf2out_early_finish but
17387 flush_limbo_die_list. Assert we have no deferred asm names.
17388
17389 2015-09-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17390
17391 * optabs.c (expand_binop): Don't create a broadcast vector with a
17392 source element wider than the inner mode.
17393
17394 2015-09-03 Richard Biener <rguenther@suse.de>
17395
17396 * varasm.c (output_constant): Use fold_convert instead of
17397 wide_int_to_tree.
17398
17399 2015-09-03 Tom de Vries <tom@codesourcery.com>
17400
17401 PR tree-optimization/65637
17402 * omp-low.c (expand_omp_for_static_chunk): Handle case that
17403 fin_bb has 2 predecessors.
17404
17405 2015-09-03 Tom de Vries <tom@codesourcery.com>
17406
17407 PR tree-optimization/65637
17408 * omp-low.c (find_phi_with_arg_on_edge): New function.
17409 (expand_omp_for_static_chunk): Fix inner loop phi.
17410
17411 2015-09-03 Tom de Vries <tom@codesourcery.com>
17412
17413 PR tree-optimization/65637
17414 * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
17415 that head is NULL.
17416
17417 2015-09-03 Tom de Vries <tom@codesourcery.com>
17418
17419 * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
17420
17421 2015-09-03 Tom de Vries <tom@codesourcery.com>
17422
17423 * doc/invoke.texi (parloops-chunk-size): Add item.
17424 * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
17425 * tree-parloops.c: Include params.h.
17426 (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
17427 param parloops-chunk-size is used.
17428
17429 2015-09-03 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17430
17431 PR middle-end/67351
17432 * fold-const.c (fold_binary_loc) : Move
17433 Transform (x >> c) << c into x & (-1<<c) or
17434 transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
17435 types using simplify and match.
17436 * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
17437 (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
17438
17439 2015-09-03 Richard Biener <rguenther@suse.de>
17440
17441 PR ipa/66705
17442 * tree-ssa-structalias.c (ctor_for_analysis): New function.
17443 (create_variable_info_for_1): Use ctor_for_analysis instead
17444 of get_constructor.
17445 (create_variable_info_for): Likewise.
17446
17447 2015-09-02 Charles Baylis <charles.baylis@linaro.org>
17448
17449 PR ipa/67280
17450 * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
17451 in new callgraph edge.
17452
17453 2015-09-02 Christophe Lyon <christophe.lyon@linaro.org>
17454
17455 PR target/59810
17456 PR target/63652
17457 PR target/63653
17458 * config/aarch64/aarch64-simd.md
17459 (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
17460 gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
17461 (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
17462 gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
17463
17464 2015-09-02 Alan Modra <amodra@gmail.com>
17465
17466 * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
17467 * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
17468 (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
17469
17470 2015-09-02 Alan Modra <amodra@gmail.com>
17471
17472 PR target/67417
17473 * config/rs6000/predicates.md (current_file_function_operand): Don't
17474 return true for weak symbols.
17475 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
17476
17477 2015-09-01 Matthew Fortune <matthew.fortune@imgtec.com>
17478 Andrew Bennett <andrew.bennett@imgtec.com>
17479
17480 * config/mips/mips-opts.h (mips_cb_setting): New enum.
17481 * config/mips/mips-protos.h: Add definitions for
17482 mips_output_jump and mips_output_equal_conditional_branch
17483 * config/mips/mips.c (MIPS_JR): Change to support the
17484 JIC instruction.
17485 (mips_emit_compare): Add support for the MIPS R6 conditional
17486 compact branches.
17487 (mips_process_sync_loop): Likewise.
17488 (mips_output_order_conditional_branch): Likewise.
17489 (mips16_build_call_stub): Change MIPS_CALL to
17490 mips_output_jump.
17491 (mips_print_operand_punctuation): Update 's' case to only
17492 apply to micromips r2.
17493 (mips_adjust_insn_length): Add support for forbidden slot
17494 hazards.
17495 (mips_avoid_hazard): Likewise.
17496 (mips_reorg_process_insns): Likewise.
17497 (mips_output_jump): New function.
17498 (mips_output_equal_conditional_branch): Likewise.
17499 (mips_output_conditional_branch): Use jrc/bc if compact
17500 branch support is enabled. Ensure the forbidden slots
17501 between the two branch instructions is filled with a nop.
17502 (mips_option_override): Add support to process the compact
17503 branch option and set the correct defaults. Prevent
17504 non-explict relocs being using for MIPS R6.
17505 (mips_trampoline_init): Add compact branch support.
17506 (mips_mult_zero_zero_cost): Allow zero initialisation of
17507 accumulators with TARGET_DSP.
17508 * config/mips/mips.h (TARGET_CB_NEVER): New define.
17509 (TARGET_CB_MAYBE): New define.
17510 (TARGET_CB_ALWAYS): New define.
17511 (ISA_HAS_DELAY_SLOTS): New define.
17512 (ISA_HAS_COMPACT_BRANCHES): New define.
17513 (ISA_HAS_JRC): New define.
17514 (MIPS_BRANCH_C): New define.
17515 (MIPS_CALL): Removed.
17516 (MICROMIPS_J): Removed.
17517 * config/mips/mips.md (compact_form): New attr.
17518 (hazard): Add support for forbidden slots.
17519 (define_delay): Add support for compact branches.
17520 (*branch_order<mode>): Likewise.
17521 (*branch_order<mode>_inverted): Likewise.
17522 (*branch_equality<mode>): Likewise.
17523 (*branch_equality<mode>_inverted): Likewise.
17524 (*jump_absolute): Likewise.
17525 (*jump_pic): Likewise.
17526 (indirect_jump): Use mips_output_jump to produce assembly output.
17527 (tablejump_<mode>"): Likewise.
17528 (*<optab>"): Likewise.
17529 (<optab>_internal): Likewise.
17530 (sibcall_internal): Likewise.
17531 (sibcall_value_internal): Likewise.
17532 (sibcall_value_multiple_internal): Likewise.
17533 (call_internal): Likewise.
17534 (call_split): Likewise.
17535 (call_internal_direct): Likewise.
17536 (call_direct_split): Likewise.
17537 (call_value_internal): Likewise.
17538 (call_value_split): Likewise.
17539 (call_value_internal_direct): Likewise.
17540 (call_value_direct_split): Likewise.
17541 (call_value_multiple_internal): Likewise.
17542 (call_value_multiple_split): Likewise.
17543 (mips_get_fcsr_mips16_<mode>): Likewise.
17544 (mips_set_fcsr_mips16_<mode>): Likewise.
17545 (tls_get_tp_mips16_<mode>): Likewise.
17546 * config/mips/mips.opt: Add -mcompact-branches option.
17547 * config/mips/predicates.md (order_operator): Ensure the
17548 conditional compact branches are only used if the ISA them.
17549 * doc/invoke.texi: Document -mcompact-branches option.
17550
17551 2015-09-01 Vladimir Makarov <vmakarov@redhat.com>
17552
17553 PR target/61578
17554 * lra-lives.c (process_bb_lives): Process move pseudos with the
17555 same value for copies and preferences
17556 * lra-constraints.c (match_reload): Create match reload pseudo
17557 with the same value from single dying input pseudo.
17558
17559 2015-09-01 Ilya Enkovich <enkovich.gnu@gmail.com>
17560
17561 PR target/67405
17562 * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
17563
17564 2015-09-01 Aldy Hernandez <aldyh@redhat.com>
17565
17566 * trans-mem.c: Add contributed-by.
17567 * trans-mem.h: Same.
17568
17569 2015-09-01 Richard Biener <rguenther@suse.de>
17570
17571 * expr.c (expand_expr_real_1): For expanding TERed defs
17572 set the current location to that of the def if not UNKNOWN.
17573
17574 2015-09-01 David Sherwood <david.sherwood@arm.com>
17575
17576 * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
17577
17578 2015-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17579
17580 * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
17581 then_cost, else_cost fields. Change branch_cost field to unsigned int.
17582 (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
17583 Include rtl-iter.h.
17584 (noce_simple_bbs): New function.
17585 (noce_try_move): Bail if basic blocks are not simple.
17586 (noce_try_store_flag): Likewise.
17587 (noce_try_store_flag_constants): Likewise.
17588 (noce_try_addcc): Likewise.
17589 (noce_try_store_flag_mask): Likewise.
17590 (noce_try_cmove): Likewise.
17591 (noce_try_minmax): Likewise.
17592 (noce_try_abs): Likewise.
17593 (noce_try_sign_mask): Likewise.
17594 (noce_try_bitop): Likewise.
17595 (bbs_ok_for_cmove_arith): New function.
17596 (noce_emit_all_but_last): Likewise.
17597 (noce_emit_insn): Likewise.
17598 (noce_emit_bb): Likewise.
17599 (noce_try_cmove_arith): Handle non-simple basic blocks.
17600 (insn_valid_noce_process_p): New function.
17601 (contains_mem_rtx_p): Likewise.
17602 (bb_valid_for_noce_process_p): Likewise.
17603 (noce_process_if_block): Allow non-simple basic blocks
17604 where appropriate.
17605
17606 2015-08-31 Alan Lawrence <alan.lawrence@arm.com>
17607
17608 * tree-ssa-dom.c (record_equivalences_from_phis,
17609 record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
17610 (lookup_avail_expr): Likewise, and remove comment and unused temp.
17611
17612 2015-09-01 Nick Clifton <nickc@redhat.com>
17613
17614 * config/msp430/msp430.opt (mcpu): Fix typo.
17615
17616 2015-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17617
17618 * config/aarch64/aarch64.c (aarch64_set_current_function):
17619 Re-layout any vector parameters have non-simd layout.
17620 * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
17621 Delete.
17622 (aarch64_simd_expand_args): Delete call to the above.
17623
17624 2015-08-31 Mike Frysinger <vapier@gentoo.org>
17625
17626 * doc/invoke.texi (asan-stack): Add space before option.
17627
17628 2015-08-31 Marc Glisse <marc.glisse@inria.fr>
17629
17630 * tree.h (zerop): New function.
17631 * tree.c (zerop): Likewise.
17632 (element_precision): Handle expressions.
17633 * match.pd (define_predicates): Add zerop.
17634 (x <= +Inf): Fix comment.
17635 (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
17636 * fold-const.c (fold_binary_loc): ... here. Remove.
17637
17638 2015-08-31 Richard Biener <rguenther@suse.de>
17639
17640 PR middle-end/67381
17641 * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
17642
17643 2015-08-31 Marc Glisse <marc.glisse@inria.fr>
17644
17645 * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
17646 (CEXPI): New operator list.
17647 (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
17648 imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
17649 Converted from ...
17650 * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
17651
17652 2015-08-31 Tom de Vries <tom@codesourcery.com>
17653
17654 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
17655 (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
17656 parameter.
17657 (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
17658 (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
17659 (rewrite_into_loop_closed_ssa): ... here.
17660 (replace_uses_in_dominated_bbs): Remove function.
17661 (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
17662 rewrite_into_loop_closed_ssa_1.
17663
17664 2015-08-31 Michael Matz <matz@suse.de>
17665
17666 * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
17667 enter entry and exit blocks for reverse post order.
17668
17669 2015-08-31 Richard Biener <rguenther@suse.de>
17670
17671 * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
17672 (lto_location_cache::current_sysp): Likewise.
17673 (output_block::current_sysp): Likewise.
17674 * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
17675 (lto_location_cache::apply_location_cache): Properly record
17676 system header locations.
17677 (lto_location_cache::input_location): Input whether a file
17678 is a system header.
17679 * lto-streamer-out.c (lto_output_location): Stream whether a file
17680 is a system header.
17681
17682 2015-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17683
17684 PR bootstrap/67363
17685 * gcc.c (env_manager::xput): Replace strndup by xstrndup.
17686
17687 2015-08-31 Tom de Vries <tom@codesourcery.com>
17688
17689 * tree-ssa-loop-manip.c (find_uses_to_rename_use)
17690 (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
17691 Improve function header comments.
17692
17693 2015-08-30 Michael Collison <michael.collison@linaro.org>
17694
17695 PR other/67320
17696 * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
17697 standard names
17698
17699 2015-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17700
17701 * config/rs6000/rs6000.c (swap_web_entry): Enlarge
17702 special_handling bitfield.
17703 (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
17704 (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
17705 that represents a general xxpermdi.
17706 (insn_is_swappable_p): Add handling for vec_concat of two
17707 doublewords, which maps to a specific xxpermdi.
17708 (adjust_xxpermdi): New function.
17709 (adjust_concat): Likewise.
17710 (handle_special_swappables): Call adjust_xxpermdi and
17711 adjust_concat.
17712 (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
17713
17714 2015-08-30 Rich Felker <dalias@libc.org>
17715
17716 * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
17717 case instead of sh[123456ble]-*-*.
17718
17719 2015-08-29 Anatoly Sokolov <aesok@post.ru>
17720
17721 * ira.c (print_unform_and_important_classes,
17722 print_translated_classes): Remove reg_class_names static array.
17723 (print_unform_and_important_classes): Rename to ...
17724 (print_uniform_and_important_classes): ... this.
17725 (ira_debug_allocno_classes): Update accordingly.
17726
17727 2015-08-29 Tom de Vries <tom@codesourcery.com>
17728
17729 PR tree-optimization/46193
17730 * omp-low.c (omp_reduction_init): Handle pointer type for min or max
17731 clause.
17732
17733 2015-08-28 Jeff Law <law@redhat.com>
17734
17735 PR lto/66752
17736 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
17737 unable to find X NE 0 in the tables, return X as the simplified
17738 condition.
17739 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
17740 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
17741 to VISISTED_BBS.
17742 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
17743 after removing the control flow statement and unnecessary edges.
17744
17745 2015-08-28 Alan Lawrence <alan.lawrence@arm.com>
17746
17747 Revert:
17748 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
17749
17750 PR tree-optimization/67283
17751 * tree-sra.c (type_consists_of_records_p): Rename to...
17752 (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
17753
17754 (completely_scalarize_record): Rename to...
17755 (completely_scalarize): ...this, add ARRAY_TYPE case, move some
17756 code to:
17757 (scalarize_elem): New.
17758
17759 2015-08-28 Jiong Wang <jiong.wang@arm.com>
17760
17761 * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
17762 SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
17763 (aarch64_symbol_type): Likewise.
17764 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
17765 Likewise.
17766 (aarch64_expand_mov_immediate): Likewise.
17767 (aarch64_print_operand): Likewise.
17768 (aarch64_classify_tls_symbol): Likewise.
17769
17770 2015-08-28 Richard Biener <rguenther@suse.de>
17771
17772 * cgraphunit.c (symbol_table::compile): Move early debug generation
17773 and finish...
17774 (symbol_table::finalize_compilation_unit): ... back here and
17775 add a !seen_error () guard.
17776
17777 2015-08-27 Sebastian Pop <s.pop@samsung.com>
17778
17779 * toplev.c (process_options): Do not use flag_loop_block,
17780 flag_loop_interchange, and flag_loop_strip_mine. Add check for
17781 flag_loop_optimize_isl.
17782
17783 2015-08-27 Sebastian Pop <s.pop@samsung.com>
17784
17785 * Makefile.in (OBJS): Remove graphite-blocking.o and
17786 graphite-interchange.o.
17787 * common.opt (floop-strip-mine, floop-interchange, floop-block):
17788 Alias of floop-nest-optimize.
17789 * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
17790 Document as alias of -floop-nest-optimize.
17791 * graphite-blocking.c: Remove.
17792 * graphite-interchange.c: Remove.
17793 * graphite-optimize-isl.c: Include dumpfile.h.
17794 (getScheduleForBand): Add dump for tiled loops. Use
17795 PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
17796 * graphite-poly.c (scop_max_loop_depth): Remove.
17797 (print_scattering_function_1): Remove.
17798 (print_scattering_function): Remove.
17799 (print_scattering_functions): Remove.
17800 (debug_scattering_function): Remove.
17801 (debug_scattering_functions): Remove.
17802 (apply_poly_transforms): Remove use of flag_loop_block,
17803 flag_loop_strip_mine, and flag_loop_interchange.
17804 (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
17805 PBB_ORIGINAL.
17806 (print_pdr_access_layout): Remove.
17807 (print_pdr): Print ISL representation.
17808 (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
17809 SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
17810 (free_scop): Same.
17811 (openscop_print_pbb_domain): Remove.
17812 (print_pbb): Remove call to print_scattering_function.
17813 (openscop_print_scop_context): Remove.
17814 (print_scop_context): Do not print matrices anymore.
17815 (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
17816 SCOP_TRANSFORMED_SCHEDULE.
17817 (print_isl_set): Add printing of a new line.
17818 (print_isl_map): Same.
17819 (print_isl_aff): Same.
17820 (print_isl_constraint): Same.
17821 (loop_to_lst): Remove.
17822 (scop_to_lst): Remove.
17823 (lst_indent_to): Remove.
17824 (print_lst): Remove.
17825 (debug_lst): Remove.
17826 (dot_lst_1): Remove.
17827 (dot_lst): Remove.
17828 (reverse_loop_at_level): Remove.
17829 (reverse_loop_for_pbbs): Remove.
17830 * graphite-poly.h (pdr_dim_iter_domain): Remove.
17831 (pdr_nb_params): Remove.
17832 (pdr_alias_set_dim): Remove.
17833 (pdr_subscript_dim): Remove.
17834 (pdr_iterator_dim): Remove.
17835 (pdr_parameter_dim): Remove.
17836 (same_pdr_p): Remove.
17837 (struct poly_scattering): Remove.
17838 (struct poly_bb): Remove _original, _transformed, _saved.
17839 (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
17840 (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
17841 (PBB_NB_LOCAL_VARIABLES): Remove.
17842 (PBB_NB_SCATTERING_TRANSFORM): Remove.
17843 (schedule_to_scattering): Remove.
17844 (number_of_write_pdrs): Remove.
17845 (pbb_dim_iter_domain): Remove.
17846 (pbb_nb_params): Remove.
17847 (pbb_nb_scattering_orig): Remove.
17848 (pbb_nb_scattering_transform): Remove.
17849 (pbb_nb_dynamic_scattering_transform): Remove.
17850 (pbb_nb_local_vars): Remove.
17851 (pbb_iterator_dim): Remove.
17852 (pbb_parameter_dim): Remove.
17853 (psco_scattering_dim): Remove.
17854 (psct_scattering_dim): Remove.
17855 (psct_local_var_dim): Remove.
17856 (psco_iterator_dim): Remove.
17857 (psct_iterator_dim): Remove.
17858 (psco_parameter_dim): Remove.
17859 (psct_parameter_dim): Remove.
17860 (psct_dynamic_dim): Remove.
17861 (psct_static_dim): Remove.
17862 (psct_add_local_variable): Remove.
17863 (new_lst_loop): Remove.
17864 (new_lst_stmt): Remove.
17865 (free_lst): Remove.
17866 (copy_lst): Remove.
17867 (lst_add_loop_under_loop): Remove.
17868 (lst_depth): Remove.
17869 (lst_dewey_number): Remove.
17870 (lst_dewey_number_at_depth): Remove.
17871 (lst_pred): Remove.
17872 (lst_succ): Remove.
17873 (lst_find_pbb): Remove.
17874 (find_lst_loop): Remove.
17875 (lst_find_first_pbb): Remove.
17876 (lst_empty_p): Remove.
17877 (lst_find_last_pbb): Remove.
17878 (lst_contains_p): Remove.
17879 (lst_contains_pbb): Remove.
17880 (lst_create_nest): Remove.
17881 (lst_remove_from_sequence): Remove.
17882 (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
17883 (lst_niter_for_loop): Remove.
17884 (pbb_update_scattering): Remove.
17885 (lst_update_scattering_under): Remove.
17886 (lst_update_scattering): Remove.
17887 (lst_insert_in_sequence): Remove.
17888 (lst_replace): Remove.
17889 (lst_substitute_3): Remove.
17890 (lst_distribute_lst): Remove.
17891 (lst_remove_all_before_including_pbb): Remove.
17892 (lst_remove_all_before_excluding_pbb): Remove.
17893 (struct scop): Remove original_schedule, transformed_schedule, and
17894 saved_schedule.
17895 (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
17896 (SCOP_SAVED_SCHEDULE): Remove.
17897 (poly_scattering_new): Remove.
17898 (poly_scattering_free): Remove.
17899 (poly_scattering_copy): Remove.
17900 (store_scattering_pbb): Remove.
17901 (store_lst_schedule): Remove.
17902 (restore_lst_schedule): Remove.
17903 (store_scattering): Remove.
17904 (restore_scattering_pbb): Remove.
17905 (restore_scattering): Remove.
17906 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
17907 Remove scattering_dimensions. Do not use pbb_dim_iter_domain:
17908 compute the scattering polyhedron dimension from the dimension of
17909 pbb->domain.
17910 (build_scop_scattering): Update call to
17911 build_pbb_scattering_polyhedrons.
17912 (build_poly_scop): Remove call to scop_to_lst.
17913 * graphite.c (graphite_transform_loops): Add call to print_scop.
17914 (gate_graphite_transforms): Remove use of flag_loop_block,
17915 flag_loop_interchange, and flag_loop_strip_mine.
17916
17917 2015-08-27 Sebastian Pop <s.pop@samsung.com>
17918
17919 * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
17920 * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
17921 -floop-nest-optimize.
17922 * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
17923 (generate_luj_sepclass): Remove.
17924 (generate_luj_options): Remove.
17925 (set_options): Remove opt_luj.
17926 (scop_to_isl_ast): Remove opt_luj.
17927 * graphite-optimize-isl.c (getScheduleForBand): Remove check for
17928 flag_loop_unroll_jam.
17929 (getPrevectorMap_full): Remove.
17930 (getScheduleForBandList): Remove map_sepcl.
17931 (getScheduleMap): Same.
17932 (apply_schedule_map_to_scop): Remove sepcl.
17933 (optimize_isl): Same.
17934 * graphite-poly.c (apply_poly_transforms): Remove check for
17935 flag_loop_unroll_jam.
17936 (new_poly_bb): Remove map_sepclass.
17937 * graphite-poly.h (struct poly_bb): Same.
17938 * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
17939 * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
17940 (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
17941 * toplev.c (process_options): Remove flag_loop_unroll_jam.
17942
17943 2015-08-27 Uros Bizjak <ubizjak@gmail.com>
17944
17945 PR target/67317
17946 * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
17947 (addqi3_cc): Ditto.
17948 (UNSPEC_ADD_CARRY): Remove.
17949 (addqi3_cconly_overflow): New expander.
17950 (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
17951 Adjust for changed add<mode>3_carry.
17952 (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
17953 (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
17954 (<plusminus_insn><mode>3_carry): Remove expander.
17955 (*<plusminus_insn><mode>3_carry): Split insn pattern to
17956 add<mode>3_carry and sub<mode>3_carry.
17957 (plusminus_carry_mnemonic): Remove code attribute.
17958 (add<mode>3_carry): Canonicalize insn pattern.
17959 (*addsi3_carry_zext): Ditto.
17960 (sub<mode>3_carry): Ditto.
17961 (*subsi3_carry_zext): Ditto.
17962 (adcx<mode>3): Remove insn pattern.
17963 (addcarry<mode>): New insn pattern.
17964 (subborrow<mode>): Ditto.
17965 * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
17966 gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
17967 (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
17968 case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
17969 case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
17970 CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
17971 Rewrite expander to not clobber carry flag chains.
17972
17973 2015-08-27 Pat Haugen <pthaugen@us.ibm.com>
17974
17975 * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
17976 instead of a rotate.
17977
17978 2015-08-27 Marek Polacek <polacek@redhat.com>
17979
17980 PR middle-end/67005
17981 * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
17982 an entry into an irreducible region.
17983
17984 2015-08-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
17985
17986 * configure: Regenerate.
17987
17988 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
17989
17990 PR tree-optimization/67283
17991 * tree-sra.c (type_consists_of_records_p): Rename to...
17992 (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
17993
17994 (completely_scalarize_record): Rename to...
17995 (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
17996 (scalarize_elem): New.
17997
17998 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
17999
18000 * tree-sra.c (completely_scalarize_var): Rename to...
18001 (create_total_scalarization_access): ... Here. Drop call to
18002 completely_scalarize_record.
18003
18004 (analyze_all_variable_accesses): Replace completely_scalarize_var
18005 with create_total_scalarization_access and completely_scalarize_record.
18006
18007 2015-08-27 Alan Modra <amodra@gmail.com>
18008
18009 PR target/67356
18010 * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
18011 for operand 1.
18012
18013 2015-08-27 Richard Biener <rguenther@suse.de>
18014
18015 * passes.c (rest_of_decl_compilation): Guard early_global_decl
18016 call with !seen_error ().
18017 * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
18018 early debug generation and finish...
18019 (symbol_table::compile): ... here to put it after a !seen_error ()
18020 guard.
18021
18022 2015-08-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18023
18024 * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
18025 Solaris 12+.
18026
18027 2015-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18028 Andre Vieira <andre.simoesdiasvieira@arm.com>
18029
18030 * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
18031 (*cb<optab><mode>1): Likewise.
18032 (*tb<optab><mode>1): Likewise.
18033 (*cb<optab><mode>1): Likewise.
18034 * config/aarch64/iterators.md (inv_cb): New code attribute.
18035 (inv_tb): Likewise.
18036 * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
18037 * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
18038
18039 2015-08-27 Richard Biener <rguenther@suse.de>
18040
18041 * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
18042
18043 2015-08-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
18044
18045 * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
18046 trap to fix ICE.
18047
18048 2015-08-26 Michael Meissner <meissner@linux.vnet.ibm.com>
18049
18050 * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
18051 Add declaration.
18052
18053 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
18054 comment.
18055 (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
18056 floating point in VSX registers.
18057 (rs6000_output_move_128bit): Always print out the set insn if we
18058 can't generate an appropriate 128-bit move.
18059 (rs6000_generate_compare): Add support for IEEE 128-bit floating
18060 point in VSX registers comparisons.
18061 (rs6000_expand_float128_convert): Likewise.
18062
18063 * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
18064 predicate for only GPR hard registers.
18065
18066 * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
18067 modes to iterators. Add new iterators for moving 128-bit values in
18068 scalar FPR registers and VSX registers.
18069 (FMOVE128): Likewise.
18070 (FMOVE128_FPR): Likewise.
18071 (FMOVE128_GPR): Likewise.
18072 (FMOVE128_VSX): Likewise.
18073 (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
18074 in VSX registers.
18075 (IFKF): Likewise.
18076 (IBM128): Likewise.
18077 (TFIFKF): Likewise.
18078 (RELOAD): Add IEEE 128-bit floating point modes.
18079 (signbittf2): Convert TF insns to add support for new IEEE 128-bit
18080 floating point in VSX registers modes.
18081 (signbit<mode>2, IBM128 iterator): Likewise.
18082 (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
18083 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
18084 (negtf2): Likewise.
18085 (neg<mode>2, TFIFKF iterator): Likewise.
18086 (negtf2_internal): Likewise.
18087 (abstf2): Likewise.
18088 (abs<mode>2, TFIFKF iterator): Likewise.
18089 (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
18090 VSX insn support for negate, absolute value, and negative absolute
18091 value.
18092 (ieee_128bit_vsx_neg<mode>2): Likewise.
18093 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
18094 (ieee_128bit_vsx_abs<mode>2): Likewise.
18095 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
18096 (ieee_128bit_vsx_nabs<mode>2): Likewise.
18097 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
18098 (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
18099 floating point in VSX registers.
18100 (unpack<mode>_dm): Likewise.
18101 (unpack<mode>_nodm): Likewise.
18102 (pack<mode>): Likewise.
18103 (unpackv1ti): Likewise.
18104 (unpack<mode>, FMOVE128_VSX iterator): Likewise.
18105 (packv1ti): Likewise.
18106 (pack<mode>, FMOVE128_VSX iterator): Likewise.
18107 (extenddftf2): Add support for IEEE 128-bit floating point in VSX
18108 registers.
18109 (extenddftf2_internal): Likewise.
18110 (trunctfdf2): Likewise.
18111 (trunctfdf2_internal2): Likewise.
18112 (fix_trunc_helper): Likewise.
18113 (fix_trunctfdi2"): Likewise.
18114 (floatditf2): Likewise.
18115 (floatuns<mode>tf2): Likewise.
18116 (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
18117 (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
18118 (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
18119 (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
18120 (float<SDI:mode><IFKF:mode>2): Likewise.
18121 (floatuns<SDI:mode><IFKF:mode>2): Likewise.
18122
18123 2015-08-26 Renlin Li <renlin.li@arm.com>
18124
18125 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
18126
18127 2015-08-26 Marcus Shawcroft <marcus.shawcroft@arm.com>
18128 Jiong Wang <jiong.wang@arm.com>
18129
18130 * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
18131 (tlsie_tiny_<mode>): New define_insn.
18132 (tlsie_tiny_sidi): Likewise.
18133 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
18134 SYMBOL_TINY_TLSIE.
18135 (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
18136 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
18137 SYMBOL_TINY_TLSIE.
18138 (aarch64_expand_mov_immediate): Likewise.
18139 (aarch64_print_operand): Likewise.
18140 (arch64_classify_tls_symbol): Likewise.
18141
18142 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
18143
18144 * config/arm/arm-arches.def: Replace single value flags with
18145 an initializer built from ARM_FSET_MAKE_CPU1.
18146 * config/arm/arm-cores.def: Likewise.
18147 * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
18148 derivation from the ARM_CORE macro definition, use the given value
18149 instead.
18150 (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
18151 ARM_ARCH macro definition, use the given value instead.
18152
18153 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
18154
18155 * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
18156 feature set.
18157 (struct builtin_description): Replace field mask with field
18158 features.
18159 (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
18160 (IWMMXT2_BUILTIN): Likewise.
18161 (IWMMXT2_BUILTIN2): Likewise.
18162 (FP_BUILTIN): Likewise.
18163 (CRC32_BUILTIN): Likewise.
18164 (CRYPTO_BUILTIN): Likewise.
18165 (iwmmx_mbuiltin): Likewise.
18166 (iwmmx2_mbuiltin): Likewise.
18167 (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
18168 struct builtin_description.
18169
18170 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
18171
18172 * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
18173 (struct builtin_description): Change type of mask to unsigned
18174 long.
18175 * config/arm/arm-protos.h (insn_flags): Declare as type
18176 arm_feature_set.
18177 (tune_flags): Likewise.
18178 * config/arm/arm.c (feature_count): New.
18179 (insn_flags): Define as type arm_feature_set.
18180 (tune_flags): Likewise.
18181 (struct processors): Define field flags as type arm_feature_set.
18182 (all_cores): Update for change to struct processors.
18183 (all_architectures): Likewise.
18184 (arm_option_check_internal): Use arm_feature_set and ARM_FSET
18185 macros.
18186 (arm_option_override_internal): Likewise.
18187 (arm_option_override): Likewise.
18188
18189 2015-08-26 Marcus Shawcroft <marcus.shawcroft@arm.com>
18190 Jiong Wang <jiong.wang@arm.com>
18191
18192 * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
18193 tls size for tiny, small, large memory model.
18194 (aarch64_load_symref_appropriately): Support new symbol types.
18195 (aarch64_expand_mov_immediate): Likewise.
18196 (aarch64_print_operand): Likewise.
18197 (aarch64_classify_tls_symbol): Likewise.
18198 * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
18199 (aarch64_symbol_type): Likewise.
18200 * config/aarch64/aarch64.md (tlsle): Deleted.
18201 (tlsle12_<mode>): New define_insn.
18202 (tlsle24_<mode>): Likewise.
18203 (tlsle32_<mode>): Likewise.
18204 (tlsle48_<mode>): Likewise.
18205 * doc/sourcebuild.texi (AArch64-specific attributes): Document
18206 "aarch64_tlsle32".
18207
18208 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
18209
18210 * config/arm/arm-protos.h (FL_NONE): New.
18211 (FL_ANY): New.
18212 (arm_feature_set): New.
18213 (ARM_FSET_MAKE): New.
18214 (ARM_FSET_MAKE_CPU1): New.
18215 (ARM_FSET_MAKE_CPU2): New.
18216 (ARM_FSET_CPU1): New.
18217 (ARM_FSET_CPU2): New.
18218 (ARM_FSET_EMPTY): New.
18219 (ARM_FSET_ANY): New.
18220 (ARM_FSET_HAS_CPU1): New.
18221 (ARM_FSET_HAS_CPU2): New.
18222 (ARM_FSET_HAS_CPU): New.
18223 (ARM_FSET_ADD_CPU1): New.
18224 (ARM_FSET_ADD_CPU2): New.
18225 (ARM_FSET_DEL_CPU1): New.
18226 (ARM_FSET_DEL_CPU2): New.
18227 (ARM_FSET_UNION): New.
18228 (ARM_FSET_INTER): New.
18229 (ARM_FSET_XOR): New.
18230 (ARM_FSET_EXCLUDE): New.
18231 (AFM_FSET_IS_EMPTY): New.
18232 (ARM_FSET_CPU_SUBSET): New.
18233
18234 2015-08-26 Jiong Wang <jiong.wang@arm.com>
18235
18236 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
18237 SYMBOL_TLSLE to SYMBOL_TLSLE24.
18238 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
18239 Likewise.
18240 (aarch64_expand_mov_immediate): Likewise.
18241 (aarch64_print_operand): Likewise.
18242 (aarch64_classify_symbol): Likewise.
18243
18244 2015-08-26 Jiong Wang <jiong.wang@arm.com>
18245
18246 * config/aarch64/aarch64.opt (mtls-size): New entry.
18247 * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
18248 (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
18249 * doc/invoke.texi (AArch64 Options): Document -mtls-size.
18250
18251 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
18252
18253 * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
18254 ARM_CORE entry. Fix some white-space.
18255 * config/arm/arm.c: Remove FL_FOR_ARCH derivation from
18256 ARM_CORE definition.
18257
18258 2015-08-26 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
18259
18260 * fold-const.c (fold_binary_loc) : Move Optimize
18261 root(x)*root(y) as root(x*y) to match.pd.
18262 Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
18263 Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
18264 Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
18265 Move Optimize x/expN(y) into x*expN(-y) to match.pd.
18266 * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
18267 (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
18268 (mult (exps:s @0) (exps:s @1)) : New simplifier.
18269 (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
18270 (rdiv @0 (exps:s @1)) : New simplifier.
18271
18272 2015-08-25 Joseph Myers <joseph@codesourcery.com>
18273
18274 * gcc.c (driver::finalize): Only assign to extra_specs if
18275 [EXTRA_SPECS].
18276
18277 2015-08-25 Marek Polacek <polacek@redhat.com>
18278
18279 PR middle-end/67330
18280 * varasm.c (declare_weak): Return after giving an error.
18281
18282 2015-08-25 David Malcolm <dmalcolm@redhat.com>
18283
18284 * gcc-main.c (main): Add params to driver ctor.
18285 * gcc.c (class env_manager): New.
18286 (env): New global.
18287 (env_manager::init): New.
18288 (env_manager::get): New.
18289 (env_manager::xput): New.
18290 (env_manager::restore): New.
18291 Poison getenv and putenv.
18292 (DEFAULT_TARGET_SYSTEM_ROOT): New.
18293 (target_system_root): Update initialization to use
18294 DEFAULT_TARGET_SYSTEM_ROOT.
18295 (struct spec_list): Add field "default_ptr".
18296 (INIT_STATIC_SPEC): Initialize new field "default_ptr".
18297 (init_spec): Likewise.
18298 (set_spec): Clear field "default_ptr".
18299 (read_specs): Free "spec" and "buffer".
18300 (xputenv): Reimplement in terms of env_manager.
18301 (process_command): Replace ::getenv calls with calls to the
18302 env_manager singleton.
18303 (process_brace_body): Free string in three places.
18304 (driver::driver): New.
18305 (driver::~driver): New.
18306 (used_arg): Convert from a function to...
18307 (class used_arg_t): ...this class, and...
18308 (used_arg): ...this new global instance.
18309 (used_arg_t::finalize): New function.
18310 (getenv_spec_function): Add "const" to local "value". Replace
18311 ::getenv call with call to the env_manager singleton.
18312 (path_prefix_reset): New function.
18313 (driver::finalize): New function.
18314 * gcc.h (driver::driver): New.
18315 (driver::~driver): New.
18316 (driver::finalize): New.
18317
18318 2015-08-25 Nathan Sidwell <nathan@acm.org>
18319
18320 * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
18321 target doesn't have one.
18322
18323 2015-08-25 Segher Boessenkool <segher@kernel.crashing.org>
18324
18325 PR target/67346
18326 * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
18327
18328 2015-08-25 Segher Boessenkool <segher@kernel.crashing.org>
18329
18330 PR target/67344
18331 * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
18332 a define_insn, remove second alternative.
18333
18334 2015-08-25 Thomas Schwinge <thomas@codesourcery.com>
18335 Joseph Myers <joseph@codesourcery.com>
18336
18337 * gcc.c (struct switchstr): Expand comment.
18338
18339 2015-08-25 Nathan Sidwell <nathan@acm.org>
18340
18341 * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
18342 (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
18343
18344 2015-08-25 Richard Biener <rguenther@suse.de>
18345
18346 PR middle-end/67306
18347 * genmatch.c (expr::gen_transform): Verify the result of
18348 builtin_decl_implicit.
18349 (dt_simplify::gen_1): Likewise.
18350
18351 2015-08-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
18352
18353 * config/arm/constraints.md: Also list Cs and US ARM-specific
18354 constraints as used.
18355
18356 2015-08-24 Kaz Kojima <kkojima@gcc.gnu.org>
18357
18358 PR target/66609
18359 * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
18360 UNSPEC_PCREL.
18361 (nonpic_symbol_mentioned_p): Likewise.
18362 (sh_delegitimize_address): Likewise.
18363 (sh_function_ok_for_sibcall): Take into account weak symbols.
18364 (sh_expand_sym_label2reg): New.
18365 * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
18366 * config/sh/sh.md (UNSPEC_PCREL): New enum.
18367 (call_pcrel): Use sh_expand_sym_label2reg.
18368 (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
18369 (symPCREL_label2reg) New expand.
18370
18371 2015-08-24 Aditya Kumar <aditya.k7@samsung.com>
18372
18373 * graphite-poly.c: Change type of region from void* to sese.
18374 * graphite-poly.h (struct scop): Changing the type of scop::region
18375 from void* to sese. Change accessor macro accordingly.
18376 * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
18377
18378 2015-08-24 Aditya Kumar <aditya.k7@samsung.com>
18379
18380 * graphite-scop-detection.c (stmt_simple_for_scop_p):
18381 Constrain only on INTEGER_TYPE.
18382
18383 2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com>
18384
18385 PR target/67211
18386 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
18387 -mefficient-unaligned-vsx on ISA 2.7.
18388
18389 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
18390 option to a masked option.
18391
18392 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
18393 logic for -mefficient-unaligned-vsx so that it is set via an arch
18394 ISA option, instead of being set if -mtune=power8 is set. Move
18395 -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
18396 near other default option handling.
18397
18398 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
18399
18400 * genflags.c (gen_macro): Delete.
18401 (gen_proto): Don't create GEN.*CALL.* macros.
18402 * gensupport.h (get_file_location): Declare.
18403 * gensupport.c (rtx_locs): New variable.
18404 (read_md_rtx): Record rtx locations.
18405 (get_file_location): New function.
18406 * target-insns.def (call, call_pop, call_value, call_value_pop)
18407 (sibcall, sibcall_value): New patterns.
18408 * gentarget-def.c (parse_argument): New function.
18409 (def_target_insn): Use it. Handle optional operands. Raise an
18410 error if an .md pattern has the wrong number of operands for the
18411 pattern name. Remove the names of unused operands from the prototype.
18412 * builtins.c (expand_builtin_apply): Use targetm functions
18413 instead of HAVE_call_value and GEN_CALL_VALUE.
18414 * calls.c (emit_call_1): Likewise. Remove support for sibcall_pop
18415 and sibcall_value_pop.
18416 * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
18417 of GEN_CALL.
18418 * config/alpha/alpha.md (untyped_call): Likewise.
18419 * config/iq2000/iq2000.md (untyped_call): Likewise.
18420 * config/m68k/m68k.md (untyped_call): Likewise.
18421 * config/mips/mips.md (untyped_call): Likewise.
18422 * config/pa/pa.md (untyped_call): Likewise.
18423 * config/rs6000/rs6000.md (untyped_call): Likewise.
18424 * config/sparc/sparc.md (untyped_call): Likewise.
18425 * config/tilegx/tilegx.md (untyped_call): Likewise.
18426 * config/tilepro/tilepro.md (untyped_call): Likewise.
18427 * config/visium/visium.md (untyped_call): Likewise.
18428 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
18429 gen_call_value instead of GEN_CALL_VALUE.
18430 * config/arm/arm.md (untyped_call): Likewise.
18431 * config/cr16/cr16.c (cr16_function_arg): Remove reference to
18432 GEN_CALL.
18433
18434 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
18435
18436 * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
18437 (have_cbranchcc4): New variable.
18438 (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
18439 (noce_get_condition): Use it instead of HAVE_cbranchcc4.
18440 (if_convert): Initialize have_cbranchcc4.
18441
18442 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
18443
18444 * builtins.c (expand_cmpstrn): Rename to...
18445 (expand_cmpstrn_or_cmpmem): ...this.
18446 (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
18447 (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
18448 Remove mode argument.
18449 (expand_builtin): Update accordingly.
18450
18451 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
18452
18453 * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
18454 (expand_builtin_strcmp, expand_builtin_strncmp): Use them. Remove
18455 references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
18456 * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
18457 Add predicates for operands 0 and 3.
18458 * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
18459 operand.
18460 * config/sh/sh.md (cmpstrnsi): Change the length predicate from
18461 immediate_operand to nonmemory_operand.
18462
18463 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
18464
18465 * df-scan.c (df_insn_info_init_fields): New function, split out
18466 from...
18467 (df_insn_create_insn_record): ...here.
18468 (df_insn_info_free_fields): New function, split out from...
18469 (df_insn_info_delete): ...here.
18470 (df_insn_rescan): Use the new functions instead of freeing and
18471 reallocating the df_insn_info.
18472
18473 2015-08-24 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
18474
18475 * doc/install.texi (Binaries): Remove links no longer valid.
18476
18477 2015-08-24 Nathan Sidwell <nathan@codesourcery.com>
18478
18479 * config/nvptx/mkoffload.c (process): Replace
18480 GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
18481
18482 2015-08-24 H.J. Lu <hongjiu.lu@intel.com>
18483
18484 PR target/67329
18485 * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
18486
18487 2015-08-24 Renlin Li <renlin.li@arm.com>
18488
18489 * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
18490 * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
18491 * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
18492 * config/arm/constraints.md ("j"): Add check for high code.
18493
18494 2015-08-24 Tom de Vries <tom@codesourcery.com>
18495
18496 PR tree-optimization/65468
18497 * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
18498 chunk_size is one.
18499
18500 2015-08-24 Nathan Sidwell <nathan@acm.org>
18501
18502 * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
18503 change to nvptx_type_from_mode call. Use arg_promotion for both
18504 split and non-split args.
18505
18506 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
18507
18508 * target-insns.def (movstr): New pattern.
18509 * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
18510 (expand_movstr): Use targetm rather than HAVE_movstr/
18511 CODE_FOR_movstr.
18512
18513 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
18514
18515 * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
18516 cast syntax.
18517
18518 2015-08-24 Andrew Pinski <apinski@cavium.com>
18519
18520 * config/aarch64/aarch64-tuning-flags.def: Remove all index to
18521 AARCH64_EXTRA_TUNING_OPTION.
18522 * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
18523 New enum.
18524 (aarch64_extra_tuning_flags): Base the shifted value on the index
18525 instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
18526 * config/aarch64/aarch64.c: Remove the last argument to
18527 AARCH64_EXTRA_TUNING_OPTION.
18528
18529 2015-08-23 Nathan Sidwell <nathan@acm.org>
18530
18531 * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
18532 decls.
18533 (nvptx_declare_function_name): Insert formatting tabs for
18534 consistency.
18535
18536 2015-08-23 Tom de Vries <tom@codesourcery.com>
18537
18538 * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
18539 parm_decl, rather than generating a dummy default def in cfun.
18540 * tree-cfg.c (replace_ssa_name): Assume no default defs. Make sure
18541 ssa_name from cfun and child_fn do not share a stmt as def stmt.
18542 (move_stmt_op): Handle PARM_DECl.
18543 (gather_ssa_name_hash_map_from): New function.
18544 (move_sese_region_to_fn): Add default defs for function params, and add
18545 them to vars_map. Release copied ssa names.
18546 * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
18547
18548 2015-08-23 Tom de Vries <tom@codesourcery.com>
18549
18550 * doc/sourcebuild.texi: Rename vect_no_int_max with
18551 vect_no_int_min_max. Update description.
18552
18553 2015-08-22 Andrew Pinski <apinski@cavium.com>
18554
18555 * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
18556 * config/aarch64/aarch64-protos.h
18557 (aarch64_fusion_pairs_index): New enum.
18558 (aarch64_fusion_pairs): Base the shifted value on the index instead
18559 Rewrite AARCH64_FUSE_ALL to be based on the end index.
18560 of the argument to AARCH64_FUSION_PAIR.
18561 * config/aarch64/aarch64.c: Remove the last argument to
18562 AARCH64_FUSION_PAIR.
18563
18564 2015-08-22 Mikhail Maltsev <maltsevm@gmail.com>
18565
18566 * dominance.c (new_zero_array): Define.
18567 (dom_info): Redefine as class with proper encapsulation.
18568 (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
18569 Add new members.
18570 (dom_info::dom_info, ~dom_info): Define. Use new/delete for memory
18571 allocations/deallocations. Pass function as parameter (instead of
18572 using cfun).
18573 (dom_info::get_idom): Define accessor method.
18574 (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
18575 link_roots, calc_idoms): Redefine as class members. Do not use cfun.
18576 (calculate_dominance_info): Adjust to use dom_info class.
18577 (verify_dominators): Likewise.
18578
18579 2015-08-21 Alexandre Oliva <aoliva@redhat.com>
18580
18581 * print-rtl.c (print_rtx): Check the correct range for
18582 flag_dump_unnumbered_links to behave as documented.
18583
18584 PR rtl-optimization/67227
18585 PR rtl-optimization/64164
18586 * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
18587 (nonoverlapping_memrefs_p): Test offsets and sizes when given
18588 identical gimple_reg exprs.
18589
18590 2015-08-21 Nathan Sidwell <nathan@acm.org>
18591
18592 * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
18593 expansion.
18594 * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
18595 crtl->stack_alignment_needed to determine alignment.
18596 (nvptx_get_drap_rtx): New.
18597 (TARGET_GET_DRAP_RTX): Override.
18598 * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
18599
18600 2015-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
18601
18602 * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
18603
18604 2015-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
18605
18606 * configure.ac: Remove uwin* cases.
18607 * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
18608 i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
18609 i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
18610 i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
18611 * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
18612 i[34567]86-*-uwin*, powerpc-*-beos*.
18613
18614 2015-08-21 Richard Sandiford <richard.sandiford@arm.com>
18615
18616 * gencodes.c (gencodes): Print the comma for the preceding
18617 enum value rather than the current one. Use aliased enum values
18618 rather than #defines for compiled-out patterns.
18619 (main): Update accordingly. Replace LAST_INSN_CODE with
18620 NUM_INSN_CODES.
18621 * lra.c (insn_code_data): Update accordingly.
18622 (finish_insn_code_data_once, get_static_insn_data): Likewise.
18623 * recog.h (target_recog): Likewise.
18624 (preprocess_insn_constraints): Change parameter to unsigned int.
18625 * recog.c (preprocess_insn_constraints): Likewise.
18626 (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
18627 * tree-vect-stmts.c (vectorizable_operation): Simplify.
18628
18629 2015-08-21 Markus Trippelsdorf <markus@trippelsdorf.de>
18630
18631 PR rtl-optimization/61657
18632 * loop-iv.c (iv_number_of_iterations): Declare up and down as
18633 unsigned. Remove superflous uint64_t cast.
18634
18635 2014-08-21 Felix Yang <felix.yang@huawei.com>
18636 Jiji Jiang <jiangjiji@huawei.com>
18637
18638 * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
18639 argument and get builtin function code directly from CALL.
18640 (gimple_stringop_fixed_value): Modified accordingly.
18641 (gimple_stringops_transform, gimple_stringops_values_to_profile):
18642 Modified accordingly and only accept BUILT_IN_NORMAL string operations.
18643
18644 2015-08-21 Dominik Vogt <vogt@linux.vnet.ibm.com>
18645
18646 * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
18647
18648 2015-08-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
18649
18650 * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
18651 to match.pd.
18652 Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
18653 Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
18654 Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
18655 Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
18656 Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
18657 Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
18658 Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
18659 Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
18660 Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
18661 Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
18662
18663 * match.pd (SIN ) : New Operator.
18664 (TAN) : New Operator.
18665 (mult (SQRT@1 @0) @1) : New simplifier.
18666 (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
18667 (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
18668 (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
18669 (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
18670 (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
18671 (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
18672 (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
18673 (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
18674 (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
18675 (rdiv @0 (POW:s @1 @2)) : New simplifier.
18676
18677 2015-08-21 Bin Cheng <bin.cheng@arm.com>
18678
18679 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
18680 loop if EXPR is simplified to const value.
18681
18682 2015-08-21 Yury Gribov <y.gribov@samsung.com>
18683
18684 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
18685 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
18686
18687 2015-08-21 Richard Biener <rguenther@suse.de>
18688
18689 PR middle-end/67285
18690 * gimple-fold.c (replace_stmt_with_simplification): Assert
18691 seq is empty when replacing a call with itself but different
18692 arguments.
18693 * gimple-match-head.c (maybe_push_res_to_seq): When pushing
18694 a call require that it is const.
18695
18696 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18697
18698 * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
18699 * builtins.c (get_object_alignment_2): Adjust.
18700 * varasm.c (align_variable): Likewise.
18701 (get_variable_align): Likewise.
18702 (build_constant_desc): Likewise.
18703 (force_const_mem): Likewise.
18704 * doc/tm.texi.in: Likewise.
18705 * doc/tm.texi: Regenerate.
18706
18707 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18708
18709 * genconfig.c (main): Always define HAVE_cc0.
18710 * recog.c (rest_of_handle_peephole2): Adjust.
18711
18712 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18713
18714 * reorg.c (relax_delay_slots): Don't use #if to check value of
18715 HAVE_cc0.
18716
18717 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18718
18719 * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
18720 * targhooks.c (default_have_conditional_execution): Adjust.
18721
18722 2015-08-20 Richard Sandiford <richard.sandiford@arm.com>
18723
18724 * rtl.h (rtvec_all_equal_p): Declare.
18725 (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
18726 * rtl.c (rtvec_all_equal_p): New function.
18727 * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
18728 * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
18729 (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
18730 * config/arm/arm.c (neon_vdup_constant): Likewise.
18731 * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
18732 * config/tilegx/constraints.md (W, Y): Likewise.
18733 * config/tilepro/constraints.md (W, Y): Likewise.
18734 * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
18735 (classify_immediate): Use unwrap_const_vec_duplicate.
18736 * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
18737 (reg_or_v2s8bit_operand): Likewise.
18738 * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
18739 (reg_or_v4s8bit_operand): Likewise.
18740
18741 2015-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18742
18743 * config/rs6000/altivec.h (vec_pmsum_be): New #define.
18744 (vec_shasigma_be): New #define.
18745 * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
18746 (VPMSUMH): Likewise.
18747 (VPMSUMW): Likewise.
18748 (VPMSUMD): Likewise.
18749 (VPMSUM): New BU_P8V_OVERLOAD_2.
18750 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
18751 entries for VEC_MADD and VEC_VPMSUM.
18752
18753 2015-08-20 Georg-Johann Lay <avr@gjlay.de>
18754
18755 * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
18756 Multiply argument avr_n_flash by 64 to match unit of "KiB".
18757 (avr_pgm_check_var_decl): Same.
18758
18759 2015-08-20 Alan Lawrence <alan.lawrence@arm.com>
18760
18761 * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
18762 initialization of HFmode scalar type (float16_t) to...
18763 (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
18764 code.
18765
18766 (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
18767
18768 * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
18769 having an -mfp16-format.
18770
18771 2015-08-20 Richard Sandiford <richard.sandiford@arm.com>
18772
18773 * config/i386/predicates.md (vector_all_ones_operand): Use
18774 CONSTM1_RTX to simplify definition.
18775
18776 2015-08-20 Richard Biener <rguenther@suse.de>
18777
18778 * toplev.c (compile_file): Remove loop calling late_global_decl
18779 on all symbols.
18780 * varpool.c (varpool_node::assemble_decl): Call late_global_decl
18781 on decls we assembled.
18782
18783 2015-08-20 James Greenhalgh <james.greenhalgh@arm.com>
18784
18785 * common/config/aarch64/aarch64-common.c
18786 (AARCH64_CPU_NAME_LENGTH): Delete.
18787 (aarch64_option_extension): New.
18788 (all_extensions): Likewise.
18789 (processor_name_to_arch): Likewise.
18790 (arch_to_arch_name): Likewise.
18791 (all_cores): New.
18792 (all_architectures): Likewise.
18793 (aarch64_get_extension_string_for_isa_flags): Likewise.
18794 (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
18795 architecture names.
18796 * config/aarch64/aarch64-protos.h
18797 (aarch64_get_extension_string_for_isa_flags): New.
18798 * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
18799 (aarch64_option_print): Get the string to print from
18800 aarch64_get_extension_string_for_isa_flags.
18801 (aarch64_declare_function_name): Likewise.
18802 * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
18803 (MCPU_TO_MARCH_SPEC): This.
18804 (ASM_CPU_SPEC): Use it.
18805 (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
18806 (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
18807 (EXTRA_SPEC_FUNCTIONS): Use it.
18808
18809 2015-08-20 Simon Dardis <simon.dardis@imgtec.com>
18810
18811 * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
18812 expansion when !ISA_HAS_LWL_LWR.
18813 (mips_block_move_straight): Update the size of elements copied to
18814 account for alignment when !ISA_HAS_LWL_LWR.
18815 * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
18816
18817 2015-08-19 Jiong Wang <jiong.wang@arm.com>
18818
18819 * expr.c (expand_expr_real_2): Check gimple statement during
18820 LSHIFT_EXPR expand.
18821
18822 2015-08-19 Magnus Granberg <zorry@gentoo.org>
18823
18824 * common.opt (fstack-protector): Initialize to -1.
18825 (fstack-protector-all): Likewise.
18826 (fstack-protector-strong): Likewise.
18827 (fstack-protector-explicit): Likewise.
18828 * configure.ac: Add --enable-default-ssp.
18829 * defaults.h (DEFAULT_FLAG_SSP): New. Default SSP to strong.
18830 * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
18831 -1.
18832 * doc/install.texi: Document --enable-default-ssp.
18833 * config.in: Regenerated.
18834 * configure: Likewise.
18835
18836 2015-08-19 Alexandre Oliva <aoliva@redhat.com>
18837
18838 PR rtl-optimization/64164
18839 * cfgexpand.c (parm_maybe_byref_p): Renamed to...
18840 (parm_in_stack_slot_p): ... this. Disregard mode, what
18841 matters is whether the parm will live in a pseudo or a stack
18842 slot.
18843 (expand_one_ssa_partition): Deal with params without a default
18844 def. Disregard mode.
18845 * cfgexpand.h: Renamed function declaration.
18846 * tree-ssa-coalesce.c: Adjust.
18847 * function.c (split_complex_args): Allocate stack slot for
18848 unassigned parms before splitting.
18849 (parm_in_unassigned_mem_p): New. Use it instead of
18850 parm_maybe_byref_p throughout this file.
18851 (assign_parm_setup_block): Use it. Accept pseudos in the
18852 expand-assigned rtl.
18853 (assign_parm_setup_reg): Drop BLKmode requirement.
18854 (assign_parm_setup_stack): Allocate and fill in the address of
18855 unassigned MEM parms.
18856
18857 2015-08-19 David Sherwood <david.sherwood@arm.com>
18858
18859 * genmodes.c (emit_mode_unit_size_inline): New function.
18860 (emit_mode_unit_precision_inline): New function.
18861 (emit_insn_modes_h): Emit new #define. Emit new functions.
18862 (emit_mode_unit_size): New function.
18863 (emit_mode_unit_precision): New function.
18864 (emit_mode_adjustments): Add mode_unit_size adjustments.
18865 (emit_insn_modes_c): Emit new arrays.
18866 * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
18867 use new inline methods.
18868
18869 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18870
18871 * config/aarch64/aarch64.c (bit_count): Delete prototype
18872 and definition.
18873 (aarch64_print_operand): Use popcount_hwi instead of the above.
18874
18875 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18876
18877 * config/aarch64/aarch64-option-extensions.def: Delete obsolete
18878 comment.
18879
18880 2015-08-19 Marek Polacek <polacek@redhat.com>
18881
18882 PR middle-end/67133
18883 * gimple-ssa-isolate-paths.c
18884 (insert_trap_and_remove_trailing_statements): Rename to ...
18885 (insert_trap): ... this. Don't remove trailing statements; split
18886 block instead.
18887 (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
18888
18889 2015-08-19 Mikael Morin <mikael@gcc.gnu.org>
18890
18891 PR other/67042
18892 * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
18893 conditionalize the whole on __GNUC__. Add fallback code
18894 depending neither on undefined nor implementation-defined behaviour.
18895
18896 2015-08-19 Jiong Wang <jiong.wang@arm.com>
18897
18898 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
18899 whitespaces with tab.
18900
18901 2015-08-19 Florian Weimer <fweimer@redhat.com>
18902
18903 * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
18904 Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
18905 * prj-proc.adb (Process.Process_Expression_Variable_Decl):
18906 Move Name_Ids instantiation to the Prj.Proc package, to avoid
18907 trampolines.
18908
18909 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18910
18911 * config/arm/arm.c (bounds_check): Use %wd print format
18912 for HOST_WIDE_INT arguments.
18913
18914 2015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
18915
18916 * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
18917 dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
18918 mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
18919 signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
18920 tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
18921 tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
18922 tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
18923 tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
18924 tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
18925 typedefs.
18926
18927 2015-08-18 trevor Saunders <tbsaunde@tbsaunde.org>
18928
18929 * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
18930 function.c, graphite-scop-detection.c, haifa-sched.c,
18931 ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
18932 tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
18933 varasm.c: Remove typedefs of structs.
18934
18935 2015-08-18 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
18936
18937 * config/rs6000/altivec.h (vec_adde): New define.
18938 (vec_addec): Likewise.
18939 (vec_double): Likewise.
18940 (vec_bperm): Likewise.
18941 (vec_gb): Likewise.
18942 * config/rs6000/rs6000-builtin.def (ADDE): New
18943 BU_ALTIVEC_OVERLOAD_3.
18944 (ADDEC): Likewise.
18945 (DOUBLE): New BU_VSX_OVERLOAD_1.
18946 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
18947 entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
18948 ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
18949 VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
18950 ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
18951 ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
18952 ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
18953 P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
18954 and P8V_BUILTIN_VEC_VBPERMQ.
18955
18956 2015-08-18 Jason Merrill <jason@redhat.com>
18957
18958 * print-tree.c (print_node): Handle TREE_BINFO.
18959
18960 2015-08-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
18961
18962 PR middle-end/36757
18963 * builtins.c (expand_builtin_signbit): Add asserts to make sure
18964 we can expand BUILT_IN_SIGNBIT inline.
18965 * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
18966 * doc/extend.texi: Document the type-generic __builtin_signbit.
18967
18968 2015-08-18 Richard Sandiford <richard.sandiford@arm.com>
18969
18970 PR rtl-optimization/67218
18971 * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
18972 (simplify_unary_operation_1): Use it.
18973
18974 2015-08-18 Marek Polacek <polacek@redhat.com>
18975
18976 PR middle-end/67222
18977 * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
18978 if the call isn't valid.
18979 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
18980 gimple_call_builtin_p.
18981 (call_may_clobber_ref_p_1): Likewise.
18982 (stmt_kills_ref_p): Likewise.
18983
18984 2015-08-18 Robert Suchanek <robert.suchanek@imgtec.com>
18985
18986 * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
18987 * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
18988 (mips_hard_regno_scratch_ok): Likewise.
18989 (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
18990 * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
18991
18992 2015-08-18 Bin Cheng <bin.cheng@arm.com>
18993
18994 * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
18995 (determine_value_range): Call refine_value_range_using_guard for
18996 each loop initial condition to improve value range.
18997
18998 2015-08-17 Aldy Hernandez <aldyh@redhat.com>
18999
19000 * config/i386/i386.c: Remove include of fibheap.h.
19001
19002 2015-08-17 Richard Biener <rguenther@suse.de>
19003
19004 PR tree-optimization/67221
19005 * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
19006 (sccvn_dom_walker::before_dom_children): Mark backedges of
19007 non-executable blocks as not executable.
19008
19009 2015-08-17 David Sherwood <david.sherwood@arm.com>
19010
19011 * config/arm/arm.c (neon_element_bits): Replace call to
19012 GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
19013 * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
19014 (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
19015 (neon_vdup_lane<mode>): Likewise.
19016 * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
19017 (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
19018 (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
19019 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
19020 * config/spu/spu.c (arith_immediate_p): Likewise.
19021 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
19022 * expr.c (expand_expr_real_2): Likewise.
19023 * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
19024 * simplify-rtx.c (simplify_immed_subreg): Likewise.
19025 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
19026 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
19027 New variable.
19028 * fold-const.c (fold_binary_loc): Replace call to
19029 GET_MODE_PRECISION (GET_MODE_INNER (m)) with
19030 GET_MODE_UNIT_PRECISION (m).
19031
19032 2015-08-17 Mike Stump <mikestump@comcast.net>
19033
19034 * config/arm/arm.c (arm_block_move_unaligned_straight):
19035 Emit normal move instead of unaligned load when source or destination
19036 are appropriately aligned.
19037
19038 2015-08-17 Richard Biener <rguenther@suse.de>
19039 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19040
19041 PR middle-end/16107
19042 * match.pd (div (coss (op @0) : New simplifier.
19043
19044 2015-08-14 Alexandre Oliva <aoliva@redhat.com>
19045
19046 PR rtl-optimization/64164
19047 PR bootstrap/66978
19048 PR middle-end/66983
19049 PR rtl-optimization/67000
19050 PR middle-end/67034
19051 PR middle-end/67035
19052 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
19053 * tree-ssa-copyrename.c: Removed.
19054 * opts.c (default_options_table): Drop -ftree-copyrename. Add
19055 -ftree-coalesce-vars.
19056 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
19057 * common.opt (ftree-copyrename): Ignore.
19058 (ftree-coalesce-inlined-vars): Likewise.
19059 * doc/invoke.texi: Remove the ignored options above.
19060 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
19061 * tree-ssa-coalesce.h: ... here.
19062 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
19063 headers required by it.
19064 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
19065 across variables when flag_tree_coalesce_vars. Check register
19066 use and promoted modes to allow coalescing. Do not coalesce
19067 maybe-byref parms with SSA_NAMEs of other variables, or
19068 anonymous SSA_NAMEs. Moved to tree-ssa-coalesce.c.
19069 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
19070 with its member functions to tree-ssa-coalesce.c.
19071 (var_map_base_init): Likewise. Renamed to
19072 compute_samebase_partition_bases.
19073 (partition_view_normal): Drop want_bases parameter.
19074 (partition_view_bitmap): Likewise.
19075 * tree-ssa-live.h: Adjust declarations.
19076 * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
19077 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
19078 default defs at the entry point.
19079 (dump_part_var_map): New.
19080 (compute_optimized_partition_bases): New, called by...
19081 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
19082 of compute_samebase_partition_bases. Adjust.
19083 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
19084 * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
19085 (ssa_default_def_partition): New.
19086 (get_rtl_for_parm_ssa_default_def): New.
19087 (align_local_variable, add_stack_var): Support anonymous SSA
19088 names.
19089 (defer_stack_allocation): Likewise. Declare earlier.
19090 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
19091 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
19092 Do no record deferred-allocation marker in
19093 SA.partition_to_pseudo.
19094 (expand_stack_vars): Adjust check for the marker in it.
19095 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
19096 redundant MEM attr setting.
19097 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
19098 from...
19099 (expand_one_stack_var): ... this. New wrapper to check and
19100 skip already expanded SSA partitions.
19101 (record_alignment_for_reg_var): New, factored out of...
19102 (expand_one_var): ... this.
19103 (expand_one_ssa_partition): New.
19104 (adjust_one_expanded_partition_var): New.
19105 (expand_one_register_var): Check and skip already expanded SSA
19106 partitions.
19107 (expand_used_vars): Don't create DECLs for anonymous SSA
19108 names. Expand all SSA partitions, then adjust all SSA names.
19109 (pass::execute): Replace the loops that set
19110 SA.partition_to_pseudo from partition leaders and cleared
19111 DECL_RTL for multi-location variables, and that which used to
19112 rename vars and set attrs, with one that clears DECL_RTL and
19113 checks that PARMs and RESULTs default_defs match DECL_RTL.
19114 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
19115 * emit-rtl.c: Include stor-layout.h.
19116 (set_reg_attrs_for_parm): Handle NULL decl.
19117 (set_reg_attrs_for_decl_rtl): Take mode from expression if
19118 it's not a DECL.
19119 * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
19120 rather than its possibly-NULL DECL.
19121 * explow.c (promote_ssa_mode): New.
19122 * explow.h (promote_ssa_mode): Declare.
19123 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
19124 (read_complex_part): Export.
19125 * expr.h (read_complex_part): Declare.
19126 * cfgexpand.h (parm_maybe_byref_p): Declare.
19127 * function.c: Include cfgexpand.h.
19128 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
19129 (use_register_for_parm_decl): Wrapper for the above to
19130 special-case the result_ptr.
19131 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
19132 (split_complex_args): Take assign_parm_data_all argument.
19133 Pass it to rtl_for_parm. Set up rtl and context for split
19134 args. Reset complex parm before fetching its default decl
19135 rtl.
19136 (assign_parms_unsplit_complex): Use the default-def complex
19137 parm rtl if it matches the components.
19138 (assign_parms_augmented_arg_list): Adjust.
19139 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
19140 multiple locations. Recognize split complex args.
19141 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
19142 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
19143 (assign_parm_setup_block): Prefer SSA-assigned location, and
19144 fill in its address if the memory location of a maybe-byref
19145 parm was not assigned by cfgexpand.
19146 (assign_parm_setup_reg): Likewise. Adjust its mode as
19147 needed. Use entry_parm for equiv if stack_parm is NULL. Make
19148 sure passed_pointer parms don't need conversion. Copy address
19149 or value as needed.
19150 (assign_parm_setup_stack): Prefer SSA-assigned location.
19151 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
19152 rtl before testing for pointer bounds. Special-case result_ptr.
19153 (expand_function_start): Maybe reset DECL_RTL of result.
19154 Prefer SSA-assigned location for result and static chain.
19155 Factor out DECL_RESULT and SET_DECL_RTL. Convert static chain
19156 to Pmode if needed, from H.J. Lu <hongjiu.lu@intel.com>.
19157 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
19158 anonymous SSA names. Use promote_ssa_mode.
19159 (get_temp_reg): Likewise.
19160 (remove_ssa_form): Adjust.
19161 * stor-layout.c (layout_decl): Don't set mem attributes of
19162 non-MEMs.
19163 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
19164 and get its reg_usage for reg invalidation.
19165 (compute_bb_dataflow): Pass it insn.
19166 (emit_notes_in_bb): Likewise.
19167
19168 2015-08-14 Marek Polacek <polacek@redhat.com>
19169
19170 * tree-core.h (tree_base): Fix typo.
19171
19172 2015-08-14 Marek Polacek <polacek@redhat.com>
19173
19174 PR middle-end/67133
19175 * gimple.c (infer_nonnull_range_by_attribute): Check that the
19176 nonnull argument position is not outside function arguments.
19177
19178 2015-08-14 Matthew Wahab <matthew.wahab@arm.com>
19179
19180 PR target/67143
19181 * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
19182 'lconst_atomic' with 'const_atomic'.
19183 (atomic_fetch_<optab><mode>): Likewise.
19184 (atomic_<optab>_fetch<mode>): Likewise.
19185 * config/aarch64/iterators.md (lconst-atomic): Move below
19186 'const_atomic'.
19187 (const_atomic): New.
19188
19189 2015-08-14 Thomas Schwinge <thomas@codesourcery.com>
19190 Bernd Schmidt <bernds@codesourcery.com>
19191
19192 * config/nvptx/nvptx.c (nvptx_option_override): Don't override
19193 debug options.
19194 * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
19195 (DWARF2_DEBUGGING_INFO): Don't define.
19196 * debug.h (dwarf2_lineno_debug_hooks): Declare.
19197 * toplev.c (process_options): Add a case for it.
19198 * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
19199 (dwarf2out_init): Skip most initializations if
19200 DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
19201 case.
19202 * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
19203 DWARF2_LINENO_DEBUGGING_INFO.
19204 * opts.c (set_debug_level): Likewise.
19205
19206 2015-08-14 James Greenhalgh <james.greenhalgh@arm.com>
19207
19208 * config/arm/types.md (is_neon_type): Add missing types.
19209
19210 2015-08-14 Yuri Rumyantsev <ysrumyan@gmail.com>
19211
19212 * config/i386/driver-i386.c (host_detect_local_cpu): Add support
19213 for skylake.
19214 * config/i386/i386.c (PTA_SKYLAKE): New macros.
19215 (processor_alias_table): Add skylake description.
19216 (enum processor_model): Add skylake processor.
19217 (arch_names_table): Add skylake record.
19218 * doc/invoke.texi: Add skylake item.
19219
19220 2015-08-13 Andrew MacLeod <amacleod@redhat.com>
19221
19222 * ira-int.h: Include recog.h.
19223 * ira-build.c: Don't include recog.h.
19224 * ira-color.c: Likewise.
19225 * ira-conflicts.c: Likewise.
19226 * ira-costs.c: Likewise.
19227 * ira-emit.c: Likewise.
19228 * ira-lives.c: Likewise.
19229 * ira.c: Likewise.
19230 * sched-deps.c: Likewise.
19231 * sel-sched.c: Likewise.
19232 * target-globals.c: Likewise.
19233
19234 2015-08-13 Richard Sandiford <richard.sandiford@arm.com>
19235
19236 PR bootstrap/55035
19237 * reload1.c (elimination_costs_in_insn): Make it obvious to the
19238 compiler that the n_dups and n_operands loop bounds are invariant.
19239
19240 2015-08-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19241
19242 * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
19243 expressions in A and B.
19244
19245 2015-08-13 Richard Biener <rguenther@suse.de>
19246
19247 * tree.c (nonnull_arg_p): Move from ...
19248 * tree-vrp.c (nonnull_arg_p): ... here.
19249 * tree.h (nonnull_arg_p): Declare.
19250 * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
19251 here, register ptr != 0 for nonnull_arg_p pointer arguments.
19252 Properly initialize static chain and by-reference result pointer.
19253 (run_scc_vn): Adjust.
19254
19255 2015-08-13 Robert Suchanek <robert.suchanek@imgtec.com>
19256
19257 * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
19258 TUNE_I6400.
19259
19260 2015-08-13 Matthew Wahab <matthew.wahab@arm.com>
19261
19262 * config/aarch64/aarch64-protos.h
19263 (aarch64_gen_atomic_cas): Declare.
19264 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
19265 Choose appropriate instruction pattern for the target.
19266 (aarch64_gen_atomic_cas): New.
19267 * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
19268 (atomic_compare_and_swap<mode>_1): Rename to
19269 aarch64_compare_and_swap<mode>. Fix some indentation.
19270 (aarch64_compare_and_swap<mode>_lse): New.
19271 (aarch64_atomic_cas<mode>): New.
19272
19273 2015-08-13 Matthew Wahab <matthew.wahab@arm.com>
19274
19275 * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
19276 (TARGET_LSE): New.
19277
19278 2015-08-13 Richard Biener <rguenther@suse.de>
19279
19280 PR tree-optimization/67191
19281 * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
19282 assert we value-numbered last stmts operand because it can validly
19283 trigger for unreachable code.
19284
19285 2015-08-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19286
19287 PR rtl-optimization/67103
19288 * ifcvt.c (noce_try_store_flag_constants): Move
19289 x = (-(test != 0) & (b - a)) + a transformation to...
19290 (noce_try_cmove): ... Here. Try it if normal conditional
19291 move fails.
19292
19293 2015-08-13 Robert Suchanek <robert.suchanek@imgtec.com>
19294
19295 * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
19296 pseudo-processors.
19297 * config/mips/mips.md (processor): Remove w32 and w64.
19298
19299 2015-08-13 Richard Biener <rguenther@suse.de>
19300
19301 PR tree-optimization/66502
19302 PR tree-optimization/67167
19303 * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
19304 backedge arguments.
19305 (vn_phi_lookup): Adjust.
19306 (vn_phi_insert): Likewise.
19307 (visit_phi): Prefer to value-number to another PHI node
19308 over value-numbering to a PHI argument.
19309 (init_scc_vn): Mark DFS back edges.
19310
19311 2015-08-13 Richard Biener <rguenther@suse.de>
19312
19313 * gimple.h (gcall::code_): New constant static member.
19314 (gcond::code_): Likewise.
19315 * gimple.c (gcall::code_): Define.
19316 (gcond::code_): Likewise.
19317 (is_a_helper <const gcond *>): Add.
19318 (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
19319 and forward to a new gcall overload with less checking and a
19320 cheaper way to access the operand.
19321 (gimple_call_lhs_ptr): Likewise.
19322 (gimple_call_set_lhs): Likewise.
19323 (gimple_call_internal_p): Likewise.
19324 (gimple_call_with_bounds_p): Likewise.
19325 (gimple_call_set_with_bounds): Likewise.
19326 (gimple_call_internal_fn): Likewise.
19327 (gimple_call_set_ctrl_altering): Likewise.
19328 (gimple_call_ctrl_altering_p): Likewise.
19329 (gimple_call_fntype): Likewise.
19330 (gimple_call_fn): Likewise.
19331 (gimple_call_fn_ptr): Likewise.
19332 (gimple_call_set_fndecl): Likewise.
19333 (gimple_call_fndecl): Likewise.
19334 (gimple_call_chain): Likewise.
19335 (gimple_call_num_args): Likewise.
19336 (gimple_call_arg): Likewise.
19337 (gimple_call_arg_ptr): Likewise.
19338 (gimple_call_set_arg): Likewise.
19339 (gimple_call_noreturn_p): Likewise.
19340 (gimple_cond_code): Likewise.
19341 (gimple_cond_lhs): Likewise.
19342 (gimple_cond_rhs): Likewise.
19343 (gimple_has_lhs): Reduce checking.
19344
19345 2015-08-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19346
19347 PR middle-end/25529
19348 * match.pd (div (mult @0 @1) @1) : New simplifier.
19349
19350 2015-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
19351
19352 PR target/67071
19353 * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
19354 predicate to allow construction of vector constants using the
19355 VSLDOI vector shift instruction.
19356
19357 * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
19358 declaration.
19359
19360 * config/rs6000/rs6000.c (vspltis_shifted): New function to return
19361 the number of bytes to be shifted left and filled in with either
19362 all zero or all one bits.
19363 (gen_easy_altivec_constant): Call vsplitis_shifted if no other
19364 methods exist.
19365 (output_vec_const_move): On power8, generate XXLORC to generate
19366 a vector constant with all 1's. Do a split if we need to use a
19367 VSLDOI instruction.
19368
19369 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
19370 properly test for the MSB.
19371
19372 * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
19373 vector constants that can be created with VSLDOI.
19374
19375 2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org>
19376
19377 revert:
19378 * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
19379 gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
19380 ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
19381 omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
19382 tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
19383 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
19384 tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
19385 tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
19386 vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
19387
19388 2015-08-12 Max Filippov <jcmvbkbc@gmail.com>
19389
19390 * config/xtensa/constraints.md (define_constraint "Y"): New
19391 constraint.
19392 * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
19393 * config/xtensa/linux.h (ASM_SPEC): Likewise.
19394 * config/xtensa/predicates.md (move_operand): Match constants
19395 and symbols in the presence of TARGET_AUTO_LITPOOLS.
19396 * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
19397 immediate references to TLS data.
19398 (xtensa_emit_move_sequence): Don't force constants to memory in
19399 the presence of TARGET_AUTO_LITPOOLS.
19400 (print_operand): Add 'y' format, same as default, but capable of
19401 printing SF mode constants as well.
19402 * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
19403 (movsf_internal): Add movi pattern that loads literal.
19404 (movsf, movdf): Don't force constants to memory in the presence
19405 of TARGET_AUTO_LITPOOLS.
19406 (movdf_internal): Add 'Y' constraint.
19407 * config/xtensa/xtensa.opt (mauto-litpools): New option.
19408 * doc/invoke.text (Xtensa options): Document -mauto-litpools.
19409
19410 2015-08-12 Matthew Wahab <matthew.wahab@arm.com>
19411
19412 * config/arm/arm-fpus.def: Replace booleans with feature flags.
19413 Update comment.
19414 * config/arm/arm.c (ARM_FPU): Update macro.
19415 * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
19416 (TARGET_FP16): Likewise.
19417 (TARGET_CRYPTO): Likewise.
19418 (TARGET_NEON): Likewise.
19419 (struct arm_fpu_desc): Remove fields neon, fp16 and crypto. Add
19420 field features.
19421
19422 2015-08-12 Tom de Vries <tom@codesourcery.com>
19423
19424 PR other/67092
19425 PR other/67098
19426 * doc/install.texi: Remove --with_host_libstdcxx item. Update
19427 --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
19428 accordingly. Mention default for --with-stage1-ldflags.
19429
19430 2015-08-12 Matthew Wahab <matthew.wahab@arm.com>
19431
19432 * config/arm/arm.h (arm_fpu_feature_set): New.
19433 (ARM_FPU_FSET_HAS): New.
19434 (FPU_FL_NONE): New.
19435 (FPU_FL_NEON): New.
19436 (FPU_FL_FP16): New.
19437 (FPU_FL_CRYPTO): New.
19438
19439 2015-08-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19440
19441 * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
19442 after -mcmodel=large -fPIC sorry.
19443
19444 2015-08-12 Richard Biener <rguenther@suse.de>
19445
19446 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
19447 comparison operand order and commutative ternary op operand order.
19448 (sccvn_dom_walker::cond_stack): New state to track temporary
19449 expressions.
19450 (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
19451 no longer valid.
19452 (sccvn_dom_walker::record_cond): Add a single temporary conditional
19453 expression.
19454 (sccvn_dom_walker::record_conds): Add a temporary conditional
19455 expressions and all related expressions also true/false.
19456 (sccvn_dom_walker::before_dom_children): Record temporary
19457 expressions based on the controlling condition of a single
19458 predecessor. When trying to simplify a conditional statement
19459 lookup expressions we might have inserted earlier.
19460
19461 2015-08-12 Yvan Roux <yvan.roux@linaro.org>
19462
19463 PR target/67127
19464 * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
19465 to ARM core registers.
19466
19467 2015-08-12 Nathan Sidwell <nathan@acm.org>
19468
19469 * tree-vrp.c (simplify_min_or_max_using_ranges): New.
19470 (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
19471
19472 2015-08-12 Simon Dardis <simon.dardis@imgtec.com>
19473
19474 * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
19475 line with comments.
19476 * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
19477
19478 2015-08-12 Richard Biener <rguenther@suse.de>
19479
19480 * gimple.h (remove_pointer): New trait.
19481 (GIMPLE_CHECK2): New inline template function.
19482 (gassign::code_): New constant static member.
19483 (is_a_helper<const gassign *>): Add.
19484 (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
19485 and forward to a new gassign overload with less checking and a
19486 cheaper way to access the operand.
19487 (gimple_assign_lhs_ptr): Likewise.
19488 (gimple_assign_set_lhs): Likewise.
19489 (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
19490 Likewise.
19491 (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
19492 Likewise.
19493 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
19494 Likewise.
19495 (gimple_assign_rhs_code): Likewise.
19496 * gimple.c (gassign::code_): Define.
19497
19498 2015-08-12 Richard Biener <rguenther@suse.de>
19499
19500 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
19501 Eliminate edges marked as not executable by SCCVN.
19502 * tree-ssa-sccvn.c: Include gimple-iterator.h.
19503 (cond_dom_walker): Rename to sccvn_dom_walker.
19504 (sccvn_dom_walker::before_dom_children): Value-number defs
19505 of all stmts.
19506 (run_scc_vn): Remove loop value-numbering all SSA names.
19507 Drop not visited SSA names to varying.
19508
19509 2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org>
19510
19511 * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
19512 gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
19513 ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
19514 omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
19515 tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
19516 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
19517 tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
19518 tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
19519 vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
19520
19521 2015-08-11 Uros Bizjak <ubizjak@gmail.com>
19522
19523 PR target/66954
19524 * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
19525 to enum feature_priority and feature_list.
19526 (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
19527 and isa_names_table.
19528
19529 2015-08-11 Yuri Rumyantsev <ysrumyan@gmail.com>
19530
19531 * tree-vect-stmts.c (vectorizable_shift): Add missed test on
19532 vect_induction_def.
19533
19534 2015-08-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
19535
19536 PR c/66098
19537 PR c/66711
19538 * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
19539 account when deciding what was the command-line status.
19540
19541 2015-08-11 Nathan Sidwell <nathan@acm.org>
19542
19543 * tree-vrp.c (simplify_abs_using_ranges): Simplify.
19544
19545 * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
19546 we're not the only contributor to target phi.
19547
19548 2015-08-11 Jiong Wang <jiong.wang@arm.com>
19549
19550 * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
19551 FIXED_REG0.
19552
19553 2015-08-11 Tom de Vries <tom@codesourcery.com>
19554
19555 * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
19556
19557 2015-08-10 H.J. Lu <hongjiu.lu@intel.com>
19558
19559 * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
19560 with CPU_SLM.
19561 * config/i386/i386.md (cpu): Remove knl.
19562
19563 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
19564
19565 PR libgomp/65742
19566 PR middle-end/66332
19567 * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
19568 open-coded sequence.
19569 * omp-low.c (oacc_process_reduction_data): Remove handline of
19570 GOMP_DEVICE_HOST_NONSHM.
19571
19572 * lto-streamer-in.c (lto_input_mode_table): Adjust to
19573 GET_MODE_INNER changes.
19574
19575 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
19576 Ilya Verbin <ilya.verbin@intel.com>
19577
19578 * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
19579
19580 2015-08-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
19581
19582 * doc/options.texi (EnabledBy): Document that the argument must be
19583 a Common option.
19584 * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
19585 Not enabled by -Wall.
19586 * optc-gen.awk: Give nicer error messages. Detect if the argument
19587 of EnabledBy is not a Common option.
19588 * common.opt (Wnull-dereference): Not enabled by -Wall.
19589 * opt-functions.awk (lang_enabled_by): Nicer error messages.
19590
19591 2015-08-09 H.J. Lu <hongjiu.lu@intel.com>
19592
19593 * config/i386/driver-i386.c (host_detect_local_cpu): Treat
19594 model == 0x4f as Broadwell.
19595
19596 2015-08-08 Segher Boessenkool <segher@kernel.crashing.org>
19597
19598 PR rtl-optimization/67028
19599 * combine.c (simplify_comparison): Fix comment. Rearrange code.
19600 Add test to see if a const_int fits in the new mode.
19601
19602 2015-08-07 DJ Delorie <dj@redhat.com>
19603
19604 * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
19605
19606 2015-08-07 H.J. Lu <hongjiu.lu@intel.com>
19607
19608 PR rtl-optimization/67029
19609 * ira-color.c: Include "recog.h" before including "ira-int.h".
19610 * target-globals.c: Likewise.
19611 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
19612 adds an alternative_mask argument and use it instead of
19613 preferred_alternatives.
19614 * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
19615 * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
19616 * sched-deps.c: Include "ira-int.h" after including "ira.h".
19617 (sched_analyze_insn): Update call to
19618 ira_implicitly_set_insn_hard_regs.
19619 * sel-sched.c: Include "ira-int.h" after including "ira.h".
19620 (implicit_clobber_conflict_p): Update call to
19621 ira_implicitly_set_insn_hard_regs.
19622
19623 2015-08-06 Uros Bizjak <ubizjak@gmail.com>
19624
19625 * Makefile.in (.INTERMEDIATE): Add gpl.pod.
19626
19627 2015-08-07 Kaz Kojima <kkojima@gcc.gnu.org>
19628
19629 PR target/67002
19630 * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
19631 currently_expanding_to_rtl is set.
19632
19633 2015-08-06 Yaakov Selkowitz <yselkowi@redhat.com>
19634
19635 * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
19636 * configure: Regenerate.
19637
19638 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19639 Jiong Wang <jiong.wang@arm.com>
19640
19641 * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
19642 * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
19643 (REG_CLASS_NAMES): Likewise.
19644 (REG_CLASS_CONTENTS): Likewise.
19645 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
19646 (aarch64_register_move_cost): Likewise.
19647 (aarch64_load_symref_appropriately): Invoke the new added pattern if
19648 possible.
19649 * config/aarch64/constraints.md (Uc0): New constraint.
19650
19651 2015-08-06 Jiong Wang <jiong.wang@arm.com>
19652
19653 * config/aarch64/constraints.md (Usf): Add the test of
19654 aarch64_is_noplt_call_p.
19655
19656 2015-08-06 Jiong Wang <jiong.wang@arm.com>
19657
19658 * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
19659 declaration.
19660 * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
19661 * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
19662 (call_symbol): Likewise.
19663
19664 2015-08-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
19665
19666 * tree-vect-patterns.c (vect_recog_mult_pattern): New function
19667 for vectorizing multiplication patterns.
19668 * tree-vectorizer.h: Adjust the number of patterns.
19669
19670 2015-08-06 Uros Bizjak <ubizjak@gmail.com>
19671
19672 * config/i386/sse.md (*vec_concatv2df): Declare added
19673 alternatives as sselog type.
19674
19675 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19676
19677 * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
19678 all GPRs.
19679
19680 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19681
19682 * config/s390/s390.c (s390_expand_tbegin): Expand either
19683 tbegin_1_z13 or tbegin_1 depending on VX flag.
19684 * config/s390/s390.md ("tbegin_1_z13"): New expander.
19685
19686 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19687
19688 * config/s390/s390.opt: Clarify description for -mzvector
19689 * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
19690 -mzvector.
19691
19692 2015-08-06 Richard Biener <rguenther@suse.de>
19693
19694 * gimple.h (gimple_call_set_fn): Access op member directly.
19695 (gimple_call_chain_ptr): Likewise.
19696 (gimple_call_set_chain): Likewise.
19697 (gimple_cond_lhs_ptr): Likewise.
19698 (gimple_cond_set_lhs): Likewise.
19699 (gimple_cond_rhs_ptr): Likewise.
19700 (gimple_cond_set_rhs): Likewise.
19701 (gimple_cond_true_label): Likewise.
19702 (gimple_cond_set_true_label): Likewise.
19703 (gimple_cond_set_false_label): Likewise.
19704 (gimple_cond_false_label): Likewise.
19705 (gimple_label_label): Likewise.
19706 (gimple_label_set_label): Likewise.
19707 (gimple_goto_set_dest): Likewise.
19708 (gimple_asm_input_op): Likewise.
19709 (gimple_asm_input_op_ptr): Likewise.
19710 (gimple_asm_set_input_op): Likewise.
19711 (gimple_asm_output_op): Likewise.
19712 (gimple_asm_output_op_ptr): Likewise.
19713 (gimple_asm_set_output_op): Likewise.
19714 (gimple_asm_clobber_op): Likewise.
19715 (gimple_asm_set_clobber_op): Likewise.
19716 (gimple_asm_label_op): Likewise.
19717 (gimple_asm_set_label_op): Likewise.
19718 (gimple_switch_index): Likewise.
19719 (gimple_switch_index_ptr): Likewise.
19720 (gimple_return_retval_ptr): Likewise.
19721 (gimple_return_retval): Likewise.
19722 (gimple_return_set_retval): Likewise.
19723 (gimple_switch_set_index): Likewise. Remove superfluous GIMPLE_CHECK.
19724 (gimple_switch_label): Likewise.
19725 (gimple_switch_set_label): Likewise.
19726
19727 2015-08-06 Richard Biener <rguenther@suse.de>
19728
19729 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
19730 bool comparison canonicalization and restrict to integers.
19731
19732 2015-08-05 Andrew MacLeod <amacleod@redhat.com>
19733
19734 * coretypes.h (enum symbol_visibility): Relocate here.
19735 * flag-types.h (enum symbol_visibility): Remove.
19736 * tree-core.h (enum symbol_visibility): Remove.
19737
19738 2015-08-05 Lynn Boger <laboger@linux.vnet.ibm.com>
19739
19740 PR target/66870
19741 * config/rs6000/rs6000.c (rs6000_emit_prologue): Check
19742 for no_split_stack function attribute along with
19743 flag_split_stack.
19744 (rs6000_expand_split_stack_prologue): Likewise.
19745
19746 2015-08-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
19747 Jeff Law <law@redhat.com>
19748
19749 PR c/16351
19750 * doc/invoke.texi (Wnull-dereference): New.
19751 * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
19752 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
19753 Warn for potential NULL dereferences.
19754 (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
19755 * ubsan.c (instrument_nonnull_arg): Call
19756 infer_nonnull_range_by_attribute.
19757 (instrument_nonnull_return): Likewise.
19758 * common.opt (Wnull-dereference); New.
19759 * gimple.c (infer_nonnull_range): Remove bool arguments.
19760 (infer_nonnull_range_by_dereference): New.
19761 (infer_nonnull_range_by_attribute): New.
19762 * gimple.h: Update declarations.
19763
19764 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
19765
19766 * gensupport.c (sequence_num): Replace with...
19767 (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
19768 ...these new variables.
19769 (init_rtx_reader_args_cb): Update accordingly.
19770 (get_num_code_insns): Likewise.
19771 (read_md_rtx): Rework to use a while loop and get_c_test.
19772 Use the new counters. Remove redundant DEFINE_SUBST case.
19773 * genoutput.c (gen_split): Delete.
19774 (main): Don't call it.
19775
19776 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
19777
19778 * gensupport.h (get_c_test): Declare.
19779 * gensupport.c (get_c_test): New function.
19780 * genconditions.c (main): Use it.
19781 * genrecog.c (validate_pattern): Likewise.
19782 (match_pattern_1): Likewise. Remove c_test argument.
19783 (match_pattern): Update accordingly and remove c_test argument.
19784 (main): Update accordingly.
19785
19786 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
19787
19788 * gensupport.h (get_num_insn_codes): Declare.
19789 * gensupport.c (get_num_insn_codes): New function.
19790 * genattrtab.c (optimize_attrs): Rename max_insn_code to
19791 num_insn_codes.
19792 (main): Likewise. Use get_num_insn_codes.
19793 * gencodes.c (main): Remove "last" and use get_num_insn_codes.
19794
19795 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
19796
19797 PR middle-end/66311
19798 * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
19799 is zero- rather than sign-extended.
19800
19801 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
19802
19803 * target-insns.def (can_extend): Delete.
19804
19805 2015-08-05 Richard Biener <rguenther@suse.de>
19806
19807 PR tree-optimization/67121
19808 * tree-if-conv.c (combine_blocks): Clear range-info produced
19809 by stmts no longer executed conditionally.
19810
19811 2015-08-05 Nick Clifton <nickc@redhat.com>
19812
19813 * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
19814 to allow identical far pointers to remain.
19815
19816 2015-08-05 Richard Biener <rguenther@suse.de>
19817
19818 PR middle-end/67120
19819 * match.pd: Compare address bases with == if they are decls
19820 or SSA names, not operand_equal_p. Otherwise fail.
19821
19822 2015-08-05 Richard Biener <rguenther@suse.de>
19823
19824 PR tree-optimization/67055
19825 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
19826 NULL gimple_block.
19827
19828 * g++.dg/torture/pr67055.C: New testcase.
19829
19830 2015-08-05 Kirill Yukhin <kirill.yukhin@intel.com>
19831
19832 * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
19833 noavx512vl.
19834 (define_attr "enabled"): Handle avx521vl and noavx512vl.
19835 * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
19836 AVX-512 alternative out of SSE.
19837 (define_insn "*vec_concatv2df"): Ditto.
19838
19839 2015-08-05 Kirill Yukhin <kirill.yukhin@intel.com>
19840
19841 * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
19842 CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
19843 CODE_FOR_avx_ptestv4di.
19844 * config/i386/sse.md (define_mode_iterator V_AVX): New.
19845 (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
19846 (define_insn "avx_ptest256"): Merge this ...
19847 (define_insn "sse4_1_ptest"): And this ...
19848 (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
19849
19850 2015-08-05 Richard Biener <rguenther@suse.de>
19851
19852 PR tree-optimization/67109
19853 * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
19854 against too big groups. Print whether this is a load or store
19855 group. Rename from ...
19856 (vect_analyze_group_access): ... this which is now a wrapper
19857 dissolving an invalid group.
19858 (vect_analyze_data_ref_accesses): Print whether this is a load
19859 or store group.
19860
19861 2015-08-05 Richard Biener <rguenther@suse.de>
19862
19863 PR middle-end/67107
19864 * match.pd: Guard const_binop result checking against NULL_TREE
19865 result.
19866
19867 2015-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
19868
19869 * cse.c (cse_insn): Restoring old behaviour for src_eqv
19870 when dest and value in the REG_EQUAL are same and dest
19871 is STRICT_LOW_PART.
19872
19873 2015-08-04 Anatoly Sokolov <aesok@post.ru>
19874
19875 * config/moxie/moxie.h (PRINT_OPERAND,
19876 PRINT_OPERAND_ADDRESS): Remove macros.
19877 * config/moxie/moxie-protos.h (moxie_print_operand,
19878 moxie_print_operand_address): Remove declaration.
19879 * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
19880 TARGET_PRINT_OPERAND_ADDRESS): Define.
19881 (moxie_print_operand, moxie_print_operand_address): Make static.
19882
19883 2015-08-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
19884
19885 PR target/66731
19886 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
19887 (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
19888
19889 2015-08-04 Richard Biener <rguenther@suse.de>
19890
19891 * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
19892 generated code.
19893 (dt_operand::gen_gimple_expr): Adjust.
19894
19895 2015-08-04 Richard Biener <rguenther@suse.de>
19896
19897 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
19898 bool compares on RHS.
19899 * match.pd: Add X ==/!= !X is false/true pattern.
19900
19901 2015-08-04 Pawel Kupidura <pawel.kupidura@arm.com>
19902
19903 * config/aarch64/aarch64.c: Change inner loop statement cost
19904 to be consistent with other targets.
19905
19906 2015-08-04 Christophe Lyon <christophe.lyon@linaro.org>
19907
19908 * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
19909 targets.
19910
19911 2015-08-04 Nathan Sidwell <nathan@codesourcery.com>
19912
19913 * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
19914 (machine_function): Remove pseudos field.
19915
19916 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19917
19918 * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
19919 Exit early and use target_option_current_node if processing current
19920 pragma.
19921
19922 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19923
19924 * doc/extend.texi (AArch64 Function Attributes): New node.
19925 (AArch64 Pragmas): Likewise.
19926
19927 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19928
19929 * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
19930 Initialize simd builtins if TARGET_SIMD.
19931 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
19932 Make sure that the builtins are initialized only once no matter how
19933 many times the function is called.
19934 (aarch64_init_builtins): Unconditionally initialize crc builtins.
19935 (aarch64_relayout_simd_param): New function.
19936 (aarch64_simd_expand_args): Use above during argument expansion.
19937 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
19938 simd builtins if TARGET_SIMD.
19939 * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
19940 prototype.
19941 (aarch64_relayout_simd_types): Likewise.
19942
19943 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19944
19945 * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
19946 * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
19947 (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
19948 * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
19949 static keyword.
19950 (aarch64_reset_previous_fndecl): New function.
19951 (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
19952 the string.
19953 * config/aarch64/aarch64-c.c: New file.
19954 * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
19955 Push and pop options at beginning and end. Remove ifdef
19956 __ARM_FEATURE_CRC32.
19957 * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
19958 Add pragma +nothing+simd and +nothing+crypto where appropriate.
19959 * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
19960 * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
19961 Define prototype.
19962 (aarch64_register_pragmas): Likewise.
19963 (aarch64_reset_previous_fndecl): Likewise.
19964 (aarch64_process_target_attr): Likewise.
19965 (aarch64_override_options_internal): Likewise.
19966
19967 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19968
19969 * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
19970 New function.
19971 (aarch64_can_inline_p): Likewise.
19972 (TARGET_CAN_INLINE_P): Define.
19973
19974 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19975
19976 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
19977 Remove static. Handle OPT_mgeneral_regs_only,
19978 OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
19979 OPT_momit_leaf_frame_pointer.
19980 * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
19981 (aarch64_attr_opt_type): New enum.
19982 (aarch64_attribute_info): New struct.
19983 (aarch64_handle_attr_arch): New function.
19984 (aarch64_handle_attr_cpu): Likewise.
19985 (aarch64_handle_attr_tune): Likewise.
19986 (aarch64_handle_attr_isa_flags): Likewise.
19987 (aarch64_attributes): New table.
19988 (aarch64_process_one_target_attr): New function.
19989 (num_occurences_in_str): Likewise.
19990 (aarch64_process_target_attr): Likewise.
19991 (aarch64_option_valid_attribute_p): Likewise.
19992 (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
19993 * config/aarch64/aarch64-protos.h: Include input.h
19994 (aarch64_handle_option): Declare prototype.
19995
19996 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19997
19998 * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
19999 * config/aarch64/aarch64.c: Include target-globals.h
20000 (aarch64_previous_fndecl): New variable.
20001 (aarch64_set_current_function): New function.
20002 (TARGET_SET_CURRENT_FUNCTION): Define.
20003
20004 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20005
20006 * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
20007 (explicit_arch): Likewise.
20008 (x_aarch64_isa_flags): Likewise.
20009 (mgeneral-regs-only): Mark as Save.
20010 (mfix-cortex-a53-835769): Likewise.
20011 (mcmodel=): Likewise.
20012 (mstrict-align): Likewise.
20013 (momit-leaf-frame-pointer): Likewise.
20014 (mtls-dialect): Likewise.
20015 (master=): Likewise.
20016 * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
20017 (aarch64_isa_flags): Remove extern declaration.
20018 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
20019 to indicate success or failure.
20020 (aarch64_validate_march): Likewise.
20021 (aarch64_validate_mtune): Likewise.
20022 (aarch64_isa_flags): Delete.
20023 (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
20024 instead of aarch64_isa_flags.
20025 (aarch64_get_tune_cpu): New function.
20026 (aarch64_get_arch): Likewise.
20027 (aarch64_override_options): Use above and set up explicit_tune_core
20028 and explicit_arch.
20029 (aarch64_print_extension): Move earlier in file. Add isa_flags
20030 argument and use that instead of the global aarch64_isa_flags.
20031 (aarch64_option_save): New function.
20032 (aarch64_option_restore): Likewise.
20033 (aarch64_option_print): Likewise.
20034 (aarch64_declare_function_name): Likewise.
20035 (aarch64_start_file): Delete.
20036 (TARGET_ASM_FILE_START): Do not define.
20037 (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
20038 * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
20039 Declare prototype.
20040
20041 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20042
20043 * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
20044 flag_omit_leaf_frame_pointer to 2.
20045
20046 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20047
20048 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
20049 define to 0 or 1.
20050 (TARGET_FIX_ERR_A53_835769): New macro.
20051 * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
20052 handling of opts->x_aarch64_fix_a53_err835769.
20053 (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
20054 than aarch64_fix_a53_err835769.
20055 * config/aarch64/aarch64-elf-raw.h: Update for above changes.
20056 * config/aarch64/aarch64-linux.h: Likewise.
20057
20058 2015-08-04 Uros Bizjak <ubizjak@gmail.com>
20059
20060 * config/i386/i386.c (ix86_expand_int_movcc): Check result of
20061 ix86_expand_int_movcc as boolean.
20062
20063 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20064
20065 * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
20066 (aarch64_cpu_string): Likewise.
20067 (aarch64_tune_string): Likewise.
20068 * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
20069 (aarch64_parse_extension): Return aarch64_parse_opt_result.
20070 Add extra argument to put result into.
20071 (aarch64_parse_arch): Likewise. Do not set selected_cpu.
20072 (aarch64_parse_cpu): Add arguments to put results into. Return
20073 aarch64_parse_opt_result.
20074 (aarch64_parse_tune): Likewise.
20075 (aarch64_override_options_after_change_1): New function.
20076 (aarch64_override_options_internal): New function.
20077 (aarch64_validate_mcpu): Likewise.
20078 (aarch64_validate_march): Likewise.
20079 (aarch64_validate_mtune): Likewise.
20080 (aarch64_override_options): Update to reflect above changes.
20081 Move some logic into aarch64_override_options_internal.
20082 Initialize target_option_default_node and target_option_current_node.
20083 (aarch64_override_options_after_change): Move logic into
20084 aarch64_override_options_after_change_1 and call it with global_options.
20085 (initialize_aarch64_code_model): Take a gcc_options pointer and use the
20086 flag values from that.
20087
20088 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20089
20090 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
20091 __ARM_ARCH_8A directly rather than with cpp_define_formatted.
20092 * config/aarch64/aarch64.c (struct processor): Add arch field.
20093 (all_architectures): Handle above, move above all_cores.
20094 (all_cores): Handle above.
20095 (aarch64_parse_arch): Handle above changes.
20096 * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
20097 above. Update comments.
20098 (armv8.1-a): Likewise.
20099 * config/aarch64/aarch64-cores.def: Update according to above.
20100 * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
20101 * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
20102 aarch64_arch_driver_info.
20103
20104 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20105
20106 * config/aarch64/aarch64.c (struct processor): Add ident field.
20107 Rename core sched_core.
20108 (all_cores): Handle above changes.
20109 (all_architectures): Likewise.
20110 (aarch64_parse_arch): Likewise.
20111 (aarch64_override_options): Likewise.
20112
20113 2015-08-04 Richard Biener <rguenther@suse.de>
20114
20115 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
20116 dispatching to fold_binary for GIMPLE_BINARY_RHS and for
20117 comparisons embedded in [VEC_]COND_EXPRs.
20118
20119 2015-08-03 Abe Skolnik <a.skolnik@samsung.com>
20120
20121 * tree-if-conv.c: Fix various typos in comments.
20122 * tree-vect-stmts.c: Likewise.
20123
20124 2015-08-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
20125
20126 PR tree-optimization/67043
20127 * loop-invariant.c (move_invariant_reg): Recompute luids in loop
20128 preheader after hoisting invariant in it.
20129 (find_defs): Force recomputation of all luids.
20130
20131 2015-08-03 Peter Bergner <bergner@vnet.ibm.com>
20132
20133 * config/rs6000/htm.md (tabort.): Restrict the source operand to
20134 using a base register.
20135
20136 2015-08-03 David Malcolm <dmalcolm@redhat.com>
20137
20138 * main.c (main): Pass in NULL for toplev's external_timer.
20139 * timevar.c: Include coretypes.h.
20140 (class timer::named_items): New.
20141 (timer::named_items::named_items): New.
20142 (timer::named_items::~named_items): New.
20143 (timer::named_items::push): New.
20144 (timer::named_items::pop): New.
20145 (timer::named_items::print): New.
20146 (timer::timer): Initialize field "m_jit_client_items".
20147 (timer::~timer): New.
20148 (timer::push): Move bulk of implementation to...
20149 (timer::push_internal): ...here. New function.
20150 (timer::pop): Move bulk of implementation to...
20151 (timer::pop_internal): ...here. New function.
20152 (timer::push_client_item): New.
20153 (timer::pop_client_item): New.
20154 (timer::print_row): New function, taken from timer::print.
20155 (timer::print): Print "GCC items" header if we also have client
20156 items. Move row-printing to timer::print_row. Print any client
20157 items.
20158 (timer::get_topmost_item_name): New method.
20159 * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
20160 (TV_JIT_CLIENT_CODE): New.
20161 * timevar.h (timer::push_client_item): New declaration.
20162 (timer::pop_client_item): New declaration.
20163 (timer::get_topmost_item_name): New method.
20164 (timer::push_internal): New declaration.
20165 (timer::pop_internal): New declaration.
20166 (timer::print_row): New declaration.
20167 (timer::named_items): New declaration.
20168 (timer::m_jit_client_items): New field.
20169 (timer): Add friend class named_items.
20170 (auto_timevar::auto_timevar): Add timer param.
20171 (auto_timevar::~auto_timevar): Use field "m_timer".
20172 (auto_timevar::m_timer): New field.
20173 * toplev.c (initialize_rtl): Add g_timer as param when
20174 constructing auto_timevar instance.
20175 (toplev::toplev): Add "external_timer" param, and use it to
20176 initialize the "g_timer" global if non-NULL.
20177 (toplev::~toplev): If this created "g_timer", delete it.
20178 * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
20179 with "external_timer" timer *.
20180
20181 2015-08-03 Alexander Basov <coohpt@gmail.com>
20182
20183 PR middle-end/64744
20184 PR middle-end/48470
20185 PR middle-end/43404
20186 * cfgexpand.c (expand_one_var): Add check if stack is going to
20187 be used in naked function.
20188 * expr.c (expand_expr_addr_expr_1): Remove excess checking
20189 whether expression should not reside in MEM.
20190 * function.c (use_register_for_decl): Do not use registers for
20191 non-register things (volatile, float, BLKMode) in naked functions.
20192
20193 2015-08-03 John David Anglin <danglin@gcc.gnu.org>
20194
20195 PR target/67060
20196 * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
20197 Adjust splits to match new pattern.
20198
20199 2015-08-03 Michael Meissner <meissner@linux.vnet.ibm.com>
20200
20201 * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
20202 (VEC_M): Likewise.
20203 (VEC_N): Likewise.
20204 (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
20205 point in VSX registers.
20206
20207 * config/rs6000/constraints.md (wb constraint): Document unused
20208 w<x> constraint.
20209 (we constraint): Likewise.
20210 (wo constraint): Likewise.
20211 (wp constraint): New constraint for IEEE 128-bit floating point in
20212 VSX registers.
20213 (wq constraint): Likewise.
20214
20215 * config/rs6000/predicates.md (easy_fp_constant): Add support for
20216 IEEE 128-bit floating point in VSX registers.
20217 (easy_scalar_constant): Likewise.
20218
20219 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
20220 constraints (wp, wq) for IEEE 128-bit floating point in VSX
20221 registers.
20222 (rs6000_init_hard_regno_mode_ok): Likewise.
20223
20224 * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
20225 floating point in VSX registers.
20226 (VSX_L): Likewise.
20227 (VSX_M): Likewise.
20228 (VSX_M2): Likewise.
20229 (VSm): Likewise.
20230 (VSs): Likewise.
20231 (VSr): Likewise.
20232 (VSa): Likewise.
20233 (VSv): Likewise.
20234 (vsx_le_permute_<mode>): Add support to properly swap bytes for
20235 IEEE 128-bit floating point in VSX registers on little endian.
20236 (vsx_le_undo_permute_<mode>): Likewise.
20237 (vsx_le_perm_load_<mode>): Likewise.
20238 (vsx_le_perm_store_<mode>): Likewise.
20239 (splitters for IEEE 128-bit fp moves): Likewise.
20240
20241 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
20242 wq constraints.
20243
20244 * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
20245 floating point in VSX registers.
20246 (VM2): Likewise.
20247
20248 * doc/md.text (Machine Constraints): Document wp and wq
20249 constraints on PowerPC.
20250
20251 2015-08-03 Jeff Law <law@redhat.com>
20252
20253 PR middle-end/66314
20254 PR gcov-profile/66899
20255 * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
20256 iterate over the jump threading paths when an element in the
20257 jump threading paths array is eliminated.
20258
20259 2015-08-03 Segher Boessenkool <segher@kernel.crashing.org>
20260
20261 * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
20262
20263 2015-08-03 Patrick Palka <ppalka@gcc.gnu.org>
20264
20265 * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
20266 is_use_properly_guarded the variable def_preds. Free its
20267 contents before returning.
20268 (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
20269 (is_use_properly_guarded): Replace local variable def_preds with
20270 a parameter. Adjust accordingly. Only update *def_preds if it's
20271 the empty vector.
20272
20273 2015-08-03 Richard Biener <rguenther@suse.de>
20274
20275 * genmatch.c (simplify::for_subst_vec): New member.
20276 (binary_ok): New helper for for lowering.
20277 (lower_for): Delay substituting operators into result expressions
20278 if we can merge the results eventually again.
20279 (capture_info::walk_result): Adjust for user_id appearing as
20280 result expression operator.
20281 (expr::gen_transform): Likewise.
20282 (dt_simplify::gen_1): Likewise.
20283 (dt_simplify::gen): Pass not substituted operators to tail
20284 functions or initialize local variable with it.
20285 (decision_tree::gen): Adjust function signature.
20286 * match.pd: Fix tests against global code and add default
20287 cases to switch stmts.
20288
20289 2015-08-03 Richard Biener <rguenther@suse.de>
20290
20291 * genmatch.c (dt_simplify::gen): Create captures array
20292 with an initializer.
20293
20294 2015-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20295
20296 * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
20297 the host compiler is affected by placement new aliasing bug.
20298 * configure: Regenerate.
20299 * Makefile.in (ALIASING_FLAGS): New variable.
20300 (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
20301
20302 2015-08-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
20303
20304 PR target/66731
20305 * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
20306 (negmulsf3_vfp): Likewise.
20307 (muldf3negdf_vfp): Disable for -frounding-math.
20308 (mulsf3negsf_vfp): Likewise.
20309 * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
20310 fix MULT cost with -frounding-math.
20311
20312 2015-08-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20313
20314 * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
20315 when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
20316 explicit. Prefer to add the flag whenever possible.
20317 (noce_process_if_block): Try noce_try_store_flag_constants before
20318 noce_try_cmove.
20319
20320 2015-08-03 Richard Biener <rguenther@suse.de>
20321
20322 * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
20323 New hash-map to record equivalent transforms.
20324 (dt_node::analyze): Populate the equivalent transforms hash-map.
20325 (dt_simplify::info): Add reference to hash-map entry.
20326 (dt_simplify::gen): If we have split out a function for the
20327 transform, generate a call to it.
20328 (sinfo_hashmap_traits::hash): New function.
20329 (compare_op): New helper function for ...
20330 (sinfo_hashmap_traits::equal_keys): ... this new function.
20331 (decision_tree::gen): Split out common equivalent transforms
20332 into functions.
20333
20334 2015-08-03 Richard Biener <rguenther@suse.de>
20335
20336 * gimple-fold.c (fold_gimple_assign): Remove folding of
20337 the comparison in COND_EXPRs.
20338
20339 2015-08-03 Richard Biener <rguenther@suse.de>
20340
20341 * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
20342 on the rhs of assignments first simplify the embedded
20343 GENERIC condition.
20344
20345 2015-08-03 Richard Biener <rguenther@suse.de>
20346
20347 PR tree-optimization/66917
20348 * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
20349 field.
20350 (DR_VECT_AUX): New macro.
20351 (set_dr_misalignment): Adjust.
20352 (dr_misalignment): Likewise.
20353 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
20354 Compute whether the base is at least element aligned.
20355 * tree-vect-stmts.c (ensure_base_align): Adjust.
20356 (vectorizable_store): If the base is not element aligned
20357 preserve alignment of the original access if misalignment is unknown.
20358 (vectorizable_load): Likewise.
20359
20360 2015-08-02 Martin Sebor <msebor@redhat.com>
20361
20362 * doc/invoke.texi (Wframe-address): Document it.
20363 * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
20364 Clarify possible effects of calling the functions with non-zero
20365 arguments and mention -Wframe-address.
20366 * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
20367
20368 2015-08-01 Michael Collison <michael.collison@linaro.org
20369 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20370
20371 * config/arm/arm.md (*arm_smin_cmp): New pattern.
20372 (*arm_umin_cmp): Likewise.
20373
20374 2015-08-01 Caroline Tice <cmtice@google.com>
20375
20376 PR 66521
20377 * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
20378 global variables.
20379 (vtbl_find_mangled_name): New function.
20380 (vtbl_register_mangled_name): New function.
20381 (vtbl_map_get_node): If DECL_ASSEMBLER_NAME is "<anon>", look up
20382 mangled name in mangled name vectors.
20383 (find_or_create_vtbl_map_node): Ditto.
20384 (var_is_used_for_virtual_call_p): Add recursion_depth parameter;
20385 update recursion_depth on function entry; pass it to every recursive
20386 call; automatically exit if depth > 25 (give up looking at that point).
20387 (verify_bb_vtables): Initialize recursion_depth and pass it to
20388 var_is_used_for_virtual_call_p.
20389 * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
20390 global variable decls.
20391 (vtbl_register_mangled_name): New extern function decl.
20392
20393 2015-08-01 Tom de Vries <tom@codesourcery.com>
20394
20395 * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
20396 function.
20397 * tree.h (operation_can_overflow, operation_no_trapping_overflow):
20398 Declare.
20399 * tree-vect-loop.c (vect_is_simple_reduction_1): Use
20400 operation_no_trapping_overflow. Allow non-overflow operations.
20401 * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
20402 operations.
20403
20404 2015-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
20405
20406 PR target/67049
20407 * config/sh/sh.md (GOTaddr2picreg): Fix typo.
20408
20409 2015-07-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20410
20411 * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
20412 Enable for TARGET_32BIT.
20413 (*if_move_neg): Likewise.
20414
20415 2015-07-31 Nick Clifton <nickc@redhat.com>
20416
20417 * config/m32r/m32r.c (m32r_attribute_identifier): New function.
20418 Returns true for __model__.
20419 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
20420
20421 2015-07-31 Alan Modra <amodra@gmail.com>
20422
20423 PR target/66870
20424 * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
20425 (rs6000_emit_prologue): Set it.
20426 (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
20427
20428 2015-07-31 Richard Biener <rguenther@suse.de>
20429
20430 * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
20431 -> X == (C1 ^ C2) which is already implemented in match.pd.
20432 Remove redundant dispatching to fold_relational_const.
20433 Move unordered self and NaN compares ...
20434 * match.pd: ... as patterns here. Remove some stray captures
20435 and add a comment.
20436
20437 2015-07-31 Petr Murzin <petr.murzin@intel.com>
20438
20439 * config/i386/i386.c
20440 (bdesc_special_args): Convert mask type from signed to unsigned for
20441 masked builtins.
20442 (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
20443 UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
20444 V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
20445 V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
20446 V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
20447 V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
20448 V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
20449 V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
20450 V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
20451 HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
20452 V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
20453 V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
20454 V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
20455 V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
20456 V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
20457 V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
20458 V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
20459 V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
20460 V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
20461 V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
20462 V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
20463 HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
20464 VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
20465 V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
20466 * config/i386/i386-builtin-types.def
20467 (V16QI_FTYPE_V16SI): Remove.
20468 (V8DF_FTYPE_V8SI): Ditto.
20469 (V8HI_FTYPE_V8DI): Ditto.
20470 (V8SI_FTYPE_V8DI): Ditto.
20471 (V8SF_FTYPE_V8DF): Ditto.
20472 (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
20473 (V16HI_FTYPE_V16SI): Ditto.
20474 (V16SF_FTYPE_V16HI): Ditto.
20475 (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
20476 (V16SF_FTYPE_V16SI): Ditto.
20477 (V4DI_FTYPE_V4DI): Ditto.
20478 (V16SI_FTYPE_V16SF): Ditto.
20479 (V16SF_FTYPE_FLOAT): Ditto.
20480 (V8DF_FTYPE_DOUBLE): Ditto.
20481 (V8DI_FTYPE_INT64): Ditto.
20482 (V8DI_FTYPE_V4DI): Ditto.
20483 (V16QI_FTYPE_V8DI): Ditto.
20484 (UINT_FTYPE_V4SF): Ditto.
20485 (UINT64_FTYPE_V4SF): Ditto.
20486 (UINT_FTYPE_V2DF): Ditto.
20487 (UINT64_FTYPE_V2DF): Ditto.
20488 (V16SI_FTYPE_V16SI): Ditto.
20489 (V8DI_FTYPE_V8DI): Ditto.
20490 (V16SI_FTYPE_PV4SI): Ditto.
20491 (V16SF_FTYPE_PV4SF): Ditto.
20492 (V8DI_FTYPE_PV2DI): Ditto.
20493 (V8DF_FTYPE_PV2DF): Ditto.
20494 (V4DI_FTYPE_PV2DI): Ditto.
20495 (V4DF_FTYPE_PV2DF): Ditto.
20496 (V16SI_FTYPE_PV2SI): Ditto.
20497 (V16SF_FTYPE_PV2SF): Ditto.
20498 (V8DI_FTYPE_PV4DI): Ditto.
20499 (V8DF_FTYPE_PV4DF): Ditto.
20500 (V8SF_FTYPE_FLOAT): Ditto.
20501 (V4SF_FTYPE_FLOAT): Ditto.
20502 (V4DF_FTYPE_DOUBLE): Ditto.
20503 (V8SF_FTYPE_PV4SF): Ditto.
20504 (V8SI_FTYPE_PV4SI): Ditto.
20505 (V4SI_FTYPE_PV2SI): Ditto.
20506 (V8SF_FTYPE_PV2SF): Ditto.
20507 (V8SI_FTYPE_PV2SI): Ditto.
20508 (V16SF_FTYPE_PV8SF): Ditto.
20509 (V16SI_FTYPE_PV8SI): Ditto.
20510 (V8DI_FTYPE_V8SF): Ditto.
20511 (V4DI_FTYPE_V4SF): Ditto.
20512 (V2DI_FTYPE_V4SF): Ditto.
20513 (V64QI_FTYPE_QI): Ditto.
20514 (V32HI_FTYPE_HI): Ditto.
20515 (V8UHI_FTYPE_V8UHI): Ditto.
20516 (V16UHI_FTYPE_V16UHI): Ditto.
20517 (V32UHI_FTYPE_V32UHI): Ditto.
20518 (V2UDI_FTYPE_V2UDI): Ditto.
20519 (V4UDI_FTYPE_V4UDI): Ditto.
20520 (V8UDI_FTYPE_V8UDI): Ditto.
20521 (V4USI_FTYPE_V4USI): Ditto.
20522 (V8USI_FTYPE_V8USI): Ditto.
20523 (V16USI_FTYPE_V16USI): Ditto.
20524 (V2DF_FTYPE_V2DF_UINT64): Ditto.
20525 (V2DI_FTYPE_V2DF_V2DF): Ditto.
20526 (V2UDI_FTYPE_V4USI_V4USI): Ditto.
20527 (V8DF_FTYPE_V8DF_V8DI): Ditto.
20528 (V4SF_FTYPE_V4SF_UINT64): Ditto.
20529 (V4SI_FTYPE_V4SF_V4SF): Ditto.
20530 (V16SF_FTYPE_V16SF_V16SI): Ditto.
20531 (V64QI_FTYPE_V32HI_V32HI): Ditto.
20532 (V32HI_FTYPE_V16SI_V16SI): Ditto.
20533 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
20534 (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
20535 (V32HI_FTYPE_V64QI_V64QI): Ditto.
20536 (V32HI_FTYPE_V32HI_V32HI): Ditto.
20537 (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
20538 (V16SI_FTYPE_V16SI_V4SI): Ditto.
20539 (V16SI_FTYPE_V16SI_V16SI): Ditto.
20540 (V16SI_FTYPE_V32HI_V32HI): Ditto.
20541 (V16SI_FTYPE_V16SI_SI): Ditto.
20542 (V8DI_FTYPE_V8DI_V8DI): Ditto.
20543 (V4UDI_FTYPE_V8USI_V8USI): Ditto.
20544 (V8DI_FTYPE_V16SI_V16SI): Ditto.
20545 (V8DI_FTYPE_V8DI_V2DI): Ditto.
20546 (QI_FTYPE_QI): Ditto.
20547 (SI_FTYPE_SI): Ditto.
20548 (DI_FTYPE_DI): Ditto.
20549 (QI_FTYPE_QI_QI): Ditto.
20550 (QI_FTYPE_QI_INT): Ditto.
20551 (HI_FTYPE_HI_INT): Ditto.
20552 (SI_FTYPE_SI_INT): Ditto.
20553 (DI_FTYPE_DI_INT): Ditto.
20554 (HI_FTYPE_V16QI_V16QI): Ditto.
20555 (SI_FTYPE_V32QI_V32QI): Ditto.
20556 (DI_FTYPE_V64QI_V64QI): Ditto.
20557 (QI_FTYPE_V8HI_V8HI): Ditto.
20558 (HI_FTYPE_V16HI_V16HI): Ditto.
20559 (SI_FTYPE_V32HI_V32HI): Ditto.
20560 (QI_FTYPE_V4SI_V4SI): Ditto.
20561 (QI_FTYPE_V8SI_V8SI): Ditto.
20562 (QI_FTYPE_V2DI_V2DI): Ditto.
20563 (QI_FTYPE_V4DI_V4DI): Ditto.
20564 (QI_FTYPE_V8DI_V8DI): Ditto.
20565 (HI_FTYPE_V16SI_V16SI): Ditto.
20566 (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
20567 (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
20568 (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
20569 (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
20570 (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
20571 (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
20572 (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
20573 (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
20574 (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
20575 (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
20576 (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
20577 (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
20578 (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
20579 (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
20580 (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
20581 (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
20582 (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
20583 (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
20584 (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
20585 (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
20586 (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
20587 (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
20588 (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
20589 (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
20590 (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
20591 (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
20592 (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
20593 (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
20594 (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
20595 (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
20596 (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
20597 (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
20598 (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
20599 (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
20600 (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
20601 (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
20602 (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
20603 (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
20604 (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
20605 (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
20606 (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
20607 (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
20608 (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
20609 (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
20610 (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
20611 (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
20612 (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
20613 (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
20614 (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
20615 (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
20616 (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
20617 (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
20618 (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
20619 (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
20620 (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
20621 (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
20622 (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
20623 (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
20624 (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
20625 (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
20626 (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
20627 (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
20628 (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
20629 (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
20630 (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
20631 (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
20632 (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
20633 (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
20634 (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
20635 (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
20636 (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
20637 (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
20638 (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
20639 (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
20640 (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
20641 (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
20642 (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
20643 (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
20644 (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
20645 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
20646 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
20647 (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
20648 (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
20649 (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
20650 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
20651 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
20652 (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
20653 (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
20654 (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
20655 (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
20656 (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
20657 (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
20658 (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
20659 (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
20660 (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
20661 (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
20662 (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
20663 (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
20664 (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
20665 (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
20666 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
20667 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
20668 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
20669 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
20670 (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
20671 (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
20672 (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
20673 (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
20674 (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
20675 (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
20676 (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
20677 (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
20678 (HI_FTYPE_HI): Ditto.
20679 (HI_FTYPE_V16QI): Ditto.
20680 (SI_FTYPE_V32QI): Ditto.
20681 (DI_FTYPE_V64QI): Ditto.
20682 (QI_FTYPE_V8HI): Ditto.
20683 (HI_FTYPE_V16HI): Ditto.
20684 (SI_FTYPE_V32HI): Ditto.
20685 (QI_FTYPE_V4SI): Ditto.
20686 (QI_FTYPE_V8SI): Ditto.
20687 (HI_FTYPE_V16SI): Ditto.
20688 (QI_FTYPE_V2DI): Ditto.
20689 (QI_FTYPE_V4DI): Ditto.
20690 (QI_FTYPE_V8DI): Ditto.
20691 (V16QI_FTYPE_HI): Ditto.
20692 (V32QI_FTYPE_SI): Ditto.
20693 (V64QI_FTYPE_DI): Ditto.
20694 (V8HI_FTYPE_QI): Ditto.
20695 (V16HI_FTYPE_HI): Ditto.
20696 (V32HI_FTYPE_SI): Ditto.
20697 (V4SI_FTYPE_QI): Ditto.
20698 (V4SI_FTYPE_HI): Ditto.
20699 (V8SI_FTYPE_QI): Ditto.
20700 (V8SI_FTYPE_HI): Ditto.
20701 (V2DI_FTYPE_QI): Ditto.
20702 (V4DI_FTYPE_QI): Ditto.
20703 (HI_FTYPE_HI_HI): Ditto.
20704 (SI_FTYPE_SI_SI): Ditto.
20705 (DI_FTYPE_DI_DI): Ditto.
20706 (HI_FTYPE_V16QI_V16QI_HI): Ditto.
20707 (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
20708 (SI_FTYPE_V32QI_V32QI_SI): Ditto.
20709 (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
20710 (DI_FTYPE_V64QI_V64QI_DI): Ditto.
20711 (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
20712 (QI_FTYPE_V8HI_V8HI_QI): Ditto.
20713 (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
20714 (HI_FTYPE_V16HI_V16HI_HI): Ditto.
20715 (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
20716 (SI_FTYPE_V32HI_V32HI_SI): Ditto.
20717 (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
20718 (QI_FTYPE_V4SI_V4SI_QI): Ditto.
20719 (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
20720 (QI_FTYPE_V8SI_V8SI_QI): Ditto.
20721 (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
20722 (QI_FTYPE_V2DI_V2DI_QI): Ditto.
20723 (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
20724 (QI_FTYPE_V4DI_V4DI_QI): Ditto.
20725 (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
20726 (QI_FTYPE_V8DI_V8DI_QI): Ditto.
20727 (HI_FTYPE_V16SI_V16SI_HI): Ditto.
20728 (QI_FTYPE_V8DI_V8DI_INT): Ditto.
20729 (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
20730 (HI_FTYPE_V16SI_V16SI_INT): Ditto.
20731 (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
20732 (QI_FTYPE_V8DF_V8DF_INT): Ditto.
20733 (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
20734 (HI_FTYPE_V16SF_V16SF_INT): Ditto.
20735 (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
20736 (QI_FTYPE_V2DF_V2DF_INT): Ditto.
20737 (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
20738 (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
20739 (QI_FTYPE_V4SF_V4SF_INT): Ditto.
20740 (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
20741 (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
20742 (V16SI_FTYPE_HI): Ditto.
20743 (V8DI_FTYPE_QI): Ditto.
20744 (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
20745 (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
20746 (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
20747 (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
20748 (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
20749 (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
20750 (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
20751 (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
20752 (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
20753 (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
20754 (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
20755 (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
20756 (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
20757 (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
20758 (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
20759 (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
20760 (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
20761 (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
20762 (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
20763 (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
20764 (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
20765 (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
20766 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
20767 (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
20768 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
20769 (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
20770 (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
20771 (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
20772 (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
20773 (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
20774 (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
20775 (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
20776 (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
20777 (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
20778 (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
20779 (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
20780 (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
20781 (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
20782 (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
20783 (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
20784 (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
20785 (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
20786 (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
20787 (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
20788 (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
20789 (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
20790 (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
20791 (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
20792 (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
20793 (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
20794 (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
20795 (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
20796 (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
20797 (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
20798 (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
20799 (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
20800 (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
20801 (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
20802 (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
20803 (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
20804 (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
20805 (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
20806 (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
20807 (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
20808 (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
20809 (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
20810 (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
20811 (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
20812 (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
20813 (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
20814 (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
20815 (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
20816 (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
20817 (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
20818 (V16SI_FTYPE_SI_V16SI_HI): Ditto.
20819 (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
20820 (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
20821 (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
20822 (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
20823 (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
20824 (V8DI_FTYPE_DI_V8DI_QI): Ditto.
20825 (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
20826 (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
20827 (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
20828 (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
20829 (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
20830 (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
20831 (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
20832 (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
20833 (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
20834 (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
20835 (V8SI_FTYPE_SI_V8SI_QI): Ditto.
20836 (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
20837 (V4SI_FTYPE_SI_V4SI_QI): Ditto.
20838 (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
20839 (V4DI_FTYPE_DI_V4DI_QI): Ditto.
20840 (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
20841 (V2DI_FTYPE_DI_V2DI_QI): Ditto.
20842 (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
20843 (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
20844 (V64QI_FTYPE_QI_V64QI_DI): Ditto.
20845 (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
20846 (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
20847 (V32QI_FTYPE_QI_V32QI_SI): Ditto.
20848 (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
20849 (V16QI_FTYPE_QI_V16QI_HI): Ditto.
20850 (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
20851 (V32HI_FTYPE_HI_V32HI_SI): Ditto.
20852 (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
20853 (V16HI_FTYPE_HI_V16HI_HI): Ditto.
20854 (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
20855 (V8HI_FTYPE_HI_V8HI_QI): Ditto.
20856 (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
20857 (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
20858 (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
20859 (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
20860 (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
20861 (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
20862 (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
20863 (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
20864 (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
20865 (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
20866 (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
20867 (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
20868 (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
20869 (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
20870 (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
20871 (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
20872 (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
20873 (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
20874 (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
20875 (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
20876 (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
20877 (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
20878 (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
20879 (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
20880 (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
20881 (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
20882 (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
20883 (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
20884 (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
20885 (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
20886 (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
20887 (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
20888 (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
20889 (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
20890 (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
20891 (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
20892 (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
20893 (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
20894 (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
20895 (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
20896 (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
20897 (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
20898 (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
20899 (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
20900 (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
20901 (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
20902 (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
20903 (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
20904 (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
20905 (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
20906 (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
20907 (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
20908 (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
20909 (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
20910 (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
20911 (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
20912 (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
20913 (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
20914 (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
20915 (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
20916 (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
20917 (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
20918 (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
20919 (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
20920 (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
20921 (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
20922 (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
20923 (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
20924 (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
20925 (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
20926 (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
20927 (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
20928 (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
20929 (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
20930 (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
20931 (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
20932 (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
20933 (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
20934 (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
20935 (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
20936 (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
20937 (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
20938 (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
20939 (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
20940 (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
20941 (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
20942 (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
20943 (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
20944 (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
20945 (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
20946 (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
20947 (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
20948 (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
20949 (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
20950 (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
20951 (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
20952 (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
20953 (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
20954 (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
20955 (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
20956 (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
20957 (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
20958 (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
20959 (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
20960 (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
20961 (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
20962 (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
20963 (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
20964 (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
20965 (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
20966 (QI_FTYPE_V8DF_INT_QI): Ditto.
20967 (QI_FTYPE_V4DF_INT_QI): Ditto.
20968 (QI_FTYPE_V2DF_INT_QI): Ditto.
20969 (HI_FTYPE_V16SF_INT_HI): Ditto.
20970 (QI_FTYPE_V8SF_INT_QI): Ditto.
20971 (QI_FTYPE_V4SF_INT_QI): Ditto.
20972 (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
20973
20974 2015-07-31 Richard Biener <rguenther@suse.de>
20975
20976 * gimple-fold.c (fold_gimple_assign): Remove folding of
20977 GIMPLE_BINARY_RHS.
20978
20979 2015-07-31 Tom de Vries <tom@codesourcery.com>
20980
20981 PR tree-optimization/66846
20982 * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
20983 verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
20984 (expand_omp_target) [ENABLE_CHECKING]: Same.
20985 (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
20986 cfun if !LOOPS_NEED_FIXUP.
20987 (expand_omp_for_static_nochunk): Handle simple latch bb. Handle case
20988 that omp_for already has its own loop struct.
20989 * tree-parloops.c (create_phi_for_local_result)
20990 (create_call_for_reduction): Handle simple latch bb.
20991 (create_parallel_loop): Add simple latch bb to preserve
20992 LOOPS_HAVE_SIMPLE_LATCHES. Record new exit. Handle simple latch bb.
20993 (gen_parallel_loop): Remove call to cancel_loop_tree.
20994 (parallelize_loops): Skip loops that are inner loops of parallelized
20995 loops.
20996 (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
20997 verify_loop_structure.
20998
20999 2015-07-30 Anatoly Sokolov <aesok@post.ru>
21000
21001 * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
21002 * config/v850/v850.md (RV_REGNUM): New constants.
21003 * config/v850/v850.c (v850_libcall_value): New functions.
21004 (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
21005 (TARGET_LIBCALL_VALUE): Define.
21006
21007 2015-07-30 Anatoly Sokolov <aesok@post.ru>
21008
21009 * rtl.h (lowpart_subreg): Move in file.
21010 * loop-iv.c (lowpart_subreg): Move to...
21011 * simplify-rtx.c (lowpart_subreg): ...here.
21012 (simplify_binary_operation_1): Use lowpart_subreg instead of
21013 simplify_gen_subreg.
21014 * expr.c (expand_expr_real_2): Ditto.
21015 * emit-rtl.c (gen_lowpart_common): Ditto.
21016 * combine.c (gen_lowpart_for_combine): Ditto.
21017 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
21018 expand_debug_source_expr): Ditto.
21019
21020 2015-07-30 Richard Sandiford <richard.sandiford@arm.com>
21021
21022 * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
21023 (expand_builtin_atomic_clear): Remove support for atomic_clear
21024 pattern.
21025
21026 2015-07-30 Richard Biener <rguenther@suse.de>
21027
21028 * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
21029 binaries. Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
21030 (fold_stmt_1): ... here and work on GIMPLE directly. Remove
21031 redundant operand canonicalization.
21032
21033 2015-07-30 David Sherwood <david.sherwood@arm.com>
21034
21035 * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
21036 GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
21037 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
21038 * config/arm/arm.c (neon_valid_immediate): Likewise.
21039 * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
21040 (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
21041 (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
21042 (expand_vec_perm_vpshufb2_vpermq): Likewise.
21043 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
21044 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
21045 * config/i386/sse.md
21046 (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
21047 (*ssse3_palignr<mode>_perm): Likewise.
21048 * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
21049 * config/spu/spu.c (arith_immediate_p): Likewise.
21050 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
21051 (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
21052
21053 2015-07-30 Richard Biener <rguenther@suse.de>
21054
21055 * genmatch.c (decision_tree::gen_gimple): Merge with ...
21056 (decision_tree::gen_generic): ... this into ...
21057 (decision_tree::gen): ... this.
21058 (main): Adjust callers.
21059
21060 2015-07-30 Richard Biener <rguenther@suse.de>
21061
21062 * genmatch.c (verbose): New global.
21063 (warning_at): Add overload with source_location.
21064 (capture_info::capture_info): Add bool whether generating gimple
21065 or generic. Add gimple member.
21066 (capture_info::cinfo): Add capture member.
21067 (capture_info::walk_match): Record capture. Warn on
21068 non-captured leafs.
21069 (capture_info::walk_c_expr): Add more fragments captures cannot
21070 escape through. Warn on escaped captures.
21071 (dt_simplify::gen_1): Warn on operands we force to have no
21072 side-effects.
21073 (main): Initialize verbose.
21074 * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
21075
21076 2015-07-30 Richard Biener <rguenther@suse.de>
21077
21078 PR middle-end/67053
21079 * match.pd: Allow both operands to independently have conversion
21080 when simplifying compares of addresses.
21081
21082 2015-07-29 Segher Boessenkool <segher@kernel.crashing.org>
21083
21084 PR target/66217
21085 PR target/67045
21086 * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
21087 around those cases that need one.
21088
21089 2015-07-29 Aditya Kumar <hiraditya@msn.com>
21090
21091 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
21092
21093 2015-07-29 H.J. Lu <hongjiu.lu@intel.com>
21094
21095 * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
21096 New. Copied from config/i386/gnu-user.h.
21097 (ASM_COMMENT_START): Likewise.
21098 (DBX_REGISTER_NUMBER): Likewise.
21099
21100 2015-07-29 Richard Biener <rguenther@suse.de>
21101
21102 * gimple-fold.c (fold_gimple_cond): Remove.
21103 (fold_stmt_1): Do not call it.
21104
21105 2015-07-29 Alan Lawrence <alan.lawrence@arm.com>
21106
21107 * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
21108 (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
21109
21110 * config/aarch64/aarch64-modes.def: Add HFmode.
21111
21112 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
21113 __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
21114
21115 * config/aarch64/aarch64.c (aarch64_init_libfuncs,
21116 aarch64_promoted_type): New.
21117
21118 (aarch64_float_const_representable_p): Disable HFmode.
21119 (aarch64_mangle_type): Mangle half-precision floats to "Dh".
21120 (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
21121 (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
21122
21123 * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
21124 (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
21125
21126 * config/aarch64/iterators.md (GPF_F16): New.
21127
21128 2015-07-29 Richard Biener <rguenther@suse.de>
21129
21130 * match.pd: Merge address comparison patterns and make them
21131 handle some more cases.
21132
21133 2015-07-29 Richard Biener <rguenther@suse.de>
21134
21135 * genmatch.c (c_expr::gen_transform): Error on unknown captures.
21136 (parser::parse_capture): Add bool argument on whether to reject
21137 unknown captures.
21138 (parser::parse_expr): Adjust.
21139 (parser::parse_op): Likewise.
21140 (parser::parse_pattern): Likewise.
21141
21142 2015-07-29 Richard Biener <rguenther@suse.de>
21143
21144 * gimple-fold.c (has_use_on_stmt): New function.
21145 (replace_stmt_with_simplification): Use it to allow
21146 abnormals originally referenced in the stmt.
21147 (fold_stmt_1): Canonicalize operand order.
21148
21149 2015-07-28 David Sherwood <david.sherwood@arm.com>
21150
21151 * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
21152 GET_MODE_INNER unconditionally.
21153 * config/spu/spu.c (arith_immediate_p): Likewise.
21154 * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
21155 * expmed.c (synth_mult): Remove check for VOIDmode result from
21156 GET_MODE_INNER.
21157 (expand_mult_const): Likewise.
21158 * fold-const.c (fold_binary_loc): Replace call to element_precision
21159 with call to GET_MODE_PRECISION.
21160 * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
21161 m->name.
21162 (emit_mode_inner): Likewise.
21163 * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
21164 result check.
21165 * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
21166 (GET_MODE_UNIT_PRECISION): Likewise.
21167 * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
21168 * simplify-rtx.c (simplify_immed_subreg): Likewise.
21169 * stor-layout.c (bitwise_type_for_mode): Update assert.
21170 (element_precision): Remove.
21171
21172 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
21173
21174 * target-insns.def (reload_load_address): New targetm instruction
21175 pattern.
21176 * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
21177
21178 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
21179
21180 * target-insns.def (atomic_test_and_set): New targetm instruction
21181 pattern.
21182 * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
21183 HAVE_*/gen_* interface.
21184
21185 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
21186
21187 * target-insns.def (can_extend, ptr_extend): New targetm instruction
21188 patterns.
21189 * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
21190 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
21191 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
21192 * rtlanal.c (nonzero_bits1): Likewise.
21193 (num_sign_bit_copies1): Likewise.
21194
21195 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
21196
21197 * target-insns.def (eh_return): New targetm instruction pattern.
21198 * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
21199 interface.
21200 * function.c (thread_prologue_and_epilogue_insns): Remove
21201 preprocessor condition.
21202
21203 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
21204
21205 * target-insns.def (indirect_jump): New targetm instruction pattern.
21206 * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
21207 interface.
21208
21209 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
21210
21211 * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
21212 instead of nonimmediate_operand. Remove C condiition.
21213
21214 2015-07-28 Richard Biener <rguenther@suse.de>
21215
21216 * match.pd: Add more simplification of address comparisons.
21217
21218 2015-07-28 Richard Biener <rguenther@suse.de>
21219
21220 * match.pd: Re-order two cases in comparison with max/min
21221 value simplification to make it apply for bools.
21222
21223 2015-07-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21224
21225 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
21226 Handle simple SIGN_EXTEND or ZERO_EXTEND.
21227 (aarch64_rtx_costs): Properly strip extend or extract before
21228 passing down to rtx costs again.
21229
21230 2015-07-28 Nick Clifton <nickc@redhat.com>
21231
21232 * config/rl78/rl78.c (rl78_addsi3_internal): New function.
21233 Optimizes the case where -mes0 is active and a constant symbolic
21234 address is used.
21235 * config/rl78/rl78-protos.h: Prototype the new function.
21236 * config/rl78/rl78.md (addsi3_internal_real): Call new function.
21237
21238 2015-07-28 Tom de Vries <tom@codesourcery.com>
21239
21240 * tree-parloops.c (reduc_stmt_res): New function.
21241 (initialize_reductions, add_field_for_reduction)
21242 (create_phi_for_local_result, create_loads_for_reductions)
21243 (create_stores_for_reduction, build_new_reduction): Handle case that
21244 reduc_stmt is a phi.
21245 (gather_scalar_reductions): Allow double_reduc reductions.
21246
21247 2015-07-28 Richard Biener <rguenther@suse.de>
21248
21249 * fold-const.c (fold_comparison): Remove equality folding
21250 of decl addresses ...
21251 * match.pd: ... here and merge with existing pattern.
21252
21253 2015-07-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
21254
21255 PR tree-optimization/66828
21256 * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
21257 from int64_t to uint64_t.
21258
21259 2015-07-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
21260
21261 * opts-common.c (read_cmdline_option): List DriverOnly enum values
21262 as valid only in the error message of the driver, not in the
21263 messages of the language compilers.
21264
21265 2015-07-27 Tom de Vries <tom@codesourcery.com>
21266
21267 * tree-parloops.c (gather_scalar_reductions): Simplify function
21268 structure.
21269
21270 2015-07-27 Marek Polacek <polacek@redhat.com>
21271
21272 * ipa-devirt.c (types_same_for_odr): Fix typo.
21273
21274 2015-07-27 Jason Merrill <jason@redhat.com>
21275
21276 PR debug/66468
21277 * dwarf2out.c (gen_inlined_subroutine_die): Check
21278 cgraph_function_possibly_inlined_p.
21279
21280 2015-07-27 Wilco Dijkstra <wdijkstr@arm.com>
21281
21282 * config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
21283 Place integer variant first.
21284 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
21285
21286 2015-07-27 Alan Lawrence <alan.lawrence@arm.com>
21287
21288 PR/63870
21289 * config/arm/arm-builtins.c (enum arm_builtins):
21290 Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
21291 (ARM_BUILTIN_NEON_BASE): Rename macro to....
21292 (ARM_BUILTIN_NEON_PATTERN_START): ...this.
21293 (arm_init_neon_builtins): Register __builtin_arm_lane_check.
21294 (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
21295
21296 2015-07-27 Alan Lawrence <alan.lawrence@arm.com>
21297
21298 PR/63870
21299 * config/arm/arm-builtins.c (enum arm_type_qualifiers):
21300 Add qualifier_lane_index.
21301 (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
21302 (arm_getlane_qualifiers): Use qualifier_lane_index.
21303 (arm_lanemac_qualifiers): Rename to...
21304 (arm_mac_n_qualifiers): ...this.
21305 (LANEMAC_QUALIFIERS): Rename to...
21306 (MAC_N_QUALIFIERS): ...this.
21307 (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
21308 (arm_setlane_qualifiers): Use qualifier_lane_index.
21309 (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
21310 (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
21311 (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
21312 (arm_expand_neon_builtin): Handle qualifier_lane_index.
21313
21314 * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
21315 * config/arm/arm.c (bounds_check): Likewise, improve error message.
21316 (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
21317 * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
21318 vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
21319 vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
21320 vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
21321 (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
21322 qualifiers to TERNOP_IMM.
21323 (vdup_lane): Change qualifiers to GETLANE.
21324 (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
21325 vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
21326 (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
21327 vqdmlsl_n): Change qualifiers to MAC_N.
21328
21329 * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
21330 neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
21331 neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
21332 neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
21333 neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
21334 neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
21335 neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
21336 neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
21337 neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
21338 Remove call to neon_lane_bounds.
21339
21340 2015-07-27 Wilco Dijkstra <wdijkstr@arm.com>
21341
21342 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
21343 Place integer variant first.
21344
21345 2015-07-27 Matthew Wahab <matthew.wahab@arm.com>
21346
21347 * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
21348 and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
21349 * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
21350 for armv6kz targets.
21351 * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
21352 * config/arm/arm-protos.h (FL_ARCH6KZ): New.
21353 (FL_FOR_ARCH6ZK): Remove.
21354 (FL_FOR_ARCH6KZ): New.
21355 (arm_arch6zk): New declaration.
21356 * config/arm/arm-tables.opt: Regenerate.
21357 * config/arm/arm.c (arm_arch6kz): New.
21358 (arm_option_override): Set arm_arch6kz.
21359 * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
21360 * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
21361 * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
21362
21363 2015-07-27 Marek Polacek <polacek@redhat.com>
21364
21365 PR c++/66555
21366 PR c/54979
21367 * doc/invoke.texi: Document -Wtautological-compare.
21368
21369 2015-07-27 Richard Biener <rguenther@suse.de>
21370
21371 * genmatch.c (decision_tree::gen_gimple): Split out large
21372 subtrees into separate functions.
21373 (decision_tree::gen_generic): Likewise.
21374
21375 2015-07-26 Uros Bizjak <ubizjak@gmail.com>
21376
21377 * config/alpha/alpha.c: Use SUBREG_P predicate.
21378 * config/alpha/predicates.md: Ditto.
21379
21380 2015-07-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
21381
21382 * config.host (s390*-*-*): Include driver-native.c only when
21383 building with s390* as host *and* target.
21384
21385 2015-07-25 Oleg Endo <olegendo@gcc.gnu.org>
21386
21387 PR target/66930
21388 * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
21389 T bit register modified_between_p check.
21390
21391 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
21392
21393 * config/i386/i386.c: Use SUBREG_P predicate.
21394 * config/i386/i386.md: Ditto.
21395 * config/i386/sse.md: Ditto.
21396 * config/i386/predicates.md: Ditto.
21397
21398 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
21399
21400 PR target/67004
21401 * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
21402 predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
21403
21404 2015-07-25 Sebastian Pop <s.pop@samsung.com>
21405
21406 * Makefile.in: Remove use of TREEBROWSER.
21407 * config.in: Regenerated.
21408 * configure: Regenerated.
21409 * configure.ac: Remove definition of TREEBROWSER.
21410 * tree-browser.c: Removed.
21411 * tree-browser.def: Removed.
21412
21413 2015-07-25 Sebastian Pop <s.pop@samsung.com>
21414
21415 * graphite-scop-detection.c: Include gimple-pretty-print.h.
21416 (stmt_simple_for_scop_p): Print when a stmt is not handled in
21417 Graphite.
21418 (scopdet_basic_block_info): Print when a loop or bb cannot be
21419 represented in Graphite.
21420
21421 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
21422
21423 PR target/66648
21424 * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
21425 execution guard when min_size is less than size_needed.
21426
21427 2015-07-25 Sebastian Pop <s.pop@samsung.com>
21428
21429 * doc/install.texi: Document supported versions of ISL.
21430
21431 2015-07-25 Jeff Law <law@redhat.com>
21432
21433 Revert:
21434 PR lto/66752
21435 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
21436 unable to find X NE 0 in the tables, return X as the simplified
21437 condition.
21438 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
21439 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
21440 to VISISTED_BBS. */
21441 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
21442 after removing the control flow statement and unnecessary edges.
21443
21444 2015-07-25 David Edelsohn <dje.gcc@gmail.com>
21445
21446 Revert:
21447 2015-07-23 Alexandre Oliva <aoliva@redhat.com>
21448
21449 PR rtl-optimization/64164
21450 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
21451 * tree-ssa-copyrename.c: Removed.
21452 * opts.c (default_options_table): Drop -ftree-copyrename. Add
21453 -ftree-coalesce-vars.
21454 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
21455 * common.opt (ftree-copyrename): Ignore.
21456 (ftree-coalesce-inlined-vars): Likewise.
21457 * doc/invoke.texi: Remove the ignored options above.
21458 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
21459 * tree-ssa-coalesce.h: ... here.
21460 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
21461 headers required by it.
21462 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
21463 across variables when flag_tree_coalesce_vars. Check register
21464 use and promoted modes to allow coalescing. Moved to
21465 tree-ssa-coalesce.c.
21466 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
21467 with its member functions to tree-ssa-coalesce.c.
21468 (var_map_base_init): Likewise. Renamed to
21469 compute_samebase_partition_bases.
21470 (partition_view_normal): Drop want_bases parameter.
21471 (partition_view_bitmap): Likewise.
21472 * tree-ssa-live.h: Adjust declarations.
21473 * tree-ssa-coalesce.c: Include explow.h.
21474 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
21475 default defs at the entry point.
21476 (dump_part_var_map): New.
21477 (compute_optimized_partition_bases): New, called by...
21478 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
21479 of compute_samebase_partition_bases. Adjust.
21480 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
21481 * cfgexpand.c (leader_merge): New.
21482 (get_rtl_for_parm_ssa_default_def): New.
21483 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
21484 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
21485 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
21486 redundant MEM attr setting.
21487 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
21488 from...
21489 (expand_one_stack_var): ... this. New wrapper to check and
21490 skip already expanded SSA partitions.
21491 (record_alignment_for_reg_var): New, factored out of...
21492 (expand_one_var): ... this.
21493 (expand_one_ssa_partition): New.
21494 (adjust_one_expanded_partition_var): New.
21495 (expand_one_register_var): Check and skip already expanded SSA
21496 partitions.
21497 (expand_used_vars): Don't create DECLs for anonymous SSA
21498 names. Expand all SSA partitions, then adjust all SSA names.
21499 (pass::execute): Replace the loops that set
21500 SA.partition_to_pseudo from partition leaders and cleared
21501 DECL_RTL for multi-location variables, and that which used to
21502 rename vars and set attrs, with one that clears DECL_RTL and
21503 checks that PARMs and RESULTs default_defs match DECL_RTL.
21504 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
21505 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
21506 * explow.c (promote_ssa_mode): New.
21507 * explow.h (promote_ssa_mode): Declare.
21508 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
21509 * function.c: Include cfgexpand.h.
21510 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
21511 (use_register_for_parm_decl): Wrapper for the above to
21512 special-case the result_ptr.
21513 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
21514 (split_complex_args): Take assign_parm_data_all argument.
21515 Pass it to rtl_for_parm. Set up rtl and context for split
21516 args.
21517 (assign_parms_augmented_arg_list): Adjust.
21518 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
21519 multiple locations. Recognize split complex args.
21520 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
21521 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
21522 (assign_parm_setup_block): Prefer SSA-assigned location.
21523 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
21524 if stack_parm is NULL.
21525 (assign_parm_setup_stack): Prefer SSA-assigned location.
21526 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
21527 rtl before testing for pointer bounds. Special-case result_ptr.
21528 (expand_function_start): Maybe reset DECL_RTL of result.
21529 Prefer SSA-assigned location for result and static chain.
21530 Factor out DECL_RESULT and SET_DECL_RTL.
21531 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
21532 anonymous SSA names. Use promote_ssa_mode.
21533 (get_temp_reg): Likewise.
21534 (remove_ssa_form): Adjust.
21535 * stor-layout.c (layout_decl): Don't set mem attributes of
21536 non-MEMs.
21537 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
21538 and get its reg_usage for reg invalidation.
21539 (compute_bb_dataflow): Pass it insn.
21540 (emit_notes_in_bb): Likewise.
21541
21542 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
21543
21544 * config/i386/i386.c (ix86_va_start): Remove
21545 unneeded !TARGET_64BIT check.
21546 (ix86_gimplify_va_arg): Ditto.
21547
21548 2015-07-24 Tom de Vries <tom@codesourcery.com>
21549
21550 * graphite-sese-to-poly.c (build_poly_scop): Always call
21551 rewrite_commutative_reductions_out_of_ssa.
21552
21553 2015-07-24 Tom de Vries <tom@codesourcery.com>
21554
21555 * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
21556 flag_associative_math to FLOAT_TYPE_P. Honour
21557 TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
21558
21559 2015-07-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
21560
21561 PR c++/64079
21562 * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
21563 and "%qD" in warning_at instead of "%q+D" in warning.
21564
21565 2015-07-24 Uros Bizjak <ubizjak@gmail.com>
21566
21567 * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
21568 (ix86_function_abi): Cleanup.
21569
21570 2015-07-24 Michael Darling <darlingm@gmail.com>
21571
21572 PR other/66259
21573 * acinclude.m4: Reflects renaming of configure.in to configure.ac
21574 * configure: Likewise
21575 * configure.ac: Likewise
21576 * doc/install.texi: Likewise
21577 * doc/tm.texi: Likewise
21578 * doc/tm.texi.in: Likewise
21579
21580 2015-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21581
21582 * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
21583 manually swapping values.
21584 * cse.c (fold_rtx): Likewise.
21585 * lra-eliminations.c (form_sum): Likewise.
21586
21587 2015-07-24 Uros Bizjak <ubizjak@gmail.com>
21588
21589 PR target/64003
21590 * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
21591 * config/i386/i386.md (maybe_prefix_bnd): New attribute.
21592 (*jcc_1, *jcc_2, jump, simple_return_internal)
21593 (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
21594 Set length_nobnd attribute instead of length attribute.
21595 (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
21596 (length_nobnd): Remove attribute.
21597 (length): Remove length_nobnd processing.
21598
21599 2015-07-24 Nathan Sidwell <nathan@codesourcery.com>
21600
21601 * gimplify.c (omp_default_clause): New function. Reorganize flow
21602 for clarity. Broken out of ...
21603 (omp_notice_variable): ... here.
21604
21605 2015-07-24 Gary Funck <gary@intrepid.com>
21606
21607 PR middle-end/66984
21608 * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
21609 fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
21610
21611 2015-07-24 Tom de Vries <tom@codesourcery.com>
21612
21613 * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
21614 exit-first loop transform.
21615
21616 2015-07-24 Cesar Philippidis <cesar@codesourcery.com>
21617
21618 PR 66714
21619 * tree-cfg.c (struct replace_decls_d): New struct.
21620 (replace_block_vars_by_duplicates_1): New function.
21621 (replace_block_vars_by_duplicates): Use it to replace the decls
21622 in the value exprs by duplicates.
21623
21624 2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
21625
21626 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
21627 -shared, -symbolic, -rdynamic.
21628
21629 2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
21630
21631 PR target/65711
21632 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
21633 -dynamic-linker within %{!static %{!shared, and -rdynamic within
21634 %{!static.
21635
21636 2015-07-24 Ilya Enkovich <enkovich.gnu@gmail.com>
21637
21638 PR ipa/66566
21639 * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
21640 edge summary is available.
21641
21642 2015-07-24 Richard Biener <rguenther@suse.de>
21643
21644 * genmatch.c (struct dt_node): Add statistic fields.
21645 (dt_node::analyze): New method.
21646 (decision_tree::gen_gimple): Call analyze on the root node
21647 and print statistics to stderr.
21648 (decision_tree::gen_generic): Likewise.
21649
21650 2015-07-24 Richard Biener <rguenther@suse.de>
21651
21652 * fold-const.c (fold_binary_loc): Move simplifying of comparisons
21653 against the highest or lowest possible integer ...
21654 * match.pd: ... as patterns here.
21655
21656 2015-07-24 Richard Biener <rguenther@suse.de>
21657
21658 * genmatch.c (struct capture_info): Add same_as field.
21659 (capture_info::capture_info): Initialize same_as.
21660 (capture_info::walk_match): Compute same_as.
21661 (capture_info::walk_result): Compute stuff for the leader.
21662 (capture_info::walk_c_expr): Likewise.
21663 (dt_simplify::gen_1): Only look at leaders when deciding
21664 to force no side-effects or emit side-effects of omitted operands.
21665
21666 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21667
21668 * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
21669 reg note to the GPR -> FPR save instructions.
21670
21671 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21672
21673 * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
21674 cheaper.
21675 (s390_expand_insv): Don't generate risbg pattern for constant zero
21676 sources.
21677 * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
21678 ("*insv<mode>_z10_appendbitsleft"): New pattern definitions. New
21679 splitters.
21680
21681 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
21682
21683 * config/s390/s390.c (s390_reorg): Clean up handling of processors
21684 with
21685 -mtune=
21686 (s390_issue_rate): Likewise.
21687 (s390_sched_reorder): Likewise.
21688 (s390_sched_variable_issue): Likewise.
21689 (s390_loop_unroll_adjust): Likewise.
21690 (s390_option_override): Likewise.
21691
21692 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
21693
21694 * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
21695 processor capabilities with -march=native.
21696 * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
21697 (DRIVER_SELF_SPECS): Likewise. Join specs for 31 and 64 bit.
21698 (S390_TARGET_BITS_STRING): Macro to simplify specs.
21699
21700 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
21701
21702 * config/s390/s390.c (s390_issue_rate): Handle
21703 PROCESSOR_2094_Z9_EC.
21704 (s390_option_override): Likewise.
21705 (s390_adjust_priority): Likewise.
21706
21707 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
21708
21709 * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
21710 when cross compiling.
21711
21712 2015-07-24 Richard Biener <rguenther@suse.de>
21713
21714 * fold-const.c (maybe_canonicalize_comparison_1): Move
21715 A code CST canonicalization ...
21716 * match.pd: ... to a pattern here.
21717
21718 2015-07-24 Jiong Wang <jiong.wang@arm.com>
21719
21720 Revert:
21721 2015-07-22 Jiong Wang <jiong.wang@arm.com>
21722 PR target/63521
21723 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
21724 (HONOR_REG_ALLOC_ORDER): Define.
21725
21726 2015-07-24 Richard Biener <rguenther@suse.de>
21727
21728 * genmatch.c (add_operator): Allow SSA_NAME as predicate.
21729 * fold-const.c (fold_comparison): Move parameter does not
21730 alias &local simplification ...
21731 * match.pd: ... as a pattern here.
21732
21733 2015-07-24 Richard Biener <rguenther@suse.de>
21734
21735 * gimple-fold.c (replace_stmt_with_simplification): Special-case
21736 valueizing call operands.
21737 * gimple-match-head.c (maybe_push_res_to_seq): Take
21738 number of call arguments from ops array.
21739 (do_valueize): New function.
21740 (gimple_simplify): Return true if valueization changed
21741 any operand even if the result didn't simplify further.
21742
21743 2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
21744
21745 PR middle-end/25530
21746 * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
21747
21748 2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
21749
21750 PR middle-end/25529
21751 * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
21752
21753 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
21754
21755 * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
21756 instruction.
21757
21758 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
21759
21760 * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
21761 clean up.
21762
21763 2015-07-23 Uros Bizjak <ubizjak@gmail.com>
21764
21765 * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
21766 from ix86_build_builtin_va_list_abi. Handle only 64bit non-MS_ABI
21767 targets here.
21768 (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
21769 ms_va_list_type_node initialization.
21770
21771 2015-07-23 Jeff Law <law@redhat.com>
21772
21773 PR lto/66752
21774 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
21775 unable to find X NE 0 in the tables, return X as the simplified
21776 condition.
21777 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
21778 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
21779 to VISISTED_BBS. */
21780 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
21781 after removing the control flow statement and unnecessary edges.
21782
21783 2015-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
21784
21785 * tree-pass.h (get_current_pass_name): Removed.
21786
21787 2015-07-23 Alexandre Oliva <aoliva@redhat.com>
21788
21789 PR rtl-optimization/64164
21790 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
21791 * tree-ssa-copyrename.c: Removed.
21792 * opts.c (default_options_table): Drop -ftree-copyrename. Add
21793 -ftree-coalesce-vars.
21794 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
21795 * common.opt (ftree-copyrename): Ignore.
21796 (ftree-coalesce-inlined-vars): Likewise.
21797 * doc/invoke.texi: Remove the ignored options above.
21798 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
21799 * tree-ssa-coalesce.h: ... here.
21800 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
21801 headers required by it.
21802 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
21803 across variables when flag_tree_coalesce_vars. Check register
21804 use and promoted modes to allow coalescing. Moved to
21805 tree-ssa-coalesce.c.
21806 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
21807 with its member functions to tree-ssa-coalesce.c.
21808 (var_map_base_init): Likewise. Renamed to
21809 compute_samebase_partition_bases.
21810 (partition_view_normal): Drop want_bases parameter.
21811 (partition_view_bitmap): Likewise.
21812 * tree-ssa-live.h: Adjust declarations.
21813 * tree-ssa-coalesce.c: Include explow.h.
21814 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
21815 default defs at the entry point.
21816 (dump_part_var_map): New.
21817 (compute_optimized_partition_bases): New, called by...
21818 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
21819 of compute_samebase_partition_bases. Adjust.
21820 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
21821 * cfgexpand.c (leader_merge): New.
21822 (get_rtl_for_parm_ssa_default_def): New.
21823 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
21824 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
21825 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
21826 redundant MEM attr setting.
21827 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
21828 from...
21829 (expand_one_stack_var): ... this. New wrapper to check and
21830 skip already expanded SSA partitions.
21831 (record_alignment_for_reg_var): New, factored out of...
21832 (expand_one_var): ... this.
21833 (expand_one_ssa_partition): New.
21834 (adjust_one_expanded_partition_var): New.
21835 (expand_one_register_var): Check and skip already expanded SSA
21836 partitions.
21837 (expand_used_vars): Don't create DECLs for anonymous SSA
21838 names. Expand all SSA partitions, then adjust all SSA names.
21839 (pass::execute): Replace the loops that set
21840 SA.partition_to_pseudo from partition leaders and cleared
21841 DECL_RTL for multi-location variables, and that which used to
21842 rename vars and set attrs, with one that clears DECL_RTL and
21843 checks that PARMs and RESULTs default_defs match DECL_RTL.
21844 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
21845 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
21846 * explow.c (promote_ssa_mode): New.
21847 * explow.h (promote_ssa_mode): Declare.
21848 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
21849 * function.c: Include cfgexpand.h.
21850 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
21851 (use_register_for_parm_decl): Wrapper for the above to
21852 special-case the result_ptr.
21853 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
21854 (split_complex_args): Take assign_parm_data_all argument.
21855 Pass it to rtl_for_parm. Set up rtl and context for split
21856 args.
21857 (assign_parms_augmented_arg_list): Adjust.
21858 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
21859 multiple locations. Recognize split complex args.
21860 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
21861 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
21862 (assign_parm_setup_block): Prefer SSA-assigned location.
21863 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
21864 if stack_parm is NULL.
21865 (assign_parm_setup_stack): Prefer SSA-assigned location.
21866 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
21867 rtl before testing for pointer bounds. Special-case result_ptr.
21868 (expand_function_start): Maybe reset DECL_RTL of result.
21869 Prefer SSA-assigned location for result and static chain.
21870 Factor out DECL_RESULT and SET_DECL_RTL.
21871 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
21872 anonymous SSA names. Use promote_ssa_mode.
21873 (get_temp_reg): Likewise.
21874 (remove_ssa_form): Adjust.
21875 * stor-layout.c (layout_decl): Don't set mem attributes of
21876 non-MEMs.
21877 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
21878 and get its reg_usage for reg invalidation.
21879 (compute_bb_dataflow): Pass it insn.
21880 (emit_notes_in_bb): Likewise.
21881
21882 2015-07-23 Segher Boessenkool <segher@kernel.crashing.org>
21883
21884 PR target/66217
21885 * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
21886 prototype.
21887 * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
21888 (rs6000_emit_2insn_and): Handle dot forms.
21889 * config/rs6000/rs6000.md (and<mode>3): Adjust.
21890 (*and<mode>3_2insn): Remove TODO. Adjust. Add "type" attr.
21891 (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
21892
21893 2015-07-23 Richard Biener <rguenther@suse.de>
21894
21895 * generic-match-head.c: Include cgraph.h.
21896 * gimple-match-head.c: Likewise.
21897 * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
21898 SSA names.
21899 * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
21900 * match.pd: ...to a pattern here. Add &A ==/!= 0 simplification
21901 pattern.
21902
21903 2015-07-23 Richard Biener <rguenther@suse.de>
21904
21905 * gimple-fold.c (fold_gimple_cond): Do not require folding
21906 results to pass valid_gimple_rhs_p.
21907 * tree-cfg.h (fold_cond_expr_cond): Remove.
21908 * tree-cfg.c (fold_cond_expr_cond): Likewise.
21909 (make_edges): Do not call it.
21910 * tree-inline.c (tree_function_versioning): Likewise.
21911
21912 2015-07-23 Tom de Vries <tom@codesourcery.com>
21913
21914 * tree-parloops.c (gather_scalar_reductions): Add arg to call to
21915 vect_force_simple_reduction.
21916 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
21917 (vect_is_simple_reduction_1): Add and handle
21918 need_wrapping_integral_overflow parameter.
21919 (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
21920 need_wrapping_integral_overflow parameter.
21921 (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
21922 * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
21923 decl.
21924
21925 2015-07-23 Yuri Rumyantsev <ysrumyan@gmail.com>
21926
21927 PR tree-optimization/66926,66951
21928 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
21929 INNER_LOOP and fix up condition for renaming virtual operands.
21930
21931 2015-07-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21932
21933 * combine.c (try_combine): Use std::swap instead of manually
21934 swapping.
21935
21936 2015-07-23 Prachi Godbole <prachi.godbole@imgtec.com>
21937
21938 * config/mips/i6400.md: New file.
21939 * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
21940 (mips64r6): Likewise.
21941 (i6400): Define.
21942 * config/mips/mips-tables.opt: Regenerate.
21943 * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
21944 (mips_issue_rate): Add support for i6400.
21945 (mips_multipass_dfa_lookahead): Likewise.
21946 * config/mips/mips.h (TUNE_I6400): Define.
21947 * config/mips/mips.md: Include i6400.md.
21948 (processor): Add i6400.
21949 * doc/invoke.texi (-march=@var{arch}): Add i6400.
21950
21951 2015-07-23 Richard Biener <rguenther@suse.de>
21952
21953 PR middle-end/66916
21954 * match.pd: Guard widen and sign-change comparison simplification
21955 with single_use.
21956
21957 2015-07-23 Richard Biener <rguenther@suse.de>
21958
21959 PR tree-optimization/66945
21960 * tree-ssa-propagate.c (substitute_and_fold_dom_walker
21961 ::before_dom_children): Force the propagators idea of
21962 non-executable edges to materialize, not what the folder
21963 chooses.
21964
21965 2015-07-23 Richard Biener <rguenther@suse.de>
21966
21967 * gimple.h (gimple_cond_make_false): Use 0 != 0.
21968 (gimple_cond_make_true): Use 1 != 0.
21969
21970 2015-07-22 DJ Delorie <dj@redhat.com>
21971
21972 * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
21973 slashes.
21974
21975 * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
21976 (ashrhi3): Likewise.
21977 (lshrhi3): Likewise.
21978 (movhi): Take advantage of zero-extend to load small constants.
21979 (movpsi): Likewise.
21980 (and<mode>3): Likewise.
21981 (zero_extendqihi2): Likewise.
21982 (zero_extendqisi2): New.
21983 * config/msp430/constraints.md (N,O): New.
21984 * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
21985
21986 2015-07-22 Uros Bizjak <ubizjak@gmail.com>
21987
21988 PR target/66954
21989 * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
21990 to enum feature_priority and feature_list.
21991 (fold_builtin_cpu): Add F_AES to enum processor_features
21992 and isa_names_table.
21993
21994 2015-07-22 Ilya Enkovich <enkovich.gnu@gmail.com>
21995
21996 PR driver/66737
21997 * config/i386/linux-common.h (MPX_SPEC): Use linker option
21998 for 64bit target only.
21999
22000 2015-07-22 Bernd Schmidt <bernds@codesourcery.com>
22001
22002 * config/nvptx/nvptx.c: Expand some comments.
22003
22004 2015-07-22 James Greenhalgh <james.greenhalgh@arm.com>
22005
22006 * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
22007 (cortex_a53_advsimd): ...This.
22008
22009 2015-07-22 Richard Biener <rguenther@suse.de>
22010
22011 * genmatch.c (expr::gen_transform): Clarify error message
22012 and display location.
22013
22014 2015-07-22 Richard Biener <rguenther@suse.de>
22015
22016 * genmatch.c (struct operand): Add location member.
22017 (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
22018 constructors.
22019 (struct simplify): Remove match_location and result_location
22020 members.
22021 (elsehwere): Adjust.
22022
22023 2015-07-22 Prachi Godbole <prachi.godbole@imgtec.com>
22024
22025 * config/mips/m5100.md: New file.
22026 * config/mips/mips-cpus.def (m5100, m5101): Define.
22027 * config/mips/mips-tables.opt: Regenerate.
22028 * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
22029 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
22030 -march=m5101 to -mips32r5.
22031 (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
22032 (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
22033 !-msoft-float.
22034 * config/mips/mips.md: Include m5100.md.
22035 (processor): Add m5100.
22036 * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
22037
22038 2015-07-22 Robert Suchanek <robert.suchanek@imgtec.com>
22039
22040 * config/mips/mips-cpus.def (interaptiv): Define.
22041 * config/mips/mips-tables.opt: Regenerate.
22042 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
22043 -mips32r2.
22044 (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
22045 * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
22046
22047 2015-07-22 Jiong Wang <jiong.wang@arm.com>
22048
22049 PR target/63521
22050 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
22051 (HONOR_REG_ALLOC_ORDER): Define.
22052
22053 2015-07-22 Richard Biener <rguenther@suse.de>
22054
22055 PR tree-optimization/66952
22056 * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
22057 blocks we end up executing unconditionally reset all SSA
22058 info such as range and alignment.
22059 * tree-ssanames.h (reset_flow_sensitive_info): Declare.
22060 * tree-ssanames.c (reset_flow_sensitive_info): New function.
22061
22062 2015-07-22 Charles Baylis <charles.baylis@linaro.org>
22063
22064 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
22065 typo in attribute.
22066
22067 2015-07-22 Richard Biener <rguenther@suse.de>
22068
22069 * genmatch.c (parser::parse_result): Properly handle
22070 match with result operands and conditions.
22071
22072 2015-07-22 Charles Baylis <charles.baylis@linaro.org>
22073
22074 PR target/63870
22075 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
22076 Add qualifier_struct_load_store_lane_index.
22077 (aarch64_types_loadstruct_lane_qualifiers): Use
22078 qualifier_struct_load_store_lane_index for lane index argument for
22079 last argument.
22080 (aarch64_types_storestruct_lane_qualifiers): Ditto.
22081 (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
22082 (aarch64_simd_expand_args): Add new argument describing mode of
22083 builtin. Check lane bounds for arguments with
22084 SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
22085 (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
22086 if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
22087 (aarch64_simd_expand_builtin): Handle arguments with
22088 qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
22089 aarch64_simd_expand_args.
22090 * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
22091 vst[234]_lane with BUILTIN_VALLDIF.
22092 * config/aarch64/aarch64-simd.md:
22093 (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
22094 endianness reversal on lane index.
22095 (aarch64_vec_load_lanesci_lane<mode>): Ditto.
22096 (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
22097 (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
22098 (vec_store_lanesci_lane<mode>): Ditto.
22099 (vec_store_lanesxi_lane<mode>): Ditto.
22100 (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
22101 reversal of lane index.
22102 (aarch64_ld3_lane<mode>): Ditto.
22103 (aarch64_ld4_lane<mode>): Ditto.
22104 (aarch64_st2_lane<mode>): Ditto.
22105 (aarch64_st3_lane<mode>): Ditto.
22106 (aarch64_st4_lane<mode>): Ditto.
22107 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
22108 to qmode. Add new mode parameter. Update uses.
22109 (__LD3_LANE_FUNC): Ditto.
22110 (__LD4_LANE_FUNC): Ditto.
22111 (__ST2_LANE_FUNC): Ditto.
22112 (__ST3_LANE_FUNC): Ditto.
22113 (__ST4_LANE_FUNC): Ditto.
22114
22115 2015-07-22 Jonathan Wakely <jwakely@redhat.com>
22116
22117 * doc/invoke.texi (Language Independent Options): Rename node to
22118 Diagnostic Message Formatting Options.
22119
22120 2015-07-21 Vladimir Makarov <vmakarov@redhat.com>
22121
22122 PR ipa/66424.
22123 * lra-remat.c (operand_to_remat): Prevent using insns with input
22124 subregs processed separately by IRA.
22125
22126 2015-07-21 Andrew MacLeod <amacleod@redhat.com>
22127
22128 * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
22129 straight loops.
22130 (single_imm_use): Check for iterator node.
22131 (num_imm_uses): Likewise.
22132 * tree-ssa-operands.c (has_zero_uses_1): Delete.
22133 (single_imm_use_1): Check for iterator node.
22134
22135 2015-07-21 Mike Frysinger <vapier@gentoo.org>
22136 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
22137
22138 * configure.ac: Add check for new options in isl-0.15.
22139 * config.in, configure: Rebuilt.
22140 * graphite-blocking.c: Include <isl/constraint.h>
22141 * graphite-interchange.c, graphite-poly.c: Likewise.
22142 * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
22143 * graphite.c: Likewise.
22144 * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
22145 <isl/union_set.h>.
22146 * graphite-dependences.c: Include <isl/constraint.h>.
22147 (max_number_of_out_dimensions): Returns isl_stat.
22148 (extend_schedule_1): Likewise
22149 (extend_schedule): Corresponding changes.
22150 * graphite-optimize-isl.c: Include <isl/constraint.h> and
22151 <isl/union_set.h>.
22152 (getSingleMap): Change return type of isl_stat.
22153 (optimize_isl): Conditionally use
22154 isl_options_set_schedule_serialize_sccs.
22155 * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
22156 if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
22157
22158 2015-07-21 Georg-Johann Lay <avr@gjlay.de>
22159
22160 PR target/66956
22161 * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
22162 (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
22163
22164 2015-07-21 Richard Biener <rguenther@suse.de>
22165
22166 PR tree-optimization/66948
22167 * genmatch.c (capture_info::walk_match): Also recurse to
22168 captures. Properly compute expr state from captures of
22169 captures.
22170 * match.pd: Add single-use guards to
22171 (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
22172
22173 2015-07-21 Nathan Sidwell <nathan@codesourcery.com>
22174
22175 * config/nvptx/mkoffload.c (process): Add static destructor call.
22176
22177 2015-07-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22178
22179 PR middle-end/66915
22180 * match.pd (A - B -> A + (-B)): Don't allow folding
22181 when type if a fixed-point type.
22182
22183 2015-07-20 DJ Delorie <dj@redhat.com>
22184
22185 * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
22186 (iorqi3_real): Likewise for set1.
22187
22188 2015-07-20 Uros Bizjak <ubizjak@gmail.com>
22189
22190 * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
22191 for !TARGET_64BIT.
22192
22193 2015-07-20 Aditya Kumar <hiraditya@msn.com>
22194
22195 * graphite-isl-ast-to-gimple.c:
22196 Refactor so that each function can access 'region'. This will help
22197 maintain a parameter rename_map within a region.
22198
22199 2015-07-20 Segher Boessenkool <segher@kernel.crashing.org>
22200
22201 * config/rs6000/rs6000.md (*lt0_disi): New.
22202
22203 2015-07-20 Segher Boessenkool <segher@kernel.crashing.org>
22204
22205 PR target/66217
22206 * config/rs6000/constraints.md ("S", "T", "t"): Delete. Update
22207 "available letters" comment.
22208 * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
22209 mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
22210 and_2rld_operand): Delete.
22211 (and_operand): Adjust.
22212 (rotate_mask_operator): New.
22213 * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
22214 includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
22215 includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
22216 extract_ME): Delete.
22217 (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
22218 rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
22219 rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
22220 rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
22221 rs6000_emit_2insn_and): New.
22222 * config/rs6000/rs6000.c (num_insns_constant): Adjust.
22223 (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
22224 includes_rldic_lshift_p, includes_rldicr_lshift_p,
22225 insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
22226 (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
22227 rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
22228 s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
22229 rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
22230 rs6000_emit_2insn_and): New.
22231 (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
22232 (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
22233 handling.
22234 <NOT>: Don't fall through to next case.
22235 <AND>: Handle the various rotate-and-mask cases directly.
22236 <IOR>: Always cost as one insn.
22237 * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
22238 (and<mode>3): Adjust expander for the new patterns.
22239 (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
22240 and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
22241 (*and<mode>3_imm_dot_shifted): New.
22242 (*and<mode>3_mask): Delete, rewrite as ...
22243 (and<mode>3_mask): ... New.
22244 (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
22245 (andsi3_internal0_nomc): Delete.
22246 (*andsi3_internal6): Delete.
22247 (*and<mode>3_2insn): New.
22248 (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
22249 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
22250 *insvsi_internal6, insvdi_internal, *insvdi_internal2,
22251 *insvdi_internal3): Delete.
22252 (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
22253 *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
22254 *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
22255 *ior<mode>_mask): New.
22256 (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
22257 *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
22258 *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
22259 *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
22260 Delete.
22261 (ashr<mode>3): Delete expander.
22262 (*ashr<mode>3): Rename to ...
22263 (ashr<mode>3): ... This.
22264 (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
22265 (*rotldi3_internal4, *rotldi3_internal5 and split,
22266 *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
22267 and split, *ashldi3_internal6 and split, *ashldi3_internal7,
22268 ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
22269 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
22270 (splitter for loading a mask): Adjust.
22271 * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
22272
22273 2015-07-20 Marek Polacek <polacek@redhat.com>
22274
22275 * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
22276 output_add_clobbers, output_added_clobbers_hard_reg_p,
22277 gen_rtx_scratch): Remove declarations.
22278
22279 2015-07-20 Marek Polacek <polacek@redhat.com>
22280
22281 PR c++/55095
22282 * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
22283
22284 2015-07-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22285
22286 * simplify-rtx.c (simplify_unary_operation_1, NEG case):
22287 (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
22288
22289 2015-07-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22290
22291 * combine.c (combine_simplify_rtx): Move simplification step
22292 before various transformations/substitutions.
22293
22294 2015-07-20 Mikhail Maltsev <maltsevm@gmail.com>
22295
22296 * wide-int.h (struct binary_traits): Fix partial specialization syntax.
22297 (struct int_traits): Likewise.
22298
22299 2015-07-18 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22300
22301 * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
22302 function to vmsdbgout_function_decl.
22303
22304 2015-07-18 Uros Bizjak <ubizjak@gmail.com>
22305
22306 PR target/66922
22307 * config/i386/i386.c (ix86_expand_pextr): Reject extractions
22308 from misaligned positions.
22309 (ix86_expand_pinsr): Reject insertions to misaligned positions.
22310
22311 2015-07-18 Sebastian Pop <s.pop@samsung.com>
22312
22313 PR middle-end/46851
22314 PR middle-end/60340
22315 * Makefile.in: Removed omega.o.
22316 * common.opt: Document flag fcheck-data-deps as deprecated.
22317 * doc/invoke.texi: Remove documentation for fcheck-data-deps and
22318 its associated params: omega-max-vars, omega-max-geqs,
22319 omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
22320 omega-max-keys, omega-eliminate-redundant-constraints.
22321 * doc/loop.texi: Remove all the section on Omega.
22322 * graphite-blocking.c: Include missing params.h: it used to be
22323 included through tree-data-ref.h and omega.h.
22324 * graphite-isl-ast-to-gimple.c: Same.
22325 * graphite-optimize-isl.c: Same.
22326 * graphite-sese-to-poly.c: Same.
22327 * graphite.c: Same.
22328 * omega.c: Remove.
22329 * omega.h: Remove.
22330 * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
22331 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
22332 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
22333 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
22334 * passes.def: Remove pass_check_data_deps.
22335 * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
22336 (dump_conflict_function): Same.
22337 (dump_subscript): Same.
22338 (print_direction_vector): Same.
22339 (print_dir_vectors): Same.
22340 (print_lambda_vector): Same.
22341 (print_dist_vectors): Same.
22342 (dump_data_dependence_relation): Same.
22343 (dump_data_dependence_relations): Same.
22344 (dump_dist_dir_vectors): Same.
22345 (dump_ddrs): Same.
22346 (init_omega_eq_with_af): Removed.
22347 (omega_extract_distance_vectors): Removed.
22348 (omega_setup_subscript): Removed.
22349 (init_omega_for_ddr_1): Removed.
22350 (init_omega_for_ddr): Removed.
22351 (ddr_consistent_p): Removed.
22352 (compute_affine_dependence): Do not use omega to check data
22353 dependences.
22354 (compute_data_dependences_for_bb): Removed.
22355 (analyze_all_data_dependences): Removed.
22356 (tree_check_data_deps): Removed.
22357 * tree-data-ref.h: Do not include omega.h.
22358 (compute_data_dependences_for_bb): Removed.
22359 (tree_check_data_deps): Removed.
22360 * tree-ssa-loop.c (pass_check_data_deps): Removed.
22361 (make_pass_check_data_deps): Removed.
22362 * tree-ssa-phiopt.c: Include params.h.
22363 * tree-vect-data-refs.c: Same.
22364 * tree-vect-slp.c: Same.
22365
22366 2015-07-18 Uros Bizjak <ubizjak@gmail.com>
22367
22368 * config/i386/i386.md (pushsf splitter): Pass curr_insn to
22369 find_constant_src. FAIL if find_constant_src returns NULL_RTX.
22370 (mem->fpreg splitters): Ditto.
22371 (general_operand->nonimmediate_operand splitter): Use explicit modes.
22372 Disable DFmode for TARGET_64BIT.
22373
22374 2015-07-17 H.J. Lu <hongjiu.lu@intel.com>
22375
22376 PR target/66906
22377 * config/i386/i386.c (ix86_expand_prologue): Replicate static
22378 chain on the stack.
22379
22380 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
22381
22382 * config/nvptx/mkoffload.c (process): Constify host data.
22383 * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
22384 Constify host data.
22385 (generate_host_descr_file): Likewise.
22386
22387 2015-07-17 Aditya Kumar <aditya.k7@samsung.com>
22388 Sebastian Pop <s.pop@samsung.com>
22389
22390 PR middle-end/61929
22391 * graphite-dependences.c (add_pdr_constraints): Renamed
22392 pdr->extent to pdr->subscript_sizes.
22393 * graphite-interchange.c (build_linearized_memory_access): Add
22394 back all gcc_assert's that the "isl_int to isl_val conversion"
22395 patch has removed. Refactored.
22396 (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
22397 * graphite-poly.c (new_poly_dr): Same.
22398 (free_poly_dr): Same.
22399 * graphite-poly.h (struct poly_dr): Same.
22400 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
22401 all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
22402 * graphite-scop-detection.h: Fix space.
22403 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
22404 back all gcc_assert's removed by a previous patch.
22405 (wrap): Remove the_isl_ctx global variable that the same patch has
22406 added.
22407 (build_loop_iteration_domains): Same.
22408 (add_param_constraints): Same.
22409 (pdr_add_data_dimensions): Same. Refactored.
22410 (build_poly_dr): Renamed extent to subscript_sizes.
22411
22412 2015-07-17 Marek Polacek <polacek@redhat.com>
22413
22414 * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
22415 * match.pd: ... here.
22416
22417 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
22418
22419 * config/nvptx/mkoffload.c (process): Constify target data.
22420 * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
22421 Constify target data.
22422 (generate_target_offloadend_file): Likewise.
22423
22424 2015-07-17 Yuri Rumyantsev <ysrumyan@gmail.com>
22425
22426 * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
22427 to allow renaming of PHI arguments on edges incoming from outer
22428 loop header, add corresponding check before start PHI iterator.
22429 (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
22430 variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
22431 with true force_vectorize. Set-up dominator for outer loop too.
22432 Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
22433 (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
22434 was marked with force_vectorize and has restricted cfg.
22435 (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
22436 inner loop.
22437 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
22438 do peeling for outer loops.
22439
22440 2015-07-17 Yvan Roux <yvan.roux@linaro.org>
22441 Matthias Klose <doko@ubuntu.com>
22442
22443 * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
22444 build-sysroot, sysroot from the `Miscenalleous configure options' to
22445 the `Directories' section and strip trailing `/' from with_sysroot.
22446 (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
22447 * configure: Regenerated.
22448
22449 2015-07-17 Uros Bizjak <ubizjak@gmail.com>
22450
22451 PR target/66824
22452 * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
22453 (TARGET_HARD_DF_REGS): Ditto.
22454 (TARGET_HARD_XF_REGS): Ditto.
22455 * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
22456 Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
22457 (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
22458 alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
22459 (*movsf_internal): Add alternatives 16 and 17. Enable
22460 alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
22461
22462 2015-07-17 Uros Bizjak <ubizjak@gmail.com>
22463
22464 PR rtl-optimization/66891
22465 * calls.c (expand_call): Wrap precompute_register_parameters with
22466 NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
22467
22468 2015-07-16 Nathan Sidwell <nathan@codesourcery.com>
22469
22470 * config/nvptx/mkoffload.c (process): Constify mapping variables.
22471 Define target data struct and initialize it.
22472
22473 2015-07-16 Vladimir Makarov <vmakarov@redhat.com>
22474
22475 PR rtl-optimization/66626
22476 * ira.h (emit-rtl.h): Include.
22477 (non_spilled_static_chain_regno_p): New.
22478 * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
22479 unless it is non spilled static chain pseudo.
22480 (assign_hard_rego): Spill memory profitable allocno unless it is
22481 non spilled static chain pseudo.
22482 (allocno_spill_priority_compare): Put non spilled static chain
22483 pseudo at the end of sorted array.
22484 (improve_allocation): Do nothing if we have static chain and
22485 non-local goto.
22486 (allocno__priority_compare_func): Put non spilled static chain
22487 pseudo at the beginning of sorted array.
22488 (move_spill_restore): Ignore non spilled static chain pseudo.
22489 * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
22490 to non spilled static chain pseudo.
22491 * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
22492 pseudo at the beginning of sorted array.
22493 (spill_for): Spill non spilled static chain pseudo last.
22494 * lra-constraints.c (lra_constraints): Remove static chain pseudo
22495 check for equivalence.
22496
22497 2015-07-16 Martin Liska <mliska@suse.cz>
22498
22499 PR ipa/66896.
22500 * ipa-prop.c (update_jump_functions_after_inlining): Create properly
22501 dst_ctx if it does not exist.
22502
22503 2015-07-16 Martin Liska <mliska@suse.cz>
22504
22505 * hash-set.h (remove): New function.
22506 (iterator): New iteration class for hash_set.
22507
22508 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
22509
22510 * genattrtab.c (make_canonical): Add a file_location parameter.
22511 Use fatal_at rather than fatal.
22512 (get_attr_value): Likewise. Update call to make_canonical.
22513 (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
22514 (make_internal_attr): Update calls accordingly.
22515
22516 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
22517
22518 * read-md.h (message_with_line, error_with_line): Delete.
22519 * read-md.c (message_with_line, error_with_line): Delete.
22520 * gensupport.h: Include read-md.h.
22521 (md_rtx_info): New structure.
22522 (read_md_rtx): Use it. Return a bool success value.
22523 * gensupport.c (read_md_rtx): Likewise.
22524 * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
22525 (main): Update after interface changes.
22526 * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
22527 (main): Update after interface changes.
22528 * genattrtab.c (insn_code_number): Delete.
22529 (optimize_attrs): Add a max_insn_code parameter and use it instead
22530 of insn_code_number.
22531 (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
22532 Use *_at rather than *_with_line functions.
22533 (gen_insn): Likewise.
22534 (gen_delay): Likewise.
22535 (gen_insn_reserv): Likewise.
22536 (gen_bypass): Take an md_rtx_info rather than an rtx.
22537 (main): Update after interface changes. Use a local max_insn_code
22538 variable instead of insn_code_number.
22539 * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
22540 an rtx. Use fatal_at rather than fatal.
22541 (gen_query_cpu_unit, gen_bypass, gen_excl_set)
22542 (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
22543 (gen_absence_set, gen_final_absence_set, gen_automaton)
22544 (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
22545 (main): Update after interface changes.
22546 * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
22547 and code number.
22548 (main): Update after interface changes.
22549 * genconditions.c (main): Use new read_md_rtx interface.
22550 * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
22551 (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
22552 (main): Update after interface changes.
22553 * genemit.c (insn_code_number, insn_index_number): Delete.
22554 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
22555 Use fatal_at rather than fatal.
22556 (gen_expand): Take an md_rtx_info rather than an rtx. Use fatal_at
22557 rather than fatal.
22558 (gen_split): Likewise.
22559 (main): Update after interface changes.
22560 * genextract.c (line_no): Delete.
22561 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
22562 Update call to walk_rtx.
22563 (VEC_safe_set_locstr): Add an md_rtx_info argument. Use message_at
22564 rather than message_with_line.
22565 (walk_rtx): Add an md_rtx_info argument. Update call to
22566 VEC_safe_set_locstr.
22567 (main): Update after interface changes.
22568 * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
22569 and lineno. Use error_at rather than separate message_with_line
22570 calls and have_error assignments.
22571 (main): Update after interface changes.
22572 * genmddump.c (main): Use new read_md_rtx interface.
22573 * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
22574 (main): Update after interface changes.
22575 * genoutput.c (next_code_number): Delete.
22576 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
22577 (gen_peephole, gen_expand, gen_split): Likewise.
22578 (note_constraint): Likewise. Use *_at rather than *_with_line
22579 functions.
22580 (main): Update after interface changes.
22581 * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
22582 rtx and lineno.
22583 (main): Update after interface changes.
22584 * genpreds.c (process_define_predicate): Take an md_rtx_info rather
22585 than an rtx and lineno.
22586 (process_define_constraint): Likewise.
22587 (process_define_register_constraint): Likewise.
22588 (main): Update after interface changes.
22589 * genrecog.c (next_insn_code, pattern_lineno): Delete.
22590 (validate_pattern): Replace top-level rtx with an md_rtx_info.
22591 Use *_at rather than *_with_line functions.
22592 (match_pattern_2): Likewise.
22593 (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
22594 (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
22595 Use *_at rather than *_with_line functions.
22596 * gentarget-def.c (add_insn): New function.
22597 (main): Use it. Use new read_md_rtx interface.
22598
22599 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
22600
22601 * gensupport.h (compute_test_codes): Take a file_location rather
22602 than a line number.
22603 * gensupport.c (compute_test_codes): Likewise. Use *_at functions
22604 rather than *_with_line functions.
22605 (process_define_predicate): Update call to compute_test_codes.
22606 * genpreds.c (validate_exp): Take a file_location rather than a
22607 line number. Use *_at functions rather than *_with_line functions.
22608 (process_define_predicate): Update call to validate_exp.
22609 (constraint_data): Replace lineno field with a file_location.
22610 (add_constraint): Take a file_location rather than a line number.
22611 Use *_at functions rather than *_with_line functions. Fix error
22612 message for address constraints. Update after changes to
22613 validate_exp, constraint_data and compute_test_codes.
22614 (process_define_constraint): Update accordingly.
22615 (process_define_register_constraint): Likewise.
22616
22617 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
22618
22619 * genoutput.c (data): Use a file_location to record the source
22620 position.
22621 (nothing): Delete.
22622 (idata, idata_end): Remove initialization.
22623 (constraint_data): Replace lineno with a file_location.
22624 (output_insn_data): Update after changes to data.
22625 (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
22626 (scan_operands): Likewise, using *_at rather than *_with_line
22627 functions.
22628 (process_template): Likewise.
22629 (validate_insn_alternatives): Likewise.
22630 (validate_insn_operands): Likewise.
22631 (validate_optab_operands): Likewise.
22632 (init_insn_for_nothing): Initialize idata and idata_end.
22633 (note_constraint): Update after changes to constraint_data,
22634 using at rather than with_line functions.
22635 (mdep_constraint_len): Take a file_location rather than a
22636 line number. Use at rather than with_line functions.
22637
22638 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
22639
22640 * read-md.h (fatal_at): Declare.
22641 * read-md.c (fatal_at): New function.
22642 * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
22643 to record the source position.
22644 (check_attr_test): Take a file_location instead of a line number.
22645 Use fatal_at instead of fatal.
22646 (check_attr_value): Update after above changes, using "at"
22647 rather than "with_line" reporting functions.
22648 (convert_set_attr_alternative): Likewise.
22649 (gen_attr): Likewise.
22650 (check_defs): Likewise. Don't assign to read_md_filename.
22651 (gen_insn): Update initialization after above changes.
22652 (gen_delay): Likewise.
22653 (write_insn_cases): Print the filename for a define_peephole.
22654 (gen_insn_reserv): Take a line number as argument and update
22655 the call to check_attr_test.
22656 (main): Pass a line number to gen_insn_reserv.
22657
22658 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
22659
22660 * read-md.h (file_location): New structure.
22661 (directive_handler_t): Take a file_location rather than a line number.
22662 (message_at, error_at): Declare.
22663 (read_skip_construct): Delete.
22664 * read-md.c (message_with_line_1): Replace with...
22665 (message_at_1): ...this new function.
22666 (message_at, error_at): New functions.
22667 (message_with_line, error_with_line): Update to use message_at_1.
22668 (handle_enum): Take a file_location rather than a line number
22669 and use error_at for error reporting.
22670 (handle_include): Likewise.
22671 (read_skip_construct): Likewise. Make static.
22672 (handle_file): Update after above changes. Pass a file_location
22673 rather than a line number to handle_directive.
22674 * gensupport.c (queue_elem): Replace separate filename and lineno
22675 with a file_location.
22676 (queue_pattern): Replace filename and lineno arguments with a
22677 file_location. Update after change to queue_elem.
22678 (process_define_predicate): Replace lineno argument with a
22679 file_location and use error_at for error reporting. Update
22680 after above changes.
22681 (process_rtx): Likewise.
22682 (subst_pattern_match): Likewise.
22683 (get_alternatives_number): Likewise.
22684 (alter_predicate_for_insn): Likewise.
22685 (rtx_handle_directive): Likewise.
22686 (is_predicable): Update after above changes, using error_at rather
22687 than error_with_line.
22688 (has_subst_attribute): Likewise.
22689 (identify_predicable_attribute): Likewise.
22690 (alter_attrs_for_subst_insn): Likewise.
22691 (process_one_cond_exec): Likewise.
22692 (process_substs_on_one_elem): Likewise.
22693 (process_define_subst): Likewise.
22694 (check_define_attr_duplicates): Likewise.
22695 (read_md_rtx): Update after change to queue_elem.
22696
22697 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
22698
22699 * genoutput.c (next_index_number): Delete.
22700 (data): Remove index_number.
22701 (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
22702 (main): Remove manipulation of next_index_number.
22703
22704 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
22705
22706 * genattrtab.c (check_attr_value): Remove handling of null attrs.
22707 (make_canonical): Likewise.
22708
22709 2015-07-16 Eric Botcazou <ebotcazou@adacore.com>
22710
22711 * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
22712 instead of adjust_address_nv.
22713 (restore_stack_nonlocal): Likewise.
22714 (nonlocal_goto): Likewise.
22715
22716 2015-07-16 Tom de Vries <tom@codesourcery.com>
22717
22718 * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
22719 not have a corresponding loop header phi.
22720
22721 2015-07-16 Tom de Vries <tom@codesourcery.com>
22722
22723 * tree-parloops.c (create_loads_for_reductions): Handle case that
22724 reduction is unused.
22725
22726 2015-07-16 Richard Biener <rguenther@suse.de>
22727
22728 PR tree-optimization/66894
22729 * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
22730 about deriving NE_EXPR from truncated values.
22731
22732 2015-07-16 Martin Liska <mliska@suse.cz>
22733
22734 * alloc-pool.h
22735 (object_allocator): Add new class.
22736 (pool_allocator::initialize): Use the underlying class.
22737 (pool_allocator::allocate): Likewise.
22738 (pool_allocator::remove): Likewise.
22739 (operator new): A new generic allocator.
22740 * asan.c (struct asan_mem_ref): Remove unused members.
22741 (asan_mem_ref_new): Replace new operator with
22742 object_allocator::allocate.
22743 (free_mem_ref_resources): Change deallocation.
22744 * cfg.c (initialize_original_copy_tables): Replace pool_allocator
22745 with object_allocator.
22746 * config/sh/sh.c (add_constant): Replace new operator with
22747 object_allocator::allocate.
22748 (sh_reorg): Change call to a release method.
22749 * cselib.c (struct elt_list): Remove unused members.
22750 (new_elt_list): Replace new operator with
22751 object_allocator::allocate.
22752 (new_elt_loc_list): Likewise.
22753 (new_cselib_val): Likewise.
22754 (unchain_one_elt_list): Change delete operator with remove method.
22755 (unchain_one_elt_loc_list): Likewise.
22756 (unchain_one_value): Likewise.
22757 (cselib_finish): Release newly added static allocators.
22758 * cselib.h (struct cselib_val): Remove unused members.
22759 (struct elt_loc_list): Likewise.
22760 * df-problems.c (df_chain_alloc): Replace pool_allocator with
22761 object_allocator.
22762 * df-scan.c (struct df_scan_problem_data): Likewise.
22763 (df_scan_alloc): Likewise.
22764 * df.h (struct dataflow): Likewise.
22765 * dse.c (struct read_info_type): Likewise.
22766 (struct insn_info_type): Likewise.
22767 (struct dse_bb_info_type): Likewise.
22768 (struct group_info): Likewise.
22769 (struct deferred_change): Likewise.
22770 (get_group_info): Likewise.
22771 (delete_dead_store_insn): Likewise.
22772 (free_read_records): Likewise.
22773 (replace_read): Likewise.
22774 (check_mem_read_rtx): Likewise.
22775 (scan_insn): Likewise.
22776 (dse_step1): Likewise.
22777 (dse_step7): Likewise.
22778 * et-forest.c (struct et_occ): Remove unused members.
22779 (et_new_occ): Use allocate instead of new operator.
22780 (et_new_tree): Likewise.
22781 (et_free_tree): Call release method explicitly.
22782 (et_free_tree_force): Likewise.
22783 (et_free_pools): Likewise.
22784 (et_split): Use remove instead of delete operator.
22785 * et-forest.h (struct et_node): Remove unused members.
22786 * ipa-cp.c: Change pool_allocator to object_allocator.
22787 * ipa-inline-analysis.c: Likewise.
22788 * ipa-profile.c: Likewise.
22789 * ipa-prop.c: Likewise.
22790 * ipa-prop.h: Likewise.
22791 * ira-build.c (initiate_cost_vectors): Cast return value.
22792 (ira_allocate_cost_vector): Likewise.
22793 * ira-color.c (struct update_cost_record): Remove unused members.
22794 * lra-int.h (struct lra_live_range): Likewise.
22795 (struct lra_copy): Likewise.
22796 (struct lra_insn_reg): Likewise.
22797 * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
22798 * lra.c (new_insn_reg): Replace new operator with allocate method.
22799 (free_insn_regs): Same for operator delete.
22800 (finish_insn_regs): Release new static allocator.
22801 (finish_insn_recog_data): Likewise.
22802 (lra_free_copies): Replace delete operator with remove method.
22803 (lra_create_copy): Replace operator new with allocate method.
22804 (invalidate_insn_data_regno_info): Same for remove method.
22805 * regcprop.c (struct queued_debug_insn_change): Remove unused members.
22806 (free_debug_insn_changes): Replace delete operator with remove method.
22807 (replace_oldest_value_reg): Replace operator new with allocate method.
22808 (pass_cprop_hardreg::execute): Release new static variable.
22809 * sched-deps.c (sched_deps_init): Change pool_allocator to
22810 object_allocator.
22811 * sel-sched-ir.c: Likewise.
22812 * sel-sched-ir.h: Likewise.
22813 * stmt.c (expand_case): Likewise.
22814 (expand_sjlj_dispatch_table): Likewise.
22815 * tree-sra.c (struct access): Remove unused members.
22816 (struct assign_link): Likewise.
22817 (sra_deinitialize): Release newly added static pools.
22818 (create_access_1):Replace operator new with allocate method.
22819 (build_accesses_from_assign): Likewise.
22820 (create_artificial_child_access): Likewise.
22821 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
22822 pool_allocator to object_allocator.
22823 * tree-ssa-pre.c: Likewise.
22824 * tree-ssa-reassoc.c: Likewise.
22825 * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
22826 * tree-ssa-strlen.c: Likewise.
22827 * tree-ssa-structalias.c: Likewise.
22828 * var-tracking.c (onepart_pool_allocate): New function.
22829 (unshare_variable): Use the newly added function.
22830 (variable_merge_over_cur): Likewise.
22831 (variable_from_dropped): Likewise.
22832 (variable_was_changed): Likewise.
22833 (set_slot_part): Likewise.
22834 (emit_notes_for_differences_1): Likewise.
22835 (vt_finalize): Release newly added static pools.
22836
22837 2015-07-16 Martin Jambor <mjambor@suse.cz>
22838
22839 * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status. Adjust
22840 all uses. Fix two typos in its general comment.
22841 (func_body_info): Rename to ipa_func_body_info. Adjust all uses.
22842
22843 2015-07-16 Ilya Enkovich <enkovich.gnu@gmail.com>
22844
22845 * config/i386/linux-common.h (LINK_MPX): New.
22846 (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
22847 * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
22848 indicating '-z bndplt' support by linker.
22849 * configure: Regenerate.
22850 * config.in: Regenerate.
22851
22852 2015-07-16 Richard Biener <rguenther@suse.de>
22853
22854 * fold-const.c (fold_widened_comparison): Remove.
22855 (fold_sign_changed_comparison): Likewise.
22856 (fold_comparison): Move widened and sign-changed comparison
22857 simplification ...
22858 * match.pd: ... to patterns here.
22859 * generic-match-head.c: Include target.h.
22860 * gimple-match-head.c: Likewise.
22861
22862 2015-07-16 Richard Biener <rguenther@suse.de>
22863
22864 * tree-ssa-dom.c (dom_valueize): New function.
22865 (record_temporary_equivalences): Also record equivalences
22866 for dominating stmts that have uses of equivalences we are
22867 about to record.
22868
22869 2015-07-16 Bin Cheng <bin.cheng@arm.com>
22870
22871 * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
22872 add_autoinc_candidates.
22873 (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
22874 (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
22875 (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
22876 (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
22877 Call new function.
22878 (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
22879 (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
22880 Remove parameter struct iv*. Call add_autoinc_candidates here.
22881 (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
22882 (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
22883 Call new function.
22884 (find_iv_candidates): Call new functions.
22885
22886 2015-07-16 Sandra Loosemore <sandra@codesourcery.com>
22887
22888 * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
22889 uninitialized-variable warning.
22890
22891 2015-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
22892
22893 PR target/65249
22894 * config/sh/sh.md (movdi): Split simple reg move to two movsi
22895 when the destination is R0.
22896
22897 2015-07-16 Uros Bizjak <ubizjak@gmail.com>
22898
22899 PR target/66866
22900 * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
22901 * config/i386/i386.c (ix86_expand_pextr): New function.
22902 (ix86_expand_pinsr): Handle V1TI and TI modes. Call ix86_expand_pextr
22903 for non-lowpart subregs.
22904 * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
22905 (insv<mode>): Use SWI248 mode iterator.
22906 (insv<mode>_1): Ditto.
22907
22908 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
22909 Sebastian Pop <s.pop@samsung.com>
22910
22911 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
22912 iterator to use_stmt.
22913
22914 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
22915 Sebastian Pop <s.pop@samsung.com>
22916
22917 * graphite-scop-detection.c (build_scops_1): Discard scops for
22918 which entry==exit.
22919
22920 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
22921 Sebastian Pop <s.pop@samsung.com>
22922
22923 * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
22924 case of a return statement in scop.
22925
22926 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
22927 Sebastian Pop <s.pop@samsung.com>
22928
22929 * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
22930 INTEGER_TYPE parameters.
22931 (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
22932 VECTOR_CST in scan_tree_for_params.
22933 (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
22934
22935 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
22936
22937 * gimple-pretty-print.h: Don't include pretty-print.h.
22938 * tree-streamer.h: Don't include lto-streamer.h.
22939 * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
22940 * gimple-streamer-in.c: Remove redundant includes.
22941 * gimple-streamer-out.c: Likewise.
22942 * ipa-devirt.c: Likewise.
22943 * ipa-icf.c: Likewise.
22944 * ipa-inline-analysis.c: Likewise.
22945 * ipa-polymorphic-call.c: Likewise.
22946 * ipa-profile.c: Likewise.
22947 * ipa-prop.c: Likewise.
22948 * ipa-pure-const.c: Likewise.
22949 * lto-cgraph.c: Likewise.
22950 * lto-streamer-in.c: Likewise.
22951 * lto-streamer-out.c: Likewise.
22952 * lto-streamer.c: Likewise.
22953 * tree-streamer-in.c: Likewise.
22954 * tree-streamer-out.c: Likewise.
22955 * tree-streamer.c: Likewise.
22956
22957 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
22958
22959 * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
22960 include input.h.
22961 * opts.c: Remove multiline #include comment.
22962
22963 2015-07-15 Nathan Sidwell <nathan@codesourcery.com>
22964
22965 * config/nvptx/mkoffload.c (process): Add C++ protection to
22966 emitted code.
22967
22968 2015-07-14 Michael Meissner <meissner@linux.vnet.ibm.com>
22969
22970 PR target/66854
22971 * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
22972 null before IEEE 128-bit floating point support patch.
22973
22974 2015-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22975
22976 * simplify-rtx.c (simplify_ternary_operation): Add simplification
22977 for (!c) != {0,...,0} ? a : b for vector modes.
22978
22979 2015-07-15 Paolo Bonzini <bonzini@gnu.org>
22980 Martin Jambor <mjambor@suse.cz>
22981
22982 * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
22983 struct func_body_info* instead of struct ipa_node_params*, expecting
22984 fbi->info to be filled in. Replace throughout. Adjust call to
22985 ipa_load_from_parm_agg.
22986 (set_cond_stmt_execution_predicate): Accept struct func_body_info*
22987 instead of struct ipa_node_params*. Adjust calls to other functions
22988 so that they pass either fbi or fbi->info.
22989 (set_switch_stmt_execution_predicate): Likewise.
22990 (will_be_nonconstant_predicate): Likewise.
22991 (compute_bb_predicates): Likewise.
22992 (estimate_function_body_sizes): Move asserts earlier. Fill in
22993 struct func_body_info, replace parms_info with fbi.info. Adjust
22994 calls to functions that now accept struct func_body_info.
22995 * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
22996 (struct func_body_info): Likewise.
22997 (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
22998 remove static. Adjust callers.
22999 (ipa_load_from_parm_agg): Remove.
23000 * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
23001 (func_body_info): Likewise.
23002 (ipa_load_from_parm_agg): Adjust prototype.
23003
23004 2015-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23005
23006 * gensupport.c (rtx_handle_directive): Adjust.
23007 * read-rtl.c (apply_iterators): Take vector to add rtxs to
23008 instead of expr list rtx.
23009 (add_define_attr_for_define_subst): Likewise.
23010 (add_define_subst_attr): Likewise.
23011 (read_subst_mapping): Likewise.
23012 (read_rtx): Likewise.
23013 * rtl.h (read_rtx): Adjust.
23014
23015 2015-07-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23016
23017 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
23018
23019 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
23020
23021 PR target/58066
23022 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
23023 (*tls_local_dynamic_base_64_<mode>): Ditto.
23024 (*tls_local_dynamic_base_64_largepic): Ditto.
23025 (tls_global_dynamic_64_<mode>): Update expander pattern.
23026 (tls_local_dynamic_base_64_<mode>): Ditto.
23027
23028 2015-07-15 Richard Biener <rguenther@suse.de>
23029
23030 * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
23031 and bool_var == 1 -> bool_var simplifications ...
23032 * match.pd: ... to patterns here. Factor out negate_expr_p
23033 cases from the A - B -> A + (-B) patterns as negate_expr_p
23034 predicate and add a -(A + B) -> (-B) - A pattern.
23035
23036 2015-07-15 Robert Suchanek <robert.suchanek@imgtec.com>
23037
23038 * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
23039
23040 2015-07-15 Matthew Fortune <matthew.fortune@imgtec.com>
23041 Robert Suchanek <robert.suchanek@imgtec.com>
23042
23043 * config/mips/mips.c (mips_int_mask): New enum.
23044 (mips_shadow_set): Likewise.
23045 (int_mask): New variable.
23046 (use_shadow_register_set_p): Change type to enum mips_shadow_set.
23047 (machine_function): Add int_mask and use_shadow_register_set.
23048 (mips_attribute_table): Add attribute handlers for interrupt and
23049 use_shadow_register_set.
23050 (mips_interrupt_mask): New static function.
23051 (mips_handle_interrupt_attr): Likewise.
23052 (mips_handle_use_shadow_register_set_attr): Likewise.
23053 (mips_use_shadow_register_set): Change return type to enum
23054 mips_shadow_set. Add argument handling for use_shadow_register_set
23055 attribute.
23056 (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
23057 compare with mips_shadow_set enum.
23058 (mips_compute_frame_info): Add interrupt mask and
23059 use_shadow_register_set to per-function information structure.
23060 Add a stack slot for EPC unconditionally.
23061 (mips_expand_prologue): Compare use_shadow_register_set value
23062 with mips_shadow_set enum. Save EPC always in K1, clobber only K1 for
23063 masked interrupt register but in EIC mode use K0 and save Cause in K0.
23064 EPC saved and restored unconditionally. Use PMODE_INSN macro when
23065 copying the stack pointer from the shadow register set.
23066 * config/mips/mips.h (SR_IM0): New define.
23067 * config/mips/mips.md (mips_rdpgpr): Rename to...
23068 (mips_rdpgpr_<mode>): ...this. Use the Pmode iterator.
23069 * doc/extend.texi (Declaring Attributes of Functions): Document
23070 optional arguments for interrupt and use_shadow_register_set
23071 attributes.
23072
23073 2015-07-15 Robert Suchanek <robert.suchanek@imgtec.com>
23074
23075 * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
23076 interrupt attribute.
23077 (mips_expand_prologue): Disable the floating point unit in an ISR.
23078 * config/mips/mips.h (SR_COP1): New define.
23079
23080 2015-07-15 Richard Biener <rguenther@suse.de>
23081
23082 * genmatch.c (parser::peek, parser::peek_ident): Add argument
23083 to tell how many tokens to peek ahead (default 1).
23084 (parser::eat_token, parser::eat_ident): Return token consumed.
23085 (parser::parse_result): Parse new switch statement.
23086 * match.pd: Use case statements where appropriate.
23087
23088 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
23089
23090 PR rtl-optimization/58066
23091 * calls.c (expand_call): Precompute register parameters before stack
23092 alignment is performed.
23093
23094 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
23095
23096 PR rtl-optimization/66838
23097 * postreload.c (reload_cse_move2add): Also process
23098 CALL_INSN_FUNCTION_USAGE when resetting information of
23099 call-clobbered registers.
23100
23101 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
23102 Cesar Philippidis <cesar@codesourcery.com>
23103 Chung-Lin Tang <cltang@codesourcery.com>
23104
23105 * config/nios2/constraints.md (U, v): New constraints.
23106 * config/nios2/predicates.md (rdprs_dcache_operand): New.
23107 (ldstex_memory_operand): New.
23108 * config/nios2/sync.md: New file.
23109 * config/nios2/nios2.md (unspecv): Add new builtin function
23110 UNSPECV codes.
23111 (rdprs, flushd, flushda, wrpie, eni): New patterns.
23112 (top-level): Include sync.md.
23113 * config/nios2/nios2.c (N2_FTYPES): Add function types for
23114 new builtins.
23115 (N2_BUILTINS): Add arch field setting, add new builtins.
23116 (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
23117 for arch field.
23118 (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
23119 Also handle ldex/stex/ldsex/stsex builtins.
23120 (nios2_expand_rdprs_builtin): New function.
23121 (nios2_expand_cache_builtin): New function.
23122 (nios2_expand_wrpie_builtin): New function.
23123 (nios2_expand_eni_builtin): New function.
23124 (nios2_expand_builtin): Add arch field handling and new builtin
23125 cases.
23126 * doc/extend.texi (Altera Nios II Built-in Functions): Document
23127 new builtins.
23128 * doc/md.texi (Machine Constraints): Document U and v constraints.
23129
23130 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
23131 Cesar Philippidis <cesar@codesourcery.com>
23132 Chung-Lin Tang <cltang@codesourcery.com>
23133
23134 * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
23135 * config/nios2/nios2.c (struct GTY (()) machine_function): Add
23136 callee_save_reg_size and uses_anonymous_args fields.
23137 (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
23138 (nios2_create_cfa_notes): New function.
23139 (nios2_adjust_stack): New function for adjusting stack.
23140 (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
23141 Use nios2_adjust_stack.
23142 (nios2_expand_epilogue): Likewise.
23143 (nios2_expand_return): New function.
23144 (nios2_can_use_return_insn): Update for CDX pop.n usage.
23145 (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
23146 If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
23147 * config/nios2/nios2.md (return): Use nios2_expand_return.
23148
23149 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
23150 Cesar Philippidis <cesar@codesourcery.com>
23151 Chung-Lin Tang <cltang@codesourcery.com>
23152
23153 * config/nios2/predicates.md (pop_operation): New.
23154 (ldwm_operation, stwm_operation): New.
23155 (nios2_hard_register_operand): New.
23156 * config/nios2/nios2-protos.h (pop_operation_p): Declare.
23157 (ldstwm_operation_p): Declare.
23158 (gen_ldstwm_peep): Declare.
23159 * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
23160 (base_reg_adjustment_p): New.
23161 (pop_operation_p): New.
23162 (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
23163 (nios2_ldstwm_regset_p): New.
23164 (ldstwm_operation_p): New.
23165 (gen_ldst): New.
23166 (nios2_ldst_parallel): New.
23167 (struct ldswm_operand): Declare.
23168 (compare_ldstwm_operands): New.
23169 (can_use_cdx_ldstw): New.
23170 (gen_ldstwm_peep): New.
23171 * config/nios2/nios2-ldstwm.sml: New.
23172 * config/nios2/nios2.md: Include ldstwm.md.
23173 * config/nios2/ldstwm.md: Generated.
23174
23175 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
23176 Cesar Philippidis <cesar@codesourcery.com>
23177 Chung-Lin Tang <cltang@codesourcery.com>
23178
23179 * config/nios2/nios2.h (LABEL_ALIGN): Define.
23180 (REG_ALLOC_ORDER): Define.
23181 (ADJUST_REG_ALLOC_ORDER): Define.
23182 (HONOR_REG_ALLOC_ORDER): Define.
23183 (CDX_REG_P): Define.
23184 (ANDCLEAR_INT): Define.
23185 * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
23186 (nios2_label_align): Declare.
23187 (nios2_cdx_narrow_form_p): Declare.
23188 (nios2_adjust_reg_alloc_order): Declare.
23189 * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
23190 operation.
23191 (nios2_large_unspec_reloc_p): New function, split from...
23192 (nios2_legitimate_pic_operand_p): ...here.
23193 (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
23194 (nios2_print_operand_punct_valid_p): New.
23195 (nios2_print_operand): Add %., %!, %x, %y, %A. Remove %U.
23196 (split_mem_address): New.
23197 (split_alu_insn): New.
23198 (cdxreg): New.
23199 (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
23200 (enum nios2_add_insn_kind): New.
23201 (nios2_add_insn_names, nios2_add_insn_narrow): New.
23202 (nios2_add_insn_classify): New.
23203 (nios2_add_insn_asm): New.
23204 (nios2_cdx_narrow_form_p): New.
23205 (label_align, min_labelno, max_labelno): New.
23206 (nios2_reorg): New.
23207 (nios2_label_align): New.
23208 (nios2_adjust_reg_alloc_order): New.
23209 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23210 (TARGET_MACHINE_DEPENDENT_REORG): Define.
23211 * config/nios2/constraints.md (P): New constraint.
23212 * config/nios2/predicates.md (const_and_operand): New.
23213 (and_operand): New.
23214 (stack_memory_operand): New.
23215 * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
23216 (length): Update to use nios2_cdx_narrow_form_p().
23217 (type): Add new insn type values.
23218 (control, alu, st, ld, shift): Update insn reservations with
23219 new insn type values.
23220 (*high, *lo_sum): Define new insn patterns for constant generation.
23221 (movqi_internal, movhi_internal, movsi_internal): Reduce
23222 alternatives, update asm template to handle CDX variants, update
23223 type attributes.
23224 (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
23225 template, update type attributes.
23226 (extendhisi2, extendqi<mode>2): Likewise.
23227 (addsi3): Change to use function for asm string.
23228 (subsi3): Add CDX notation to asm template, update type attributes.
23229 (negsi3, one_cmplsi3): Likewise.
23230 (andsi3): New pattern, specialized from logical patterns.
23231 (<code>si3): Remove and case, combine alternatives, update asm
23232 template.
23233 (<shift_op>si3): Add CDX notation, update type attributes.
23234 (rotrsi3): Update type attribute.
23235 (*merge, extzv, insv): New insn patterns.
23236 (return): Change to define_expand.
23237 (simple_return): Add CDX notation, update type attributes.
23238 (indirect_jump): Add CDX notation.
23239 (jump): Update asm cases, update length attribute expression.
23240 (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
23241 (nios2_cbranch): Update asm cases and length attribute expression
23242 to handle CDX variants.
23243 (nios2_cmp<code>): Update asm template.
23244 (nop): Add CDX notation, update type attributes.
23245 (trap): Add CDX notation.
23246 (ctrapsi4): Update asm cases and length attribute expression to
23247 handle CDX variant.
23248 * doc/md.texi (Machine Constraints): Document P constraint.
23249
23250 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
23251 Cesar Philippidis <cesar@codesourcery.com>
23252 Chung-Lin Tang <cltang@codesourcery.com>
23253
23254 * config/nios2/nios2.h (SMALL_INT12): New macro.
23255 * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
23256 (nios2_valid_addr_expr_p): Use it.
23257 (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
23258 with implicit "io" instructions on R2.
23259 * config/nios2/constraints.md (w): New constraint.
23260 * config/nios2/predicates.md (ldstio_memory_operand): New.
23261 * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
23262 operand predicate and constraint.
23263 (ld<bh>io_signed, st<bhw>io>): Likewise.
23264 * doc/md.texi (Machine Constraints): Document w constraint.
23265
23266 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
23267 Cesar Philippidis <cesar@codesourcery.com>
23268 Chung-Lin Tang <cltang@codesourcery.com>
23269
23270 * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
23271 * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
23272 Nios II architecture level.
23273 * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
23274 (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
23275 (OPTION_DEFAULT_SPECS): Define.
23276 (ASM_SPEC): Add -march= spec strings.
23277 * config/nios2/nios2.c (nios2_option_override): Check for
23278 conflicts involving new options.
23279 * config.gcc (nios2*-*-*): Support --with-arch=.
23280 * doc/invoke.texi (Option Summary, Nios II Options): Document
23281 -march=, -mbmx, and -mcdx.
23282
23283 2015-07-14 Vladimir Makarov <vmakarov@redhat.com>
23284
23285 PR rtl-optimization/66626
23286 * lra-constraints.c (lra_constraints): Prevent equivalence
23287 substitution for static chain pseudo in functions with nonlocal
23288 goto.
23289
23290 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
23291
23292 * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
23293 (nios2_emit_stack_limit_check): Add size parameter. Handle
23294 -fstack-limit-symbol as well as -fstack-limit-register.
23295 (nios2_expand_prologue): Emit only a single stack limit check,
23296 even if multiple stack adjustments are required.
23297 (nios2_option_override): Diagnose unsupported combination of -fpic
23298 and -stack-limit-symbol.
23299
23300 2015-07-14 H.J. Lu <hongjiu.lu@intel.com>
23301
23302 * Makefile.in (top_srcdir): New.
23303 * configure.ac: Use AM_ZLIB.
23304 * configure: Regeneated.
23305
23306 2015-07-14 Matthias Klose <doko@ubuntu.com>
23307
23308 PR target/66840
23309 * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
23310
23311 2015-07-14 Richard Biener <rguenther@suse.de>
23312
23313 PR tree-optimization/66863
23314 * tree-vrp.c (register_edge_assert_for_2): Properly restrict
23315 what we record for conversion use stmt lhs inequalities.
23316
23317 2015-07-14 Richard Biener <rguenther@suse.de>
23318
23319 * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
23320 (decision_tree::gen_gimple): Likewise.
23321
23322 2015-07-14 Tom de Vries <tom@codesourcery.com>
23323
23324 * gcc.c (greater_than_spec_func): Declare forward.
23325 (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
23326 -ftree-parallelize-loops={0,1}.
23327 (static_spec_functions): Add greater_than_spec_func function with name
23328 "gt".
23329 (greater_than_spec_func): New function.
23330
23331 2015-07-14 Richard Biener <rguenther@suse.de>
23332
23333 * tree-ssa-dom.c (record_temporary_equivalences): Merge
23334 wideing type conversion case from record_equivalences_from_incoming_edge
23335 and use record_equality to record equivalences.
23336 (record_equivalences_from_incoming_edge): Call
23337 record_temporary_equivalences.
23338
23339 2015-07-14 Richard Biener <rguenther@suse.de>
23340
23341 * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
23342 (struct if_expr): New.
23343 (struct with_expr): Likewise.
23344 (is_a_helper): Add helpers for if_expr and with_expr.
23345 (struct simplify): Add simplify_kind enum and member. Remove
23346 ifexpr_vec member.
23347 (simplify::simplify): Adjust.
23348 (lower_commutative): Adjust.
23349 (lower_opt_convert): Likewise.
23350 (lower_cond): Likewise.
23351 (replace_id): Handle with_expr and if_expr.
23352 (lower_for): Adjust.
23353 (dt_simplify::gen_1): New recursive worker, split out from ...
23354 (dt_simplify::gen): ... here. Deal with if and with expansion
23355 recursively.
23356 (capture_info::capture_info): Take context argument
23357 (capture_info::walk_result): Only analyze specific result.
23358 (parser::parse_result): New function.
23359 (parser::parse_simplify): Adjust to parse ifs with then end
23360 else case.
23361 (parser::parse_if): Simplify.
23362 (parser::parse_pattern): Pass down simplify kind.
23363 * match.pd: Convert if structure to new syntax.
23364
23365 2015-07-13 Marek Polacek <polacek@redhat.com>
23366
23367 * rtl.c (rtx_equal_p_cb): Fix typo.
23368
23369 2015-07-13 Andrew MacLeod <amacleod@redhat.com>
23370
23371 * omega.h: Don't include config.h, don't include params.h again if
23372 omega.h has already been included.
23373 * graphite-poly.h: Include sese.h.
23374 * graphite.c: Don't include sese.h, remove needless includes and
23375 minimize includes outside #ifdef HAVE_isl block.
23376 * graphite-blocking.c: Don't include sese.h, remove needless includes,
23377 and wrap entire file in #ifdef HAVE_isl
23378 * graphite-dependences.c: Likewise.
23379 * graphite-interchange.c: Likewise.
23380 * graphite-isl-ast-to-gimple.c: Likewise.
23381 * graphite-optimize-isl.c: Likewise.
23382 * graphite-poly.c: Likewise.
23383 * graphite-scop-detection.c: Likewise.
23384 * graphite-sese-to-poly.c: Likewise.
23385
23386 2015-07-13 Tom de Vries <tom@codesourcery.com>
23387
23388 * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
23389
23390 2015-07-13 Renlin Li <renlin.li@arm.com>
23391
23392 PR rtl/66556
23393 * simplify-rtx.c (simplify_const_relational_operation): Add
23394 side_effects_p checks.
23395
23396 2015-07-12 Aldy Hernandez <aldyh@redhat.com>
23397
23398 * bitmap.h: Fix double word typos.
23399 * builtins.c: Same.
23400 * calls.c: Same.
23401 * cfgloopmanip.c: Same.
23402 * cgraph.c: Same.
23403 * cgraph.h: Same.
23404 * cgraphclones.c: Same.
23405 * combine.c: Same.
23406 * config/aarch64/aarch64-protos.h: Same.
23407 * config/aarch64/aarch64.c: Same.
23408 * config/aarch64/aarch64.md: Same.
23409 * config/arm/arm.md: Same.
23410 * config/arm/arm1020e.md: Same.
23411 * config/arm/arm1026ejs.md: Same.
23412 * config/arm/arm926ejs.md: Same.
23413 * config/arm/fa526.md: Same.
23414 * config/arm/fa606te.md: Same.
23415 * config/arm/fa626te.md: Same.
23416 * config/arm/fa726te.md: Same.
23417 * config/arm/fmp626.md: Same.
23418 * config/darwin.c: Same.
23419 * config/epiphany/epiphany.c: Same.
23420 * config/frv/frv.c: Same.
23421 * config/ft32/ft32.c: Same.
23422 * config/gnu-user.h: Same.
23423 * config/h8300/constraints.md: Same.
23424 * config/i386/i386.c: Same.
23425 * config/i386/i386.md: Same.
23426 * config/iq2000/iq2000.md: Same.
23427 * config/mips/mips.c: Same.
23428 * config/mmix/mmix.md: Same.
23429 * config/moxie/moxie.c: Same.
23430 * config/nds32/nds32.md: Same.
23431 * config/pa/pa.h: Same.
23432 * config/rs6000/aix.h: Same.
23433 * config/rs6000/rs6000.h: Same.
23434 * config/sh/sh.c: Same.
23435 * config/tilegx/tilegx.md: Same.
23436 * config/tilepro/gen-mul-tables.cc: Same.
23437 * cse.c: Same.
23438 * dbxout.c: Same.
23439 * doc/invoke.texi: Same.
23440 * dse.c: Same.
23441 * dwarf2out.c: Same.
23442 * final.c: Same.
23443 * gcc.c: Same.
23444 * genmatch.c: Same.
23445 * gimplify.c: Same.
23446 * hash-table.h: Same.
23447 * internal-fn.c: Same.
23448 * ipa-cp.c: Same.
23449 * ipa-devirt.c: Same.
23450 * ipa-icf.c: Same.
23451 * ipa-icf.h: Same.
23452 * ipa-profile.c: Same.
23453 * ipa-prop.c: Same.
23454 * ipa-prop.h: Same.
23455 * ira.c: Same.
23456 * omp-low.c: Same.
23457 * reg-stack.c: Same.
23458 * regcprop.c: Same.
23459 * reorg.c: Same.
23460 * rtl.h: Same.
23461 * sbitmap.h: Same.
23462 * tree-eh.c: Same.
23463 * tree-inline.c: Same.
23464 * tree-sra.c: Same.
23465 * tree-ssa-dom.c: Same.
23466 * tree-ssa-loop-ivopts.c: Same.
23467 * tree-ssa-structalias.c: Same.
23468 * tree-ssa-tail-merge.c: Same.
23469 * tree-ssa-ter.c: Same.
23470 * tree-ssa-threadupdate.c: Same.
23471 * tree-ssa-uninit.c: Same.
23472 * tree-ssanames.c: Same.
23473 * tree-vect-loop-manip.c: Same.
23474 * tree-vrp.c: Same.
23475 * tree.c: Same.
23476 * valtrack.c: Same.
23477 * vec.h: Same.
23478
23479 2015-07-12 Kugan Vivekanandarajah <kuganv@linaro.org>
23480
23481 PR middle-end/66726
23482 * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
23483 tree_ssa_phiopt_worker): Call it.
23484
23485 2015-07-12 Kugan Vivekanandarajah <kuganv@linaro.org>
23486
23487 * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
23488 * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
23489 REG_EQUAL note.
23490
23491 2015-07-11 Marek Polacek <polacek@redhat.com>
23492
23493 PR middle-end/66353
23494 * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
23495 * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
23496 (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
23497 rather than bb_has_abnormal_call_pred.
23498 * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
23499 (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
23500 rather than bb_has_abnormal_call_pred.
23501
23502 2015-07-10 Anatoly Sokolov <aesok@post.ru>
23503
23504 * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
23505 REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
23506 RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
23507 * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
23508 v850_legitimate_address_p): New functions.
23509 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
23510
23511 2015-07-10 H.J. Lu <hongjiu.lu@intel.com>
23512
23513 PR target/66819
23514 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
23515 indirect sibcall with register arguments if register available
23516 for argument passing.
23517 (init_cumulative_args): Set cfun->machine->arg_reg_available
23518 to (cum->nregs > 0) or to true if function has a variable
23519 argument list.
23520 (function_arg_advance_32): Set cfun->machine->arg_reg_available
23521 to false if cum->nregs <= 0.
23522 * config/i386/i386.h (machine_function): Add arg_reg_available.
23523
23524 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
23525
23526 * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
23527 and gen_higpart instead of gen_rtx_SUBREG.
23528 * config/i386/i386.md
23529 (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
23530 (read-modify peephole2): Use gen_lowpart instead of
23531 gen_rtx_SUBREG for operand 5.
23532
23533 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
23534
23535 * config/tilepro/gen-mul-tables.cc (main): Change include list for
23536 generated files.
23537 * config/tilepro/mul-tables.c: Regenerate.
23538 * config/tilegx/mul-tables.c: Regenerate.
23539
23540 2015-07-10 Richard Biener <rguenther@suse.de>
23541
23542 * fold-const.c (distribute_bit_expr): Remove.
23543 (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
23544 to (A & C1) | (B & C2), distributing (A & B) | (A & C)
23545 to A & (B | C) and simplifying A << C1 << C2 to ...
23546 * match.pd: ... patterns here.
23547
23548 2015-07-10 Jiong Wang <jiong.wang@arm.com>
23549
23550 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
23551 Mark mem as READONLY and NOTRAP for PIC symbol.
23552
23553 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
23554
23555 * gimple-predict.h: New file.
23556 (gimple_predict_predictor, gimple_predict_set_predictor,
23557 gimple_predict_outcome, gimple_predict_set_outcome,
23558 gimple_build_predict): Relocate here.
23559 * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
23560 gimple_predict_outcome, gimple_predict_set_outcome): Move to
23561 gimple-predict.h.
23562 * gimple.c (gimple_build_predict): Move to gimple-predict.h
23563 * basic-block.h: Don't include cfghooks.h.
23564 * backend.h: Don't include predict.h.
23565 * cfghooks.h: Include predict.h.
23566 * gimple-pretty-print.c: Include gimple-predict.h.
23567 * gimplify.c: Likwise.
23568 * predict.c: Adjust includes.
23569 * tree-inline.c: Likewise.
23570 * asan.c: Likewise.
23571 * auto-inc-dec.c: Likewise.
23572 * auto-profile.c: Likewise.
23573 * bb-reorder.c: Likewise.
23574 * builtins.c: Likewise.
23575 * caller-save.c: Likewise.
23576 * calls.c: Likewise.
23577 * cfganal.c: Likewise.
23578 * cfgbuild.c: Likewise.
23579 * cfg.c: Likewise.
23580 * cfgcleanup.c: Likewise.
23581 * cfgexpand.c: Likewise.
23582 * cfghooks.c: Likewise.
23583 * cfgloopanal.c: Likewise.
23584 * cfgloop.c: Likewise.
23585 * cfgloopmanip.c: Likewise.
23586 * cfgrtl.c: Likewise.
23587 * cgraph.c: Likewise.
23588 * cgraphunit.c: Likewise.
23589 * combine.c: Likewise.
23590 * cprop.c: Likewise.
23591 * cse.c: Likewise.
23592 * dce.c: Likewise.
23593 * dojump.c: Likewise.
23594 * dse.c: Likewise.
23595 * except.c: Likewise.
23596 * expmed.c: Likewise.
23597 * expr.c: Likewise.
23598 * final.c: Likewise.
23599 * fold-const.c: Likewise.
23600 * function.c: Likewise.
23601 * fwprop.c: Likewise.
23602 * gcc-plugin.h: Likewise.
23603 * gcse.c: Likewise.
23604 * genattrtab.c: Likewise.
23605 * genemit.c: Likewise.
23606 * gengtype.c: Likewise.
23607 * genopinit.c: Likewise.
23608 * genoutput.c: Likewise.
23609 * genpreds.c: Likewise.
23610 * genrecog.c: Likewise.
23611 * gimple-fold.c: Likewise.
23612 * gimple-iterator.c: Likewise.
23613 * gimple-ssa-isolate-paths.c: Likewise.
23614 * gimple-ssa-strength-reduction.c: Likewise.
23615 * graph.c: Likewise.
23616 * graphite-blocking.c: Likewise.
23617 * graphite.c: Likewise.
23618 * graphite-dependences.c: Likewise.
23619 * graphite-interchange.c: Likewise.
23620 * graphite-isl-ast-to-gimple.c: Likewise.
23621 * graphite-optimize-isl.c: Likewise.
23622 * graphite-poly.c: Likewise.
23623 * graphite-scop-detection.c: Likewise.
23624 * graphite-sese-to-poly.c: Likewise.
23625 * haifa-sched.c: Likewise.
23626 * ifcvt.c: Likewise.
23627 * internal-fn.c: Likewise.
23628 * ipa-cp.c: Likewise.
23629 * ipa-profile.c: Likewise.
23630 * ipa-split.c: Likewise.
23631 * ipa-utils.c: Likewise.
23632 * ira-build.c: Likewise.
23633 * ira-color.c: Likewise.
23634 * ira-conflicts.c: Likewise.
23635 * ira-costs.c: Likewise.
23636 * ira-emit.c: Likewise.
23637 * ira-lives.c: Likewise.
23638 * jump.c: Likewise.
23639 * loop-doloop.c: Likewise.
23640 * loop-init.c: Likewise.
23641 * loop-invariant.c: Likewise.
23642 * loop-unroll.c: Likewise.
23643 * lower-subreg.c: Likewise.
23644 * lra-assigns.c: Likewise.
23645 * lra.c: Likewise.
23646 * lra-coalesce.c: Likewise.
23647 * lra-constraints.c: Likewise.
23648 * lra-lives.c: Likewise.
23649 * lto-cgraph.c: Likewise.
23650 * lto-streamer-in.c: Likewise.
23651 * mode-switching.c: Likewise.
23652 * modulo-sched.c: Likewise.
23653 * omp-low.c: Likewise.
23654 * optabs.c: Likewise.
23655 * passes.c: Likewise.
23656 * postreload.c: Likewise.
23657 * postreload-gcse.c: Likewise.
23658 * profile.c: Likewise.
23659 * recog.c: Likewise.
23660 * regstat.c: Likewise.
23661 * reload1.c: Likewise.
23662 * reorg.c: Likewise.
23663 * rtlanal.c: Likewise.
23664 * sched-ebb.c: Likewise.
23665 * sel-sched-ir.c: Likewise.
23666 * sese.c: Likewise.
23667 * shrink-wrap.c: Likewise.
23668 * simplify-rtx.c: Likewise.
23669 * stmt.c: Likewise.
23670 * store-motion.c: Likewise.
23671 * tracer.c: Likewise.
23672 * trans-mem.c: Likewise.
23673 * tree-call-cdce.c: Likewise.
23674 * tree-cfg.c: Likewise.
23675 * tree-cfgcleanup.c: Likewise.
23676 * tree-chkp.c: Likewise.
23677 * tree-complex.c: Likewise.
23678 * tree-eh.c: Likewise.
23679 * tree-if-conv.c: Likewise.
23680 * tree-loop-distribution.c: Likewise.
23681 * tree-outof-ssa.c: Likewise.
23682 * tree-parloops.c: Likewise.
23683 * tree-predcom.c: Likewise.
23684 * tree-pretty-print.c: Likewise.
23685 * tree-profile.c: Likewise.
23686 * tree-sra.c: Likewise.
23687 * tree-ssa.c: Likewise.
23688 * tree-ssa-coalesce.c: Likewise.
23689 * tree-ssa-dce.c: Likewise.
23690 * tree-ssa-dom.c: Likewise.
23691 * tree-ssa-forwprop.c: Likewise.
23692 * tree-ssa-ifcombine.c: Likewise.
23693 * tree-ssa-loop-ch.c: Likewise.
23694 * tree-ssa-loop-im.c: Likewise.
23695 * tree-ssa-loop-ivcanon.c: Likewise.
23696 * tree-ssa-loop-ivopts.c: Likewise.
23697 * tree-ssa-loop-manip.c: Likewise.
23698 * tree-ssa-loop-prefetch.c: Likewise.
23699 * tree-ssa-loop-unswitch.c: Likewise.
23700 * tree-ssa-math-opts.c: Likewise.
23701 * tree-ssa-phiopt.c: Likewise.
23702 * tree-ssa-pre.c: Likewise.
23703 * tree-ssa-reassoc.c: Likewise.
23704 * tree-ssa-sink.c: Likewise.
23705 * tree-ssa-tail-merge.c: Likewise.
23706 * tree-ssa-threadedge.c: Likewise.
23707 * tree-ssa-threadupdate.c: Likewise.
23708 * tree-switch-conversion.c: Likewise.
23709 * tree-tailcall.c: Likewise.
23710 * tree-vect-data-refs.c: Likewise.
23711 * tree-vect-loop.c: Likewise.
23712 * tree-vect-loop-manip.c: Likewise.
23713 * tree-vectorizer.c: Likewise.
23714 * tree-vrp.c: Likewise.
23715 * ubsan.c: Likewise.
23716 * value-prof.c: Likewise.
23717 * varasm.c: Likewise.
23718 * var-tracking.c: Likewise.
23719 * config/aarch64/aarch64-builtins.c: Likewise.
23720 * config/aarch64/aarch64.c: Likewise.
23721 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
23722 * config/alpha/alpha.c: Likewise.
23723 * config/arc/arc.c: Likewise.
23724 * config/arm/arm.c: Likewise.
23725 * config/avr/avr.c: Likewise.
23726 * config/bfin/bfin.c: Likewise.
23727 * config/c6x/c6x.c: Likewise.
23728 * config/cr16/cr16.c: Likewise.
23729 * config/cris/cris.c: Likewise.
23730 * config/darwin.c: Likewise.
23731 * config/darwin-c.c: Likewise.
23732 * config/epiphany/epiphany.c: Likewise.
23733 * config/epiphany/mode-switch-use.c: Likewise.
23734 * config/epiphany/resolve-sw-modes.c: Likewise.
23735 * config/fr30/fr30.c: Likewise.
23736 * config/frv/frv.c: Likewise.
23737 * config/ft32/ft32.c: Likewise.
23738 * config/h8300/h8300.c: Likewise.
23739 * config/i386/i386.c: Likewise.
23740 * config/i386/winnt.c: Likewise.
23741 * config/ia64/ia64.c: Likewise.
23742 * config/iq2000/iq2000.c: Likewise.
23743 * config/lm32/lm32.c: Likewise.
23744 * config/m32c/m32c.c: Likewise.
23745 * config/m32r/m32r.c: Likewise.
23746 * config/m68k/m68k.c: Likewise.
23747 * config/mcore/mcore.c: Likewise.
23748 * config/mep/mep.c: Likewise.
23749 * config/microblaze/microblaze.c: Likewise.
23750 * config/mips/mips.c: Likewise.
23751 * config/mmix/mmix.c: Likewise.
23752 * config/mn10300/mn10300.c: Likewise.
23753 * config/moxie/moxie.c: Likewise.
23754 * config/msp430/msp430.c: Likewise.
23755 * config/nds32/nds32.c: Likewise.
23756 * config/nds32/nds32-cost.c: Likewise.
23757 * config/nds32/nds32-fp-as-gp.c: Likewise.
23758 * config/nds32/nds32-intrinsic.c: Likewise.
23759 * config/nds32/nds32-isr.c: Likewise.
23760 * config/nds32/nds32-md-auxiliary.c: Likewise.
23761 * config/nds32/nds32-memory-manipulation.c: Likewise.
23762 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
23763 * config/nds32/nds32-predicates.c: Likewise.
23764 * config/nios2/nios2.c: Likewise.
23765 * config/nvptx/nvptx.c: Likewise.
23766 * config/pa/pa.c: Likewise.
23767 * config/pdp11/pdp11.c: Likewise.
23768 * config/rl78/rl78.c: Likewise.
23769 * config/rs6000/rs6000.c: Likewise.
23770 * config/rx/rx.c: Likewise.
23771 * config/s390/s390.c: Likewise.
23772 * config/sh/sh.c: Likewise.
23773 * config/sh/sh-mem.cc: Likewise.
23774 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
23775 * config/sh/sh_treg_combine.cc: Likewise.
23776 * config/sparc/sparc.c: Likewise.
23777 * config/spu/spu.c: Likewise.
23778 * config/stormy16/stormy16.c: Likewise.
23779 * config/tilegx/tilegx.c: Likewise.
23780 * config/tilepro/tilepro.c: Likewise.
23781 * config/v850/v850.c: Likewise.
23782 * config/vax/vax.c: Likewise.
23783 * config/visium/visium.c: Likewise.
23784 * config/xtensa/xtensa.c: Likewise.
23785
23786 2015-07-10 Richard Biener <rguenther@suse.de>
23787
23788 * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
23789 (decision_tree::gen_gimple): Likewise.
23790 (decision_tree::gen_generic): Likewise.
23791
23792 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
23793
23794 PR target/66813
23795 * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
23796 sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
23797
23798 2015-07-10 Jakub Jelinek <jakub@redhat.com>
23799
23800 PR middle-end/66820
23801 * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
23802 or ORT_TASK contexts.
23803 * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
23804 is non-zero.
23805
23806 2015-07-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23807
23808 * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
23809 above function.
23810
23811 2015-07-10 Tom de Vries <tom@codesourcery.com>
23812
23813 * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
23814 insert nit + 1 bound.
23815
23816 2015-07-10 Richard Biener <rguenther@suse.de>
23817
23818 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
23819 Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
23820 (if_convertible_loop_p_1): For this always compute bb predicates.
23821 (if_convertible_loop_p): And free them.
23822
23823 2015-07-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
23824
23825 * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
23826 in dump message.
23827
23828 2015-07-10 Richard Biener <rguenther@suse.de>
23829
23830 PR tree-optimization/66823
23831 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
23832 inverted predicate.
23833
23834 2015-07-09 Steve Ellcey <sellcey@imgtec.com>
23835
23836 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
23837 to handle mips[32|64]r3 and mips[32|64]r5.
23838
23839 2015-07-09 Jakub Jelinek <jakub@redhat.com>
23840
23841 PR middle-end/66633
23842 * tree-nested.c (get_static_chain): Or in a flag into
23843 info->static_chain_added.
23844 (get_frame_field, get_nonlocal_debug_decl): Likewise.
23845 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
23846 2015-07-01 changes.
23847 (convert_tramp_reference_stmt): If a frame_decl or chain_decl
23848 is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
23849 add it to clauses.
23850
23851 PR tree-optimization/66718
23852 * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
23853 field.
23854 (vect_simd_lane_linear): New function.
23855 (vectorizable_simd_clone_call): Support using linear arguments for
23856 addresses of arrays elements indexed by GOMP_SIMD_LANE result.
23857
23858 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
23859
23860 PR target/66821
23861 * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
23862
23863 2015-07-09 Michael Meissner <meissner@linux.vnet.ibm.com>
23864
23865 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
23866 Use machine mode, not enum machine_mode in the prototype.
23867
23868 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
23869 classify 128-bit floating point support.
23870 (FLOAT128_IBM_P): Likewise.
23871 (FLOAT128_VECTOR_P): Likewise.
23872 (FLOAT128_2REG_P): Likewise.
23873 (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
23874 (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
23875 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
23876 (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
23877
23878 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
23879 tests against TFmode/TDmode, since those modes do not use VSX
23880 addresses.
23881 (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
23882 support.
23883 (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
23884 tests against TFmode, etc.
23885 (invalid_e500_subreg): Add tests against IFmode/KFmode.
23886 (reg_offset_addressing_ok_p): Likewise.
23887 (rs6000_legitimate_offset_address_p): Likewise.
23888 (rs6000_legitimize_address): Likewise.
23889 (rs6000_legitimize_reload_address): Likewise.
23890 (rs6000_legitimate_address_p): Clean up tests against TFmode and
23891 TDmode to use the new helper macros, which will include IFmode and
23892 KFmode.
23893 (rs6000_emit_move): Likewise.
23894 (rs6000_darwin64_record_arg_recurse): Likewise.
23895 (print_operand): Likewise.
23896 (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
23897 that uses a single vector register as a vector and not as a
23898 floating point register in terms of the calling sequence.
23899 (rs6000_discover_homogeneous_aggregate): Likewise.
23900 (rs6000_return_in_memory): Likewise.
23901 (init_cumulative_args): Likewise.
23902 (rs6000_function_arg_boundary): Likewise.
23903 (rs6000_function_arg_advance_1): Likewise.
23904 (rs6000_function_arg): Likewise.
23905 (rs6000_pass_by_reference): Likewise.
23906 (rs6000_gimplify_va_arg): Likewise.
23907 (rs6000_secondary_reload_memory): Use machine_mode not enum
23908 machine mode.
23909 (rs6000_split_multireg_move): Use new helper macros.
23910 (spe_func_has_64bit_regs_p): Likewise.
23911 (rs6000_output_function_epilogue): Add IFmode/KFmode support.
23912 (output_toc): Use new helper macros.
23913 (rs6000_register_move_cost): Likewise.
23914 (rs6000_function_value): Add IEEE 128-bit floating point calling
23915 sequence support.
23916 (rs6000_libcall_value): Likewise.
23917 (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
23918 floating point support.
23919 (rs6000_vector_mode_supported_p): Likewise.
23920
23921 2015-07-09 Vladimir Makarov <vmakarov@redhat.com>
23922
23923 PR rtl-optimization/66782
23924 * lra-int.h (struct lra_insn_recog_data): Add comment about
23925 clobbered hard regs for arg_hard_regs.
23926 * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
23927 * lra-lives.c (process_bb_lives): Process clobbered hard regs.
23928 Add condition for processing used hard regs.
23929 * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
23930 Process clobbered hard regs.
23931
23932 2015-07-09 Michael Matz <matz@suse.de>
23933
23934 * genmatch.c (fprintf_indent): New function.
23935 (operand::gen_transform): Add indent parameter.
23936 (expr::gen_transform, c_expr::gen_transform,
23937 capture::gen_transform): Ditto and use fprintf_indent.
23938 (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
23939 (dt_operand::gen, dt_operand::gen_predicate,
23940 dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
23941 dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
23942 (decision_tree::gen_gimple): Adjust calls and indent generated
23943 code.
23944 (decision_tree::gen_generic): Ditto.
23945 (write_predicate): Ditto.
23946
23947 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
23948
23949 PR target/66814
23950 * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
23951 * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
23952 (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
23953 {GENERAL,SSE,MMX}_REG_P where appropriate.
23954
23955 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
23956
23957 * lto-streamer.h: Don't include target.h and alloc-pool.h.
23958 * builtins.c: Adjust includes.
23959 * gimple.c: Likewise.
23960 * ipa-icf.c: Likewise.
23961 * lto-opts.c: Likewise.
23962 * ipa-reference.c: Likewise.
23963 * lto-section-out.c: Likewise.
23964 * lto-streamer-in.c: Likewise.
23965 * lto-streamer-out.c: Likewise.
23966 * opts-global.c: Likewise.
23967 * symtab.c: Likewise.
23968 * tree-chkp.c: Likewise.
23969 * tree-ssa-live.c: Likewise.
23970 * tree-streamer-in.c: Likewise.
23971 * tree-streamer-out.c: Likewise.
23972 * config/darwin.c: Likewise.
23973 * config/i386/winnt.c: Likewise.
23974
23975 2015-07-09 Richard Biener <rguenther@suse.de>
23976
23977 * genmatch.c (struct expr): Add force_single_use flag.
23978 (expr::expr): Add copy constructor.
23979 (capture_info::walk_match): Gather force_single_use captures.
23980 (expr::gen_transform): Use possibly NULLified sequence.
23981 (dt_simplify::gen): Apply single-use restrictions by NULLifying
23982 seq if any constrained expr is not single-use.
23983 (parser::parse_expr): Refactor to allow multiple flags. Handle
23984 's' flag to force an expression have a single-use if the pattern
23985 simplifies to more than one statement.
23986 * match.pd: Convert most single_use conditionals to :s flags.
23987
23988 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
23989
23990 * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
23991 (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
23992 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
23993
23994 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
23995
23996 * flags.h: Don't include flag-types.h or options.h.
23997 * opts-common.c: Adjust includes.
23998 * opts-global.c: Likewise.
23999 * common/config/epiphany/epiphany-common.c: Likewise.
24000
24001 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
24002
24003 PR target/66818
24004 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
24005 for IA MCU.
24006
24007 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
24008
24009 PR target/66817
24010 * config/i386/i386.c (ix86_return_in_memory): Return true
24011 if int_size_in_bytes returns negative for IA MCU.
24012
24013 2015-07-09 Marek Polacek <polacek@redhat.com>
24014
24015 PR tree-optimization/66718
24016 * Makefile.in (OBJS): Add gimple-laddress.o.
24017 * passes.def: Schedule pass_laddress.
24018 * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
24019 * tree-pass.h (make_pass_laddress): Declare.
24020 * gimple-laddress.c: New file.
24021
24022 2015-07-09 Richard Biener <rguenther@suse.de>
24023
24024 * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
24025
24026 2015-07-09 Richard Biener <rguenther@suse.de>
24027
24028 PR tree-optimization/66807
24029 * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
24030
24031 2015-07-08 Kito Cheng <kito.cheng@gmail.com>
24032
24033 * function.c (stack_protect_epilogue): Use if rather than switch for
24034 check targetm.have_stack_protect_test.
24035
24036 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24037
24038 * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
24039 * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
24040 * config/arc/arc.h: Likewise.
24041 * config/arm/arm.h: Likewise.
24042 * config/bfin/bfin.h: Likewise.
24043 * config/epiphany/epiphany.h: Likewise.
24044 * config/frv/frv.h: Likewise.
24045 * config/ia64/ia64.h: Likewise.
24046 * config/iq2000/iq2000.h: Likewise.
24047 * config/lm32/lm32.h: Likewise.
24048 * config/m32r/m32r.h: Likewise.
24049 * config/mcore/mcore.h: Likewise.
24050 * config/mep/mep.h: Likewise.
24051 * config/microblaze/microblaze.h: Likewise.
24052 * config/mips/mips.h: Likewise.
24053 * config/mmix/mmix.h: Likewise.
24054 * config/mn10300/mn10300.h: Likewise.
24055 * config/nds32/nds32.h: Likewise.
24056 * config/nios2/nios2.h: Likewise.
24057 * config/pa/pa.h: Likewise.
24058 * config/rl78/rl78.h: Likewise.
24059 * config/sh/sh.h: Likewise.
24060 * config/sparc/sparc.h: Likewise.
24061 * config/stormy16/stormy16.h: Likewise.
24062 * config/tilegx/tilegx.h: Likewise.
24063 * config/tilepro/tilepro.h: Likewise.
24064 * config/v850/v850.h: Likewise.
24065 * config/xtensa/xtensa.h: Likewise.
24066 * doc/tm.texi: Regenerate.
24067 * doc/tm.texi.in: Adjust.
24068 * combine.c (simplify_set): Likewise.
24069 (simplify_comparison): Likewise.
24070 * expr.c (store_constructor): Likewise.
24071 * internal-fn.c (expand_arith_overflow): Likewise.
24072 * reload.c (push_reload): Likewise.
24073 (find_reloads): Likewise.
24074 (find_reloads_subreg_address): Likewise.
24075 * reload1.c (eliminate_regs_1): Likewise.
24076 * rtlanal.c (nonzero_bits1): Likewise.
24077 (num_sign_bit_copies1): Likewise.
24078 * simplify-rtx.c (simplify_truncation): Likewise.
24079
24080 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24081
24082 * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
24083 of AUTO_INC_DEC with the preprocessor.
24084 * combine.c (combine_instructions): Likewise.
24085 (can_combine_p): Likewise.
24086 (try_combine): Likewise.
24087 * emit-rtl.c (try_split): Likewise.
24088 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
24089 * lower-subreg.c (resolve_simple_move): Likewise.
24090 * lra.c (update_inc_notes): Likewise.
24091 * recog.c (asm_operand_ok): Likewise.
24092 (constrain_operands): Likewise.
24093 * regrename.c (scan_rtx_address): Likewise.
24094 * reload.c (update_auto_inc_notes): Likewise.
24095 (reg_inc_found_and_valid_p): Likewise.
24096 * reload1.c (reload): Likewise.
24097 (emit_input_reload_insns): Likewise.
24098 (delete_output_reload): Likewise.
24099 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
24100 * valtrack.c (cleanup_auto_inc_dec): Likewise.
24101
24102 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24103
24104 * rtl.h: Always define AUTO_INC_DEC.
24105 * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
24106 * combine.c (combine_instructions): Likewise.
24107 (can_combine_p): Likewise.
24108 (try_combine): Likewise.
24109 * emit-rtl.c (try_split): Likewise.
24110 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
24111 * lower-subreg.c (resolve_simple_move): Likewise.
24112 * lra.c (update_inc_notes): Likewise.
24113 * recog.c (asm_operand_ok): Likewise.
24114 (constrain_operands): Likewise.
24115 * regrename.c (scan_rtx_address): Likewise.
24116 * reload.c (update_auto_inc_notes): Likewise.
24117 (find_equiv_reg): Likewise.
24118 * reload1.c (reload): Likewise.
24119 (reload_as_needed): Likewise.
24120 (choose_reload_regs): Likewise.
24121 (emit_input_reload_insns): Likewise.
24122 (delete_output_reload): Likewise.
24123 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
24124 * valtrack.c (cleanup_auto_inc_dec): Likewise.
24125
24126 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24127
24128 * combine.c (can_combine_def_p): Don't check the value of
24129 HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
24130 (combinable_i3pat): Likewise.
24131 (mark_used_regs_combine): Likewise.
24132 * regrename.c (rename_chains): Likewise.
24133 * reload.c (find_reloads_address): Likewise.
24134 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
24135
24136 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24137
24138 * combine.c (update_rsp_from_reg_equal): Don't check if
24139 SHORT_IMMEDIATES_SIGN_EXTEND is defined.
24140 (reg_nonzero_bits_for_combine): Likewise.
24141 * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
24142 1.
24143 * config/frv/frv.h: Likewise.
24144 * config/lm32/lm32.h: Likewise.
24145 * config/mep/mep.h: Likewise.
24146 * config/mips/mips.h: Likewise.
24147 * config/rs6000/rs6000.h: Likewise.
24148 * config/sh/sh.h: Likewise.
24149 * config/tilegx/tilegx.h (enum reg_class): Likewise.
24150 * config/tilepro/tilepro.h: Likewise.
24151 * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
24152 * doc/tm.texi: Regenerate.
24153 * doc/tm.texi.in: Adjust.
24154 * rtlanal.c (nonzero_bits1): Likewise.
24155
24156 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24157
24158 * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
24159 with the preprocessor.
24160 (combine_instructions): Likewise.
24161 (try_combine): Likewise.
24162 (subst): Likewise.
24163 (distribute_notes): Likewise.
24164
24165 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24166
24167 * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
24168 defined.
24169 (simplify_set): Likewise.
24170 * cse.c (cse_insn): Likewise.
24171 * fold-const.c (fold_single_bit_test): Likewise.
24172 (fold_unary_loc): Likewise.
24173 * postreload.c (reload_cse_simplify_set): Likewise.
24174 (reload_cse_simplify_operands): Likewise.
24175
24176 2015-07-08 Jiong Wang <jiong.wang@arm.com>
24177
24178 * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
24179 (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
24180
24181 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
24182
24183 PR target/66746
24184 * config/i386/x86intrin.h: Include <adxintrin.h> even if
24185 __iamcu__ is defined.
24186
24187 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
24188
24189 * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
24190
24191 2015-07-08 Iain Sandoe <iain@codesourcery.com>
24192
24193 PR target/66523
24194 * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
24195 names from preservation.
24196
24197 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
24198
24199 PR target/66806
24200 * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
24201 change for IAMCU.
24202 (function_arg_advance_32): Don't pass vectors in registers for
24203 IAMCU.
24204 (function_arg_32): Likewise.
24205 (ix86_return_in_memory): Don't return vectors in registers for
24206 IAMCU.
24207
24208 2015-07-08 Vladimir Makarov <vmakarov@redhat.com>
24209
24210 PR middle-end/66334
24211 * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
24212 hard regno live at the start of BB with incoming abnormal edges.
24213 * lra-lives.c (process_bb_lives): Ditto.
24214
24215 2015-07-08 Thomas Schwinge <thomas@codesourcery.com>
24216
24217 PR libgomp/65099
24218 * config/nvptx/mkoffload.c (main): Create an offload image only in
24219 64-bit configurations.
24220
24221 2015-07-08 Martin Liska <mliska@suse.cz>
24222
24223 PR bootstrap/66744
24224 * tree-sra.c (create_access_1): Call ctor without brackets.
24225 (create_artificial_child_access): Likewise.
24226
24227 2015-07-08 Richard Biener <rguenther@suse.de>
24228
24229 PR tree-optimization/66793
24230 * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
24231 Properly split the block after stmts ending it.
24232
24233 2015-07-08 Richard Biener <rguenther@suse.de>
24234
24235 PR tree-optimization/66794
24236 * passes.c (execute_function_todo): Assert that post-dominators
24237 are not computed.
24238 * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
24239 Free post-dominators.
24240
24241 2015-07-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24242
24243 * config/s390/s390.c (s390_init_frame_layout): Replace assertion
24244 with early exit.
24245
24246 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
24247
24248 * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
24249 more than or equal 8 and less than 32 when optimizing for size.
24250
24251 2015-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24252
24253 * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
24254 COSTS_N_INSNS (1) and increment it appropriately throughout the
24255 function.
24256
24257 2015-07-08 Richard Biener <rguenther@suse.de>
24258
24259 * fold-const.c (fold_widened_comparison): Fix inverted comparison.
24260
24261 2015-07-08 Alan Modra <amodra@gmail.com>
24262
24263 * target.def (rtx_costs): Remove "code" param, add "mode".
24264 * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
24265 (set_src_cost, get_full_set_src_cost): Likewise. Move later in file.
24266 (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
24267 * rtlanal.c (rtx_cost): Add "mode" parameter. Update targetm.rtx_costs
24268 call. Track mode when given in rtx.
24269 (get_full_rtx_cost): Add "mode" parameter. Update rtx_cost calls.
24270 (default_address_cost): Pass Pmode to rtx_cost.
24271 (insn_rtx_cost): Pass dest mode of set to set_src_cost.
24272 * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
24273 with NULL set.
24274 * cse.c (COST, COST_IN): Add MODE param. Update all uses.
24275 (notreg_cost): Add mode param. Use it.
24276 * gcse.c (want_to_gcse_p): Delete forward declaration. Add
24277 mode param and pass to set_src_cost. Update all calls.
24278 (hash_scan_set): Formatting.
24279 * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
24280 (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
24281 * hooks.h: Ditto.
24282 * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
24283 init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
24284 emit_store_flag): Update set_src_cost and rtx_cost calls.
24285 * auto-inc-dec.c (attempt_change): Likewise.
24286 * calls.c (precompute_register_parameters): Likewise.
24287 * combine.c (expand_compound_operation, make_extraction,
24288 force_to_mode, distribute_and_simplify_rtx): Likewise.
24289 * dojump.c (prefer_and_bit_test): Likewise.
24290 * dse.c (find_shift_sequence): Likewise.
24291 * expr.c (compress_float_constant): Likewise.
24292 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
24293 * ifcvt.c (noce_try_sign_mask): Likewise.
24294 * loop-doloop.c (doloop_optimize): Likewise.
24295 * loop-invariant.c (create_new_invariant): Likewise.
24296 * lower-subreg.c (shift_cost, compute_costs): Likewise.
24297 * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
24298 lshift_cheap_p): Likewise.
24299 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
24300 try_replace_in_use, reload_cse_move2add): Likewise.
24301 * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
24302 Likewise.
24303 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
24304 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
24305 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
24306 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
24307 * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
24308 add "mode" param. Use "mode: in place of GET_MODE (x). Pass mode
24309 to rtx_cost calls.
24310 * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
24311 * config/arc/arc.c (arc_rtx_costs): Likewise.
24312 * config/arm/arm.c (arm_rtx_costs): Likewise.
24313 * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
24314 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
24315 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
24316 * config/cris/cris.c (cris_rtx_costs): Likewise.
24317 * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
24318 * config/frv/frv.c (frv_rtx_costs): Likewise.
24319 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
24320 * config/i386/i386.c (ix86_rtx_costs): Likewise.
24321 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
24322 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
24323 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
24324 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
24325 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
24326 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
24327 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
24328 * config/mep/mep.c (mep_rtx_cost): Likewise.
24329 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
24330 * config/mips/mips.c (mips_rtx_costs): Likewise.
24331 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
24332 * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
24333 * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
24334 * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
24335 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
24336 * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
24337 * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
24338 * config/pa/pa.c (hppa_rtx_costs): Likewise.
24339 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
24340 * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
24341 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
24342 * config/s390/s390.c (s390_rtx_costs): Likewise.
24343 * config/sh/sh.c (sh_rtx_costs): Likewise.
24344 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
24345 * config/spu/spu.c (spu_rtx_costs): Likewise.
24346 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
24347 * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
24348 * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
24349 * config/v850/v850.c (v850_rtx_costs): Likewise.
24350 * config/vax/vax.c (vax_rtx_costs): Likewise.
24351 * config/visium/visium.c (visium_rtx_costs): Likewise.
24352 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
24353 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
24354 "code" param, and pass as outer_code to first rtx_cost call. Pass
24355 mode to rtx_cost calls.
24356 (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
24357 calls.
24358 (aarch64_rtx_costs_wrapper): Update.
24359 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
24360 arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
24361 rtx_cost calls.
24362 * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
24363 and rtx_cost calls.
24364 (avr_operand_rtx_cost): Similarly.
24365 (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
24366 for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
24367 * config/mips/mips.c (mips_stack_address_p): Comment typo.
24368 (mips_binary_cost): Update rtx_cost and set_src_cost calls.
24369 (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
24370 * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
24371 rtx_cost.
24372 (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
24373 * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
24374 * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
24375 * doc/tm.texi: Regenerate.
24376
24377 2015-07-07 Andrew MacLeod <amacleod@redhat.com>
24378
24379 * tree-core.h: Include symtab.h.
24380 * rtl.h: Include hard-reg-set.h but not flags.h.
24381 (HARD_CONST): Remove condition compilation involving HARD_CONST since
24382 hard-reg-set.h is always included.
24383 * regs.h: Don't include hard-reg-set.h or rtl.h.
24384 * cfg.h: Include dominance.h.
24385 * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
24386 * backend.h: New. Aggregate commonly used backend header files.
24387 * gimple-ssa.h: Don't include tree-hasher.h.
24388 * ssa.h: New. Aggregate commonly used SSA header files.
24389 * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
24390 * sel-sched-ir.h: Flatten includes.
24391 * lra-int.h: Flatten completely.
24392 * sel-sched-dump.h: Flatten includes.
24393 * ira-int.h: Flatten includes.
24394 * gimple-streamer.h: Remove all includes.
24395 * cfgloop.h: Remove all #includes except cfgloopmanip.h.
24396 * resource.h: Flatten hard-reg-set.h and df.h.
24397 * sched-int.h: Flatten insn-arrt.h and df.h.
24398 * valtrack.h: flatten bitmap.h, df.h, and rtl.h
24399 * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
24400 * genattrtab.c (write_header): Adjust generated includes.
24401 * genautomata.c (main): Likewise.
24402 * genconditions.c (write-header): Likewise.
24403 * genemit.c (main): Likewise.
24404 * gengtype.c (open_base_files): Likewise.
24405 * genopinit.c (main): Likewise.
24406 * genoutput.c (output_prologue): Likewise.
24407 * genpeep.c (main): Likewise.
24408 * genpreds.c (write_insn_preds_c): Likewise.
24409 * genrecog.c (write_header): Likewise.
24410 * alias.c: Adjust includes.
24411 * asan.c: Likewise.
24412 * attribs.c: Likewise.
24413 * auto-inc-dec.c: Likewise.
24414 * auto-profile.c: Likewise.
24415 * bb-reorder.c: Likewise.
24416 * bt-load.c: Likewise.
24417 * builtins.c: Likewise.
24418 * caller-save.c: Likewise.
24419 * calls.c: Likewise.
24420 * ccmp.c: Likewise.
24421 * cfg.c: Likewise.
24422 * cfganal.c: Likewise.
24423 * cfgbuild.c: Likewise.
24424 * cfgcleanup.c: Likewise.
24425 * cfgexpand.c: Likewise.
24426 * cfghooks.c: Likewise.
24427 * cfgloop.c: Likewise.
24428 * cfgloopanal.c: Likewise.
24429 * cfgloopmanip.c: Likewise.
24430 * cfgrtl.c: Likewise.
24431 * cgraph.c: Likewise.
24432 * cgraphbuild.c: Likewise.
24433 * cgraphclones.c: Likewise.
24434 * cgraphunit.c: Likewise.
24435 * cilk-common.c: Likewise.
24436 * combine-stack-adj.c: Likewise.
24437 * combine.c: Likewise.
24438 * compare-elim.c: Likewise.
24439 * convert.c: Likewise.
24440 * coverage.c: Likewise.
24441 * cppbuiltin.c: Likewise.
24442 * cprop.c: Likewise.
24443 * cse.c: Likewise.
24444 * cselib.c: Likewise.
24445 * data-streamer-in.c: Likewise.
24446 * data-streamer-out.c: Likewise.
24447 * data-streamer.c: Likewise.
24448 * dbxout.c: Likewise.
24449 * dce.c: Likewise.
24450 * ddg.c: Likewise.
24451 * debug.c: Likewise.
24452 * df-core.c: Likewise.
24453 * df-problems.c: Likewise.
24454 * df-scan.c: Likewise.
24455 * dfp.c: Likewise.
24456 * dojump.c: Likewise.
24457 * dominance.c: Likewise.
24458 * domwalk.c: Likewise.
24459 * double-int.c: Likewise.
24460 * dse.c: Likewise.
24461 * dumpfile.c: Likewise.
24462 * dwarf2asm.c: Likewise.
24463 * dwarf2cfi.c: Likewise.
24464 * dwarf2out.c: Likewise.
24465 * emit-rtl.c: Likewise.
24466 * et-forest.c: Likewise.
24467 * except.c: Likewise.
24468 * explow.c: Likewise.
24469 * expmed.c: Likewise.
24470 * expr.c: Likewise.
24471 * final.c: Likewise.
24472 * fixed-value.c: Likewise.
24473 * fold-const.c: Likewise.
24474 * function.c: Likewise.
24475 * fwprop.c: Likewise.
24476 * gcc-plugin.h: Likewise.
24477 * gcse-common.c: Likewise.
24478 * gcse.c: Likewise.
24479 * generic-match-head.c: Likewise.
24480 * ggc-page.c: Likewise.
24481 * gimple-builder.c: Likewise.
24482 * gimple-expr.c: Likewise.
24483 * gimple-fold.c: Likewise.
24484 * gimple-iterator.c: Likewise.
24485 * gimple-low.c: Likewise.
24486 * gimple-match-head.c: Likewise.
24487 * gimple-pretty-print.c: Likewise.
24488 * gimple-ssa-isolate-paths.c: Likewise.
24489 * gimple-ssa-strength-reduction.c: Likewise.
24490 * gimple-streamer-in.c: Likewise.
24491 * gimple-streamer-out.c: Likewise.
24492 * gimple-walk.c: Likewise.
24493 * gimple.c: Likewise.
24494 * gimplify-me.c: Likewise.
24495 * gimplify.c: Likewise.
24496 * godump.c: Likewise.
24497 * graph.c: Likewise.
24498 * graphite-blocking.c: Likewise.
24499 * graphite-dependences.c: Likewise.
24500 * graphite-interchange.c: Likewise.
24501 * graphite-isl-ast-to-gimple.c: Likewise.
24502 * graphite-optimize-isl.c: Likewise.
24503 * graphite-poly.c: Likewise.
24504 * graphite-scop-detection.c: Likewise.
24505 * graphite-sese-to-poly.c: Likewise.
24506 * graphite.c: Likewise.
24507 * haifa-sched.c: Likewise.
24508 * hw-doloop.c: Likewise.
24509 * ifcvt.c: Likewise.
24510 * init-regs.c: Likewise.
24511 * internal-fn.c: Likewise.
24512 * ipa-chkp.c: Likewise.
24513 * ipa-comdats.c: Likewise.
24514 * ipa-cp.c: Likewise.
24515 * ipa-devirt.c: Likewise.
24516 * ipa-icf-gimple.c: Likewise.
24517 * ipa-icf.c: Likewise.
24518 * ipa-inline-analysis.c: Likewise.
24519 * ipa-inline-transform.c: Likewise.
24520 * ipa-inline.c: Likewise.
24521 * ipa-polymorphic-call.c: Likewise.
24522 * ipa-profile.c: Likewise.
24523 * ipa-prop.c: Likewise.
24524 * ipa-pure-const.c: Likewise.
24525 * ipa-ref.c: Likewise.
24526 * ipa-reference.c: Likewise.
24527 * ipa-split.c: Likewise.
24528 * ipa-utils.c: Likewise.
24529 * ipa-visibility.c: Likewise.
24530 * ipa.c: Likewise.
24531 * ira-build.c: Likewise.
24532 * ira-color.c: Likewise.
24533 * ira-conflicts.c: Likewise.
24534 * ira-costs.c: Likewise.
24535 * ira-emit.c: Likewise.
24536 * ira-lives.c: Likewise.
24537 * ira.c: Likewise.
24538 * jump.c: Likewise.
24539 * langhooks.c: Likewise.
24540 * lcm.c: Likewise.
24541 * loop-doloop.c: Likewise.
24542 * loop-init.c: Likewise.
24543 * loop-invariant.c: Likewise.
24544 * loop-iv.c: Likewise.
24545 * loop-unroll.c: Likewise.
24546 * lower-subreg.c: Likewise.
24547 * lra-assigns.c: Likewise.
24548 * lra-coalesce.c: Likewise.
24549 * lra-constraints.c: Likewise.
24550 * lra-eliminations.c: Likewise.
24551 * lra-lives.c: Likewise.
24552 * lra-remat.c: Likewise.
24553 * lra-spills.c: Likewise.
24554 * lra.c: Likewise.
24555 * lto-cgraph.c: Likewise.
24556 * lto-compress.c: Likewise.
24557 * lto-opts.c: Likewise.
24558 * lto-section-in.c: Likewise.
24559 * lto-section-out.c: Likewise.
24560 * lto-streamer-in.c: Likewise.
24561 * lto-streamer-out.c: Likewise.
24562 * lto-streamer.c: Likewise.
24563 * mcf.c: Likewise.
24564 * mode-switching.c: Likewise.
24565 * modulo-sched.c: Likewise.
24566 * omega.c: Likewise.
24567 * omp-low.c: Likewise.
24568 * optabs.c: Likewise.
24569 * opts-global.c: Likewise.
24570 * passes.c: Likewise.
24571 * plugin.c: Likewise.
24572 * postreload-gcse.c: Likewise.
24573 * postreload.c: Likewise.
24574 * predict.c: Likewise.
24575 * print-rtl.c: Likewise.
24576 * print-tree.c: Likewise.
24577 * profile.c: Likewise.
24578 * real.c: Likewise.
24579 * realmpfr.c: Likewise.
24580 * recog.c: Likewise.
24581 * ree.c: Likewise.
24582 * reg-stack.c: Likewise.
24583 * regcprop.c: Likewise.
24584 * reginfo.c: Likewise.
24585 * regrename.c: Likewise.
24586 * regstat.c: Likewise.
24587 * reload.c: Likewise.
24588 * reload1.c: Likewise.
24589 * reorg.c: Likewise.
24590 * resource.c: Likewise.
24591 * rtl-chkp.c: Likewise.
24592 * rtlanal.c: Likewise.
24593 * rtlhooks.c: Likewise.
24594 * sanopt.c: Likewise.
24595 * sched-deps.c: Likewise.
24596 * sched-ebb.c: Likewise.
24597 * sched-rgn.c: Likewise.
24598 * sched-vis.c: Likewise.
24599 * sdbout.c: Likewise.
24600 * sel-sched-dump.c: Likewise.
24601 * sel-sched-ir.c: Likewise.
24602 * sel-sched.c: Likewise.
24603 * sese.c: Likewise.
24604 * shrink-wrap.c: Likewise.
24605 * simplify-rtx.c: Likewise.
24606 * stack-ptr-mod.c: Likewise.
24607 * stmt.c: Likewise.
24608 * stor-layout.c: Likewise.
24609 * store-motion.c: Likewise.
24610 * stringpool.c: Likewise.
24611 * symtab.c: Likewise.
24612 * target-globals.c: Likewise.
24613 * targhooks.c: Likewise.
24614 * toplev.c: Likewise.
24615 * tracer.c: Likewise.
24616 * trans-mem.c: Likewise.
24617 * tree-affine.c: Likewise.
24618 * tree-browser.c: Likewise.
24619 * tree-call-cdce.c: Likewise.
24620 * tree-cfg.c: Likewise.
24621 * tree-cfgcleanup.c: Likewise.
24622 * tree-chkp-opt.c: Likewise.
24623 * tree-chkp.c: Likewise.
24624 * tree-chrec.c: Likewise.
24625 * tree-complex.c: Likewise.
24626 * tree-data-ref.c: Likewise.
24627 * tree-dfa.c: Likewise.
24628 * tree-diagnostic.c: Likewise.
24629 * tree-dump.c: Likewise.
24630 * tree-eh.c: Likewise.
24631 * tree-emutls.c: Likewise.
24632 * tree-if-conv.c: Likewise.
24633 * tree-inline.c: Likewise.
24634 * tree-into-ssa.c: Likewise.
24635 * tree-iterator.c: Likewise.
24636 * tree-loop-distribution.c: Likewise.
24637 * tree-nested.c: Likewise.
24638 * tree-nrv.c: Likewise.
24639 * tree-object-size.c: Likewise.
24640 * tree-outof-ssa.c: Likewise.
24641 * tree-parloops.c: Likewise.
24642 * tree-phinodes.c: Likewise.
24643 * tree-predcom.c: Likewise.
24644 * tree-pretty-print.c: Likewise.
24645 * tree-profile.c: Likewise.
24646 * tree-scalar-evolution.c: Likewise.
24647 * tree-sra.c: Likewise.
24648 * tree-ssa-address.c: Likewise.
24649 * tree-ssa-alias.c: Likewise.
24650 * tree-ssa-ccp.c: Likewise.
24651 * tree-ssa-coalesce.c: Likewise.
24652 * tree-ssa-copy.c: Likewise.
24653 * tree-ssa-copyrename.c: Likewise.
24654 * tree-ssa-dce.c: Likewise.
24655 * tree-ssa-dom.c: Likewise.
24656 * tree-ssa-dse.c: Likewise.
24657 * tree-ssa-forwprop.c: Likewise.
24658 * tree-ssa-ifcombine.c: Likewise.
24659 * tree-ssa-live.c: Likewise.
24660 * tree-ssa-loop-ch.c: Likewise.
24661 * tree-ssa-loop-im.c: Likewise.
24662 * tree-ssa-loop-ivcanon.c: Likewise.
24663 * tree-ssa-loop-ivopts.c: Likewise.
24664 * tree-ssa-loop-manip.c: Likewise.
24665 * tree-ssa-loop-niter.c: Likewise.
24666 * tree-ssa-loop-prefetch.c: Likewise.
24667 * tree-ssa-loop-unswitch.c: Likewise.
24668 * tree-ssa-loop.c: Likewise.
24669 * tree-ssa-math-opts.c: Likewise.
24670 * tree-ssa-operands.c: Likewise.
24671 * tree-ssa-phiopt.c: Likewise.
24672 * tree-ssa-phiprop.c: Likewise.
24673 * tree-ssa-pre.c: Likewise.
24674 * tree-ssa-propagate.c: Likewise.
24675 * tree-ssa-reassoc.c: Likewise.
24676 * tree-ssa-sccvn.c: Likewise.
24677 * tree-ssa-scopedtables.c: Likewise.
24678 * tree-ssa-sink.c: Likewise.
24679 * tree-ssa-strlen.c: Likewise.
24680 * tree-ssa-structalias.c: Likewise.
24681 * tree-ssa-tail-merge.c: Likewise.
24682 * tree-ssa-ter.c: Likewise.
24683 * tree-ssa-threadedge.c: Likewise.
24684 * tree-ssa-threadupdate.c: Likewise.
24685 * tree-ssa-uncprop.c: Likewise.
24686 * tree-ssa-uninit.c: Likewise.
24687 * tree-ssa.c: Likewise.
24688 * tree-ssanames.c: Likewise.
24689 * tree-stdarg.c: Likewise.
24690 * tree-streamer-in.c: Likewise.
24691 * tree-streamer-out.c: Likewise.
24692 * tree-streamer.c: Likewise.
24693 * tree-switch-conversion.c: Likewise.
24694 * tree-tailcall.c: Likewise.
24695 * tree-vect-data-refs.c: Likewise.
24696 * tree-vect-generic.c: Likewise.
24697 * tree-vect-loop-manip.c: Likewise.
24698 * tree-vect-loop.c: Likewise.
24699 * tree-vect-patterns.c: Likewise.
24700 * tree-vect-slp.c: Likewise.
24701 * tree-vect-stmts.c: Likewise.
24702 * tree-vectorizer.c: Likewise.
24703 * tree-vrp.c: Likewise.
24704 * tree.c: Likewise.
24705 * tsan.c: Likewise.
24706 * ubsan.c: Likewise.
24707 * valtrack.c: Likewise.
24708 * value-prof.c: Likewise.
24709 * var-tracking.c: Likewise.
24710 * varasm.c: Likewise.
24711 * varpool.c: Likewise.
24712 * vmsdbgout.c: Likewise.
24713 * vtable-verify.c: Likewise.
24714 * web.c: Likewise.
24715 * wide-int.cc: Likewise.
24716 * xcoffout.c: Likewise.
24717 * config/aarch64/aarch64-builtins.c: Likewise.
24718 * config/aarch64/aarch64.c: Likewise.
24719 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
24720 * config/alpha/alpha.c: Likewise.
24721 * config/arc/arc.c: Likewise.
24722 * config/arm/aarch-common.c: Likewise.
24723 * config/arm/arm-builtins.c: Likewise.
24724 * config/arm/arm-c.c: Likewise.
24725 * config/arm/arm.c: Likewise.
24726 * config/avr/avr-c.c: Likewise.
24727 * config/avr/avr-log.c: Likewise.
24728 * config/avr/avr.c: Likewise.
24729 * config/bfin/bfin.c: Likewise.
24730 * config/c6x/c6x.c: Likewise.
24731 * config/cr16/cr16.c: Likewise.
24732 * config/cris/cris.c: Likewise.
24733 * config/darwin-c.c: Likewise.
24734 * config/darwin.c: Likewise.
24735 * config/epiphany/epiphany.c: Likewise.
24736 * config/epiphany/mode-switch-use.c: Likewise.
24737 * config/epiphany/resolve-sw-modes.c: Likewise.
24738 * config/fr30/fr30.c: Likewise.
24739 * config/frv/frv.c: Likewise.
24740 * config/ft32/ft32.c: Likewise.
24741 * config/h8300/h8300.c: Likewise.
24742 * config/i386/i386-c.c: Likewise.
24743 * config/i386/i386.c: Likewise.
24744 * config/i386/msformat-c.c: Likewise.
24745 * config/i386/winnt-cxx.c: Likewise.
24746 * config/i386/winnt-stubs.c: Likewise.
24747 * config/i386/winnt.c: Likewise.
24748 * config/ia64/ia64-c.c: Likewise.
24749 * config/ia64/ia64.c: Likewise.
24750 * config/iq2000/iq2000.c: Likewise.
24751 * config/lm32/lm32.c: Likewise.
24752 * config/m32c/m32c-pragma.c: Likewise.
24753 * config/m32c/m32c.c: Likewise.
24754 * config/m32r/m32r.c: Likewise.
24755 * config/m68k/m68k.c: Likewise.
24756 * config/mcore/mcore.c: Likewise.
24757 * config/mep/mep-pragma.c: Likewise.
24758 * config/mep/mep.c: Likewise.
24759 * config/microblaze/microblaze-c.c: Likewise.
24760 * config/microblaze/microblaze.c: Likewise.
24761 * config/mips/mips.c: Likewise.
24762 * config/mmix/mmix.c: Likewise.
24763 * config/mn10300/mn10300.c: Likewise.
24764 * config/moxie/moxie.c: Likewise.
24765 * config/msp430/msp430-c.c: Likewise.
24766 * config/msp430/msp430.c: Likewise.
24767 * config/nds32/nds32-cost.c: Likewise.
24768 * config/nds32/nds32-fp-as-gp.c: Likewise.
24769 * config/nds32/nds32-intrinsic.c: Likewise.
24770 * config/nds32/nds32-isr.c: Likewise.
24771 * config/nds32/nds32-md-auxiliary.c: Likewise.
24772 * config/nds32/nds32-memory-manipulation.c: Likewise.
24773 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
24774 * config/nds32/nds32-predicates.c: Likewise.
24775 * config/nds32/nds32.c: Likewise.
24776 * config/nios2/nios2.c: Likewise.
24777 * config/nvptx/nvptx.c: Likewise.
24778 * config/pa/pa.c: Likewise.
24779 * config/pdp11/pdp11.c: Likewise.
24780 * config/rl78/rl78-c.c: Likewise.
24781 * config/rl78/rl78.c: Likewise.
24782 * config/rs6000/rs6000-c.c: Likewise.
24783 * config/rs6000/rs6000.c: Likewise.
24784 * config/rx/rx.c: Likewise.
24785 * config/s390/s390-c.c: Likewise.
24786 * config/s390/s390.c: Likewise.
24787 * config/sh/sh-c.c: Likewise.
24788 * config/sh/sh-mem.cc: Likewise.
24789 * config/sh/sh.c: Likewise.
24790 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
24791 * config/sh/sh_treg_combine.cc: Likewise.
24792 * config/sol2-c.c: Likewise.
24793 * config/sol2-cxx.c: Likewise.
24794 * config/sol2-stubs.c: Likewise.
24795 * config/sol2.c: Likewise.
24796 * config/sparc/sparc-c.c: Likewise.
24797 * config/sparc/sparc.c: Likewise.
24798 * config/spu/spu-c.c: Likewise.
24799 * config/spu/spu.c: Likewise.
24800 * config/stormy16/stormy16.c: Likewise.
24801 * config/tilegx/mul-tables.c: Likewise.
24802 * config/tilegx/tilegx-c.c: Likewise.
24803 * config/tilegx/tilegx.c: Likewise.
24804 * config/tilepro/mul-tables.c: Likewise.
24805 * config/tilepro/tilepro-c.c: Likewise.
24806 * config/tilepro/tilepro.c: Likewise.
24807 * config/v850/v850-c.c: Likewise.
24808 * config/v850/v850.c: Likewise.
24809 * config/vax/vax.c: Likewise.
24810 * config/visium/visium.c: Likewise.
24811 * config/vms/vms-c.c: Likewise.
24812 * config/vms/vms.c: Likewise.
24813 * config/vxworks.c: Likewise.
24814 * config/xtensa/xtensa.c: Likewise.
24815
24816 2015-07-07 Uros Bizjak <ubizjak@gmail.com>
24817
24818 * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
24819 Remove operand constraints. Change operand 2 predicate to
24820 nonmemory operand. Limit const_int values to mode bitsize. Only
24821 allow const_int values less than 32 when optimizing for size.
24822 (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
24823 Remove operand constraints.
24824 (*bt<mode>): Use SImode for const_int values less than 32.
24825 (regmode): Remove mode attribute.
24826
24827 2015-07-07 Anatoly Sokolov <aesok@post.ru>
24828
24829 * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
24830 * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
24831 moxie_legitimate_address_p): New functions.
24832 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
24833
24834 2015-07-07 Tom de Vries <tom@codesourcery.com>
24835
24836 PR tree-optimization/66642
24837 * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
24838 header comment. Rename split_edge variable to edge_at_split. Split
24839 exit edge to create new loop exit bb. Insert loop exit phis in new
24840 loop exit bb.
24841
24842 2015-07-07 Tom de Vries <tom@codesourcery.com>
24843
24844 * tree-cfg.c (get_virtual_phi): New function.
24845 * tree-cfg.h (get_virtual_phi): Declare.
24846 * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
24847 (rewrite_virtuals_into_loop_closed_ssa): New function.
24848 * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
24849 Declare.
24850 * tree-parloops.c (replace_uses_in_bbs_by): Remove.
24851 (transform_to_exit_first_loop_alt): Use
24852 rewrite_virtuals_into_loop_closed_ssa.
24853
24854 2015-07-07 Richard Biener <rguenther@suse.de>
24855
24856 * fold-const.c (fold_binary_loc): Move
24857 (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
24858 * match.pd: ... here.
24859 Add (X * C1) % C2 -> 0 simplification pattern derived from
24860 extract_muldiv_1.
24861
24862 2015-07-07 Kaz Kojima <kkojima@gcc.gnu.org>
24863
24864 PR target/66780
24865 * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
24866 change for target/65249.
24867
24868 2015-07-07 Paulo Matos <pmatos@broadcom.com>
24869
24870 * symtab.c (address_matters_1): Fix typo in comment above.
24871 (can_increase_alignment_p): Likewise.
24872
24873 2015-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
24874
24875 * function.c (free_after_compilation): Clear PROP_cfg in
24876 f->curr_properties.
24877
24878 2015-07-07 Richard Biener <rguenther@suse.de>
24879
24880 * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
24881 add which use to.
24882 (add_control_edge): Remove excessive vertical space in dumping.
24883 (process_ssa_edge_worklist): Simulate at most one statement and
24884 return whether we did. Do not simulate PHIs if they are in a
24885 BB not yet simulated.
24886 (ssa_propagate): Adjust to always drain the BB worklist whenever
24887 a BB is available there, likewise the VARYING edges list before
24888 the interesting edge list.
24889
24890 2015-07-07 Christian Bruel <christian.bruel@st.com>
24891
24892 PR target/52144
24893 * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
24894
24895 2015-07-07 Richard Biener <rguenther@suse.de>
24896
24897 PR middle-end/66739
24898 * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
24899 A - B.
24900
24901 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
24902
24903 * config/i386/i386.md (insv<mode>): Rename from insv. Use SWI48
24904 modes for operands 0 and 3. Use SImode for operands 2 and 3.
24905 Copy operand 0 to a temporary if !ext_register_operand. Remove
24906 ancient extract_bit_field workaround.
24907 (insv<mode>_1): Rename from mov<mode>_insv_1.
24908 (*insvqi): Rename from *movqi_insv_2.
24909 * config/i386/i386.c (emit_i386_cw_initialization): Update calls
24910 for renamed insvsi_1.
24911 (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
24912
24913 2015-07-06 Nathan Sidwell <nathan@codesourcery.com>
24914
24915 * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars. Fix
24916 call to nvptx_reorg_subreg.
24917
24918 2015-07-06 Jim Wilson <jim.wilson@linaro.org>
24919
24920 * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
24921 * graphite-dependencies.c, graphite-interchange.c,
24922 graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
24923 graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
24924 Likewise.
24925
24926 2015-07-06 Marc Glisse <marc.glisse@inria.fr>
24927
24928 * match.pd: Remove element_mode inside HONOR_*.
24929 (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
24930 (~X | X -> -1, ~X ^ X -> -1): Merge.
24931 * tree.c (build_each_one_cst): New function.
24932 * tree.h (build_each_one_cst): Likewise.
24933
24934 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
24935
24936 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
24937 PROCESSOR_IAMCU.
24938
24939 2015-07-06 Steve Ellcey <sellcey@imgtec.com>
24940
24941 * config.gcc <mips*-*-*>: Add fused-madd.opt.
24942 * config/mips/mips.opt (mfused-madd): Remove.
24943 * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
24944 * config/mips/mips.h (TARGET_MIPS8000): New.
24945 (ISA_HAS_FP_MADD4_MSUB4): Remove.
24946 (ISA_HAS_FP_MADDF_MSUBF): Remove.
24947 (ISA_HAS_FP_MADD3_MSUB3): Remove.
24948 (ISA_HAS_NMADD4_NMSUB4): Remove.
24949 (ISA_HAS_NMADD3_NMSUB3): Remove.
24950 (ISA_HAS_FUSED_MADD4): New.
24951 (ISA_HAS_UNFUSED_MADD4): New.
24952 (ISA_HAS_FUSED_MADDF): New.
24953 (ISA_HAS_FUSED_MADD3): New.
24954 * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
24955 (*fma<mode>4_madd3) New.
24956 (*fma<mode>4_madd4) New.
24957 (*fma<mode>4_maddf) New.
24958 (fms<mode>4) New.
24959 (*fms<mode>4_msub3) New.
24960 (*fms<mode>4_msub4) New.
24961 (fnma<mode>4) New.
24962 (*fnma<mode>4_nmadd3) New.
24963 (*fnma<mode>4_nmadd4) New.
24964 (fnms<mode>4) New.
24965 (*fnms<mode>4_nmsub3) New.
24966 (*fnms<mode>4_nmsub4) New.
24967 (*madd4<mode>) Modify to be unfused only.
24968 (*msub4<mode>) Modify to be unfused only.
24969 (*nmadd4<mode>) Modify to be unfused only.
24970 (*nmsub4<mode>) Modify to be unfused only.
24971 (*madd3<mode>) Remove.
24972 (*msub3<mode>) Remove.
24973 (*nmadd3<mode>) Remove.
24974 (*nmsub3<mode>) Remove.
24975 (*nmadd3<mode>_fastmath) Remove.
24976 (*nmsub3<mode>_fastmath) Remove.
24977 (*nmadd4<mode>_fastmath) Update condition.
24978 (*nmsub4<mode>_fastmath) Update condition.
24979
24980 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
24981
24982 PR target/65956
24983 * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
24984 alignment attribute, exploring one level down for records and arrays.
24985
24986 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
24987
24988 * config/i386/i386.md (extv<mode>): Rename from extv. Use SWI24
24989 modes for operands 0 and 1. Use SImode for operands 2 and 3.
24990 Copy operand 1 to a temporary if !ext_register_operand. Remove
24991 ancient extract_bit_field workaround.
24992 (*extv<mode>): Rename from *mov<mode>_extv_1.
24993 (*extvqi): Rename from *movqi_extv_1.
24994 (extzv<mode>): Rename from extzv. Use SWI248 modes for
24995 operands 0 and 1. Use SImode for operands 2 and 3. Copy operand 1
24996 to a temporary if !ext_register_operand. Remove ancient
24997 extract_bit_field workaround.
24998 (*extzv<mode>): Rename from *mov<mode>_extzv_1.
24999 (*extzvqi): Rename from *movqi_extzv_2.
25000 (*testqi_ext_3): Remove modes from const_int_operand predicated
25001 operands. Add "n" constraint.
25002 (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
25003 operand. Add "J" constraint.
25004 (*btsq, *btrq, *btcq peephole2s): Remove mode from
25005 const_0_to_63 predicated operand.
25006 (regmode): New insn attribute.
25007 (*bt<mode>): Use SImode for operand 1. Change operand 1 predicate
25008 to nonmemory_operand. Use regmode insn attribute.
25009 (*jcc_bt<mode>_1): Convert operand 2 to SImode.
25010 (*jcc_bt<mode>_mask): Remove mode from operand 3.
25011 (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
25012 (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
25013 operands. Use "N" constraint instead of "n".
25014
25015 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
25016
25017 * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
25018
25019 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
25020
25021 PR target/66749
25022 * config/i386/i386.c (iamcu_cost): New.
25023 (m_IAMCU): Likewise.
25024 (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
25025 (processor_target_table): Add an entry for "iamcu".
25026 (processor_alias_table): Likewise.
25027 (ix86_issue_rate): Handle PROCESSOR_IAMCU.
25028 (ix86_adjust_cost): Likewise.
25029 (ia32_multipass_dfa_lookahead): Likewise.
25030 * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
25031 * config/i386/x86-tune.def: Updated for m_IAMCU.
25032
25033 2015-07-06 Richard Biener <rguenther@suse.de>
25034
25035 PR tree-optimization/66772
25036 * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
25037 values are available in the PHI node BB when there are
25038 still unexecutable edges.
25039
25040 2015-07-06 Richard Biener <rguenther@suse.de>
25041
25042 PR tree-optimization/66767
25043 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
25044 Make sure to build the alignment test on a SSA name without
25045 final alignment info valid only if the alignment test
25046 evaluates to true.
25047
25048 2015-07-06 Bernd Schmidt <bernds@codesourcery.com>
25049
25050 PR target/66620
25051 * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
25052 loop start when inserting LSETUP.
25053
25054 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
25055
25056 PR target/53383
25057 * config/i386/i386.c (ix86_option_override_internal): Allow
25058 -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
25059
25060 2015-07-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25061
25062 * read-md.c (decimal_string): Rename to ...
25063 (md_decimal_string): ... this.
25064 (handle_enum): Reflect this.
25065
25066 2015-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
25067
25068 PR target/66731
25069 * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
25070
25071 2015-07-06 Richard Biener <rguenther@suse.de>
25072
25073 PR middle-end/66759
25074 * match.pd: Add missing constraint of y to REAL_CST in
25075 REAL_CST - x CMP y to y - CST CMP x simplification.
25076
25077 2015-07-06 Eric Botcazou <ebotcazou@adacore.com>
25078
25079 PR tree-optimization/66757
25080 * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
25081
25082 2015-07-05 Chung-Lin Tang <cltang@codesourcery.com>
25083 Sandra Loosemore <sandra@codesourcery.com>
25084
25085 * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
25086 Delete extern declaration.
25087 (gprel_constant_p): Add extern declaration.
25088 * config/nios2/constraints.md ("S"): Use gprel_constant_p
25089 instead of nios2_symbol_ref_in_small_data_p.
25090 * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
25091 (nios2_symbol_ref_in_small_data_p): Make static.
25092 (gprel_constant_p): Make non-static.
25093
25094 2015-07-05 Gerald Pfeifer <gerald@pfeifer.com>
25095
25096 * doc/fragments.texi (Target Fragment): Convert debian.org
25097 link to use https.
25098 * doc/install.texi (Configuration): Ditto.
25099
25100 2015-07-05 Jakub Jelinek <jakub@redhat.com>
25101
25102 PR tree-optimization/66718
25103 * tree-vect-stmts.c (vectorizable_call): Replace uses of
25104 GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
25105
25106 PR tree-optimization/66718
25107 * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
25108 vectorizable_load, vectorizable_condition): Move vectype,
25109 nunits, ncopies computation after checking what kind of statement
25110 stmt is.
25111
25112 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25113
25114 * target-insns.def (extv, extzv, insv): New targetm instruction
25115 patterns.
25116 * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
25117 interface.
25118 * recog.c (simplify_while_replacing): Likewise.
25119
25120 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25121
25122 * target-insns.def (doloop_begin, doloop_end): New targetm
25123 instruction patterns.
25124 * loop-init.c: Include target.h.
25125 (pass_loop2::gate): Use the new targetm patterns instead of
25126 HAVE_*/gen_* interface.
25127 (pass_rtl_doloop::gate): Likewise.
25128 (pass_rtl_doloop::execute): Remove preprocessor condition.
25129 * hw-doloop.c: Build unconditionally.
25130 * loop-doloop.c: Likewise.
25131 (doloop_optimize): Use the new targetm patterns instead of
25132 HAVE_*/gen_* interface.
25133 (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
25134 * modulo-sched.c (doloop_register_get): Likewise.
25135
25136 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25137
25138 * target-insns.def (clear_cache): New targetm instruction pattern.
25139 * builtins.c (expand_builtin___clear_cache): Use it instead of
25140 HAVE_*/gen_* interface.
25141
25142 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25143
25144 * target-insns.def (allocate_stack, check_stack, probe_stack)
25145 (probe_stack_address, split_stack_prologue, split_stack_space_check):
25146 New targetm instruction patterns.
25147 * explow.c (allocate_dynamic_stack_space): Use them instead of
25148 HAVE_*/gen_* interface.
25149 (emit_stack_probe): Likewise.
25150 (probe_stack_range): Likewise.
25151 * function.c (thread_prologue_and_epilogue_insns): Likewise.
25152
25153 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25154
25155 * target-insns.def (stack_protect_set, stack_protect_test): New
25156 targetm instruction patterns.
25157 * cfgexpand.c (stack_protect_prologue): Use them instead of
25158 HAVE_*/gen_* interface.
25159 * function.c (stack_protect_epilogue): Likewise.
25160
25161 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25162
25163 * expr.h (gen_move_insn_uncast): Delete.
25164 * expr.c (gen_move_insn_uncast): Delete.
25165
25166 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25167
25168 * target-insns.def (restore_stack_block, restore_stack_function)
25169 (restore_stack_nonlocal, save_stack_block, save_stack_function)
25170 (save_stack_nonlocal): New targetm instruction patterns.
25171 * builtins.c (expand_builtin_apply): Use them instead of
25172 HAVE_*/gen_* interface.
25173 * explow.c (emit_stack_save, emit_stack_restore): Likewise.
25174
25175 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25176
25177 * target-insns.def (trap): New targetm instruction pattern.
25178 * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
25179 interface.
25180 * explow.c (allocate_dynamic_stack_space): Likewise.
25181 * ifcvt.c (find_if_header): Likewise.
25182
25183 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25184
25185 * target-insns.def (prefetch): New targetm instruction pattern.
25186 * tree-ssa-loop-prefetch.c: Include targeth.
25187 (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
25188 of HAVE_*/gen_* interface.
25189 * builtins.c (expand_builtin_prefetch): Likewise.
25190 * toplev.c (process_options): Likewise.
25191
25192 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25193
25194 * target-insns.def (untyped_call, untyped_return): New targetm
25195 instruction patterns.
25196 * builtins.c (expand_builtin_apply): Use them instead of
25197 HAVE_*/gen_* interface.
25198 (result_vector): Define unconditionally.
25199
25200 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25201
25202 * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
25203 (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
25204 (nonlocal_goto_receiver): New targetm instruction patterns.
25205 * builtins.c (expand_builtin_setjmp_setup): Use them instead
25206 of HAVE_*/gen_* interface.
25207 (expand_builtin_setjmp_receiver): Likewise.
25208 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
25209 * except.c (expand_dw2_landing_pad_for_region): Likewise.
25210
25211 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
25212
25213 * target.def: Add code_for_* hooks.
25214 * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
25215 * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
25216 * target-insns.def (casesi, tablejump): New targetm instruction
25217 patterns.
25218 * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
25219 (do_tablejump): Likewise.
25220 * stmt.c (expand_switch_as_decision_tree_p): Likewise.
25221 (expand_sjlj_dispatch_table): Likewise.
25222 * targhooks.c (default_case_values_threshold): Likewise.
25223
25224 2015-07-04 Sandra Loosemore <sandra@codesourcery.com>
25225
25226 * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
25227 Use rtx_insn * instead of rtx.
25228 (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
25229 (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
25230 (nios2_call_tls_get_addr): Likewise.
25231 (nios2_emit_expensive_div): Likewise.
25232 (nios2_emit_move_sequence): Change return type to bool.
25233 * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
25234 Change return type to bool.
25235
25236 2015-07-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
25237
25238 PR target/66747
25239 * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
25240
25241 2015-07-04 John David Anglin <danglin@gcc.gnu.org>
25242
25243 PR target/66114
25244 * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
25245 of register_operand. Remove constraint.
25246
25247 2015-07-04 Marc Glisse <marc.glisse@inria.fr>
25248
25249 * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
25250 the first argument.
25251
25252 2015-07-03 Paolo Carlini <paolo.carlini@oracle.com>
25253
25254 * attribs.c (decl_attributes): Guard inform with the return value
25255 of the preceding warning.
25256
25257 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
25258
25259 * doc/invoke.texi (moverride): Move to correct section.
25260
25261 2015-07-03 Richard Biener <rguenther@suse.de>
25262
25263 * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
25264 Copy from tree.c
25265 (dt_operand::gen_gimple_expr): After valueizing operands
25266 re-canonicalize operand order for commutative tree codes.
25267
25268 2015-07-03 H.J. Lu <hongjiu.lu@intel.com>
25269
25270 PR target/66746.
25271 * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
25272 is defined.
25273 (__crc32w): Likewise.
25274 (__crc32d): Likewise.
25275 (__rdpmc): Likewise.
25276 (__rdtscp): Likewise.
25277 (_rdpmc): Likewise.
25278 (_rdtscp): Likewise.
25279 * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
25280 is defined.
25281
25282 2015-07-03 Richard Biener <rguenther@suse.de>
25283
25284 * fold-const.c (fold_mathfn_compare): Remove.
25285 (fold_inf_compare): Likewise.
25286 (fold_comparison): Move floating point comparison simplifications...
25287 * match.pd: ... to patterns here. Introduce simple_comparisons
25288 operator list and use it for patterns formerly in fold_comparison.
25289
25290 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
25291
25292 PR tree-optimization/66119
25293 * toplev.c (process_options): Don't set up default values for
25294 the sra_max_scalarization_size_{speed,size} parameters.
25295 * tree-sra (analyze_all_variable_accesses): If no values
25296 have been set for the sra_max_scalarization_size_{speed,size}
25297 parameters, call get_move_ratio to get target defaults.
25298
25299 2015-07-03 Richard Biener <rguenther@suse.de>
25300
25301 * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
25302 * match.pd: ... here.
25303
25304 2015-07-03 Gerald Pfeifer <gerald@pfeifer.com>
25305
25306 PR target/37072
25307 * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
25308 is not actually the default on FreeBSD.
25309
25310 2015-07-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25311
25312 * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
25313 definition.
25314 (CMPGE_8HI): Likewise.
25315 (CMPGE_4SI): Likewise.
25316 (CMPGE_2DI): Likewise.
25317 (CMPGE_U16QI): Likewise.
25318 (CMPGE_U8HI): Likewise.
25319 (CMPGE_U4SI): Likewise.
25320 (CMPGE_U2DI): Likewise.
25321 (CMPLE_16QI): Likewise.
25322 (CMPLE_8HI): Likewise.
25323 (CMPLE_4SI): Likewise.
25324 (CMPLE_2DI): Likewise.
25325 (CMPLE_U16QI): Likewise.
25326 (CMPLE_U8HI): Likewise.
25327 (CMPLE_U4SI): Likewise.
25328 (CMPLE_U2DI): Likewise.
25329 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25330 overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
25331 ALTIVEC_BUILTIN_VEC_CMPLE.
25332 * config/rs6000/vector.md (vector_ge<mode>): Restrict to
25333 floating-point vector modes.
25334 (vector_nlt<mode>): New define_expand.
25335 (vector_nltu<mode>): Likewise.
25336 (vector_ngt<mode>): Likewise.
25337 (vector_ngtu<mode>): Likewise.
25338
25339 2015-07-02 Segher Boessenkool <segher@kernel.crashing.org>
25340
25341 PR rtl-optimization/66706
25342 * combine.c (make_compound_operation): If an AND of SUBREG of
25343 LSHIFTRT does not simplify, see if just the AND of SUBREG does.
25344
25345 2015-07-02 Alan Lawrence <alan.lawrence@arm.com>
25346
25347 * tree-pass.h (make_pass_ch_vect): New.
25348 * passes.def: Add pass_ch_vect just before pass_if_conversion.
25349
25350 * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
25351 pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
25352 make_pass_ch_vect): New.
25353 (pass_ch): Extend ch_base.
25354
25355 (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
25356 (ch_base::copy_headers): ...here.
25357
25358 2015-07-02 Richard Biener <rguenther@suse.de>
25359
25360 * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
25361 * fold-const.c (get_pointer_modulus_and_residue): Remove.
25362 (fold_binary_loc): Implement (T)ptr & CST in terms of
25363 get_pointer_alignment_1.
25364 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
25365 Make sure to build the alignment test on a SSA name without
25366 final alignment info valid only after the prologue.
25367
25368 2015-07-02 Hans-Peter Nilsson <hp@axis.com>
25369
25370 * config/cris/cris.md ("epilogue"): Remove condition.
25371 ("prologue"): Ditto.
25372
25373 2015-07-02 Richard Biener <rguenther@suse.de>
25374
25375 * tree-ssa-dom.c (build_and_record_new_cond): Add optional
25376 parameter to record a condition that is false.
25377 (record_conditions): When recording an extra NE_EXPR that is
25378 true also record a EQ_EXPR that is false.
25379
25380 2015-07-02 Bin Cheng <bin.cheng@arm.com>
25381
25382 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
25383 (tree_ssa_iv_optimize_init): Initialize iv_obstack.
25384 (alloc_iv): New parameter. Allocate struct iv using obstack_alloc.
25385 (set_iv, find_interesting_uses_address, add_candidate_1): New
25386 argument to alloc_iv.
25387 (find_interesting_uses_op, find_interesting_uses_cond): Don't
25388 duplicate struct iv.
25389 (free_loop_data): Don't free struct iv explicitly.
25390 (tree_ssa_iv_optimize_finalize): Free iv_obstack.
25391
25392 2015-07-01 DJ Delorie <dj@redhat.com>
25393
25394 * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
25395 (LIB_SPEC): Add.
25396 (SUPPORTS_DISCRIMINATOR): Define.
25397
25398 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
25399
25400 PR bootstrap/66685
25401 * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
25402 there are no CALLs in the same pattern.
25403
25404 2015-07-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
25405
25406 PR rtl-optimization/61047
25407 * rtlanal.c (get_initial_register_offset): New function.
25408 (rtx_addr_can_trap_p_1): Check offsets of stack references.
25409
25410 2015-07-01 Richard Biener <rguenther@suse.de>
25411
25412 * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
25413 X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
25414 ~X CMP C -> X CMP' ~C to ...
25415 * match.pd: ... patterns here.
25416
25417 2015-07-01 Nick Clifton <nickc@redhat.com>
25418
25419 * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
25420 a 16-bit value into a 20-bit memory slot.
25421
25422 2015-07-01 Jiong Wang <jiong.wang@arm.com>
25423
25424 * doc/sourcebuild.texi (AArch64-specific attributes): Document
25425 "aarch64_tiny", "aarch64_small", "aarch64_large",
25426 "aarch64_little_endian", "aarch64_big_endian".
25427
25428 2015-07-01 Jiong Wang <jiong.wang@arm.com>
25429
25430 * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
25431 Document "aarch64_small_fpic".
25432
25433 2015-07-01 Jiong Wang <jiong.wang@arm.com>
25434
25435 * configure.ac: Add check for aarch64 assembler -fpic relocation
25436 modifier support.
25437 * configure: Regenerate.
25438 * config.in: Regenerate.
25439 * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
25440 to -fPIC if not support of -fpic relocation modifier in assembler.
25441
25442 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
25443
25444 PR bootstrap/66685
25445 * rtl.c (classify_insn): Handle returns in PARALLELs.
25446
25447 2015-07-01 Eric Botcazou <ebotcazou@adacore.com>
25448
25449 PR middle-end/66633
25450 * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
25451 to true if the function is nested and if not optimizing.
25452 (convert_local_omp_clauses): Initialize need_frame to true if the
25453 function contains nested functions and if not optimizing.
25454
25455 2015-07-01 Richard Biener <rguenther@suse.de>
25456
25457 * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
25458 (X & Y) ^ Y -> ~X & Y transforms to ...
25459 * match.pd: ... here.
25460
25461 2015-07-01 Richard Biener <rguenther@suse.de>
25462
25463 * genmatch.c (expr::gen_transform): Shortcut re-simplifying
25464 of converts to avoid uninteresting noise from the conversion
25465 simplifying patterns.
25466
25467 2015-06-30 Sandra Loosemore <sandra@codesourcery.com>
25468
25469 * config/c6x/c6x.c (try_rename_operands): Do not depend on
25470 gcc_assert evaluating its argument for side-effect.
25471
25472 2015-06-30 Kaz Kojima <kkojima@gcc.gnu.org>
25473
25474 PR target/64833
25475 * config/sh/sh.md (casesi_worker_1): Set length to 8 when
25476 flag_pic is set.
25477
25478 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
25479
25480 * lto-streamer-out.c (class DFS): Adjust hash_scc method.
25481 (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
25482 (hash_scc): Add this_ref_p and ref_p parameters and pass them
25483 to the inner DFS walk.
25484
25485 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
25486
25487 * target-insns.def (jump): New targetm instruction pattern.
25488 * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
25489 instead of gen_jump.
25490 (fix_up_crossing_landing_pad): Likewise.
25491 (add_labels_and_missing_jumps): Likewise.
25492 (fix_crossing_conditional_branches): Likewise.
25493 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
25494 (force_nonfallthru_and_redirect): Likewise.
25495 * cse.c (cse_insn): Likewise.
25496 * expmed.c (expand_divmod): Likewise.
25497 * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
25498 * haifa-sched.c (init_before_recovery): Likewise.
25499 (sched_create_recovery_edges): Likewise.
25500 * ifcvt.c (find_cond_trap): Likewise.
25501 * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
25502 (expand_float, expand_fix): Likewise.
25503 * stmt.c (emit_jump): Likewise.
25504
25505 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
25506
25507 * defaults.h (HAVE_load_multiple, gen_load_multiple)
25508 (HAVE_store_multiple, gen_store_multiple): Delete.
25509 * target-insns.def (load_multiple, store_multiple): New targetm
25510 instruction patterns.
25511 * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
25512 of HAVE_*/gen_* interface.
25513
25514 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
25515
25516 * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
25517 (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
25518 (gen_mem_signal_fence): Delete.
25519 * target-insns.def (mem_signal_fence, mem_thread_fence)
25520 (memory_barrier): New targetm instruction patterns.
25521 * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
25522 interface.
25523 (expand_mem_signal_fence): Likewise.
25524
25525 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
25526
25527 * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
25528 * target-insns.def (epilogue, prologue, sibcall_prologue): New
25529 targetm instruction patterns.
25530 * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
25531 interface.
25532 * calls.c (expand_call): Likewise.
25533 * cfgrtl.c (cfg_layout_finalize): Likewise.
25534 * df-scan.c (df_get_entry_block_def_set): Likewise.
25535 (df_get_exit_block_use_set): Likewise.
25536 * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
25537 * final.c (final_start_function): Likewise.
25538 * function.c (thread_prologue_and_epilogue_insns): Likewise.
25539 (reposition_prologue_and_epilogue_notes): Likewise.
25540 * reorg.c (find_end_label): Likewise.
25541 * toplev.c (process_options): Likewise.
25542
25543 2015-06-30 David Malcolm <dmalcolm@redhat.com>
25544
25545 * typed-splay-tree.h: New file.
25546
25547 2015-06-30 Vladimir Makarov <vmakarov@redhat.com>
25548
25549 PR debug/66691
25550 * lra-int.h (lra_substitute_pseudo): Add a parameter.
25551 (lra_substitute_pseudo_within_insn): Ditto.
25552 * lra.c (lra_substitute_pseudo): Add a parameter. Simplify subreg
25553 of constant.
25554 (lra_substitute_pseudo_within_insn): Add a parameter. Transfer it
25555 to lra_substitute_pseudo.
25556 * lra-lives.c (process_bb_lives): Add an argument to
25557 lra_substitute_pseudo_within_insn call.
25558 * lra-constraints.c (inherit_reload_reg, split_reg): Add an
25559 argument to lra_substitute_pseudo and
25560 lra_substitute_pseudo_within_insn calls.
25561 (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
25562
25563 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
25564
25565 * configure: Regenerated.
25566
25567 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
25568
25569 * config.gcc: Support i[34567]86-*-elfiamcu target.
25570 * config/i386/iamcu.h: New.
25571 * config/i386/i386.opt: Add -miamcu.
25572 * doc/invoke.texi: Document -miamcu.
25573 * common/config/i386/i386-common.c (ix86_handle_option): Turn
25574 off x87/MMX/SSE/AVX codegen for -miamcu.
25575 * config/i386/i386-c.c (ix86_target_macros_internal): Define
25576 __iamcu/__iamcu__ for -miamcu.
25577 * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
25578 to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
25579 (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
25580 * config/i386/i386.c (ix86_option_override_internal): Ignore and
25581 warn -mregparm for Intel MCU. Turn on -mregparm=3 for Intel
25582 MCU by default. Default long double to 64-bit for Intel MCU.
25583 Turn on -freg-struct-return for Intel MCU. Issue an error when
25584 -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
25585 AVX is turned on.
25586 (function_arg_advance_32): Pass value whose size is no larger
25587 than 8 bytes in registers for Intel MCU.
25588 (function_arg_32): Likewise.
25589 (ix86_return_in_memory): Return value whose size is no larger
25590 than 8 bytes in registers for Intel MCU.
25591 (iamcu_alignment): New function.
25592 (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
25593 true.
25594 (ix86_local_alignment): Don't increase alignment for Intel MCU.
25595 (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
25596 true.
25597
25598 2015-06-30 Marek Polacek <polacek@redhat.com>
25599
25600 * match.pd (X - (X / Y) * Y): Use convert1 and convert2. Convert
25601 both operands of the resulting expression.
25602
25603 * match.pd (~x | x): Don't use tree_nop_conversion_p. Build
25604 the final expression with the operand's type and then convert
25605 it to the type of the expression.
25606
25607 2015-06-30 Richard Biener <rguenther@suse.de>
25608
25609 * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
25610 ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
25611 (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
25612 * match.pd: ... to patterns here.
25613
25614 2015-06-30 Richard Biener <rguenther@suse.de>
25615
25616 PR tree-optimization/66704
25617 * tree-vect-data-refs.c (vect_setup_realignment): Use
25618 make_ssa_name for non-SSA name source.
25619
25620 2015-06-30 Jakub Jelinek <jakub@redhat.com>
25621
25622 PR middle-end/66702
25623 * omp-low.c (simd_clone_adjust): Handle addressable linear
25624 or uniform parameters or non-gimple type uniform parameters.
25625
25626 2015-06-30 Richard Biener <rguenther@suse.de>
25627
25628 * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
25629 ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
25630 ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
25631 * match.pd: ... here.
25632 Add a few cases of A - B -> A + (-B) when B "easily" negates.
25633 Move (x & y) | x -> x and friends before
25634 (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
25635
25636 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
25637
25638 * config/sparc/leon.md (leon_load): Enable for all LEON variants if
25639 -mfix-ut699 is not specified.
25640 (leon3_load): Rename into...
25641 (ut699_load): ...this. Enable for all LEON variants if -mfix-ut699
25642 is specified.
25643
25644 2015-06-30 Marek Polacek <polacek@redhat.com>
25645
25646 * fold-const.c (fold_binary_loc): Move ~X | X folding ...
25647 * match.pd: ... here.
25648
25649 2015-06-30 Richard Biener <rguenther@suse.de>
25650
25651 * target-insns.def (canonicalize_funcptr_for_compare): Add.
25652 * fold-const.c (build_range_check): Replace uses of
25653 HAVE_canonicalize_funcptr_for_compare.
25654 (fold_widened_comparison): Likewise.
25655 (fold_sign_changed_comparison): Likewise.
25656 * dojump.c: Include "target.h".
25657 (do_compare_and_jump): Replace uses of
25658 HAVE_canonicalize_funcptr_for_compare and
25659 gen_canonicalize_funcptr_for_compare.
25660 * expr.c (do_store_flag): Likewise.
25661
25662 2015-06-30 Tom de Vries <tom@codesourcery.com>
25663
25664 PR tree-optimization/66652
25665 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
25666 max_loop_iterations to determine if nit + 1 overflows.
25667
25668 2015-06-30 Richard Biener <rguenther@suse.de>
25669
25670 * tree-vrp.c (register_edge_assert_for_2): Also register
25671 asserts for dominating conversion results.
25672
25673 2015-06-30 Bin Cheng <bin.cheng@arm.com>
25674
25675 * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
25676 field in struct iv.
25677
25678 2015-06-29 Jack Howarth <howarth.at.gcc@gmail.com>
25679
25680 PR target/66509
25681 * configure.ac: Fix filds and fildq test for 64-bit.
25682 * configure: Regenerated.
25683
25684 2015-06-29 Nathan Sidwell <nathan@codesourcery.com>
25685
25686 * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
25687 (nvptx_reorg): Here. Keep the non-subreg pieces.
25688
25689 2015-06-29 H.J. Lu <hongjiu.lu@intel.com>
25690
25691 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
25692 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
25693
25694 2015-06-29 Uros Bizjak <ubizjak@gmail.com>
25695
25696 * config/i386/i386.md (*jcc_1): Use %! in asm template.
25697 Set attribute "length_nobnd" instead of "length".
25698 (*jcc_2): Ditto.
25699 (jump): Ditto.
25700 (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
25701
25702 2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
25703
25704 * config/nios2/nios2.c (nios2_delegitimize_address): Make
25705 assert less restrictive.
25706
25707 2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
25708
25709 PR fortran/66605
25710 * cgraphunit.c (cgraph_node::finalize_function): Do not call
25711 do_warn_unused_parameter.
25712 * function.c (do_warn_unused_parameter): Move from here.
25713 * function.h (do_warn_unused_parameter): Do not declare.
25714
25715 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
25716
25717 PR target/65697
25718 * gcc.target/arm/armv-sync-comp-swap.c: New.
25719 * gcc.target/arm/armv-sync-op-acquire.c: New.
25720 * gcc.target/arm/armv-sync-op-full.c: New.
25721 * gcc.target/arm/armv-sync-op-release.c: New.
25722
25723 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
25724
25725 PR target/65697
25726 * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
25727 initial acquire barrier with final barrier.
25728
25729 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
25730
25731 PR target/65697
25732 * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
25733 initial acquire barrier with final barrier.
25734
25735 2015-06-29 Richard Henderson <rth@redhat.com>
25736
25737 * config/i386/constraints.md (Bf): New constraint.
25738 * config/i386/i386-c.c (ix86_target_macros): Define
25739 __GCC_ASM_FLAG_OUTPUTS__.
25740 * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
25741 as flags outputs.
25742 * doc/extend.texi (FlagOutputOperands): Document them.
25743
25744 2015-06-29 Jiong Wang <jiong.wang@arm.com>
25745
25746 * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
25747 * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
25748 unspec name.
25749 (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
25750 * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
25751 SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
25752 (aarch64_symbol_context): Ditto.
25753 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
25754 and use new pattern name.
25755 (aarch64_expand_mov_immediate): Ditto.
25756 (aarch64_print_operand): Ditto.
25757 (aarch64_classify_tls_symbol): Ditto.
25758
25759 2015-06-29 Marek Polacek <polacek@redhat.com>
25760 Marc Glisse <marc.glisse@inria.fr>
25761
25762 * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
25763 * match.pd: ... pattern here.
25764
25765 2015-06-29 Tom de Vries <tom@codesourcery.com>
25766
25767 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
25768 function structure.
25769
25770 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
25771
25772 * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
25773 feature description, split out the native option, add a link to
25774 the feature documentation, rearrange and slightly rewrite text.
25775 (Aarch64 options, -mcpu): Likewise.
25776 (Aarch64 options, Feature Modifiers): Add an anchor. Mention
25777 +rdma implies Adv. SIMD.
25778
25779 2015-06-29 Marek Polacek <polacek@redhat.com>
25780
25781 PR c/66322
25782 * function.c (stack_protect_epilogue): Remove a cast to int.
25783 * doc/invoke.texi: Update -Wswitch-bool description.
25784
25785 2015-06-29 Richard Biener <rguenther@suse.de>
25786
25787 * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
25788 * fold-const.c (fold_binary_loc): Move &A - &B simplification
25789 via ptr_difference_const ...
25790 * match.pd: ... here.
25791 When matching (X ^ Y) == Y also match with swapped operands.
25792
25793 2015-06-29 Richard Biener <rguenther@suse.de>
25794
25795 * lto-streamer.h (LTO_major_version): Bump to 5.
25796
25797 2015-06-29 Richard Biener <rguenther@suse.de>
25798
25799 PR tree-optimization/66677
25800 * tree-vect-stmts.c (vect_transform_stmt): Make assert about
25801 STMT_VINFO_VEC_STMT clobbering less strict.
25802
25803 2015-06-29 Kugan Vivekanandarajah <kuganv@linaro.org>
25804
25805 PR middle-end/64130
25806 * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
25807 division, compute max and min when value ranges for dividend and
25808 divisor are available.
25809
25810 2015-06-28 Chung-Lin Tang <cltang@codesourcery.com>
25811 Sandra Loosemore <sandra@codesourcery.com>
25812
25813 * regrename.h (regrename_do_replace): Change to return bool.
25814 * regrename.c (rename_chains): Check return value of
25815 regname_do_replace.
25816 (regrename_do_replace): Re-validate the modified insns and
25817 return bool status.
25818 * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
25819 Update to match rename_chains changes.
25820 * config/c6x/c6x.c (try_rename_operands): Assert that
25821 regrename_do_replace returns true.
25822
25823 2015-06-28 Uros Bizjak <ubizjak@gmail.com>
25824
25825 * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
25826 operand 2 here. Use copy_addr_to_reg to copy non-index
25827 register operand 2 to a temporary.
25828 (<mode>_stx): Ditto for operand 1.
25829 (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
25830 * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
25831 (ix86_store_bounds): Ditto.
25832
25833 2015-06-27 Patrick Palka <ppalka@gcc.gnu.org>
25834
25835 * print-tree.c (print_node) [TREE_VEC]: Print its length.
25836
25837 2015-06-26 Andrew MacLeod <amacleod@redhat.com>
25838
25839 * gimple.c (gimple_call_set_fndecl): Remove.
25840 * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
25841 build1_loc directly instead of build_fold_addr_expr_loc.
25842
25843 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
25844
25845 * hash-map.h (hash_map::traverse): Use the definition of the
25846 Key typedef rather than the typedef itself.
25847
25848 2015-06-26 Martin Jambor <mjambor@suse.cz>
25849
25850 PR debug/66301
25851 * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
25852 NULL instead of calling dump_enabled_p.
25853
25854 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
25855
25856 * config/aarch64/aarch64.opt: (override): New.
25857 * doc/invoke.texi (override): Document.
25858 * config/aarch64/aarch64.c (aarch64_flag_desc): New
25859 (aarch64_fusible_pairs): Likewise.
25860 (aarch64_tuning_flags): Likewise.
25861 (aarch64_tuning_override_function): Likewise.
25862 (aarch64_tuning_override_functions): Likewise.
25863 (aarch64_parse_one_option_token): Likewise.
25864 (aarch64_parse_boolean_options): Likewise.
25865 (aarch64_parse_fuse_string): Likewise.
25866 (aarch64_parse_tune_string): Likewise.
25867 (aarch64_parse_one_override_token): Likewise.
25868 (aarch64_parse_override_string): Likewise.
25869 (aarch64_override_options): Parse the -override string if it
25870 is present.
25871
25872 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
25873
25874 * config/aarch64/aarch64-protos.h (tune_params): Remove
25875 const from members.
25876 (aarch64_tune_params): Remove const, change to no longer be
25877 a pointer.
25878 * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
25879 change to no longer be a pointer, initialize to generic_tunings.
25880 (aarch64_min_divisions_for_recip_mul): Change dereference of
25881 aarch64_tune_params to member access.
25882 (aarch64_reassociation_width): Likewise.
25883 (aarch64_rtx_mult_cost): Likewise.
25884 (aarch64_address_cost): Likewise.
25885 (aarch64_branch_cost): Likewise.
25886 (aarch64_rtx_costs): Likewise.
25887 (aarch64_register_move_cost): Likewise.
25888 (aarch64_memory_move_cost): Likewise.
25889 (aarch64_sched_issue_rate): Likewise.
25890 (aarch64_builtin_vectorization_cost): Likewise.
25891 (aarch64_override_options): Take a copy of the selected tuning
25892 struct in to aarch64_tune_params, rather than just setting
25893 a pointer, change dereferences of aarch64_tune_params to member
25894 accesses.
25895 (aarch64_override_options_after_change): Change dereferences of
25896 aarch64_tune_params to member access.
25897 (aarch64_macro_fusion_p): Likewise.
25898 (aarch_macro_fusion_pair_p): Likewise.
25899 * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
25900
25901 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
25902
25903 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
25904 (aarch64_tune_flags): Likewise.
25905 (AARCH64_TUNE_FMA_STEERING): Likewise.
25906 * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
25907 to AARCH64_FL_USE_FMA_STEERING_PASS.
25908 (cortex-a57.cortex-a53): Likewise.
25909 (cortex-a72): Use cortexa72_tunings.
25910 (cortex-a72.cortex-a53): Likewise.
25911 (exynos-m1): Likewise.
25912 * config/aarch64/aarch64-protos.h (tune_params): Add
25913 a field: extra_tuning_flags.
25914 * config/aarch64/aarch64-tuning-flags.def: New.
25915 * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
25916 (aarch64_extra_tuning_flags): Likewise.
25917 (aarch64_tune_params): Declare here.
25918 * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
25919 (cortexa53_tunings): Likewise.
25920 (cortexa57_tunings): Likewise.
25921 (thunderx_tunings): Likewise.
25922 (xgene1_tunings): Likewise.
25923 (cortexa72_tunings): New.
25924 * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
25925 (gate): Check against aarch64_tune_params.
25926 * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
25927 aarch64-protos.h.
25928
25929 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
25930
25931 * config/aarch64/aarch64-fusion-pairs.def: New.
25932 * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
25933 * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
25934 aarch64_fusion_pairs.
25935 (AARCH64_FUSE_MOV_MOVK): Likewise.
25936 (AARCH64_FUSE_ADRP_ADD): Likewise.
25937 (AARCH64_FUSE_MOVK_MOVK): Likewise.
25938 (AARCH64_FUSE_ADRP_LDR): Likewise.
25939 (AARCH64_FUSE_CMP_BRANCH): Likewise.
25940
25941 2015-06-26 Jiong Wang <jiong.wang@arm.com>
25942
25943 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
25944 SYMBOL_SMALL_GOT_28K.
25945 * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
25946 relocation modifiers.
25947 (unspec): New enum "UNSPEC_GOTMALLPIC28K.
25948 (ldr_got_small_28k_<mode>): New.
25949 (ldr_got_small_28k_sidi): New.
25950 * config/aarch64/iterators.md (got_modifier): New mode iterator.
25951 * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
25952 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
25953 SYMBOL_SMALL_GOT_28K.
25954 (aarch64_rtx_costs): Add costs for new instruction sequences.
25955 (initialize_aarch64_code_model): Initialize new model.
25956 (aarch64_classify_symbol): Recognize new model and new symbol classification.
25957 (aarch64_asm_preferred_eh_data_format): Support new model.
25958 (aarch64_load_symref_appropriately): Generate new instruction
25959 sequences for -fpic.
25960 (TARGET_USE_PSEUDO_PIC_REG): New definition.
25961 (aarch64_use_pseudo_pic_reg): New function.
25962
25963 2015-06-26 Jiong Wang <jiong.wang@arm.com>
25964
25965 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
25966 SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
25967 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
25968 (aarch64_expand_mov_immediate): Ditto.
25969 (aarch64_print_operand): Ditto.
25970 (aarch64_classify_symbol): Ditto.
25971
25972 2015-06-26 Nathan Sidwell <nathan@codesourcery.com>
25973
25974 * config/nvptx/nvptx.md (call_operation): Remove unused variables.
25975
25976 2015-06-26 Bin Cheng <bin.cheng@arm.com>
25977
25978 PR bootstrap/66638
25979 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
25980 assertion failed. Remove assertion itself.
25981
25982 2015-06-26 Richard Biener <rguenther@suse.de>
25983
25984 * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
25985 and -A CMP CST -> A CMP -CST which is redundant with a pattern
25986 in match.pd.
25987 Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
25988 (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
25989 (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
25990 * match.pd: ... patterns here.
25991
25992 2015-06-26 Marek Polacek <polacek@redhat.com>
25993
25994 * match.pd ((x | y) & ~(x & y) -> x ^ y,
25995 (x | y) & (~x ^ y) -> x & y): New patterns.
25996
25997 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
25998
25999 * rtl.h (emit): Add an optional boolean parameter to control
26000 whether barriers are emitted.
26001 * emit-rtl.c (emit): Likewise.
26002 * gensupport.c (get_emit_function): Return null rather than "emit".
26003 * genemit.c (gen_emit_seq): Handle the null return value.
26004 Don't emit barriers after the final instruction in the sequence.
26005 * gentarget-def.c (main): Don't emit barriers after the instruction.
26006
26007 2015-06-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26008
26009 * config/arm/arm.c (arm_output_multireg_pop): Fix use of
26010 TARGET_UNIFIED_ASM.
26011
26012 2015-06-26 Richard Biener <rguenther@suse.de>
26013
26014 * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
26015
26016 2015-06-26 Richard Biener <rguenther@suse.de>
26017
26018 * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
26019 irrespective on whether the inner operation has a single use
26020 of both off are constant.
26021
26022 2015-06-26 Uros Bizjak <ubizjak@gmail.com>
26023 Segher Boessenkool <segher@kernel.crashing.org>
26024
26025 PR target/66412
26026 * config/i386/i386.md (various splitters): Use shallow_copy_rtx
26027 before doing PUT_MODE or PUT_CODE on operands to avoid
26028 in-place RTX modification.
26029
26030 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
26031
26032 * gentarget-def.c (def_target_insn): Cast return of strtol to
26033 unsigned int.
26034
26035 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
26036
26037 * gimple.h (gimple_call_set_fn): Move inline function.
26038 * gimple.c (gimple_call_set_fn): Relocate here.
26039
26040 2015-06-25 Oleg Endo <olegendo@gcc.gnu.org>
26041
26042 PR target/65979
26043 PR target/66611
26044 * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
26045 the replacement insn will work.
26046
26047 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
26048
26049 * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
26050 by default.
26051
26052 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
26053
26054 * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
26055 * cgraph.h: Include ipa-ref.h and plugin-api.h.
26056 (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
26057 (symtab_node::address_can_be_compared_p): Move function.
26058 * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
26059 definition here.
26060 * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
26061 * auto-profile.c: Likewise.
26062 * bb-reorder.c: Likewise.
26063 * builtins.c: Likewise.
26064 * calls.c: Likewise.
26065 * cfgexpand.c: Likewise.
26066 * cgraphbuild.c: Likewise.
26067 * cgraphclones.c: Likewise.
26068 * cgraphunit.c: Likewise.
26069 * combine.c: Likewise.
26070 * coverage.c: Likewise.
26071 * data-streamer-in.c: Likewise.
26072 * data-streamer-out.c: Likewise.
26073 * data-streamer.c: Likewise.
26074 * dbxout.c: Likewise.
26075 * dwarf2out.c: Likewise.
26076 * except.c: Likewise.
26077 * expr.c: Likewise.
26078 * final.c: Likewise.
26079 * fold-const.c: Likewise.
26080 * ggc-page.c: Likewise.
26081 * gimple-fold.c: Likewise.
26082 * gimple-iterator.c: Likewise.
26083 * gimple-pretty-print.c: Likewise.
26084 * gimple-streamer-in.c: Likewise.
26085 * gimple-streamer-out.c: Likewise.
26086 * gimple.c: Likewise.
26087 * gimplify.c: Likewise.
26088 * ipa-chkp.c: Likewise.
26089 * ipa-comdats.c: Likewise.
26090 * ipa-cp.c: Likewise.
26091 * ipa-devirt.c: Likewise.
26092 * ipa-icf-gimple.c: Likewise.
26093 * ipa-icf.c: Likewise.
26094 * ipa-inline-analysis.c: Likewise.
26095 * ipa-inline-transform.c: Likewise.
26096 * ipa-inline.c: Likewise.
26097 * ipa-polymorphic-call.c: Likewise.
26098 * ipa-profile.c: Likewise.
26099 * ipa-prop.c: Likewise.
26100 * ipa-pure-const.c: Likewise.
26101 * ipa-ref.c: Likewise.
26102 * ipa-reference.c: Likewise.
26103 * ipa-split.c: Likewise.
26104 * ipa-utils.c: Likewise.
26105 * ipa-visibility.c: Likewise.
26106 * ipa.c: Likewise.
26107 * langhooks.c: Likewise.
26108 * lto-cgraph.c: Likewise.
26109 * lto-compress.c: Likewise.
26110 * lto-opts.c: Likewise.
26111 * lto-section-in.c: Likewise.
26112 * lto-section-out.c: Likewise.
26113 * lto-streamer-in.c: Likewise.
26114 * lto-streamer-out.c: Likewise.
26115 * lto-streamer.c: Likewise.
26116 * omp-low.c: Likewise.
26117 * opts-global.c: Likewise.
26118 * passes.c: Likewise.
26119 * predict.c: Likewise.
26120 * print-tree.c: Likewise.
26121 * profile.c: Likewise.
26122 * ree.c: Likewise.
26123 * sanopt.c: Likewise.
26124 * stor-layout.c: Likewise.
26125 * symtab.c: Likewise.
26126 * toplev.c: Likewise.
26127 * trans-mem.c: Likewise.
26128 * tree-cfg.c: Likewise.
26129 * tree-chkp.c: Likewise.
26130 * tree-eh.c: Likewise.
26131 * tree-emutls.c: Likewise.
26132 * tree-inline.c: Likewise.
26133 * tree-nested.c: Likewise.
26134 * tree-parloops.c: Likewise.
26135 * tree-pretty-print.c: Likewise.
26136 * tree-profile.c: Likewise.
26137 * tree-sra.c: Likewise.
26138 * tree-ssa-alias.c: Likewise.
26139 * tree-ssa-live.c: Likewise.
26140 * tree-ssa-loop-ivcanon.c: Likewise.
26141 * tree-ssa-loop-ivopts.c: Likewise.
26142 * tree-ssa-pre.c: Likewise.
26143 * tree-ssa-sccvn.c: Likewise.
26144 * tree-ssa-strlen.c: Likewise.
26145 * tree-ssa-structalias.c: Likewise.
26146 * tree-streamer-in.c: Likewise.
26147 * tree-streamer-out.c: Likewise.
26148 * tree-streamer.c: Likewise.
26149 * tree-switch-conversion.c: Likewise.
26150 * tree-tailcall.c: Likewise.
26151 * tree-vect-data-refs.c: Likewise.
26152 * tree-vect-stmts.c: Likewise.
26153 * tree-vectorizer.c: Likewise.
26154 * tree.c: Likewise.
26155 * tsan.c: Likewise.
26156 * ubsan.c: Likewise.
26157 * value-prof.c: Likewise.
26158 * varasm.c: Likewise.
26159 * varpool.c: Likewise.
26160 * config/arm/arm.c: Likewise.
26161 * config/bfin/bfin.c: Likewise.
26162 * config/c6x/c6x.c: Likewise.
26163 * config/cris/cris.c: Likewise.
26164 * config/darwin-c.c: Likewise.
26165 * config/darwin.c: Likewise.
26166 * config/i386/i386.c: Likewise.
26167 * config/i386/winnt.c: Likewise.
26168 * config/microblaze/microblaze.c: Likewise.
26169 * config/mips/mips.c: Likewise.
26170 * config/rs6000/rs6000.c: Likewise.
26171 * config/rx/rx.c: Likewise.
26172 * config/s390/s390.c: Likewise.
26173 * config/tilegx/mul-tables.c: Likewise.
26174
26175 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26176
26177 * config/aarch64/aarch64.c, config/alpha/alpha.c,
26178 config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
26179 config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
26180 config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
26181 config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
26182 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
26183 config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
26184 config/microblaze/microblaze.c, config/mips/mips.c,
26185 config/mmix/mmix.c, config/mn10300/mn10300.c,
26186 config/moxie/moxie.c, config/msp430/msp430.c,
26187 config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
26188 config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
26189 config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
26190 config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
26191 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
26192 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
26193 config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
26194 target-def.h include.
26195 * config/ft32/ft32.c: Likewise. Fix misapplied hunk.
26196
26197 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26198
26199 * Makefile.in (TARGET_DEF): Add target-insns.def.
26200 (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
26201 (build/gentarget-def.o): New rule.
26202 (genprogrtl): Add target-def.
26203 * target-insns.def, gentarget-def.c: New files.
26204 * target.def: Add targetm.have_* and targetm.gen_* hooks,
26205 based on the contents of target-insns.def.
26206 * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
26207 (HAVE_return, gen_return): Delete.
26208 * target-def.h: Include insn-target-def.h.
26209 * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
26210 instead of direct calls. Rely on them to do the appropriate assertions.
26211 * function.c (gen_return_pattern): Likewise. Return an rtx_insn *.
26212 (convert_jumps_to_returns): Use targetm interface instead of
26213 direct calls.
26214 (thread_prologue_and_epilogue_insns): Likewise.
26215 * reorg.c (find_end_label, dbr_schedule): Likewise.
26216 * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
26217 * shrink-wrap.c (convert_to_simple_return): Likewise.
26218 (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
26219
26220 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26221
26222 * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
26223 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
26224 config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
26225 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
26226 config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
26227 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
26228 config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
26229 config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
26230 config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
26231 config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
26232 config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
26233 config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
26234 config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
26235 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
26236 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
26237 config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
26238 includes to end.
26239
26240 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26241
26242 * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
26243 (unbounded_int_hashmap_traits::key_type): Likewise.
26244 * hash-map.h (hash_map): Get the key type from the traits.
26245 * hash-traits.h (default_hash_traits): By default, inherit from the
26246 template parameter.
26247 * alias.c (alias_set_traits): Delete.
26248 (alias_set_entry_d::children): Use alias_set_hash as the first
26249 template parameter.
26250 (record_alias_subset): Update accordingly.
26251 * except.c (tree_hash_traits): Delete.
26252 (type_to_runtime_map): Use tree_hash as the first template parameter.
26253 (init_eh): Update accordingly.
26254 * genmatch.c (capture_id_map_hasher): Delete.
26255 (cid_map_t): Use nofree_string_hash as first template parameter.
26256 * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
26257 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
26258 Use symbol_compare_hash as the first template parameter in
26259 subdivide_hash_map.
26260 * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
26261 (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
26262 template parameter.
26263 * passes.c (pass_registry_hasher): Delete.
26264 (name_to_pass_map): Use nofree_string_hash as the first template
26265 parameter.
26266 (register_pass_name): Update accordingly.
26267 * sanopt.c (sanopt_tree_map_traits): Delete.
26268 (sanopt_tree_triplet_map_traits): Delete.
26269 (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
26270 template parameter.
26271 (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
26272 the first template parameter.
26273 * sese.c (rename_map_hasher): Delete.
26274 (rename_map_type): Use tree_ssa_name_hash as the first template
26275 parameter.
26276 * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
26277 (function_summary::m_map): Use map_hash as the first template
26278 parameter.
26279 (function_summary::release): Update accordingly.
26280 * tree-if-conv.c (phi_args_hash_traits): Delete.
26281 (predicate_scalar_phi): Use tree_operand_hash as the first template
26282 parameter to phi_arg_map.
26283 * tree-inline.h (dependence_hasher): Delete.
26284 (copy_body_data::dependence_map): Use dependence_hash as the first
26285 template parameter.
26286 * tree-inline.c (remap_dependence_clique): Update accordingly.
26287 * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
26288 (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
26289 parameter.
26290 (addr_stridxptr): Update accordingly.
26291 * value-prof.c (profile_id_traits): Delete.
26292 (cgraph_node_map): Use profile_id_hash as the first template
26293 parameter.
26294 (init_node_map): Update accordingly.
26295 * config/alpha/alpha.c (string_traits): Delete.
26296 (machine_function::links): Use nofree_string_hash as the first
26297 template parameter.
26298 (alpha_use_linkage, alpha_write_linkage): Update accordingly.
26299 * config/m32c/m32c.c (pragma_traits): Delete.
26300 (pragma_htab): Use nofree_string_hash as the first template parameter.
26301 (m32c_note_pragma_address): Update accordingly.
26302 * config/mep/mep.c (pragma_traits): Delete.
26303 (pragma_htab): Use nofree_string_hash as the first template parameter.
26304 (mep_note_pragma_flag): Update accordingly.
26305 * config/mips/mips.c (mips16_flip_traits): Delete.
26306 (mflip_mips16_htab): Use nofree_string_hash as the first template
26307 parameter.
26308 (mflip_mips16_use_mips16_p): Update accordingly.
26309 (local_alias_traits): Delete.
26310 (mips16_local_aliases): Use nofree_string_hash as the first template
26311 parameter.
26312 (mips16_local_alias): Update accordingly.
26313
26314 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26315
26316 * hash-map-traits.h (default_hashmap_traits): Delete.
26317
26318 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26319
26320 * hash-map-traits.h (unbounded_hashmap_traits): New class.
26321 (unbounded_int_hashmap_traits): Likewise.
26322 * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
26323
26324 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26325
26326 * ipa-icf.h (symbol_compare_hash): New class.
26327 (symbol_compare_hashmap_traits): Use it.
26328 * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
26329 (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
26330 (mem_alloc_description::reverse_mem_map_t): Remove redundant
26331 default_hashmap_traits.
26332 * sanopt.c (sanopt_tree_triplet_hash): New class.
26333 (sanopt_tree_triplet_map_traits): Use it.
26334
26335 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26336
26337 * gengtype-parse.c (require_template_declaration): Allow '+' in
26338 template parameters. Consolidate cases.
26339 * hash-traits.h (int_hash): New class.
26340 * alias.c (alias_set_hash): New structure.
26341 (alias_set_traits): Use it.
26342 * symbol-summary.h (function_summary::map_hash): New class.
26343 (function_summary::summary_hashmap_traits): Use it.
26344 * tree-inline.h (dependence_hash): New class.
26345 (dependence_hasher): Use it.
26346 * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
26347 * value-prof.c (profile_id_hash): New class.
26348 (profile_id_traits): Use it.
26349
26350 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26351
26352 * config/mips/mips.c (mips16_flip_traits): Use it.
26353 (local_alias_traits, mips16_local_aliases): Convert from a map of
26354 rtxes to a map of symbol names.
26355 (mips16_local_alias): Update accordingly.
26356
26357 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26358
26359 * hash-traits.h (string_hash, nofree_string_hash): New classes.
26360 * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
26361 * passes.c (pass_registry_hasher): Likewise.
26362 * config/alpha/alpha.c (string_traits): Likewise.
26363 * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
26364 * config/m32c/m32c.c (pragma_traits): Likewise.
26365 * config/mep/mep.c (pragma_traits): Likewise.
26366
26367 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26368
26369 * tree-hash-traits.h (tree_hash): New class.
26370 * except.c: Include tree-hash-traits.h.
26371 (tree_hash_traits): Use tree_hash.
26372
26373 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26374
26375 * tree-hash-traits.h (tree_ssa_name_hasher): New class.
26376 * sese.c: Include tree-hash-traits.h.
26377 (rename_map_hasher): Use tree_ssa_name_hasher.
26378
26379 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26380
26381 * tree-hash-traits.h (tree_decl_hash): New class.
26382 * tree-ssa-strlen.c: Include tree-hash-traits.h.
26383 (stridxlist_hash_traits): Use tree_decl_hash.
26384
26385 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26386
26387 * tree-hash-traits.h: New file.
26388 (tree_operand_hash): New class.
26389 * sanopt.c: Include tree-hash-traits.h.
26390 (sanopt_tree_map_traits): Use tree_operand_hash.
26391 * tree-if-conv.c: Include tree-hash-traits.h.
26392 (phi_args_hash_traits): Use tree_operand_hash.
26393 * tree-ssa-uncprop.c: Include tree-hash-traits.h.
26394 (val_ssa_equiv_hash_traits): Use tree_operand_hash.
26395
26396 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26397
26398 * hash-map-traits.h: Include hash-traits.h.
26399 (simple_hashmap_traits): New class.
26400 * mem-stats.h (hash_map): Change the default traits to
26401 simple_hashmap_traits<default_hash_traits<Key> >.
26402
26403 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26404
26405 * hash-table.h: Update comments.
26406
26407 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26408
26409 * hash-traits.h (default_hash_traits): New structure.
26410 * hash-set.h (default_hashset_traits): Delete.
26411 (hash_set): Use default_hash_traits<Key> instead of
26412 default_hashset_traits. Delete hash_entry type and use Key directly.
26413 * ipa-devirt.c (pair_traits): Delete.
26414 (default_hash_traits <type_pair>): Override.
26415 (odr_subtypes_equivalent_p): Remove pair_types template parameter.
26416 (odr_types_equivalent_p, add_type_duplicate): Likewise.
26417
26418 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26419
26420 * hash-traits.h (typed_noop_remove): Don't require a pointer type.
26421
26422 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26423
26424 * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
26425 (has_is_empty, is_empty_helper): Delete.
26426 (has_mark_deleted, mark_deleted_helper): Delete.
26427 (has_mark_empty, mark_empty_helper): Delete.
26428 (hash_table::is_deleted): Call the Descriptor unconditionally.
26429 (hash_table::is_empty): Likewise.
26430 (hash_table::mark_deleted): Likewise.
26431 (hash_table::mark_empty): Likewise.
26432
26433 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26434
26435 * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash. Remove
26436 redundant typedefs and members.
26437 * coverage.c (counts_entry): Inherit from pointer_hash. Remove
26438 redundant typedefs.
26439 * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
26440 * ipa-devirt.c (odr_name_hasher): Likewise.
26441 (polymorphic_call_target_hasher): Likewise.
26442 * ira-costs.c (cost_classes_hasher): Likewise.
26443 * statistics.c (stats_counter_hasher): Likewise.
26444 * trans-mem.c (log_entry_hasher): Likewise.
26445 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
26446 * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
26447 * tree-ssa-tail-merge.c (same_succ_def): Likewise.
26448 * var-tracking.c (variable_hasher): Likewise.
26449 * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
26450 Remove redundant typedefs and members.
26451
26452 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26453
26454 * hash-traits.h (ggc_cache_hasher): Rename to...
26455 (ggc_cache_remove): ...this and remove typedefs.
26456 (ggc_cache_ptr_hash): New class.
26457 * hash-table.h: Update commentary.
26458 * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
26459 rather than ggc_cache_hasher.
26460 (const_wide_int_hasher, reg_attr_hasher): Likewise.
26461 (const_double_hasher, const_fixed_hasher): Likewise.
26462 * function.c (insn_cache_hasher): Likewise.
26463 * trans-mem.c (tm_wrapper_hasher): Likewise.
26464 * tree.h (tree_decl_map_cache_hasher): Likewise.
26465 * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
26466 (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
26467 * ubsan.c (tree_type_map_cache_hasher): Likewise.
26468 * varasm.c (tm_clone_hasher): Likewise.
26469 * config/i386/i386.c (dllimport_hasher): Likewise.
26470 * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
26471 (tree_hasher): Likewise.
26472
26473 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26474
26475 * hash-traits.h (ggc_hasher): Rename to...
26476 (ggc_remover): ...this and remove typedefs.
26477 (ggc_cache_hasher): Update accordingly. Add typedefs.
26478 (ggc_ptr_hash): New class.
26479 * hash-table.h: Update comment.
26480 * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
26481 ggc_hasher.
26482 * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
26483 (tree_descriptor_hasher): Likewise.
26484 * cgraph.c (function_version_hasher): Likewise.
26485 * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
26486 (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
26487 (dw_loc_list_hasher, addr_hasher): Likewise.
26488 * function.h (used_type_hasher): Likewise.
26489 * function.c (temp_address_hasher): Likewise.
26490 * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
26491 * libfuncs.h (libfunc_hasher): Likewise.
26492 * lto-streamer.h (decl_state_hasher): Likewise.
26493 * optabs.c (libfunc_decl_hasher): Likewise.
26494 * tree-scalar-evolution.c (scev_info_hasher): Likewise.
26495 * varasm.c (section_hasher, object_block_hasher): Likewise.
26496 (const_rtx_desc_hasher): Likewise.
26497 * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
26498 * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
26499
26500 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26501
26502 * hash-traits.h (free_ptr_hash): New class.
26503 * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
26504 rather than typed_free_remove. Remove redudant typedefs.
26505 (external_ref_hasher): Likewise.
26506 * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
26507 (ehspec_hasher): Likewise.
26508 * ggc-common.c (saving_hasher): Likewise.
26509 * gimplify.c (gimplify_hasher): Likewise.
26510 * haifa-sched.c (delay_i2_hasher): Likewise.
26511 * loop-invariant.c (invariant_expr_hasher): Likewise.
26512 * loop-iv.c (biv_entry_hasher): Likewise.
26513 * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
26514 * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
26515 * tree-cfg.c (locus_discrim_hasher): Likewise.
26516 * tree-eh.c (finally_tree_hasher): Likewise.
26517 * tree-into-ssa.c (var_info_hasher): Likewise.
26518 * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
26519 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
26520 * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
26521 * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
26522 * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
26523 * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
26524 (shared_bitmap_hasher): Likewise.
26525 * tree-ssa-threadupdate.c (redirection_data): Likewise.
26526 * tree-vectorizer.h (peel_info_hasher): Likewise.
26527 * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
26528 * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
26529
26530 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26531
26532 * hash-table.h: Update comments.
26533 * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
26534 (nofree_ptr_hash): New class.
26535 * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
26536 than typed_noop_remove. Remove redudant typedefs.
26537 * attribs.c (attribute_hasher): Likewise.
26538 * cfg.c (bb_copy_hasher): Likewise.
26539 * cselib.c (cselib_hasher): Likewise.
26540 * dse.c (invariant_group_base_hasher): Likewise.
26541 * dwarf2cfi.c (trace_info_hasher): Likewise.
26542 * dwarf2out.c (macinfo_entry_hasher): Likewise.
26543 (comdat_type_hasher, loc_list_hasher): Likewise.
26544 * gcse.c (pre_ldst_expr_hasher): Likewise.
26545 * genmatch.c (id_base): Likewise.
26546 * genrecog.c (test_pattern_hasher): Likewise.
26547 * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
26548 * haifa-sched.c (delay_i1_hasher): Likewise.
26549 * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
26550 * ipa-icf.h (congruence_class_group_hash): Likewise.
26551 * ipa-profile.c (histogram_hash): Likewise.
26552 * ira-color.c (allocno_hard_regs_hasher): Likewise.
26553 * lto-streamer.h (string_slot_hasher): Likewise.
26554 * lto-streamer.c (tree_entry_hasher): Likewise.
26555 * plugin.c (event_hasher): Likewise.
26556 * postreload-gcse.c (expr_hasher): Likewise.
26557 * store-motion.c (st_expr_hasher): Likewise.
26558 * tree-sra.c (uid_decl_hasher): Likewise.
26559 * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
26560 (ssa_name_var_hash): Likewise.
26561 * tree-ssa-live.c (tree_int_map_hasher): Likewise.
26562 * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
26563 * tree-ssa-pre.c (pre_expr_d): Likewise.
26564 * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
26565 * vtable-verify.h (registration_hasher): Likewise.
26566 * vtable-verify.c (vtbl_map_hasher): Likewise.
26567 * config/arm/arm.c (libcall_hasher): Likewise.
26568 * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
26569 * config/ia64/ia64.c (bundle_state_hasher): Likewise.
26570 * config/sol2.c (comdat_entry_hasher): Likewise.
26571 * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
26572 (print_fold_checksum, fold_checksum_tree): Likewise.
26573 (debug_fold_checksum, fold_build1_stat_loc): Likewise.
26574 (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
26575 (fold_build_call_array_loc): Likewise.
26576 * tree-ssa-ccp.c (gimple_htab): Likewise.
26577 * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
26578 rather than pointer_type.
26579
26580 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26581
26582 * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
26583 (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
26584
26585 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26586
26587 * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
26588 (ggc_hasher::ggc_mx): Likewise.
26589 (ggc_cache_hasher): Inherit from ggc_hasher. Remove definitions
26590 that duplicate ggc_hasher ones.
26591
26592 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26593
26594 * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
26595 (gt_cleare_cache): Check here for deleted and empty entries.
26596 Replace handle_cache_entry with a call to keep_cache_entry.
26597 * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
26598 (ggc_cache_hasher::keep_cache_entry): New function.
26599 * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
26600 (tm_wrapper_hasher::keep_cache_entry): New function.
26601 * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
26602 (tree_vec_map_cache_hasher::keep_cache_entry): New function.
26603 * tree.c (type_cache_hasher::handle_cache_entry): Delete.
26604 (type_cache_hasher::keep_cache_entry): New function.
26605 (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
26606 (tree_vec_map_cache_hasher::keep_cache_entry): New function.
26607 * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
26608 (tree_type_map_cache_hasher::keep_cache_entry): New function.
26609 * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
26610 (tm_clone_hasher::keep_cache_entry): New function.
26611 * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
26612 (dllimport_hasher::keep_cache_entry): New function.
26613
26614 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26615
26616 * hash-table.h: Include hash-traits.h.
26617 (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
26618 (ggc_cache_hasher): Move to...
26619 * hash-traits.h: ...this new file.
26620
26621 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
26622
26623 * tree-core.h (struct tree_optimization_option): Make opts a pointer to
26624 struct cl_optimization.
26625 * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
26626 * tree.c (make_node_stat): Allocate cl_optimization struct.
26627 (copy_node_stat): Allocate and copy cl_optimization struct.
26628
26629 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
26630
26631 * function.h (struct incoming_args): Move struct.
26632 (pass_by_reference, reference_callee_copied): Remove prototypes.
26633 * emit-rtl.h (struct incoming_args): Relocate struct here.
26634 * calls.h (pass_by_reference, reference_callee_copied): Relocate
26635 prototypes here.
26636 * function.c (pass_by_reference, reference_callee_copied): Move.
26637 * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
26638 * cfgloop.h: Don't include tm.h or hard-reg-set.h.
26639 * ipa-chkp.c: Include calls.h.
26640
26641 2015-06-25 Andrew Macleod <amacleod@redhat.com>
26642
26643 * alias.h (alias_set_type): Move typedef.
26644 * coretypes.h (alias_set_type): Relocate typedef here.
26645 * rtl.h: Don't include alias.h.
26646
26647 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
26648
26649 * cgraph.h (cgraph_rtl_info): Move to rtl.h
26650 (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
26651 and instance.
26652 * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
26653 * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
26654 doesn't exist.
26655 * calls.c: Include hard-reg-set.h before rtl.h.
26656 * ira.c: Likewise.
26657
26658 2015-06-25 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
26659 Vladimir Makarov <vmakarov@redhat.com>
26660
26661 * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
26662 Add assert.
26663
26664 2015-06-25 Richard Biener <rguenther@suse.de>
26665
26666 * fold-const.c (fold_binary_loc): Move simplification of
26667 (X <<>> C1) & C2 ...
26668 * match.pd: ... here.
26669
26670 2015-06-25 Eric Botcazou <ebotcazou@adacore.com>
26671
26672 * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
26673
26674 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
26675
26676 * match.pd: Add patterns for vec_conds between 1 and 0.
26677
26678 2015-06-25 Richard Biener <rguenther@suse.de>
26679
26680 * tree-vect-stmts.c (vectorizable_conversion): Do not set
26681 STMT_VINFO_VEC_STMT for SLP.
26682 (vectorizable_store): Likewise.
26683 (vectorizable_load): Likewise.
26684 (vect_transform_stmt): Catch SLP vectorization clobbering
26685 STMT_VINFO_VEC_STMT.
26686
26687 2015-06-25 Richard Biener <rguenther@suse.de>
26688
26689 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
26690 dumping.
26691 (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
26692 cleanup resulting dead code and parameters.
26693 (vect_transform_slp_perm_load): Adjust.
26694
26695 2015-06-25 Nick Clifton <nickc@redhat.com>
26696
26697 * config/bfin/bfin.c (bfin_expand_prologue): Set
26698 current_function_static_stack_size if flag_stack_usage_info is set.
26699 * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
26700 * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
26701 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
26702 * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
26703
26704 2015-06-25 Tom de Vries <tom@codesourcery.com>
26705
26706 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
26707 comment that the generated IV is unsigned.
26708
26709 2015-06-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26710
26711 PR target/29693
26712 * config/arm/arm.c (arm_dbx_register_number): Return
26713 DWARF_FRAME_REGISTERS by default.
26714
26715 2015-06-25 Tom de Vries <tom@codesourcery.com>
26716
26717 * dominance.c (calculate_dominance_info): Fix verify_dominators call
26718 argument. Call verify_dominator when reusing dominator info.
26719
26720 2015-06-24 Kaz Kojima <kkojima@gcc.gnu.org>
26721
26722 PR target/66563
26723 * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
26724 an additional element of the unspec vector. Modify indices
26725 of operands.
26726 (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
26727 * config/sh/sh.c (prepare_move_operands): Pass incremented
26728 const_int to gen_GOTaddr2picreg.
26729 (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
26730
26731 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
26732
26733 * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
26734 Condition on TARGET_FLOAT.
26735
26736 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
26737
26738 * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
26739 and (no)crypto.
26740
26741 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
26742
26743 * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
26744
26745 * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
26746 aarch64_err_no_fpadvsimd.
26747
26748 * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
26749 (aarch64_layout_arg, aarch64_init_cumulative_args): Use
26750 aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
26751 (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
26752 Turn error into assert, test TARGET_FLOAT.
26753 (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
26754 TARGET_FLOAT.
26755
26756 2015-06-24 Aldy Hernandez <aldyh@redhat.com>
26757
26758 PR debug/66482
26759 * dwarf2out.c (gen_formal_parameter_die): Remove assert.
26760
26761 2015-06-24 Ilya Enkovich <enkovich.gnu@gmail.com>
26762
26763 * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
26764
26765 2015-06-24 Renlin Li <renlin.li@arm.com>
26766
26767 * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
26768 __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
26769
26770 2015-06-24 Richard Biener <rguenther@suse.de>
26771
26772 * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
26773 (main): Likewise.
26774 (lower_opt_convert): Support lowering of conditional view_convert.
26775 (parser::parse_operation): Likewise.
26776 (parser::parse_for): Likewise.
26777
26778 2015-06-24 Renlin Li <renlin.li@arm.com>
26779
26780 * varasm.c (emit_local): Use unsigned int for align variable.
26781
26782 2015-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26783
26784 PR target/63408
26785 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
26786 for negative numbers.
26787
26788 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26789
26790 PR rtl-optimization/66306
26791 * reload.c (find_reloads): Swap the match_dup info for
26792 commutative operands.
26793
26794 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26795
26796 * config/s390/vx-builtins.md
26797 ("vec_scatter_element<mode>_<non_vec_int>")
26798 ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
26799 attribute with bhfgq.
26800
26801 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26802
26803 * config/s390/s390-builtins.def: Fix vpopct instruction comments.
26804
26805 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26806
26807 * config/s390/s390-builtin-types.def: Add flag to indicate the
26808 options under which the function type is needed.
26809 * config/s390/s390-builtins.def: Add flag to indicate the options
26810 under which the builtin is enabled.
26811 * config/s390/s390-builtins.h: Add flags parameter to macro
26812 definitions.
26813 (bflags_for_builtin): New function.
26814 (flags_for_builtin): Renamed to ...
26815 (opflags_for_builtin): ... this.
26816 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
26817 flags_for_builtin to bflags_for_builtin and
26818 flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
26819 * config/s390/s390.c: Add initialization of bflags_builtin and
26820 opflags_builtin arrays.
26821 Remove code for flags_builtin.
26822 (s390_init_builtins): Only create builtin function types if one of
26823 their flags is active.
26824 Only create builtins if all of their flags are active.
26825 (s390_expand_builtin): Rename flags_for_builtin to
26826 opflags_for_builtin.
26827
26828 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26829
26830 * config/s390/vecintrin.h: Remove internal builtins.
26831
26832 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26833
26834 * config/s390/s390.c (s390_secondary_reload): Fix check for
26835 GENERAL_REGS register class.
26836
26837 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26838
26839 * config/s390/s390.c (s390_support_vector_misalignment): Call
26840 default implementation for !TARGET_VX.
26841
26842 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26843
26844 * config/s390/s390.c (s390_legitimate_constant_p): Add
26845 TARGET_VX check.
26846
26847 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26848
26849 * config/s390/s390.c (s390_vector_abi): New variable definition.
26850 (s390_check_type_for_vector_abi): New function.
26851 (TARGET_ASM_FILE_END): New macro definition.
26852 (s390_asm_file_end): New function.
26853 (s390_function_arg): Call s390_check_type_for_vector_abi.
26854 (s390_gimplify_va_arg): Likewise.
26855 * configure: Regenerate.
26856 * configure.ac: Check for .gnu_attribute Binutils feature.
26857
26858 2015-06-23 Chen Gang <gang.chen.5i5j@gmail.com>
26859
26860 PR target/65803
26861 * config/bfin/bfin.c (hwloop_optimize): Initialize
26862 JUMP_LABEL for newly created jump.
26863
26864 2015-06-23 Tristan Gingold <gingold@adacore.com>
26865
26866 * collect-utils.c (collect_wait): Unlink the response file here
26867 instead of...
26868 (do_wait): ...here.
26869 (utils_cleanup): ...and here.
26870
26871 2015-06-23 Richard Sandiford <richard.sandiford@arm.com>
26872
26873 * df-scan.c: Don't include target-def.h.
26874 * targhooks.c: Likewise.
26875 * config/arm/arm-c.c: Likewise.
26876 * config/i386/i386-c.c: Likewise.
26877 * config/nds32/nds32-cost.c: Likewise.
26878 * config/nds32/nds32-fp-as-gp.c: Likewise.
26879 * config/nds32/nds32-intrinsic.c: Likewise.
26880 * config/nds32/nds32-isr.c: Likewise.
26881 * config/nds32/nds32-md-auxiliary.c: Likewise.
26882 * config/nds32/nds32-memory-manipulation.c: Likewise.
26883 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
26884 * config/nds32/nds32-predicates.c: Likewise.
26885
26886 2015-06-23 Richard Biener <rguenther@suse.de>
26887
26888 PR tree-optimization/66636
26889 * tree-vect-stmts.c (vectorizable_store): Properly compute the
26890 def type for further defs for strided stores.
26891
26892 2015-06-23 Nathan Sidwell <nathan@codesourcery.com>
26893
26894 * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
26895 conditional selects.
26896 (setcc_int<mode>, setcc_float<mode>): Reformat.
26897
26898 2015-06-23 Marek Polacek <polacek@redhat.com>
26899
26900 * match.pd ((x + y) - (x | y) -> x & y,
26901 (x + y) - (x & y) -> x | y): New patterns.
26902
26903 2015-06-23 Ludovic Courtès <ludo@gnu.org>
26904
26905 PR 65711
26906 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
26907 '-dynamic-linker' within %{!shared: ...}.
26908
26909 2015-06-23 Uros Bizjak <ubizjak@gmail.com>
26910
26911 PR target/66560
26912 * config/i386/predicates.md (addsub_vm_operator): New predicate.
26913 (addsub_vs_operator): Ditto.
26914 (addsub_vs_parallel): Ditto.
26915 * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
26916 (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
26917 Put minus RTX before plus and adjust vec_merge selector.
26918 (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
26919 (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
26920 (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
26921 (addsub vec_merge splitters): New combiner splitters.
26922 (addsub vec_select/vec_concat splitters): Ditto.
26923
26924 2015-06-23 Bin Cheng <bin.cheng@arm.com>
26925
26926 PR tree-optimization/66449
26927 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
26928 POINTER_PLUS_EXPR for pointers.
26929
26930 2015-06-23 Alan Modra <amodra@gmail.com>
26931
26932 * rtlanal.c (commutative_operand_precedence): Correct comments.
26933 * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
26934 declaration. Return an int. Distinguish REG,REG return from
26935 others.
26936 (struct simplify_plus_minus_op_data): Make local to function.
26937 (simplify_plus_minus): Don't set canonicalized if merely sorting
26938 registers. Avoid packing ops if nothing changes. White space fixes.
26939
26940 2015-06-22 Pierre-Marie de Rodat <derodat@adacore.com>
26941
26942 * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
26943 -fdump-ada-spec is passed but not if -fsyntax-only is.
26944
26945 2015-06-22 Vladimir Makarov <vmakarov@redhat.com>
26946
26947 PR bootstrap/63740
26948 * lra-lives.c (process_bb_lives): Check insn copying the same
26949 reload pseudo and don't create a copy for it.
26950
26951 2015-06-22 Tom de Vries <tom@codesourcery.com>
26952
26953 * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
26954 for cond_stmt.
26955
26956 2015-06-22 Tom de Vries <tom@codesourcery.com>
26957
26958 * builtins.def (DEF_GOMP_BUILTIN): Test
26959 'flag_tree_parallelize_loops > 1' instead of
26960 'flag_tree_parallelize_loops'. Test flag_cilkplus.
26961
26962 2015-06-22 Tom de Vries <tom@codesourcery.com>
26963
26964 * dominance.c (calculate_dominance_info): Verify dominators if
26965 early-out.
26966
26967 2015-06-22 Marek Polacek <polacek@redhat.com>
26968
26969 * match.pd ((x ^ y) ^ (x | y) -> x & y,
26970 (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
26971 (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
26972 (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
26973
26974 2015-06-22 Uros Bizjak <ubizjak@gmail.com>
26975
26976 PR target/65871
26977 * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
26978 cost of embedded comparison.
26979
26980 2015-06-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26981
26982 PR target/65914
26983 * config/rs6000/predicates.md (altivec_register_operand): Permit
26984 virtual stack registers.
26985 (vsx_register_operand): Likewise.
26986 (vfloat_operand): Likewise.
26987 (vint_operand): Likewise.
26988 (vlogical_operand): Likewise.
26989
26990 2015-06-22 Richard Biener <rguenther@suse.de>
26991
26992 * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
26993 and single_scalar_iteration_cost members.
26994 (LOOP_VINFO_SCALAR_ITERATION_COST): New.
26995 (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
26996 (vect_get_single_scalar_iteration_cost): Remove.
26997 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
26998 Use LOOP_VINFO_SCALAR_ITERATION_COST.
26999 * tree-vect-loop.c (destroy_loop_vec_info): Free
27000 scalar_cost_vec.
27001 (vect_get_single_scalar_iteration_cost): Compute result into
27002 LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
27003 LOOP_VINFO_SCALAR_ITERATION_COST. Make static.
27004 (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
27005 (vect_estimate_min_profitable_iters): Use them.
27006
27007 2015-06-22 Christian Bruel <christian.bruel@st.com>
27008
27009 PR target/52144
27010 * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
27011 (TARGET_INSERT_ATTRIBUTES): Define.
27012 (thumb_flipper): New var.
27013 * config/arm/arm.opt (-mflip-thumb): New switch.
27014
27015 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
27016 Martin Liska <mliska@suse.cz>
27017
27018 PR ipa/65908
27019 * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
27020 construction of arg_types.
27021 (sem_function::sem_function): Likewise.
27022 (sem_function::~sem_function): Remove destruction of arg_types.
27023 (sem_function::compatible_parm_types_p): New function.
27024 (sem_function::equals_wpa): Reorg matching of return values
27025 and parameter types.
27026 (sem_function::equals_private): Reorg mathcing of argument types.
27027 (sem_function::parse_tree_args): Remove.
27028 * ipa-icf.h (init_wpa): Do not call it.
27029 (parse_tree_args): Remove.
27030 (compatible_parm_types_p): Declare.
27031 (result_type): Remove.
27032 (arg_types): Remove.
27033
27034 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
27035
27036 PR ipa/66351
27037 * ipa-polymorphic-call.c
27038 (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
27039 initializing alias oracle; fix formating; set base_alias_set if it
27040 is known.
27041
27042 2015-06-22 Mikhail Maltsev <maltsevm@gmail.com>
27043
27044 * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
27045 (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
27046 (find_inc): Likewise.
27047 * combine.c (combine_simplify_rtx): Use std::swap instead of manually
27048 swapping.
27049 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
27050 * df-scan.c (df_swap_refs): Remove.
27051 (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
27052 * dominance.c (link_roots): Use std::swap instead of manually swapping.
27053 * expr.c (expand_expr_real_2, do_store_flag): Likewise.
27054 * fold-const.c (fold_relational_const): Likewise.
27055 * genattrtab.c (simplify_test_exp): Likewise.
27056 * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
27057 gimple_simplify): Likewise.
27058 * ifcvt.c (noce_try_abs, find_if_header): Likewise.
27059 * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
27060 * ipa-devirt.c (add_type_duplicate): Likewise.
27061 * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
27062 * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
27063 * lra.c (lra_create_copy): Likewise.
27064 * lto-streamer-out.c (DFS::DFS): Likewise.
27065 * modulo-sched.c (get_sched_window): Likewise.
27066 * omega.c (omega_pretty_print_problem): Likewise.
27067 * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
27068 * reload1.c (reloads_unique_chain_p): Likewise.
27069 * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
27070 (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
27071 use std::swap.
27072 * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
27073 manually swapping.
27074 * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
27075 predicate_mem_writes): Likewise.
27076 * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
27077 * tree-predcom.c (combine_chains): Likewise.
27078 * tree-ssa-alias.c (nonoverlapping_component_refs_p,
27079 refs_may_alias_p_1): Likewise.
27080 * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
27081 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
27082 * tree-ssa-loop-niter.c (refine_bounds_using_guard,
27083 number_of_iterations_cond): Likewise.
27084 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
27085 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
27086 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
27087 * tree-vect-stmts.c (supportable_widening_operation): Likewise.
27088 * tree-vrp.c (extract_range_from_binary_expr_1,
27089 extract_range_from_unary_expr_1): Likewise.
27090
27091 2015-06-20 Marek Polacek <polacek@redhat.com>
27092
27093 * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
27094
27095 2015-06-19 Kaz Kojima <kkojima@gcc.gnu.org>
27096
27097 PR target/66591
27098 * config/sh/sh.c (prepare_move_operands): Replace subreg
27099 index term with R0 for base and index addressing.
27100
27101 2015-06-19 Jim Wilson <jim.wilson@linaro.org>
27102
27103 * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
27104 op1 is an fp zero.
27105 (movsf_aarch64): Change condition from register_operand to
27106 aarch64_reg_or_fp_zero for op1. Change type for alternative 6 to
27107 load1. Change type for alternative 7 to store1.
27108 (movdf_aarch64): Likewise.
27109
27110 2015-06-19 James Greenhalgh <james.greenhalgh@arm.com>
27111
27112 * config/vax/vax.md: Adjust sign/zero extend patterns to
27113 handle SUBREGs in operands[1].
27114
27115 2015-06-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27116
27117 * config/i386/i386.c (ix86_function_versions): Use std::swap instead
27118 of manually swapping.
27119 (expand_vec_perm_interleave2): Likewise.
27120
27121 2015-06-19 Ilya Enkovich <enkovich.gnu@gmail.com>
27122
27123 * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
27124 reuse bounds created for abnormal ssa names.
27125
27126 2015-06-19 Jakub Jelinek <jakub@redhat.com>
27127
27128 * config/nvptx/nvptx.md (allocate_stack): Rename to...
27129 (allocate_stack_<mode>): ... this, and add :P on both
27130 match_operand and unspec.
27131 (allocate_stack): New expander.
27132
27133 2015-06-19 Christian Bruel <christian.bruel@st.com>
27134
27135 PR target/66541
27136 PR target/52144
27137 * config/arm/arm.c (arm_set_current_function): Handle
27138 explicit default options.
27139
27140 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
27141
27142 * config/i386/i386.md (*movsicc_noc_zext): New insn.
27143 (zero-extended cmove with mem peephole2): New pattern.
27144 (cmove with mem peephole2): Merge patterns.
27145
27146 2015-06-18 Segher Boessenkool <segher@kernel.crashing.org>
27147
27148 * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
27149
27150 2015-06-18 Steve Ellcey <sellcey@imgtec.com>
27151
27152 * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
27153 * config/mips/mips.md (*madd4<mode>): Ditto.
27154 (*nmadd3<mode>) Ditto.
27155 (*nmadd4<mode>_fastmath): Ditto.
27156 (*nmadd3<mode>_fastmath): Ditto.
27157 (*nmsub4<mode>): Ditto.
27158 (*nmsub3<mode>): Ditto.
27159 (*nmsub4<mode>_fastmath): Ditto.
27160 (*nmsub3<mode>_fastmath): Ditto.
27161
27162 2015-06-18 Michael Matz <matz@suse.de>
27163
27164 PR middle-end/66253
27165 * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
27166 grouped strided stores.
27167 (vectorizable_load): Don't use the DR from first_stmt in
27168 the non-SLP grouped strided case.
27169
27170 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
27171
27172 PR target/66569
27173 * function.c (assign_bounds): Add arguments assign_regs,
27174 assign_special, assign_bt.
27175 (assign_parms): For vararg functions handle bounds in BT
27176 and special slots after incoming vararg bounds.
27177
27178 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
27179
27180 PR middle-end/66568
27181 * cfgexpand.c (expand_return): Handle missing bounds.
27182 (expand_gimple_stmt_1): Likewise.
27183 * tree-chkp.c (chkp_expand_zero_bounds): New.
27184 * tree-chkp.h (chkp_expand_zero_bounds): New.
27185
27186 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
27187
27188 PR middle-end/66567
27189 * ipa-chkp.c (chkp_maybe_create_clone): Require
27190 functions to be instrumentable.
27191 * tree-chkp.c (chkp_replace_function_pointer): Use
27192 chkp_instrumentable_p instead of attribute check.
27193
27194 2015-06-18 Richard Biener <rguenther@suse.de>
27195
27196 PR tree-optimization/66510
27197 * tree-vect-stmts.c (vectorizable_load): Properly compute the
27198 number of vector loads for SLP permuted loads.
27199 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
27200 check the stride for loop vectorization.
27201 (vect_enhance_data_refs_alignment): Deal with SLP adjusted
27202 vectorization factor.
27203 (vect_analyze_group_access): If the group size is not a power
27204 of two require a epilogue loop.
27205 * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
27206 compute and optimizing and alias test pruning after final
27207 vectorization factor computation.
27208 * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
27209 vector alignment.
27210 (vect_transform_slp_perm_load): Properly compute the original
27211 number of vector load stmts.
27212
27213 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
27214
27215 * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
27216 "unlikely character , in @var" warning.
27217
27218 2015-06-17 Uros Bizjak <ubizjak@gmail.com>
27219
27220 * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
27221 (ix86_function_arg_advance): Ditto.
27222 (ix86_pass_by_reference): Ditto. Rewrite MS_ABI part.
27223
27224 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
27225
27226 * function.h (struct rtl_data): Remove struct and accessor macros.
27227 * emit-rtl.h (struct rtl_data): Relocate to here.
27228 * Makefile.in (GTFILES): Add emit-rtl.h.
27229 * df-core.c: Include emit-rtl.h.
27230 * genattrtab.c: Likewise.
27231 * genconditions.c: Likewise.
27232 * genpreds.c: Likewise.
27233 * genrecog.c: Likewise.
27234 * regcprop.c: Likewise.
27235 * resource.c: Likewise.
27236 * sched-rgn.c: Likewise.
27237 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
27238 * config/i386/winnt.c: Likewise.
27239
27240 2015-06-17 Jakub Jelinek <jakub@redhat.com>
27241
27242 PR middle-end/66429
27243 * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
27244 instead of DECL_STRUCT_FUNCTION (child_fn). Or in has_simduid_loops
27245 and has_force_vectorize_loops flags from cfun into
27246 child_cfun.
27247 (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
27248 if simduid is non-NULL.
27249 * tree-pass.h (make_pass_simduid_cleanup): New prototype.
27250 * passes.def (pass_simduid_cleanup): Add new pass after loop
27251 passes.
27252 * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
27253 indirection from htab argument's type.
27254 (shrink_simd_arrays): New function.
27255 (vectorize_loops): Use it. Adjust adjust_simduid_builtins caller.
27256 Don't call adjust_simduid_builtins if there are no loops.
27257 (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
27258 (pass_simduid_cleanup::execute): New method.
27259 (make_pass_simduid_cleanup): New function.
27260
27261 2017-06-17 Andrew MacLeod <amacleod@redhat.com>
27262
27263 * tree-core.h (tree_target_option): Make opts field a pointer to a
27264 cl_target_option instead of an instance of the struct.
27265 * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
27266 the structure.
27267 * tree.c (make_node_stat ): Allocate a cl_target_option struct for
27268 TARGET_OPTION_NODE.
27269 (copy_node_stat): Allocate and copy struct cl_target_option.
27270
27271 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
27272
27273 * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
27274 Remove conditional exposure of prototypes.
27275 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
27276 * tree.c (anon_aggrname_format, anon_aggrname_p): New. Replace macro
27277 definitions in tree.h with functions.
27278 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
27279 anon_aggrname_p.
27280 * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
27281
27282 2015-06-17 Segher Boessenkool <segher@kernel.crashing.org>
27283
27284 * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
27285 (*cmp<mode>_signed): ... this.
27286 (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
27287 (*cmp<mode>_unsigned): ... this. Remove %b.
27288
27289 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
27290
27291 * coretypes.h: Include input.h and as-a.h.
27292 * rtl.h: Include input.h and as-a.h for generator files.
27293 * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
27294 * vec.c: Don't include diagnostic-core.h.
27295 * alias.c: Do not include input.h, line-map.h or is-a.h.
27296 * asan.c: Likewise.
27297 * attribs.c: Likewise.
27298 * auto-inc-dec.c: Likewise.
27299 * auto-profile.c: Likewise.
27300 * bb-reorder.c: Likewise.
27301 * bt-load.c: Likewise.
27302 * builtins.c: Likewise.
27303 * caller-save.c: Likewise.
27304 * calls.c: Likewise.
27305 * ccmp.c: Likewise.
27306 * cfg.c: Likewise.
27307 * cfganal.c: Likewise.
27308 * cfgbuild.c: Likewise.
27309 * cfgcleanup.c: Likewise.
27310 * cfgexpand.c: Likewise.
27311 * cfghooks.c: Likewise.
27312 * cfgloop.c: Likewise.
27313 * cfgloop.h: Likewise.
27314 * cfgloopanal.c: Likewise.
27315 * cfgloopmanip.c: Likewise.
27316 * cfgrtl.c: Likewise.
27317 * cgraph.c: Likewise.
27318 * cgraphbuild.c: Likewise.
27319 * cgraphclones.c: Likewise.
27320 * cgraphunit.c: Likewise.
27321 * cilk-common.c: Likewise.
27322 * combine-stack-adj.c: Likewise.
27323 * combine.c: Likewise.
27324 * compare-elim.c: Likewise.
27325 * convert.c: Likewise.
27326 * coverage.c: Likewise.
27327 * cppbuiltin.c: Likewise.
27328 * cprop.c: Likewise.
27329 * cse.c: Likewise.
27330 * cselib.c: Likewise.
27331 * data-streamer-in.c: Likewise.
27332 * data-streamer-out.c: Likewise.
27333 * data-streamer.c: Likewise.
27334 * dbxout.c: Likewise.
27335 * dce.c: Likewise.
27336 * ddg.c: Likewise.
27337 * debug.c: Likewise.
27338 * df-core.c: Likewise.
27339 * df-problems.c: Likewise.
27340 * df-scan.c: Likewise.
27341 * df.h: Likewise.
27342 * dfp.c: Likewise.
27343 * diagnostic-core.h: Likewise.
27344 * diagnostic.c: Likewise.
27345 * dojump.c: Likewise.
27346 * dominance.c: Likewise.
27347 * domwalk.c: Likewise.
27348 * double-int.c: Likewise.
27349 * dse.c: Likewise.
27350 * dumpfile.c: Likewise.
27351 * dumpfile.h: Likewise.
27352 * dwarf2asm.c: Likewise.
27353 * dwarf2cfi.c: Likewise.
27354 * dwarf2out.c: Likewise.
27355 * emit-rtl.c: Likewise.
27356 * et-forest.c: Likewise.
27357 * except.c: Likewise.
27358 * explow.c: Likewise.
27359 * expmed.c: Likewise.
27360 * expr.c: Likewise.
27361 * final.c: Likewise.
27362 * fixed-value.c: Likewise.
27363 * fold-const.c: Likewise.
27364 * function.c: Likewise.
27365 * fwprop.c: Likewise.
27366 * gcc-plugin.h: Likewise.
27367 * gcse.c: Likewise.
27368 * generic-match-head.c: Likewise.
27369 * ggc-page.c: Likewise.
27370 * gimple-builder.c: Likewise.
27371 * gimple-expr.c: Likewise.
27372 * gimple-fold.c: Likewise.
27373 * gimple-iterator.c: Likewise.
27374 * gimple-low.c: Likewise.
27375 * gimple-match-head.c: Likewise.
27376 * gimple-pretty-print.c: Likewise.
27377 * gimple-ssa-isolate-paths.c: Likewise.
27378 * gimple-ssa-strength-reduction.c: Likewise.
27379 * gimple-streamer-in.c: Likewise.
27380 * gimple-streamer-out.c: Likewise.
27381 * gimple-streamer.h: Likewise.
27382 * gimple-walk.c: Likewise.
27383 * gimple.c: Likewise.
27384 * gimplify-me.c: Likewise.
27385 * gimplify.c: Likewise.
27386 * godump.c: Likewise.
27387 * graph.c: Likewise.
27388 * graphite-blocking.c: Likewise.
27389 * graphite-dependences.c: Likewise.
27390 * graphite-interchange.c: Likewise.
27391 * graphite-isl-ast-to-gimple.c: Likewise.
27392 * graphite-optimize-isl.c: Likewise.
27393 * graphite-poly.c: Likewise.
27394 * graphite-scop-detection.c: Likewise.
27395 * graphite-sese-to-poly.c: Likewise.
27396 * graphite.c: Likewise.
27397 * haifa-sched.c: Likewise.
27398 * hw-doloop.c: Likewise.
27399 * ifcvt.c: Likewise.
27400 * init-regs.c: Likewise.
27401 * input.c: Likewise.
27402 * internal-fn.c: Likewise.
27403 * ipa-chkp.c: Likewise.
27404 * ipa-comdats.c: Likewise.
27405 * ipa-cp.c: Likewise.
27406 * ipa-devirt.c: Likewise.
27407 * ipa-icf-gimple.c: Likewise.
27408 * ipa-icf.c: Likewise.
27409 * ipa-inline-analysis.c: Likewise.
27410 * ipa-inline-transform.c: Likewise.
27411 * ipa-inline.c: Likewise.
27412 * ipa-polymorphic-call.c: Likewise.
27413 * ipa-profile.c: Likewise.
27414 * ipa-prop.c: Likewise.
27415 * ipa-pure-const.c: Likewise.
27416 * ipa-ref.c: Likewise.
27417 * ipa-reference.c: Likewise.
27418 * ipa-split.c: Likewise.
27419 * ipa-utils.c: Likewise.
27420 * ipa-visibility.c: Likewise.
27421 * ipa.c: Likewise.
27422 * ira-build.c: Likewise.
27423 * ira-color.c: Likewise.
27424 * ira-conflicts.c: Likewise.
27425 * ira-costs.c: Likewise.
27426 * ira-emit.c: Likewise.
27427 * ira-lives.c: Likewise.
27428 * ira.c: Likewise.
27429 * jump.c: Likewise.
27430 * langhooks.c: Likewise.
27431 * lcm.c: Likewise.
27432 * loop-doloop.c: Likewise.
27433 * loop-init.c: Likewise.
27434 * loop-invariant.c: Likewise.
27435 * loop-iv.c: Likewise.
27436 * loop-unroll.c: Likewise.
27437 * lower-subreg.c: Likewise.
27438 * lra-assigns.c: Likewise.
27439 * lra-coalesce.c: Likewise.
27440 * lra-constraints.c: Likewise.
27441 * lra-eliminations.c: Likewise.
27442 * lra-lives.c: Likewise.
27443 * lra-remat.c: Likewise.
27444 * lra-spills.c: Likewise.
27445 * lra.c: Likewise.
27446 * lto-cgraph.c: Likewise.
27447 * lto-compress.c: Likewise.
27448 * lto-opts.c: Likewise.
27449 * lto-section-in.c: Likewise.
27450 * lto-section-out.c: Likewise.
27451 * lto-streamer-in.c: Likewise.
27452 * lto-streamer-out.c: Likewise.
27453 * lto-streamer.c: Likewise.
27454 * mcf.c: Likewise.
27455 * mode-switching.c: Likewise.
27456 * modulo-sched.c: Likewise.
27457 * omega.c: Likewise.
27458 * omp-low.c: Likewise.
27459 * optabs.c: Likewise.
27460 * opts-global.c: Likewise.
27461 * opts.h: Likewise.
27462 * passes.c: Likewise.
27463 * plugin.c: Likewise.
27464 * postreload-gcse.c: Likewise.
27465 * postreload.c: Likewise.
27466 * predict.c: Likewise.
27467 * pretty-print.h: Likewise.
27468 * print-rtl.c: Likewise.
27469 * print-tree.c: Likewise.
27470 * profile.c: Likewise.
27471 * real.c: Likewise.
27472 * realmpfr.c: Likewise.
27473 * recog.c: Likewise.
27474 * ree.c: Likewise.
27475 * reg-stack.c: Likewise.
27476 * regcprop.c: Likewise.
27477 * reginfo.c: Likewise.
27478 * regrename.c: Likewise.
27479 * regstat.c: Likewise.
27480 * reload.c: Likewise.
27481 * reload1.c: Likewise.
27482 * reorg.c: Likewise.
27483 * resource.c: Likewise.
27484 * rtl-chkp.c: Likewise.
27485 * rtl-error.c: Likewise.
27486 * rtlanal.c: Likewise.
27487 * rtlhooks.c: Likewise.
27488 * sanopt.c: Likewise.
27489 * sched-deps.c: Likewise.
27490 * sched-ebb.c: Likewise.
27491 * sched-rgn.c: Likewise.
27492 * sched-vis.c: Likewise.
27493 * sdbout.c: Likewise.
27494 * sel-sched-dump.c: Likewise.
27495 * sel-sched-ir.c: Likewise.
27496 * sel-sched.c: Likewise.
27497 * sese.c: Likewise.
27498 * shrink-wrap.c: Likewise.
27499 * simplify-rtx.c: Likewise.
27500 * stack-ptr-mod.c: Likewise.
27501 * statistics.c: Likewise.
27502 * stmt.c: Likewise.
27503 * stor-layout.c: Likewise.
27504 * store-motion.c: Likewise.
27505 * streamer-hooks.c: Likewise.
27506 * stringpool.c: Likewise.
27507 * symtab.c: Likewise.
27508 * target-globals.c: Likewise.
27509 * targhooks.c: Likewise.
27510 * toplev.c: Likewise.
27511 * tracer.c: Likewise.
27512 * trans-mem.c: Likewise.
27513 * tree-affine.c: Likewise.
27514 * tree-browser.c: Likewise.
27515 * tree-call-cdce.c: Likewise.
27516 * tree-cfg.c: Likewise.
27517 * tree-cfgcleanup.c: Likewise.
27518 * tree-chkp-opt.c: Likewise.
27519 * tree-chkp.c: Likewise.
27520 * tree-chrec.c: Likewise.
27521 * tree-complex.c: Likewise.
27522 * tree-data-ref.c: Likewise.
27523 * tree-dfa.c: Likewise.
27524 * tree-diagnostic.c: Likewise.
27525 * tree-dump.c: Likewise.
27526 * tree-eh.c: Likewise.
27527 * tree-emutls.c: Likewise.
27528 * tree-if-conv.c: Likewise.
27529 * tree-inline.c: Likewise.
27530 * tree-into-ssa.c: Likewise.
27531 * tree-iterator.c: Likewise.
27532 * tree-loop-distribution.c: Likewise.
27533 * tree-nested.c: Likewise.
27534 * tree-nrv.c: Likewise.
27535 * tree-object-size.c: Likewise.
27536 * tree-outof-ssa.c: Likewise.
27537 * tree-parloops.c: Likewise.
27538 * tree-phinodes.c: Likewise.
27539 * tree-predcom.c: Likewise.
27540 * tree-pretty-print.c: Likewise.
27541 * tree-profile.c: Likewise.
27542 * tree-scalar-evolution.c: Likewise.
27543 * tree-sra.c: Likewise.
27544 * tree-ssa-address.c: Likewise.
27545 * tree-ssa-alias.c: Likewise.
27546 * tree-ssa-ccp.c: Likewise.
27547 * tree-ssa-coalesce.c: Likewise.
27548 * tree-ssa-copy.c: Likewise.
27549 * tree-ssa-copyrename.c: Likewise.
27550 * tree-ssa-dce.c: Likewise.
27551 * tree-ssa-dom.c: Likewise.
27552 * tree-ssa-dse.c: Likewise.
27553 * tree-ssa-forwprop.c: Likewise.
27554 * tree-ssa-ifcombine.c: Likewise.
27555 * tree-ssa-live.c: Likewise.
27556 * tree-ssa-loop-ch.c: Likewise.
27557 * tree-ssa-loop-im.c: Likewise.
27558 * tree-ssa-loop-ivcanon.c: Likewise.
27559 * tree-ssa-loop-ivopts.c: Likewise.
27560 * tree-ssa-loop-manip.c: Likewise.
27561 * tree-ssa-loop-niter.c: Likewise.
27562 * tree-ssa-loop-prefetch.c: Likewise.
27563 * tree-ssa-loop-unswitch.c: Likewise.
27564 * tree-ssa-loop.c: Likewise.
27565 * tree-ssa-math-opts.c: Likewise.
27566 * tree-ssa-operands.c: Likewise.
27567 * tree-ssa-phiopt.c: Likewise.
27568 * tree-ssa-phiprop.c: Likewise.
27569 * tree-ssa-pre.c: Likewise.
27570 * tree-ssa-propagate.c: Likewise.
27571 * tree-ssa-reassoc.c: Likewise.
27572 * tree-ssa-sccvn.c: Likewise.
27573 * tree-ssa-scopedtables.c: Likewise.
27574 * tree-ssa-sink.c: Likewise.
27575 * tree-ssa-strlen.c: Likewise.
27576 * tree-ssa-structalias.c: Likewise.
27577 * tree-ssa-tail-merge.c: Likewise.
27578 * tree-ssa-ter.c: Likewise.
27579 * tree-ssa-threadedge.c: Likewise.
27580 * tree-ssa-threadupdate.c: Likewise.
27581 * tree-ssa-uncprop.c: Likewise.
27582 * tree-ssa-uninit.c: Likewise.
27583 * tree-ssa.c: Likewise.
27584 * tree-ssanames.c: Likewise.
27585 * tree-stdarg.c: Likewise.
27586 * tree-streamer-in.c: Likewise.
27587 * tree-streamer-out.c: Likewise.
27588 * tree-streamer.c: Likewise.
27589 * tree-switch-conversion.c: Likewise.
27590 * tree-tailcall.c: Likewise.
27591 * tree-vect-data-refs.c: Likewise.
27592 * tree-vect-generic.c: Likewise.
27593 * tree-vect-loop-manip.c: Likewise.
27594 * tree-vect-loop.c: Likewise.
27595 * tree-vect-patterns.c: Likewise.
27596 * tree-vect-slp.c: Likewise.
27597 * tree-vect-stmts.c: Likewise.
27598 * tree-vectorizer.c: Likewise.
27599 * tree-vrp.c: Likewise.
27600 * tree.c: Likewise.
27601 * tsan.c: Likewise.
27602 * ubsan.c: Likewise.
27603 * valtrack.c: Likewise.
27604 * value-prof.c: Likewise.
27605 * var-tracking.c: Likewise.
27606 * varasm.c: Likewise.
27607 * varpool.c: Likewise.
27608 * vmsdbgout.c: Likewise.
27609 * vtable-verify.c: Likewise.
27610 * web.c: Likewise.
27611 * wide-int.cc: Likewise.
27612 * xcoffout.c: Likewise.
27613 * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
27614 * common/common-targhooks.c: Likewise.
27615 * config/aarch64/aarch64-builtins.c: Likewise.
27616 * config/aarch64/aarch64.c: Likewise.
27617 * config/alpha/alpha.c: Likewise.
27618 * config/arc/arc.c: Likewise.
27619 * config/arm/aarch-common.c: Likewise.
27620 * config/arm/arm-builtins.c: Likewise.
27621 * config/arm/arm-c.c: Likewise.
27622 * config/arm/arm.c: Likewise.
27623 * config/avr/avr-c.c: Likewise.
27624 * config/avr/avr-log.c: Likewise.
27625 * config/avr/avr.c: Likewise.
27626 * config/bfin/bfin.c: Likewise.
27627 * config/c6x/c6x.c: Likewise.
27628 * config/cr16/cr16.c: Likewise.
27629 * config/cris/cris.c: Likewise.
27630 * config/darwin-c.c: Likewise.
27631 * config/darwin.c: Likewise.
27632 * config/default-c.c: Likewise.
27633 * config/epiphany/epiphany.c: Likewise.
27634 * config/epiphany/mode-switch-use.c: Likewise.
27635 * config/epiphany/resolve-sw-modes.c: Likewise.
27636 * config/fr30/fr30.c: Likewise.
27637 * config/frv/frv.c: Likewise.
27638 * config/ft32/ft32.c: Likewise.
27639 * config/glibc-c.c: Likewise.
27640 * config/h8300/h8300.c: Likewise.
27641 * config/i386/i386-c.c: Likewise.
27642 * config/i386/i386.c: Likewise.
27643 * config/i386/msformat-c.c: Likewise.
27644 * config/i386/winnt-cxx.c: Likewise.
27645 * config/i386/winnt-stubs.c: Likewise.
27646 * config/i386/winnt.c: Likewise.
27647 * config/ia64/ia64-c.c: Likewise.
27648 * config/ia64/ia64.c: Likewise.
27649 * config/iq2000/iq2000.c: Likewise.
27650 * config/lm32/lm32.c: Likewise.
27651 * config/m32c/m32c-pragma.c: Likewise.
27652 * config/m32c/m32c.c: Likewise.
27653 * config/m32r/m32r.c: Likewise.
27654 * config/m68k/m68k.c: Likewise.
27655 * config/mcore/mcore.c: Likewise.
27656 * config/mep/mep-pragma.c: Likewise.
27657 * config/mep/mep.c: Likewise.
27658 * config/microblaze/microblaze-c.c: Likewise.
27659 * config/microblaze/microblaze.c: Likewise.
27660 * config/mips/mips.c: Likewise.
27661 * config/mmix/mmix.c: Likewise.
27662 * config/mn10300/mn10300.c: Likewise.
27663 * config/moxie/moxie.c: Likewise.
27664 * config/msp430/msp430-c.c: Likewise.
27665 * config/msp430/msp430.c: Likewise.
27666 * config/nds32/nds32-cost.c: Likewise.
27667 * config/nds32/nds32-fp-as-gp.c: Likewise.
27668 * config/nds32/nds32-intrinsic.c: Likewise.
27669 * config/nds32/nds32-isr.c: Likewise.
27670 * config/nds32/nds32-md-auxiliary.c: Likewise.
27671 * config/nds32/nds32-memory-manipulation.c: Likewise.
27672 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
27673 * config/nds32/nds32-predicates.c: Likewise.
27674 * config/nds32/nds32.c: Likewise.
27675 * config/nios2/nios2.c: Likewise.
27676 * config/nvptx/nvptx.c: Likewise.
27677 * config/pa/pa.c: Likewise.
27678 * config/pdp11/pdp11.c: Likewise.
27679 * config/rl78/rl78-c.c: Likewise.
27680 * config/rl78/rl78.c: Likewise.
27681 * config/rs6000/rs6000-c.c: Likewise.
27682 * config/rs6000/rs6000.c: Likewise.
27683 * config/rx/rx.c: Likewise.
27684 * config/s390/s390-c.c: Likewise.
27685 * config/s390/s390.c: Likewise.
27686 * config/sh/sh-c.c: Likewise.
27687 * config/sh/sh-mem.cc: Likewise.
27688 * config/sh/sh.c: Likewise.
27689 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
27690 * config/sh/sh_treg_combine.cc: Likewise.
27691 * config/sol2-c.c: Likewise.
27692 * config/sol2-cxx.c: Likewise.
27693 * config/sol2-stubs.c: Likewise.
27694 * config/sol2.c: Likewise.
27695 * config/sparc/sparc-c.c: Likewise.
27696 * config/sparc/sparc.c: Likewise.
27697 * config/spu/spu-c.c: Likewise.
27698 * config/spu/spu.c: Likewise.
27699 * config/stormy16/stormy16.c: Likewise.
27700 * config/tilegx/mul-tables.c: Likewise.
27701 * config/tilegx/tilegx-c.c: Likewise.
27702 * config/tilegx/tilegx.c: Likewise.
27703 * config/tilepro/mul-tables.c: Likewise.
27704 * config/tilepro/tilepro-c.c: Likewise.
27705 * config/tilepro/tilepro.c: Likewise.
27706 * config/v850/v850-c.c: Likewise.
27707 * config/v850/v850.c: Likewise.
27708 * config/vax/vax.c: Likewise.
27709 * config/visium/visium.c: Likewise.
27710 * config/vms/vms-c.c: Likewise.
27711 * config/vms/vms.c: Likewise.
27712 * config/vxworks.c: Likewise.
27713 * config/winnt-c.c: Likewise.
27714 * config/xtensa/xtensa.c: Likewise.
27715
27716 2015-06-17 Robert Suchanek <robert.suchanek@imgtec.com>
27717
27718 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
27719 function.
27720 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
27721
27722 2015-06-17 Richard Biener <rguenther@suse.de>
27723
27724 PR tree-optimization/66251
27725 * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
27726 stmts for SLP strided stores.
27727
27728 Revert
27729 2015-05-22 Richard Biener <rguenther@suse.de>
27730
27731 PR tree-optimization/66251
27732 * tree-vect-stmts.c (vectorizable_conversion): Properly
27733 set STMT_VINFO_VEC_STMT even for the SLP case.
27734
27735 2015-05-26 Michael Matz <matz@suse.de>
27736
27737 PR middle-end/66251
27738 * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
27739 STMT_VINFO_VEC_STMT, also with SLP.
27740
27741 2015-06-16 Uros Bizjak <ubizjak@gmail.com>
27742
27743 PR target/56766
27744 * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
27745 (*avx_addsubv4df3_1s): Ditto.
27746 (*sse3_addsubv2df3_1): Ditto.
27747 (*sse3_addsubv2df3_1s): Ditto.
27748 (*avx_addsubv8sf3_1): Ditto.
27749 (*avx_addsubv8sf3_1s): Ditto.
27750 (*sse3_addsubv4sf3_1): Ditto.
27751 (*sse3_addsubv4sf3_1s): Ditto.
27752
27753 2015-06-16 Steve Ellcey <sellcey@imgtec.com>
27754
27755 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
27756 (SYSROOT_SUFFIX_SPEC): Update.
27757 (SYSROOT_HEADERS_SUFFIX_SPEC): New.
27758 (STARTFILE_PREFIX_SPEC): Update.
27759 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
27760 (MULTILIB_REQUIRED): New.
27761 (MULTILIB_OSDIRNAMES): New.
27762 * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
27763 (MULTILIB_REQUIRED): New.
27764 (MULTILIB_OSDIRNAMES): New.
27765
27766 2015-06-16 Matthew Wahab <matthew.wahab@arm.com>
27767
27768 * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
27769 * config/aarch64/aarch64-options-extensions.def: Update "fP",
27770 "simd" and "crypto". Add "lse", "pan", "lor" and "rdma".
27771 * config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
27772 (AARCH64_FL_PAN): New.
27773 (AARCH64_FL_LOR): New.
27774 (AARCH64_FL_RDMA): New.
27775 (AARCH64_FL_FOR_ARCH8_1): New.
27776 * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
27777 -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
27778
27779 2015-06-16 Martin Liska <mliska@suse.cz>
27780
27781 * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
27782 * hash-table.c (void dump_hash_table_loc_statistics): Add missing
27783 guard.
27784
27785 2015-06-16 Richard Biener <rguenther@suse.de>
27786
27787 * tree-vect-stmts.c (vectorizable_store): Adjust.
27788 (vectorizable_load): Likewise.
27789 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
27790 Simplify.
27791 (vect_create_data_ref_ptr): Likewise.
27792 (bump_vector_ptr): Adjust.
27793
27794 2015-06-16 Richard Biener <rguenther@suse.de>
27795
27796 * tree-vect-stmts.c (vectorizable_load): Properly start loads
27797 with the first element if this is grouped loads.
27798
27799 2015-06-16 James Greenhalgh <james.greenhalgh@arm.com>
27800
27801 * config/arm/arm-protos.h (struct tune_params): Rename
27802 log_op_non_sc to log_op_non_short_circuit, and rename enum
27803 values to expand SC to SHORT_CIRCUIT.
27804 * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
27805 to LOG_OP_NON_SHORT_CIRCUIT.
27806 (arm_fastmul_tune):Likewise
27807 (arm_strongarm_tune): Likewise.
27808 (arm_xscale_tune): Likewise.
27809 (arm_9e_tune): Likewise.
27810 (arm_marvell_pj4_tune): Likewise.
27811 (arm_v6t2_tune): Likewise.
27812 (arm_cortex_tune): Likewise.
27813 (arm_cortex_a8_tune): Likewise.
27814 (arm_cortex_a7_tune): Likewise.
27815 (arm_cortex_a15_tune): Likewise.
27816 (arm_cortex_a53_tune): Likewise.
27817 (arm_cortex_a57_tune): Likewise.
27818 (arm_xgene1_tune): Likewise.
27819 (arm_cortex_a5_tune): Likewise.
27820 (arm_cortex_a9_tune): Likewise.
27821 (arm_cortex_a12_tune): Likewise.
27822 (arm_v7m_tune): Likewise.
27823 (arm_cortex_m7_tune): Likewise.
27824 (arm_v6m_tune): Likewise.
27825 (arm_fa726te_tune): Likewise.
27826
27827 2015-06-15 David Edelsohn <dje.gcc@gmail.com>
27828
27829 * altivec.md: Delete UNSPEC_VMLADDUHM.
27830 (mulv4si3_p8): New pattern.
27831 (mulv4si3): Use it for POWER8.
27832 (mulv8hi3): Use vmladduhm with zero addend.
27833 (altivec_vmladduhm): Descriptive RTL.
27834
27835 2015-06-15 Jim Wilson <jim.wilson@linaro.org>
27836
27837 * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
27838 to use neon_move instead of mov_imm.
27839 (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
27840 (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
27841
27842 * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
27843 aarch64_float_const_zero_rtx_p check before TFmode check.
27844 * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
27845 an fp zero.
27846 (movtf_aarch64): Separate ?rY alternative into two. Adjust assembly
27847 code and attributes to match. Change condition from register_operand
27848 to aarch64_reg_or_fp_zero for op1. Change type for ldp from
27849 neon_load1_2reg to load2. Change type for stp from neon_store1_2reg
27850 to store2.
27851
27852 2015-06-15 Aldy Hernandez <aldyh@redhat.com>
27853
27854 PR debug/66535
27855 * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
27856 there is no parent.
27857
27858 2015-06-14 Shiva Chen <shiva0217@gmail.com>
27859
27860 * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
27861 HOST_WIDE_INT parameter.
27862
27863 2015-06-14 Jan Hubicka <hubicka@ucw.cz>
27864
27865 PR ipa/66181
27866 * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
27867 * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
27868 TYPE_NO_FORCE_BLK.
27869 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
27870
27871 2015-06-14 Richard Sandiford <richard.sandiford@arm.com>
27872
27873 * rtl.h (classify_insn): Declare.
27874 * emit-rtl.c (classify_insn): Move to...
27875 * rtl.c: ...here and add generator support.
27876 * gensupport.h (get_emit_function, needs_barrier_p): Declare.
27877 * gensupport.c (get_emit_function, needs_barrier_p): New functions.
27878 * genemit.c (gen_emit_seq): New function.
27879 (gen_expand, gen_split): Use it.
27880
27881 2015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
27882
27883 * tree.c (make_vector_stat): Fix comment to state that the
27884 function returns a VECTOR_CST.
27885
27886 2015-06-13 Richard Sandiford <richard.sandiford@arm.com>
27887
27888 * gensupport.h (add_implicit_parallel): Declare.
27889 * genrecog.c (add_implicit_parallel): Move to...
27890 * gensupport.c (add_implicit_parallel): ...here.
27891 (process_one_cond_exec): Use it.
27892 * genemit.c (gen_insn): Likewise.
27893
27894 2015-06-13 Iain Sandoe <iain@codesourcery.com>
27895
27896 PR bootstrap/66448
27897 * passes.c (rest_of_decl_compilation): Do not register globals for
27898 early debug if they are declared in built-ins.
27899
27900 2015-06-12 Aldy Hernandez <aldyh@redhat.com>
27901
27902 * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
27903
27904 2015-06-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27905
27906 * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
27907 manually swapping.
27908 (noce_try_cmove_arith): Likewise.
27909 (noce_get_alt_condition): Likewise.
27910
27911 2015-06-12 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
27912
27913 * common/config/i386/i386-common.c
27914 (OPTION_MASK_ISA_MWAITX_SET): New.
27915 (ix86_handle_option): Handle mwaitx.
27916 * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
27917 (x86_64-*-*): Likewise.
27918 * config/i386/mwaitxintrin.h: New header.
27919 * config/i386/cpuid.h (bit_MWAITX): Define.
27920 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
27921 MWAITX support.
27922 * config/i386/i386.opt (mwaitx): New.
27923 * config/i386/i386-builtin-types.def
27924 (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
27925 * config/i386/i386-c.c: Define __MWAITX__ if needed.
27926 * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
27927 (PTA_MWAITX): New.
27928 (ix86_option_override_internal): Handle new option.
27929 (processor_alias_table): Added PTA_MWAITX.
27930 (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
27931 (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
27932 (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
27933 IX86_BUILTIN_MONITORX built-ins.
27934 * config/i386/i386.h (TARGET_MWAITX): New.
27935 * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
27936 UNSPEC_MONITORX.
27937 (mwaitx): New pattern.
27938 (monitorx_<mode>): New pattern.
27939 * config/i386/x86intrin.h: Include mwaitxintrin.h.
27940 * doc/extend.texi: Document monitorx and mwaitx builtins.
27941 * doc/invoke.texi: Document -mmwaitx option.
27942
27943 2015-06-12 Uros Bizjak <ubizjak@gmail.com>
27944
27945 * emit-rtl.c (need_atomic_barrier_p): Mask model with
27946 MEMMODEL_BASE_MASK. Remove MEMMODEL_SYNC_* cases.
27947
27948 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
27949
27950 * dbxout.c (xcoff_debug_hooks): Provide a function for
27951 register_main_translation_unit hook.
27952
27953 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
27954
27955 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
27956 variants cases from switch.
27957 (rs6000_post_atomic_barrier): Same.
27958 (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
27959 (rs6000_expand_atomic_exchange): Same.
27960 (rs6000_expand_atomic_op): Same.
27961 * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
27962 SYNC variants cases from switch.
27963 (atomic_load): Same.
27964 (atomic_store): Same.
27965
27966 2015-06-11 John David Anglin <danglin@gcc.gnu.org>
27967
27968 * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
27969 CONST_INT for goto.
27970
27971 2015-06-11 Aldy Hernandez <aldyh@redhat.com>
27972
27973 PR bootstrap/66448
27974 * dwarf2out.c (check_die): Check for common duplicate attributes.
27975 (add_location_or_const_value_attribute): Do not add duplicate
27976 attributes.
27977 (gen_formal_parameter_die): Do not add DW_AT_artificial the second
27978 time around.
27979 (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
27980 (gen_type_die_with_usage): Call check_die.
27981 (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
27982
27983 2015-06-11 Jason Merrill <jason@redhat.com>
27984
27985 * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
27986 dies.
27987
27988 2015-06-11 Marek Polacek <polacek@redhat.com>
27989
27990 * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
27991
27992 2015-06-11 Eric Botcazou <ebotcazou@adacore.com>
27993
27994 PR bootstrap/66252
27995 * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
27996 * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
27997 (*addx_extend_sp32): Fix pasto.
27998 (*subx_extend): Rename into...
27999 (*subx_extend_sp32): ...this.
28000 (*adddi3_extend_sp32): Add earlyclobber.
28001 (*subdi3_insn_sp32): Likewise.
28002 (*subdi3_extend_sp32): Likewise.
28003 (*and_not_di_sp32): Likewise.
28004 (*or_not_di_sp32): Likewise.
28005 (*xor_not_di_sp32): Likewise.
28006 (*negdi2_sp32): Likewise.
28007 (*one_cmpldi2_sp32): Likewise.
28008
28009 2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
28010
28011 * debug.h (struct gcc_debug_hooks): Add a
28012 register_main_translation_unit hook.
28013 * debug.c (do_nothing_debug_hooks): Provide a function for this
28014 new hook.
28015 * dbxout.c (dbx_debug_hooks): Likewise.
28016 * sdbout.c (sdb_debug_hooks): Likewise.
28017 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
28018 * dwarf2out.c (main_translation_unit): New global variable.
28019 (dwarf2out_register_main_translation_unit): New function
28020 implementing the new hook.
28021 (dwarf2_debug_hooks): Assign
28022 dwarf2out_register_main_translation_unit to this new hook.
28023 (dwarf2out_init): Associate any main translation unit to
28024 comp_unit_die ().
28025
28026 2015-06-11 Marek Polacek <polacek@redhat.com>
28027
28028 * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
28029
28030 2015-06-11 Marek Polacek <polacek@redhat.com>
28031
28032 * match.pd: Use single_use throughout.
28033
28034 2015-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28035
28036 * config/arm/arm.c (arm_option_params_internal): When optimising
28037 for speed set max_insns_skipped when arm_restrict_it.
28038
28039 2015-06-11 Christian Bruel <christian.bruel@st.com>
28040
28041 PR target/52144
28042 * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
28043 macros in ...
28044 (arm_cpu_builtins): New function.
28045 (arm_pragma_target_parse): Call arm_cpu_builtins.
28046 * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
28047 (arm_register_target_pragmas): Likewise.
28048 * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
28049 Call arm_register_target_pragmas.
28050 * config/arm/arm-c.c (arm_register_target_pragmas): New function.
28051 (arm_pragma_target_parse): Likewise.
28052
28053 2015-06-10 Kaz Kojima <kkojima@gcc.gnu.org>
28054
28055 * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
28056 of the second operand.
28057
28058 2015-06-10 Uros Bizjak <ubizjak@gmail.com>
28059
28060 PR target/66473
28061 * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
28062 to prepare mask operand for AVX512 modes.
28063
28064 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
28065
28066 PR target/66474
28067 * doc/md.texi (Machine Constraints): Document that on the PowerPC
28068 if you use a constraint that targets a VSX register, you must use
28069 %x<n> in the template.
28070
28071 2015-06-10 Max Filippov <jcmvbkbc@gmail.com>
28072
28073 * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
28074 * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
28075 (define_insn "trap"): New definition.
28076
28077 2015-06-10 Richard Biener <rguenther@suse.de>
28078
28079 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
28080 out from ...
28081 (vect_supported_load_permutation_p): ... here. Handle
28082 supportable permutations in reductions.
28083 * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
28084 for vectorizing strided group loads.
28085
28086 2015-06-10 Jakub Jelinek <jakub@redhat.com>
28087
28088 PR target/66470
28089 * config/i386/i386.c (ix86_split_long_move): For collisions
28090 involving direct tls segment refs, move the UNSPEC_TP possibly
28091 wrapped in ZERO_EXTEND out of the address for lea, to each of
28092 the memory loads.
28093
28094 2015-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28095
28096 * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
28097 dmb sy. Adjust tabs.
28098
28099 2015-06-10 Tom de Vries <tom@codesourcery.com>
28100
28101 * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
28102
28103 2015-06-10 Martin Liska <mliska@suse.cz>
28104
28105 PR bootstrap/66471
28106 * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
28107 all enum values in mem_alloc_origin.
28108 * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
28109 name.
28110 * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
28111 * bitmap.c (bitmap_register): Likewise.
28112 (dump_bitmap_statistics): Likewise.
28113 * ggc-common.c (dump_ggc_loc_statistics): Likewise.
28114 (ggc_record_overhead): Likewise.
28115 * hash-map.h: Likewise.
28116 * hash-set.h: Likewise.
28117 * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
28118 * hash-table.h: Likewise.
28119 * vec.c (vec_prefix::register_overhead): Likewise.
28120 (vec_prefix::release_overhead): Likewise.
28121 (dump_vec_loc_statistics): Likewise.
28122
28123 2015-06-09 Christian Bruel <christian.bruel@st.com>
28124
28125 PR target/52144
28126 * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
28127 * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
28128 (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
28129 * config/arm/arm.h (SWITCHABLE_TARGET): Define.
28130 * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
28131 (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
28132 (arm_valid_target_attribute_p): Likewise.
28133 (arm_set_current_function, arm_can_inline_p): Likewise.
28134 (arm_valid_target_attribute_rec): Likewise.
28135 (arm_previous_fndecl): New variable.
28136 (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
28137 (TARGET_CAN_INLINE_P): Define.
28138 (arm_asm_trampoline_template): Emit mode.
28139 (arm_file_start): Don't set unified syntax.
28140 (arm_declare_function_name): Set unified syntax and mode.
28141 (arm_option_override): Init target_option_default_node.
28142 and target_option_current_node.
28143 * config/arm/arm.md (*call_value_symbol): Set mode when possible.
28144 (*call_symbol): Likewise.
28145 * doc/extend.texi: Document ARM/Thumb target attribute.
28146 * doc/invoke.texi: Likewise.
28147
28148 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
28149
28150 Revert:
28151 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
28152 PR rtl-optimization/64164
28153 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
28154 * tree-ssa-copyrename.c: Removed.
28155 * opts.c (default_options_table): Drop -ftree-copyrename. Add
28156 -ftree-coalesce-vars.
28157 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
28158 * common.opt (ftree-copyrename): Ignore.
28159 (ftree-coalesce-inlined-vars): Likewise.
28160 * doc/invoke.texi: Remove the ignored options above.
28161 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
28162 * tree-ssa-coalesce.h: ... here.
28163 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
28164 headers required by it.
28165 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
28166 across variables when flag_tree_coalesce_vars. Check register
28167 use and promoted modes to allow coalescing. Moved to
28168 tree-ssa-coalesce.c.
28169 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
28170 with its member functions to tree-ssa-coalesce.c.
28171 (var_map_base_init): Likewise. Renamed to
28172 compute_samebase_partition_bases.
28173 (partition_view_normal): Drop want_bases parameter.
28174 (partition_view_bitmap): Likewise.
28175 * tree-ssa-live.h: Adjust declarations.
28176 * tree-ssa-coalesce.c: Include explow.h.
28177 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
28178 default defs at the entry point.
28179 (dump_part_var_map): New.
28180 (compute_optimized_partition_bases): New, called by...
28181 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
28182 of compute_samebase_partition_bases. Adjust.
28183 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
28184 * cfgexpand.c (leader_merge): New.
28185 (get_rtl_for_parm_ssa_default_def): New.
28186 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
28187 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
28188 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
28189 redundant MEM attr setting.
28190 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
28191 from...
28192 (expand_one_stack_var): ... this. New wrapper to check and
28193 skip already expanded SSA partitions.
28194 (record_alignment_for_reg_var): New, factored out of...
28195 (expand_one_var): ... this.
28196 (expand_one_ssa_partition): New.
28197 (adjust_one_expanded_partition_var): New.
28198 (expand_one_register_var): Check and skip already expanded SSA
28199 partitions.
28200 (expand_used_vars): Don't create DECLs for anonymous SSA
28201 names. Expand all SSA partitions, then adjust all SSA names.
28202 (pass::execute): Replace the loops that set
28203 SA.partition_to_pseudo from partition leaders and cleared
28204 DECL_RTL for multi-location variables, and that which used to
28205 rename vars and set attrs, with one that clears DECL_RTL and
28206 checks that PARMs and RESULTs default_defs match DECL_RTL.
28207 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
28208 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
28209 * explow.c (promote_ssa_mode): New.
28210 * explow.h (promote_ssa_mode): Declare.
28211 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
28212 * function.c: Include cfgexpand.h.
28213 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
28214 (use_register_for_parm_decl): Wrapper for the above to
28215 special-case the result_ptr.
28216 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
28217 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
28218 multiple locations.
28219 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
28220 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
28221 (assign_parm_setup_block): Prefer SSA-assigned location.
28222 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
28223 if stack_parm is NULL.
28224 (assign_parm_setup_stack): Prefer SSA-assigned location.
28225 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
28226 rtl before testing for pointer bounds. Special-case result_ptr.
28227 (expand_function_start): Maybe reset DECL_RTL of result.
28228 Prefer SSA-assigned location for result and static chain.
28229 Factor out DECL_RESULT and SET_DECL_RTL.
28230 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
28231 anonymous SSA names. Use promote_ssa_mode.
28232 (get_temp_reg): Likewise.
28233 (remove_ssa_form): Adjust.
28234 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
28235 and get its reg_usage for reg invalidation.
28236 (compute_bb_dataflow): Pass it insn.
28237 (emit_notes_in_bb): Likewise.
28238 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
28239 fail assert on conversion between unsigned types.
28240
28241 2015-06-09 Tom de Vries <tom@codesourcery.com>
28242
28243 PR tree-optimization/65460
28244 * omp-low.c (expand_omp_target): Set parallelized_function on
28245 cgraph_node for child_fn.
28246
28247 2015-06-09 Tom de Vries <tom@codesourcery.com>
28248
28249 * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
28250 parallelized_function before add_new_function.
28251
28252 2015-06-09 Andrew MacLeod <amacleod@redhat.com>
28253
28254 * gcc-plugin.h: Move decls to plugin.h and include it.
28255 * plugin.h: Relocate decls from gcc-plugin.h
28256 * ggc-page.c: Include required header files.
28257 * passes.c: Likewise.
28258 * cgraphunit.c: Likewise.
28259
28260 2015-06-09 Tom de Vries <tom@codesourcery.com>
28261
28262 * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
28263
28264 2015-06-09 Jason Merrill <jason@redhat.com>
28265
28266 PR bootstrap/66448
28267 * toplev.c (check_global_declaration): Don't warn about a clone.
28268
28269 2015-06-09 Marek Polacek <polacek@redhat.com>
28270
28271 PR tree-optimization/66299
28272 * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
28273 ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
28274 patterns.
28275
28276 2015-06-09 Richard Biener <rguenther@suse.de>
28277
28278 * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
28279 (vect_analyze_slp_instance): Instead do not falsely drop
28280 load permutations.
28281
28282 2015-06-09 Richard Biener <rguenther@suse.de>
28283
28284 PR middle-end/66423
28285 * match.pd: Handle A % (unsigned)(1 << B).
28286
28287 2015-06-09 Aldy Hernandez <aldyh@redhat.com>
28288
28289 * varasm.c (output_object_block_htab): Remove.
28290 (output_object_block_compare): New.
28291 (output_object_blocks): Sort named object_blocks before outputting
28292 them.
28293
28294 2015-06-09 Richard Biener <rguenther@suse.de>
28295
28296 PR tree-optimization/66419
28297 * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
28298 consider GROUP_GAP when detecting a perfect subchain.
28299
28300 2015-06-09 Nick Clifton <nickc@redhat.com>
28301
28302 * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
28303 place read only data in the .frodata section.
28304
28305 2015-06-09 Shiva Chen <shiva0217@gmail.com>
28306
28307 * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
28308 (atomic_store<mode>): Likewise.
28309
28310 2015-06-09 Richard Biener <rguenther@suse.de>
28311
28312 * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
28313
28314 2015-06-09 Richard Biener <rguenther@suse.de>
28315
28316 PR middle-end/66413
28317 * tree-inline.c (insert_init_debug_bind): Unshare value.
28318
28319 2015-06-09 Richard Biener <rguenther@suse.de>
28320
28321 PR tree-optimization/66396
28322 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
28323 Rename virtual operands.
28324
28325 2015-06-09 Tom de Vries <tom@codesourcery.com>
28326
28327 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
28328 always return false.
28329
28330 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
28331
28332 PR rtl-optimization/64164
28333 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
28334 * tree-ssa-copyrename.c: Removed.
28335 * opts.c (default_options_table): Drop -ftree-copyrename. Add
28336 -ftree-coalesce-vars.
28337 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
28338 * common.opt (ftree-copyrename): Ignore.
28339 (ftree-coalesce-inlined-vars): Likewise.
28340 * doc/invoke.texi: Remove the ignored options above.
28341 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
28342 * tree-ssa-coalesce.h: ... here.
28343 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
28344 headers required by it.
28345 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
28346 across variables when flag_tree_coalesce_vars. Check register
28347 use and promoted modes to allow coalescing. Moved to
28348 tree-ssa-coalesce.c.
28349 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
28350 with its member functions to tree-ssa-coalesce.c.
28351 (var_map_base_init): Likewise. Renamed to
28352 compute_samebase_partition_bases.
28353 (partition_view_normal): Drop want_bases parameter.
28354 (partition_view_bitmap): Likewise.
28355 * tree-ssa-live.h: Adjust declarations.
28356 * tree-ssa-coalesce.c: Include explow.h.
28357 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
28358 default defs at the entry point.
28359 (dump_part_var_map): New.
28360 (compute_optimized_partition_bases): New, called by...
28361 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
28362 of compute_samebase_partition_bases. Adjust.
28363 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
28364 * cfgexpand.c (leader_merge): New.
28365 (get_rtl_for_parm_ssa_default_def): New.
28366 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
28367 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
28368 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
28369 redundant MEM attr setting.
28370 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
28371 from...
28372 (expand_one_stack_var): ... this. New wrapper to check and
28373 skip already expanded SSA partitions.
28374 (record_alignment_for_reg_var): New, factored out of...
28375 (expand_one_var): ... this.
28376 (expand_one_ssa_partition): New.
28377 (adjust_one_expanded_partition_var): New.
28378 (expand_one_register_var): Check and skip already expanded SSA
28379 partitions.
28380 (expand_used_vars): Don't create DECLs for anonymous SSA
28381 names. Expand all SSA partitions, then adjust all SSA names.
28382 (pass::execute): Replace the loops that set
28383 SA.partition_to_pseudo from partition leaders and cleared
28384 DECL_RTL for multi-location variables, and that which used to
28385 rename vars and set attrs, with one that clears DECL_RTL and
28386 checks that PARMs and RESULTs default_defs match DECL_RTL.
28387 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
28388 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
28389 * explow.c (promote_ssa_mode): New.
28390 * explow.h (promote_ssa_mode): Declare.
28391 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
28392 * function.c: Include cfgexpand.h.
28393 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
28394 (use_register_for_parm_decl): Wrapper for the above to
28395 special-case the result_ptr.
28396 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
28397 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
28398 multiple locations.
28399 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
28400 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
28401 (assign_parm_setup_block): Prefer SSA-assigned location.
28402 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
28403 if stack_parm is NULL.
28404 (assign_parm_setup_stack): Prefer SSA-assigned location.
28405 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
28406 rtl before testing for pointer bounds. Special-case result_ptr.
28407 (expand_function_start): Maybe reset DECL_RTL of result.
28408 Prefer SSA-assigned location for result and static chain.
28409 Factor out DECL_RESULT and SET_DECL_RTL.
28410 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
28411 anonymous SSA names. Use promote_ssa_mode.
28412 (get_temp_reg): Likewise.
28413 (remove_ssa_form): Adjust.
28414 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
28415 and get its reg_usage for reg invalidation.
28416 (compute_bb_dataflow): Pass it insn.
28417 (emit_notes_in_bb): Likewise.
28418 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
28419 fail assert on conversion between unsigned types.
28420
28421 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
28422
28423 PR debug/58315
28424 * tree-inline.c (reset_debug_binding): New.
28425 (reset_debug_bindings): Likewise.
28426 (expand_call_inline): Call it.
28427
28428 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
28429
28430 * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
28431 TYPE_STRING_FLAG.
28432
28433 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
28434
28435 * lto-streamer-out.c (lto_output_location): Stream
28436 reserved locations correctly.
28437 * lto-streamer-in.c (lto_output_location): Likewise.
28438
28439 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
28440
28441 * coretypes.h: Include hash-table.h and hash-set.h for host files.
28442 * ggc.h: Don't include statistics.h>
28443 * hash-map.h: Remove all includes.
28444 * hash-set.h: Likewise.
28445 * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
28446 the include list. Remove <new>.
28447 * inchash.h: Remove all includes.
28448 * mem-stats.h: Likewise.
28449 * vec.h: No special processing for generators or ggc.
28450 * alias.c : Adjust include files.
28451 * alloc-pool.c : Likewise.
28452 * alloc-pool.h : Likewise.
28453 * asan.c : Likewise.
28454 * attribs.c : Likewise.
28455 * auto-inc-dec.c : Likewise.
28456 * auto-profile.c : Likewise.
28457 * bb-reorder.c : Likewise.
28458 * bitmap.c : Likewise.
28459 * bitmap.h : Likewise.
28460 * bt-load.c : Likewise.
28461 * builtins.c : Likewise.
28462 * caller-save.c : Likewise.
28463 * calls.c : Likewise.
28464 * ccmp.c : Likewise.
28465 * cfg.c : Likewise.
28466 * cfganal.c : Likewise.
28467 * cfgbuild.c : Likewise.
28468 * cfgcleanup.c : Likewise.
28469 * cfgexpand.c : Likewise.
28470 * cfghooks.c : Likewise.
28471 * cfgloop.c : Likewise.
28472 * cfgloop.h : Likewise.
28473 * cfgloopanal.c : Likewise.
28474 * cfgloopmanip.c : Likewise.
28475 * cfgrtl.c : Likewise.
28476 * cgraph.c : Likewise.
28477 * cgraphbuild.c : Likewise.
28478 * cgraphclones.c : Likewise.
28479 * cgraphunit.c : Likewise.
28480 * cilk-common.c : Likewise.
28481 * combine-stack-adj.c : Likewise.
28482 * combine.c : Likewise.
28483 * compare-elim.c : Likewise.
28484 * context.c : Likewise.
28485 * convert.c : Likewise.
28486 * coverage.c : Likewise.
28487 * cppbuiltin.c : Likewise.
28488 * cprop.c : Likewise.
28489 * cse.c : Likewise.
28490 * cselib.c : Likewise.
28491 * data-streamer-in.c : Likewise.
28492 * data-streamer-out.c : Likewise.
28493 * data-streamer.c : Likewise.
28494 * data-streamer.h : Likewise.
28495 * dbxout.c : Likewise.
28496 * dce.c : Likewise.
28497 * ddg.c : Likewise.
28498 * debug.c : Likewise.
28499 * df-core.c : Likewise.
28500 * df-problems.c : Likewise.
28501 * df-scan.c : Likewise.
28502 * df.h : Likewise.
28503 * dfp.c : Likewise.
28504 * dojump.c : Likewise.
28505 * dominance.c : Likewise.
28506 * domwalk.c : Likewise.
28507 * double-int.c : Likewise.
28508 * dse.c : Likewise.
28509 * dumpfile.c : Likewise.
28510 * dwarf2asm.c : Likewise.
28511 * dwarf2cfi.c : Likewise.
28512 * dwarf2out.c : Likewise.
28513 * emit-rtl.c : Likewise.
28514 * et-forest.c : Likewise.
28515 * except.c : Likewise.
28516 * except.h : Likewise.
28517 * explow.c : Likewise.
28518 * expmed.c : Likewise.
28519 * expr.c : Likewise.
28520 * final.c : Likewise.
28521 * fixed-value.c : Likewise.
28522 * fold-const.c : Likewise.
28523 * function.c : Likewise.
28524 * fwprop.c : Likewise.
28525 * gcc-plugin.h : Likewise.
28526 * gcc.c : Likewise.
28527 * gcse-common.c : Likewise.
28528 * gcse.c : Likewise.
28529 * genattrtab.c : Likewise.
28530 * genautomata.c : Likewise.
28531 * genconditions.c : Likewise.
28532 * genemit.c : Likewise.
28533 * generic-match-head.c : Likewise.
28534 * genextract.c : Likewise.
28535 * gengtype-state.c : Likewise.
28536 * gengtype.c : Likewise.
28537 * genhooks.c : Likewise.
28538 * genmatch.c : Likewise.
28539 * genmodes.c : Likewise.
28540 * genrecog.c : Likewise.
28541 * gensupport.c : Likewise.
28542 * ggc-common.c : Likewise.
28543 * ggc-internal.h : Likewise.
28544 * ggc-none.c : Likewise.
28545 * ggc-page.c : Likewise.
28546 * gimple-builder.c : Likewise.
28547 * gimple-expr.c : Likewise.
28548 * gimple-fold.c : Likewise.
28549 * gimple-iterator.c : Likewise.
28550 * gimple-low.c : Likewise.
28551 * gimple-match-head.c : Likewise.
28552 * gimple-pretty-print.c : Likewise.
28553 * gimple-ssa-isolate-paths.c : Likewise.
28554 * gimple-ssa-strength-reduction.c : Likewise.
28555 * gimple-ssa.h : Likewise.
28556 * gimple-streamer-in.c : Likewise.
28557 * gimple-streamer-out.c : Likewise.
28558 * gimple-streamer.h : Likewise.
28559 * gimple-walk.c : Likewise.
28560 * gimple.c : Likewise.
28561 * gimplify-me.c : Likewise.
28562 * gimplify.c : Likewise.
28563 * godump.c : Likewise.
28564 * graph.c : Likewise.
28565 * graphds.c : Likewise.
28566 * graphite-blocking.c : Likewise.
28567 * graphite-dependences.c : Likewise.
28568 * graphite-interchange.c : Likewise.
28569 * graphite-isl-ast-to-gimple.c : Likewise.
28570 * graphite-optimize-isl.c : Likewise.
28571 * graphite-poly.c : Likewise.
28572 * graphite-scop-detection.c : Likewise.
28573 * graphite-sese-to-poly.c : Likewise.
28574 * graphite.c : Likewise.
28575 * haifa-sched.c : Likewise.
28576 * hard-reg-set.h : Likewise.
28577 * hw-doloop.c : Likewise.
28578 * ifcvt.c : Likewise.
28579 * inchash.c : Likewise.
28580 * incpath.c : Likewise.
28581 * init-regs.c : Likewise.
28582 * input.c : Likewise.
28583 * internal-fn.c : Likewise.
28584 * ipa-chkp.c : Likewise.
28585 * ipa-comdats.c : Likewise.
28586 * ipa-cp.c : Likewise.
28587 * ipa-devirt.c : Likewise.
28588 * ipa-icf-gimple.c : Likewise.
28589 * ipa-icf.c : Likewise.
28590 * ipa-inline-analysis.c : Likewise.
28591 * ipa-inline-transform.c : Likewise.
28592 * ipa-inline.c : Likewise.
28593 * ipa-polymorphic-call.c : Likewise.
28594 * ipa-profile.c : Likewise.
28595 * ipa-prop.c : Likewise.
28596 * ipa-pure-const.c : Likewise.
28597 * ipa-ref.c : Likewise.
28598 * ipa-reference.c : Likewise.
28599 * ipa-split.c : Likewise.
28600 * ipa-utils.c : Likewise.
28601 * ipa-visibility.c : Likewise.
28602 * ipa.c : Likewise.
28603 * ira-build.c : Likewise.
28604 * ira-color.c : Likewise.
28605 * ira-conflicts.c : Likewise.
28606 * ira-costs.c : Likewise.
28607 * ira-emit.c : Likewise.
28608 * ira-lives.c : Likewise.
28609 * ira.c : Likewise.
28610 * jump.c : Likewise.
28611 * langhooks.c : Likewise.
28612 * lcm.c : Likewise.
28613 * libfuncs.h : Likewise.
28614 * lists.c : Likewise.
28615 * loop-doloop.c : Likewise.
28616 * loop-init.c : Likewise.
28617 * loop-invariant.c : Likewise.
28618 * loop-iv.c : Likewise.
28619 * loop-unroll.c : Likewise.
28620 * lower-subreg.c : Likewise.
28621 * lra-assigns.c : Likewise.
28622 * lra-coalesce.c : Likewise.
28623 * lra-constraints.c : Likewise.
28624 * lra-eliminations.c : Likewise.
28625 * lra-lives.c : Likewise.
28626 * lra-remat.c : Likewise.
28627 * lra-spills.c : Likewise.
28628 * lra.c : Likewise.
28629 * lto-cgraph.c : Likewise.
28630 * lto-compress.c : Likewise.
28631 * lto-opts.c : Likewise.
28632 * lto-section-in.c : Likewise.
28633 * lto-section-out.c : Likewise.
28634 * lto-streamer-in.c : Likewise.
28635 * lto-streamer-out.c : Likewise.
28636 * lto-streamer.c : Likewise.
28637 * lto-streamer.h : Likewise.
28638 * mcf.c : Likewise.
28639 * mode-switching.c : Likewise.
28640 * modulo-sched.c : Likewise.
28641 * omega.c : Likewise.
28642 * omp-low.c : Likewise.
28643 * optabs.c : Likewise.
28644 * opts-global.c : Likewise.
28645 * opts.h : Likewise.
28646 * passes.c : Likewise.
28647 * plugin.c : Likewise.
28648 * postreload-gcse.c : Likewise.
28649 * postreload.c : Likewise.
28650 * predict.c : Likewise.
28651 * print-rtl.c : Likewise.
28652 * print-tree.c : Likewise.
28653 * profile.c : Likewise.
28654 * read-md.c : Likewise.
28655 * read-md.h : Likewise.
28656 * read-rtl.c : Likewise.
28657 * real.c : Likewise.
28658 * realmpfr.c : Likewise.
28659 * recog.c : Likewise.
28660 * ree.c : Likewise.
28661 * reg-stack.c : Likewise.
28662 * regcprop.c : Likewise.
28663 * reginfo.c : Likewise.
28664 * regrename.c : Likewise.
28665 * regstat.c : Likewise.
28666 * reload.c : Likewise.
28667 * reload1.c : Likewise.
28668 * reorg.c : Likewise.
28669 * resource.c : Likewise.
28670 * rtl-chkp.c : Likewise.
28671 * rtl.c : Likewise.
28672 * rtl.h : Likewise.
28673 * rtlanal.c : Likewise.
28674 * rtlhash.c : Likewise.
28675 * rtlhash.h : Likewise.
28676 * rtlhooks.c : Likewise.
28677 * sanopt.c : Likewise.
28678 * sched-deps.c : Likewise.
28679 * sched-ebb.c : Likewise.
28680 * sched-rgn.c : Likewise.
28681 * sched-vis.c : Likewise.
28682 * sdbout.c : Likewise.
28683 * sel-sched-dump.c : Likewise.
28684 * sel-sched-ir.c : Likewise.
28685 * sel-sched-ir.h : Likewise.
28686 * sel-sched.c : Likewise.
28687 * sese.c : Likewise.
28688 * shrink-wrap.c : Likewise.
28689 * shrink-wrap.h : Likewise.
28690 * simplify-rtx.c : Likewise.
28691 * stack-ptr-mod.c : Likewise.
28692 * statistics.c : Likewise.
28693 * stmt.c : Likewise.
28694 * stor-layout.c : Likewise.
28695 * store-motion.c : Likewise.
28696 * stringpool.c : Likewise.
28697 * symtab.c : Likewise.
28698 * target-globals.c : Likewise.
28699 * targhooks.c : Likewise.
28700 * tlink.c : Likewise.
28701 * toplev.c : Likewise.
28702 * tracer.c : Likewise.
28703 * trans-mem.c : Likewise.
28704 * tree-affine.c : Likewise.
28705 * tree-affine.h : Likewise.
28706 * tree-browser.c : Likewise.
28707 * tree-call-cdce.c : Likewise.
28708 * tree-cfg.c : Likewise.
28709 * tree-cfgcleanup.c : Likewise.
28710 * tree-chkp-opt.c : Likewise.
28711 * tree-chkp.c : Likewise.
28712 * tree-chrec.c : Likewise.
28713 * tree-complex.c : Likewise.
28714 * tree-data-ref.c : Likewise.
28715 * tree-dfa.c : Likewise.
28716 * tree-diagnostic.c : Likewise.
28717 * tree-dump.c : Likewise.
28718 * tree-eh.c : Likewise.
28719 * tree-eh.h : Likewise.
28720 * tree-emutls.c : Likewise.
28721 * tree-hasher.h : Likewise.
28722 * tree-if-conv.c : Likewise.
28723 * tree-inline.c : Likewise.
28724 * tree-inline.h : Likewise.
28725 * tree-into-ssa.c : Likewise.
28726 * tree-iterator.c : Likewise.
28727 * tree-loop-distribution.c : Likewise.
28728 * tree-nested.c : Likewise.
28729 * tree-nrv.c : Likewise.
28730 * tree-object-size.c : Likewise.
28731 * tree-outof-ssa.c : Likewise.
28732 * tree-parloops.c : Likewise.
28733 * tree-phinodes.c : Likewise.
28734 * tree-predcom.c : Likewise.
28735 * tree-pretty-print.c : Likewise.
28736 * tree-profile.c : Likewise.
28737 * tree-scalar-evolution.c : Likewise.
28738 * tree-sra.c : Likewise.
28739 * tree-ssa-address.c : Likewise.
28740 * tree-ssa-alias.c : Likewise.
28741 * tree-ssa-ccp.c : Likewise.
28742 * tree-ssa-coalesce.c : Likewise.
28743 * tree-ssa-copy.c : Likewise.
28744 * tree-ssa-copyrename.c : Likewise.
28745 * tree-ssa-dce.c : Likewise.
28746 * tree-ssa-dom.c : Likewise.
28747 * tree-ssa-dse.c : Likewise.
28748 * tree-ssa-forwprop.c : Likewise.
28749 * tree-ssa-ifcombine.c : Likewise.
28750 * tree-ssa-live.c : Likewise.
28751 * tree-ssa-loop-ch.c : Likewise.
28752 * tree-ssa-loop-im.c : Likewise.
28753 * tree-ssa-loop-ivcanon.c : Likewise.
28754 * tree-ssa-loop-ivopts.c : Likewise.
28755 * tree-ssa-loop-manip.c : Likewise.
28756 * tree-ssa-loop-niter.c : Likewise.
28757 * tree-ssa-loop-prefetch.c : Likewise.
28758 * tree-ssa-loop-unswitch.c : Likewise.
28759 * tree-ssa-loop.c : Likewise.
28760 * tree-ssa-math-opts.c : Likewise.
28761 * tree-ssa-operands.c : Likewise.
28762 * tree-ssa-phiopt.c : Likewise.
28763 * tree-ssa-phiprop.c : Likewise.
28764 * tree-ssa-pre.c : Likewise.
28765 * tree-ssa-propagate.c : Likewise.
28766 * tree-ssa-reassoc.c : Likewise.
28767 * tree-ssa-sccvn.c : Likewise.
28768 * tree-ssa-scopedtables.c : Likewise.
28769 * tree-ssa-sink.c : Likewise.
28770 * tree-ssa-strlen.c : Likewise.
28771 * tree-ssa-structalias.c : Likewise.
28772 * tree-ssa-tail-merge.c : Likewise.
28773 * tree-ssa-ter.c : Likewise.
28774 * tree-ssa-threadedge.c : Likewise.
28775 * tree-ssa-threadupdate.c : Likewise.
28776 * tree-ssa-uncprop.c : Likewise.
28777 * tree-ssa-uninit.c : Likewise.
28778 * tree-ssa.c : Likewise.
28779 * tree-ssanames.c : Likewise.
28780 * tree-stdarg.c : Likewise.
28781 * tree-streamer-in.c : Likewise.
28782 * tree-streamer-out.c : Likewise.
28783 * tree-streamer.c : Likewise.
28784 * tree-streamer.h : Likewise.
28785 * tree-switch-conversion.c : Likewise.
28786 * tree-tailcall.c : Likewise.
28787 * tree-vect-data-refs.c : Likewise.
28788 * tree-vect-generic.c : Likewise.
28789 * tree-vect-loop-manip.c : Likewise.
28790 * tree-vect-loop.c : Likewise.
28791 * tree-vect-patterns.c : Likewise.
28792 * tree-vect-slp.c : Likewise.
28793 * tree-vect-stmts.c : Likewise.
28794 * tree-vectorizer.c : Likewise.
28795 * tree-vectorizer.h : Likewise.
28796 * tree-vrp.c : Likewise.
28797 * tree.c : Likewise.
28798 * tsan.c : Likewise.
28799 * ubsan.c : Likewise.
28800 * valtrack.c : Likewise.
28801 * valtrack.h : Likewise.
28802 * value-prof.c : Likewise.
28803 * var-tracking.c : Likewise.
28804 * varasm.c : Likewise.
28805 * varpool.c : Likewise.
28806 * vec.c: Likewise.
28807 * vmsdbgout.c : Likewise.
28808 * vtable-verify.c : Likewise.
28809 * vtable-verify.h : Likewise.
28810 * web.c : Likewise.
28811 * wide-int.cc : Likewise.
28812 * xcoffout.c : Likewise.
28813 * config/aarch64/aarch64-builtins.c : Likewise.
28814 * config/aarch64/aarch64.c : Likewise.
28815 * config/aarch64/cortex-a57-fma-steering.c : Likewise.
28816 * config/alpha/alpha.c : Likewise.
28817 * config/arc/arc.c : Likewise.
28818 * config/arm/aarch-common.c : Likewise.
28819 * config/arm/arm-builtins.c : Likewise.
28820 * config/arm/arm-c.c : Likewise.
28821 * config/arm/arm.c : Likewise.
28822 * config/avr/avr-c.c : Likewise.
28823 * config/avr/avr-log.c : Likewise.
28824 * config/avr/avr.c : Likewise.
28825 * config/bfin/bfin.c : Likewise.
28826 * config/c6x/c6x.c : Likewise.
28827 * config/cr16/cr16.c : Likewise.
28828 * config/cris/cris.c : Likewise.
28829 * config/darwin-c.c : Likewise.
28830 * config/darwin.c : Likewise.
28831 * config/default-c.c : Likewise.
28832 * config/epiphany/epiphany.c : Likewise.
28833 * config/epiphany/mode-switch-use.c : Likewise.
28834 * config/epiphany/resolve-sw-modes.c : Likewise.
28835 * config/fr30/fr30.c : Likewise.
28836 * config/frv/frv.c : Likewise.
28837 * config/ft32/ft32.c : Likewise.
28838 * config/glibc-c.c : Likewise.
28839 * config/h8300/h8300.c : Likewise.
28840 * config/i386/i386-c.c : Likewise.
28841 * config/i386/i386.c : Likewise.
28842 * config/i386/msformat-c.c : Likewise.
28843 * config/i386/winnt-cxx.c : Likewise.
28844 * config/i386/winnt-stubs.c : Likewise.
28845 * config/i386/winnt.c : Likewise.
28846 * config/ia64/ia64-c.c : Likewise.
28847 * config/ia64/ia64.c : Likewise.
28848 * config/iq2000/iq2000.c : Likewise.
28849 * config/lm32/lm32.c : Likewise.
28850 * config/m32c/m32c-pragma.c : Likewise.
28851 * config/m32c/m32c.c : Likewise.
28852 * config/m32r/m32r.c : Likewise.
28853 * config/m68k/m68k.c : Likewise.
28854 * config/mcore/mcore.c : Likewise.
28855 * config/mep/mep-pragma.c : Likewise.
28856 * config/mep/mep.c : Likewise.
28857 * config/microblaze/microblaze-c.c : Likewise.
28858 * config/microblaze/microblaze.c : Likewise.
28859 * config/mips/mips.c : Likewise.
28860 * config/mmix/mmix.c : Likewise.
28861 * config/mn10300/mn10300.c : Likewise.
28862 * config/moxie/moxie.c : Likewise.
28863 * config/msp430/msp430-c.c : Likewise.
28864 * config/msp430/msp430.c : Likewise.
28865 * config/nds32/nds32-cost.c : Likewise.
28866 * config/nds32/nds32-fp-as-gp.c : Likewise.
28867 * config/nds32/nds32-intrinsic.c : Likewise.
28868 * config/nds32/nds32-isr.c : Likewise.
28869 * config/nds32/nds32-md-auxiliary.c : Likewise.
28870 * config/nds32/nds32-memory-manipulation.c : Likewise.
28871 * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
28872 * config/nds32/nds32-predicates.c : Likewise.
28873 * config/nds32/nds32.c : Likewise.
28874 * config/nios2/nios2.c : Likewise.
28875 * config/nvptx/nvptx.c : Likewise.
28876 * config/pa/pa.c : Likewise.
28877 * config/pdp11/pdp11.c : Likewise.
28878 * config/rl78/rl78-c.c : Likewise.
28879 * config/rl78/rl78.c : Likewise.
28880 * config/rs6000/rs6000-c.c : Likewise.
28881 * config/rs6000/rs6000.c : Likewise.
28882 * config/rx/rx.c : Likewise.
28883 * config/s390/s390-c.c : Likewise.
28884 * config/s390/s390.c : Likewise.
28885 * config/sh/sh-c.c : Likewise.
28886 * config/sh/sh-mem.cc : Likewise.
28887 * config/sh/sh.c : Likewise.
28888 * config/sh/sh_optimize_sett_clrt.cc : Likewise.
28889 * config/sh/sh_treg_combine.cc : Likewise.
28890 * config/sol2-c.c : Likewise.
28891 * config/sol2-cxx.c : Likewise.
28892 * config/sol2-stubs.c : Likewise.
28893 * config/sol2.c : Likewise.
28894 * config/sparc/sparc-c.c : Likewise.
28895 * config/sparc/sparc.c : Likewise.
28896 * config/spu/spu-c.c : Likewise.
28897 * config/spu/spu.c : Likewise.
28898 * config/stormy16/stormy16.c : Likewise.
28899 * config/tilegx/mul-tables.c : Likewise.
28900 * config/tilegx/tilegx-c.c : Likewise.
28901 * config/tilegx/tilegx.c : Likewise.
28902 * config/tilepro/mul-tables.c : Likewise.
28903 * config/tilepro/tilepro-c.c : Likewise.
28904 * config/tilepro/tilepro.c : Likewise.
28905 * config/v850/v850-c.c : Likewise.
28906 * config/v850/v850.c : Likewise.
28907 * config/vax/vax.c : Likewise.
28908 * config/visium/visium.c : Likewise.
28909 * config/vms/vms-c.c : Likewise.
28910 * config/vms/vms.c : Likewise.
28911 * config/vxworks.c : Likewise.
28912 * config/winnt-c.c : Likewise.
28913 * config/xtensa/xtensa.c : Likewise.
28914
28915 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
28916
28917 PR lto/65378
28918 * ipa-utils.h (warn_types_mismatch): Update prototype.
28919 * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
28920 parameters.
28921 (type_mismatch_p): New function.
28922 (warn_types_mismatch): Reorg to work better on non-C++ types.
28923 (odr_types_equivalent_p): Add loc1/loc2 parameters.
28924 (add_type_duplicate): Update.
28925
28926 2015-06-08 Tom de Vries <tom@codesourcery.com>
28927
28928 PR rtl-optimization/66444
28929 * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
28930 call_used_regs.
28931
28932 2015-06-08 Richard Biener <rguenther@suse.de>
28933
28934 PR tree-optimization/66422
28935 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
28936 block after inserted gcc_unreachable.
28937
28938 2015-06-08 Nick Clifton <nickc@redhat.com>
28939
28940 * config/rx/rx.c (rx_function_value): Do not promote vector types.
28941 (rx_promote_function_mode): Likewise.
28942 * config/rx/rx.h (LIBCALL_VALUE): Likewise.
28943
28944 2015-06-08 Jakub Jelinek <jakub@redhat.com>
28945
28946 * genattrtab.c (insn_alternatives): Change type from int *
28947 to uint64_t *.
28948 (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
28949 (get_attr_value): Change type of num_alt to uint64_t.
28950 (compute_alternative_mask): Change return type from
28951 int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
28952 (make_alternative_compare, mk_attr_alt): Change argument type
28953 from int to uint64_t.
28954 (simplify_test_exp): Change type of i from int to uint64_t.
28955 Shift ((uint64_t) 1) instead of 1 up.
28956 (main): Adjust oballocvec first argument from int to uint64_t.
28957 Shift ((uint64_t) 1) instead of 1 up.
28958
28959 2015-06-08 Jan Kratochvil <jan.kratochvil@redhat.com>
28960
28961 PR other/65366
28962 * gdbhooks.py: Import sys.
28963 (intptr): New function. Replace int(...) by intptr(...).
28964
28965 2015-06-08 Richard Biener <rguenther@suse.de>
28966
28967 * tree-vect-stmts.c (vectorizable_load): Compute the pointer
28968 adjustment for gaps at the end of a SLP load group properly.
28969 * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
28970 all permutations we can generate.
28971 (vect_transform_slp_perm_load): Use the correct group-size.
28972
28973 2015-06-08 Marc Glisse <marc.glisse@inria.fr>
28974
28975 * genmatch.c (expr::gen_transform): For conditions, guess the type
28976 from the second operand.
28977
28978 2015-06-08 Tom de Vries <tom@codesourcery.com>
28979
28980 PR tree-optimization/66442
28981 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
28982 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
28983 if the loop latch is not a singleton. Use
28984 gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
28985
28986 2015-06-08 Marek Polacek <polacek@redhat.com>
28987
28988 PR sanitizer/66452
28989 * toplev.c (check_global_declaration): Don't warn about artificial
28990 decls.
28991
28992 2015-06-08 Tom de Vries <tom@codesourcery.com>
28993
28994 PR tree-optimization/66436
28995 * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
28996 dump file.
28997 * gimplify.c: Add tree-dump.h include.
28998 (gimplify_function_tree): Dump function to gimple dump file.
28999 * stor-layout.c (finalize_size_functions): Don't dump function to gimple
29000 dump file.
29001
29002 2015-06-08 Tom de Vries <tom@codesourcery.com>
29003
29004 PR tree-optimization/66435
29005 * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
29006 function.
29007
29008 2015-06-06 Jan Hubicka <hubicka@ucw.cz>
29009
29010 * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
29011 of ptr_type_node to not be ptr_to_node.
29012 * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
29013 TREE_TYPE of pointers.
29014 * gimple-expr.c (useless_type_conversion): Reorder the check for
29015 function pointers and TYPE_CANONICAL.
29016
29017 2015-06-06 John David Anglin <danglin@gcc.gnu.org>
29018
29019 PR bootstrap/66319
29020 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
29021 defines. Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
29022 Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
29023 later.
29024 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
29025 Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
29026 _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
29027 _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
29028 and non iso if unix2003.
29029
29030 2015-06-06 Aldy Hernandez <aldyh@redhat.com>
29031
29032 * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
29033
29034 2015-06-06 Richard Sandiford <richard.sandiford@arm.com>
29035
29036 * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
29037 rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
29038 cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
29039 except.c, final.c, function.c, gcse-common.c, genemit.c,
29040 haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
29041 lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
29042 sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
29043 shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
29044 more derived ones.
29045
29046 2015-06-06 Mikhail Maltsev <maltsevm@gmail.com>
29047
29048 * combine.c (combine_split_insns): Remove cast.
29049 * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
29050 * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
29051 * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
29052 * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
29053 * genemit.c (gen_split): Change return type of generated functions to
29054 rtx_insn.
29055 * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
29056 (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
29057 gen_peephole2_* functions.
29058 (print_subroutine, main): Likewise.
29059 * recog.c (peephole2_optimize): Remove cast.
29060 (peep2_next_insn): Promote return type to rtx_insn.
29061 * recog.h (peep2_next_insn): Fix prototype.
29062 * rtl.h (try_split, split_insns): Likewise.
29063
29064 2015-06-06 DJ Delorie <dj@redhat.com>
29065
29066 * config/msp430/msp430.c (msp430_asm_integer): Support addition
29067 and subtraction too.
29068
29069 2015-06-05 Kaz Kojima <kkojima@gcc.gnu.org>
29070
29071 PR target/66410
29072 * config/sh/constraints.md (Sid, Ssd): New memory constraints.
29073 * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
29074 instead of Snd. Disparage Sid/z alternative with '^'.
29075
29076 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
29077
29078 * dwarf2out.c: Remove deferred_locations*.
29079 (dwarf2_debug_hooks): Add early_finish hook.
29080 Remove global_decl hook.
29081 Add early_global_decl and late_global_decl hook.
29082 New global early_dwarf.
29083 New structure set_early_dwarf.
29084 (output_die): Indicate whether a DIE was generated early
29085 when generating assembly with -dA.
29086 (struct limbo_die_struct): Document created_for field.
29087 Remove file_table_last_lookup.
29088 (remove_AT): Return TRUE if successful.
29089 (remove_child_TAG): Clear die_parent.
29090 (reparent_child): New function abstracted from...
29091 (splice_child_die): ...here.
29092 (new_die): ICE if a DIE ends up in limbo too late.
29093 (check_die): New.
29094 (defer_location): Remove.
29095 (add_subscript_info): Reuse DW_TAG_subrange_type if available.
29096 (fill_variable_array_bounds): New.
29097 (decl_start_label): Call fill_variable_array_bounds.
29098 (gen_formal_parameter_die): Rewrite to reuse previously generated
29099 DIEs.
29100 (gen_subprogram_die): Same.
29101 (gen_variable_die): Same.
29102 (gen_const_die): Same.
29103 (gen_label_die): Same.
29104 (gen_lexical_block_die): Same.
29105 (decl_will_get_specification_p): New.
29106 (local_function_static): New.
29107 (gen_struct_or_union_type_die): Fill in variable-length fields.
29108 (gen_typedef_die): Fill in variable-length typedefs.
29109 (gen_tagged_type_die): Gracefully return on error_mark_node.
29110 Handle re-entrancy.
29111 (gen_type_die_with_usage): Handle variable-length types.
29112 Remove duplicate code for ARRAY_TYPE case.
29113 (process_scope_var): Only process imported modules during early
29114 dwarf.
29115 (dwarf2out_early_global_decl): New.
29116 (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
29117 (dwarf2out_type_decl): Set early_dwarf while calling
29118 dwarf2out_decl.
29119 (dwarf2out_decl): Verify that we did not recreate a previously
29120 generated DIE.
29121 Do not return on DECL_EXTERNALs in VAR_DECLs.
29122 Abstract some code to local_function_static.
29123 (lookup_filename): Remove use of file_table_last_lookup.
29124 Gracefully exit on missing file_name.
29125 (dwarf2out_finish): Verify limbo list.
29126 Remove deferred_locations_list use.
29127 Move deferred_asm_name and limbo flushing to...
29128 (dwarf2out_early_finish): ...here. New.
29129 (dwarf2out_c_finalize): Remove set of deferred_location_list,
29130 deferred_asm_name, and file_table_last_lookup.
29131 * cgraph.h (referred_to_p): Add default argument.
29132 * cgraphunit.c (referred_to_p): Add and handle include_self
29133 argument.
29134 (analyze_functions): Add first_time argument.
29135 Call check_global_declaration for all symbols.
29136 Call late_global_decl for nodes for moribund nodes.
29137 (finalize_compilation_unit): Add new argument to
29138 analyze_functions.
29139 Call early_global_decl for functions.
29140 Call early_finish debug hook.
29141 * dbxout.c (dbxout_early_global_decl): New.
29142 (dbxout_late_global_decl): New. Adapted from dbxout_global_decl.
29143 (dbx_debug_hooks): Add new hooks.
29144 (xcoff_debug_hooks): Same.
29145 * debug.c (do_nothing_debug_hooks): Add early_finish field.
29146 Add early and late debug hooks.
29147 Remove global_decl hook.
29148 * debug.h (struct gcc_debug_hooks): Add early_finish,
29149 early_global_decl, and late_global_decl fields.
29150 Remove global_decl field.
29151 Document gcc_debug_hooks.
29152 * gengtype.c (output_typename): Remove.
29153 * godump.c (go_early_global_decl): New.
29154 (go_late_global_decl): New.
29155 (go_global_decl): Remove.
29156 (dump_go_spec_init): Remove global_decl. Add
29157 {early,late}_global_decl.
29158 * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
29159 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
29160 * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
29161 (write_global_declarations): Remove.
29162 (global_decl_processing): New.
29163 * langhooks.h (struct lang_hooks_for_decls): Remove
29164 final_write_globals field.
29165 Add post_compilation_parsing_cleanups field.
29166 * passes.c (rest_of_decl_compilation): Call early_global_decl.
29167 * sdbout.c: Add early and late_global_decl hooks. Remove
29168 sdbout_global_decl hook.
29169 Add early_finish field for sdb_debug_hooks.
29170 (sdbout_global_decl): Remove.
29171 (sdbout_early_global_decl): New.
29172 (sdbout_late_global_decl): New.
29173 * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
29174 * toplev.c (check_global_declaration): Rename from
29175 check_global_declaration_1.
29176 Adapt to use symtab infrastructure.
29177 (check_global_declarations): Remove.
29178 (emit_debug_global_declarations): Remove.
29179 (compile_file): Remove call to final_write_globals langhook.
29180 Run the actual compilation process.
29181 Perform any post compilation parser cleanups.
29182 Generate late debug info.
29183 * toplev.h (check_global_declaration): New.
29184 (check_global_declaration_1): Remove.
29185 (check_global_declarations): Remove.
29186 (write_global_declarations): Remove.
29187 (emit_debug_global_declarations): Remove.
29188 (global_decl_processing): New.
29189 * tree-core.h (struct tree_block): Add DIE field.
29190 * tree.h (BLOCK_DIE): New.
29191 * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
29192 throughout.
29193 (vmsdbgout_early_global_decl): New.
29194 (vmsdbgout_late_global_decl): New.
29195 Add early_finish debug hook field to vmsdbg_debug_hooks.
29196 Remove vmsdbgout_decl to vmsdbgout_function_decl.
29197 Add early and late_global_decl debug hooks.
29198
29199 2015-06-05 Julian Brown <julian@codesourcery.com>
29200 Sandra Loosemore <sandra@codesourcery.com>
29201
29202 * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
29203 * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
29204 to print-sysroot-suffix.sh script.
29205
29206 2015-06-05 Tom de Vries <tom@codesourcery.com>
29207
29208 merge from gomp4 branch:
29209 2015-05-28 Tom de Vries <tom@codesourcery.com>
29210
29211 PR tree-optimization/65443
29212 * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
29213 (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
29214 (try_transform_to_exit_first_loop_alt): New function.
29215 (transform_to_exit_first_loop): Use
29216 try_transform_to_exit_first_loop_alt.
29217
29218 2015-06-05 James Greenhalgh <james.greenhalgh@arm.com>
29219
29220 * builtins.c (expand_builtin_atomic_compare_exchange): Call
29221 emit_cmp_and_jump_insns with the mode of target.
29222
29223 2015-06-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
29224
29225 * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
29226
29227 2015-06-04 DJ Delorie <dj@redhat.com>
29228
29229 * config/msp430/msp430.md (movsi_s): New. Special case for
29230 storing a 20-bit symbol into a 32-bit register.
29231 * config/msp430/msp430.c (msp430_subreg): Add support for it.
29232 * config/msp430/predicates.md (msp430_symbol_operand): New.
29233
29234 2015-06-04 Sriraman Tallam <tmsriram@google.com>
29235
29236 * calls.c (prepare_call_address): Check for noplt
29237 attribute.
29238 * config/i386/i386.c (ix86_expand_call): Check
29239 for noplt attribute.
29240 (ix86_nopic_noplt_attribute_p): New function.
29241 (ix86_output_call_insn): Output indirect call for non-pic
29242 no plt calls.
29243 * doc/extend.texi (noplt): Document new attribute.
29244 * doc/invoke.texi: Document new attribute.
29245
29246 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
29247
29248 * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
29249 real.h, and fixed-value.h when included in host source files.
29250 * double-int.h: Remove redundant #includes listed above.
29251 * fixed-value.h: Likewise.
29252 * real.h: Likewise.
29253 * wide-int.h: Likewise.
29254 * inchash.h: Likewise.
29255 * rtl.h: Add some include files When included from a generator file.
29256 * target.h: Remove wide-int.h and insn-modes.h from the include list.
29257 * internal-fn.h: Don't include coretypes.h.
29258 * alias.c: Adjust includes for restructured coretypes.h.
29259 * asan.c: Likewise.
29260 * attribs.c: Likewise.
29261 * auto-inc-dec.c: Likewise.
29262 * auto-profile.c: Likewise.
29263 * bb-reorder.c: Likewise.
29264 * bt-load.c: Likewise.
29265 * builtins.c: Likewise.
29266 * caller-save.c: Likewise.
29267 * calls.c: Likewise.
29268 * ccmp.c: Likewise.
29269 * cfg.c: Likewise.
29270 * cfganal.c: Likewise.
29271 * cfgbuild.c: Likewise.
29272 * cfgcleanup.c: Likewise.
29273 * cfgexpand.c: Likewise.
29274 * cfghooks.c: Likewise.
29275 * cfgloop.c: Likewise.
29276 * cfgloop.h: Likewise.
29277 * cfgloopanal.c: Likewise.
29278 * cfgloopmanip.c: Likewise.
29279 * cfgrtl.c: Likewise.
29280 * cgraph.c: Likewise.
29281 * cgraphbuild.c: Likewise.
29282 * cgraphclones.c: Likewise.
29283 * cgraphunit.c: Likewise.
29284 * cilk-common.c: Likewise.
29285 * combine-stack-adj.c: Likewise.
29286 * combine.c: Likewise.
29287 * compare-elim.c: Likewise.
29288 * convert.c: Likewise.
29289 * coverage.c: Likewise.
29290 * cppbuiltin.c: Likewise.
29291 * cprop.c: Likewise.
29292 * cse.c: Likewise.
29293 * cselib.c: Likewise.
29294 * data-streamer-in.c: Likewise.
29295 * data-streamer-out.c: Likewise.
29296 * data-streamer.c: Likewise.
29297 * dbxout.c: Likewise.
29298 * dce.c: Likewise.
29299 * ddg.c: Likewise.
29300 * debug.c: Likewise.
29301 * df-core.c: Likewise.
29302 * df-problems.c: Likewise.
29303 * df-scan.c: Likewise.
29304 * df.h: Likewise.
29305 * dfp.c: Likewise.
29306 * dojump.c: Likewise.
29307 * dominance.c: Likewise.
29308 * domwalk.c: Likewise.
29309 * double-int.c: Likewise.
29310 * dse.c: Likewise.
29311 * dumpfile.c: Likewise.
29312 * dwarf2asm.c: Likewise.
29313 * dwarf2cfi.c: Likewise.
29314 * dwarf2out.c: Likewise.
29315 * dwarf2out.h: Likewise.
29316 * emit-rtl.c: Likewise.
29317 * et-forest.c: Likewise.
29318 * except.c: Likewise.
29319 * explow.c: Likewise.
29320 * expmed.c: Likewise.
29321 * expr.c: Likewise.
29322 * final.c: Likewise.
29323 * fixed-value.c: Likewise.
29324 * fold-const.c: Likewise.
29325 * function.c: Likewise.
29326 * fwprop.c: Likewise.
29327 * gcc-plugin.h: Likewise.
29328 * gcse.c: Likewise.
29329 * generic-match-head.c: Likewise.
29330 * ggc-page.c: Likewise.
29331 * gimple-builder.c: Likewise.
29332 * gimple-expr.c: Likewise.
29333 * gimple-fold.c: Likewise.
29334 * gimple-iterator.c: Likewise.
29335 * gimple-low.c: Likewise.
29336 * gimple-match-head.c: Likewise.
29337 * gimple-pretty-print.c: Likewise.
29338 * gimple-ssa-isolate-paths.c: Likewise.
29339 * gimple-ssa-strength-reduction.c: Likewise.
29340 * gimple-streamer-in.c: Likewise.
29341 * gimple-streamer-out.c: Likewise.
29342 * gimple-streamer.h: Likewise.
29343 * gimple-walk.c: Likewise.
29344 * gimple.c: Likewise.
29345 * gimplify-me.c: Likewise.
29346 * gimplify.c: Likewise.
29347 * godump.c: Likewise.
29348 * graph.c: Likewise.
29349 * graphite-blocking.c: Likewise.
29350 * graphite-dependences.c: Likewise.
29351 * graphite-interchange.c: Likewise.
29352 * graphite-isl-ast-to-gimple.c: Likewise.
29353 * graphite-optimize-isl.c: Likewise.
29354 * graphite-poly.c: Likewise.
29355 * graphite-scop-detection.c: Likewise.
29356 * graphite-sese-to-poly.c: Likewise.
29357 * graphite.c: Likewise.
29358 * haifa-sched.c: Likewise.
29359 * hooks.h: Likewise.
29360 * hw-doloop.c: Likewise.
29361 * ifcvt.c: Likewise.
29362 * incpath.c: Likewise.
29363 * init-regs.c: Likewise.
29364 * internal-fn.c: Likewise.
29365 * ipa-chkp.c: Likewise.
29366 * ipa-comdats.c: Likewise.
29367 * ipa-cp.c: Likewise.
29368 * ipa-devirt.c: Likewise.
29369 * ipa-icf-gimple.c: Likewise.
29370 * ipa-icf.c: Likewise.
29371 * ipa-inline-analysis.c: Likewise.
29372 * ipa-inline-transform.c: Likewise.
29373 * ipa-inline.c: Likewise.
29374 * ipa-polymorphic-call.c: Likewise.
29375 * ipa-profile.c: Likewise.
29376 * ipa-prop.c: Likewise.
29377 * ipa-pure-const.c: Likewise.
29378 * ipa-ref.c: Likewise.
29379 * ipa-reference.c: Likewise.
29380 * ipa-split.c: Likewise.
29381 * ipa-utils.c: Likewise.
29382 * ipa-visibility.c: Likewise.
29383 * ipa.c: Likewise.
29384 * ira-build.c: Likewise.
29385 * ira-color.c: Likewise.
29386 * ira-conflicts.c: Likewise.
29387 * ira-costs.c: Likewise.
29388 * ira-emit.c: Likewise.
29389 * ira-lives.c: Likewise.
29390 * ira.c: Likewise.
29391 * jump.c: Likewise.
29392 * langhooks.c: Likewise.
29393 * lcm.c: Likewise.
29394 * loop-doloop.c: Likewise.
29395 * loop-init.c: Likewise.
29396 * loop-invariant.c: Likewise.
29397 * loop-iv.c: Likewise.
29398 * loop-unroll.c: Likewise.
29399 * lower-subreg.c: Likewise.
29400 * lra-assigns.c: Likewise.
29401 * lra-coalesce.c: Likewise.
29402 * lra-constraints.c: Likewise.
29403 * lra-eliminations.c: Likewise.
29404 * lra-lives.c: Likewise.
29405 * lra-remat.c: Likewise.
29406 * lra-spills.c: Likewise.
29407 * lra.c: Likewise.
29408 * lto-cgraph.c: Likewise.
29409 * lto-compress.c: Likewise.
29410 * lto-opts.c: Likewise.
29411 * lto-section-in.c: Likewise.
29412 * lto-section-out.c: Likewise.
29413 * lto-streamer-in.c: Likewise.
29414 * lto-streamer-out.c: Likewise.
29415 * lto-streamer.c: Likewise.
29416 * mcf.c: Likewise.
29417 * mode-switching.c: Likewise.
29418 * modulo-sched.c: Likewise.
29419 * omega.c: Likewise.
29420 * omp-low.c: Likewise.
29421 * optabs.c: Likewise.
29422 * opts-global.c: Likewise.
29423 * passes.c: Likewise.
29424 * plugin.c: Likewise.
29425 * postreload-gcse.c: Likewise.
29426 * postreload.c: Likewise.
29427 * predict.c: Likewise.
29428 * print-rtl.c: Likewise.
29429 * print-tree.c: Likewise.
29430 * profile.c: Likewise.
29431 * real.c: Likewise.
29432 * realmpfr.c: Likewise.
29433 * realmpfr.h: Likewise.
29434 * recog.c: Likewise.
29435 * ree.c: Likewise.
29436 * reg-stack.c: Likewise.
29437 * regcprop.c: Likewise.
29438 * reginfo.c: Likewise.
29439 * regrename.c: Likewise.
29440 * regs.h: Likewise.
29441 * regstat.c: Likewise.
29442 * reload.c: Likewise.
29443 * reload1.c: Likewise.
29444 * reorg.c: Likewise.
29445 * resource.c: Likewise.
29446 * rtl-chkp.c: Likewise.
29447 * rtlanal.c: Likewise.
29448 * rtlhooks.c: Likewise.
29449 * sanopt.c: Likewise.
29450 * sched-deps.c: Likewise.
29451 * sched-ebb.c: Likewise.
29452 * sched-rgn.c: Likewise.
29453 * sched-vis.c: Likewise.
29454 * sdbout.c: Likewise.
29455 * sel-sched-dump.c: Likewise.
29456 * sel-sched-ir.c: Likewise.
29457 * sel-sched.c: Likewise.
29458 * sese.c: Likewise.
29459 * shrink-wrap.c: Likewise.
29460 * shrink-wrap.h: Likewise.
29461 * simplify-rtx.c: Likewise.
29462 * stack-ptr-mod.c: Likewise.
29463 * statistics.c: Likewise.
29464 * stmt.c: Likewise.
29465 * stor-layout.c: Likewise.
29466 * store-motion.c: Likewise.
29467 * stringpool.c: Likewise.
29468 * symtab.c: Likewise.
29469 * target-globals.c: Likewise.
29470 * targhooks.c: Likewise.
29471 * toplev.c: Likewise.
29472 * tracer.c: Likewise.
29473 * trans-mem.c: Likewise.
29474 * tree-affine.c: Likewise.
29475 * tree-affine.h: Likewise.
29476 * tree-browser.c: Likewise.
29477 * tree-call-cdce.c: Likewise.
29478 * tree-cfg.c: Likewise.
29479 * tree-cfgcleanup.c: Likewise.
29480 * tree-chkp-opt.c: Likewise.
29481 * tree-chkp.c: Likewise.
29482 * tree-chrec.c: Likewise.
29483 * tree-complex.c: Likewise.
29484 * tree-data-ref.c: Likewise.
29485 * tree-dfa.c: Likewise.
29486 * tree-diagnostic.c: Likewise.
29487 * tree-dump.c: Likewise.
29488 * tree-eh.c: Likewise.
29489 * tree-emutls.c: Likewise.
29490 * tree-if-conv.c: Likewise.
29491 * tree-inline.c: Likewise.
29492 * tree-into-ssa.c: Likewise.
29493 * tree-iterator.c: Likewise.
29494 * tree-loop-distribution.c: Likewise.
29495 * tree-nested.c: Likewise.
29496 * tree-nrv.c: Likewise.
29497 * tree-object-size.c: Likewise.
29498 * tree-outof-ssa.c: Likewise.
29499 * tree-parloops.c: Likewise.
29500 * tree-phinodes.c: Likewise.
29501 * tree-predcom.c: Likewise.
29502 * tree-pretty-print.c: Likewise.
29503 * tree-pretty-print.h: Likewise.
29504 * tree-profile.c: Likewise.
29505 * tree-scalar-evolution.c: Likewise.
29506 * tree-sra.c: Likewise.
29507 * tree-ssa-address.c: Likewise.
29508 * tree-ssa-alias.c: Likewise.
29509 * tree-ssa-ccp.c: Likewise.
29510 * tree-ssa-coalesce.c: Likewise.
29511 * tree-ssa-copy.c: Likewise.
29512 * tree-ssa-copyrename.c: Likewise.
29513 * tree-ssa-dce.c: Likewise.
29514 * tree-ssa-dom.c: Likewise.
29515 * tree-ssa-dse.c: Likewise.
29516 * tree-ssa-forwprop.c: Likewise.
29517 * tree-ssa-ifcombine.c: Likewise.
29518 * tree-ssa-live.c: Likewise.
29519 * tree-ssa-loop-ch.c: Likewise.
29520 * tree-ssa-loop-im.c: Likewise.
29521 * tree-ssa-loop-ivcanon.c: Likewise.
29522 * tree-ssa-loop-ivopts.c: Likewise.
29523 * tree-ssa-loop-manip.c: Likewise.
29524 * tree-ssa-loop-niter.c: Likewise.
29525 * tree-ssa-loop-prefetch.c: Likewise.
29526 * tree-ssa-loop-unswitch.c: Likewise.
29527 * tree-ssa-loop.c: Likewise.
29528 * tree-ssa-loop.h: Likewise.
29529 * tree-ssa-math-opts.c: Likewise.
29530 * tree-ssa-operands.c: Likewise.
29531 * tree-ssa-phiopt.c: Likewise.
29532 * tree-ssa-phiprop.c: Likewise.
29533 * tree-ssa-pre.c: Likewise.
29534 * tree-ssa-propagate.c: Likewise.
29535 * tree-ssa-reassoc.c: Likewise.
29536 * tree-ssa-sccvn.c: Likewise.
29537 * tree-ssa-scopedtables.c: Likewise.
29538 * tree-ssa-sink.c: Likewise.
29539 * tree-ssa-strlen.c: Likewise.
29540 * tree-ssa-structalias.c: Likewise.
29541 * tree-ssa-tail-merge.c: Likewise.
29542 * tree-ssa-ter.c: Likewise.
29543 * tree-ssa-threadedge.c: Likewise.
29544 * tree-ssa-threadupdate.c: Likewise.
29545 * tree-ssa-uncprop.c: Likewise.
29546 * tree-ssa-uninit.c: Likewise.
29547 * tree-ssa.c: Likewise.
29548 * tree-ssanames.c: Likewise.
29549 * tree-stdarg.c: Likewise.
29550 * tree-streamer-in.c: Likewise.
29551 * tree-streamer-out.c: Likewise.
29552 * tree-streamer.c: Likewise.
29553 * tree-switch-conversion.c: Likewise.
29554 * tree-tailcall.c: Likewise.
29555 * tree-vect-data-refs.c: Likewise.
29556 * tree-vect-generic.c: Likewise.
29557 * tree-vect-loop-manip.c: Likewise.
29558 * tree-vect-loop.c: Likewise.
29559 * tree-vect-patterns.c: Likewise.
29560 * tree-vect-slp.c: Likewise.
29561 * tree-vect-stmts.c: Likewise.
29562 * tree-vectorizer.c: Likewise.
29563 * tree-vrp.c: Likewise.
29564 * tree.c: Likewise.
29565 * tsan.c: Likewise.
29566 * ubsan.c: Likewise.
29567 * valtrack.c: Likewise.
29568 * value-prof.c: Likewise.
29569 * var-tracking.c: Likewise.
29570 * varasm.c: Likewise.
29571 * varpool.c: Likewise.
29572 * vmsdbgout.c: Likewise.
29573 * vtable-verify.c: Likewise.
29574 * web.c: Likewise.
29575 * wide-int-print.cc: Likewise.
29576 * wide-int-print.h: Likewise.
29577 * wide-int.cc: Likewise.
29578 * xcoffout.c: Likewise.
29579 * config/aarch64/aarch64-builtins.c: Likewise.
29580 * config/aarch64/aarch64.c: Likewise.
29581 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
29582 * config/alpha/alpha.c: Likewise.
29583 * config/arc/arc.c: Likewise.
29584 * config/arm/aarch-common.c: Likewise.
29585 * config/arm/arm-builtins.c: Likewise.
29586 * config/arm/arm-c.c: Likewise.
29587 * config/arm/arm.c: Likewise.
29588 * config/avr/avr-c.c: Likewise.
29589 * config/avr/avr-log.c: Likewise.
29590 * config/avr/avr.c: Likewise.
29591 * config/bfin/bfin.c: Likewise.
29592 * config/c6x/c6x.c: Likewise.
29593 * config/cr16/cr16.c: Likewise.
29594 * config/cris/cris.c: Likewise.
29595 * config/darwin-c.c: Likewise.
29596 * config/darwin.c: Likewise.
29597 * config/default-c.c: Likewise.
29598 * config/epiphany/epiphany.c: Likewise.
29599 * config/epiphany/mode-switch-use.c: Likewise.
29600 * config/epiphany/resolve-sw-modes.c: Likewise.
29601 * config/fr30/fr30.c: Likewise.
29602 * config/frv/frv.c: Likewise.
29603 * config/ft32/ft32.c: Likewise.
29604 * config/glibc-c.c: Likewise.
29605 * config/h8300/h8300.c: Likewise.
29606 * config/i386/i386-c.c: Likewise.
29607 * config/i386/i386.c: Likewise.
29608 * config/i386/msformat-c.c: Likewise.
29609 * config/i386/winnt-cxx.c: Likewise.
29610 * config/i386/winnt-stubs.c: Likewise.
29611 * config/i386/winnt.c: Likewise.
29612 * config/ia64/ia64-c.c: Likewise.
29613 * config/ia64/ia64.c: Likewise.
29614 * config/iq2000/iq2000.c: Likewise.
29615 * config/lm32/lm32.c: Likewise.
29616 * config/m32c/m32c-pragma.c: Likewise.
29617 * config/m32c/m32c.c: Likewise.
29618 * config/m32r/m32r.c: Likewise.
29619 * config/m68k/m68k.c: Likewise.
29620 * config/mcore/mcore.c: Likewise.
29621 * config/mep/mep-pragma.c: Likewise.
29622 * config/mep/mep.c: Likewise.
29623 * config/microblaze/microblaze-c.c: Likewise.
29624 * config/microblaze/microblaze.c: Likewise.
29625 * config/mips/mips.c: Likewise.
29626 * config/mmix/mmix.c: Likewise.
29627 * config/mn10300/mn10300.c: Likewise.
29628 * config/moxie/moxie.c: Likewise.
29629 * config/msp430/msp430-c.c: Likewise.
29630 * config/msp430/msp430.c: Likewise.
29631 * config/nds32/nds32-cost.c: Likewise.
29632 * config/nds32/nds32-fp-as-gp.c: Likewise.
29633 * config/nds32/nds32-intrinsic.c: Likewise.
29634 * config/nds32/nds32-isr.c: Likewise.
29635 * config/nds32/nds32-md-auxiliary.c: Likewise.
29636 * config/nds32/nds32-memory-manipulation.c: Likewise.
29637 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
29638 * config/nds32/nds32-predicates.c: Likewise.
29639 * config/nds32/nds32.c: Likewise.
29640 * config/nios2/nios2.c: Likewise.
29641 * config/nvptx/nvptx.c: Likewise.
29642 * config/pa/pa.c: Likewise.
29643 * config/pdp11/pdp11.c: Likewise.
29644 * config/rl78/rl78-c.c: Likewise.
29645 * config/rl78/rl78.c: Likewise.
29646 * config/rs6000/rs6000-c.c: Likewise.
29647 * config/rs6000/rs6000.c: Likewise.
29648 * config/rx/rx.c: Likewise.
29649 * config/s390/s390-c.c: Likewise.
29650 * config/s390/s390.c: Likewise.
29651 * config/sh/sh-c.c: Likewise.
29652 * config/sh/sh-mem.cc: Likewise.
29653 * config/sh/sh.c: Likewise.
29654 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
29655 * config/sh/sh_treg_combine.cc: Likewise.
29656 * config/sol2-c.c: Likewise.
29657 * config/sol2-cxx.c: Likewise.
29658 * config/sol2-stubs.c: Likewise.
29659 * config/sol2.c: Likewise.
29660 * config/sparc/sparc-c.c: Likewise.
29661 * config/sparc/sparc.c: Likewise.
29662 * config/spu/spu-c.c: Likewise.
29663 * config/spu/spu.c: Likewise.
29664 * config/stormy16/stormy16.c: Likewise.
29665 * config/tilegx/mul-tables.c: Likewise.
29666 * config/tilegx/tilegx-c.c: Likewise.
29667 * config/tilegx/tilegx.c: Likewise.
29668 * config/tilepro/mul-tables.c: Likewise.
29669 * config/tilepro/tilepro-c.c: Likewise.
29670 * config/tilepro/tilepro.c: Likewise.
29671 * config/v850/v850-c.c: Likewise.
29672 * config/v850/v850.c: Likewise.
29673 * config/vax/vax.c: Likewise.
29674 * config/visium/visium.c: Likewise.
29675 * config/vms/vms-c.c: Likewise.
29676 * config/vms/vms.c: Likewise.
29677 * config/vxworks.c: Likewise.
29678 * config/winnt-c.c: Likewise.
29679 * config/xtensa/xtensa.c: Likewise.
29680 * common/config/bfin/bfin-common.c: Likewise.
29681
29682 2015-06-04 Jan Hubicka <hubicka@ucw.cz>
29683
29684 * tree.h (tree_code_for_canonical_type_merging): New function.
29685 * tree.c (gimple_canonical_types_compatible_p): Use
29686 tree_code_for_canonical_type_merging..
29687
29688 2015-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29689
29690 PR c++/66192
29691 PR target/66200
29692 * doc/tm.texi: Regenerate.
29693 * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
29694 * target.def (TARGET_RELAXED_ORDERING): Likewise.
29695 * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
29696 * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
29697 * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
29698 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
29699 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
29700 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
29701 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
29702
29703 2015-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29704
29705 * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
29706 register fma steering pass.
29707 * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
29708 AARCH64_TUNE_FMA_STEERING.
29709
29710 2015-06-03 Jan Hubicka <hubicka@ucw.cz>
29711
29712 * tree.c (verify_type_variant): Verify that type and variant is
29713 compatible.
29714 (gimple_canonical_types_compatible_p): Look for main variants.
29715
29716 2015-06-03 Michael Meissner <meissner@linux.vnet.ibm.com>
29717
29718 * config.gcc (powerpc*-*-*): Add support for a new configure
29719 option --with-advance-toolchain=<xxx> which overrides using the
29720 default header files, libraries and dynamic linker.
29721
29722 * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
29723 specs to support the configure --with-advance-toolchain=<xxx>
29724 option.
29725 (INCLUDE_EXTRA_SPEC): Likewise.
29726 (LINK_OS_EXTRA_SPEC32): Likewise.
29727 (LINK_OK_EXTRA_SPEC64): Likewise.
29728 (LINK_OS_NEW_DTAGS_SPEC): Likewise.
29729 (DYNAMIC_LINKER_PREFIX): Likewise.
29730 (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
29731 toolchain support.
29732 (GLIBC_DYNAMIC_LINKER32): Likewise.
29733 (GLIBC_DYNAMIC_LINKER64): Likewise.
29734 (LINK_OS_LINUX_SPEC32): Likewise.
29735 (LINK_OS_LINUX_SPEC64): Likewise.
29736
29737 * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
29738 configuration option.
29739
29740 2015-06-03 Uros Bizjak <ubizjak@gmail.com>
29741
29742 PR target/66275
29743 * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
29744 to determine current function ABI.
29745 (ix86_function_value_regno_p): Ditto.
29746
29747 2015-06-03 Martin Liska <mliska@suse.cz>
29748
29749 * alloc-pool.h (struct pool_usage): Correct GNU coding style.
29750 * bitmap.h (struct bitmap_usage): Likewise.
29751 * ggc-common.c (struct ggc_usage): Likewise.
29752 * mem-stats.h (struct mem_location): Likewise.
29753 (struct mem_usage): Likewise.
29754 * vec.c (struct vec_usage): Likewise.
29755
29756 2015-06-03 Benigno B. Junior <bbj@gentoo.org>
29757
29758 * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
29759 -Bsymbolic.
29760
29761 2015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
29762
29763 * doc/plugins.texi (enum plugin_event): New event.
29764 * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
29765 and PLUGIN_FINISH_FUNCTION.
29766 * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
29767 (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
29768
29769 2015-06-03 Richard Biener <rguenther@suse.de>
29770
29771 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
29772 compute GROUP_GAP for the first element.
29773 * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
29774 on in-group gaps.
29775
29776 2015-06-03 Nick Clifton <nickc@redhat.com>
29777
29778 * config/rl78/rl78-real.md: Add peepholes to avoid a register
29779 copy when calling a function.
29780 * config/rl78/rl78.c (need_to_save): Do not push the frame
29781 pointer in an interrupt handler prologue if it is never used.
29782
29783 2015-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29784
29785 * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
29786
29787 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
29788
29789 * ipa-chkp.c (chkp_maybe_create_clone): Create alias
29790 reference when cloning alias node.
29791
29792 2015-06-03 Martin Liska <mliska@suse.cz>
29793
29794 * alloc-pool.h (struct pool_usage): Correct space padding.
29795 * ggc-page.c (ggc_print_statistics): Align columns in a report.
29796 * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
29797 * tree.c (dump_tree_statistics): Align columns in a report.
29798
29799 2015-06-03 Martin Liska <mliska@suse.cz>
29800
29801 * alloc-pool.c (allocate_pool_descriptor): Remove.
29802 (struct pool_output_info): Likewise.
29803 (print_alloc_pool_statistics): Likewise.
29804 (dump_alloc_pool_statistics): Likewise.
29805 * alloc-pool.h (struct pool_usage): New struct.
29806 (pool_allocator::initialize): Change usage of memory statistics
29807 to a new interface.
29808 (pool_allocator::release): Likewise.
29809 (pool_allocator::allocate): Likewise.
29810 (pool_allocator::remove): Likewise.
29811 * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
29812 for a pool allocator.
29813 * mem-stats.h (struct mem_location): Add new ctor.
29814 (struct mem_usage): Add counter for number of
29815 instances.
29816 (mem_alloc_description::register_descriptor): New overload of
29817 * mem-stats.h (mem_location::to_string): New function.
29818 * bitmap.h (struct bitmap_usage): Use this new function.
29819 * ggc-common.c (struct ggc_usage): Likewise.
29820 the function.
29821
29822 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
29823
29824 * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
29825 of GCC_INSN_FLAGS_H block.
29826
29827 2015-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
29828
29829 * explow.c (plus_constant): Update check after force_const_mem call
29830 to see if the value returned is not a NULL_RTX.
29831
29832 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
29833
29834 * ipa.c (symbol_table::remove_unreachable_nodes): Don't
29835 remove instumentation thunks calling reachable functions.
29836 * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
29837 * lto/lto-partition.c (privatize_symbol_name_1): New.
29838 (privatize_symbol_name): Privatize both decl and orig_decl
29839 names for instrumented functions.
29840 * cgraph.c (cgraph_node::verify_node): Add transparent
29841 alias chain check for instrumented node.
29842
29843 2015-06-03 Marek Polacek <polacek@redhat.com>
29844
29845 PR c/64223
29846 PR c/29358
29847 * tree.c (attribute_value_equal): Handle attribute format.
29848 (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
29849
29850 2015-06-03 Richard Biener <rguenther@suse.de>
29851
29852 PR tree-optimization/63916
29853 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
29854 Forward-propagate non-invariant addresses by splicing their
29855 reference ops if the result isn't going to be used by PRE.
29856 (vn_reference_lookup_3): Remove pointless assert.
29857
29858 2015-06-03 Richard Biener <rguenther@suse.de>
29859
29860 PR tree-optimization/66375
29861 * tree-scalar-evolution.c (follow_ssa_edge_binary): First
29862 add to the evolution before following SSA edges.
29863
29864 2015-06-03 Bin Cheng <bin.cheng@arm.com>
29865
29866 * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
29867 (dump_use, dump_cand, find_induction_variables): Pass new argument
29868 to dump_iv.
29869 (record_use): Preserve the ssa name information in IV.
29870
29871 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
29872
29873 * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
29874 NO_MODE_TEST.
29875 (add_mode_tests): Don't add mode tests if the predicate only
29876 accepts scalar constant integers. Otherwise, allow the mode
29877 of "op" to be VOIDmode if the predicate does accept such integers.
29878
29879 2015-06-02 Jim Wilson <jim.wilson@linaro.org>
29880
29881 PR target/66258
29882 * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
29883 !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
29884 (aarch64_secondary_reload): Likewise
29885 (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
29886 to !TARGET_FLOAT.
29887 (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
29888 Likewise.
29889
29890 2015-06-03 Kugan Vivekanandarajah <kuganv@linaro.org>
29891 Zhenqiang Chen <zhenqiang.chen@linaro.org>
29892
29893 PR target/65768
29894 * cprop.c (try_replace_reg): Check cost of constants before propagating.
29895
29896 2015-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
29897
29898 * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
29899 provide access to the IBM extended double floating point mode if
29900 long double is IEEE 128-bit floating point.
29901 (KFmode): Define KFmode to provide access to IEEE 128-bit floating
29902 point if long double is the IBM extended double type.
29903
29904 * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
29905 enable adding IEEE 128-bit floating point support.
29906 (-mfloat128-software): Likewise.
29907 (-mfloat128-sw): Likewise.
29908
29909 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
29910 128-bit floating point types to occupy any register if
29911 -mlong-double-64. Do not allow use of IFmode/KFmode unless
29912 -mfloat128-software is enabled.
29913 (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
29914 support.
29915 (rs6000_option_override_internal): Add -mfloat128-* support.
29916 (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
29917
29918 * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
29919 and float128 type nodes.
29920 (ieee128_float_type_node): Likewise.
29921 (ibm128_float_type_node): Likewise.
29922
29923 2015-06-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
29924
29925 PR target/66136
29926 * config/aarch64/geniterators.sh: Rewrite in awk.
29927
29928 2015-06-02 Martin Liska <mliska@suse.cz>
29929
29930 * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
29931 values to avoid -Wmaybe-uninitialized errors.
29932
29933 2015-06-02 Richard Biener <rguenther@suse.de>
29934
29935 PR debug/65549
29936 * dwarf2out.c (lookup_context_die): New function.
29937 (resolve_addr): Avoid forcing a full DIE for the
29938 target of a DW_TAG_GNU_call_site during late compilation.
29939 Instead create a stub DIE without a type if we have a
29940 context DIE present.
29941
29942 2015-06-02 Uros Bizjak <ubizjak@gmail.com>
29943
29944 * df-scan.c (df_scan_start_dump): Add space between regno and regname.
29945
29946 2015-06-02 Bin Cheng <bin.cheng@arm.com>
29947
29948 PR tree-optimization/48052
29949 * cfgloop.h (struct control_iv): New.
29950 (struct loop): New field control_ivs.
29951 * tree-ssa-loop-niter.c : Include "stor-layout.h".
29952 (number_of_iterations_lt): Set no_overflow information.
29953 (number_of_iterations_exit): Init control iv in niter struct.
29954 (record_control_iv): New.
29955 (estimate_numbers_of_iterations_loop): Call record_control_iv.
29956 (loop_exits_before_overflow): New. Interface factored out of
29957 scev_probably_wraps_p.
29958 (scev_probably_wraps_p): Factor loop niter related code into
29959 loop_exits_before_overflow.
29960 (free_numbers_of_iterations_estimates_loop): Free control ivs.
29961 * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
29962
29963 2015-06-02 Eric Botcazou <ebotcazou@adacore.com>
29964
29965 * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
29966 the target doesn't belong to the current function.
29967
29968 2015-06-02 Marek Polacek <polacek@redhat.com>
29969
29970 PR middle-end/66345
29971 * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
29972 get_maxval_strlen does not produce an INTEGER_CST.
29973
29974 2015-06-02 Richard Sandiford <richard.sandiford@arm.com>
29975
29976 * config/arc/constraints.md: Use lower-case names in match_code.
29977 * config/mmix/constraints.md: Likewise.
29978
29979 2015-06-02 Richard Biener <rguenther@suse.de>
29980
29981 PR tree-optimization/65961
29982 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
29983 check and clarify dump message.
29984 (vect_build_slp_tree): If all children are built up from scalars
29985 build up the parent from scalars instead.
29986 * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
29987
29988 2015-06-02 Jan Kratochvil <jan.kratochvil@redhat.com>
29989
29990 PR other/65366
29991 * gdbhooks.py: Use int(...) instead of long(...). Use print(...)
29992 instead of print ... .
29993
29994 2015-06-02 Alan Modra <amodra@gmail.com>
29995
29996 * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
29997 2014-08-11 change.
29998
29999 2015-06-02 Bin Cheng <bin.cheng@arm.com>
30000
30001 PR tree-optimization/52563
30002 PR tree-optimization/62173
30003 * tree-ssa-loop-ivopts.c (struct iv): New field. Reorder fields.
30004 (alloc_iv, set_iv): New parameter.
30005 (determine_biv_step): Delete.
30006 (find_bivs): Inline original determine_biv_step. Pass new
30007 argument to set_iv.
30008 (idx_find_step): Use no_overflow information for conversion.
30009 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
30010 resolve_mixers handle folded_casts.
30011 (instantiate_scev_name): Change bool parameter to bool pointer.
30012 (instantiate_scev_poly, instantiate_scev_binary): Ditto.
30013 (instantiate_array_ref, instantiate_scev_not): Ditto.
30014 (instantiate_scev_3, instantiate_scev_2): Ditto.
30015 (instantiate_scev_1, instantiate_scev_r): Ditto.
30016 (instantiate_scev_convert, ): Change parameter. Pass argument
30017 to chrec_convert_aggressive.
30018 (instantiate_scev): Change argument.
30019 (resolve_mixers): New parameter and set it.
30020 (scev_const_prop): New argument.
30021 * tree-scalar-evolution.h (resolve_mixers): New parameter.
30022 * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
30023 of chrec_conert_1.
30024 (chrec_convert): New parameter. Move definition below.
30025 (chrec_convert_aggressive): New parameter and set it. Call
30026 convert_affine_scev.
30027 * tree-chrec.h (chrec_convert): New parameter.
30028 (chrec_convert_aggressive): Ditto.
30029
30030 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
30031
30032 * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
30033 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
30034 the LHS of a no-return call if its type has variable size.
30035 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
30036 * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
30037
30038 2015-06-01 Andreas Tobler <andreast@gcc.gnu.org>
30039
30040 * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
30041 * config.in: Regenerate.
30042
30043 2015-06-01 Yuri Rumyantsev <ysrumyan@gmail.com>
30044
30045 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
30046 consecutive accesses within outer-loop with force_vectorize
30047 for references with zero step in inner-loop.
30048
30049 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
30050
30051 * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
30052 rather than from gcc/build directory.
30053
30054 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
30055
30056 PR target/65697
30057 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
30058 for __sync memory models, emit initial loads and final barriers as
30059 appropriate.
30060
30061 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
30062
30063 PR target/65697
30064 * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
30065 (aarch64_split_atomic_op): Check for __sync memory models, emit
30066 appropriate initial loads and final barriers.
30067
30068 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
30069
30070 * Makefile.in: Fix gcov dependencies that should
30071 not point to a build folder.
30072
30073 2015-06-01 Richard Biener <rguenther@suse.de>
30074
30075 Revert
30076 2015-05-29 Richard Biener <rguenther@suse.de>
30077
30078 PR tree-optimization/66314
30079 * tree-ssa-threadupdate.c (create_block_for_threading): Add
30080 parameter that says which loop the new block belongs to.
30081 (ssa_create_duplicates): Blocks duplicated for the threaded
30082 path belong to the loop of the thread destination.
30083
30084 2015-06-01 Martin Liska <mliska@suse.cz>
30085
30086 * sched-deps.c: Include pool-alloc.h before
30087 cselib.h header file is included.
30088
30089 2015-06-01 Richard Biener <rguenther@suse.de>
30090
30091 * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
30092 functions.
30093
30094 2015-06-01 Martin Liska <mliska@suse.cz>
30095
30096 * alloc-pool.h: Add ATTRIBUTE_UNUSED for
30097 a function local variable.
30098
30099 2015-06-01 Martin Liska <mliska@suse.cz>
30100
30101 * alloc-pool.c (create_alloc_pool): Remove.
30102 (empty_alloc_pool): Likewise.
30103 (free_alloc_pool): Likewise.
30104 (free_alloc_pool_if_empty): Likewise.
30105 (pool_alloc): Likewise.
30106 (pool_free): Likewise.
30107 * alloc-pool.h: Remove old declarations.
30108
30109 2015-06-01 Martin Liska <mliska@suse.cz>
30110
30111 * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
30112 (ira_create_object): Likewise.
30113 (ira_create_allocno): Likewise.
30114 (ira_create_live_range): Likewise.
30115 (copy_live_range): Likewise.
30116 (ira_finish_live_range): Likewise.
30117 (ira_free_allocno_costs): Likewise.
30118 (finish_allocno): Likewise.
30119 (finish_allocnos): Likewise.
30120 (initiate_prefs): Likewise.
30121 (ira_create_pref): Likewise.
30122 (finish_pref): Likewise.
30123 (finish_prefs): Likewise.
30124 (initiate_copies): Likewise.
30125 (ira_create_copy): Likewise.
30126 (finish_copy): Likewise.
30127 (finish_copies): Likewise.
30128 (finish_prefs): Likewise.
30129
30130 2015-06-01 Martin Liska <mliska@suse.cz>
30131
30132 * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
30133 (allocate_and_init_ipcp_value): Likewise.
30134 (ipcp_lattice::add_value): Likewise.
30135 (merge_agg_lats_step): Likewise.
30136 (ipcp_driver): Likewise.
30137 * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
30138 (ipa_free_all_structures_after_iinln): Likewise.
30139 * ipa-prop.h: Likewise.
30140
30141 2015-06-01 Martin Liska <mliska@suse.cz>
30142
30143 * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
30144 pool allocator.
30145 (set_hint_predicate): Likewise.
30146 (inline_summary_alloc): Likewise.
30147 (reset_inline_edge_summary): Likewise.
30148 (reset_inline_summary): Likewise.
30149 (set_cond_stmt_execution_predicate): Likewise.
30150 (set_switch_stmt_execution_predicate): Likewise.
30151 (compute_bb_predicates): Likewise.
30152 (estimate_function_body_sizes): Likewise.
30153 (inline_free_summary): Likewise.
30154
30155 2015-06-01 Martin Liska <mliska@suse.cz>
30156
30157 * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
30158 (ipa_edge_duplication_hook): Likewise.
30159 (ipa_free_all_structures_after_ipa_cp): Likewise.
30160 (ipa_free_all_structures_after_iinln): Likewise.
30161
30162 2015-06-01 Martin Liska <mliska@suse.cz>
30163
30164 * ipa-profile.c (account_time_size): Use new type-based pool allocator.
30165 (ipa_profile_generate_summary): Likewise.
30166 (ipa_profile_read_summary): Likewise.
30167 (ipa_profile): Likewise.
30168
30169 2015-06-01 Martin Liska <mliska@suse.cz>
30170
30171 * tree-ssa-structalias.c (new_var_info): Use new type-based
30172 pool allocator.
30173 (new_constraint): Likewise.
30174 (init_alias_vars): Likewise.
30175 (delete_points_to_sets): Likewise.
30176
30177 2015-06-01 Martin Liska <mliska@suse.cz>
30178
30179 * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
30180 (free_strinfo): Likewise.
30181 (pass_strlen::execute): Likewise.
30182
30183 2015-06-01 Martin Liska <mliska@suse.cz>
30184
30185 * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
30186 pool allocator.
30187 (vn_reference_insert_pieces): Likewise.
30188 (vn_phi_insert): Likewise.
30189 (visit_reference_op_call): Likewise.
30190 (copy_phi): Likewise.
30191 (copy_reference): Likewise.
30192 (process_scc): Likewise.
30193 (allocate_vn_table): Likewise.
30194 (free_vn_table): Likewise.
30195
30196 2015-06-01 Martin Liska <mliska@suse.cz>
30197
30198 * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
30199 pool allocator.
30200 (add_repeat_to_ops_vec): Likewise.
30201 (get_ops): Likewise.
30202 (maybe_optimize_range_tests): Likewise.
30203 (init_reassoc): Likewise.
30204 (fini_reassoc): Likewise.
30205
30206 2015-06-01 Martin Liska <mliska@suse.cz>
30207
30208 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
30209 pool allocator.
30210 (bitmap_set_new): Likewise.
30211 (get_or_alloc_expr_for_constant): Likewise.
30212 (get_or_alloc_expr_for): Likewise.
30213 (phi_translate_1): Likewise.
30214 (compute_avail): Likewise.
30215 (init_pre): Likewise.
30216 (fini_pre): Likewise.
30217
30218 2015-06-01 Martin Liska <mliska@suse.cz>
30219
30220 * sched-deps.c (create_dep_node): Use new type-based pool allocator.
30221 (delete_dep_node): Likewise.
30222 (create_deps_list): Likewise.
30223 (free_deps_list): Likewise.
30224 (sched_deps_init): Likewise.
30225 (sched_deps_finish): Likewise.
30226
30227 2015-06-01 Martin Liska <mliska@suse.cz>
30228
30229 * regcprop.c (free_debug_insn_changes): Use new type-based
30230 pool allocator.
30231 (replace_oldest_value_reg): Likewise.
30232 (pass_cprop_hardreg::execute): Likewise.
30233
30234 2015-06-01 Martin Liska <mliska@suse.cz>
30235
30236 * ira-build.c (initiate_cost_vectors): Use new type-based
30237 pool allocator.
30238 (ira_allocate_cost_vector): Likewise.
30239 (ira_free_cost_vector): Likewise.
30240 (finish_cost_vectors): Likewise.
30241
30242 2015-06-01 Martin Liska <mliska@suse.cz>
30243
30244 * sel-sched-ir.c (alloc_sched_pools): Use new type-based
30245 pool allocator.
30246 (free_sched_pools): Likewise.
30247 * sel-sched-ir.h (_list_alloc): Likewise.
30248 (_list_remove): Likewise.
30249
30250 2015-06-01 Martin Liska <mliska@suse.cz>
30251
30252 * stmt.c (add_case_node): Use new type-based pool allocator.
30253 (expand_case): Likewise.
30254 (expand_sjlj_dispatch_table): Likewise.
30255
30256 2015-06-01 Martin Liska <mliska@suse.cz>
30257
30258 * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
30259 (free_bb): Likewise.
30260 (pass_cse_reciprocals::execute): Likewise.
30261
30262 2015-06-01 Martin Liska <mliska@suse.cz>
30263
30264 * tree-sra.c (sra_initialize): Use new type-based pool allocator.
30265 (sra_deinitialize) Likewise.
30266 (create_access_1) Likewise.
30267 (build_accesses_from_assign) Likewise.
30268 (create_artificial_child_access) Likewise.
30269
30270 2015-06-01 Martin Liska <mliska@suse.cz>
30271
30272 * dse.c (get_group_info):Use new type-based pool allocator.
30273 (dse_step0) Likewise.
30274 (free_store_info) Likewise.
30275 (delete_dead_store_insn) Likewise.
30276 (free_read_records) Likewise.
30277 (record_store) Likewise.
30278 (replace_read) Likewise.
30279 (check_mem_read_rtx) Likewise.
30280 (scan_insn) Likewise.
30281 (dse_step1) Likewise.
30282 (dse_step7) Likewise.
30283
30284 2015-06-01 Martin Liska <mliska@suse.cz>
30285
30286 * df-scan.c (struct df_scan_problem_data):Use new type-based
30287 pool allocator.
30288 (df_scan_free_internal) Likewise.
30289 (df_scan_alloc) Likewise.
30290 (df_grow_reg_info) Likewise.
30291 (df_free_ref) Likewise.
30292 (df_insn_create_insn_record) Likewise.
30293 (df_mw_hardreg_chain_delete) Likewise.
30294 (df_insn_info_delete) Likewise.
30295 (df_free_collection_rec) Likewise.
30296 (df_mw_hardreg_chain_delete_eq_uses) Likewise.
30297 (df_sort_and_compress_mws) Likewise.
30298 (df_ref_create_structure) Likewise.
30299 (df_ref_record) Likewise.
30300
30301 2015-06-01 Martin Liska <mliska@suse.cz>
30302
30303 * df-problems.c (df_chain_create):Use new type-based pool allocator.
30304 (df_chain_unlink_1) Likewise.
30305 (df_chain_unlink) Likewise.
30306 (df_chain_remove_problem) Likewise.
30307 (df_chain_alloc) Likewise.
30308 (df_chain_free) Likewise.
30309 * df.h (struct dataflow) Likewise.
30310
30311 2015-06-01 Martin Liska <mliska@suse.cz>
30312
30313 * cselib.c (new_elt_list):Use new type-based pool allocator.
30314 (new_elt_loc_list) Likewise.
30315 (unchain_one_elt_list) Likewise.
30316 (unchain_one_elt_loc_list) Likewise.
30317 (unchain_one_value) Likewise.
30318 (new_cselib_val) Likewise.
30319 (cselib_init) Likewise.
30320 (cselib_finish) Likewise.
30321
30322 2015-06-01 Martin Liska <mliska@suse.cz>
30323
30324 * config/sh/sh.c (add_constant):Use new type-based pool allocator.
30325 (sh_reorg) Likewise.
30326
30327 2015-06-01 Martin Liska <mliska@suse.cz>
30328
30329 * cfg.c (initialize_original_copy_tables):Use new type-based
30330 pool allocator.
30331 (free_original_copy_tables) Likewise.
30332 (copy_original_table_clear) Likewise.
30333 (copy_original_table_set) Likewise.
30334
30335 2015-06-01 Martin Liska <mliska@suse.cz>
30336
30337 * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
30338 pool allocator.
30339 (asan_mem_ref_new) Likewise.
30340 (free_mem_ref_resources) Likewise.
30341
30342 2015-06-01 Martin Liska <mliska@suse.cz>
30343
30344 * var-tracking.c (variable_htab_free):Use new type-based
30345 pool allocator.
30346 (attrs_list_clear) Likewise.
30347 (attrs_list_insert) Likewise.
30348 (attrs_list_copy) Likewise.
30349 (shared_hash_unshare) Likewise.
30350 (shared_hash_destroy) Likewise.
30351 (unshare_variable) Likewise.
30352 (var_reg_delete_and_set) Likewise.
30353 (var_reg_delete) Likewise.
30354 (var_regno_delete) Likewise.
30355 (drop_overlapping_mem_locs) Likewise.
30356 (variable_union) Likewise.
30357 (insert_into_intersection) Likewise.
30358 (canonicalize_values_star) Likewise.
30359 (variable_merge_over_cur) Likewise.
30360 (dataflow_set_merge) Likewise.
30361 (remove_duplicate_values) Likewise.
30362 (variable_post_merge_new_vals) Likewise.
30363 (dataflow_set_preserve_mem_locs) Likewise.
30364 (dataflow_set_remove_mem_locs) Likewise.
30365 (variable_from_dropped) Likewise.
30366 (variable_was_changed) Likewise.
30367 (set_slot_part) Likewise.
30368 (clobber_slot_part) Likewise.
30369 (delete_slot_part) Likewise.
30370 (loc_exp_insert_dep) Likewise.
30371 (notify_dependents_of_changed_value) Likewise.
30372 (emit_notes_for_differences_1) Likewise.
30373 (vt_emit_notes) Likewise.
30374 (vt_initialize) Likewise.
30375 (vt_finalize) Likewise.
30376
30377 2015-06-01 Martin Liska <mliska@suse.cz>
30378
30379 * ira-color.c (init_update_cost_records):Use new type-based
30380 pool allocator.
30381 (get_update_cost_record) Likewise.
30382 (free_update_cost_record_list) Likewise.
30383 (finish_update_cost_records) Likewise.
30384 (initiate_cost_update) Likewise.
30385
30386 2015-06-01 Martin Liska <mliska@suse.cz>
30387
30388 * lra.c (init_insn_regs): Use new type-based pool allocator.
30389 (new_insn_reg) Likewise.
30390 (free_insn_reg) Likewise.
30391 (free_insn_regs) Likewise.
30392 (finish_insn_regs) Likewise.
30393 (init_insn_recog_data) Likewise.
30394 (init_reg_info) Likewise.
30395 (finish_reg_info) Likewise.
30396 (lra_free_copies) Likewise.
30397 (lra_create_copy) Likewise.
30398 (invalidate_insn_data_regno_info) Likewise.
30399
30400 2015-06-01 Martin Liska <mliska@suse.cz>
30401
30402 * lra-lives.c (free_live_range): Use new type-based pool allocator.
30403 (free_live_range_list) Likewise.
30404 (create_live_range) Likewise.
30405 (copy_live_range) Likewise.
30406 (lra_merge_live_ranges) Likewise.
30407 (remove_some_program_points_and_update_live_ranges) Likewise.
30408 (lra_live_ranges_init) Likewise.
30409 (lra_live_ranges_finish) Likewise.
30410
30411 2015-06-01 Martin Liska <mliska@suse.cz>
30412
30413 * et-forest.c (et_new_occ): Use new type-based pool allocator.
30414 (et_new_tree): Likewise.
30415 (et_free_tree): Likewise.
30416 (et_free_tree_force): Likewise.
30417 (et_free_pools): Likewise.
30418 (et_split): Likewise.
30419
30420 2015-06-01 Martin Liska <mliska@suse.cz>
30421
30422 * alloc-pool.c (struct alloc_pool_descriptor): Move definition
30423 to header file.
30424 * alloc-pool.h (pool_allocator::pool_allocator): New function.
30425 (pool_allocator::release): Likewise.
30426 (inline pool_allocator::release_if_empty): Likewise.
30427 (inline pool_allocator::~pool_allocator): Likewise.
30428 (pool_allocator::allocate): Likewise.
30429 (pool_allocator::remove): Likewise.
30430
30431 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
30432
30433 * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
30434 in comment.
30435
30436 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
30437
30438 * config/arm/arm-protos.h (tune_params): Rename fuseable_ops
30439 to fusible_ops.
30440 * config/arm/arm.c (arm_print_tune_info): Likewise.
30441 (arm_macro_fusion_p): Likewise.
30442 (arm_macro_fusion_pair_p): Likewise.
30443
30444 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
30445
30446 * config/aarch64/aarch64-protos.h (tune_params): Rename
30447 fuseable_ops to fusible_ops.
30448 * config/aarch64/aarch64.c (generic_tunings): Rename
30449 fuseable_ops to fusible_ops.
30450 (cortexa53_tunings): Likewise.
30451 (cortexa57_tunings): Likewise.
30452 (thunderx_tunings): Likewise.
30453 (xgene1_tunings): Likewise.
30454 (aarch64_macro_fusion_p): Likewise.
30455 (aarch64_macro_fusion_pair_p): Likewise.
30456
30457 2015-06-01 Dominik Vogt <vogt@linux.vnet.ibm.com>
30458
30459 * config/s390/driver-native.c: New file.
30460 * config/s390/x-native: New file.
30461 * config.host: Add new files for s390.
30462 * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
30463 and -march=native
30464 * config.gcc: Likewise.
30465 * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
30466 * config/s390/s390-opts.h (enum processor_type): Ditto.
30467 * config/s390/s390.c (s390_option_override): Catch unhandled
30468 PROCESSOR_NATIVE
30469
30470 2015-06-01 Ilya Enkovich <ilya.enkovich@intel.com>
30471
30472 PR target/65527
30473 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
30474 redirection for instrumented calls.
30475 * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
30476 (append_compiler_options): Append -fcheck-pointer-bounds.
30477 * tree-chkp.h (chkp_copy_call_skip_bounds): New.
30478 (chkp_redirect_edge): New.
30479 * tree-chkp.c (chkp_copy_call_skip_bounds): New.
30480 (chkp_redirect_edge): New.
30481
30482 2015-06-01 Richard Biener <rguenther@suse.de>
30483
30484 PR tree-optimization/66280
30485 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
30486 def-use walking.
30487
30488 2015-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30489
30490 * config/aarch64/aarch64.md
30491 (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
30492 logic_shift_imm.
30493
30494 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
30495
30496 * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
30497 Remove obsolete kludge.
30498
30499 2015-06-01 Richard Biener <rguenther@suse.de>
30500
30501 * tree-ssa-reassoc.c (get_rank): Simplify.
30502
30503 2015-05-31 H.J. Lu <hongjiu.lu@intel.com>
30504
30505 * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
30506 * configure: Regenerated.
30507
30508 2015-05-31 Mikhail Maltsev <maltsevm@gmail.com>
30509
30510 * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
30511 issue (add space between string literal and macro).
30512 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
30513
30514 2015-05-30 Andreas Schwab <schwab@linux-m68k.org>
30515
30516 * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
30517 implict or explicit -fPIE or -fpie.
30518
30519 2015-05-30 Mike Frysinger <vapier@gentoo.org>
30520
30521 * config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
30522
30523 2015-05-28 DJ Delorie <dj@redhat.com>
30524
30525 * expmed.c (extract_bit_field_1): Avoid clobbering a
30526 yet-to-be-used base/index register.
30527
30528 2015-05-30 Jan Hubicka <hubicka@ucw.cz>
30529
30530 * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
30531 (alias_stats): Add num_universal.
30532 (alias_set_subset_of): Special case pointers; be ready for NULL
30533 children.
30534 (alias_sets_conflict_p): Special case pointers; be ready for NULL
30535 children.
30536 (init_alias_set_entry): Break out from ...
30537 (record_alias_subset): ... here; propagate new fields;
30538 allocate children only when really needed.
30539 (get_alias_set): Do less generous pointer globbing.
30540 (dump_alias_stats_in_alias_c): Update statistics.
30541
30542 2015-05-30 Alan Modra <amodra@gmail.com>
30543
30544 * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
30545 correct block for use of r12.
30546 (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
30547
30548 2015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
30549
30550 PR target/66215
30551 * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
30552 with -mhotpatch=.
30553
30554 2015-05-29 Jakub Jelinek <jakub@redhat.com>
30555
30556 PR tree-optimization/66142
30557 * tree-if-conv.c (if_convertible_phi_p): Don't give up on
30558 virtual phis that feed themselves.
30559
30560 2015-05-29 Richard Biener <rguenther@suse.de>
30561
30562 PR tree-optimization/66314
30563 * tree-ssa-threadupdate.c (create_block_for_threading): Add
30564 parameter that says which loop the new block belongs to.
30565 (ssa_create_duplicates): Blocks duplicated for the threaded
30566 path belong to the loop of the thread destination.
30567
30568 2015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
30569
30570 * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
30571 to cleanup-saved-temps.
30572 * doc/sourcebuild.texi (Clean up generated test files): Expand
30573 introduction.
30574 (dg-keep-saved-temps): Document new proc.
30575 (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
30576 cleanup-saved-temps): Remove.
30577
30578 2015-05-28 Andreas Tobler <andreast@gcc.gnu.org>
30579
30580 * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
30581 gcc_AC_CHECK_DECLS.
30582 * configure: Regenerate.
30583
30584 2015-05-28 Mike Frysinger <vapier@gentoo.org>
30585
30586 * config/nios2/linux.h (CPP_SPEC): Define.
30587
30588 2015-05-28 Mike Frysinger <vapier@gentoo.org>
30589
30590 * config/microblaze/linux.h (CPP_SPEC): Define.
30591
30592 2015-05-28 Mike Frysinger <vapier@gentoo.org>
30593
30594 * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
30595 -pthread is specified.
30596
30597 2015-05-28 Richard Biener <rguenther@suse.de>
30598
30599 * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
30600 (vect_fixup_scalar_cycles_with_patterns): Likewise.
30601 (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
30602 after pattern recog.
30603 (vect_create_epilog_for_reduction): Properly handle reductions
30604 with patterns.
30605 (vectorizable_reduction): Likewise.
30606 * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
30607 reduction chains.
30608 (vect_get_constant_vectors): Create the correct number of
30609 initial values for reductions.
30610 (vect_schedule_slp_instance): Handle reduction chains that are
30611 type changing properly.
30612 * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
30613
30614 2015-05-28 Richard Biener <rguenther@suse.de>
30615
30616 PR tree-optimization/66142
30617 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
30618 values better in memcpy destination handling. Handle non-aliasing
30619 we discover here.
30620
30621 2015-05-28 Lawrence Velázquez <vq@larryv.me>
30622
30623 PR target/63810
30624 * config/darwin-c.c (version_components): New global enum.
30625 (parse_version, version_as_legacy_macro)
30626 (version_as_modern_macro, macosx_version_as_macro): New functions.
30627 (version_as_macro): Remove.
30628 (darwin_cpp_builtins): Use new function.
30629
30630 2015-05-28 H.J. Lu <hongjiu.lu@intel.com>
30631
30632 * builtins.c (expand_builtin_acc_on_device): Mark parameters
30633 with ATTRIBUTE_UNUSED.
30634
30635 2015-05-28 Julian Brown <julian@codesourcery.com>
30636
30637 PR libgomp/65742
30638
30639 * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
30640 sequence for !ACCEL_COMPILER.
30641
30642 2015-05-28 Nick Clifton <nickc@redhat.com>
30643
30644 * config/rx/rx.c (push_regs): New function. Extracts code from...
30645 (rx_expand_prologue): ... here. Use push_regs to push even small
30646 spans of registers.
30647 (pop_regs): New function.
30648 (rx_expand_epilogue): Use pop_regs to pop even small spans of
30649 registers.
30650
30651 2015-05-28 Richard Biener <rguenther@suse.de>
30652
30653 * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
30654 member.
30655 (SLP_INSTANCE_BODY_COST_VEC): Remove.
30656 (vect_update_slp_costs_according_to_vf): Likewise.
30657 (vect_slp_analyze_operations): Update prototype.
30658 * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
30659 vect_update_slp_costs_according_to_vf, adjust.
30660 * tree-vect-slp.c (vect_free_slp_instance): Adjust.
30661 (vect_analyze_slp_cost_1): Likewise.
30662 (vect_analyze_slp_cost): Likewise. Properly deal with
30663 widening reduction ops. Commit body costs.
30664 (vect_analyze_slp_instance): Adjust. Do not analyze SLP
30665 cost for loops from here.
30666 (vect_slp_analyze_operations): But do it from here when
30667 the vectorization factor is known and stmts are analyzed.
30668 (vect_bb_vectorization_profitable_p): Simplify.
30669 (vect_slp_analyze_bb_1): Do not compute SLP cost here.
30670 (vect_update_slp_costs_according_to_vf): Remove.
30671
30672 2015-05-27 Magnus Granberg <zorry@gentoo.org>
30673 H.J. Lu <hongjiu.lu@intel.com>
30674
30675 * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
30676 (BUILD_CFLAGS): Likewise.
30677 (BUILD_CXXFLAGS): Likewise.
30678 (LINKER): Add @NO_PIE_FLAG@.
30679 (BUILD_LDFLAGS): Likewise.
30680 (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
30681 --enable-default-pie.
30682 * common.opt (fPIE): Initialize to -1.
30683 (fpie): Likewise.
30684 (no-pie): New option.
30685 (pie): Replace "Negative(shared)" with "Negative(no-pie)".
30686 * configure.ac: Add --enable-default-pie.
30687 (NO_PIE_CFLAGS): New. Check if -fno-PIE works. AC_SUBST.
30688 (NO_PIE_FLAG): New. Check if -no-pie works. AC_SUBST.
30689 * defaults.h (DEFAULT_FLAG_PIE): New. Default PIE to -fPIE.
30690 * gcc.c (NO_PIE_SPEC): New.
30691 (PIE_SPEC): Likewise.
30692 (NO_FPIE1_SPEC): Likewise.
30693 (FPIE1_SPEC): Likewise.
30694 (NO_FPIE2_SPEC): Likewise.
30695 (FPIE2_SPEC): Likewise.
30696 (NO_FPIE2_SPEC): Likewise.
30697 (FPIE_SPEC): Likewise.
30698 (NO_FPIE_SPEC): Likewise.
30699 (NO_FPIC1_SPEC): Likewise.
30700 (FPIC1_SPEC): Likewise.
30701 (NO_FPIC2_SPEC): Likewise.
30702 (FPIC2_SPEC): Likewise.
30703 (NO_FPIC2_SPEC): Likewise.
30704 (FPIC_SPEC): Likewise.
30705 (NO_FPIC_SPEC): Likewise.
30706 (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
30707 (FPIE1_OR_FPIC1_SPEC): Likewise.
30708 (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
30709 (FPIE2_OR_FPIC2_SPEC): Likewise.
30710 (NO_FPIE_AND_FPIC_SPEC): Likewise.
30711 (FPIE_OR_FPIC_SPEC): Likewise.
30712 (LD_PIE_SPEC): Likewise.
30713 (LINK_PIE_SPEC): Handle -no-pie. Use PIE_SPEC and LD_PIE_SPEC.
30714 * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
30715 * config/darwin.h (PIE_SPEC): Renamed to ...
30716 (DARWIN_PIE_SPEC): This.
30717 (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
30718 * config/darwin9.h (PIE_SPEC): Renamed to ...
30719 (DARWIN_PIE_SPEC): This.
30720 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
30721 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
30722 * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
30723 FPIE2_OR_FPIC2_SPEC.
30724 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
30725 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
30726 * config/sol2.h (ASM_PIC_SPEC): Likewise.
30727 * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
30728 * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
30729 * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
30730 * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
30731 * config/m32r/m32r.h (ASM_SPEC): Likewise.
30732 * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
30733 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
30734 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
30735 * config/sparc/freebsd.h (ASM_SPEC): Likewise.
30736 * config/sparc/linux.h (ASM_SPEC): Likewise.
30737 * config/sparc/linux64.h (ASM_SPEC): Likewise.
30738 * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
30739 * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
30740 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
30741 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
30742 * config/sparc/sparc.h (ASM_SPEC): Likewise.
30743 * config/sparc/sysv4.h (ASM_SPEC): Likewise.
30744 * config/sparc/vxworks.h (ASM_SPEC): Likewise.
30745 * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
30746 FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
30747 * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
30748 * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
30749 NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
30750 (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
30751 * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
30752 * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
30753 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
30754 * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
30755 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
30756 * config/vax/linux.h (ASM_SPEC): Likewise.
30757 * doc/install.texi: Document --enable-default-pie.
30758 * doc/invoke.texi: Document -no-pie.
30759 * config.in: Regenerated.
30760 * configure: Likewise.
30761
30762 2015-05-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
30763
30764 PR rtl-optimization/66168
30765 * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
30766 can_move_invariant_reg.
30767
30768 2015-05-27 John David Anglin <danglin@gcc.gnu.org>
30769
30770 PR target/66148
30771 * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
30772 REG_EQUAL note when doing insert.
30773
30774 * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
30775 instead of "%d" for 'o' operand.
30776
30777 2015-05-27 Nathan Sidwell <nathan@acm.org>
30778
30779 PR c++/66270
30780 * tree.c (build_pointer_type_for_mode): Canonical type does not
30781 inherit can_alias_all.
30782 (build_reference_type_for_mode): Likewise.
30783
30784 2015-05-27 Eric Botcazou <ebotcazou@adacore.com>
30785
30786 * expr.h (array_at_struct_end_p): Move to...
30787 (array_ref_element_size): Likewise.
30788 (component_ref_field_offset): Likewise.
30789 * tree.h (array_ref_element_size): ...here.
30790 (array_at_struct_end_p): Likewise.
30791 (component_ref_field_offset): Likewise.
30792 * expr.c (array_ref_element_size): Move to...
30793 (array_ref_low_bound): Likewise.
30794 (array_at_struct_end_p): Likewise.
30795 (array_ref_up_bound): Likewise.
30796 (component_ref_field_offset): Likewise.
30797 * tree.c (array_ref_element_size): ...here.
30798 (array_ref_low_bound): Likewise.
30799 (array_ref_up_bound): Likewise.
30800 (array_at_struct_end_p): Likewise.
30801 (component_ref_field_offset): Likewise.
30802
30803 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
30804 Szabolcs Nagy <szabolcs.nagy@arm.com>
30805
30806 * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
30807
30808 2015-05-27 Jason Merrill <jason@redhat.com>
30809
30810 PR bootstrap/66304
30811 * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
30812 ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
30813 ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
30814
30815 2015-05-22 Aditya Kumar <hiraditya@msn.com>
30816
30817 * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
30818 is true.
30819
30820 * statistics.c (statistics_fini_pass): Print pass name.
30821
30822 2015-05-27 Richard Biener <rguenther@suse.de>
30823
30824 PR tree-optimization/66272
30825 Revert parts of
30826 2014-08-15 Richard Biener <rguenther@suse.de>
30827
30828 PR tree-optimization/62031
30829 * tree-data-ref.c (dr_analyze_indices): Do not set
30830 DR_UNCONSTRAINED_BASE.
30831 (dr_may_alias_p): All indirect accesses have to go the
30832 formerly DR_UNCONSTRAINED_BASE path.
30833 * tree-data-ref.h (struct indices): Remove
30834 unconstrained_base member.
30835 (DR_UNCONSTRAINED_BASE): Remove.
30836
30837 2015-05-27 Aldy Hernandez <aldyh@redhat.com>
30838
30839 * dwarf2out.c: Remove block_map.
30840 (gen_call_site_die): Replace block_map use with BLOCK_DIE.
30841 (gen_lexical_block_die): Same.
30842 (dwarf2out_function_decl): Remove block_map use.
30843 (dwarf2out_c_finalize): Same.
30844 * tree-core.h (struct tree_block): Add die field.
30845 * tree.h (BLOCK_DIE): New.
30846
30847 2015-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30848
30849 PR target/65358
30850 * expr.c (memory_load_overlap): New function.
30851 (emit_push_insn): When pushing partial args to the stack would
30852 clobber the register part load the overlapping part into a pseudo
30853 and put it into the hard reg after pushing. Change return type
30854 to bool. Add bool argument.
30855 * expr.h (emit_push_insn): Change return type to bool.
30856 Add bool argument.
30857 * calls.c (expand_call): Cancel sibcall optimization when encountering
30858 partial argument on targets with ARGS_GROW_DOWNWARD and
30859 !STACK_GROWS_DOWNWARD.
30860 (emit_library_call_value_1): Update callsite of emit_push_insn.
30861 (store_one_arg): Likewise.
30862
30863 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
30864
30865 * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
30866
30867 2015-05-27 Martin Liska <mliska@suse.cz>
30868
30869 * Makefile.in: Add additional dependencies related to memory report
30870 enhancement.
30871 * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
30872 * bitmap.c (struct bitmap_descriptor_d): Remove.
30873 (struct loc): Likewise.
30874 (struct bitmap_desc_hasher): Likewise.
30875 (bitmap_desc_hasher::hash): Likewise.
30876 (bitmap_desc_hasher::equal): Likewise.
30877 (get_bitmap_descriptor): Likewise.
30878 (bitmap_register): User new memory descriptor API.
30879 (register_overhead): Likewise.
30880 (bitmap_find_bit): Register nsearches and search_iter statistics.
30881 (struct bitmap_output_info): Remove.
30882 (print_statistics): Likewise.
30883 (dump_bitmap_statistics): Use new memory descriptor.
30884 * bitmap.h (struct bitmap_usage): New class.
30885 * genmatch.c: Extend header file inclusion.
30886 * genpreds.c: Likewise.
30887 * ggc-common.c (struct ggc_usage): New class.
30888 (struct ggc_loc_desc_hasher): Remove.
30889 (ggc_loc_desc_hasher::hash): Likewise.
30890 (ggc_loc_desc_hasher::equal): Likewise.
30891 (struct ggc_ptr_hash_entry): Likewise.
30892 (struct ptr_hash_hasher): Likewise.
30893 (ptr_hash_hasher::hash): Likewise.
30894 (ptr_hash_hasher::equal): Likewise.
30895 (make_loc_descriptor): Likewise.
30896 (ggc_prune_ptr): Likewise.
30897 (dump_ggc_loc_statistics): Use new memory descriptor.
30898 (ggc_record_overhead): Likewise.
30899 (ggc_free_overhead): Likewise.
30900 (final_cmp_statistic): Remove.
30901 (cmp_statistic): Likewise.
30902 (ggc_add_statistics): Liekwise.
30903 (ggc_prune_overhead_list): Likewise.
30904 * hash-map-traits.h: New file.
30905 * hash-map.h (struct default_hashmap_traits): Move the traits to a
30906 separate header file.
30907 * hash-set.h: Pass memory statistics info to ctor.
30908 * hash-table.c (void dump_hash_table_loc_statistics): New function.
30909 * hash-table.h (hash_table::hash_table): Add new ctor arguments.
30910 (hash_table::~hash_table): Register memory release operation.
30911 (hash_table::alloc_entries): Handle memory allocation operation.
30912 (hash_table::expand): Likewise.
30913 * inchash.c (iterative_hash_hashval_t): Move implementation to header
30914 file.
30915 (iterative_hash_host_wide_int): Likewise.
30916 * inchash.h (class hash): Likewise.
30917 * mem-stats-traits.h: New file.
30918 * mem-stats.h: New file.
30919 (mem_location): Add new class.
30920 (mem_usage): Likewise.
30921 (mem_alloc_description): Likewise.
30922 * sese.c: Add new header file inclusision.
30923 * toplev.c (dump_memory_report): Add report for hash_table, hash_map
30924 and hash_set.
30925 * tree-sra.c: Add new header file inclusision.
30926 * vec.c (struct vec_descriptor): Remove.
30927 (hash_descriptor): Likewise.
30928 (struct vec_usage): Likewise.
30929 (struct ptr_hash_entry): Likewise.
30930 (hash_ptr): Likewise.
30931 (eq_ptr): Likewise.
30932 (vec_prefix::register_overhead): Use new memory descriptor API.
30933 (vec_prefix::release_overhead): Likewise.
30934 (add_statistics): Remove.
30935 (dump_vec_loc_statistics): Use new memory descriptor API.
30936 * vec.h (struct vec_prefix): Likewise.
30937 (va_heap::reserve): Likewise.
30938 (va_heap::release): Likewise.
30939 * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
30940
30941 2015-05-27 Richard Biener <rguenther@suse.de>
30942
30943 * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
30944 earlier and remove ??? comment.
30945 (vect_analyze_stmt): If we are analyzing a pure SLP stmt
30946 and got called from loop analysis bail out. Always pass the SLP
30947 node to the vectorizable_* functions.
30948 * tree-vect-loop.c (vect_analyze_loop_operations): Remove
30949 the premature SLP check here.
30950 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
30951 detected SLP stmts.
30952 (vect_detect_hybrid_slp_1): Likewise.
30953
30954 2015-05-26 Jeff Law <law@redhat.com>
30955
30956 * combine.c (find_split_point): Verify that the shift count is a
30957 constant when choosing (plus (ashift ...)) as a split point.
30958
30959 * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
30960 No functional changes.
30961
30962 2015-05-26 Jan Hubicka <hubicka@ucw.cz>
30963
30964 * ipa-polymorphic-call.c
30965 (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
30966 case when call target is already known.
30967
30968 2015-05-26 Oleg Endo <olegendo@gcc.gnu.org>
30969
30970 PR target/65979
30971 * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
30972 take into account the case that operands[1] and operands[2]
30973 are the same register.
30974
30975 2015-05-26 Michael Matz <matz@suse.de>
30976
30977 PR middle-end/66251
30978
30979 * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
30980 stores.
30981 (vect_create_vectorized_demotion_stmts): Always set
30982 STMT_VINFO_VEC_STMT, also with SLP.
30983 (vectorizable_store): Handle strided group stores.
30984
30985 2015-05-26 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
30986
30987 PR target/66049
30988 * config/aarch64/aarch64.md
30989 (*adds_shift_imm_<mode>): New pattern.
30990 (*subs_shift_imm_<mode>): Likewise.
30991 (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
30992 (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
30993 (*add_uxt<mode>_shift2): Likewise.
30994 (*add_uxtsi_shift2_uxtw): Likewise.
30995 (*sub_uxt<mode>_shift2): Likewise.
30996 (*sub_uxtsi_shift2_uxtw): Likewise.
30997
30998 2015-05-26 David Edelsohn <dje.gcc@gmail.com>
30999
31000 * config/rs6000/constraints.md (Y, U): Use match_test.
31001
31002 2015-05-26 Christian Bruel <christian.bruel@st.com>
31003
31004 PR target/52144
31005 * config/arm/arm.c (arm_option_check_internal)
31006 (arm_option_params_internal): Check opts->target_flags to set macros.
31007 (TREE_TARGET_ARM, TREE_TARGET_THUMB)
31008 (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
31009 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
31010 (builtin_define): Replaced with def_or_undef_macro.
31011 * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
31012 TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
31013 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
31014 (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
31015 (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
31016 (TARGET_ARM_FEATURE_LDREX_P)
31017 (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
31018 * config/arm/arm-c.c (def_or_undef_macro): New function.
31019 (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
31020
31021 2015-05-26 Christian Bruel <christian.bruel@st.com>
31022
31023 * c-common.h (builtin_define_with_int_value)
31024 (builtin_define_type_sizeof): Declare.
31025 * c-cppbuiltin.c (builtin_define_with_int_value)
31026 (builtin_define_type_sizeof): Externalize.
31027 (builtin_define_std): Cleanup declaration.
31028 * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
31029 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
31030 * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
31031 (builtin_define, builtin_assert): New macros.
31032
31033 2015-05-26 Richard Biener <rguenther@suse.de>
31034
31035 PR tree-optimization/66142
31036 * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
31037 MEM_REFs for the same base address.
31038
31039 2015-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31040
31041 PR ipa/66181
31042 * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
31043
31044 2015-05-26 Jason Merrill <jason@redhat.com>
31045
31046 * configure.ac: Set CXXFLAGS for ISL test.
31047 * configure: Regenerate.
31048
31049 * configure.ac: Use C++ for all tests. Use AC_CHECK_DECLS for
31050 strstr and basename.
31051 * configure: Regenerate.
31052
31053 2015-05-26 Richard Biener <rguenther@suse.de>
31054
31055 * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
31056 X % C -> X & (C - 1) for C being a power-of two to ...
31057 * match.pd: ... patterns.
31058
31059 2015-05-26 Marc Glisse <marc.glisse@inria.fr>
31060
31061 * match.pd (swapped_tcc_comparison): New operator list.
31062 (-A CMP -B): New simplification.
31063 * fold-const.c (fold_comparison): Remove corresponding code.
31064
31065 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
31066
31067 * caller-save.c (init_caller_save): Base temporary register numbers
31068 on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
31069 * cfgloopanal.c (init_set_costs): Likewise.
31070 * dojump.c (prefer_and_bit_test): Likewise.
31071 * expr.c (init_expr_target): Likewise.
31072 * ira.c (setup_prohibited_mode_move_regs): Likewise.
31073 * lower-subreg.c (init_lower_subreg): Likewise.
31074 * postreload.c (reload_cse_regs_1): Likewise.
31075
31076 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
31077
31078 * gensupport.h (compute_test_codes): Declare.
31079 * gensupport.c (compute_predicate_codes): Rename to...
31080 (compute_test_codes): ...this. Generalize error message.
31081 (process_define_predicate): Update accordingly.
31082 * genpreds.c (compute_maybe_allows): Delete.
31083 (add_constraint): Use compute_test_codes to determine whether
31084 something can accept a SUBREG, REG or MEM.
31085
31086 2015-05-26 Torvald Riegel <triegel@redhat.com>
31087
31088 * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
31089 'memory model' to align with C++11; fix description of memory orders;
31090 fix a few typos.
31091
31092 2015-05-26 Richard Biener <rguenther@suse.de>
31093
31094 * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
31095 (vect_analyze_loop_operations): ... here. Remove slp parameter,
31096 detect whether we apply SLP. Remove call to
31097 vect_update_slp_costs_according_to_vf.
31098 (vect_analyze_loop_2): Call vect_update_vf_for_slp and
31099 vect_update_slp_costs_according_to_vf from here. Dispatch
31100 to vect_slp_analyze_operations to analyze SLP stmts.
31101 * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
31102 unused bb_vec_info parameter, adjust assert.
31103 (vect_slp_analyze_operations): Pass in the slp instance tree
31104 instead of bb_vec_info.
31105 (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
31106 * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
31107
31108 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
31109
31110 * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
31111 Q_REGS. Expand comment.
31112 (REG_CLASS_NAMES): Ditto.
31113 (REG_CLASS_CONTENTS): Ditto.
31114
31115 2015-05-25 Uros Bizjak <ubizjak@gmail.com>
31116
31117 PR target/66274
31118 * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
31119 when LEGACY_INT_REGNO_P is processed.
31120
31121 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
31122
31123 * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
31124
31125 2015-05-25 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
31126
31127 * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
31128 register if not marked dead/unused, before return.
31129
31130 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
31131
31132 PR lto/66180
31133 * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
31134 is set; check for assembler name at LTO time.
31135 (type_in_anonymous_namespace): Remove hacks, check that all
31136 anonymous types are called "<anon>"
31137 (odr_type_p): Simplify; add check for "<anon>"
31138 (odr_subtypes_equivalent): Add odr_type_p check.
31139 * tree.c (need_assembler_name_p): Even anonymous namespace needs
31140 assembler name.
31141
31142 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
31143
31144 * ipa-utils.h (method_class_type): Remove.
31145 * cgraphunit.c (walk_polymorphic_call_targets): Use
31146 TYPE_METHOD_BASETYPE.
31147 * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
31148 on main variants only.
31149 (method_class_type): Remove.
31150 (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
31151 (build_type_inheritance_graph): Likewise.
31152 * ipa-icf.c (sem_function::equals_wpa): Likewise.
31153 * pa-polymorphic-call.c (decl_maybe_in_construction_p,
31154 check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
31155
31156 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
31157
31158 * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
31159 is_typedef_decl, typedef_variant_p): Constify.
31160 * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
31161 is_typedef_decl, typedef_variant_p): Constify.
31162
31163 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31164
31165 * defaults.h (gen_tablejump): New function.
31166 (HAVE_tablejump): Add default value.
31167 * expr.c: Adjust.
31168 * stmt.c: Likewise.
31169
31170 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31171
31172 * defaults.h (gen_store_multiple): New function.
31173 (HAVE_store_multiple): Add default value.
31174 * expr.c (move_block_from_reg): Adjust.
31175
31176 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31177
31178 * defaults.h (gen_load_multiple): New function.
31179 (HAVE_load_multiple): Add default value.
31180 * expr.c (move_block_to_reg): Adjust.
31181
31182 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31183
31184 * defaults.h (gen_mem_signal_fence): New function.
31185 (HAVE_mem_signal_fence): Add default value.
31186 * optabs.c: Adjust.
31187
31188 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31189
31190 * defaults.h (gen_memory_barrier): New function.
31191 (HAVE_memory_barrier): Add default value.
31192 * optabs.c: Adjust.
31193
31194 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31195
31196 * defaults.h (gen_mem_thread_fence): New function.
31197 (HAVE_mem_thread_fence): Add default definition.
31198 * optabs.c: Adjust.
31199
31200 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31201
31202 * combine.c (find_split_point): Check the value of HAVE_lo_sum
31203 instead of if it is defined.
31204 (combine_simplify_rtx): Likewise.
31205 * lra-constraints.c (process_address_1): Likewise.
31206 * config/darwin.c: Adjust.
31207 * genconfig.c (main): Always define HAVE_lo_sum.
31208
31209 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
31210
31211 * genmatch.c (parser::parse_operation): Reject expanding
31212 operator-list inside 'for'.
31213
31214 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
31215
31216 * genmatch.c (parser::parse_for): Reject iterator if used as
31217 operator-list.
31218
31219 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
31220
31221 * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
31222 after end of id-list.
31223
31224 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
31225
31226 * tree.c (gimple_canonical_types_compatible_p): Sanity check that
31227 we do not try to compute canonical type for type that does not need
31228 alias set.
31229 (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
31230 FUNCITON_TYPE.
31231 * tree.h (type_with_alias_set_p): New.
31232
31233 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
31234
31235 * tree.c (gimple_canonical_types_compatible_p): Do not compare
31236 function attributes.
31237 (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
31238
31239 2015-05-22 Jim Wilson <jim.wilson@linaro.org>
31240
31241 * Makefile.in (check_gcc_parallelize): Delete.
31242 (lang_checks_parallelized): Update comment.
31243
31244 2015-05-22 Mikhail Maltsev <maltsevm@gmail.com>
31245
31246 PR rtl-optimization/66237
31247 * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
31248 location of an "as_a" cast.
31249
31250 2015-05-22 Jeff Law <law@redhat.com>
31251
31252 * config/pa/pa.md (non-canonical shift-add insns): Remove.
31253 (peepholes with non-canonical RTL sources): Remove.
31254 (peepholes for indexed stores of FP regs in integer modes): Match and
31255 generate canonical RTL.
31256
31257 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
31258
31259 PR tree-optimization/63387
31260 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
31261 ((x ord x) & (y ord y) -> (x ord y),
31262 (x ord x) & (x ord y) -> (x ord y)): New simplifications.
31263 * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
31264 vectors like scalars.
31265
31266 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
31267
31268 * convert.c (convert_to_integer, convert_to_vector): Include the
31269 types in the error message.
31270
31271 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
31272
31273 * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
31274 simplifications.
31275
31276 2015-05-22 Jeff Law <law@redhat.com>
31277
31278 * config/pa/pa.md (integer_indexed_store splitters): Use
31279 mem_shadd_operand. Use ASHIFT rather than MULT in the resulting
31280 insns -- adjusting the constant 2nd operand accordingly.
31281
31282 * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
31283 (plus (ashift X log2) Y) if it is a split point.
31284
31285 * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
31286 out of hppa_legitimize_address to handle both forms of a multiply
31287 by 2, 4 or 8.
31288 (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
31289 Always generate the ASHIFT variant as the result is not directly
31290 used in a MEM. Update comments and refactor slightly to improve
31291 readability.
31292
31293 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31294
31295 PR target/65491
31296 * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
31297 aarch64_composite_type_p. Remove check for aarch64_composite_type_p.
31298 (aarch64_composite_type_p): Return false if given type and mode are
31299 for a short vector.
31300
31301 2015-05-22 Richard Biener <rguenther@suse.de>
31302
31303 * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
31304 member.
31305 * tree-vect-loop.c (vect_analyze_loop_operations): Look at
31306 patterns when determining whether SLP is pure.
31307 (vect_is_slp_reduction): Remove check for pattern stmts.
31308 (vect_is_simple_reduction_1): Remove dead code.
31309 * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
31310 (vect_get_and_check_slp_defs): Pass in the stmt number.
31311 Allow the first def in a reduction to be not a pattern stmt when
31312 the rest of the stmts def are patterns.
31313 (vect_build_slp_tree_1): Allow tcc_expression codes like
31314 SAD_EXPR and DOT_PROD_EXPR.
31315 (vect_build_slp_tree): Adjust.
31316 (vect_analyze_slp): Refactor and move BB vect error message ...
31317 (vect_slp_analyze_bb_1): ... here.
31318
31319 2015-05-22 Aldy Hernandez <aldyh@redhat.com>
31320
31321 * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
31322 for CSWTCH temporary.
31323
31324 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31325
31326 * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
31327 (arm_unspec_cost): Allow UNSPEC_VOLATILE. Do not recurse inside
31328 unknown unspecs.
31329
31330 2015-05-22 Richard Biener <rguenther@suse.de>
31331
31332 PR tree-optimization/66251
31333 * tree-vect-stmts.c (vectorizable_conversion): Properly
31334 set STMT_VINFO_VEC_STMT even for the SLP case.
31335
31336 2015-05-22 Marek Polacek <polacek@redhat.com>
31337
31338 * doc/extend.texi: Use @pxref instead of @xref.
31339
31340 2015-05-22 hiraditya <hiraditya@msn.com>
31341
31342 * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
31343 redundant if.
31344
31345 2015-05-22 Richard Biener <rguenther@suse.de>
31346
31347 PR tree-optimization/65701
31348 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
31349 Move peeling cost models into one place. Peel for alignment
31350 for single loads only if an aligned load is cheaper than
31351 an unaligned load.
31352
31353 2015-05-22 Marek Polacek <polacek@redhat.com>
31354
31355 PR c/47043
31356 * doc/extend.texi (Enumerator Attributes): New section.
31357 Document syntax of enumerator attributes.
31358
31359 2015-05-22 Richard Biener <rguenther@suse.de>
31360
31361 * tree-vect-loop.c (get_reduction_op): New function.
31362 (vect_model_reduction_cost): Use it, add reduc_index parameter.
31363 Make ready for BB reductions.
31364 (vect_create_epilog_for_reduction): Use get_reduction_op.
31365 (vectorizable_reduction): Init reduc_index to a valid value.
31366 Adjust vect_model_reduction_cost call.
31367 * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
31368 operand for reduction defaults. Add SAD_EXPR support.
31369 Assert we have a neutral op for SLP reductions.
31370 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
31371 walking pattern stmt ops only recurse to SSA names.
31372
31373 2015-05-22 Richard Biener <rguenther@suse.de>
31374
31375 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
31376 assert with guard, remove check on detected reduction.
31377 (vect_recog_sad_pattern): Likewise.
31378 (vect_recog_widen_sum_pattern): Likewise.
31379
31380 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31381
31382 * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
31383 __always_inline__ attribute.
31384 (vaesdq_u8): Likewise.
31385 (vaesmcq_u8): Likewise.
31386 (vaesimcq_u8): Likewise.
31387 (vsha1cq_u32): Likewise.
31388 (vsha1mq_u32): Likewise.
31389 (vsha1pq_u32): Likewise.
31390 (vsha1h_u32): Likewise.
31391 (vsha1su0q_u32): Likewise.
31392 (vsha1su1q_u32): Likewise.
31393 (vsha256hq_u32): Likewise.
31394 (vsha256h2q_u32): Likewise.
31395 (vsha256su0q_u32): Likewise.
31396 (vsha256su1q_u32): Likewise.
31397 (vmull_p64): Likewise.
31398 (vmull_high_p64): Likewise.
31399
31400 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31401
31402 * final.c (final_scan_insn): Don't check HAVE_peephole with the
31403 preprocessor.
31404 * output.h: Likewise.
31405 * genconfig.c (main): Alwways define HAVE_peephole.
31406 * genpeep.c: Don't emit checks of HAVE_peephole.
31407
31408 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31409
31410 * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
31411 check HAVE_conditional_move with the preprocessor.
31412
31413 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31414
31415 * genconfig.c (main): Always define HAVE_conditional_move.
31416 * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
31417 toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
31418 is defined.
31419
31420 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31421
31422 * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
31423 reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
31424 and FRAME_POINTER_REGNUM with the preprocessor.
31425
31426 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31427
31428 * defaults.h: Add default for STACK_PUSH_CODE.
31429 * expr.c: Don't redefine STACK_PUSH_CODE.
31430 * recog.c: Likewise.
31431
31432 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31433
31434 * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
31435 sched-deps.c: Use if instead of preprocessor checks with
31436 STACK_GROWS_DOWNWARD.
31437
31438 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31439
31440 * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
31441 is defined.
31442 * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
31443 * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
31444 * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
31445 * doc/tm.texi: Regenerate.
31446
31447 2015-05-21 H.J. Lu <hongjiu.lu@intel.com>
31448
31449 PR target/66232
31450 * config/i386/constraints.md (Bg): New constraint for GOT memory
31451 operand.
31452 * config/i386/i386.md (*call_got_x32): New pattern.
31453 (*call_value_got_x32): Likewise.
31454 * config/i386/predicates.md (GOT_memory_operand): New predicate.
31455
31456 2015-05-21 Jakub Jelinek <jakub@redhat.com>
31457
31458 PR tree-optimization/66233
31459 * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
31460 Simplify.
31461
31462 2015-05-21 Jeff Law <law@redhat.com>
31463
31464 * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
31465 than MULT for shadd sequences.
31466
31467 2015-05-08 Jan Hubicka <hubicka@ucw.cz>
31468
31469 * alias.c (alias_stats): New static var.
31470 (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
31471 (dump_alias_stats_in_alias_c): New function.
31472 * alias.h (dump_alias_stats_in_alias_c): Declare.
31473 * tree-ssa-alias.c (dump_alias_stats): Call it.
31474
31475 2015-05-08 Michael Matz <matz@suse.de>
31476
31477 * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
31478 to strided_p.
31479 (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
31480 (STMT_VINFO_STRIDED_P): ... this.
31481 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
31482 (vect_verify_datarefs_alignment): Likewise.
31483 (vect_enhance_data_refs_alignment): Likewise.
31484 (vect_analyze_data_ref_access): Likewise.
31485 (vect_analyze_data_refs): Accept strided stores.
31486 * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
31487 (vect_model_load_cost): Adjust for macro rename.
31488 (vectorizable_mask_load_store): Likewise.
31489 (vectorizable_load): Likewise.
31490 (vectorizable_store): Open code strided stores.
31491
31492 2015-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31493
31494 * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
31495 Document sqrt_insn.
31496
31497 2015-05-21 Richard Biener <rguenther@suse.de>
31498
31499 PR c++/66211
31500 * match.pd: Guard pattern optimzing (int)(float)int
31501 conversions to apply only on GIMPLE.
31502
31503 2015-05-21 Jeff Law <law@redhat.com>
31504
31505 * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
31506 multiply-accumulate/shift-add insn generation.
31507
31508 2015-05-21 Oleg Endo <olegendo@gcc.gnu.org>
31509
31510 PR target/54236
31511 * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
31512 operands[1] are the same.
31513
31514 2015-05-21 Ilya Enkovich <enkovich.gnu@gmail.com>
31515
31516 PR middle-end/66221
31517 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
31518 build_distinct_type_copy to copy bounds.
31519
31520 2015-05-21 Thomas Schwinge <thomas@codesourcery.com>
31521
31522 * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
31523 Change to unsigned int.
31524
31525 2015-05-20 Jeff Law <law@redhat.com>
31526
31527 * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
31528 (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
31529 (pa_shadd_constant_p): Allow constants for shadd insns rather
31530 than valid scaling constants for memory addresses.
31531 * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
31532 * config/pa/predicates.md (mem_shadd_operand): New predicate.
31533 * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
31534 (shift-add insns using ASHIFT): New patterns.
31535
31536 2015-05-20 Mikhail Maltsev <maltsevm@gmail.com>
31537
31538 * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
31539 feasible.
31540 (fix_up_fall_thru_edges): Likewise.
31541 (fix_crossing_conditional_branches): Likewise. Promote jump targets
31542 from to rtx_insn to rtx_code_label where feasible.
31543 * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
31544 gen_move_insn (returned type changed to rtx_insn).
31545 * builtins.c (expand_errno_check): Fix arguments of
31546 do_compare_rtx_and_jump (now expects rtx_code_label).
31547 (expand_builtin_acc_on_device): Likewise.
31548 * cfgcleanup.c (try_simplify_condjump): Add cast when calling
31549 invert_jump (now exprects rtx_jump_insn).
31550 * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
31551 (construct_init_block): Use rtx_code_label.
31552 * cfgrtl.c (block_label): Promote return type to rtx_code_label.
31553 (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
31554 calling redirect_jump.
31555 (patch_jump_insn): Likewise.
31556 (redirect_branch_edge): Likewise.
31557 (force_nonfallthru_and_redirect): Likewise.
31558 (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
31559 when suitable.
31560 (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
31561 * cfgrtl.h: Promote return type of block_label to rtx_code_label.
31562 * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
31563 * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
31564 to store the value retured by gen_label_rtx.
31565 * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
31566 rtx_jump_insn.
31567 * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
31568 (split_branches): Fix calls of redirect_jump.
31569 * dojump.c (jumpifnot): Promote argument type from rtx to
31570 rtx_code_label.
31571 (jumpifnot_1): Likewise.
31572 (jumpif): Likewise.
31573 (jumpif_1): Likewise.
31574 (do_jump_1): Likewise.
31575 (do_jump): Likewise. Use rtx_code_label when feasible.
31576 (do_jump_by_parts_greater_rtx): Likewise.
31577 (do_jump_by_parts_zero_rtx): Likewise.
31578 (do_jump_by_parts_equality_rtx): Likewise.
31579 (do_compare_rtx_and_jump): Likewise.
31580 * dojump.h: Update function prototypes.
31581 * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
31582 returns rtx_insn).
31583 * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
31584 rtx_jump_insn.
31585 (emit_label_before): Likewise.
31586 (emit_jump_insn_after_noloc): Likewise.
31587 (emit_jump_insn_after_setloc): Likewise.
31588 (emit_jump_insn_after): Likewise
31589 (emit_jump_insn_before_setloc): Likewise.
31590 (emit_jump_insn_before): Likewise.
31591 (emit_label_before): Promote return type to rtx_code_label.
31592 (emit_label): Likewise.
31593 * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
31594 * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
31595 gen_move_insn.
31596 (emit_stack_restore): Likewise.
31597 * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
31598 (do_cmp_and_jump): Likewise.
31599 * expr.c (expand_expr_real_2): Likewise. Promote some local variables
31600 from rtx to rtx_code_label.
31601 (gen_move_insn_uncast): New function.
31602 * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
31603 * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
31604 * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
31605 * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
31606 invert_jump_1 and redirect_jump_1.
31607 * internal-fn.c (expand_arith_overflow_result_store): Fix call of
31608 do_compare_rtx_and_jump.
31609 (expand_addsub_overflow): Likewise.
31610 (expand_neg_overflow): Likewise.
31611 (expand_mul_overflow): Likewise.
31612 * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
31613 return value of gen_move_insn.
31614 * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
31615 * loop-doloop.c (add_test): Use rtx_code_label.
31616 (doloop_modify): Likewise.
31617 (doloop_optimize): Likewise.
31618 * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
31619 * lra-constraints.c (emit_spill_move): Remove cast of value returned
31620 by gen_move_insn.
31621 (inherit_reload_reg): Add cast when calling dump_insn_slim.
31622 (split_reg): Likewise.
31623 * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
31624 gen_move_insn.
31625 * optabs.c (expand_binop_directly): Remove casts of values returned by
31626 maybe_gen_insn.
31627 (expand_unop_direct): Likewise.
31628 (expand_abs): Likewise.
31629 (maybe_emit_unop_insn): Likewise.
31630 (maybe_gen_insn): Promote return type to rtx_insn.
31631 * optabs.h: Update prototype of maybe_gen_insn.
31632 * postreload-gcse.c (eliminate_partially_redundant_load): Remove
31633 redundant cast.
31634 * recog.c (struct peep2_insn_data): Promote type of insn field to
31635 rtx_insn.
31636 (peep2_reinit_state): Use NULL instead of NULL_RTX.
31637 (peep2_attempt): Remove casts of insn in peep2_insn_data.
31638 (peep2_fill_buffer): Promote argument from rtx to rtx_insn
31639 * recog.h (struct insn_gen_fn): Promote return types of function
31640 pointers and operator ().from rtx to rtx_insn.
31641 * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
31642 (fill_eager_delay_slots): Likewise.
31643 (relax_delay_slots): Likewise.
31644 (make_return_insns): Likewise.
31645 (dbr_schedule): Likewise.
31646 (optimize_skips): Likewise.
31647 (reorg_redirect_jump): Likewise.
31648 (fill_slots_from_thread): Likewise.
31649 * reorg.h: Update prototypes.
31650 * resource.c (find_dead_or_set_registers): Use dyn_cast to
31651 rtx_jump_insn instead of check. Use it's jump_target method.
31652 * rtl.h (rtx_jump_insn::jump_label): Define new method.
31653 (rtx_jump_insn::jump_target): Define new method.
31654 (rtx_jump_insn::set_jump_target): Define new method.
31655 * rtlanal.c (tablejump_p): Promote type of one local variable.
31656 * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
31657 (sched_analyze_insn): Likewise.
31658 * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
31659 (print_insn): Likewise.
31660 * stmt.c (label_rtx): Promote return type to rtx_insn.
31661 (force_label_rtx): Likewise.
31662 (jump_target_rtx): Define new function.
31663 (expand_label): Use it, get rid of one cast.
31664 (expand_naked_return): Promote rtx to rtx_code_label.
31665 (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
31666 (expand_case): Use rtx_code_label instread of rtx where feasible.
31667 (expand_sjlj_dispatch_table): Likewise.
31668 (emit_case_nodes): Likewise.
31669 * stmt.h: Declare jump_target_rtx. Update prototypes. Fix comments.
31670 * store-motion.c (insert_store): Make use of new return type of
31671 gen_move_insn and remove a cast.
31672 (replace_store_insn): Likewise.
31673
31674 2015-05-20 Max Filippov <jcmvbkbc@gmail.com>
31675
31676 * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
31677 by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
31678
31679 2015-05-20 Jeff Law <law@redhat.com>
31680
31681 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
31682 dispose of the jump thread path when the jump threading
31683 opportunity is cancelled.
31684
31685 2015-05-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
31686
31687 * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
31688 when printing the caret character.
31689
31690 2015-05-20 Marek Polacek <polacek@redhat.com>
31691
31692 * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
31693
31694 2015-05-20 Marek Polacek <polacek@redhat.com>
31695
31696 * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
31697 * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
31698 * gimple-fold.c (canonicalize_bool): Likewise.
31699 (same_bool_result_p): Likewise.
31700 * tree-if-conv.c (parse_predicate): Likewise.
31701
31702 2015-05-20 Marek Polacek <polacek@redhat.com>
31703
31704 * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
31705 * gimplify.c (gimplify_modify_expr_rhs): Likewise.
31706
31707 2015-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31708
31709 * config/aarch64/aarch64.c (aarch64_class_max_nregs):
31710 Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
31711 values.
31712
31713 2015-05-20 Robert Suchanek <robert.suchanek@imgtec.com>
31714
31715 * config/mips/mips.h (micromips_globals): Declare.
31716
31717 2015-05-20 David Malcolm <dmalcolm@redhat.com>
31718
31719 * timevar.def (TV_INITIALIZE_RTL): New.
31720 * toplev.c (initialize_rtl): Use an auto_timevar to account this
31721 function's time to TV_INITIALIZE_RTL.
31722
31723 2015-05-20 Ilya Enkovich <enkovich.gnu@gmail.com>
31724
31725 * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
31726 gimple_build_nop calls.
31727 (chkp_find_bounds_for_elem): Likewise.
31728 (chkp_get_zero_bounds): Likewise.
31729 (chkp_get_none_bounds): Likewise.
31730 (chkp_get_bounds_by_definition): Likewise.
31731 (chkp_generate_extern_var_bounds): Likewise.
31732 (chkp_get_bounds_for_decl_addr): Likewise.
31733 (chkp_get_bounds_for_string_cst): Likewise.
31734
31735 2015-05-20 Bin Cheng <bin.cheng@arm.com>
31736
31737 PR tree-optimization/65447
31738 * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
31739 (dump_use, dump_uses): Support to dump sub use.
31740 (record_use): New parameters to support sub use. Remove call to
31741 dump_use.
31742 (record_sub_use, record_group_use): New functions.
31743 (compute_max_addr_offset, split_all_small_groups): New functions.
31744 (group_address_uses, rewrite_use_address): New functions.
31745 (strip_offset): New declaration.
31746 (find_interesting_uses_address): Call record_group_use.
31747 (add_candidate): New assertion.
31748 (infinite_cost_p): Move definition forward.
31749 (add_costs): Check INFTY cost and return immediately.
31750 (get_computation_cost_at): Clear setup cost and dependent bitmap
31751 for sub uses.
31752 (determine_use_iv_cost_address): Compute cost for sub uses.
31753 (rewrite_use_address_1): Rename from old rewrite_use_address.
31754 (free_loop_data): Free sub uses.
31755 (tree_ssa_iv_optimize_loop): Call group_address_uses.
31756
31757 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
31758 Jim Wilson <jim.wilson@linaro.org>
31759
31760 * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
31761 new fields loadv and storev.
31762 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
31763 Initialize loadv and storev.
31764 * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
31765 (cortexa53_extra_costs): Likewise.
31766 (cortexa57_extra_costs): Likewise.
31767 (xgene1_extra_costs): Likewise.
31768 * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
31769 rtx_costs.
31770
31771 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
31772
31773 * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
31774 storev.
31775 (cortexa8_extra_costs): Likewise.
31776 (cortexa5_extra_costs): Likewise.
31777 (cortexa7_extra_costs): Likewise.
31778 (cortexa12_extra_costs): Likewise.
31779 (cortexa15_extra_costs): Likewise.
31780 (v7m_extra_costs): Likewise.
31781
31782 2015-05-20 Jeff Law <law@redhat.com>
31783
31784 * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
31785 instead of open-coded version. Also delete the jump thread created
31786 within this function.
31787
31788 2015-05-20 Alan Modra <amodra@gmail.com>
31789
31790 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
31791 stack adjusting insn. Formatting.
31792 (rs6000_emit_prologue): Track stack adjusting insn, and use of
31793 r12. If possible, emit first -fsplit-stack arg pointer insn
31794 before stack adjust. Don't use r12 to save cr if split-stack.
31795
31796 2015-05-20 Alan Modra <amodra@gmail.com>
31797
31798 * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
31799 Define.
31800 (rs6000_supports_split_stack): New function.
31801 * config/rs6000/rs6000.c (machine_function): Add
31802 split_stack_arg_pointer.
31803 (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
31804 (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
31805 rather than virtual_incoming_args_rtx.
31806 (rs6000_va_start): Likewise.
31807 (split_stack_arg_pointer_used_p): New function.
31808 (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
31809 (morestack_ref): New var.
31810 (gen_add3_const, rs6000_expand_split_stack_prologue,
31811 rs6000_internal_arg_pointer, rs6000_live_on_entry,
31812 rs6000_split_stack_space_check): New functions.
31813 (rs6000_elf_file_end): Call file_end_indicate_split_stack.
31814 * config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
31815 (UNSPECV_SPLIT_STACK_RETURN): Define.
31816 (split_stack_prologue, load_split_stack_limit,
31817 load_split_stack_limit_di, load_split_stack_limit_si,
31818 split_stack_return, split_stack_space_check): New expands and insns.
31819 * config/rs6000/rs6000-protos.h
31820 (rs6000_expand_split_stack_prologue): Declare.
31821 (rs6000_split_stack_space_check): Declare.
31822
31823 2015-05-20 Alan Modra <amodra@gmail.com>
31824
31825 * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
31826 (direct_return): Test vrsave_size rather than vrsave_mask.
31827 (rs6000_emit_prologue): Likewise. Remove redundant altivec tests.
31828 (rs6000_emit_epilogue): Likewise.
31829
31830 2015-05-20 Alan Modra <amodra@gmail.com>
31831
31832 * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
31833 when not saving registers.
31834 (debug_stack_info): Adjust to omit printing unused offsets,
31835 as before.
31836 (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
31837 expression.
31838
31839 2015-05-19 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
31840
31841 PR c++/65835
31842 * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
31843 value_type to const char *.
31844
31845 2015-05-19 Sandra Loosemore <sandra@codesourcery.com>
31846
31847 * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
31848 to build a biarch toolchain again.
31849
31850 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
31851
31852 * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
31853 or implicit declarations.
31854 (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
31855 into it.
31856 (get_odr_type): Check type has linkage before adding bases.
31857 (register_odr_type): Check that type has linkage before adding it.
31858 (type_known_to_have_no_deriavations_p): Rename to ..
31859 (type_known_to_have_no_derivations_p): This one.
31860 * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
31861 (type_known_to_have_no_derivations_p): This one.
31862 * ipa-polymorphic-call.c
31863 (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
31864 type has linkage.
31865
31866 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
31867
31868 * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
31869 (layout_type): Use RECORD_OR_UNION_TYPE_P.
31870
31871 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31872
31873 * config/s390/s390.c (s390_vector_bool_type_p): New function.
31874 (s390_invalid_binary_op): New function.
31875 (TARGET_INVALID_BINARY_OP): Define macro.
31876
31877 2015-05-19 David Sherwood <david.sherwood@arm.com>
31878
31879 * loop-invariant.c (create_new_invariant): Don't calculate address cost
31880 if mode is not a scalar integer.
31881 (get_inv_cost): Increase computational cost for unused invariants.
31882
31883 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31884
31885 * config.gcc: Add vecintrin.h to extra_headers. Add s390-c.o to
31886 c_target_objs and cxx_target_objs. Add t-s390 to tmake_file.
31887 * config/s390/s390-builtin-types.def: New file.
31888 * config/s390/s390-builtins.def: New file.
31889 * config/s390/s390-builtins.h: New file.
31890 * config/s390/s390-c.c: New file.
31891 * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
31892 CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
31893 * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
31894 (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
31895 prototypes.
31896 * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
31897 Include.
31898 (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
31899 (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
31900 variable definitions.
31901 (s390_const_operand_ok): New function.
31902 (s390_expand_builtin): Rewrite.
31903 (s390_init_builtins): New function.
31904 (s390_handle_vectorbool_attribute): New function.
31905 (s390_attribute_table): Add s390_vector_bool attribute.
31906 (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
31907 (s390_branch_condition_mask): Generate masks for new modes.
31908 (s390_expand_vec_compare_cc): New function.
31909 (s390_mangle_type): Add mangling for vector bool types.
31910 (enum s390_builtin): Remove.
31911 (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
31912 efpc builtins.
31913 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
31914 s390_cpu_cpp_builtins.
31915 (REGISTER_TARGET_PRAGMAS): New macro.
31916 * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
31917 (insn_cmp mode attribute): Add new CC modes.
31918 (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
31919 (lcbb): New pattern definition.
31920 * config/s390/s390intrin.h: Include vecintrin.h.
31921 * config/s390/t-s390: New file.
31922 * config/s390/vecintrin.h: New file.
31923 * config/s390/vector.md: Include vx-builtins.md.
31924 * config/s390/vx-builtins.md: New file.S/390 zvector builtin
31925 support.
31926
31927 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31928
31929 * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
31930 CCVFHE.
31931 * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
31932 (s390_select_ccmode): Likewise.
31933 (s390_canonicalize_comparison): Swap operands if necessary.
31934 (s390_expand_vec_compare_scalar): Expand DFmode compare using
31935 single element vector instructions.
31936 (s390_emit_compare): Call s390_expand_vec_compare_scalar.
31937 (s390_branch_condition_mask): Generate CC masks for the new modes.
31938 * config/s390/s390.md (v0, vf, vd): New mode attributes.
31939 (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
31940 (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
31941 (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
31942 (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
31943 (*extend<DSF:mode><BFP:mode>2): New insn definition.
31944 (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
31945 (extend<DSF:mode><BFP:mode>2): Turn into expander.
31946 (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
31947 (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
31948 (sqrt<mode>2): Add vector instruction.
31949
31950 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31951
31952 * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
31953 constraints.
31954 * config/s390/predicates.md (const0_operand, constm1_operand)
31955 (constable_operand): Accept vector operands.
31956 * config/s390/s390-modes.def: Add supported vector modes.
31957 * config/s390/s390-protos.h (s390_cannot_change_mode_class)
31958 (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
31959 (s390_bytemask_vector_p, s390_expand_vec_strlen)
31960 (s390_expand_vec_compare, s390_expand_vcond)
31961 (s390_expand_vec_init): Add prototypes.
31962 * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
31963 (s390_vector_mode_supported_p): New function.
31964 (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
31965 (s390_contiguous_bitmask_vector_p): New function.
31966 (s390_bytemask_vector_p): New function.
31967 (s390_split_ok_p): Vector regs don't work either.
31968 (regclass_map): Add VEC_REGS.
31969 (s390_legitimate_constant_p): Handle vector constants.
31970 (s390_cannot_force_const_mem): Handle CONST_VECTOR.
31971 (legitimate_reload_vector_constant_p): New function.
31972 (s390_preferred_reload_class): Handle CONST_VECTOR.
31973 (s390_reload_symref_address): Likewise.
31974 (s390_secondary_reload): Vector memory instructions only support
31975 short displacements. Rename reload*_nonoffmem* to reload*_la*.
31976 (s390_emit_ccraw_jump): New function.
31977 (s390_expand_vec_strlen): New function.
31978 (s390_expand_vec_compare): New function.
31979 (s390_expand_vcond): New function.
31980 (s390_expand_vec_init): New function.
31981 (s390_dwarf_frame_reg_mode): New function.
31982 (print_operand): Handle addresses with 'O' and 'R' constraints.
31983 (NR_C_MODES, constant_modes): Add vector modes.
31984 (s390_output_pool_entry): Handle vector constants.
31985 (s390_hard_regno_mode_ok): Handle vector registers.
31986 (s390_class_max_nregs): Likewise.
31987 (s390_cannot_change_mode_class): New function.
31988 (s390_invalid_arg_for_unprototyped_fn): New function.
31989 (s390_function_arg_vector): New function.
31990 (s390_function_arg_float): Remove size variable.
31991 (s390_pass_by_reference): Handle vector arguments.
31992 (s390_function_arg_advance): Likewise.
31993 (s390_function_arg): Likewise.
31994 (s390_return_in_memory): Vector values are returned in a VR if
31995 possible.
31996 (s390_function_and_libcall_value): Handle vector arguments.
31997 (s390_gimplify_va_arg): Likewise.
31998 (s390_call_saved_register_used): Consider the arguments named.
31999 (s390_conditional_register_usage): Disable v16-v31 for non-vec
32000 targets.
32001 (s390_preferred_simd_mode): New function.
32002 (s390_support_vector_misalignment): New function.
32003 (s390_vector_alignment): New function.
32004 (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
32005 (TARGET_VECTOR_MODE_SUPPORTED_P)
32006 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
32007 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
32008 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
32009 (TARGET_VECTOR_ALIGNMENT): Define target macro.
32010 * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
32011 (FIRST_PSEUDO_REGISTER): Increase value.
32012 (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
32013 (VECTOR_REG_P): Define macros.
32014 (FIXED_REGISTERS, CALL_USED_REGISTERS)
32015 (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
32016 (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
32017 (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
32018 Add vector registers.
32019 (CANNOT_CHANGE_MODE_CLASS): Call C function.
32020 (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
32021 (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
32022 memory.
32023 (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
32024 (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
32025 * config/s390/s390.md (UNSPEC_VEC_*): New constants.
32026 (VR*_REGNUM): New constants.
32027 (ALL): New mode iterator.
32028 (INTALL): Remove mode iterator.
32029 Include vector.md.
32030 (movti): Implement TImode moves for VRs.
32031 Disable TImode splitter for VR targets.
32032 Implement splitting TImode GPR<->VR moves.
32033 (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
32034 (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
32035 reload<mode>_la_in, reload<mode>_la_out.
32036 (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
32037 (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
32038 (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
32039 (mov<mode> SF SD): Prefer lder, lde for loading.
32040 Add lrl and strl instructions.
32041 Add vector instructions.
32042 (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
32043 Call s390_expand_vec_strlen on z13.
32044 (*cc_to_int): Change predicate to nonimmediate_operand.
32045 (addti3): Rename to *addti3. New expander.
32046 (subti3): Rename to *subti3. New expander.
32047 * config/s390/vector.md: New file.
32048
32049 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32050
32051 * common/config/s390/s390-common.c (processor_flags_table): Add
32052 z13.
32053 * config.gcc: Add z13.
32054 * config/s390/s390-opts.h (enum processor_type): Add
32055 PROCESSOR_2964_Z13.
32056 * config/s390/s390.c (s390_adjust_priority): Check for
32057 PROCESSOR_2964_Z13.
32058 (s390_reorg): Likewise.
32059 (s390_sched_reorder): Likewise.
32060 (s390_sched_variable_issue): Likewise.
32061 (s390_loop_unroll_adjust): Likewise.
32062 (s390_option_override): Likewise. Default to -mvx when available.
32063 * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
32064 (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
32065 (TARGET_VX_ABI): Define macros.
32066 macros.
32067 (TARGET_DEFAULT): Add MASK_OPT_VX.
32068 * config/s390/s390.md ("cpu" attribute): Add z13.
32069 ("cpu_facility" attribute): Add vec.
32070 * config/s390/s390.opt (processor_type): Add z13.
32071 (mvx): New options.
32072 * doc/invoke.texi: Add z13 option for -march.
32073
32074 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32075
32076 * config/s390/predicates.md (shift_count_or_setmem_operand): Add
32077 mode check to make sure that only scalar integer values are
32078 accepted.
32079
32080 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
32081
32082 * tree.c (verify_type_variant): Fix #undef.
32083 (gimple_canonical_types_compatible_p): Move here from lto.c
32084 (verify_type): Verify TYPE_CANONICAL compatibility.
32085 * tree.h (gimple_canonical_types_compatible_p): Declare.
32086
32087 2015-05-19 Jakub Jelinek <jakub@redhat.com>
32088
32089 PR middle-end/66199
32090 * tree.h (OMP_TEAMS_COMBINED): Define.
32091 * gimplify.c (enum gimplify_omp_var_data): Add
32092 GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
32093 (enum omp_region_type): Add ORT_COMBINED_TEAMS.
32094 (omp_notice_variable): Accept both ORT_TEAMS
32095 and ORT_COMBINED_TEAMS. Don't recurse if
32096 GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
32097 GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
32098 GOVD_FIRSTPRIVATE.
32099 (omp_no_lastprivate): New function.
32100 (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
32101 and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
32102 notice_outer and set appropriate bits, otherwise make
32103 sure default(none) combined constructs won't complain.
32104 (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
32105 outer special casing, for OMP_CLAUSE_LASTPRIVATE if
32106 omp_no_lastprivate either remove the clause or turn it
32107 into OMP_CLAUSE_PRIVATE.
32108 (gimplify_omp_for): Fix up handling of implicit
32109 lastprivate or linear iterators.
32110 (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
32111 ORT_COMBINED_TEAMS.
32112 * omp-low.c (lower_omp_for_lastprivate): For combined
32113 for simd use fd.loop.n2 from the for rather than simd.
32114
32115 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
32116
32117 * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
32118 instead of gen_rtx_raw_REG.
32119 (cris_expand_epilogue): Likewise.
32120 * config/microblaze/microblaze.c (microblaze_classify_address):
32121 Likewise.
32122 * config/sparc/sparc.md: Likewise.
32123
32124 2015-05-19 Uros Bizjak <ubizjak@gmail.com>
32125
32126 * config/alpha/alpha.c (alpha_legitimize_reload_address)
32127 (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
32128 CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
32129 (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
32130 Use CASE_CONST_SCALAR_INT.
32131 (print_operand) <case 'M'>: Use mode_width_operand to check the
32132 value of the constant.
32133 * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
32134 * config/alpha/predicates.md (input_operand): Use general_operand
32135 instead of match_code as operand check.
32136 (symbolic_operand): Use match_code with subexpression digits.
32137 * config/alpha/constraints.md (Q): Ditto.
32138
32139 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32140
32141 * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
32142
32143 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32144
32145 * config/s390/s390.c (s390_secondary_reload): Fix check for
32146 load/store relative.
32147
32148 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32149
32150 * recog.h: Increase MAX_RECOG_ALTERNATIVES. Change type of
32151 alternative_mask to uint64_t.
32152
32153 2015-05-19 Jakub Jelinek <jakub@redhat.com>
32154
32155 PR tree-optimization/66187
32156 * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
32157 Pass TYPE_SIGN to tree_int_cst_min_precision. If
32158 !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
32159
32160 2015-05-19 David Malcolm <dmalcolm@redhat.com>
32161
32162 * diagnostic.c (diagnostic_report_current_module): Strengthen
32163 local "new_map" from const line_map * to
32164 const line_map_ordinary *.
32165 * genmatch.c (error_cb): Likewise for local "map".
32166 (output_line_directive): Likewise for local "map".
32167 * input.c (expand_location_1): Likewise for local "map".
32168 Pass NULL rather than &map to
32169 linemap_unwind_to_first_non_reserved_loc, since the value is never
32170 read from there, and the value written back not read from here.
32171 (is_location_from_builtin_token): Strengthen local "map" from
32172 const line_map * to const line_map_ordinary *.
32173 (dump_location_info): Strengthen locals "map" from
32174 line_map *, one to const line_map_ordinary *, the other
32175 to const line_map_macro *.
32176 * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
32177 const line_map * to const line_map_macro *.
32178 (maybe_unwind_expanded_macro_loc): Add a call to
32179 linemap_check_macro when writing to the "map" field of the
32180 loc_map_pair.
32181 Introduce local const line_map_ordinary * "ord_map", using it in
32182 place of "map" in the part of the function where we know we have
32183 an ordinary map. Strengthen local "m" from const line_map * to
32184 const line_map_ordinary *.
32185
32186 2015-05-19 Nick Clifton <nickc@redhat.com>
32187
32188 PR target/66156
32189 * config/msp430/msp430.md (zero_extendhisi2): Add support for
32190 separate source and destination registers.
32191
32192 2015-05-19 Richard Biener <rguenther@suse.de>
32193
32194 PR tree-optimization/66165
32195 * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
32196 for no load permutation.
32197
32198 PR tree-optimization/66185
32199 * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
32200 when building the SLP node from scalars.
32201
32202 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
32203 Tristan Gingold <gingold@adacore.com>
32204
32205 * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
32206 * builtins.c (expand_builtin_update_setjmp_buf): Make global.
32207 (expand_stack_restore): Call record_new_stack_level.
32208 (expand_stack_save): Do not call do_pending_stack_adjust.
32209 * builtins.h (expand_builtin_update_setjmp_buf): Declare.
32210 * calls.c (expand_call): Call record_new_stack_level for alloca.
32211 * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
32212 wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
32213 (update_sjlj_context): New global function.
32214 * except.h (update_sjlj_context): Declare.
32215 * explow.c (record_new_stack_level): New global function.
32216 (allocate_dynamic_stack_space): Call record_new_stack_level.
32217 * explow.h (record_new_stack_level): Declare.
32218 * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
32219 * cfgrtl.c (duplicate_insn_chain): Likewise.
32220
32221 2015-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32222
32223 * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
32224 (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
32225 STACK_GROWS_DOWNWARD as normal if.
32226 (expand_call): Likewise.
32227
32228 2015-05-19 Oleg Endo <olegendo@gcc.gnu.org>
32229
32230 PR target/54236
32231 * config/sh/sh.md (*round_int_even): New insn_and_split and
32232 accompanying new unnamed split.
32233
32234 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
32235
32236 * bitmap.c (bitmap_set_range): Handle count==1 specially.
32237 (bitmap_clear_range): Likewise.
32238 * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
32239 bitmap_set_range unconditionally.
32240 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
32241 * df-scan.c (df_mark_reg): Likewise.
32242 * haifa-sched.c (setup_ref_regs): Likewise.
32243 * sched-rgn.c (update_live_1): Likewise.
32244
32245 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
32246
32247 * regs.h (END_HARD_REGNO): Delete.
32248 (END_REGNO): Move to...
32249 * rtl.h: ...here.
32250 * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
32251 * caller-save.c (mark_set_regs): Likewise.
32252 * combine.c (move_deaths, distribute_notes): Likewise.
32253 * cse.c (invalidate, invalidate_for_call): Likewise.
32254 * df-scan.c (df_ref_record): Likewise.
32255 * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
32256 (record_last_reg_set_info): Likewise.
32257 * reg-stack.c (convert_regs_exit): Likewise.
32258 * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
32259 * resource.c (update_live_status): Likewise.
32260 * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
32261
32262 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
32263
32264 * rtl.h (reg_info): Add an nregs field.
32265 (REG_NREGS): Use it.
32266 (SET_REGNO_RAW): Delete.
32267 (set_regno_raw): New function.
32268 * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
32269 (END_REGNO): Redefine in terms of REG_NREGS.
32270 * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
32271 SET_REGNO_RAW.
32272 * emit-rtl.c (set_mode_and_regno): Likewise.
32273 * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
32274 instead of SET_REGNO_RAW.
32275
32276 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
32277
32278 * rtl.h (PUT_MODE_RAW): New macro.
32279 (PUT_REG_NOTE_KIND): Use it.
32280 (set_mode_and_regno): Declare.
32281 (gen_raw_REG): Change regno to "unsigned int".
32282 (gen_rtx_REG): Change "unsigned" to "unsigned int".
32283 (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
32284 use set_mode_and_regno to change the mode of registers.
32285 * gengenrtl.c (gendef): Use PUT_MODE_RAW.
32286 * emit-rtl.c (set_mode_and_regno): New function.
32287 (gen_raw_REG): Change regno to unsigned int. Use set_mode_and_regno.
32288 * caller-save.c (reg_save_code): Use set_mode_and_regno.
32289 * expr.c (init_expr_target): Likewise.
32290 * ira.c (setup_prohibited_mode_move_regs): Likewise.
32291 * postreload.c (reload_cse_simplify_operands): Likewise.
32292
32293 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
32294
32295 * caller-save.c (init_caller_save): Use word_mode and
32296 FIRST_PSEUDO_REGISTER when creating temporary rtxes.
32297 * expr.c (init_expr_target): Likewise.
32298 * ira.c (setup_prohibited_mode_move_regs): Likewise.
32299 * postreload.c (reload_cse_regs_1): Likewise.
32300
32301 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
32302
32303 * rtl.def (REG): Change format to "r".
32304 * rtl.h (rtunion): Remove rt_reg.
32305 (reg_info): New structure.
32306 (rtx_def): Add reg field to main union.
32307 (X0REGATTR): Delete.
32308 (REG_CHECK): New macro.
32309 (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
32310 * rtl.c (rtx_format): Document "r".
32311 (rtx_code_size): Handle REG specially.
32312 * gengenrtl.c (special_format): Return true for formats
32313 that include 'r'.
32314 * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
32315 Deal with REG_ATTRS after the field loop.
32316 * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
32317 * expmed.c (init_expmed): Call gen_raw_REG instead of
32318 gen_rtx_raw_REG.
32319 * expr.c (init_expr_target): Likewise.
32320 * regcprop.c (maybe_mode_change): Likewise.
32321 * varasm.c (make_decl_rtl): Likewise.
32322 * final.c (leaf_renumber_regs_insn): Return early after
32323 handling REGs.
32324 * genemit.c (gen_exp): Handle 'r' fields.
32325 * genpeep.c (match_rtx): Likewise.
32326 * gensupport.c (subst_pattern_match): Likewise.
32327 (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
32328 (alter_constraints, subst_dup): Likewise.
32329 * read-rtl.c (read_rtx_code): Likewise.
32330 * print-rtl.c (print_rtx): Likewise.
32331 * genrecog.c (find_operand, find_matching_operand): Likewise.
32332 (validate_pattern, match_pattern_2): Likewise.
32333 (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
32334 (rtx_test::regno_field): New function.
32335 (operator ==, safe_to_hoist_p, transition_parameter_type)
32336 (parameter_type_string, print_parameter_value)
32337 (print_nonbool_test, print_test): Handle new enum values.
32338 * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
32339 * lra-constraints.c (operands_match_p): Likewise.
32340
32341 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
32342
32343 * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
32344 Change type of new_regno to unsigned int.
32345 * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
32346 new_regno to unsigned int.
32347 (df_ref_change_reg_with_loc): Remove old_regno parameter.
32348 Change type of new_regno to unsigned int. Use SET_REGNO_RAW.
32349 * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
32350 (SET_REGNO_RAW): Add space after ",".
32351
32352 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
32353
32354 * rtl.h (REG_NREGS): New macro
32355 * alias.c (record_set): Use it.
32356 * cfgcleanup.c (mark_effect): Likewise.
32357 * combine.c (likely_spilled_retval_1): Likewise.
32358 (likely_spilled_retval_p, can_change_dest_mode): Likewise.
32359 (move_deaths, distribute_notes): Likewise.
32360 * cselib.c (cselib_record_set): Likewise.
32361 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
32362 * df-scan.c (df_mark_reg): Likewise.
32363 * dse.c (look_for_hardregs): Likewise.
32364 * dwarf2out.c (reg_loc_descriptor): Likewise.
32365 (multiple_reg_loc_descriptor): Likewise.
32366 * expr.c (write_complex_part, read_complex_part): Likewise.
32367 (emit_move_complex): Likewise.
32368 * haifa-sched.c (setup_ref_regs): Likewise.
32369 * ira-lives.c (mark_hard_reg_live): Likewise.
32370 * lra.c (lra_set_insn_recog_data): Likewise.
32371 * mode-switching.c (create_pre_exit): Likewise.
32372 * postreload.c (reload_combine_recognize_const_pattern): Likewise.
32373 (reload_combine_recognize_pattern): Likewise.
32374 (reload_combine_note_use, move2add_record_mode): Likewise.
32375 (reload_cse_move2add): Likewise.
32376 * reg-stack.c (subst_stack_regs_pat): Likewise.
32377 * regcprop.c (kill_value, copy_value): Likewise.
32378 (copyprop_hardreg_forward_1): Likewise.
32379 * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
32380 (build_def_use): Likewise.
32381 * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
32382 (deps_analyze_insn): Likewise.
32383 * sched-rgn.c (check_live_1, update_live_1): Likewise.
32384 * sel-sched.c (count_occurrences_equiv): Likewise.
32385 * valtrack.c (dead_debug_insert_temp): Likewise.
32386
32387 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
32388
32389 * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
32390 * dse.c (note_add_store): Likewise.
32391 * ira-lives.c (mark_hard_reg_dead): Likewise.
32392 * loop-invariant.c (mark_reg_store): Likewise.
32393 (mark_reg_death): Likewise.
32394 * postreload.c (reload_combine): Likewise.
32395 (reload_combine_note_store): Likewise.
32396 (reload_combine_note_use): Likewise.
32397 * recog.c (peep2_reg_dead_p): Likewise.
32398
32399 2015-05-19 Alan Modra <amodra@gmail.com>
32400
32401 * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
32402 hard registers numbered greater or equal to ARG_POINTER_REGNUM.
32403 (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
32404 unused predicates.
32405 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
32406 Use altivec_register_operand. Make insn predicate TARGET_ALTIVEC.
32407 * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
32408 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
32409
32410 2015-05-19 Sameera Deshpande <Sameera.Deshpande@imgtec.com>
32411
32412 * config/mips/mips.md (JOIN_MODE): New mode iterator.
32413 (join2_load_Store<JOIN_MODE:mode>): New pattern.
32414 (join2_loadhi): Likewise.
32415 (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
32416 load-load and store-stores.
32417 * config/mips/mips.opt (mload-store-pairs): New option.
32418 (TARGET_LOAD_STORE_PAIRS): New macro.
32419 * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
32420 * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
32421 * config/mips/mips.c (mips_load_store_bonding_p): New function.
32422
32423 2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
32424
32425 * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
32426 explicit swaps.
32427 * dojump.c (do_compare_rtx_and_jump): Likewise.
32428 * expmed.c (emit_store_flag_1): Likewise.
32429 * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
32430 * final.c (sprint_ul): Use std::reverse for reversing a string.
32431 * fold-const.c (extract_muldiv_1): Use std::swap.
32432 * genmodes.c (emit_mode_int_n): Likewise.
32433 * ifcvt.c (dead_or_predicable): Likewise.
32434 * ira-build.c (ira_merge_live_ranges): Likewise.
32435 (swap_allocno_copy_ends_if_necessary): Likewise.
32436 * ira.c (ira_setup_alts): Likewise.
32437 * loop-iv.c (iv_analyze_expr): Likewise.
32438 (implies_p): Likewise.
32439 (canon_condition): Likewise.
32440 * lra-constraints.c (swap_operands): Likewise.
32441 * lra-lives.c (lra_merge_live_ranges): Likewise.
32442 * omega.c (swap): Remove.
32443 (bswap): Remove.
32444 (omega_unprotect_1): Use std::swap.
32445 (omega_solve_geq): Likewise.
32446 * optabs.c (expand_binop_directly): Likewise.
32447 (expand_binop): Likewise.
32448 (emit_conditional_move): Likewise.
32449 (emit_conditional_add): Likewise.
32450 * postreload.c (reload_cse_simplify_operands): Likewise.
32451 * reg-stack.c (emit_swap_insn): Likewise.
32452 (swap_to_top): Likewise.
32453 (compare_for_stack_reg): Likewise.
32454 (subst_asm_stack_regs): Likewise.
32455 * reload.c (find_reloads): Likewise.
32456 * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
32457 * sel-sched.c (invoke_reorder_hooks): Likewise.
32458 (create_block_for_bookkeeping): Likewise.
32459 * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
32460 (lambda_matrix_right_hermite): Use std::swap.
32461 * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
32462 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
32463 * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
32464 * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
32465 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
32466 * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
32467 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
32468 * tree-vrp.c (compare_ranges): Likewise.
32469 * var-tracking.c (add_with_sets): Likewise.
32470 (vt_find_locations): Likewise.
32471
32472 2015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
32473
32474 * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
32475 pie executables.
32476 (FBSD_ENDFILE_SPEC): Likewise.
32477 * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
32478 config/freebsd-spec.h.
32479 (ENDFILE_SPEC): Likewise.
32480
32481 2015-05-18 Uros Bizjak <ubizjak@gmail.com>
32482 Richard Henderson <rth@redhat.com>
32483
32484 PR target/57032
32485 * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
32486 Check for a memory location that is not a reference (using an AND)
32487 to an unaligned location here.
32488 * config/alpha/predicates.md (normal_memory_operand): Remove.
32489
32490 2015-05-18 Alex Velenko <Alex.Velenko@arm.com>
32491
32492 * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
32493 (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
32494
32495 2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
32496
32497 * config/mips/mips.c (micromips_globals): New variable.
32498 (mips_set_compression_mode): Save and reinitialize target-dependent
32499 state for microMIPS.
32500
32501 2015-05-18 Martin Liska <mliska@suse.cz>
32502
32503 * dbgcnt.def: Add new counter.
32504 * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
32505
32506 2015-05-18 Martin Liska <mliska@suse.cz>
32507
32508 * dbgcnt.def: Sort counters.
32509 * opts.c (common_handle_option): Do not compile if
32510 -fdbg-cnt-list is enabled.
32511
32512 2015-05-18 Tom de Vries <tom@codesourcery.com>
32513
32514 * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
32515 (gimplify_va_arg_expr): Remove do_deref handling. Remove adding of
32516 address operator to va_list operand.
32517 * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
32518 unconditionally.
32519 * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
32520 operand.
32521 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
32522 * config/s390/s390.c (s390_gimplify_va_arg): Same.
32523 * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
32524
32525 2015-05-18 Tom de Vries <tom@codesourcery.com>
32526
32527 * tree-ssa-tail-merge.c: Fix whitespace.
32528
32529 2015-05-17 Jim Wilson <jim.wilson@linaro.org>
32530
32531 * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
32532 cortex-a17, and cortex-a17.cortex-a7.
32533
32534 2015-05-17 Oleg Endo <olegendo@gcc.gnu.org>
32535
32536 PR target/54236
32537 * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
32538
32539 2015-05-17 Uros Bizjak <ubizjak@gmail.com>
32540
32541 PR target/66174
32542 * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
32543 QImode inner modes for TARGET_AVX512BW. Force mask operand
32544 to a register for AVX512F modes.
32545
32546 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
32547
32548 * toplev.c (emit_debug_global_declarations): Do not output debug info
32549 when doing slim LTO objects.
32550
32551 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
32552
32553 * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
32554 odr_types_equivalent_p): Declare.
32555 (odr_type_p): Use gcc_checking_assert.
32556 (type_in_anonymous_namespace_p) Declare.
32557 (type_with_linkage_p): Declare.
32558 * common.opt (Wlto-type-mismatch): New warning.
32559 * ipa-devirt.c (compound_type_base): New function.
32560 (odr_or_derived_type_p): New function.
32561 (odr_types_equivalent_p): New function.
32562 (add_type_duplicate): Simplify.
32563 (type_with_linkage_p): Add hack to prevent false positives on C types
32564 (type_in_anonymous_namespace_p): Likewise.
32565 * tree.c (need_assembler_name_p): Use type_with_linkage.
32566 * tree.h (type_in_anonymous_namespace_p): Remove.
32567 * doc/invoke.texi (-Wlto-type-mismatch): Document
32568
32569 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
32570
32571 * tree.c (verify_type_variant): Verify tree_base and type_common flags.
32572 (verify_type): Verify STRING_FLAG.
32573
32574 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
32575
32576 PR fortran/44054
32577 * tree-pretty-print.c (percent_K_format): Replace locus pointer
32578 with accessor function.
32579 * tree-diagnostic.c (diagnostic_report_current_function): Use
32580 diagnostic_location function.
32581 (maybe_unwind_expanded_macro_loc): Likewise.
32582 (virt_loc_aware_diagnostic_finalizer): Likewise.
32583 (default_tree_printer): Replace locus pointer with accessor function.
32584 * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
32585 (diagnostic_set_info_translated): Initialize second location.
32586 (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
32587 (diagnostic_show_locus): Handle two locations. Call
32588 diagnostic_print_caret_line.
32589 (diagnostic_print_caret_line): New.
32590 (default_diagnostic_starter): Use diagnostic_location function.
32591 (diagnostic_report_diagnostic): Use diagnostic_location function.
32592 (verbatim): Do not set text.locus.
32593 * diagnostic.h (struct diagnostic_info): Remove location field.
32594 (struct diagnostic_context): Make caret_chars an array of two.
32595 (diagnostic_location): New inline.
32596 (diagnostic_expand_location): Handle two locations.
32597 (diagnostic_same_line): New inline.
32598 (diagnostic_print_caret_line): Declare.
32599 (CARET_LINE_MARGIN): New constant.
32600 * pretty-print.c (pp_printf): Do not set text.locus.
32601 (pp_verbatim): Do not set text.locus.
32602 * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
32603 (struct text_info): Replace locus pointer with locations
32604 array. Add accessor functions.
32605
32606 2015-05-16 Kugan Vivekanandarajah <kuganv@linaro.org>
32607 Zhenqiang Chen <zhenqiang.chen@linaro.org>
32608
32609 PR target/65768
32610 * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
32611 * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
32612 large constants in register instead of splitting them.
32613
32614 2015-05-16 Uros Bizjak <ubizjak@gmail.com>
32615
32616 PR target/66140
32617 * config/alpha/alpha.c (get_aligned_mem): Also look for reload
32618 replacements in memory addresses.
32619 (get_unaligned_address): Ditto.
32620
32621 2015-05-16 James Bowman <james.bowman@ftdichip.com>
32622
32623 * config/ft32/*: New files for FT32 port.
32624 * doc/install.texi: Add FT32 information.
32625 * doc/invoke.texi: Add FT32 information.
32626 * doc/md.texi: Add FT32 information.
32627 * doc/contrib.texi: Self added.
32628
32629 2015-05-15 Marc Glisse <marc.glisse@inria.fr>
32630
32631 PR tree-optimization/64454
32632 * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
32633 (-1 - A -> ~A): Remove unnecessary condition.
32634
32635 2015-05-15 Gregor Richards <gregor.richards@uwaterloo.ca>
32636
32637 * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
32638 * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
32639 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
32640
32641 2015-05-15 Ilya Enkovich <ilya.enkovich@intel.com>
32642
32643 * ipa-chkp.h (chkp_wrap_function): New.
32644 * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
32645 (chkp_wrap_function_name): New.
32646 (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
32647 to get wrapper name.
32648 * lto-cgraph.c: Include ipa-chkp.h.
32649 (input_cgraph_1): Avoid alias chain for wrappers.
32650
32651 2015-05-15 Ilya Enkovich <enkovich.gnu@gmail.com>
32652
32653 PR middle-end/66134
32654 * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
32655 (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
32656
32657 2015-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32658
32659 * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
32660 (AARCH64_FL_SLOWMUL): Delete.
32661 (AARCH64_FL_CRC): Redefine to 1<<3.
32662 (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
32663
32664 2015-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32665
32666 * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
32667 casting.
32668
32669 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
32670
32671 * config/alpha/alpha.md (extendqidi2): Use general_operand
32672 instead of some_operand for operand[1] predicate.
32673 (extendhidi2): Ditto.
32674 (cbranchdi4): Use general_operand instead of some_operand
32675 for operand[1] and operands[2] predicates.
32676 (cstoredi4): Ditto.
32677 * config/alpha/predicates.md (some_operand): Remove unused predicate.
32678 (some_ni_operand): Ditto.
32679
32680 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
32681
32682 * config/alpha/alpha.c (alpha_extract_integer): Do not handle
32683 CONST_WIDE_INT and CONST_DOUBLE. Assert CONST_INT_P (x).
32684 (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
32685 low part of the constant using alpha_emit_set_const_1.
32686 (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
32687
32688 2015-05-14 Rohit Arul Raj <rohitrulraj@freescale.com>
32689
32690 * varasm.c (output_constant_pool_1): Pass down alignment from
32691 constant pool entry's descriptor to output_constant_pool_2.
32692 (output_object_block): Add comment prior to call to
32693 output_constant_pool_1.
32694
32695 2015-05-14 Vladimir Makarov <vmakarov@redhat.com>
32696
32697 PR rtl-optimization/65862
32698 * target.def (ira_change_pseudo_allocno_class): New hook.
32699 * targhooks.c (default_ira_change_pseudo_allocno_class): Default
32700 value of the hook.
32701 * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
32702 * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
32703 hook.
32704 * ira-costs.c (find_costs_and_classes): Call the hook and change
32705 classes when it is necessary.
32706 * doc/tm.texi: Update.
32707
32708 2015-05-14 Alexander Monakov <amonakov@ispras.ru>
32709
32710 * config/i386/i386.md (sibcall_memory): Check that register with
32711 callee address is not also used as one of the arguments, instead
32712 of checking that it is not live after the sibcall.
32713 (sibcall_pop_memory): Ditto.
32714 (sibcall_value_memory): Ditto.
32715 (sibcall_value_pop_memory): Ditto.
32716
32717 2015-05-14 Marc Glisse <marc.glisse@inria.fr>
32718
32719 * generic-match-head.c (types_match): Handle non-types.
32720 * gimple-match-head.c (types_match): Likewise.
32721 * match.pd: Remove unnecessary TREE_TYPE for types_match.
32722
32723 2015-05-14 Wilco Dijkstra <wdijkstr@arm.com>
32724
32725 * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
32726 (csneg3<mode>_insn): Enable expansion of pattern.
32727
32728 2015-05-14 Nick Clifton <nickc@redhat.com>
32729
32730 * config/rl78/rl78.c (rl78_select_section): Select the correct
32731 default section based upon the category of the decl.
32732
32733 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
32734
32735 PR rtl-optimization/30967
32736 * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
32737 destination mode for the cost of scc patterns.
32738
32739 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
32740
32741 * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
32742 using SWIM248 mode iterator.
32743 (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
32744 (*mulvhi4): mark operand[1] as commutative. Use nonimmediate_operand
32745 for operand[2] constraint.
32746 (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
32747
32748 2015-05-13 Jakub Jelinek <jakub@redhat.com>
32749
32750 PR middle-end/66133
32751 * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
32752 make sure it is never noreturn, even when the task body does not
32753 return.
32754 (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
32755 right before GIMPLE_OMP_RETURN.
32756 (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
32757 for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to
32758 GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
32759
32760 2015-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32761
32762 * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
32763 * tree-ssa-math-opts.c: Include params.h
32764 (pow_synth_sqrt_info): New struct.
32765 (representable_as_half_series_p): New function.
32766 (get_fn_chain): Likewise.
32767 (print_nested_fn): Likewise.
32768 (dump_fractional_sqrt_sequence): Likewise.
32769 (dump_integer_part): Likewise.
32770 (expand_pow_as_sqrts): Likewise.
32771 (gimple_expand_builtin_pow): Use above to attempt to expand
32772 pow as series of square roots. Removed now unused variables.
32773
32774 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
32775
32776 * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
32777 (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
32778 Remove *p0 and *p1 arguments. Rewrite function.
32779 (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
32780 (alpha_split_const_mov): Update calls to alpha_extract_integer and
32781 alpha_emit_set_long_const.
32782 (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
32783 (alpha_output_mi_thunk_osf): Ditto.
32784 * config/alpha/alpha.md (movti): Do not check operands[1]
32785 for CONST_DOUBLE.
32786
32787 2015-05-13 Richard Biener <rguenther@suse.de>
32788
32789 PR tree-optimization/66129
32790 * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
32791 commutative.
32792 (vect_schedule_slp_instance): Fix typo.
32793
32794 2015-05-13 David Malcolm <dmalcolm@redhat.com>
32795
32796 * common.opt (fdump-internal-locations): New option.
32797 * input.c: Include diagnostic-core.h.
32798 (get_end_location): New function.
32799 (write_digit): New function.
32800 (write_digit_row): New function.
32801 (dump_location_range): New function.
32802 (dump_labelled_location_range): New function.
32803 (dump_location_info): New function.
32804 * input.h (dump_location_info): New prototype.
32805 * toplev.c (compile_file): Handle flag_dump_locations.
32806
32807 2015-05-13 Eric Botcazou <ebotcazou@adacore.com>
32808
32809 * gimple-expr.h (is_gimple_constant): Reorder.
32810 * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
32811
32812 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
32813
32814 * combine.c (simplify_set): When generating a CC set, if the
32815 source already is in the correct mode, do not wrap it in a
32816 compare. Simplify the rest of that code.
32817
32818 2015-05-13 Richard Biener <rguenther@suse.de>
32819
32820 PR tree-optimization/66123
32821 * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
32822 a taken edge.
32823
32824 2015-05-13 Richard Biener <rguenther@suse.de>
32825
32826 PR middle-end/66110
32827 * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
32828 specially.
32829 * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
32830
32831 2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
32832
32833 * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
32834 * aclocal.m4: Regenerated with automake-1.11.6.
32835
32836 2015-05-13 Tom de Vries <tom@codesourcery.com>
32837
32838 PR tree-optimization/66010
32839 * gimplify.h (gimplify_va_arg_internal): Remove declaration.
32840 * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
32841 * tree-stdarg.c (expand_ifn_va_arg_1): ... here. Choose between lval
32842 and rval based on do_deref.
32843
32844 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
32845
32846 PR target/65103
32847 * config/i386/i386.c (ix86_rtx_costs): We want to propagate
32848 link time constants into adress expressions and therefore set
32849 their cost to 0.
32850
32851 2015-05-13 Jakub Jelinek <jakub@redhat.com>
32852
32853 PR target/66112
32854 * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
32855 Use SWI248 iterator instead of SWI.
32856 (*mulv<mode>4_1): Use SWI48 instead of SWI. Simplify output template.
32857 Use eq_attr "alternative" "0" instead of match_test in
32858 length_immediate attribute computation.
32859 (*mulvhi4, *mulvhi4_1): New define_insns.
32860
32861 PR target/66112
32862 * internal-fn.c (get_min_precision): Use UNSIGNED instead of
32863 SIGNED to get precision of non-negative value.
32864
32865 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
32866
32867 PR target/66048
32868 * function.c (diddle_return_value_1): Process bounds first.
32869 * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
32870 register.
32871
32872 2015-05-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
32873
32874 PR rtl-optimization/64616
32875 * loop-invariant.c (can_move_invariant_reg): New.
32876 (move_invariant_reg): Call above new function to decide whether
32877 instruction can just be moved, skipping creation of temporary
32878 register.
32879
32880 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
32881
32882 PR target/pr66047.c
32883 * i386.c (ix86_function_sseregparm): Only return -1 if local function
32884 with implied regparm is called from -mno-sse function.
32885 (init_cumulative_args): Output error if ix86_function_sseregparm
32886 return -1 and SSE register would be needed.
32887 (function_arg_advance_32): Likewise.
32888 (function_arg_32): Likewise.
32889 * i386.h (ix86_args): Add decl field.
32890
32891 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
32892
32893 PR ipa/65873
32894 * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
32895 inlines across optimization boundary.
32896
32897 2015-05-12 Jason Merrill <jason@redhat.com>
32898
32899 * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
32900 string literal and macro name.
32901
32902 2015-05-12 Steve Ellcey <sellcey@imgtec.com>
32903
32904 * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
32905 * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
32906 * config/mips/predicates.md (const_immlsa_operand): Remove log call.
32907
32908 2015-05-12 David Malcolm <dmalcolm@redhat.com>
32909
32910 * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
32911 (-Wmisleading-indentation): New option.
32912 * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
32913
32914 2015-05-12 Uros Bizjak <ubizjak@gmail.com>
32915
32916 * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
32917 * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
32918 (alpha_extract_integer): Ditto.
32919 (alpha_legitimate_constant_p): Ditto.
32920 (alpha_split_tmode_pair): Ditto.
32921 (alpha_preferred_reload_class): Add CONST_WIDE_INT.
32922 (alpha_expand_mov): Ditto.
32923 (print_operand): Remove handling of 'H' modifier.
32924 <case 'm'>: Remove CONST_DOUBLE handling.
32925 (summarize_insn): Handle CONST_WIDE_INT.
32926 * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
32927 (anddi3): Ditto.
32928 (movti): Handle CONST_WIDE_INT.
32929 * config/alpha/constraints.md ('H'): Remove constraint definition.
32930 ('G'): Do not match MODE_FLOAT class.
32931 * config/alpha/predicates.md (const0_operand): Also match
32932 const_wide_int.
32933 (non_add_const_operand): Ditto.
32934 (non_zero_const_operand): Ditto.
32935 (some_operand): Ditto.
32936 (input_operand): Ditto. Handle CONST_WIDE_INT.
32937 (and_operand): Do not match const_double.
32938 * config/alpha/sync.md (fetchop_constr): Remove H constraint.
32939
32940 2015-05-12 Andrew MacLeod <amacleod@redhat.com>
32941
32942 PR target/65697
32943 * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
32944 (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
32945 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
32946 is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
32947 is_mm_seq_cst, is_mm_sync): New accessor functions.
32948 * builtins.c (expand_builtin_sync_operation,
32949 expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
32950 (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
32951 (get_memmodel, expand_builtin_atomic_compare_exchange,
32952 expand_builtin_atomic_load, expand_builtin_atomic_store,
32953 expand_builtin_atomic_clear): Use new accessor routines.
32954 (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
32955 * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
32956 (maybe_emit_sync_lock_test_and_set): Use new accessors and
32957 MEMMODEL_SYNC_ACQUIRE.
32958 (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
32959 (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
32960 expand_atomic_store): Use new accessors.
32961 * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
32962 * tsan.c (instrument_builtin_call): Update check for memory model beyond
32963 final enum to use MEMMODEL_LAST.
32964 * c-family/c-common.c: Use new accessor for memmodel_base.
32965 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
32966 accessors.
32967 * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
32968 arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
32969 mem_thread_fence, *dmb): Likewise.
32970 * config/alpha/alpha.c (alpha_split_compare_and_swap,
32971 alpha_split_compare_and_swap_12): Likewise.
32972 * config/arm/arm.c (arm_expand_compare_and_swap,
32973 arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
32974 * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
32975 atomic_loaddi): Likewise.
32976 * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
32977 Likewise.
32978 * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
32979 * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
32980 use new accessors.
32981 * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
32982 atomic_store<mode>, atomic_compare_and_swap<mode>,
32983 atomic_exchange<mode>): Use new accessors.
32984 * config/mips/mips.c (mips_process_sync_loop): Likewise.
32985 * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
32986 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
32987 rs6000_post_atomic_barrier): Add new cases.
32988 (rs6000_expand_atomic_compare_and_swap): Use new accessors.
32989 * config/rs6000/sync.md (mem_thread_fence): Add new cases.
32990 (atomic_load<mode>): Add new cases and use new accessors.
32991 (store_quadpti): Add new cases.
32992 * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
32993 accessors.
32994 * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
32995 * doc/extend.texi: Update docs to indicate 16 bits are used for memory
32996 model, not 8.
32997
32998 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
32999
33000 * ipa-devirt.c (type_with_linkage_p): New function.
33001 (type_in_anonymous_namespace_p): Move here from tree.c; assert that
33002 type has linkage.
33003 (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
33004 (can_be_name_hashed_p): Simplify.
33005 (hash_odr_name): Check that type has linkage before checking if it is
33006 anonymous.
33007 (types_same_for_odr): Likewise.
33008 (odr_name_hasher::equal): Likewise.
33009 (odr_subtypes_equivalent_p): Likewise.
33010 (warn_types_mismatch): Likewise.
33011 (get_odr_type): Likewise.
33012 (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
33013 * ipa-utils.h (odr_type_p): Move offline.
33014 * tree.c (need_assembler_name_p): Fix handling of types
33015 without linkages.
33016 (type_in_anonymous_namespace_p): Move to ipa-devirt.c
33017
33018 2015-05-12 David Malcolm <dmalcolm@redhat.com>
33019
33020 * timevar.c (timevar_enable): Delete in favor of...
33021 (g_timer): New global.
33022 (struct timevar_def): Move to timevar.h inside class timer.
33023 (struct timevar_stack_def): Likewise.
33024 (timevars): Delete global in favor of field "m_timevars" within
33025 class timer in timevar.h
33026 (stack): Likewise, in favor of field "m_stack".
33027 (unused_stack_instances): Likewise, in favor of field
33028 "m_unused_stack_instances".
33029 (start_time): Likewise, in favor of field "m_start_time".
33030 (get_time): Eliminate check for timevar_enable.
33031 (timer::timer): New function, built from part of timevar_init.
33032 (timevar_init): Rewrite idempotency test from using
33033 "timevar_enable" bool to using dynamic allocation of "g_timer".
33034 Move rest of implementation into timer's constructor.
33035 (timevar_push_1): Rename to...
33036 (timer::push): ...this, adding "m_" prefixes to variables that
33037 are now fields of timer.
33038 (timevar_pop_1): Likewise, rename to...
33039 (timer::pop): ...this, and add "m_" prefixes.
33040 (timevar_start): Replace test for "timevar_enable" with one for
33041 "g_timer", and move bulk of implementation to...
33042 (timer::start): ...here, adding "m_" prefixes.
33043 (timevar_stop): Likewise, from here...
33044 (timer::stop): ...to here.
33045 (timevar_cond_start): Likewise, from here...
33046 (timer::cond_start): ...to here.
33047 (timevar_cond_stop): Likewise, from here...
33048 (timer::cond_stop): ...to here.
33049 (validate_phases): Rename to...
33050 (timer::validate_phases): ...this, and add "m_" prefixes. Make
33051 locals "total" and "tv" const.
33052 (timevar_print): Rename to...
33053 (timer::print): ...this, and add "m_" prefixes. Make locals
33054 "total" and "tv" const. Eliminate test for timevar_enable.
33055 * timevar.h (timevar_enable): Eliminate.
33056 (g_timer): New declaration.
33057 (timevar_push_1): Eliminate.
33058 (timevar_pop_1): Eliminate.
33059 (timevar_print): Eliminate.
33060 (class timer): New class.
33061 (timevar_push): Rewrite to use g_timer.
33062 (timevar_pop): Likewise.
33063 * toplev.c (toplev::~toplev): Likewise.
33064
33065 2015-05-12 Richard Earnshaw <rearnsha@arm.com>
33066
33067 * arm-protos.h (arm_sched_autopref): Delete.
33068 (tune_params): Re-organize, use enums for flag values.
33069 (FUSE_OPS): New macro.
33070 * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
33071 (ARM_PREFETCH_BENEFICIAL): Likewise.
33072 (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
33073 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
33074 (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
33075 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
33076 (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
33077 (arm_cortex_a57_tune, arm_xgene1_tune, arm_cortex_a5_tune)
33078 (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
33079 (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
33080 format.
33081 (arm_option_override, thumb2_reorg, arm_print_tune_info)
33082 (aarch_macro_fusion_pair_p): Update uses of current_tune.
33083 * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
33084
33085 2015-05-12 Sandra Loosemore <sandra@codesourcery.com>
33086
33087 * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
33088 "break".
33089
33090 2015-05-12 Chung-Lin Tang <cltang@codesourcery.com>
33091 Sandra Loosemore <sandra@codesourcery.com>
33092
33093 * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
33094 value.
33095 (REG_CLASS_NAMES): Add "IJMP_REGS".
33096 (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
33097 * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
33098 use new "c" register constraint.
33099 * config/nios2/constraint.md (c): New register constraint
33100 corresponding to IJMP_REGS.
33101
33102 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
33103
33104 * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
33105 *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
33106 define_splits): Delete, revamp, transmogrify into ...
33107 (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
33108 *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
33109 *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
33110 New.
33111
33112 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
33113
33114 * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
33115 gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
33116
33117 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
33118
33119 * config/rs6000/rs6000.md (extzv): FAIL for SImode.
33120 (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
33121 *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
33122 *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
33123 *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
33124 *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
33125 *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
33126 *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
33127 *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
33128 *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
33129 *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
33130 *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
33131 *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
33132 *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
33133 *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
33134 *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
33135 and 30 corresponding splitters): Delete.
33136
33137 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
33138
33139 * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
33140 zero_extract.
33141
33142 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
33143
33144 * combine.c (recog_for_combine_1): New function, factored out
33145 from recog_for_combine.
33146 (change_zero_ext): New function.
33147 (recog_for_combine): If recog fails, try again with the pattern
33148 modified by change_zero_ext; if that still fails, restore the
33149 pattern.
33150
33151 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
33152
33153 * combine.c (get_undo_marker): New function.
33154 (undo_to_marker): New function, largely factored out from ...
33155 (undo_all): ... this. Adjust.
33156
33157 2015-05-12 Richard Biener <rguenther@suse.de>
33158
33159 PR tree-optimization/66101
33160 * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
33161 fixup if we turn a loop exit edge to a fallthru edge.
33162
33163 2015-05-12 Richard Biener <rguenther@suse.de>
33164
33165 PR tree-optimization/37021
33166 * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
33167 (SLP_TREE_TWO_OPERATORS): New define.
33168 * tree-vect-slp.c (vect_create_new_slp_node): Initialize
33169 SLP_TREE_TWO_OPERATORS.
33170 (vect_build_slp_tree_1): Allow two mixing plus/minus in an
33171 SLP node.
33172 (vect_build_slp_tree): Adjust.
33173 (vect_analyze_slp_cost_1): Likewise.
33174 (vect_schedule_slp_instance): Vectorize mixing plus/minus by
33175 emitting two vector stmts and mixing the results.
33176
33177 2015-05-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
33178
33179 * call.c (print_z_candidates): Remove dead code.
33180
33181 2015-05-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
33182
33183 * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
33184 and zEC12_simple_fp.
33185 * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
33186 to 1.
33187
33188 2015-05-12 Tom de Vries <tom@codesourcery.com>
33189
33190 PR tree-optimization/66010
33191 * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
33192 ifn_va_arg.
33193 * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
33194 (gimplify_va_arg_internal): Remove loc parameter. Assert no array-typed
33195 va_lists are passed, and remove corresponding handling.
33196 (gimplify_va_arg_expr): Only take address of ap if necessary. Add
33197 do_deref argument to ifn_va_arg.
33198 * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
33199 ifn_va_arg.
33200
33201 2015-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33202
33203 PR target/65955
33204 * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
33205 REG before taking its REGNO.
33206
33207 2015-05-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
33208
33209 * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
33210 rsp->sign_bit_copies and rsp->nonzero_bits into ...
33211 (update_rsp_from_reg_equal): This. Also use REG_EQUAL note on src if
33212 present to get more accurate information about the number of sign bit
33213 copies and non zero bits.
33214
33215 2015-05-12 Richard Biener <rguenther@suse.de>
33216
33217 * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
33218 do not allow unrolling.
33219
33220 2015-05-11 Richard Henderson <rth@redhat.com>
33221
33222 * config/i386/i386-modes.def (CCP): New.
33223 * config/i386/i386.c (put_condition_code): Handle it.
33224 (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
33225
33226 2015-05-11 Richard Henderson <rth@redhat.com>
33227
33228 * target.def (md_asm_clobbers): Replace with...
33229 (md_asm_adjust): this.
33230 * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
33231 (TARGET_MD_ASM_ADJUST): New.
33232 * tm.texi: Rebuild.
33233 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
33234 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
33235 * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
33236
33237 * cfgexpand.c (check_operand_nalternatives): Accept vector of
33238 constraints instead of lists of outputs and inputs.
33239 (expand_asm_stmt): Save and restore input_location around the
33240 body of the function. Move asm data into vectors instead of
33241 building tree lists. Generate cleanup sequences as needed,
33242 rather than waiting til the end. Use new md_asm_adjust hook.
33243
33244 * config/vxworks.c: Include vec.h before target.h.
33245 * gimple.c: Likewise.
33246 * incpath.c: Likewise.
33247 * mode-switching.c: Likewise.
33248
33249 * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
33250 (cris_md_asm_adjust): this.
33251 (TARGET_MD_ASM_CLOBBERS): Remove.
33252 (TARGET_MD_ASM_ADJUST): New.
33253 * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
33254 (ix86_md_asm_adjust): this.
33255 (TARGET_MD_ASM_CLOBBERS): Remove.
33256 (TARGET_MD_ASM_ADJUST): New.
33257 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
33258 (mn10300_md_asm_adjust): this.
33259 (TARGET_MD_ASM_CLOBBERS): Remove.
33260 (TARGET_MD_ASM_ADJUST): New.
33261 * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
33262 (rs6000_md_asm_adjust): this.
33263 (TARGET_MD_ASM_CLOBBERS): Remove.
33264 (TARGET_MD_ASM_ADJUST): New.
33265 * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
33266 (visium_md_asm_adjust): this.
33267 (TARGET_MD_ASM_CLOBBERS): Remove.
33268 (TARGET_MD_ASM_ADJUST): New.
33269
33270 2015-05-11 Richard Henderson <rth@redhat.com>
33271
33272 * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
33273 if noutputs is zero.
33274 * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
33275
33276 * cfgexpand.c (expand_asm_operands): Merge into...
33277 (expand_asm_stmt): ... here.
33278
33279 * cfgexpand.c (expand_asm_operands): Don't call
33280 resolve_asm_operand_names.
33281 * stmt.c (resolve_asm_operand_names): Clarify block comment.
33282
33283 2015-05-11 Jan Hubicka <hubicka@ucw.cz>
33284
33285 * dwarf2out.c (gen_member_die): Sanity check that we access
33286 TYPE_MAIN_VARIANT for TYPE_METHODS.
33287 * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
33288 checking TYPE_METHODS.
33289 * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
33290 if non-null.
33291 (build_distinct_type_copy): Clear TYPE_METHODS.
33292 (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
33293 (verify_type): Allow TYPE_METHODS to be error_mark_node.
33294 * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
33295
33296 2015-05-11 Eric Botcazou <ebotcazou@adacore.com>
33297
33298 * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
33299 (emit_pattern_before_setloc): Likewise.
33300
33301 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
33302
33303 * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
33304 for define_peephole2s.
33305 (get_peephole2_pattern): New function.
33306 (main): Use it. Call validate_pattern.
33307
33308 2015-05-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
33309
33310 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
33311 LAST_CALLEE_SAVED_REG instead of hard-coded register number.
33312 (Last callee saved reg is different for AVR_TINY architecture)
33313
33314 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
33315
33316 * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
33317 when looking for memory references.
33318
33319 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
33320
33321 PR target/65753
33322 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
33323 via function pointers.
33324
33325 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
33326
33327 * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
33328 indirect call by forcing address into a pseudo with -fno-plt.
33329 * common.opt (flag_plt): New option.
33330 * doc/invoke.texi (Code Generation Options): Add -fno-plt.
33331 ([-fno-plt]): Document.
33332
33333 2015-05-11 Markus Trippelsdorf <markus@trippelsdorf.de>
33334
33335 PR bootstrap/66105
33336 * config/rs6000/option-defaults.h: Add space between string literal
33337 and macro name.
33338
33339 2015-05-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
33340
33341 * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
33342 accross ARM targets.
33343
33344 2015-05-11 Christian Bruel <christian.bruel@st.com>
33345
33346 * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
33347 * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
33348
33349 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
33350
33351 PR rtl-optimization/66076
33352 * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
33353 Don't grow the heap array if it is already big enough from a
33354 previous iteration.
33355
33356 2015-05-11 Christian Bruel <christian.bruel@st.com>
33357
33358 * config/arm/arm-protos.h (arm_declare_function_name): Declare.
33359 (is_called_in_ARM_mode): Remove.
33360 * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
33361 (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
33362 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
33363 arm_declare_function_name.
33364
33365 2015-05-11 Christian Bruel <christian.bruel@st.com>
33366
33367 * config/arm/arm.c (arm_option_override): Reoganized and split into :
33368 (arm_option_params_internal); New function.
33369 (arm_option_check_internal): New function.
33370 (arm_option_override_internal): New function.
33371 (thumb_code, thumb1_code): Remove.
33372 * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
33373 (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
33374 (thumb_code, thumb1_code): Remove.
33375 * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
33376
33377 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
33378
33379 * config/alpha/alpha.c (alpha_emit_set_const_1)
33380 (alpha_emit_set_long_const, alpha_extract_integer)
33381 (alpha_legitimate_constant_p, alpha_split_const_mov)
33382 (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
33383 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
33384 (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
33385 HOST_WIDE_INT_1U.
33386 * config/alpha/predicates.md (mode_mask_operand): Do not match
33387 const_double RTX.
33388 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
33389 * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
33390 Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
33391 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
33392 (*negtf_internal): Use gen_int_mode instead of immed_double_const.
33393
33394 2015-05-11 Jakub Jelinek <jakub@redhat.com>
33395
33396 PR target/65780
33397 * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
33398 default_binds_local_p_2.
33399 * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
33400 * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
33401
33402 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
33403
33404 * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
33405
33406 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
33407
33408 Patch by Richard Biener
33409 * coverage.c (coverage_obj_init): Delay building of type variant
33410 until the type is finished.
33411
33412 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
33413
33414 * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
33415 mismatch between C and C++ type; compoare correctly ARG_TYPES
33416 for non-prototypes and output correctly parameter index for METHOD_TYPE.
33417 (odr_types_equivalent_p): Fix wording of warning about attributes;
33418 it is OK to match prototype and non-prototype.
33419
33420 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
33421
33422 * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
33423 TYPE_ARG_TYPES list.
33424 (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
33425 * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
33426
33427 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
33428
33429 * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
33430 * tree.h (is_lang_specific): Constify.
33431
33432 2015-05-09 Marc Glisse <marc.glisse@inria.fr>
33433
33434 PR tree-optimization/64454
33435 * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
33436 Rewrite.
33437
33438 2015-05-08 Jason Merrill <jason@redhat.com>
33439
33440 * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
33441 config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
33442 config/darwin.h, config/darwin9.h, config/elfos.h,
33443 config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
33444 config/microblaze/microblaze.h, config/mips/mips.h,
33445 config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
33446 config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
33447 config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
33448 config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
33449 config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
33450 cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
33451 dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
33452 ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
33453 ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
33454 modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
33455 tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
33456 between string literal and macro name.
33457
33458 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33459
33460 * jump.c: Change argument types to rtx_insn *.
33461 * rtl.h: Adjust.
33462
33463 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33464
33465 * lra-constraints.c: Change argument type to rtx_insn *.
33466
33467 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33468
33469 * df-problems.c: Change argument type to rtx_insn *.
33470
33471 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33472
33473 * combine.c: Change argument type to rtx_insn *.
33474
33475 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33476
33477 * rtl.h: Adjust.
33478 * rtlanal.c: Change argument type to rtx_insn *.
33479
33480 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33481
33482 * sched-deps.c: Change argument types to rtx_insn *.
33483 * sched-int.h: Adjust.
33484
33485 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33486
33487 * dwarf2cfi.c: Change argument type to rtx_insn *.
33488
33489 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33490
33491 * ira.c (decrease_live_ranges_number): Changetype of local
33492 variable to rtx_insn *.
33493 * recog.c: Change argument types to rtx_insn *.
33494 * recog.h: Adjust.
33495
33496 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33497
33498 * reorg.c: Change argument types to rtx_insn *.
33499
33500 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33501
33502 * ira-color.c: Change argument types to rtx_insn *.
33503 * lra-eliminations.c: Likewise.
33504 * ira.h: Adjust.
33505
33506 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33507
33508 * gcse.c: Change argument types to rtx_insn *.
33509
33510 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33511
33512 * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
33513
33514 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33515
33516 * emit-rtl.c (emit_debug_insn_before): Change argument type to
33517 rtx_insn *.
33518 * rtl.h: Adjust.
33519
33520 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33521
33522 * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
33523 * rtl.h: Adjust.
33524
33525 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33526
33527 * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
33528 * rtl.h: Adjust.
33529
33530 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33531
33532 * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
33533 * rtl.h: Adjust.
33534
33535 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33536
33537 * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
33538 * rtl.h: Adjust.
33539
33540 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33541
33542 * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
33543 to rtx_insn *.
33544 * rtl.h: Adjust.
33545
33546 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33547
33548 * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
33549 to rtx_insn *.
33550 * rtl.h: Likewise.
33551
33552 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33553
33554 * except.c (can_nonlocal_goto): Change type of argument to
33555 rtx_insn *.
33556 * rtl.h: Adjust.
33557
33558 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33559
33560 * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
33561 * rtl.h: Adjust.
33562
33563 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33564
33565 * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
33566 * cfgrtl.c (can_delete_label_p): Adjust.
33567 * rtl.h: likewise.
33568
33569 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33570
33571 * reorg.c (stop_search_p): Change argument to rtx_insn *.
33572
33573 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33574
33575 * except.c (make_reg_eh_region_note): Change argument to
33576 rtx_insn *.
33577 (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
33578 * except.h: Adjust.
33579
33580 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
33581
33582 * mode-switching.c (commit_mode_sets): Change type of local
33583 variable from rtx to rtx_insn *.
33584
33585 2015-05-08 Jim Wilson <jim.wilson@linaro.org>
33586
33587 * doc/install.texi (--enable-languages): Add missing jit and lto info.
33588 Add ^ to grep command.
33589 * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
33590 arg to last gimple_simplify declaration. Add missing gimple_build
33591 declaration for built-in function case with four tree args.
33592
33593 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
33594 Szabolcs Nagy <szabolcs.nagy@arm.com>
33595
33596 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
33597 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
33598 (GNU_USER_DYNAMIC_LINKERN32): Update.
33599
33600 2015-05-08 Richard Biener <rguenther@suse.de>
33601
33602 PR tree-optimization/66036
33603 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
33604 Handle strided group loads.
33605 (vect_verify_datarefs_alignment): Likewise.
33606 (vect_enhance_data_refs_alignment): Likewise.
33607 (vect_analyze_group_access): Likewise.
33608 (vect_analyze_data_ref_access): Likewise.
33609 (vect_analyze_data_ref_accesses): Likewise.
33610 * tree-vect-stmts.c (vect_model_load_cost): Likewise.
33611 (vectorizable_load): Likewise.
33612
33613 2015-05-08 Segher Boessenkool <segher@kernel.crashing.org>
33614
33615 * config/rs6000/rs6000.md: Require operand inequality in one
33616 of the peepholes.
33617
33618 2015-05-08 Richard Sandiford <richard.sandiford@arm.com>
33619 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
33620
33621 * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
33622 from (set ...).
33623 * config/rx/rx.md (movdi, movdf): Likewise.
33624 Likewise for define_peephole2s.
33625
33626 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
33627
33628 * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
33629 vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
33630 vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
33631 vtst_u64): Rewrite using gcc vector extensions.
33632
33633 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
33634
33635 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
33636 vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
33637
33638 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
33639
33640 * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
33641
33642 2015-05-08 Szabolcs Nagy <szabolcs.nagy@arm.com>
33643
33644 * config/glibc-stdint.h (OPTION_MUSL): Define.
33645 (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
33646 Change the definition based on OPTION_MUSL for 64 bit targets.
33647 * config/linux.h (OPTION_MUSL): Redefine.
33648 * config/alpha/linux.h (OPTION_MUSL): Redefine.
33649 * config/rs6000/linux.h (OPTION_MUSL): Redefine.
33650 * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
33651
33652 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
33653 Szabolcs Nagy <szabolcs.nagy@arm.com>
33654
33655 * config.gcc (LIBC_MUSL): New tm_defines macro.
33656 * config/linux.h (OPTION_MUSL): Define.
33657 (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
33658 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
33659 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
33660 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
33661 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
33662 * config/linux.opt (mmusl): New option.
33663 * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
33664 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
33665 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
33666 * configure: Regenerate.
33667
33668 2015-05-08 H.J. Lu <hongjiu.lu@intel.com>
33669 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
33670
33671 PR target/48904
33672 * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
33673 * config/i386/knetbsd-gnu64.h: New file.
33674
33675 2015-05-08 Marek Polacek <polacek@redhat.com>
33676
33677 PR c/64918
33678 * doc/invoke.texi: Document -Woverride-init-side-effects.
33679
33680 2015-05-07 Marek Polacek <polacek@redhat.com>
33681
33682 PR c/65179
33683 * doc/invoke.texi: Document -Wshift-negative-value.
33684
33685 2015-05-06 Aditya Kumar <hiraditya@msn.com>
33686
33687 * gcov-tool.c (do_merge): Refactore to remove int ret.
33688 * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
33689 !type == FUNC to type != FUNC.
33690 * reload.h (struct target_reload): Changee to type of
33691 x_spill_indirect_levels from bool to unsigned char.
33692
33693 2015-05-07 Richard Sandiford <richard.sandiford@arm.com>
33694
33695 * rtl.h (always_void_p): New function.
33696 * gengenrtl.c (always_void_p): Likewise.
33697 (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
33698 with code foo are always VOIDmode.
33699 * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
33700 * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
33701 compare-elim.c, config/aarch64/aarch64.c,
33702 config/aarch64/aarch64.md, config/alpha/alpha.c,
33703 config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
33704 config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
33705 config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
33706 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
33707 config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
33708 config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
33709 config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
33710 config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
33711 config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
33712 config/ia64/vect.md, config/iq2000/iq2000.c,
33713 config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
33714 config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
33715 config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
33716 config/mep/mep.c, config/microblaze/microblaze.c,
33717 config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
33718 config/mn10300/mn10300.c, config/msp430/msp430.c,
33719 config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
33720 config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
33721 config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
33722 config/rs6000/altivec.md, config/rs6000/rs6000.c,
33723 config/rs6000/rs6000.md, config/rs6000/vector.md,
33724 config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
33725 config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
33726 config/sh/sh.md, config/sh/sh_treg_combine.cc,
33727 config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
33728 config/spu/spu.md, config/stormy16/stormy16.c,
33729 config/tilegx/tilegx.c, config/tilegx/tilegx.md,
33730 config/tilepro/tilepro.c, config/tilepro/tilepro.md,
33731 config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
33732 config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
33733 expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
33734 lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
33735 reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
33736 var-tracking.c: Update calls accordingly.
33737
33738 2015-05-07 Segher Boessenkool <segher@kernel.crashing.org>
33739
33740 PR middle-end/192
33741 PR middle-end/54303
33742 * varasm.c (function_mergeable_rodata_prefix): New function.
33743 (mergeable_string_section): Use it.
33744 (mergeable_constant_section): Use it.
33745
33746 2015-05-07 Jeff Law <law@redhat.com>
33747
33748 PR target/39726
33749 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
33750 simplifier to narrow arithmetic.
33751 * generic-match-head.c: (types_match, single_use): New functions.
33752 * gimple-match-head.c: (types_match, single_use): New functions.
33753
33754 2015-05-07 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
33755
33756 * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
33757 rtx type.
33758
33759 2015-05-07 Richard Biener <rguenther@suse.de>
33760
33761 PR tree-optimization/66002
33762 * passes.def: Schedule another pass_merge_phi after ifcombine, right
33763 before phiopt.
33764
33765 2015-05-07 Marek Polacek <polacek@redhat.com>
33766 Martin Uecker <uecker@eecs.berkeley.edu>
33767
33768 * doc/invoke.texi: Document -fsanitize=bounds-strict.
33769 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
33770 into SANITIZE_NONDEFAULT.
33771 * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
33772
33773 2015-05-07 Uros Bizjak <ubizjak@gmail.com>
33774
33775 PR target/66015
33776 * config/alpha/alpha.c (alpha_override_options_after_change): New.
33777 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
33778 (alpha_override_options): Move align_loops, align_jumps and
33779 align_functions handling into alpha_override_options_after_change.
33780
33781 2015-05-06 Sandra Loosemore <sandra@codesourcery.com>
33782 Chris Jones <chrisj@nvidia.com>
33783 Joshua Conner <jconner@nvidia.com>
33784
33785 * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
33786 linking of crtfastmath.o.
33787 * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
33788
33789 2015-05-06 Segher Boessenkool <segher@kernel.crashing.org>
33790
33791 * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
33792 (cstore<mode>4_unsigned_imm): New expander.
33793 (cstore<mode>4): Remove empty constraint strings. Use the new
33794 expanders.
33795
33796 2015-05-06 Yvan Roux <yvan.roux@linaro.org>
33797
33798 PR target/64208
33799 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
33800 alternatives.
33801
33802 2015-05-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
33803
33804 * config/aarch64/geniterators.sh: Use standard BRE in sed.
33805
33806 2015-05-06 Alan Modra <amodra@gmail.com>
33807
33808 PR target/66033
33809 * config/rs6000/rs6000.md (nop): Use an unspec pattern.
33810 (UNSPEC_NOP): Define.
33811 (reload_vsx_from_gpr<mode>): Add missing DONE.
33812 (reload_gpr_from_vsx<mode>): Likewise.
33813 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
33814 (vsx_div_v2di, vsx_udiv_v2di): Likewise.
33815
33816 2015-05-06 Christian Bruel <christian.bruel@st.com>
33817
33818 PR target/66015
33819 * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
33820 align_jumps, align_functions into aarch64_override_options_after_change.
33821
33822 2015-05-06 Richard Biener <rguenther@suse.de>
33823
33824 * tree-vect-slp.c (vect_supported_load_permutation_p): Use
33825 vect_transform_slp_perm_load to check if we support a permutation
33826 for basic-block vectorization.
33827
33828 2015-05-06 Nick Clifton <nickc@redhat.com>
33829
33830 * config/rl78/rl78.c (need_to_save): Save register 22 if it is
33831 used, even if it is not being used as a frame pointer.
33832
33833 2015-05-05 Jason Merrill <jason@redhat.com>
33834
33835 * dwarf2out.c (gen_member_die): Don't emit anything for an
33836 anonymous class constructor.
33837
33838 2015-05-05 David Malcolm <dmalcolm@redhat.com>
33839
33840 * auto-profile.c (afdo_find_equiv_class): Fix indentation so
33841 that it reflects the block structure.
33842 (afdo_propagate_edge): Likewise.
33843 (afdo_calculate_branch_prob): Likewise.
33844 (afdo_annotate_cfg): Likewise.
33845 * cfgcleanup.c (equal_different_set_p): Likewise.
33846 (try_crossjump_to_edge): Likewise.
33847 * cgraph.c (cgraph_node::verify_node): Likewise.
33848 * cgraphunit.c (expand_all_functions): Likewise.
33849 * config/i386/i386.c (ix86_expand_copysign): Likewise.
33850 (exact_dependency_1): Likewise.
33851 * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
33852 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
33853 * gensupport.c (process_define_subst): Likewise.
33854 * lto-wrapper.c (merge_and_complain): Likewise.
33855 * tree-if-conv.c (if_convertible_bb_p): Likewise.
33856 * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
33857 * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
33858 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
33859 * tree-vect-loop.c (vectorizable_reduction): Likewise.
33860 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
33861 * tree-vect-stmts.c (vectorizable_shift): Likewise.
33862 * tree-vrp.c (vrp_finalize): Likewise.
33863 * tree.c (variably_modified_type_p): Likewise.
33864
33865 2015-05-05 Jack Howarth <howarth.at.gcc@gmail.com>
33866
33867 * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
33868 on darwin12 and later.
33869 * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
33870 file to pass -rdynamic on darwin12 and later.
33871 * config/darwin.opt (rdynamic): Add.
33872
33873 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
33874
33875 * doc/extend.texi (C Extensions): Update menu for moved Variable
33876 Attributes and Type Attributes sections.
33877
33878 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
33879
33880 PR target/65990
33881 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
33882 if rep_8byte stringop strategy was specified for 32-bit target.
33883
33884 2015-05-05 Ilya Tocar <ilya.tocar@intel.com>
33885
33886 PR target/65915
33887 * config/i386/i386.md (vector convert to float spltiter): Check for
33888 xmm16+, when splitting scalar float conversion.
33889 * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
33890
33891 2015-05-05 Nick Clifton <nickc@redhat.com>
33892
33893 * config/msp430/msp430-opts.h (enum msp430_regions): New.
33894 * config/msp430/msp430.c (msp430_override_options): Complain if
33895 -mcode-region or -mdata-region is used on a non MSP430X.
33896 (msp430_section_attr): New function. Checks lower, upper and
33897 either attributes.
33898 (msp430_attribute_table): Add lower, upper and either.
33899 (gen_prefix): New function. Generates a prefix for a section
33900 name.
33901 (msp430_select_section): New function - handles the choice of
33902 section for an object. Takes into account memory region
33903 attributes and options.
33904 (msp430_function_section): Use gen_prefix.
33905 (TARGET_SECTION_TYPE_FLAGS): Define.
33906 (msp430_section_type_flags): New function.
33907 (TARGET_ASM_UNIQUE_SECTION): Define.
33908 (msp430_unique_section): New function.
33909 (msp430_output_aligned_decl_common): New function.
33910 (msp430_do_not_relax_short_jumps): New function.
33911 * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
33912 Define.
33913 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
33914 * config/msp430/msp430-protos.h
33915 (msp430_do_not_relax_short_jumps): New prototype.
33916 (msp430_output_aligned_decl_common): New prototype.
33917 * config/msp430/msp430.md (length): New attribute.
33918 (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
33919 then use a long code sequence for short jumps.
33920 * config/msp430/msp430.opt (mcode-region): New.
33921 (mdata-region): New.
33922 * doc/invoke.texi: Document new options.
33923 * doc/extend.texi: Document new attributes.
33924
33925 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
33926
33927 * config/aarch64-protos.h (struct cpu_branch_cost): New.
33928 (tune_params): Add field branch_costs.
33929 (aarch64_branch_cost): Declare.
33930 * config/aarch64.c (generic_branch_cost): New.
33931 (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
33932 (cortexa53_tunings): Likewise.
33933 (cortexa57_tunings): Likewise.
33934 (thunderx_tunings): Likewise.
33935 (xgene1_tunings): Likewise.
33936 (aarch64_branch_cost): Define.
33937 * config/aarch64/aarch64.h (BRANCH_COST): Redefine.
33938
33939 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
33940
33941 * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
33942 and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
33943 * config/i386/i386.md: Ditto.
33944 * config/i386/winnt.c: Ditto.
33945
33946 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
33947
33948 * doc/extend.texi (__atomic Builtins): Move implementation details
33949 to the end of the description, rewrite opening paragraphs, state
33950 difference with __sync builtins, state C11/C++11 assumptions,
33951 weaken itemized descriptions, add explanation of memory model
33952 behaviour, expand description of compare-exchange, simplify text.
33953
33954 2015-05-05 Renlin Li <renlin.li@arm.com>
33955
33956 * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
33957
33958 2015-05-05 Yvan Roux <yvan.roux@linaro.org>
33959
33960 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
33961 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
33962 * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
33963 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
33964 * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
33965 * configure: Regenerate.
33966 * configure.ac: Add --enable-fix-cortex-a53-843419 option.
33967 * doc/install.texi (aarch64*-*-*): Document new
33968 --enable-fix-cortex-a53-843419 option.
33969 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
33970 and -mno-fix-cortex-a53-843419 options.
33971
33972 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
33973
33974 PR target/65871
33975 * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
33976
33977 2015-05-04 Jan Hubicka <hubicka@ucw.cz>
33978
33979 * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
33980 fix overactive TYPE_MIN_VALUE check and add FIXME for type
33981 compatibility problems.
33982
33983 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
33984
33985 * config/microblaze/microblaze.md (cbranchsi4): Added immediate
33986 constraints.
33987 (cbranchsi4_reg): New.
33988 * config/microblaze/microblaze.c
33989 (microblaze_expand_conditional_branch_reg): New.
33990 * config/microblaze/microblaze-protos.h
33991 (microblaze_expand_conditional_branch_reg): New prototype.
33992
33993 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
33994
33995 * config/microblaze/microblaze.md (peephole2): New.
33996
33997 2015-05-04 Jeff Law <law@redhat.com>
33998
33999 Revert:
34000 2015-05-04 Jeff Law <law@redhat.com>
34001
34002 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
34003 simplifier to narrow arithmetic.
34004 * generic-match-head.c: (types_match, single_use): New functions.
34005 * gimple-match-head.c: (types_match, single_use): New functions.
34006
34007 2015-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
34008
34009 PR target/65987
34010 * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
34011 (split_branches): Likewise.
34012
34013 2015-05-04 Sandra Loosemore <sandra@codesourcery.com>
34014
34015 * common.opt (fdelete-null-pointer-checks): Init to -1.
34016 * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
34017 override flag_delete_null_pointer_checks default.
34018 * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
34019 behavior re address zero. Better document target-specific behavior.
34020 (-fisolate-errneous-paths-dereference): Mention relationship to
34021 -fdelete-null-pointer-checks.
34022
34023 2015-05-04 Jakub Jelinek <jakub@redhat.com>
34024
34025 PR tree-optimization/65984
34026 * ubsan.c: Include tree-cfg.h.
34027 (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
34028 stmt_could_throw_p test, rename can_throw variable to ends_bb.
34029
34030 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
34031
34032 * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
34033 to CONST_DOUBLE_P predicate.
34034 (standard_sse_constant_p): Return 0 for !TARGET_SSE.
34035 (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
34036 allow only operands that satisfy standard_sse_constant_p predicate.
34037 * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
34038 to CONST_DOUBLE_P predicate.
34039
34040 2015-05-04 Jeff Law <law@redhat.com>
34041
34042 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
34043 simplifier to narrow arithmetic.
34044 * generic-match-head.c: (types_match, single_use): New functions.
34045 * gimple-match-head.c: (types_match, single_use): New functions.
34046
34047 2015-05-04 Andreas Tobler <andreast@gcc.gnu.org>
34048
34049 * config/arm/arm.c: Restore bootstrap.
34050
34051 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
34052
34053 * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
34054 * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
34055 as CONST_WIDE_INT, not CONST_DOUBLE.
34056 (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
34057 (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
34058 (ix86_find_base_term): Do not check for CONST_DOUBLE.
34059 (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
34060 (ix86_build_signbit_mask): Rewrite using wide ints.
34061 (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
34062 (ix86_rtx_costs): Handle CONST_WIDE_INT.
34063 (find_constant): Ditto.
34064 * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
34065 using gen_int_mode.
34066 * config/i386/predicates.md (x86_64_immediate_operand)
34067 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
34068 (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
34069 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
34070 (const0_operand): Also match const_wide_int.
34071 (constm1_operand): Ditto.
34072 (const1_operand): Ditto.
34073
34074 2015-05-04 Richard Biener <rguenther@suse.de>
34075
34076 PR tree-optimization/65965
34077 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
34078 store groups at gaps.
34079
34080 2015-05-04 Richard Biener <rguenther@suse.de>
34081
34082 PR tree-optimization/65935
34083 * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
34084 then make sure to apply that swapping to the IL.
34085
34086 2015-05-04 Jakub Jelinek <jakub@redhat.com>
34087
34088 * Makefile.in (PATCHLEVEL_c): New variable.
34089 (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
34090 expand the same way as if DEVPHASE_c was non-empty.
34091
34092 2015-05-04 Kai Tietz <ktietz@redhat.com>
34093
34094 PR target/65559
34095 * lto-wrapper.c (run_gcc): Open filename
34096 in binary-mode.
34097
34098 2015-05-03 Sandra Loosemore <sandra@codesourcery.com>
34099
34100 * doc/extend.texi (Variable Attributes, Type Attributes): Move
34101 sections up in file, to immediately after the Function Attributes
34102 section.
34103
34104 2015-05-02 Jan Hubicka <hubicka@ucw.cz>
34105
34106 * tree.c (verify_type): Check various uses of TYPE_MINVAL.
34107
34108 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34109
34110 * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
34111 (insert_partition_copy_on_edge): Adjust.
34112 (insert_rtx_to_part_on_edge): Likewise.
34113 (insert_part_to_rtx_on_edge): Likewise.
34114
34115 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34116
34117 * function.c (set_return_jump_label): Change type of argument to
34118 rtx_insn *.
34119 * function.h (set_return_jump_label): Adjust.
34120
34121 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34122
34123 * reload.h (struct reg_equivs_t): Change type of init to
34124 rtx_insn *.
34125 * ira.c (fix_reg_equiv_init): Adjust.
34126 * reload1.c (eliminate_regs_1): Likewise.
34127 (init_eliminable_invariants): Likewise.
34128
34129 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34130
34131 * cselib.c (fp_setter_insn): Take a rtx_insn *.
34132 * cselib.h (fp_setter_insn): Adjust.
34133
34134 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34135
34136 * recog.c (struct validate_replace_src_data): Change type of
34137 insn field to rtx_insn *.
34138 (validate_replace_src_group): Change type of argument to rtx_insn *.
34139 * recog.h (validate_replace_src_group): Adjust.
34140
34141 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34142
34143 * haifa-sched.c: Change the type of some variables to rtx_insn *.
34144 * sched-deps.c: Likewise.
34145 * sched-int.h: Likewise.
34146 * sched-rgn.c: Likewise.
34147 * sel-sched.c: Likewise.
34148
34149 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34150
34151 to rtx_insn *.
34152 * config/i386/i386.c: Change the type of some arguments to
34153 rtx_insn *.
34154 * config/arm/arm.c: Likewise.
34155
34156 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34157
34158 * lra-constraints.c: Change type of some arguments to rtx_insn *.
34159
34160 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34161
34162 * regcprop.c (kill_autoinc_value): Change type of argument to
34163 rtx_insn *.
34164
34165 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34166
34167 * genrecog.c (print_subroutine): Adjust.
34168 * recog.c (get_bool_attr_mask_uncached): Likewise.
34169 * recog.h (struct recog_data_d): Change the type of insn to
34170 rtx_insn *.
34171
34172 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34173
34174 * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
34175
34176 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34177
34178 * df-problems.c (df_set_note): Change type of argument to
34179 rtx_insn *.
34180
34181 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34182
34183 * builtins.c (expand_builtin_trap): Change type of local
34184 variable to rtx_insn *.
34185 (add_sched_insns_for_speculation): Likewise.
34186 (ix86_emit_save_regs): Likewise.
34187 (get_scratch_register_on_entry): Likewise.
34188 (ix86_emit_restore_reg_using_pop): Likewise.
34189 (ix86_emit_leave): Likewise.
34190 (ix86_emit_restore_regs_using_mov): Likewise.
34191 (ix86_expand_epilogue): Likewise.
34192 Likewise.
34193 (rl78_alloc_physical_registers_umul): Likewise.
34194 * cselib.c (discard_useless_locs): Likewise.
34195 (cselib_invalidate_regno): Likewise.
34196 (cselib_invalidate_mem): Likewise.
34197 * function.c (expand_function_start): Likewise.
34198 (emit_use_return_register_into_block): Likewise.
34199 * gcse.c: Likewise.
34200 * haifa-sched.c (ok_for_early_queue_removal): Likewise.
34201 * ifcvt.c (noce_get_alt_condition): Likewise.
34202 * loop-doloop.c (doloop_condition_get): Likewise.
34203 * lra-constraints.c (inherit_in_ebb): Likewise.
34204 * modulo-sched.c (sms_schedule_by_order): Likewise.
34205 * recog.c (next_insn_tests_no_inequality): Likewise.
34206 * reorg.c (emit_delay_sequence): Likewise.
34207 (update_reg_dead_notes): Likewise.
34208 (fix_reg_dead_note): Likewise.
34209 (fill_slots_from_thread): Likewise.
34210 (delete_computation): Likewise.
34211
34212 2015-05-01 Sandra Loosemore <sandra@codesourcery.com>
34213
34214 * doc/extend.texi (Variable Attributes): Add menu and proper
34215 @nodes to subsections. Move Microsoft Windows attributes to
34216 their own subsection.
34217 (Type Attributes): Reorganize introduction to remove duplicate
34218 list of attributes. Add menu and proper @nodes to subsections.
34219 Alphabetize the main table of common attributes.
34220
34221 2015-05-01 Rasmus Villemoes <rv@rasmusvillemoes.dk>
34222
34223 * match.pd: New simplification patterns.
34224 (x + (x & 1)) -> ((x + 1) & ~1)
34225 (x & ~(x & y)) -> ((x & ~y))
34226 (x | ~(x | y)) -> ((x | ~y))
34227
34228 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34229
34230 * target.def (attribute_table): Mention that struct attribute_spec
34231 is defined in tree-core.h rather than tree.h
34232 * doc/tm.texi: Regenerate.
34233
34234 2015-05-01 Richard Sandiford <richard.sandiford@arm.com>
34235
34236 * genrecog.c (test): Rename to rtx_test. Update rest of file
34237 accordingly.
34238
34239 2015-05-01 Andreas Schwab <schwab@linux-m68k.org>
34240
34241 PR translation/65959
34242 * params.h (DEFPARAM): Rename msgid to nocmsgid.
34243
34244 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
34245
34246 * config/aarch64/aarch64-protos.h (tune_params):
34247 Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
34248 * config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
34249 Return value depending on target.
34250 (generic_tunings): Initialize new target settings.
34251 (cortexa53_tunings): Likewise.
34252 (cortexa57_tunings): Likewise.
34253 (thunderx_tunings): Likewise.
34254 (xgene1_tunings): Likewise.
34255
34256 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
34257
34258 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
34259 Make Cortex-A53 shift costs more accurate.
34260
34261 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34262
34263 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
34264 UNSIGNED_FLOAT.
34265
34266 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
34267
34268 * config/aarch64/aarch64.c (aarch64_rtx_costs):
34269 Calculate cost of op0 and op1 in PLUS and MINUS cases.
34270
34271 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34272
34273 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
34274 Add cost of op0 in the compare-with-fpzero case.
34275
34276 2015-04-30 David Malcolm <dmalcolm@redhat.com>
34277
34278 * builtins.c (fold_builtin_1): Remove spurious second
34279 semicolon.
34280 * cgraph.h (symtab_node::get_availability): Likewise.
34281 * opts.c (common_handle_option): Remove spurious second semicolon.
34282 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
34283 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
34284
34285 2015-04-30 Caroline Tice <cmtice@google.com>
34286
34287 PR gcov-profile/65929
34288 * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
34289 (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
34290 * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
34291 (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
34292 * doc/tm.texi: Regenerate.
34293 * final.c (final_scan_insn): Use ASM_DECLARE_COLD_FUNCTION_NAME
34294 instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
34295 * varasm.c (assemble_end_function): Use ASM_DECLARE_COLD_FUNCTION_SIZE
34296 instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
34297
34298 2015-04-30 Marek Polacek <polacek@redhat.com>
34299
34300 * varasm.c (handle_cache_entry): Fix logic.
34301
34302 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34303
34304 * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
34305 (*extrsi5_insn_uxtw_alt): Likewise.
34306 * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
34307 (aarch64_rtx_costs, IOR case): Use above to properly cost extr
34308 operations.
34309
34310 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34311
34312 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
34313 fabd in ABS case.
34314
34315 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34316
34317 * config/aarch64/aarch64.md
34318 (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
34319 (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
34320 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
34321 appropriately. Handle alternative EON form.
34322
34323 2015-04-30 Renlin Li <renlin.li@arm.com>
34324
34325 * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
34326 * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
34327
34328 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
34329
34330 PR ipa/65873
34331 * ipa-inline.c (can_inline_edge_p): It is safe to inline across
34332 -fstrict-aliasing boundaries.
34333
34334 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34335
34336 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
34337 and [SU]MNEGL patterns.
34338
34339 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34340
34341 * config/aarch64/aarch64.c (aarch64_shift_p): New function.
34342 (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
34343 combined arithmetic-shift ops. Properly handle all shift and extend
34344 operations that can occur in combination with PLUS/MINUS.
34345 Rename maybe_fma to compound_p.
34346 (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
34347 arithmetic and shift operations.
34348
34349 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34350
34351 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
34352 rather than arith_shift cost when costing ADD/MINUS of an
34353 extended value.
34354
34355 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
34356
34357 PR lto/65948
34358 * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
34359 to itself.
34360
34361 2015-04-30 Richard Sandiford <richard.sandiford@arm.com>
34362
34363 * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
34364 are for the same position.
34365
34366 2015-04-29 Aditya Kumar <hiraditya@hotmail.com>
34367
34368 * tree-vectorizer.c (set_uid_loop_bbs): New. Factored out of
34369 vectorize_loops.
34370 (vectorize_loops): Use it.
34371
34372 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
34373
34374 * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
34375 for aggregate types.
34376 (register_odr_type): Be ready for MAIN_VARIANT of ODR type
34377 type to be non_ODR.
34378 * tree.c (need_assembler_name_p): Compute mangled name for
34379 non-fundamental types and integer types.
34380
34381 2015-04-29 Mikhail Maltsev <maltsevm@gmail.com>
34382
34383 * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
34384 manual swaps.
34385 * expr.c (expand_expr_real_2): Likewise.
34386
34387 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
34388
34389 * tree.c (build_common_builtin_nodes): Do not build
34390 __builtin_alloca_with_align as equivalent of library alloca.
34391
34392 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
34393
34394 * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
34395 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
34396 bugus variants.
34397 * tree.c: Include print-tree.h and ipa-utils.h
34398 (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
34399 (free_lang_data_in_cgraph): Call verify_type.
34400 (verify_type_variant): New function.
34401 (verify_type): New function.
34402 * tree.h (verify_type): Declare.
34403
34404 2015-04-29 Steve Ellcey <sellcey@imgtec.com>
34405
34406 * config/mips/mips-cpus.def: (mips4): Change default processor
34407 from PROCESSOR_R8000 to PROCESSOR_R10000.
34408
34409 2015-04-29 Petar Jovanovic <petar.jovanovic@rt-rk.com>
34410
34411 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
34412 la/jalr instead of jal.
34413
34414 2015-04-29 Uros Bizjak <ubizjak@gmail.com>
34415
34416 PR target/65871
34417 * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
34418 (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
34419 (setcc+movzbl peephole2): Check also clobbered reg.
34420 (setcc+andl peephole2): Ditto.
34421
34422 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
34423
34424 PR libgomp/65099
34425 * config/nvptx/mkoffload.c (target_ilp32): New variable.
34426 (main): Set it depending on "-foffload-abi=[...]".
34427 (compile_native, main): Use it to pass "-m32" or "-m64" to the
34428 compiler.
34429
34430 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
34431
34432 PR target/65770
34433 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
34434 vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
34435 Flip lane index back at assembly time for bigendian.
34436
34437 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
34438
34439 * tree.h (OMP_STANDALONE_CLAUSES): New macro.
34440 * gimplify.c (gimplify_omp_workshare): Use it.
34441
34442 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
34443
34444 * Makefile.in (build/genrecog.o): Depend on inchash.h.
34445 (build/genrecog$(build_exeext): Depend on build/hash-table.o and
34446 build/inchash.o
34447 * genrecog.c: Rewrite most of the code except for the third page.
34448
34449 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
34450
34451 * inchash.h, inchash.c: Include bconfig.h for build objects.
34452 * Makefile.in (build/inchash.o): New rule.
34453
34454 2015-04-29 Yvan Roux <yvan.roux@linaro.org>
34455
34456 PR target/65924
34457 * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
34458 number in type attribute expression.
34459
34460 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
34461
34462 * loop-iv.c (canon_condition): Generalize to all types of integer
34463 constant.
34464
34465 2015-04-29 Bernhard Reuther-Fischer <aldot@gcc.gnu.org>
34466
34467 * gimple-walk.c: Prune duplicate or unneeded includes.
34468 (walk_gimple_asm): Only call parse_input_constraint or
34469 parse_output_constraint if their findings are used.
34470 Honour parse_input_constraint and parse_output_constraint
34471 result.
34472
34473 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
34474
34475 * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
34476
34477 2015-04-29 Tom de Vries <tom@codesourcery.com>
34478
34479 PR tree-optimization/65893
34480 * passes.def (pass_all_optimizations): Move pass_stdarg to after
34481 pass_dce.
34482
34483 2015-04-29 Richard Biener <rguenther@suse.de>
34484
34485 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
34486 compute GROUP_SIZE for basic-block SLP.
34487 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
34488 take into account gaps.
34489 (vect_get_mask_element): Properly reject references to previous
34490 vectors.
34491 (vect_transform_slp_perm_load): Likewise.
34492
34493 2015-04-29 Christian Bruel <christian.bruel@st.com>
34494
34495 PR target/64835
34496 * config/i386/i386.c (ix86_default_align): New function.
34497 (ix86_override_options_after_change): Call ix86_default_align.
34498 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
34499 (ix86_override_options_after_change): New function.
34500
34501 2015-04-28 Jeff Law <law@redhat.com>
34502
34503 * tree-ssa-dom.c (record_equality); Fix comment typos.
34504
34505 2015-04-28 Tom de Vries <tom@codesourcery.com>
34506
34507 PR tree-optimization/65887
34508 * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
34509
34510 2015-04-28 Sandra Loosemore <sandra@codesourcery.com>
34511
34512 * doc/extend.texi (Declaring Attributes of Functions): Split into
34513 subsections by target. Alphabetize the table of common attributes.
34514 Rewrite some of the introductory text to reflect the new structure.
34515 Update some cross-references to point to the new subsections.
34516 (Attribute Syntax): Put paragraph about "__" naming here. Remove
34517 duplicate copies in the discussion of function, label, and type
34518 attributes.
34519
34520 2015-04-28 Dominique d'Humieres <dominiq@lps.ens.fr>
34521
34522 PR bootstrap/65910
34523 * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
34524
34525 2015-04-28 Jason Merrill <jason@redhat.com>
34526
34527 PR c++/65734
34528 * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
34529 (finalize_type_size): Respect TYPE_USER_ALIGN.
34530 (layout_type) [ARRAY_TYPE]: Likewise.
34531
34532 2015-04-28 Yvan Roux <yvan.roux@linaro.org>
34533
34534 * config/arm/arm.md (*arm_movt): Fix type attribute.
34535 (*cmpsi_shiftsi): Likewise.
34536 (*cmpsi_shiftsi_swp): Likewise.
34537 (*movsicc_insn): Likewise.
34538 (*cond_move): Likewise.
34539 (*if_plus_move): Likewise.
34540 (*if_move_plus): Likewise.
34541 (*if_arith_move): Likewise.
34542 (*if_move_arith): Likewise.
34543 (*if_shift_move): Likewise.
34544 (*if_move_shift): Likewise.
34545 (*arm_movtas_ze): Likewise.
34546 * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
34547 redundancy and type attribute.
34548 (*thumb2_movsi_insn): Fix type attribute.
34549 (*thumb2_addsi_short): Likewise.
34550 (thumb2_addsi3_compare0): Likewise.
34551 (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
34552 attributes accordingly.
34553
34554 2015-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
34555
34556 PR other/65911
34557 * function.c (pad_to_arg_alignment): Add parentheses.
34558
34559 2015-04-28 Uros Bizjak <ubizjak@gmail.com>
34560
34561 * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
34562 libgcc/config/frv/elf-lib.h.
34563
34564 2015-04-28 Tom de Vries <tom@codesourcery.com>
34565
34566 * tree-call-cdce.c: Fix example in header comment.
34567
34568 2015-04-28 Richard Biener <rguenther@suse.de>
34569
34570 PR tree-optimization/62283
34571 * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
34572 fails fatally and we are vectorizing a basic-block simply
34573 cause the child to be constructed piecewise.
34574 (vect_analyze_slp_cost_1): Adjust.
34575 (vect_detect_hybrid_slp_stmts): Likewise.
34576 (vect_bb_slp_scalar_cost): Likewise.
34577 (vect_get_constant_vectors): For piecewise constructed
34578 constants place them after the last def.
34579 (vect_get_slp_defs): Adjust.
34580 * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
34581 externals for basic-block vectorization.
34582
34583 2015-04-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
34584
34585 PR target/63503
34586 * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
34587 aarch64-*-*.
34588 * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
34589 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
34590 (AARCH64_TUNE_FMA_STEERING): Likewise.
34591 * config/aarch64/aarch64-cores.def: Set
34592 AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
34593 FMUL/FMADD instructions.
34594 * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
34595 (aarch64_override_options): Include cortex-a57-fma-steering.h. Call
34596 aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
34597 * config/aarch64/cortex-a57-fma-steering.h: New file.
34598 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
34599
34600 2015-04-28 Richard Sandiford <richard.sandiford@arm.com>
34601
34602 * gensupport.c (std_preds): Add missing codes to address_operand entry.
34603
34604 2015-04-28 Richard Biener <rguenther@suse.de>
34605
34606 PR tree-optimization/65851
34607 * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
34608 changing CONSTANT to CONSTANT non-copy. Get new_val by reference.
34609 (ccp_lattice_meet): Remove stray argument. Use operand_equal_p
34610 rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
34611 (ccp_visit_phi_node): Adjust.
34612 (evaluate_stmt): For simplifications to SSA names return its
34613 lattice value if that isn't VARYING. Return immediately when
34614 simplified to a constant.
34615 (visit_assignment): Adjust.
34616 (ccp_visit_stmt): Likewise.
34617
34618 2015-04-28 Tom de Vries <tom@codesourcery.com>
34619
34620 PR tree-optimization/65818
34621 * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
34622 evaluated.
34623
34624 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34625
34626 * calls.c (save_fixed_argument_area): Don't check
34627 ARGS_GROW_DOWNWARD with the preprocessor.
34628 (restore_fixed_argument_area): Likewise.
34629 (mem_overlaps_already_clobbered_arg_p): Likewise.
34630 (check_sibcall_argument_overlap): Likewise.
34631 (expand_call): Likewise.
34632 (emit_library_call_value_1): Likewise.
34633 (store_one_arg): Likewise.
34634 * function.c (assign_parms): Likewise.
34635 (locate_and_pad_parm): Likewise.
34636 (pad_to_arg_alignment): Likewise.
34637 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
34638
34639 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34640
34641 * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
34642 * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
34643 * calls.c (save_fixed_argument_area): Don't chekc if
34644 ARGS_GROW_DOWNWARD is defined.
34645 (restore_fixed_argument_area): Likewise.
34646 (mem_overlaps_already_clobbered_arg_p): Likewise.
34647 (check_sibcall_argument_overlap): Likewise.
34648 (expand_call): Likewise.
34649 (emit_library_call_value_1): Likewise.
34650 (store_one_arg): Likewise.
34651 * function.c (assign_parms): Likewise.
34652 (locate_and_pad_parm): Likewise.
34653 (pad_to_arg_alignment): Likewise.
34654 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
34655
34656 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34657
34658 * defaults.h (gen_epilogue): New function.
34659 * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
34660 defined.
34661 * cfgrtl.c (cfg_layout_finalize): Likewise.
34662 * df-scan.c: Likewise.
34663 * function.c (thread_prologue_and_epilogue_insns): Likewise.
34664 (reposition_prologue_and_epilogue_notes): Likewise.
34665 * reorg.c (find_end_label): Likewise.
34666 * toplev.c: Likewise.
34667
34668 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34669
34670 * bb-reorder.c (HAVE_return): Don't check if its undefined.
34671 * defaults.h (gen_simple_return): New function.
34672 (gen_simple_return): Likewise.
34673 (HAVE_return): Add default definition to false.
34674 (HAVE_simple_return): Likewise.
34675 * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
34676 HAVE_return and HAVE_simple_return are defined.
34677 * function.c (gen_return_pattern): Likewise.
34678 (convert_jumps_to_returns): Likewise.
34679 (thread_prologue_and_epilogue_insns): Likewise.
34680 * reorg.c (find_end_label): Likewise.
34681 (dbr_schedule): Likewise.
34682 * shrink-wrap.c: Likewise.
34683 * shrink-wrap.h: Likewise.
34684
34685 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34686
34687 * defaults.h (EPILOGUE_USES): Add default definition of false.
34688 * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
34689 * resource.c (init_resource_info): Likewise.
34690
34691 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34692
34693 * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
34694 to false.
34695 * dwarf2out.c (field_byte_offset): REmove check if
34696 PCC_BITFIELD_TYPE_MATTERS is defined.
34697 * stor-layout.c (layout_decl): Likewise.
34698 (update_alignment_for_field): Likewise.
34699 (place_field): Likewise.
34700
34701 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34702
34703 * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
34704 true.
34705 * regrename.c (check_new_reg_p): Remove check if
34706 HARD_REGNO_RENAME_OK is defined.
34707 * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
34708
34709 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34710
34711 * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
34712 * cse.c (fold_rtx): Likewise.
34713 * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
34714 * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
34715 * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
34716 * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
34717 * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
34718 * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
34719 * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
34720 * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
34721 * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
34722 * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
34723 * Likewise.
34724 * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
34725 * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
34726 * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
34727 * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
34728 * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
34729 * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
34730 * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
34731 * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
34732 * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
34733 * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
34734 * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
34735 * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
34736 * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
34737 * doc/tm.texi: Regenerate.
34738 * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
34739 either true or false.
34740
34741 2015-04-27 Jeff Law <law@redhat.com>
34742
34743 PR tree-optimization/65217
34744 * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
34745 of them has a single use, make sure it is the LHS of the implied
34746 copy.
34747
34748 2015-04-28 Alan Modra <amodra@gmail.com>
34749
34750 PR target/65810
34751 * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
34752 (offsettable_ok_by_alignment): Use minimum of decl and toc
34753 pointer alignment. Replace dead code with assertion.
34754 (use_toc_relative_ref): Add mode arg. Return false in -mcmodel=medium
34755 case if size exceeds toc pointer alignment.
34756 (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
34757 (rs6000_emit_move): Likewise.
34758 * configure.ac: Add linker toc pointer alignment check.
34759 * configure: Regenerate.
34760 * config.in: Regenerate.
34761
34762 2015-04-27 Yoshinori Sato <ysato@users.sourceforge.jp>
34763
34764 * config.gcc: Add h8300-*-linux.
34765 * config/h8300/linux.h: New.
34766 * config/h8300/t-linux: New.
34767 * config/h8300/h8300.c (h8300_option_override): Normal mode
34768 is not supported for h8300-*-linux.
34769 (h8300_file_start): Target priority change.
34770 (get_shift_alg): Likewise.
34771 (h8300_shift_need_scratch_p): Likewise.
34772 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
34773 * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
34774
34775 2015-04-27 Caroline Tice <cmtice@google.com>
34776
34777 * final.c (final_scan_insn): Output cold_function_name as function
34778 type.
34779 * varasm.c (cold_function_name): Make global.
34780 (assemble_start_function): Re-set cold_function_name.
34781 (assemble_end_function): Output cold partition size.
34782 * varasm.h (cold_function_name): Declare global.
34783
34784 2015-04-27 Ilya Tocar <ilya.tocar@intel.com>
34785
34786 * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
34787 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
34788 constraint.
34789 (*movxi_internal_avx512f): Ditto.
34790 (define_split): Check for xmm16+, when splitting scalar float_extend.
34791 (*extendsfdf2_mixed): Use "v" constraint.
34792 (define_split): Check for xmm16+, when splitting scalar float_truncate.
34793 (*truncdfsf_fast_sse): Use "v" constraint.
34794 (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
34795 (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
34796 (define_peephole2): Check for xmm16+, when converting scalar
34797 float_truncate.
34798 (define_peephole2): Check for xmm16+, when converting scalar
34799 float_extend.
34800 (*fop_<mode>_comm_mixed): Use "v" constraint.
34801 (*fop_<mode>_comm_sse): Ditto.
34802 (*fop_<mode>_1_mixed): Ditto.
34803 (*sqrt<mode>2_sse): Ditto.
34804 (*ieee_s<ieee_maxmin><mode>3): Ditto.
34805
34806 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34807
34808 * combine.c (simplify_if_then_else): Use std::swap instead
34809 of manually swapping.
34810 (known_cond): Likewise.
34811 (simplify_comparison): Likewise.
34812
34813 2015-04-27 Peter Bergner <bergner@vnet.ibm.com>
34814
34815 PR target/64579
34816 * config/rs6000/htm.md: Remove all define_expands.
34817 (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
34818 UNSPECV_HTM_TABORTWCI): Remove.
34819 (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
34820 (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
34821 trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
34822 (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
34823 (tabortdc_internal, tabortdci_internal, tabortwc_internal,
34824 tabortwci_internal): Remove define_insns.
34825 (tabort<wd>c, tabort<wd>ci): New define_insns.
34826 (tabort): Use gpc_reg_operand.
34827 (tcheck): Remove operand.
34828 (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
34829 * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
34830 expected value.
34831 * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
34832 (BU_HTM_SPR1): Rename to BU_HTM_V1. Remove use of RS6000_BTC_SPR.
34833 (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
34834 tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
34835 tsr, ttest): Pass in the RS6000_BTC_CR attribute.
34836 (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
34837 get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
34838 (tcheck): Remove builtin argument.
34839 * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
34840 not TARGET_64BIT.
34841 (htm_expand_builtin): Fix usage of expandedp. Disallow usage of the
34842 tabortdc and tabortdci builtins when not in 64-bit mode.
34843 Modify code to handle the loss of the HTM define_expands.
34844 Emit code to copy the CR register to TARGET.
34845 (htm_init_builtins): Modify code to handle the loss of the HTM
34846 define_expands.
34847 * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
34848 (RS6000_BTC_64BIT): Likewise.
34849 (RS6000_BTC_CR): New macro.
34850 * doc/extend.texi: Update documentation for htm builtins.
34851
34852 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34853
34854 * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
34855 of manually swapping.
34856 (simplify_associative_operation): Likewise.
34857 (simplify_binary_operation): Likewise.
34858 (simplify_plus_minus): Likewise.
34859 (simplify_relational_operation): Likewise.
34860 (simplify_ternary_operation): Likewise.
34861
34862 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
34863
34864 * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
34865 (xs_hi_nonmemory_operand): Remove error.
34866 * config/stormy16/stormy16.md (movhi, movhi_internal): Use
34867 general_operand rather than xs_hi_general_operand.
34868
34869 2015-04-27 Richard Biener <rguenther@suse.de>
34870
34871 * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
34872 (record_equivalences_from_stmt): Valueize rhs.
34873 (record_equality): Canonicalize x and y order via
34874 tree_swap_operands_p. Do not swap operands for same loop depth.
34875
34876 2015-04-27 Georg-Johann Lay <avr@gjlay.de>
34877
34878 PR target/65296
34879 PR target/65895
34880 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
34881 Add hint how to use own spec file.
34882
34883 2015-04-27 Jakub Jelinek <jakub@redhat.com>
34884
34885 PR tree-optimization/65875
34886 * tree-vrp.c (update_value_range): If in is_new case setting
34887 old_vr to VR_VARYING, also set new_vr to it. Remove
34888 old_vr->type == VR_VARYING test.
34889 (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
34890 SSA_PROP_INTERESTING if update_value_range returned true,
34891 but new range is VR_VARYING.
34892
34893 2015-04-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
34894
34895 * combine.c (sign_extend_short_imm): New.
34896 (set_nonzero_bits_and_sign_copies): Use above new function for sign
34897 extension of src short immediate.
34898 (reg_nonzero_bits_for_combine): Likewise for tem.
34899
34900 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
34901
34902 * stor-layout.c (self_referential_component_ref_p): New predicate.
34903 (copy_self_referential_tree_r): Use it.
34904 (self_referential_size): Punt for simple operations directly involving
34905 self-referential component references.
34906 * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
34907
34908 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
34909
34910 * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
34911
34912 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
34913
34914 * vec.h (vec): Make splice arguments const. Update definitions
34915 accordingly.
34916
34917 2015-04-27 Yvan Roux <yvan.roux@linaro.org>
34918
34919 * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
34920 alternatives.
34921
34922 2015-04-26 Tom de Vries <tom@codesourcery.com>
34923
34924 PR tree-optimization/65826
34925 * internal-fn.def: Mark VA_ARG with ECF_LEAF.
34926
34927 2015-04-24 Steve Ellcey <sellcey@imgtec.com>
34928
34929 * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
34930 (*madd3<mode>): Ditto.
34931 (*msub4<mode>): Ditto.
34932 (*msub3<mode>): Ditto.
34933 (*nmadd4<mode>): Ditto.
34934 (*nmadd3<mode>): Ditto.
34935 (*nmadd4<mode>_fastmath): Ditto.
34936 (*nmadd3<mode>_fastmath): Ditto.
34937 (*nmsub4<mode>): Ditto.
34938 (*nmsub3<mode>): Ditto.
34939 (*nmsub4<mode>_fastmath): Ditto.
34940 (*nmsub3<mode>_fastmath): Ditto.
34941
34942 2015-04-24 Jason Merrill <jason@redhat.com>
34943
34944 PR c++/50800
34945 * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
34946 down when building TYPE_CANONICAL.
34947 (build_pointer_type_for_mode): Likewise.
34948
34949 2015-04-24 Chen Gang <gang.chen.5i5j@gmail.com>
34950
34951 * genrecog.c (validate_pattern): Check matching constraint refers
34952 to a lower numbered operand.
34953
34954 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
34955
34956 PR target/65849
34957 * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
34958 save to independent variables use the Save attribute. This will
34959 allow these options to be modified with the #pragma/attribute
34960 target support.
34961 (-mallow-movmisalign): Likewise.
34962 (-mallow-df-permute): Likewise.
34963 (-msched-groups): Likewise.
34964 (-malways-hint): Likewise.
34965 (-malign-branch-targets): Likewise.
34966 (-mvectorize-builtins): Likewise.
34967 (-msave-toc-indirect): Likewise.
34968
34969 * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
34970 can be set via the #pragma/attribute target support.
34971 (rs6000_opt_vars): Likewise.
34972 (rs6000_inner_target_options): If VSX was set, also set
34973 -mno-avoid-indexed-addresses.
34974
34975 2015-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34976
34977 * config/arm/iterators.md (shiftable_ops): Rename to...
34978 (SHIFTABLE_OPS): ... This. Update use in comments.
34979 (ior_xor): Rename to...
34980 (IOR_XOR): ... This.
34981 (vqh_ops): Rename to...
34982 (VQH_OPS): ... This.
34983 (vqhs_ops): Rename to...
34984 (VQHS_OPS): ... This.
34985 (rshifts): Rename to...
34986 (RSHIFTS): ... This.
34987 (returns): Rename to...
34988 (RETURNS): ... This.
34989 * config/arm/arm.md: Update uses of the above.
34990 * config/arm/neon.md: Likewise.
34991
34992 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34993
34994 * config.host (case ${host}): Add aarch64*-*-linux case.
34995 * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
34996 fields to all the cores.
34997 * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
34998 Add MCPU_MTUNE_NATIVE_SPECS.
34999 * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
35000 field to all extensions.
35001 * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
35002 * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
35003 Adjust definition of AARCH64_OPT_EXTENSION.
35004 * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
35005 (MCPU_MTUNE_NATIVE_SPECS): Define.
35006 * config/aarch64/driver-aarch64.c: New file.
35007 * config/aarch64/x-arch64: New file.
35008 * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
35009 -mtune and -march.
35010
35011 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
35012 Wei Mi <wmi@google.com>
35013
35014 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
35015 * config/i386/i386.c (extract_base_offset_in_addr): New function.
35016 (ix86_operands_ok_for_move_multiple): Ditto.
35017 * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
35018 (movlpd/movhpd to movupd peephole2): Ditto.
35019
35020 2015-04-24 Marek Polacek <polacek@redhat.com>
35021
35022 PR c/61534
35023 * input.h (from_macro_expansion_at): Define.
35024
35025 PR c/63357
35026 * doc/invoke.texi: Update description of -Wlogical-op.
35027
35028 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
35029
35030 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
35031 ternary operator in fprintf and harmonize spacing.
35032
35033 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
35034
35035 * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
35036 Mark operand1 commutative.
35037
35038 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
35039
35040 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
35041 input operands in memory.
35042 (*vec_concatv2si_sse4_1): Ditto.
35043 (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
35044 (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
35045 register_operand.
35046 (vec_extract_hi_v32hi): Ditto.
35047 (vec_extract_hi_v64hi): Ditto.
35048 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
35049
35050 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
35051 Steven Bosscher <steven@gcc.gnu.org>
35052
35053 PR rtl-optimization/34503
35054 * cprop.c (cprop_reg_p): New.
35055 (hash_scan_set): Use above function to check if register can be
35056 propagated.
35057 (find_avail_set): Return up to two sets, one whose source is a
35058 register and one whose source is a constant. Sets are returned in an
35059 array passed as parameter rather than as a return value.
35060 (cprop_insn): Use a do while loop rather than a goto. Try each of the
35061 sets returned by find_avail_set, starting with the one whose source is
35062 a constant. Use cprop_reg_p to check if register can be propagated.
35063 (do_local_cprop): Use cprop_reg_p to check if register can be
35064 propagated.
35065 (implicit_set_cond_p): Likewise.
35066
35067 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
35068
35069 * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
35070 (sem_function::equals): IGNORED_NODES parameter is now unused;
35071 update call of equals_private.
35072 (sem_function::equals_private): Do not call equals_wpa; skip
35073 gimple body matching if there is no body.
35074 (sem_function::init): Add logic to hash tthunk info.
35075 (sem_function::parse): Also parse thunks.
35076 * ipa-icf.h (equals_private): Update declaration.
35077
35078 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35079
35080 * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
35081 asterisk from name so this can be generated directly.
35082 (*altivec_stvx_<mode>_internal): Likewise.
35083 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
35084 that this is never called during or after reload/lra.
35085 (rs6000_frame_related): Remove split_reg
35086 argument and logic that references it.
35087 (emit_frame_save): Remove last parameter from call to
35088 rs6000_frame_related.
35089 (rs6000_emit_prologue): Remove last parameter from eight calls to
35090 rs6000_frame_related. Force generation of stvx instruction for
35091 Altivec register saves. Remove split_reg handling, which is no
35092 longer needed.
35093 (rs6000_emit_epilogue): Force generation of lvx instruction for
35094 Altivec register restores.
35095
35096 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35097
35098 * config/rs6000/rs6000.opt (mcrypto): Change option description to
35099 match category changes in ISA 2.07B.
35100
35101 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35102
35103 * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
35104 iterators.
35105 (cmp_op, cmp_type): New code attributes.
35106 (NEON_VCMP, NEON_VACMP): New int iterators.
35107 (cmp_op_unsp): New int attribute.
35108 * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
35109 (neon_vceq<mode>): Delete.
35110 (neon_vc<cmp_op><mode>_insn): New pattern.
35111 (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
35112 (neon_vcgeu<mode>): Delete.
35113 (neon_vcle<mode>): Likewise.
35114 (neon_vclt<mode>: Likewise.
35115 (neon_vcage<mode>): Likewise.
35116 (neon_vcagt<mode>): Likewise.
35117 (neon_vca<cmp_op><mode>): New define_expand.
35118 (neon_vca<cmp_op><mode>_insn): New pattern.
35119 (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
35120
35121 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
35122
35123 * tree.h (attribute_value_equal): Declare.
35124 * tree.c (attribute_value_equal): Export.
35125
35126 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
35127
35128 * ipa-icf.c (sem_item::compare_attributes): New function.
35129 (sem_item::compare_referenced_symbol_properties): Compare variable
35130 attributes.
35131 (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
35132 (sem_function::param_used_p): New function.
35133 (sem_function::equals_wpa): Fix attribute comparsion; match
35134 parameter type codes; do not compare paremter flags when
35135 they are not used; compare edge flags; compare indirect calls.
35136 (sem_item::update_hash_by_addr_refs): Hash reference type.
35137 (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
35138 (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
35139 reference use type.
35140 (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
35141 * ipa-icf.h (compare_attributes, param_used_p): Declare.
35142
35143 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
35144
35145 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
35146 cleanup.
35147 (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
35148 DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
35149 (sem_item::compare_referenced_symbol_properties): New.
35150 (sem_item::hash_referenced_symbol_properties): New.
35151 (sem_item::compare_cgraph_references): Rename to ...
35152 (sem_item::compare_symbol_references): ... this one; use
35153 compare_referenced_symbol_properties.
35154 (sem_function::equals_wpa): Do not compare
35155 DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
35156 DECL_IS_OPERATOR_NEW; compare pointer sizes.
35157 (sem_item::update_hash_by_addr_refs): Call
35158 hash_referenced_symbol_properties.
35159 (sem_item::update_hash_by_local_refs): Cleanup.
35160 (sem_function::merge): Do not mix up symbol properties.
35161 (sem_variable::equals_wpa): Use compare_symbol_references.
35162 * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
35163 (sem_item::hash_referenced_symbol_properties): New.
35164 (sem_item::compare_symbol_references): New.
35165 (sem_item::compare_cgraph_references): Remove.
35166
35167 2015-04-23 Kwok Cheung Yeung <kcy@codesourcery.com>
35168
35169 PR target/26702
35170 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
35171 Emit size of local.
35172
35173 2015-04-23 Nick Clifton <nickc@redhat.com>
35174
35175 * config/rl78/rl78.c (rl78_preferred_reload_class): Add
35176 ATTRIBUTE_UNUSED to x parameter.
35177 * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
35178
35179 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35180
35181 * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
35182 TARGET_CRYPTO to TARGET_P8_VECTOR>
35183 (crypto_vpermxor_<mode>): Likewise.
35184 * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
35185 (BU_CRYPTO_3A): Likewise.
35186 (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
35187 (BU_CRYPTO_OVERLOAD_3A): New #define.
35188 (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
35189 (VPMSUMH): Likewise.
35190 (VPMSUMW): Likewise.
35191 (VPMSUMD): Likewise.
35192 (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
35193 (VPERMXOR_V4SI): Likewise.
35194 (VPERMXOR_V8HI): Likewise.
35195 (VPERMXOR_V16QI): Likewise.
35196 (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
35197 BU_CRYPTO_OVERLOAD_2A.
35198 (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
35199 BU_CRYPTO_OVERLOAD_3A.
35200 * config/rs6000/rs6000.opt (mcrypto): Change description of
35201 option.
35202
35203 2015-04-23 Richard Biener <rguenther@suse.de>
35204
35205 * passes.def: Remove copy propagation passes run directly after CCP.
35206 * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
35207 SSA names.
35208 (ccp_visit_phi_node): Rework to handle first executable edge
35209 specially.
35210
35211 2015-04-23 Matthew Wahab <matthew.wahab@arm.com>
35212
35213 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
35214 (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
35215 (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
35216 * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
35217 (thumb_legimitimize_reload_address): Remove.
35218 * config/arm/arm-protos.h (arm_legimitimize_reload_address):
35219 Remove.
35220 (thumb_legimitimize_reload_address): Remove.
35221
35222 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35223
35224 * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
35225
35226 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35227
35228 * config/arm/arm.md (load_multiple): Reject operand 2 greater than
35229 MAX_LDM_STM_OPS.
35230 (store_multiple): Likewise.
35231
35232 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35233
35234 * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
35235 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
35236 arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
35237 arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
35238 arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
35239 arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
35240 arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
35241 Specify issue_rate value.
35242 (arm_issue_rate): Look up issue rate from tuning structs. Remove
35243 large switch statement.
35244 (arm_marvell_pj4_tune): New struct.
35245 * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
35246 struct.
35247
35248 2015-04-23 Richard Biener <rguenther@suse.de>
35249
35250 * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
35251 (vect_find_last_store_in_slp_instance): Rename to ...
35252 (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
35253 (vect_analyze_slp_cost_1): Use vector_load for constant defs
35254 and vec_construct for external defs when estimating prologue cost.
35255 (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
35256 Compute costs here only when vectorizing loops.
35257 (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
35258 have been determined.
35259 (vect_schedule_slp_instance): Simplify vectorized code placement
35260 and prepare for in-BB external defs.
35261 * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
35262 (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
35263 * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
35264 guard.
35265 (vect_model_load_cost): Likewise.
35266 (vectorizable_store): Instead add it here.
35267 (vectorizable_load): Likewise.
35268 (vect_is_simple_use): Dump def type textually.
35269
35270 2015-04-23 Richard Biener <rguenther@suse.de>
35271
35272 * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
35273 * cfgloop.c (verify_loop_structure): Verify the root loop node.
35274 * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
35275 instead of get_eh_region_from_lp_number.
35276 * loop-init.c (fix_loop_structure): If we removed a loop, reset
35277 the SCEV cache.
35278
35279 2015-04-23 Anton Blanchard <anton@samba.org>
35280
35281 * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
35282 need for -mprofile-kernel to save LR to stack.
35283
35284 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35285
35286 * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
35287 adjustments.
35288 (insn_is_swappable_p): Return 1 for a convert from double to
35289 single precision when all of its uses are splats of BE element
35290 zero.
35291
35292 2015-04-23 Kugan Vivekanandarajah <kuganv@linaro.org>
35293
35294 * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
35295
35296 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35297
35298 PR target/65456
35299 * config/rs6000/rs6000.c (rs6000_option_override_internal): For
35300 VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
35301 TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
35302 option.
35303 (rs6000_builtin_mask_for_load): Return 0 for targets with
35304 efficient unaligned VSX accesses so that the vectorizer will use
35305 direct unaligned loads.
35306 (rs6000_builtin_support_vector_misalignment): Always return true
35307 for targets with efficient unaligned VSX accesses.
35308 (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
35309 stores on targets with efficient unaligned VSX accesses is almost
35310 always the same as the cost of an aligned load or store, so model
35311 it that way.
35312 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
35313 unaligned vectors if we have efficient unaligned VSX accesses.
35314 * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
35315 undocumented option.
35316
35317 2015-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35318
35319 Revert:
35320 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
35321
35322 * config.gcc (LIBC_MUSL): New tm_defines macro.
35323 * config/linux.h (OPTION_MUSL): Define.
35324 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
35325 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
35326 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
35327
35328 * config/linux.opt (mmusl): New option.
35329 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
35330 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
35331
35332 * configure: Regenerate.
35333
35334 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
35335
35336 * config.gcc (LIBC_MUSL): New tm_defines macro.
35337 * config/linux.h (OPTION_MUSL): Define.
35338 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
35339 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
35340 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
35341
35342 * config/linux.opt (mmusl): New option.
35343 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
35344 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
35345
35346 * configure: Regenerate.
35347
35348 2015-04-22 Yury Gribov <y.gribov@samsung.com>
35349
35350 * doc/invoke.texi (-fsanitize-sections): Update description.
35351 * asan.c (set_sanitized_sections): Parse incoming arg.
35352 (section_sanitized_p): Support wildcards.
35353
35354 2015-04-22 Tom de Vries <tom@codesourcery.com>
35355
35356 PR tree-optimization/65823
35357 * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
35358 equality between ap_copy and ap.
35359
35360 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
35361
35362 PR target/47098
35363 * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
35364
35365 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
35366
35367 PR target/47122
35368 * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
35369
35370 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
35371
35372 PR target/55144
35373 * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
35374 remove already contained t-files.
35375
35376 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
35377
35378 * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
35379 Remove unneeded forward declarations.
35380 (suitable_for_tail_call_opt_p): Commentary typo fix.
35381
35382 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
35383
35384 * varasm.c (emit_bss): Remove redundant guard.
35385
35386 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
35387
35388 * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
35389
35390 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
35391
35392 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
35393
35394 2015-04-22 Hale Wang <hale.wang@arm.com>
35395 Terry Guo <terry.guo@arm.com>
35396
35397 PR rtl-optimization/64818
35398 * combine.c (can_combine_p): Don't combine user-specified
35399 register if it is in an asm input.
35400
35401 2015-04-21 Jan Hubicka <hubicka@ucw.cz>
35402
35403 PR ipa/65076
35404 * passes.def (early_optimizations): Add pass_dse.
35405
35406 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35407
35408 * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
35409 * reorg.c (redundant_insn): Remove ifdef
35410 INSN_REFERENCES_ARE_DELAYED.
35411 * resource.c (mark_referenced_resources): Likewise.
35412
35413 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35414
35415 * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
35416 * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
35417 * resource.c (mark_set_resources): Likewise.
35418
35419 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35420
35421 * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
35422 * cfgcleanup.c (flow_find_cross_jump): Likewise.
35423 (flow_find_head_matching_sequence): Likewise.
35424 (try_head_merge_bb): Likewise.
35425 * combine.c (can_combine_p): Likewise.
35426 (try_combine): Likewise.
35427 (distribute_notes): Likewise.
35428 * df-problems.c (can_move_insns_across): Likewise.
35429 * final.c (final): Likewise.
35430 * gcse.c (insert_insn_end_basic_block): Likewise.
35431 * ira.c (find_moveable_pseudos): Likewise.
35432 * reorg.c (try_merge_delay_insns): Likewise.
35433 (fill_simple_delay_slots): Likewise.
35434 (fill_slots_from_thread): Likewise.
35435 * sched-deps.c (sched_analyze_2): Likewise.
35436
35437 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35438
35439 * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
35440 PIC_OFFSET_TABLE_REGNUM.
35441
35442 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35443
35444 * alias.c (init_alias_target): Remove ifdef
35445 * HARD_FRAME_POINTER_IS_FRAME_POINTER.
35446 * df-scan.c (df_insn_refs_collect): Likewise.
35447 (df_get_regular_block_artificial_uses): Likewise.
35448 (df_get_eh_block_artificial_uses): Likewise.
35449 (df_get_entry_block_def_set): Likewise.
35450 (df_get_exit_block_use_set): Likewise.
35451 * emit-rtl.c (gen_rtx_REG): Likewise.
35452 * ira.c (ira_setup_eliminable_regset): Likewise.
35453 * reginfo.c (init_reg_sets_1): Likewise.
35454 * regrename.c (rename_chains): Likewise.
35455 * reload1.c (reload): Likewise.
35456 (eliminate_regs_in_insn): Likewise.
35457 * resource.c (mark_referenced_resources): Likewise.
35458 (init_resource_info): Likewise.
35459
35460 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35461
35462 * defaults.h (MASK_RETURN_ADDR): New definition.
35463 * except.c (expand_builtin_extract_return_addr): Remove ifdef
35464 MASK_RETURN_ADDR.
35465
35466 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35467
35468 * defaults.h (RETURN_ADDR_OFFSET): New definition.
35469 * except.c (expand_builtin_extract_return_addr): Remove ifdef
35470 RETURN_ADDR_OFFSET.
35471 (expand_builtin_frob_return_addr): Likewise.
35472
35473 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35474
35475 * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
35476 (try_redirect_by_replacing_jump): Likewise.
35477 (rtl_tidy_fallthru_edge): Likewise.
35478 * combine.c (insn_a_feeds_b): Likewise.
35479 (find_split_point): Likewise.
35480 (simplify_set): Likewise.
35481 * cprop.c (cprop_jump): Likewise.
35482 * cse.c (cse_extended_basic_block): Likewise.
35483 * df-problems.c (can_move_insns_across): Likewise.
35484 * function.c (emit_use_return_register_into_block): Likewise.
35485 * haifa-sched.c (sched_init): Likewise.
35486 * ira.c (find_moveable_pseudos): Likewise.
35487 * loop-invariant.c (find_invariant_insn): Likewise.
35488 * lra-constraints.c (curr_insn_transform): Likewise.
35489 * postreload.c (reload_combine_recognize_const_pattern):
35490 * Likewise.
35491 * reload.c (find_reloads): Likewise.
35492 * reorg.c (delete_scheduled_jump): Likewise.
35493 (steal_delay_list_from_target): Likewise.
35494 (steal_delay_list_from_fallthrough): Likewise.
35495 (redundant_insn): Likewise.
35496 (fill_simple_delay_slots): Likewise.
35497 (fill_slots_from_thread): Likewise.
35498 (delete_computation): Likewise.
35499 * sched-rgn.c (add_branch_dependences): Likewise.
35500
35501 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35502
35503 * genconfig.c (main): Always define HAVE_cc0.
35504 * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
35505 HAVE_cc0.
35506 * cfgcleanup.c (flow_find_cross_jump): Likewise.
35507 (flow_find_head_matching_sequence): Likewise.
35508 (try_head_merge_bb): Likewise.
35509 * cfgrtl.c (rtl_merge_blocks): Likewise.
35510 (try_redirect_by_replacing_jump): Likewise.
35511 (rtl_tidy_fallthru_edge): Likewise.
35512 * combine.c (do_SUBST_MODE): Likewise.
35513 (insn_a_feeds_b): Likewise.
35514 (combine_instructions): Likewise.
35515 (can_combine_p): Likewise.
35516 (try_combine): Likewise.
35517 (find_split_point): Likewise.
35518 (subst): Likewise.
35519 (simplify_set): Likewise.
35520 (distribute_notes): Likewise.
35521 * cprop.c (cprop_jump): Likewise.
35522 * cse.c (cse_extended_basic_block): Likewise.
35523 * df-problems.c (can_move_insns_across): Likewise.
35524 * final.c (final): Likewise.
35525 (final_scan_insn): Likewise.
35526 * function.c (emit_use_return_register_into_block): Likewise.
35527 * gcse.c (insert_insn_end_basic_block): Likewise.
35528 * haifa-sched.c (sched_init): Likewise.
35529 * ira.c (find_moveable_pseudos): Likewise.
35530 * loop-invariant.c (find_invariant_insn): Likewise.
35531 * lra-constraints.c (curr_insn_transform): Likewise.
35532 * optabs.c (prepare_cmp_insn): Likewise.
35533 * postreload.c (reload_combine_recognize_const_pattern):
35534 * Likewise.
35535 * reload.c (find_reloads): Likewise.
35536 (find_reloads_address_1): Likewise.
35537 * reorg.c (delete_scheduled_jump): Likewise.
35538 (steal_delay_list_from_target): Likewise.
35539 (steal_delay_list_from_fallthrough): Likewise.
35540 (try_merge_delay_insns): Likewise.
35541 (redundant_insn): Likewise.
35542 (fill_simple_delay_slots): Likewise.
35543 (fill_slots_from_thread): Likewise.
35544 (delete_computation): Likewise.
35545 (relax_delay_slots): Likewise.
35546 * sched-deps.c (sched_analyze_2): Likewise.
35547 * sched-rgn.c (add_branch_dependences): Likewise.
35548
35549 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35550
35551 * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
35552 that is trivially ded on non cc0 targets.
35553 (simplify_set): Likewise.
35554 (mark_used_regs_combine): Likewise.
35555 * cse.c (new_basic_block): Likewise.
35556 (fold_rtx): Likewise.
35557 (cse_insn): Likewise.
35558 (cse_extended_basic_block): Likewise.
35559 (set_live_p): Likewise.
35560 * rtlanal.c (canonicalize_condition): Likewise.
35561 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
35562
35563 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35564
35565 * conditions.h: Define macros even if HAVE_cc0 is undefined.
35566 * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
35567 * final.c: Likewise.
35568 * jump.c: Likewise.
35569 * recog.c: Likewise.
35570 * recog.h: Declare functions even when HAVE_cc0 is undefined.
35571 * sched-deps.c (sched_analyze_2): Always compile case for cc0.
35572
35573 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35574
35575 * defaults.h: New definition of EH_RETURN_DATA_REGNO.
35576 * except.c: Remove definition of EH_RETURN_DATA_REGNO.
35577 * builtins.c (expand_builtin): Remove check if
35578 EH_RETURN_DATA_REGNO is defined.
35579 * df-scan.c (df_bb_refs_collect): Likewise.
35580 (df_get_exit_block_use_set): Likewise.
35581 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
35582 * ira-lives.c (process_bb_node_lives): Likewise.
35583 * lra-lives.c (process_bb_lives): Likewise.
35584
35585 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
35586
35587 * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
35588 FIRST_PSEUDO_REG): New.
35589 * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
35590 (ARG_POINTER_REGNUM): Define to ARGP_REG.
35591 (FRAME_POINTER_REGNUM): Define to FRAME_REG.
35592 (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
35593 (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
35594 (FIRST_INT_REG): New.
35595 (LAST_INT_REG): New.
35596 (FIRST_*_REG): Define using *_REG.
35597 (LAST_*_REG): Ditto.
35598 (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
35599 (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
35600 (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
35601
35602 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35603
35604 * expmed.c: (synth_mult): Only assume overlapping
35605 shift with previous steps in alg_sub_t_m2 case.
35606
35607 2015-04-21 Richard Biener <rguenther@suse.de>
35608
35609 PR tree-optimization/65650
35610 * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
35611 transitions involving copies.
35612 (set_lattice_value): Adjust for copy lattice state.
35613 (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
35614 if that doesn't dominate the merge point.
35615 (bit_value_unop): Adjust what we treat as varying mask.
35616 (bit_value_binop): Likewise.
35617 (bit_value_assume_aligned): Likewise.
35618 (evaluate_stmt): When we simplified to a SSA name record a copy
35619 instead of dropping to varying.
35620 (visit_assignment): Simplify.
35621
35622 * gimple-match.h (gimple_simplify): Add another callback.
35623 * gimple-fold.c (fold_stmt_1): Adjust caller.
35624 (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
35625 for the 2nd callback.
35626 * gimple-match-head.c (gimple_simplify): Add a callback that is
35627 used to valueize the stmt operands and use it that way.
35628
35629 2015-04-21 Richard Biener <rguenther@suse.de>
35630
35631 PR tree-optimization/65788
35632 * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
35633
35634 2015-04-21 Richard Biener <rguenther@suse.de>
35635
35636 * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
35637 vec_construct cost by vec_stmt_cost.
35638
35639 2015-04-21 Richard Biener <rguenther@suse.de>
35640
35641 * cfghooks.h (create_basic_block): Replace with two overloads
35642 for RTL and GIMPLE.
35643 (split_block): Likewise.
35644 * cfghooks.c (split_block): Rename to ...
35645 (split_block_1): ... this.
35646 (split_block): Add two type-safe overloads for RTL and GIMPLE.
35647 (split_block_after_labels): Call split_block_1.
35648 (create_basic_block): Rename to ...
35649 (create_basic_block_1): ... this.
35650 (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
35651 (create_empty_bb): Call create_basic_block_1.
35652 * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
35653 split_block_after_labels.
35654 * omp-low.c (expand_parallel_call): Likewise.
35655 (expand_omp_target): Likewise.
35656 (simd_clone_adjust): Likewise.
35657 * tree-chkp.c (chkp_get_entry_block): Likewise.
35658 * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
35659 create_basic_block overload.
35660 (cgraph_node::expand_thunk): Likewise.
35661 * tree-cfg.c (make_blocks): Likewise.
35662 (handle_abnormal_edges): Likewise.
35663 * tree-inline.c (copy_bb): Likewise.
35664
35665 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35666
35667 * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
35668 New pattern.
35669 (*xor_one_cmplsidi3_ze): Likewise.
35670
35671 2015-04-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
35672
35673 * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
35674 use df_remove_problem rather than manually removing problems, leaving
35675 holes in df->problems_in_order[].
35676
35677 2015-04-21 Tom de Vries <tom@codesourcery.com>
35678
35679 PR tree-optimization/65802
35680 * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
35681
35682 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35683
35684 * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
35685 Increase to 128.
35686 (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
35687 at '.'. Assert that there's enough space for everything.
35688
35689 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
35690
35691 PR tree-optimization/64950
35692 Revert:
35693 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
35694
35695 PR target/41089
35696 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
35697 as volatile.
35698
35699 2015-04-20 Shiva Chen <shiva0217@gmail.com>
35700
35701 PR rtl-optimization/64916
35702 * cfgcleanup.c (values_equal_p): New function.
35703 (can_replace_by): Use it.
35704
35705 2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
35706
35707 PR c++/65801
35708 * doc/invoke.texi ([-Wnarrowing]): Update.
35709
35710 2015-04-20 Jeff Law <law@redhat.com>
35711
35712 PR tree-optimization/65658
35713 * tree-ssa-threadupdate.c (redirection_block_p): Remove
35714 redundant test for GIMPLE_ASSIGN in last change.
35715
35716 2015-04-20 Uros Bizjak <ubizjak@gmail.com>
35717
35718 * config/i386/i386.c (set_pic_reg_ever_live): Remove.
35719 (legitimize_pic_address): Do not call set_pic_reg_ever_live.
35720 (legitimize_tls_address): Ditto.
35721 (ix86_expand_move): Ditto.
35722 (ix86_expand_binary_operator): Remove reload_in_progress checks.
35723 (ix86_expand_unary_operator): Ditto.
35724 * config/i386/predicates.md (index_register_operand): Ditto.
35725
35726 2015-04-20 Selim Belbachir <selim.belbachir@fr.thalesgroup.com>
35727
35728 * reorg.c (try_merge_delay_insns): Improve correctness checking
35729 for targets with multiple delay slots.
35730
35731 2015-04-20 Jeff Law <law@redhat.com>
35732
35733 PR tree-optimization/65658
35734 * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
35735 statements too.
35736
35737 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
35738
35739 * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
35740 * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
35741 Delete.
35742
35743 2015-04-20 Jakub Jelinek <jakub@redhat.com>
35744
35745 PR debug/65807
35746 * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
35747
35748 2015-04-20 Richard Biener <rguenther@suse.de>
35749
35750 * gimple-fold.h (gimple_build): Remove optional valueize arguments.
35751 * gimple-fold.c (gimple_build_valueize): New function.
35752 (gimple_build): Always use gimple_build_valueize as valueize hook.
35753
35754 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
35755
35756 PR target/64134
35757 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
35758 and overwrite variable parts if <= 1/2 the elements are variable.
35759
35760 2015-04-19 Vladimir Makarov <vmakarov@redhat.com>
35761
35762 PR rtl-optimization/65805
35763 * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
35764 Don't use difference of offset and previous offset if
35765 update_sp_offset is non-zero.
35766 (eliminate_regs_in_insn): Ditto.
35767 * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
35768 lra_eliminate_regs_1 call.
35769 * lra-constraints.c (get_equiv_with_elimination): Ditto.
35770
35771 2015-04-18 Trevor Saunders <tsaunders@mozilla.com>
35772
35773 * hash-table.h: Remove version of hash_table that stored value_type *.
35774 * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
35775 config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
35776 config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
35777 dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
35778 gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
35779 hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
35780 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
35781 loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
35782 reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
35783 tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
35784 tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
35785 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
35786 tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
35787 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
35788 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
35789 valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
35790
35791 2015-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35792 Jakub Jelinek <jakub@redhat.com>
35793
35794 PR target/65787
35795 * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
35796 subsequent SH_NONE operand does not overwrite an existing *special
35797 value.
35798 (adjust_extract): Handle case where a vec_extract operation is
35799 wrapped in a PARALLEL.
35800
35801 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
35802
35803 PR target/65780
35804 * config/i386/i386.c (ix86_binds_local_p): Define only if
35805 TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
35806
35807 2015-04-17 Jeff Law <law@redhat.com>
35808
35809 PR tree-optimization/47679
35810 * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
35811 * tree-ssa-scopedtables.c: New file.
35812 * tree-ssa-scopedtables.h: New file.
35813 * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
35814 (const_and_copies): Change name/type.
35815 (record_const_or_copy): Move into tree-ssa-scopedtables.c
35816 (record_const_or_copy_1): Similarly.
35817 (restore_vars_to_original_value): Similarly.
35818 (pass_dominator::execute): Create and destroy const_and_copies table.
35819 (thread_across_edge): Update passing of const_and_copies.
35820 (record_temporary_equivalence): Use method calls rather than
35821 manipulating const_and_copies directly.
35822 (record_equality, cprop_into_successor_phis): Similarly.
35823 (dom_opt_dom_walker::before_dom_children): Similarly.
35824 (dom_opt_dom_walker::after_dom_children): Similarly.
35825 (eliminate_redundant_computations): Similarly.
35826 * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
35827 (record_temporary_equivalence): Likewise.
35828 (invalidate_equivalences): Likewise.
35829 (record_temporary_equivalences_from_phis): Update due to type
35830 change of const_and_copies. Use method calls rather than
35831 manipulating the stack directly.
35832 (record_temporary_equivalences_from_stmts_at_dest): Likewise.
35833 (thread_through_normal_block, thread_across_edge): Likewise.
35834 (thread_across_edge): Likewise.
35835 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
35836 * tree-vrp.c: Include tree-ssa-scopedtables.h. Change type
35837 of equiv_stack.
35838 (identify_jump_threads): Update due to type change of equiv_stack.
35839 (finalize_jump_threads): Delete the equiv_stack when complete.
35840
35841 2015-04-17 Uros Bizjak <ubizjak@gmail.com>
35842
35843 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
35844 * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
35845 * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
35846
35847 2015-04-17 Andreas Tobler <andreast@gcc.gnu.org>
35848
35849 PR target/65535
35850 * config.gcc: Exit with a comment when we do not have a major version
35851 number for the FreeBSD target.
35852
35853 2015-04-17 Jakub Jelinek <jakub@redhat.com>
35854
35855 PR target/65689
35856 * genpreds.c (struct constraint_data): Add maybe_allows_reg and
35857 maybe_allows_mem bitfields.
35858 (maybe_allows_none_start, maybe_allows_none_end,
35859 maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
35860 maybe_allows_mem_end): New variables.
35861 (compute_maybe_allows): New function.
35862 (add_constraint): Use it to initialize maybe_allows_reg and
35863 maybe_allows_mem fields.
35864 (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
35865 is_address constraints such that those that allow neither mem nor
35866 reg come first, then those that only allow reg but not mem, then
35867 those that only allow mem but not reg, then the rest.
35868 (write_allows_reg_mem_function): New function.
35869 (write_tm_preds_h): Call it.
35870 * stmt.c (parse_output_constraint, parse_input_constraint): Use
35871 the generated insn_extra_constraint_allows_reg_mem function
35872 instead of always setting *allows_reg = true; *allows_mem = true;
35873 for unknown extra constraints.
35874
35875 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
35876
35877 PR target/65780
35878 * output.h (default_binds_local_p_3): New.
35879 * varasm.c (default_binds_local_p_3): Make it public. Take an
35880 argument to indicate if common symbol may be local. If common
35881 symbol may be local, treat non-external variable as defined
35882 locally.
35883 (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
35884 (default_binds_local_p_1): Pass false to default_binds_local_p_3.
35885 * config/i386/i386.c (ix86_binds_local_p): New.
35886 (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
35887 ix86_binds_local_p.
35888
35889 2015-04-17 Jakub Jelinek <jakub@redhat.com>
35890
35891 PR debug/65771
35892 * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
35893 trying mem_loc_descriptor on XEXP (rtl, 0).
35894
35895 2015-04-17 Martin Liska <mliska@suse.cz>
35896
35897 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
35898 Release symbol_compare_collection.
35899 * ipa-reference.c: Add TODO that a vector should be released.
35900
35901 2015-04-17 Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
35902
35903 PR target/65296
35904 * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
35905 to new AVR-LibC file layout (bug #44574).
35906 (*avrlibc_devicelib): Same.
35907 * config/avr/avr-mcus.def: Adjust comments.
35908 * config/avr/avr.opt (nodevicelib): Adjust help.
35909
35910 2015-04-17 Alan Lawrence <alan.lawrence@arm.com>
35911
35912 * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
35913
35914 2015-04-17 Patrick Palka <ppalka@gcc.gnu.org>
35915
35916 PR c++/64527
35917 * gimplify.c (gimplify_init_constructor): Always emit a
35918 side-effecting constructor.
35919
35920 2015-04-17 Tom de Vries <tom@codesourcery.com>
35921
35922 PR tree-optimization/64950
35923 * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
35924 in cfun->curr_properties.
35925 (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
35926 if we generate an IFN_VA_ARG.
35927 * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
35928 function if PROP_gimple_lva is not set in src function.
35929
35930 2015-04-17 Tom de Vries <tom@codesourcery.com>
35931 Michael Matz <matz@suse.de>
35932
35933 PR tree-optimization/64950
35934 * gimple-iterator.c (update_modified_stmts): Remove static.
35935 * gimple-iterator.h (update_modified_stmts): Declare.
35936 * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
35937 (gimplify_va_arg_internal): New function.
35938 (gimplify_va_arg_expr): Use IFN_VA_ARG.
35939 * gimplify.h (gimplify_va_arg_internal): Declare.
35940 * internal-fn.c (expand_VA_ARG): New unreachable function.
35941 * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
35942 * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
35943 (expand_ifn_va_arg): New function.
35944 (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
35945 (pass_stdarg::execute): Call expand_ifn_va_arg.
35946 (pass_data_lower_vaarg): New pass_data.
35947 (pass_lower_vaarg): New gimple_opt_pass.
35948 (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
35949 (make_pass_lower_vaarg): New function.
35950 * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
35951 properties_required field.
35952 * passes.def (all_passes): Add pass_lower_vaarg.
35953 * tree-pass.h (PROP_gimple_lva): Add define.
35954 (make_pass_lower_vaarg): Declare.
35955
35956 2015-04-17 Tom de Vries <tom@codesourcery.com>
35957
35958 * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
35959 * calls.c (call_expr_flags): Same.
35960
35961 2015-04-17 Tom de Vries <tom@codesourcery.com>
35962
35963 * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
35964 (pass_stdarg::execute): ... here.
35965
35966 2015-04-17 Tom de Vries <tom@codesourcery.com>
35967 Michael Matz <matz@suse.de>
35968
35969 * tree-cfg.c (make_blocks_1): Factor out of ...
35970 (make_blocks): ... here.
35971 (make_edges_bb): Factor out of ...
35972 (make_edges): ... here.
35973 (gimple_find_sub_bbs): New function.
35974 * tree-cfg.h (gimple_find_sub_bbs): Declare.
35975
35976 2015-04-17 Tom de Vries <tom@codesourcery.com>
35977
35978 * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
35979
35980 2015-04-17 Yury Gribov <y.gribov@samsung.com>
35981
35982 * asan.c (set_sanitized_sections): New function.
35983 (section_sanitized_p): Ditto.
35984 (asan_protect_global): Optionally sanitize user-defined
35985 sections.
35986 * asan.h (set_sanitized_sections): Declare new function.
35987 * common.opt (fsanitize-sections): New option.
35988 * doc/invoke.texi (-fsanitize-sections): Document new option.
35989 * opts-global.c (handle_common_deferred_options): Handle new
35990 option.
35991
35992 2015-04-17 Jakub Jelinek <jakub@redhat.com>
35993
35994 PR debug/65771
35995 * dwarf2out.c (loc_list_from_tree): Return NULL
35996 for DEBUG_EXPR_DECL.
35997
35998 2015-04-17 Christian Bruel <christian.bruel@st.com>
35999
36000 * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
36001 same attributes.
36002
36003 2015-04-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
36004
36005 * ira-color.c (setup_left_conflict_sizes_p): Do not process
36006 node itself when computing left conflict subnode size.
36007
36008 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
36009
36010 * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
36011 * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
36012 *fop_<mode>_1_sse using enabled attribute. Use
36013 register_mixssei387nonimm_operand operand 1 predicate. Change
36014 alternative 3 constraints from "x" to "v".
36015
36016 2015-04-16 Richard Biener <rguenther@suse.de>
36017
36018 PR tree-optimization/65774
36019 * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
36020 bit-value tracking on.
36021
36022 2015-04-16 Richard Biener <rguenther@suse.de>
36023
36024 PR tree-optimization/64277
36025 * tree-vrp.c (check_array_ref): Fix anti-range handling,
36026 simplify upper bound handling.
36027 (search_for_addr_array): Simplify.
36028 (check_array_bounds): Handle ADDR_EXPRs here.
36029 (check_all_array_refs): Simplify.
36030
36031 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
36032
36033 * config/i386/i386.c (print_reg): Rewrite function.
36034
36035 2015-04-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
36036
36037 * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
36038 Invert the condition.
36039
36040 2015-04-16 Renlin Li <renlin.li@arm.com>
36041
36042 * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
36043 simplifications for UNSIGNED_FLOAT.
36044
36045 2015-04-16 Nick Clifton <nickc@redhat.com>
36046
36047 * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
36048 MUL_UNINIT.
36049 (enum rl78_cpu_type): New.
36050 * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
36051 (umulhi3_shift_virt): Remove m constraint from operand 1.
36052 (umulqihi3_virt): Likewise.
36053 * config/rl78/rl78.c (rl78_option_override): Add code to process
36054 -mcpu and -mmul options.
36055 (rl78_alloc_physical_registers): Add code to handle divhi and
36056 divsi valloc attributes.
36057 (set_origin): Likewise.
36058 * config/rl78/rl78.h (RL78_MUL_G14): Define.
36059 (TARGET_G10, TARGET_G13, TARGET_G14): Define.
36060 (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
36061 __RL78_Gxx__.
36062 (ASM_SPEC): Pass -mcpu on to assembler.
36063 * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
36064 (mulqi3_rl78): Likewise.
36065 (mulhi3_g13): Likewise.
36066 (mulhi3): Generate the G13 or G14 versions of the insn directly.
36067 (mulsi3): Likewise.
36068 (mulhi3_g14): Add clobbers of AX and BC.
36069 (mulsi3_g14): Likewise.
36070 (mulsi3_g13): Likewise.
36071 (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
36072 (udivmodsi4_g14, udivmodsi4_g13): New patterns.
36073 * config/rl78/rl78.opt (mmul): Initialise value to
36074 RL78_MUL_UNINIT.
36075 (mcpu): New option.
36076 (m13, m14, mrl78): New option aliases.
36077 * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
36078 (MULTILIB_DIRNAMES): Add g13 and g14.
36079 * doc/invoke.texi: Document -mcpu and -mmul options.
36080
36081 2015-04-16 Richard Biener <rguenther@suse.de>
36082
36083 * tree-ssa-ccp.c (likely_value): See if we have operands that
36084 are marked as never simulate again and return CONSTANT in this
36085 case.
36086 * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
36087 not have any operands that will be simulated again as
36088 not being simulated again.
36089
36090 2015-04-15 Uros Bizjak <ubizjak@gmail.com>
36091
36092 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
36093 Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
36094 (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
36095 attribute.
36096 (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
36097 enabled attribute.
36098 (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
36099 *float<SWI48:mode><MODEF:mode>2_sse.
36100 (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
36101 enabled attribute.
36102 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
36103 enabled attribute.
36104
36105 2015-04-15 Tom de Vries <tom@codesourcery.com>
36106
36107 PR other/65487
36108 * function.c (push_dummy_function): New function.
36109 (init_dummy_function_start): Use push_dummy_function.
36110 (pop_dummy_function): New function. Factored out of ...
36111 (expand_dummy_function_end): ... here.
36112 * function.h (push_dummy_function, pop_dummy_function): Declare.
36113 * passes.c (pass_manager::dump_passes): Use push_dummy_function and
36114 pop_dummy_function.
36115 * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
36116
36117 2015-04-15 Jeff Law <law@redhat.com>
36118
36119 PR tree-optimization/47679
36120 * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
36121 need for forward declaration in upcoming changes.
36122 (record_conditions, record_edge_info): Likewise.
36123
36124 PR rtl-optimization/42522
36125 * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
36126 SIGN_EXTRACT as a whole object rather than simplifying
36127 its operand.
36128
36129 2015-04-15 Jakub Jelinek <jakub@redhat.com>
36130
36131 PR ipa/65765
36132 * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
36133 and GIMPLE_PREDICT use break instead of return true. For
36134 GIMPLE_EH_DISPATCH, compare dispatch region.
36135
36136 2015-04-14 Matthew Wahab <matthew.wahab@arm.com>
36137
36138 * doc/extend.texi (__sync Builtins): Simplify some text. Update
36139 details about the implementation. Make clear preference for
36140 __atomic builtins. Reduce possibility of future change.
36141
36142 2015-04-15 Nick Clifton <nickc@redhat.com>
36143
36144 * config/rx/rx.opt (mallow-string-insns): New option.
36145 * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
36146 builtin if string instructions are denied.
36147 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
36148 __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
36149 appropriate.
36150 (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
36151 * config/rx/rx.md (movstr): Enable pattern only if string
36152 instructions are allowed.
36153 (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
36154 (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
36155 * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
36156 (MULTILIB_DIRNAMES): Add no-strings.
36157 * doc/invoke.texi: Document -mno-allow-string-insns.
36158
36159 2015-04-15 Alan Modra <amodra@gmail.com>
36160
36161 PR target/65408
36162 PR target/58744
36163 PR middle-end/36043
36164 * calls.c (load_register_parameters): Don't load past end of
36165 mem unless suitably aligned.
36166
36167 2015-04-15 Nick Clifton <nickc@redhat.com>
36168
36169 * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
36170 decrement instruction as being frame related.
36171 (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
36172 based addresses.
36173 If zero extending a function address enclose the operation in
36174 %code(...).
36175 (rl78_preferred_reload_class): New function.
36176 (TARGET_PREFERRED_RELOAD_CLASS): Define.
36177 * config/rl78/rl78.md: Remove useless constraints in expanders.
36178 (mulqi3_rl78): Remove + qualifier on input-only operand 1.
36179 (mulhi3_rl78): Likewise.
36180 (mulhi3_g13): Likewise.
36181 (mulsi3_rl78): Likewise.
36182 (es_addr): Move to before the multiply patterns.
36183
36184 2015-04-15 Alan Modra <amodra@gmail.com>
36185
36186 * function.h (struct emit_status): Delete x_first_insn, x_last_insn
36187 and sequence_stack. Add seq.
36188 (seq_stack): Delete.
36189 * function.c (prepare_function_start): Don't access x_last_insn.
36190 * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
36191 (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
36192 * emit_rtl.c (start_sequence, push_topmost_sequence,
36193 pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
36194 sequence accessors.
36195 (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
36196 remove_insn): Likewise. Simplify.
36197 * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
36198 and pop_topmost_sequence.
36199 (m32c_function_needs_enter): Use get_topmost_sequence. Ignore
36200 debug insns.
36201 * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
36202
36203 2015-04-14 Yvan Roux <yvan.roux@linaro.org>
36204
36205 PR target/65729
36206 * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
36207 the assertiion.
36208
36209 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
36210
36211 * config/i386/i386.h (LEGACY_INT_REG_P): New define.
36212 (LEGACY_INT_REGNO_P): Ditto.
36213 (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
36214 (ANY_MASK_REG_P): Remove.
36215 (BND_REG_P): Rename from ANY_BND_REG_P.
36216 * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
36217 legacy integer registers. Do not handle MMX_REG_P in a special way.
36218 Merge 64byte and 32byte SSE handling.
36219
36220 2015-04-14 Nick Clifton <nickc@redhat.com>
36221
36222 * expr.c (expand_assignment): Force an address offset computation
36223 into a register before changing its mode.
36224 (expand_expr_real_1): Likewise.
36225
36226 2015-04-14 Alan Lawrence <alan.lawrence@arm.com>
36227
36228 * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
36229 vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
36230 vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
36231 vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
36232 vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
36233 vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
36234 vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
36235 and __aarch64_vget_lane_any.
36236
36237 2015-04-14 Jakub Jelinek <jakub@redhat.com>
36238
36239 PR rtl-optimization/65761
36240 * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
36241 get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
36242
36243 2015-04-14 Richard Biener <rguenther@suse.de>
36244
36245 * graphite-scop-detection.c: Do not include cp/cp-tree.h.
36246 (graphite_can_represent_scev): Use POINTER_TYPE_P.
36247
36248 2015-04-14 Richard Biener <rguenther@suse.de>
36249
36250 PR tree-optimization/65758
36251 * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
36252 against -1.
36253 (ccp_lattice_meet): Likewise.
36254 (bit_value_unop): Likewise.
36255 (bit_value_binop): Likewise.
36256 (bit_value_assume_aligned): Likewise.
36257
36258 2015-04-14 Christian Bruel <christian.bruel@st.com>
36259
36260 * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
36261 function.
36262
36263 2015-04-14 Marc Glisse <marc.glisse@inria.fr>
36264
36265 PR tree-optimization/63387
36266 * match.pd ((x unord x) | (y unord y) -> (x unord y),
36267 (x unord x) | (x unord y) -> (x unord y)): New simplifications.
36268
36269 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
36270
36271 * config/i386/predicates.md (any_QIreg_operand): Rename from
36272 q_regs_operand. Do not process subregs.
36273 (QIreg_operand): Use QI_REGNO_P predicate.
36274 (ext_QIreg_operand): Ditto.
36275 (ext_register_operand): Ditto.
36276 * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
36277 (AND splitters): Ditto.
36278 (AND with -65536 splitter): Add SWI48 mode for operand 0.
36279 (AND with -256 splitter): Use any_QIreg_operand predicate and
36280 SWI248 mode for operand 0.
36281 (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
36282 mode for operand 0.
36283 (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
36284
36285 2015-04-13 Gerald Pfeifer <gerald@pfeifer.com>
36286
36287 * doc/plugins.texi: Rewrite first introductory paragraph.
36288
36289 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
36290
36291 * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
36292 (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
36293
36294 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
36295
36296 * ipa-profie.c (ipa_profile): Check number of parameters
36297 and possible polymorphic call targets before
36298 devirtualizing.
36299
36300 2015-04-13 Uros Bizjak <ubizjak@gmail.com>
36301
36302 * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
36303 *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
36304
36305 2015-04-13 Richard Biener <rguenther@suse.de>
36306
36307 PR tree-optimization/65204
36308 * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
36309 takens for bit-CCP.
36310
36311 2015-04-13 Richard Biener <rguenther@suse.de>
36312
36313 PR target/65660
36314 * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
36315 and cond_not_taken_branch_cost to 4 and 2.
36316 (bdver2_cost): Likewise.
36317 (bdver3_cost): Likewise.
36318 (bdver4_cost): Likewise.
36319
36320 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
36321
36322 * hash-table.h (hash_table constructor): Add mem stats.
36323 (alloc_entries): Likewise.
36324
36325 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
36326
36327 * ipa-cp.c (ipcp_driver): Relase prev_edge.
36328 * passes.c (execute_one_pass): Only add transform if pass has one.
36329
36330 2015-04-12 Joseph Myers <joseph@codesourcery.com>
36331
36332 * config/i386/i386.c (ix86_option_override_internal): Don't set
36333 -fprefetch-loop-arrays if optimizing for size.
36334
36335 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
36336 Gerald Pfeifer <gerald@pfeifer.com>
36337
36338 * doc/contrib.texi (Contributors): Add Martin Jambor and
36339 Michael Matz.
36340
36341 2015-04-12 Jakub Jelinek <jakub@redhat.com>
36342
36343 * BASE-VER: Set to 6.0.0.
36344
36345 PR tree-optimization/65747
36346 * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
36347 rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
36348
36349 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
36350
36351 * doc/invoke.texi (-Wmemset-transposed-args): Break a long
36352 sentence. Improve grammar.
36353
36354 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
36355
36356 * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
36357
36358 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
36359
36360 PR ipa/65743
36361 * ipa-inline-transform.c (speculation_removed): Remove static var.
36362 (check_speculations): New function.
36363 (clone_inlined_nodes): Do not check spculations.
36364 (inline_call): Call check_speculations.
36365 * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
36366 consider non-invariants.
36367
36368 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
36369 Martin Liska <mliska@suse.cz>
36370
36371 PR ipa/65722
36372 * ipa-icf.c (sem_item::compare_cgraph_references): function and
36373 variable can not match.
36374 (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
36375 (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
36376
36377 2015-04-11 Jakub Jelinek <jakub@redhat.com>
36378
36379 PR tree-optimization/65735
36380 * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
36381 Remove visited_phis argument, add visited_bbs, avoid recursing into the
36382 same bb rather than just into the same phi node.
36383 (thread_through_normal_block): Adjust caller.
36384
36385 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
36386
36387 * doc/contrib.texi (Contributors): Add Ira Rosen.
36388
36389 2015-04-11 Benno Schulenberg <bensberg@justemail.net>
36390
36391 * gcov.c (find_source): Fix miswording in error message.
36392 * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
36393 (ix86_expand_sse_comi_round): Fix typo in error message.
36394
36395 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
36396
36397 * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
36398
36399 2015-04-10 Gerald Pfeifer <gerald@pfeifer.com>
36400
36401 * doc/contrib.texi (Contributors): Update Joe Buck's entry.
36402
36403 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
36404
36405 PR target/65710
36406 * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
36407 Print bad_spills_num and insn_pseudos_num.
36408
36409 2015-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36410
36411 PR target/65694
36412 * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
36413 when creating +1 values for SImode.
36414
36415 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
36416
36417 PR target/65729
36418 * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
36419 assert.
36420
36421 2015-04-10 Jakub Jelinek <jakub@redhat.com>
36422 Iain Sandoe <iain@codesourcery.com>
36423
36424 PR target/65351
36425 * configure: Regenerate.
36426
36427 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
36428
36429 PR target/65671
36430 * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
36431
36432 2015-04-09 Gerald Pfeifer <gerald@pfeifer.com>
36433
36434 * doc/contrib.texi (Contributors): Add John Marino.
36435
36436 2015-04-09 Jakub Jelinek <jakub@redhat.com>
36437
36438 PR tree-optimization/65709
36439 * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
36440 TREE_TYPE (TREE_TYPE (t)).
36441
36442 2015-04-09 Vladimir Makarov <vmakarov@redhat.com>
36443
36444 PR target/65710
36445 * lra-int.h (lra_bad_spill_regno_start): New.
36446 * lra.c (lra_bad_spill_regno_start): New.
36447 (lra): Set up lra_bad_spill_regno_start. Set up
36448 lra_constraint_new_regno_start unconditionally.
36449 * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
36450 spill preferences.
36451
36452 2015-04-09 Marek Polacek <polacek@redhat.com>
36453 Jakub Jelinek <jakub@redhat.com>
36454
36455 PR middle-end/65554
36456 * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
36457 (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
36458 of STRIP_NOPS.
36459
36460 2015-04-09 Segher Boessenkool <segher@kernel.crashing.org>
36461
36462 PR rtl-optimization/65693
36463 * combine.c (is_parallel_of_n_reg_sets): Move outside of
36464 #ifndef HAVE_cc0.
36465
36466 2015-04-09 Georg-Johann Lay <avr@gjlay.de>
36467
36468 PR target/65296
36469 * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
36470 device specs file if "device-specs%s" didn't resolve to a path.
36471
36472 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
36473
36474 PR target/65676
36475 * config/i386/i386.c (fixup_modeless_constant): New.
36476 (ix86_expand_args_builtin): Fixup modeless constant operand.
36477 (ix86_expand_round_builtin): Ditto.
36478 (ix86_expand_special_args_builtin): Ditto.
36479 (ix86_expand_builtin): Ditto.
36480
36481 2015-04-09 Jakub Jelinek <jakub@redhat.com>
36482
36483 PR target/65693
36484 * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
36485 any pow2 integer in between 2 and 0x80000000U inclusive.
36486
36487 2015-04-08 Segher Boessenkool <segher@kernel.crashing.org>
36488
36489 PR rtl-optimization/65693
36490 * combine.c (is_parallel_of_n_reg_sets): Change first argument
36491 from an rtx_insn * to an rtx.
36492 (try_combine): Adjust both callers. Use it once more.
36493
36494 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
36495
36496 * tree-chkp.c (chkp_find_const_bounds_var): Remove.
36497 (chkp_make_static_const_bounds): Search existing
36498 symbol by assembler name. Use make_decl_one_only.
36499 (chkp_get_zero_bounds_var): Remove node search which
36500 is now performed in chkp_make_static_const_bounds.
36501 (chkp_get_none_bounds_var): Likewise.
36502
36503 2015-04-08 Michael Witten <mfwitten@gmail.com>
36504
36505 * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
36506 to an example.
36507
36508 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
36509
36510 * tree.h (CONVERT_EXPR_P): Commentary typo fix.
36511
36512 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
36513
36514 * doc/extend.texi (__sync Builtins): Fix grammar.
36515
36516 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
36517
36518 * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
36519
36520 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
36521
36522 * varasm.c (emit_local): Move definition of align.
36523
36524 2015-04-08 Julian Brown <julian@codesourcery.com>
36525
36526 * config/nvptx/mkoffload.c (process): Support variable mapping.
36527
36528 2015-03-27 Trevor Saunders <tbsaunde@tbsaunde.org>
36529
36530 * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
36531 alpha_links **.
36532 (alpha_write_one_linkage): Correct typo.
36533
36534 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
36535
36536 * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
36537
36538 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
36539
36540 * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
36541
36542 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
36543
36544 * tree-chkp.h (chkp_insert_retbnd_call): New.
36545 * tree-chkp.c (chkp_insert_retbnd_call): New.
36546 * ipa-split.c (insert_bndret_call_after): Remove.
36547 (split_function): Use chkp_insert_retbnd_call.
36548 * cgraphunit.c (cgraph_node::expand_thunk): Build returned
36549 bounds for instrumented functions.
36550
36551 2015-04-07 Jan Hubicka <hubicka@ucw.cz>
36552
36553 PR ipa/65540
36554 * calls.c (initialize_argument_information): When producing tail
36555 call also turn SSA_NAMES passed by references to original PARM_DECLs
36556
36557 2015-04-07 Vladimir Makarov <vmakarov@redhat.com>
36558
36559 PR target/65648
36560 * lra-remat.c (do_remat): Process input and non-input insn
36561 registers separately.
36562
36563 2015-04-07 Jakub Jelinek <jakub@redhat.com>
36564
36565 PR debug/65678
36566 * valtrack.c (debug_lowpart_subreg): New function.
36567 (dead_debug_insert_temp): Use it.
36568
36569 PR middle-end/65680
36570 * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
36571 into signed HOST_WIDE_INT the same as negative bit_offset.
36572
36573 2015-04-07 Ilya Enkovich <ilya.enkovich@intel.com>
36574
36575 * ipa-comdats.c (ipa_comdats): Visit all thunks
36576 to set proper comdat group.
36577
36578 2015-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36579
36580 PR target/65489
36581 * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
36582 on constants for NEON VSTRUCT modes.
36583
36584 2015-04-07 Jakub Jelinek <jakub@redhat.com>
36585 Iain Sandoe <iain@codesourcery.com>
36586
36587 PR target/65351
36588 * configure: Regenerate.
36589
36590 2015-04-06 Michael Meissner <meissner@linux.vnet.ibm.com>
36591
36592 PR target/65614
36593 * config/rs6000/rs6000.c (struct processor_costs): Add cost field
36594 for SF->DF conversions to make FLOAT_EXTEND more expensive, so
36595 that LFD is used to load double constants instead of LFS. Add
36596 defaults for all costs structures. Add comments for missing
36597 initialization fields.
36598 (size32_cost): Likewise.
36599 (size64_cost): Likewise.
36600 (rs64a_cost): Likewise.
36601 (mpccore_cost): Likewise.
36602 (ppc403_cost): Likewise.
36603 (ppc405_cost): Likewise.
36604 (ppc440_cost): Likewise.
36605 (ppc476_cost): Likewise.
36606 (ppc601_cost): Likewise.
36607 (ppc603_cost): Likewise.
36608 (ppc604_cost): Likewise.
36609 (ppc604e_cost): Likewise.
36610 (ppc620_cost): Likewise.
36611 (ppc630_cost): Likewise.
36612 (ppccell_cost): Likewise.
36613 (ppc750_cost): Likewise.
36614 (ppc7450_cost): Likewise.
36615 (ppc8540_cost): Likewise.
36616 (ppce300c2c3_cost): Likewise.
36617 (ppce500mc_cost): Likewise.
36618 (ppce500mc64_cost): Likewise.
36619 (ppce5500_cost): Likewise.
36620 (ppce6500_cost): Likewise.
36621 (titan_cost): Likewise.
36622 (power4_cost): Likewise.
36623 (power6_cost): Likewise.
36624 (power7_cost): Likewise.
36625 (power8_cost): Likewise.
36626 (ppca2_cost): Likewise.
36627 (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
36628
36629 * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
36630 instead of XXLOR to copy SFmode to clear out dirty bits created
36631 when SFmode denormals are generated.
36632 (mov<mode>_hardfloat, FMOVE32 case): Likewise.
36633 (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
36634
36635 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
36636
36637 * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
36638 * config/aarch64/aarch64-cores.def (exynos-m1): New core.
36639 * config/aarch64/aarch64-tune.md: Regenerate.
36640
36641 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
36642
36643 * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
36644 * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
36645 * config/arm/arm-cores.def (exynos-m1): New core.
36646 * config/arm/arm-tune.md: Regenerate.
36647 * config/arm/arm-tables.opt: Add entry for "exynos-m1".
36648 * config/arm/bpabi.h: Likewise.
36649
36650 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
36651
36652 * ipa-cp (set_single_call_flag): Remove too
36653 restrictive assert.
36654
36655 2015-04-06 Ilya Verbin <ilya.verbin@intel.com>
36656
36657 * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
36658 GOMP_offload_unregister from the destructor.
36659
36660 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
36661
36662 * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
36663 flags for instrumentation thunk.
36664 (chkp_produce_thunks): Likewise.
36665
36666 2015-04-05 Martin Liska <mliska@suse.cz>
36667
36668 PR ipa/65665
36669 * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
36670 has computed data structure.
36671 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
36672
36673 2015-04-04 Jan Hubicka <hubicka@ucw.cz>
36674
36675 * invoke.texi (inline-unit-growth): Increase growth to 20%
36676 * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
36677
36678 2015-04-04 Vladimir Makarov <vmakarov@redhat.com>
36679
36680 PR target/65647
36681 * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New. Add its
36682 value checking.
36683 (lra_rematerialization_iter): New.
36684 * lra.c (lra): Initialize lra_rematerialization_iter.
36685 Stop updating lra_constraint_new_regno_start after switching of
36686 inheritance and rematerialization.
36687 * lra-remat.c (lra_rematerialization_iter): New.
36688 (lra_remat): Add printing pass iteration. Do rematerialization
36689 only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
36690
36691 2015-04-04 Richard Biener <rguenther@suse.de>
36692
36693 PR tree-optimization/64909
36694 PR tree-optimization/65660
36695 * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
36696 to take a cost vector for scalar iteration cost.
36697 (vect_get_single_scalar_iteration_cost): Likewise.
36698 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
36699 Compute the scalar iteration cost into a cost vector.
36700 (vect_get_known_peeling_cost): Use the scalar cost vector to
36701 account for the cost of the peeled iterations.
36702 (vect_estimate_min_profitable_iters): Likewise.
36703 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
36704 Likewise.
36705
36706 2015-04-04 Alan Modra <amodra@gmail.com>
36707
36708 PR target/65576
36709 PR target/65240
36710 * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
36711 0.0 constant unless TARGET_VSX.
36712 * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
36713 alternative.
36714
36715 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
36716
36717 PR ipa/65654
36718 * ipa-inline-transform.c (inline_call): Skip sanity check to work
36719 around the ICE
36720
36721 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
36722
36723 PR ipa/65655
36724 * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
36725 speculative indirect edges to avoid ordering issue.
36726
36727 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
36728
36729 PR ipa/65076
36730 * ipa-inline.c (edge_badness): Add combined size to the denominator.
36731
36732 2015-04-03 Jakub Jelinek <jakub@redhat.com>
36733
36734 * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
36735 TYPE_ARTIFICIAL on the .omp_data* types.
36736
36737 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
36738
36739 * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
36740 instrumentation thunks.
36741
36742 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
36743
36744 * config/i386/i386.c (ix86_expand_call): Avoid nested
36745 PARALLEL in returned call value.
36746
36747 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
36748
36749 * lto-cgraph.c (input_cgraph_1): Always link instrumented
36750 assembler name with original one.
36751
36752 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
36753
36754 * config/i386/i386.c (ix86_register_priority): Use AX_REG.
36755
36756 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
36757
36758 Revert parts of r216820.
36759 * config/i386/i386.md (movqi_internal): Correct type calculation
36760 for alternatives 3 and 5.
36761
36762 2015-04-02 Jakub Jelinek <jakub@redhat.com>
36763
36764 PR preprocessor/61977
36765 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
36766 predefine __vector/__bool/__pixel macros nor context sensitive
36767 macros for CLK_ASM.
36768 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
36769
36770 2015-04-02 John David Anglin <danglin@gcc.gnu.org>
36771
36772 * config/pa/pa.c (pa_output_move_double): Directly handle register
36773 indexed memory operand. Simplify handling of scaled register indexed
36774 memory operands.
36775
36776 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
36777
36778 PR driver/65444
36779 * config/i386/linux-common.h (MPX_SPEC): New.
36780 (CHKP_SPEC): Add MPX_SPEC.
36781 * doc/invoke.texi (-fcheck-pointer-boudns): Document
36782 possible issues with '-z bndplt' support in linker.
36783
36784 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
36785
36786 * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
36787 (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
36788 (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
36789 * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
36790 (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
36791
36792 2015-04-01 Uros Bizjak <ubizjak@gmail.com>
36793
36794 * config/i386/sync.md (UNSPEC_MOVA): Remove.
36795 (atomic_load<mode>): Change operand 0 predicate to
36796 nonimmediate_operand and fix up the destination when needed.
36797 Use UNSPEC_LDA.
36798 (atomic_loaddi_fpu): Use UNSPEC_LDA.
36799 (atomic_store<mode>): Change operand 1 predicate to
36800 nonimmendate_operand and move the source to register when needed.
36801 Use UNSPEC_STA.
36802 (atomic_store<mode>_1): Use UNSPEC_STA.
36803 (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
36804 Fix moves from memory operand. Use UNSPEC_STA.
36805
36806 2015-04-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
36807
36808 * expmed.c (strict_volatile_bitfield_p): Check that the access will
36809 not cross a MODESIZE boundary.
36810 (store_bit_field, extract_bit_field): Added assertions in the
36811 strict volatile bitfields code path.
36812
36813 2015-04-01 Max Ostapenko <m.ostapenko@partner.samsung.com>
36814
36815 PR target/65624
36816 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
36817 Increase args array size by one to avoid buffer overflow.
36818
36819 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
36820
36821 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
36822 split_part.
36823 * ipa-inline.c (edge_badness): Add wrapper penalty.
36824 (sum_callers): Move up.
36825 (inline_small_functions): Set single_caller.
36826 * ipa-inline.h (inline_summary): Add single_caller.
36827 * ipa-split.c (split_function): Set split_part.
36828 (cgraph_node::create_clone): Do not shadow decl; copy split_part.
36829 * cgraph.h (cgraph_node): Add split_part.
36830
36831 2015-03-31 Uros Bizjak <ubizjak@gmail.com>
36832
36833 PR target/58945
36834 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
36835 Do not split operands 0 and operands 2 to halfmode.
36836 (atomic_compare_and_swap<mode>): Update for
36837 atomic_compare_and_swap<dwi>_doubleword changes.
36838
36839 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
36840
36841 * tree.c (need_assembler_name_p): Artificial types have no ODR names.
36842 * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
36843 no caching is done.
36844
36845 2015-03-31 Martin Liska <mliska@suse.cz>
36846
36847 PR ipa/65557
36848 * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
36849 has already filled up function summary.
36850 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
36851
36852 2015-03-31 Richard Biener <rguenther@suse.de>
36853
36854 * tree-sra.c (create_access_replacement): Drop under-/over-alignment
36855 of types.
36856
36857 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com>
36858
36859 * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
36860 nested functions.
36861 (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
36862 (s390_asm_output_function_label): Adapt to new signature of
36863 s390_function_num_hotpatch_hw
36864 Optimise the code generating assembler output.
36865 Add comments to assembler file.
36866
36867 2015-03-31 Richard Biener <rguenther@suse.de>
36868
36869 PR middle-end/65626
36870 * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
36871 of the noreturn call so it is last and cleanup_control_flow_bb
36872 can do the CFG part.
36873
36874 2015-03-31 Ilya Enkovich <ilya.enkovich@intel.com>
36875
36876 PR target/65531
36877 * ipa-chkp.c (chkp_maybe_create_clone): Don't set
36878 same_comdat_group for external symbols.
36879 * symtab.c (symtab_node::verify_symtab_nodes): Avoid
36880 infinite same_comdat_group traversal loop.
36881
36882 2015-03-31 Jakub Jelinek <jakub@redhat.com>
36883
36884 PR plugins/61176
36885 * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
36886 automatically to $headers.
36887
36888 2015-03-30 Jakub Jelinek <jakub@redhat.com>
36889
36890 PR ipa/65610
36891 * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
36892 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
36893 function.
36894 (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
36895 Use it.
36896 * ipa-prop.c (param_type_may_change_p): Likewise.
36897 * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
36898 (remove_unused_scope_block_p): Add in_ctor_dtor_block
36899 argument. Before inlining, preserve
36900 inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
36901 with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them. Adjust
36902 recursive calls.
36903 (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
36904
36905 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
36906
36907 PR ipa/65076
36908 * ipa-inline.c (edge_badness): Base denominator on callee's
36909 grwoth squared.
36910
36911 2015-03-27 Martin Jambor <mjambor@suse.cz>
36912
36913 PR ipa/65478
36914 * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
36915 (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
36916 * ipa-prop.h (ipa_node_params): New flags node_within_scc and
36917 node_calling_single_call.
36918 * ipa-cp.c (count_callers): New function.
36919 (set_single_call_flag): Likewise.
36920 (initialize_node_lattices): Count callers and set single_flag_call if
36921 necessary.
36922 (incorporate_penalties): New function.
36923 (good_cloning_opportunity_p): Use it, dump new flags.
36924 (propagate_constants_topo): Set node_within_scc flag if appropriate.
36925 * doc/invoke.texi (ipa-cp-recursion-penalty,
36926 ipa-cp-single-call-pentalty): Document.
36927
36928 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
36929
36930 PR ipa/65588
36931 * symtab.c (symtab_node::get_partitioning_class): Register vars
36932 are duplicated.
36933 * varpool.c (symbol_table::output_variables) Do not assemble unefined
36934 decls for non-symbols.
36935
36936 2015-03-27 H.J. Lu <hongjiu.lu@intel.com>
36937
36938 PR target/65248
36939 * output.h (default_binds_local_p_2): New.
36940 * varasm.c (default_binds_local_p_2): Renamed to ...
36941 (default_binds_local_p_3): This. Don't return true on protected
36942 data symbol if protected data may be external.
36943 (default_binds_local_p): Use default_binds_local_p_3.
36944 (default_binds_local_p_1): Likewise.
36945 (default_binds_local_p_2): New.
36946 * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
36947 default_binds_local_p_2 if TARGET_MACHO is undefined.
36948
36949 2015-03-27 Jakub Jelinek <jakub@redhat.com>
36950
36951 PR target/65593
36952 * config/i386/i386.c (legitimize_pic_address): If base
36953 is SYMBOL_REF or LABEL_REF using %rip addressing, force
36954 it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
36955
36956 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
36957
36958 PR target/65531
36959 * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
36960 comdat groups.
36961
36962 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
36963
36964 PR ipa/65600
36965 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
36966 of optimized out indirect call.
36967 (redirect_to_unreachable): Always build symbol table node for
36968 BUILT_IN_UNREACHABLE
36969
36970 2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
36971
36972 PR target/65407
36973 * ira-costs.c (record_reg_classes): Process all constraint string
36974 containing 0-9.
36975
36976 2015-03-27 Bernd Schmidt <bernds@codesourcery.com>
36977
36978 * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
36979 memory_operand.
36980
36981 PR target/65052
36982 * config/c6x/constraints.md (S3): New constraint.
36983 * config/c6x/c6x.md (real_jump): Use it.
36984
36985 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
36986
36987 PR middle-end/65595
36988 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
36989 do redirection if the call is not optimized out.
36990
36991 2015-03-27 Ilya Enkovich <ilya.enkovich@intel.com>
36992
36993 PR target/65495
36994 * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
36995 (fchkp-check-incomplete-type): Add LTO.
36996 (fchkp-zero-input-bounds-for-main): Likewise.
36997 (fchkp-first-field-has-own-bounds): Likewise.
36998 (fchkp-narrow-bounds): Likewise.
36999 (fchkp-narrow-to-innermost-array): Likewise.
37000 (fchkp-use-static-bounds): Likewise.
37001 (fchkp-use-static-const-bounds): Likewise.
37002 (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
37003
37004 2015-03-27 Marek Polacek <polacek@redhat.com>
37005
37006 * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
37007
37008 2015-03-27 Marek Polacek <polacek@redhat.com>
37009
37010 PR sanitizer/65583
37011 * ubsan.c (ubsan_create_edge): New function.
37012 (instrument_bool_enum_load): Call it.
37013 (instrument_nonnull_arg): Likewise.
37014 (instrument_nonnull_return): Likewise.
37015 (instrument_object_size): Likewise.
37016
37017 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
37018
37019 * lto-streamer.h (class lto_location_cache): Turn loc_cache into
37020 auto_vec.
37021
37022 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
37023
37024 PR lto/65536
37025 * lto-streamer.h (class lto_location_cache): New.
37026 (struct data_in): Add location_cache.
37027 (lto_input_location): Update prototype.
37028 (stream_input_location_now): New.
37029 * streamer-hooks.h (struct streamer_hooks): Make input_location to take
37030 pointer to location.
37031 (stream_input_location): Update.
37032 * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
37033 (warn_odr): Apply location cache before warning.
37034 (lto_input_location): Update prototype.
37035 * gimple-streamer-in.c (input_phi, input_gimple_stmt):
37036 Use stream_input_location_now.
37037 * lto-streamer-in.c (lto_location_cache::current_cache): New static
37038 variable.
37039 (lto_location_cache::cmp_loc): New function.
37040 (lto_location_cache::apply_location_cache): New function.
37041 (lto_location_cache::accept_location_cache): New function.
37042 (lto_location_cache::revert_location_cache): New function.
37043 (lto_location_cache::input_location): New function.
37044 (lto_input_location): Do location caching.
37045 (stream_input_location_now): New function.
37046 (input_eh_region, input_struct_function_base): Use
37047 stream_input_location_now.
37048 (lto_data_in_create): use new.
37049 (lto_data_in_delete): Use delete.
37050 * tree-streamer-in.c (unpack_ts_block_value_fields,
37051 unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
37052 lto_input_ts_exp_tree_pointers): Update for cached location api.
37053
37054 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
37055
37056 PR ipa/65076
37057 * passes.def: Add pass_nothrow.
37058 * ipa-pure-const.c: (pass_data_nothrow): New.
37059 (pass_nothrow): New.
37060 (pass_nothrow::execute): New.
37061 (make_pass_nothrow): New.
37062 * tree-pass.h (make_pass_nothrow): Declare.
37063
37064 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
37065
37066 * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
37067 edge to change by speculation resolution or redirection.
37068 (edge_set_predicate): Likewise.
37069 (inline_summary_t::duplicate): Likewise.
37070 (remap_edge_summaries): Likewise.
37071
37072 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
37073
37074 * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
37075 New macros.
37076 (can_inline_edge_p): Relax option matching for always inline functions.
37077
37078 2015-03-26 Uros Bizjak <ubizjak@gmail.com>
37079
37080 PR target/65561
37081 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
37082 Check operand 4 and operand 0 for equality.
37083 (avx512f_vextract<shuffletype>32x4_1_maskm):
37084 Check operand 6 and operand 0 for equality.
37085 (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
37086 for equality.
37087 (vec_extract_hi_<mode>_maskm): Ditto.
37088
37089 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
37090
37091 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
37092 dead calls back to live.
37093 (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
37094 cross check to ...
37095 (cgraph_node::verify_node): ... here; verify only callee edges,
37096 not caller.
37097 * cif-code.def (CILK_SPAWN): New code.
37098
37099 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
37100
37101 * ipa-inline-analysis.c (redirect_to_unreachable): New function.
37102 (edge_set_predicate): Use it to mark unreachable edges.
37103 (inline_summary_t::duplicate): Remove unnecesary code.
37104 (remap_edge_summaries): Likewise.
37105 (dump_inline_summary): Report contains_cilk_spawn.
37106 (compute_inline_parameters): Compute contains_cilk_spawn.
37107 (inline_read_section, inline_write_summary): Stream
37108 contains_cilk_spawn.
37109 * ipa-inline.c (can_inline_edge_p): Do not touch
37110 DECL_STRUCT_FUNCTION that may not be available;
37111 use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
37112 remove check for callee_fun->can_throw_non_call_exceptions and
37113 replace it by optimization attribute check; check for flag_exceptions.
37114 * ipa-inline-transform.c (inline_call): Maintain
37115 DECL_FUNCTION_PERSONALITY
37116 * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
37117
37118 2015-03-26 Jakub Jelinek <jakub@redhat.com>
37119
37120 PR tree-optimization/65551
37121 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
37122 TYPE_PRECISION only for INTEGRAL_TYPE_P types.
37123
37124 2015-03-26 Richard Biener <rguenther@suse.de>
37125
37126 PR middle-end/65555
37127 * tree-cfg.c (verify_gimple_call): Do not require a call to
37128 have no LHS if it wasn't recognized as control altering yet.
37129
37130 2015-03-26 Jakub Jelinek <jakub@redhat.com>
37131
37132 PR tree-optimization/64715
37133 * passes.def: Add another instance of pass_object_sizes before ccp1.
37134 * tree-object-size.c (pass_object_sizes::execute): In
37135 first_pass_instance, only handle __bos (, 1) and __bos (, 3)
37136 calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
37137 __bos result and the computed constant. Remove redundant
37138 checks, obsoleted by gimple_call_builtin_p test.
37139
37140 * var-tracking.c (variable_tracking_main_1): Don't track
37141 variables for targetm.no_register_allocation targets.
37142
37143 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
37144
37145 * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
37146 * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
37147
37148 2015-03-25 Michael Meissner <meissner@linux.vnet.ibm.com>
37149
37150 PR target/65569
37151 * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
37152 XXLXOR to create 0.0. On pre-VSX systems make sure the constant
37153 0.0 is correctly setup.
37154 (extenddftf2_internal): Likewise.
37155
37156 2015-03-25 Sebastian Pop <s.pop@samsung.com>
37157
37158 PR tree-optimization/65177
37159 * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
37160 (bb_in_bbs): New.
37161 (duplicate_seme_region): Renamed duplicate_thread_path. Redirect all
37162 edges not adjacent on the path to the original code.
37163
37164 2015-03-25 Uros Bizjak <ubizjak@gmail.com>
37165
37166 PR bootstrap/65537
37167 * doc/install.texi (Building a native compiler): Document new
37168 bootstrap-lto-noplugin configuration. Mention that bootstrap-lto
37169 configuration assumes that the host supports the linker plugin.
37170
37171 2015-03-25 Ilya Enkovich <ilya.enkovich@intel.com>
37172
37173 PR target/65508
37174 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
37175 chain for generated call.
37176
37177 2015-03-25 Richard Biener <rguenther@suse.de>
37178
37179 * passes.c (pass_manager::execute_early_local_passes): Guard
37180 execution of pass_chkp_instrumentation_passes with
37181 flag_check_pointer_bounds.
37182 (pass_chkp_instrumentation_passes::gate): Likewise.
37183
37184 2015-03-25 Martin Liska <mliska@suse.cz>
37185
37186 PR tree-optimization/65538
37187 * symbol-summary.h (function_summary::~function_summary):
37188 Relese memory for allocated summaries.
37189 (function_summary::release): New function.
37190
37191 2015-03-25 Jakub Jelinek <jakub@redhat.com>
37192
37193 PR lto/65515
37194 * lto-streamer-out.c (DFS::worklist): New struct.
37195 (DFS::worklist_vec): New data member.
37196 (DFS::next_dfs_num): Remove.
37197 (DFS::DFS): Rewritten using worklist instead of recursion,
37198 using most of code from DFS::DFS_write_tree.
37199 (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
37200 pass it to DFS_write_tree calls.
37201 (DFS::DFS_write_tree): Remove SINGLE_P argument, after
37202 quick initial checks push it into worklist_vec and return.
37203
37204 2015-03-25 Richard Biener <rguenther@suse.de>
37205
37206 PR middle-end/65519
37207 * genmatch.c (expr::gen_transform): Re-write to avoid
37208 using gimple_build.
37209
37210 2015-03-25 Bin Cheng <bin.cheng@arm.com>
37211
37212 * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
37213
37214 2015-03-25 Bin Cheng <bin.cheng@arm.com>
37215
37216 * config/arm/arm.opt (print_tune_info): New option.
37217 * config/arm/arm.c (arm_print_tune_info): New function.
37218 (arm_file_start): Call arm_print_tune_info.
37219 * config/arm/arm-protos.h (struct tune_params): Add comment.
37220 * doc/invoke.texi (@item -mprint-tune-info): New item.
37221 (-mtune): mention it in ARM Option Summary.
37222
37223 2015-03-25 DJ Delorie <dj@redhat.com>
37224
37225 * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
37226 correct clause.
37227
37228 2015-03-24 Jan Hubicka <hubicka@ucw.cz>
37229 Martin Liska <mliska@suse.cz>
37230
37231 * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
37232 * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
37233 (sem_item::add_type): New function.
37234 (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
37235 (sem_function::compare_polymorphic_p): Do not consider indirect calls.
37236 (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
37237 (sem_function::equals_wpa): Fix typo.
37238 * ipa-icf.h (sem_item::add_type): New function.
37239 (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
37240 order.
37241
37242 2015-03-24 Jakub Jelinek <jakub@redhat.com>
37243
37244 PR tree-optimization/65533
37245 * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
37246 with swapped operands, call vect_free_slp_tree on
37247 SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
37248 vector.
37249
37250 2015-03-24 Richard Biener <rguenther@suse.de>
37251
37252 PR middle-end/65517
37253 * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
37254 for fixup if necessary.
37255
37256 2015-03-23 Sandra Loosemore <sandra@codesourcery.com>
37257
37258 * doc/extend.texi (Function Attributes): Add @cindex entries
37259 for all attributes and regularize their format. Delete text
37260 about long-obsolete 68HC11 and 68HC12 targets. Move misplaced
37261 information about "eightbit_data", "tiny_data", and "model"
37262 variable attributes to the Variable Attributes section. Fix
37263 some obvious typos and copy-editing issues.
37264 (Variable Attributes, Type Attributes): Likewise add/fix
37265 @cindex entries for all attributes.
37266
37267 2015-03-23 Jakub Jelinek <jakub@redhat.com>
37268
37269 PR target/65523
37270 * tree-chkp.c (chkp_build_returned_bound): Ignore
37271 ERF_RETURNS_ARG calls if they have fewer than needed arguments.
37272
37273 2015-03-23 Oleg Endo <olegendo@gcc.gnu.org>
37274
37275 PR target/65505
37276 * config/sh/predicates.md (simple_mem_operand,
37277 displacement_mem_operand): Add test for reg.
37278 (short_displacement_mem_operand): Test for displacement_mem_operand
37279 before invoking sh_disp_addr_displacement.
37280 * config/sh/constraints.md (Sdd, Sra): Simplify.
37281 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
37282 Remove redundant displacement_mem_operand tests.
37283
37284 2015-03-23 Georg-Johann Lay <avr@gjlay.de>
37285
37286 PR target/65296
37287 * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
37288 the same -mmcu=MCU more than once.
37289
37290 2015-03-23 Jakub Jelinek <jakub@redhat.com>
37291
37292 PR bootstrap/65522
37293 * ipa-devirt.c: Remove duplicate demangle.h include.
37294
37295 PR target/65504
37296 * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
37297 on the pseudo.
37298 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
37299 REG_POINTER on *destptr after adjusting it for prologue size.
37300
37301 PR ipa/65521
37302 * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
37303 ultimate_alias_target ()->order ints instead of
37304 ultimate_alias_target () pointers.
37305
37306 2015-03-23 Richard Biener <rguenther@suse.de>
37307
37308 PR tree-optimization/65518
37309 * tree-vect-stmts.c (vectorizable_load): Reject single-element
37310 interleaving cases we generate absymal code for.
37311
37312 2015-03-23 Richard Biener <rguenther@suse.de>
37313
37314 PR tree-optimization/65494
37315 * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
37316 matches here.
37317 (vect_analyze_slp_instance): But do that here, always and once.
37318
37319 2015-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37320
37321 * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
37322 adding T or multiplying by T+1 and subracting T.
37323
37324 2015-03-22 Jeff Law <law@redhat.com>
37325
37326 PR rtl-optimization/64317
37327 * Makefile.in (OBJS): Add gcse-common.c
37328 * gcse.c: Include gcse-common.h
37329 (struct modify_pair_s): Move structure definition to gcse-common.h
37330 (compute_transp): Move function to gcse-common.c.
37331 (canon_list_insert): Similarly.
37332 (record_last_mem_set_info): Break out some code and put it into
37333 gcse-common.c. Call into the new common code.
37334 (compute_local_properties): Pass additional arguments to compute_transp.
37335 * postreload-gcse.c: Include gcse-common.h and df.h
37336 (modify_mem_list_set, blocks_with_calls): New variables.
37337 (modify_mem_list, canon_modify_mem_list, transp): Likewise.
37338 (get_bb_avail_insn): Pass in the expression index too.
37339 (alloc_mem): Allocate memory for the new bitmaps and lists.
37340 (free_mem): Free memory for the new bitmaps and lists.
37341 (insert_expr_in_table): Record a bitmap index for each entry we
37342 add to the table.
37343 (record_last_mem_set_info): Call into common code in gcse-common.c.
37344 (get_bb_avail_insn): If no available insn was found in the requested
37345 BB. If BB has a single predecessor, see if the expression is
37346 transparent in BB and available in that single predecessor.
37347 (compute_expr_transp): New wrapper for compute_transp.
37348 (eliminate_partially_redundant_load): Pass expression's bitmap_index
37349 to get_bb_avail_insn. Compute next_pred_bb_end a bit later.
37350 (gcse_after_reload_main): If there are elements in the hash table,
37351 then compute transparency for all the elements in the hash table.
37352 * gcse-common.h: New file.
37353 * gcse-common.c: New file.
37354
37355 2015-03-22 Sandra Loosemore <sandra@codesourcery.com>
37356
37357 * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
37358 as an adjective.
37359 (System Headers): Likewise.
37360 (Ifdef): Likewise.
37361 (Traditional macros): Likewise.
37362 (Invocation): Likewise.
37363 (Option Index): Likewise.
37364 * doc/cppopts.texi (-M): Likewise.
37365 (-finput-charset): Likewise.
37366 (--help): Likewise.
37367 * doc.invoke.texi (AVR Options): Likewise.
37368 (V850 Options): Likewise.
37369
37370 2015-03-22 Jan Hubicka <hubicka@ucw.cz>
37371
37372 PR ipa/65475
37373 * ipa-devirt.c: Include demangle.h
37374 (odr_type_d): Add field rtti_broken.
37375 (odr_subtypes_equivalent_p): Do not require name to match.
37376 (compare_virtual_tables): Fix typo; if type already has ODR violation,
37377 bypass the tests; be ready for function referneces in vtables that are
37378 not DECL_VIRTUAL; make warnings to be OPT_Wodr.
37379 (warn_odr): Give up for nameless types.
37380 (warn_types_mismatch): Report mismatch in mangled names;
37381 report mismatch in anonymous namespaces; look into component types to
37382 give useful error; report when mismatch is dragged in from other ODR
37383 type.
37384 (odr_types_equivalent_p): Match types for being polymorphic; avoid
37385 duplicated diagnostics.
37386 (add_type_duplicate): Reorder checks so more informative ones come
37387 first; fix typo; do not output "the extra base is defined here" when
37388 we did not warn.
37389 (BINFO_N_BASE_BINFOS): Relax sanity check.
37390
37391 2015-03-22 Martin Liska <mliska@suse.cz>
37392 Jakub Jelinek <jakub@redhat.com>
37393
37394 * config/i386/i386.c (def_builtin): Set deferred_isa_values for
37395 masks that can potentially include a builtin.
37396 (ix86_add_new_builtins): Introduce fast filter for isa values
37397 that cannot trigger builtin inclusion.
37398
37399 2015-03-22 Martin Liska <mliska@suse.cz>
37400
37401 * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
37402 (sem_item::update_hash_by_local_refs): Likewise.
37403 (sem_variable::get_hash): Empty line is fixed.
37404 (sem_item_optimizer::execute): Include adding of hash references.
37405 (sem_item_optimizer::update_hash_by_addr_refs): New function.
37406 (sem_item_optimizer::build_hash_based_classes): Use local hash.
37407 * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
37408 (sem_item::update_hash_by_local_refs): Likewise.
37409
37410 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
37411
37412 PR ipa/65502
37413 * ipa-comdats.c (enqueue_references): Walk through thunks.
37414 (ipa_comdats): Likewise.
37415 (set_comdat_group_1): New function.
37416
37417 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
37418
37419 PR ipa/65475
37420 * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
37421 non-polymorphic
37422
37423 2015-03-22 Dave Korn <dave.korn.cygwin@gmail.com>
37424 Gerald Pfeifer <gerald@pfeifer.com>
37425
37426 * doc/contrib.texi (Contributors): Update entry for Danny Smith.
37427
37428 2015-03-21 Chung-Lin Tang <cltang@codesourcery.com>
37429 Sandra Loosemore <sandra@codesourcery.com>
37430
37431 * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
37432 function parameter declaration.
37433 * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
37434 Update arguments to nios2_adjust_call_address().
37435 (sibcall_internal): Rename from *sibcall.
37436 (sibcall_value_internal): Rename from *sibcall_value.
37437 * config/nios2/nios2.c (nios2_emit_add_constant): New function.
37438 (nios2_large_got_address): Add target temp reg parameter.
37439 (nios2_got_address): Adjust call to nios2_large_got_address, add
37440 force_reg around it.
37441 (nios2_load_pic_address): Add target temp reg parameter, replace call
37442 to nios2_got_address with corresponding code.
37443 (nios2_legitimize_constant_address): Update call to
37444 nios2_load_pic_address.
37445 (nios2_adjust_call_address): Add temp reg parameter, update PIC case
37446 to use temp reg for PIC loading purposes.
37447 (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
37448 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
37449 (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
37450
37451 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
37452
37453 * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
37454 usage of "the @option{...}".
37455 (-Wopenmp-simd): Likewise.
37456 (-fsanitize-recover): Likewise.
37457 (-fsanitize-undefined-trap-on-error): Likewise.
37458 (-flto): Likewise.
37459 (tracer-dynamic-coverage-feedback): Likewise.
37460 (reorder-block-duplicate-feedback): Likewise.
37461 (loop-unroll-jam-size): Likewise.
37462 (-B): Likewise.
37463 (-I-): Likewise.
37464 (-mabs=legacy): Likewise.
37465 (-mupper-regs-df): Likewise.
37466 (-mupper-regs-sf): Likewise.
37467 (-mpointers-to-nested-functions): Likewise.
37468
37469 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
37470
37471 * doc/extend.texi (Cilk Plus Builtins): Add markup.
37472
37473 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
37474
37475 * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
37476 additional index entries and cross-references.
37477 (-fchkp-check-incomplete-type): Likewise.
37478 (-fchkp-first-field-has-own-bounds): Likewise.
37479 (-fchkp-narrow-to-innermost-array): Likewise.
37480 (-fchkp-use-fast-string-functions): Likewise.
37481 (-fchkp-use-nochk-string-functions): Likewise.
37482 (-fchkp-use-static-const-bounds): Likewise.
37483 (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
37484 (-fchkp-instrument-marked-only): Likewise.
37485 (-fchkp-use-wrappers): Likewise.
37486 (-static-libmpx): Likewise.
37487 (-static-libmpxwrappers): Likewise.
37488 * doc/extend.texi (bnd_legacy): Likewise.
37489 (bnd_instrument): Likewise.
37490 (bnd_variable_size): Likewise.
37491 (Pointer Bounds Checker builtins): Likewise.
37492
37493 2015-03-21 Tom de Vries <tom@codesourcery.com>
37494
37495 PR tree-optimization/65458
37496 * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
37497 * cgraph.h (cgraph_node): Add parallelized_function field.
37498 * lto-cgraph.c (lto_output_node): Write parallelized_function field.
37499 (input_overwrite_node): Read parallelized_function field.
37500 * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
37501 parallelized_function on cgraph_node for child_fn.
37502 * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
37503 Remove include of gt-tree-parloops.h.
37504 (parallelized_functions): Remove static variable.
37505 (parallelized_function_p): Rewrite using parallelized_function field of
37506 cgraph_node.
37507 (create_loop_fn): Remove adding to parallelized_functions.
37508 * Makefile.in (GTFILES): Remove tree-parloops.c
37509
37510 2015-03-20 Vladimir Makarov <vmakarov@redhat.com>
37511
37512 PR rtl-optimization/64366
37513 * lra.c (lra_update_insn_regno_info): Consider regs in
37514 CALL_INSN_FUNCTION_USAGE memory.
37515
37516 2015-03-20 Richard Biener <rguenther@suse.de>
37517
37518 PR middle-end/64715
37519 * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
37520 for type comparison and gcc_checking_assert.
37521 (chrec_fold_plus_poly_poly): Likewise.
37522 (chrec_fold_multiply_poly_poly): Likewise.
37523 (chrec_convert_1): Likewise.
37524 * gimplify.c (gimplify_expr): Remove premature folding of
37525 &X + CST to &MEM[&X, CST].
37526
37527 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
37528
37529 * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
37530 already is final.
37531 (ipa_inline): Recompute inline_failed codes.
37532 * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
37533 USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
37534 CIF_FINAL_ERROR.
37535
37536 2015-03-20 Uros Bizjak <ubizjak@gmail.com>
37537
37538 PR rtl-optimization/60851
37539 * recog.c (constrain_operands): Accept a pseudo register before reload
37540 for LRA enabled targets.
37541
37542 2015-03-19 Michael Meissner <meissner@linux.vnet.ibm.com>
37543
37544 PR target/65240
37545 * config/rs6000/predicates.md (easy_fp_constant): Remove special
37546 -ffast-math handling that kept non-0 constants live in the RTL
37547 until reload. Remove logic testing the number of instructions it
37548 took to create a constant in a GPR that was never used, due to a
37549 test for soft-float earlier.
37550 (memory_fp_constant): Delete, no longer used.
37551
37552 * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
37553 alternatives for loading non-0 constants into GPRs for hard
37554 floating point that is no longer needed due to changes in
37555 easy_fp_constant. Add support for loading 0.0 into GPRs.
37556 (mov<mode>_hardfloat32): Likewise.
37557 (mov<mode>_hardfloat64): Likewise.
37558 (mov<mode>_64bit_dm): Likewise.
37559 (movtd_64bit_nodm): Likewise.
37560 (pre-reload move FP constant define_split): Delete define_split,
37561 since it is no longer used.
37562 (extenddftf2_internal): Remove GHF constraints that are not valid
37563 for extenddftf2.
37564
37565 2015-03-19 Vladimir Makarov <vmakarov@redhat.com>
37566
37567 PR rtl-optimization/63491
37568 * lra-constraints.c (check_and_process_move): Use src instead of
37569 sreg. Remove some dead code.
37570
37571 2015-03-19 Jan Hubicka <hubicka@ucw.cz>
37572
37573 PR ipa/65380
37574 * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
37575 (sem_variable::merge): Likewise.
37576
37577 2015-03-19 Martin Liska <mliska@suse.cz>
37578
37579 PR ipa/65465
37580 * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
37581 all fields of cgraph_thunk_info.
37582
37583 2015-03-19 Ilya Enkovich <ilya.enkovich@intel.com>
37584
37585 * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
37586 clone instrumented thunks.
37587
37588 2015-03-19 Richard Biener <rguenther@suse.de>
37589
37590 Revert
37591 2015-03-10 Richard Biener <rguenther@suse.de>
37592
37593 PR middle-end/63155
37594 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
37595 * tree-ssa-coalesce.c: Include timevar.h.
37596 (attempt_coalesce): Handle graph being NULL.
37597 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
37598 Split out abnormal coalescing to ...
37599 (perform_abnormal_coalescing): ... this function.
37600 (coalesce_ssa_name): Perform abnormal coalescing without computing
37601 live/conflict.
37602 (verify_ssa_coalescing_worker): New function.
37603 (verify_ssa_coalescing): Likewise.
37604
37605 2015-03-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
37606 Jakub Jelinek <jakub@redhat.com>
37607
37608 PR sanitizer/65400
37609 * tsan.c (instrument_gimple): Clear tail call flag on
37610 calls.
37611
37612 2015-03-19 Jakub Jelinek <jakub@redhat.com>
37613
37614 PR sanitizer/65400
37615 * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
37616 call in the return bb.
37617 (find_split_points): Add RETURN_BB argument, don't call
37618 find_return_bb.
37619 (split_function): Likewise. Add ADD_TSAN_FUNC_EXIT argument,
37620 if true append TSAN_FUNC_EXIT internal call after the call to
37621 the split off function.
37622 (execute_split_functions): Call find_return_bb here.
37623 Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
37624 Adjust find_split_points and split_function calls.
37625
37626 2015-03-18 DJ Delorie <dj@redhat.com>
37627
37628 * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
37629 (iorqi3_virt): Likewise.
37630
37631 2015-03-18 Tom de Vries <tom@codesourcery.com>
37632
37633 * tree-parloops.c (parallelize_loops): Make static.
37634 * tree-parloops.h (parallelize_loops): Remove extern declaration.
37635
37636 2015-03-18 Andrew Stubbs <ams@codesourcery.com>
37637
37638 PR middle-end/64491
37639 Revert:
37640 2014-11-20 Andrew Stubbs <ams@codesourcery.com>
37641
37642 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
37643 condition would be removed due to undefined behaviour.
37644
37645 2015-03-18 Martin Liska <mliska@suse.cz>
37646
37647 PR ipa/65432
37648 * cgraph.c (cgraph_node::get_create): Remove unnecessary
37649 xstrdup_for_dump wrapper.
37650 * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
37651 sem_item::name.
37652 (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
37653 with xstrdup_for_dump.
37654 (sem_variable::equals): Likewise.
37655 (sem_item_optimizer::read_section): Use symtab_node::name instead of
37656 sem_item::name.
37657 (sem_item_optimizer::parse_funcs_and_vars): Likewise.
37658 (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
37659 symtab_node::asm_name with xstrdup_for_dump.
37660 (congruence_class::dump): Use symtab_node::name instead of
37661 sem_item::name.
37662 * ipa-icf.h (symtab_node::name): Remove.
37663 (symtab_node::asm_name): Likewise.
37664
37665 2015-03-18 Jakub Jelinek <jakub@redhat.com>
37666
37667 PR tree-optimization/65450
37668 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
37669 function.
37670 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
37671 it instead of duplicate_ssa_name_ptr_info.
37672
37673 PR target/65222
37674 * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
37675
37676 2015-03-18 Richard Biener <rguenther@suse.de>
37677
37678 * tree-data-ref.h (struct access_matrix): Remove.
37679 (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
37680 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
37681 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
37682 (am_vector_index_for_loop): Likewise.
37683 (struct data_reference): Remove access_matrix member.
37684 (DR_ACCESS_MATRIX): Remove.
37685 (lambda_vector_new): Add comment.
37686 (lambda_matrix_new): Use XOBNEWVEC.
37687
37688 2015-03-18 Richard Biener <rguenther@suse.de>
37689
37690 * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
37691 (pass_ch::execute): Cleanup the CFG only if we did sth.
37692 * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
37693
37694 2015-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37695
37696 * expmed.c (synth_mult): Use std::swap instead of manually
37697 swapping algorithms.
37698
37699 2015-03-18 Jakub Jelinek <jakub@redhat.com>
37700
37701 PR target/65078
37702 * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
37703
37704 2015-03-16 Georg-Johann Lay <avr@gjlay.de>
37705
37706 PR target/65296
37707 * config/avr/avr.opt (-nodevicelib): New option.
37708 * doc/invoke.texi (AVR Options): Document it.
37709 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
37710 libgcc.a, libc.a, libm.a.
37711 * config/avr/specs.h: Same.
37712 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
37713 which don't (directly) depend on the device. Print more help.
37714 (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
37715 (*cpp): Don't define __AVR_DEV_LIB_NAME__.
37716 * config/avr/driver-avr.c: Remove -nodevicelib from option list in
37717 case of an error.
37718 (avr_devicespecs_file): Use suffix "%s" instead of absolute path
37719 for specs file name.
37720 * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
37721 * config/avr/avr-mcus.def: Adjust initializers and comments.
37722
37723 2015-03-16 Jan Hubicka <hubicka@ucw.cz>
37724
37725 * tree-sra.c (ipa_sra_preliminary_function_checks): Use
37726 DECL_ONE_ONLY to check if decl is one only.
37727 * ipa-split.c (consider_split): Limit splitt of one only functions.
37728
37729 2015-03-16 Jakub Jelinek <jakub@redhat.com>
37730
37731 PR tree-optimization/65427
37732 * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
37733 functions.
37734 (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
37735
37736 2015-03-16 Marek Polacek <polacek@redhat.com>
37737
37738 * cgraph.h (add_new_static_var): Remove declaration.
37739 * varpool.c (add_new_static_var): Remove function.
37740
37741 2015-03-16 Jakub Jelinek <jakub@redhat.com>
37742
37743 * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
37744 instead of vec<tree> * with vec_alloc and release for args.
37745 Adjust all users.
37746
37747 PR middle-end/65431
37748 * omp-low.c (delete_omp_context): Only splay_tree_delete
37749 reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
37750 is_gimple_omp_oacc contexts. Don't look at ctx->outer.
37751
37752 2015-03-16 Max Ostapenko <m.ostapenko@partner.samsung.com>
37753
37754 PR sanitizer/64820
37755 * cfgexpand.c (align_base): New function.
37756 (alloc_stack_frame_space): Call it.
37757 (expand_stack_vars): Align prev_frame to be sure
37758 data->asan_vec elements aligned properly.
37759
37760 2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
37761
37762 PR middle-end/65409
37763 * expr.c (store_field): Do not do a direct block copy if the source is
37764 a PARALLEL with BLKmode.
37765
37766 2015-03-16 Tom de Vries <tom@codesourcery.com>
37767
37768 PR middle-end/65414
37769 Revert:
37770 2015-03-12 Tom de Vries <tom@codesourcery.com>
37771
37772 PR rtl-optimization/64895
37773 * lra-lives.c (check_pseudos_live_through_calls): Use
37774 actual_call_used_reg_set instead of call_used_reg_set, if available.
37775
37776 2015-03-16 Alan Modra <amodra@gmail.com>
37777
37778 PR target/63150
37779 * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
37780 Modify Z->r bswapdi splitter to use dest in place of scratch.
37781 In r->Z and Z->r bswapdi splitter rename word_high, word_low
37782 to word1, word2 and rearrange logic to suit.
37783 (bswapdi2_64bit): Remove early clobber on Z->r alternative.
37784 (bswapdi2_ldbrx): Likewise. Remove '??' on r->r.
37785 (bswapdi2_32bit): Remove early clobber on Z->r alternative.
37786 Add one '?' on r->r. Modify Z->r splitter to avoid need for
37787 early clobber.
37788
37789 2015-03-14 Jakub Jelinek <jakub@redhat.com>
37790
37791 PR tree-optimization/65369
37792 * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
37793 Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
37794 (vs - 1) * TYPE_SIZE_UNIT (elem_type).
37795
37796 PR tree-optimization/65418
37797 * tree-ssa-reassoc.c (extract_bit_test_mask): If there
37798 are casts in the first PLUS_EXPR operand, ensure tbias and
37799 *totallowp are in the inner type.
37800
37801 PR rtl-optimization/65401
37802 * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
37803 argument. If true, adjust_address_nv of x with big-endian
37804 correction for the mode widening to GET_MODE (y).
37805 (make_field_assignment): Don't do MEM mode widening here.
37806 Use MEM_P instead of GET_CODE == MEM.
37807
37808 2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
37809
37810 * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
37811 the external decls.
37812
37813 2015-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37814
37815 PR target/64600
37816 * config/arm/arm.c (arm_gen_constant, AND case): Use
37817 ARM_SIGN_EXTEND when constructing AND mask.
37818
37819 2015-03-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
37820
37821 * graph.c (print_graph_cfg): Make function names visible and append
37822 parenthesis to it. Also make groups of basic blocks belonging to the
37823 same function visible.
37824
37825 2015-03-12 Richard Biener <rguenther@suse.de>
37826
37827 PR middle-end/44563
37828 * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
37829 to avoid quadratic behavior with inline expansion splitting blocks.
37830 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
37831 with the successor if the predecessor will be merged with it.
37832 * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
37833 entry block with its successor.
37834
37835 2015-03-13 Richard Biener <rguenther@suse.de>
37836
37837 PR middle-end/44563
37838 * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
37839 (cleanup_tree_cfg_1): Do not call it.
37840 (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
37841 (fixup_noreturn_call): Mark the stmt as control altering.
37842 * tree-cfg.c (execute_fixup_cfg): Do not dump the function
37843 here.
37844 (pass_data_fixup_cfg): Produce a dump file.
37845 * tree-ssa-dom.c: Include tree-cfgcleanup.h.
37846 (need_noreturn_fixup): New global.
37847 (pass_dominator::execute): Fixup queued noreturn calls.
37848 (optimize_stmt): Queue calls that became noreturn for fixup.
37849 * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
37850 * tree-ssa-pre.c: Include tree-cfgcleanup.h.
37851 (el_to_fixup): New global.
37852 (eliminate_dom_walker::before_dom_childre): Queue calls that
37853 became noreturn for fixup.
37854 (eliminate): Fixup queued noreturn calls.
37855 * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
37856 (substitute_and_fold_dom_walker): New member stmts_to_fixup.
37857 (substitute_and_fold_dom_walker::before_dom_children): Queue
37858 alls that became noreturn for fixup.
37859 (substitute_and_fold): Fixup queued noreturn calls.
37860
37861 2015-03-12 Jan Hubicka <hubicka@ucw.cz>
37862
37863 * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
37864 and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
37865 are building; for methods check ODR type of class they belong to if
37866 they may lead to a polymorphic call.
37867 (sem_function::compare_polymorphic_p): Be bit smarter about testing
37868 when function may lead to a polymorphic call.
37869 (sem_function::compare_type_list): Remove.
37870 (sem_variable::equals): Update use of compatible_types_p.
37871 (sem_variable::parse_tree_refs): Remove.
37872 (sem_item_optimizer::filter_removed_items): Do not filter out CXX
37873 cdtor.
37874 * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
37875 matching here.
37876 (func_checker::compatible_polymorphic_types_p): Break out from ...
37877 (unc_checker::compatible_types_p): ... here.
37878 * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
37879 Declare.
37880 (unc_checker::compatible_types_p): Update.
37881 * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
37882 Remove.
37883
37884 2015-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37885
37886 PR rtl-optimization/65235
37887 * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
37888 When first element of vec_concat is const_int, calculate its size
37889 using second element.
37890
37891 2015-03-12 Richard Biener <rguenther@suse.de>
37892
37893 PR middle-end/65270
37894 * fold-const.c (operand_equal_p): Fix ordering of resetting
37895 OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
37896
37897 2015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
37898
37899 * config/s390/s390.c (s390_reorg): Move code to output nops after label
37900 to s390_reorg ().
37901 (s390_asm_output_function_label): Likewise.
37902 * config/s390/s390.c (s390_asm_output_function_label):
37903 Fix function label alignment with -mhtopatch.
37904 * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
37905 UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
37906 ("nop_2_byte"): New define_insn.
37907 ("nop_4_byte"): Likewise.
37908 ("nop_6_byte"): Likewise.
37909 * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
37910 * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
37911
37912 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
37913
37914 PR target/65103
37915 * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
37916 register.
37917
37918 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
37919
37920 PR target/65044
37921 * toplev.c (process_options): Restrict Pointer Bounds Checker
37922 usage with Address Sanitizer.
37923
37924 2015-03-12 Richard Biener <rguenther@suse.de>
37925
37926 * tree-cfg.c (gimple_split_block): Remove loop finding stmt
37927 to split on.
37928 * omp-low.c (expand_omp_taskreg): Split block before removing
37929 the stmt.
37930 (expand_omp_target): Likewise.
37931 * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
37932 * tree-parloops.c (create_call_for_reduction_1): Pass a proper
37933 stmt to split_block.
37934
37935 2015-03-12 Tom de Vries <tom@codesourcery.com>
37936
37937 PR rtl-optimization/64895
37938 * lra-lives.c (check_pseudos_live_through_calls): Use
37939 actual_call_used_reg_set instead of call_used_reg_set, if available.
37940
37941 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
37942
37943 * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
37944 (cgraph_node::remove): Likewise.
37945 (cgraph_node::get_untransformed_body): Likewise.
37946 * varpool.c (varpool_node::remove): Likewise.
37947 (varpool_node::get_constructor): Add sanity check.
37948
37949 2015-03-11 Sandra Loosemore <sandra@codesourcery.com>
37950
37951 * doc/invoke.texi (-fgnu89-inline): Remove discussion about
37952 old GCC versions.
37953 (-fabi-compat-version): Likewise.
37954 (-ffriend-injection): Likewise.
37955 (-Wdeclaration-after-statement): Likewise.
37956 (-fomit-frame-pointer): Likewise.
37957 (-ftree-coalesce-inlined-vars): Likewise.
37958 (-fvisibility=): Likewise.
37959 * doc/extend.texi (Typeof): Likewise.
37960 (Zero Length): Likewise.
37961 (Escaped Newlines): Likewise.
37962 (Compound Literals): Likewise.
37963 (Function Attributes): Likewise.
37964 (Label Attributes): Likewise.
37965 (Type Attributes): Likewise.
37966 (Function Names): Likewise.
37967 (Other Builtins): Likewise.
37968 (Function Specific Option Pragmas): Likewise.
37969 (C++ Interface): Likewise.
37970
37971 2015-03-11 Thomas Schwinge <thomas@codesourcery.com>
37972
37973 * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
37974
37975 2015-03-11 Marek Polacek <polacek@redhat.com>
37976
37977 PR tree-optimization/65388
37978 * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
37979
37980 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
37981
37982 PR target/65296
37983 * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
37984 * configure: Regenerate.
37985 * config.in: Regenerate.
37986 * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
37987 [-mn-flash]: Document it.
37988 [__AVR_ARCH__]: Document avrtiny.
37989
37990 * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
37991 (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
37992 (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
37993
37994 2015-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
37995
37996 * doc/invoke.texi: Add missing cpu values (z196, zEC12).
37997
37998 2015-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
37999
38000 PR target/65242
38001 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
38002 allow reloads of PLUS in floating point/VSX registers.
38003
38004 2015-03-11 Junmo Park <junmoz.park@samsung.com>
38005
38006 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
38007 crypto_sha256_fast.
38008 (cortex_a57_crypto_complex): Add crypto_sha256_slow.
38009
38010 2015-03-11 Richard Biener <rguenther@suse.de>
38011
38012 PR tree-optimization/65310
38013 * tree-sra.c (build_ref_for_offset): Also preserve larger
38014 alignment.
38015
38016 2015-03-11 Marat Zakirov <m.zakirov@samsung.com>
38017
38018 * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
38019
38020 2015-03-10 Jakub Jelinek <jakub@redhat.com>
38021
38022 PR target/65368
38023 * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
38024 new define_expand.
38025 (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
38026
38027 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
38028
38029 * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
38030 (sem_function::equals_wpa): ... here.
38031
38032 2015-03-10 Marek Polacek <polacek@redhat.com>
38033 Jakub Jelinek <jakub@redhat.com>
38034
38035 PR sanitizer/65367
38036 * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
38037 when only removing the statement. Handle expanding UBSAN_OBJECT_SIZE
38038 separately.
38039
38040 2015-03-10 Jakub Jelinek <jakub@redhat.com>
38041
38042 PR target/65286
38043 * config/rs6000/t-linux: For powerpc64* target set
38044 MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
38045
38046 2015-03-10 Richard Biener <rguenther@suse.de>
38047
38048 PR middle-end/44563
38049 * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
38050 for redirect_all_calls.
38051
38052 2015-03-10 Marek Polacek <polacek@redhat.com>
38053
38054 * gdbinit.in (pcfun): Define and document.
38055
38056 2015-03-10 Ilya Verbin <ilya.verbin@intel.com>
38057
38058 * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
38059 of libgomp-plugin.h.
38060 (find_target_compiler): Support a case when the path to gcc is
38061 specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
38062 (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
38063 intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
38064 libgomp-plugin.h.
38065 (main): Use GCC_INSTALL_NAME as target_driver_name.
38066 * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
38067 define.
38068 (mkoffload.o): Remove obsolete include path and defines.
38069 (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
38070
38071 2015-03-10 Richard Biener <rguenther@suse.de>
38072
38073 PR middle-end/63155
38074 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
38075 * tree-ssa-coalesce.c: Include timevar.h.
38076 (attempt_coalesce): Handle graph being NULL.
38077 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
38078 Split out abnormal coalescing to ...
38079 (perform_abnormal_coalescing): ... this function.
38080 (coalesce_ssa_name): Perform abnormal coalescing without computing
38081 live/conflict.
38082 (verify_ssa_coalescing_worker): New function.
38083 (verify_ssa_coalescing): Likewise.
38084
38085 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
38086
38087 PR target/65296
38088 * config.gcc (extra_options) [avr]: Remove.
38089 (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
38090 (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
38091 (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
38092
38093 * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
38094 (-mmcu=): Add Var and MissingArgError properties.
38095 (-march=): Remove.
38096 * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
38097 * config/avr/t-multilib: Regenerate.
38098 * config/avr/specs.h: New file.
38099 * config/avr/driver-avr.c: New file.
38100 * config/avr/genopt.sh: Remove file.
38101 * config/avr/avr-tables.opt: Remove file.
38102 * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
38103 * config/avr/avr-c.c: Same.
38104 * avr-arch.h: Same.
38105 (avr_current_device): Remove proto.
38106 * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
38107 (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
38108 (EXTRA_SPEC_FUNCTIONS): Define.
38109 (avr_devicespecs_file): New specs function proto.
38110 (DRIVER_SELF_SPECS): Use device-specs-file spec function.
38111 * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
38112 (avr_current_device): Remove definition and usage.
38113 (avr_set_core_architecture): New static function.
38114 (avr_option_override): Use it.
38115 * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
38116 (mcu_name): New static array.
38117 (comparator, avr_archs_str, avr_mcus_str): New static functions.
38118 (avr_inform_devices, avr_inform_core_architectures): New functions.
38119 * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
38120 (avrlibc.h) [WITH_AVRLIBC]: Include.
38121 (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
38122 (print_mcu): Rewrite from scratch.
38123 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
38124 Forward to avr-specific specs defined in device-specs file.
38125 * config/avr/t-avr (driver-avr.o): New rule.
38126 (avr-devices.o): Depend on avr-arch.h.
38127 (avr-mcus): No more depend on avr-tables.opt.
38128 (avr-tables.opt): Remove rule.
38129 (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
38130
38131 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
38132
38133 * c-family/c.opt (fchkp-use-wrappers): New.
38134 * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
38135 (chkp_wrap_function): New.
38136 (chkp_build_instrumented_fndecl): Support wrapped
38137 functions.
38138 * doc/invoke.texi (-fcheck-pointer-bounds): New.
38139 (-fchkp-check-incomplete-type): New.
38140 (-fchkp-first-field-has-own-bounds): New.
38141 (-fchkp-narrow-bounds): New.
38142 (-fchkp-narrow-to-innermost-array): New.
38143 (-fchkp-optimize): New.
38144 (-fchkp-use-fast-string-functions): New.
38145 (-fchkp-use-nochk-string-functions): New.
38146 (-fchkp-use-static-bounds): New.
38147 (-fchkp-use-static-const-bounds): New.
38148 (-fchkp-treat-zero-dynamic-size-as-infinite): New.
38149 (-fchkp-check-read): New.
38150 (-fchkp-check-write): New.
38151 (-fchkp-store-bounds): New.
38152 (-fchkp-instrument-calls): New.
38153 (-fchkp-instrument-marked-only): New.
38154 (-fchkp-use-wrappers): New.
38155 (-static-libmpx): New.
38156 (-static-libmpxwrappers): New.
38157
38158 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
38159
38160 * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
38161 (CHKP_SPEC): Add wrappers library.
38162 * c-family/c.opt (static-libmpxwrappers): New.
38163
38164 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
38165
38166 * config/i386/linux-common.h (LIBMPX_LIBS): New.
38167 (LIBMPX_SPEC): New.
38168 (CHKP_SPEC): New.
38169 * gcc.c (CHKP_SPEC): New.
38170 (LINK_COMMAND_SPEC): Add CHKP_SPEC.
38171 * c-family/c.opt (static-libmpx): New.
38172
38173 2015-03-10 Richard Biener <rguenther@suse.de>
38174
38175 PR middle-end/44563
38176 * cgraph.h (struct cgraph_edge_hasher): Add hash overload
38177 for compare_type.
38178 * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
38179 (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
38180 (cgraph_add_edge_to_call_site_hash): Likewise.
38181 (cgraph_node::get_edge): Likewise.
38182 (cgraph_edge::set_call_stmt): Likewise.
38183 (cgraph_edge::remove_caller): Likewise.
38184
38185 2015-03-10 Chung-Ju Wu <jasonwucj@gmail.com>
38186
38187 * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
38188 (callee_saved_gpr_regs_size): ... this.
38189 (callee_saved_regs_first_regno): Rename to ...
38190 (callee_saved_first_gpr_regno): ... this.
38191 (callee_saved_regs_last_regno) Rename to ...
38192 (callee_saved_last_gpr_regno): ... this.
38193 * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
38194 variables.
38195 (nds32_initial_elimination_offset): Likewise.
38196 (nds32_expand_prologue): Likewise.
38197 (nds32_expand_epilogue): Likewise.
38198 (nds32_expand_prologue_v3push): Likewise.
38199 (nds32_expand_epilogue_v3pop): Likewise.
38200 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
38201 Adjust renamed variables.
38202 (nds32_output_stack_pop): Likewise.
38203
38204 2015-03-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
38205
38206 * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
38207 code in comment.
38208
38209 2015-03-10 Jakub Jelinek <jakub@redhat.com>
38210
38211 PR rtl-optimization/65321
38212 * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
38213 than shift mode.
38214 * var-tracking.c (use_narrower_mode): Likewise.
38215
38216 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
38217
38218 PR tree-optimization/65355
38219 * varasm.c (notice_global_symbol): Do not produce RTL.
38220 * symtab.c (symtab_node::can_increase_alignment_p): Check for section
38221 anchor.
38222 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
38223 check for section anchors.
38224
38225 2015-03-10 Alan Modra <amodra@gmail.com>
38226
38227 PR target/65286
38228 * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
38229 to be single-arch by default. Set cpu_is_64bit for powerpc64
38230 given --with-cpu=native.
38231 * config/rs6000/t-fprules: Do not set default MULTILIB vars.
38232 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
38233 and powerpc64le.
38234 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
38235 rs6000_isa_flags rather than TARGET_64BIT.
38236
38237 2015-03-09 Yoshinori Sato <ysato@users.sourceforge.jp>
38238 Kaz Kojima <kkojima@gcc.gnu.org>
38239
38240 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
38241
38242 2015-03-09 Jakub Jelinek <jakub@redhat.com>
38243
38244 PR lto/65361
38245 * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
38246 on a TREE_BINFO, instead use BINFO_TYPE.
38247
38248 2015-03-09 Richard Biener <rguenther@suse.de>
38249
38250 PR middle-end/65270
38251 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
38252 * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
38253 operand set OEP_ADDRESS_OF. Clear it when recursing to non-bases
38254 of that. When comparing dereferences compare alignment.
38255 When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
38256
38257 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
38258
38259 * ipa-inline-analysis.c (check_callers): Check
38260 node->can_remove_if_no_direct_calls_and_refs_p.
38261 (growth_likely_positive): Reorganize to call
38262 can_remove_if_no_direct_calls_p later.
38263 * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
38264 will_be_removed_from_program_if_no_direct_calls_p): Add
38265 will_inline parameter.
38266 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
38267 cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
38268 Handle inliner case correctly.
38269
38270 2015-03-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
38271
38272 PR tree-optimization/63743
38273 * cfgexpand.c (reorder_operands): Also reorder if only second operand
38274 had its definition forwarded by TER.
38275
38276 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
38277
38278 PR lto/65316
38279 * ipa-utils.h (types_odr_comparable): Add strict argument.
38280 * ipa-devirt.c: Fix whitespace;
38281 (odr_hasher): Remove.
38282 (odr_name_hasher, odr_vtable_hasher): New hashers.
38283 (can_be_name_hashed_p): New predicate.
38284 (hash_type_name): remove.
38285 (hash_odr_name): New.
38286 (odr_name_hasher::hash): new.
38287 (can_be_vtable_hashed_p): New.
38288 (hash_odr_vtable): New.
38289 (odr_vtable_hasher::hash): New.
38290 (types_same_for_odr): Add strict parameter.
38291 (types_odr_comparable): Likewise.
38292 (odr_name_hasher::equal): New.
38293 (odr_vtable_hasher::equal): New.
38294 (odr_name_hasher::remove): New.
38295 (odr_hash_type): Change to hash_table<odr_name_hasher>.
38296 (odr_vtable_hash_type): New.
38297 (odr_vtable_hash): New.
38298 (odr_subtypes_equivalent_p): Do strict comparsion.
38299 (add_type_duplicate): Merge type names; cleanup; avoid type
38300 duplicates.
38301 (register_odr_type): Initialize vtable hash.
38302 (build_type_inheritance_graph): Likewise
38303 (get_odr_type): Reorg to use two hashes.
38304 (dump_possible_polymorphic_call_targets): Move sanity check after debug
38305 output.
38306 (ipa_devirt): Dump type_inheritance_graph.
38307 (types_same_for_odr): Add strict mode.
38308
38309 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
38310
38311 PR ipa/65334
38312 * cgraph.h (symtab_node): Add definition_alignment,
38313 can_increase_alignment_p and increase_alignment.
38314 * symtab.c (symtab_node::can_increase_alignment_p,
38315 increase_alignment_1, symtab_node::increase_alignment,
38316 symtab_node::definition_alignment): New.
38317 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
38318 can_increase_alignment_p.
38319 * tree-vectorizer.c (increase_alignment): Use increase_alignment.
38320 * tree-vect-stmts.c (ensure_base_align): Likewise.
38321 * varasm.c (function_section_1): Use definition_alignment.
38322 (assemble_start_function): Likewise.
38323 (emit_local): likewise.
38324 (build_constant_desc): Likewsie.
38325 (output_constant_def_contents): Likewise.
38326 (place_block_symbol): Likewise.
38327 (output_object_block): Likewise.
38328
38329 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
38330
38331 PR ipa/65316
38332 * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
38333 when outputting debug.
38334
38335 2015-03-07 Marek Polacek <polacek@redhat.com>
38336 Martin Uecker <uecker@eecs.berkeley.edu>
38337
38338 PR sanitizer/65280
38339 * doc/invoke.texi: Update description of -fsanitize=bounds.
38340
38341 2015-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
38342
38343 * tree-ssa-phiopt.c (neg_replacement): Remove.
38344 (tree_ssa_phiopt_worker): Remove negate optimization.
38345
38346 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
38347
38348 PR ipa/65302
38349 * value-prof.c (gimple_ic): Pure dead eh edges when needed.
38350
38351 2015-03-06 Richard Biener <rguenther@suse.de>
38352
38353 PR middle-end/64928
38354 * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
38355 and liveout_obstack members.
38356 (calculate_live_on_exit): Remove.
38357 (calculate_live_ranges): Change declaration.
38358 * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
38359 (new_tree_live_info): Adjust.
38360 (calculate_live_ranges): Delete livein when not wanted.
38361 (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
38362 Deal with partly deleted live info.
38363 (loe_visit_block): Remove temporary bitmap by using
38364 bitmap_ior_and_compl_into.
38365 (live_worklist): Adjust accordingly.
38366 (calculate_live_on_exit): Make static.
38367 * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
38368 we do not need livein.
38369
38370 2015-03-06 Jonathan Wakely <jwakely@redhat.com>
38371
38372 * real.c (real_from_string): Fix typo in assertion.
38373
38374 2015-03-06 Alex Velenko <alex.velenko@arm.com>
38375
38376 * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
38377 the patch.
38378
38379 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
38380
38381 * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
38382
38383 2015-03-05 Vladimir Makarov <vmakarov@redhat.com>
38384
38385 PR target/64342
38386 * lra-assigns.c (find_hard_regno_for): Rename to
38387 find_hard_regno_for_1. Add a new parameter.
38388 (find_hard_regno_for): New function using find_hard_regno_for_1.
38389
38390 2015-03-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
38391
38392 PR rtl-optimization/65067
38393 * expmed.c (store_bit_field, extract_bit_field): Reworked the
38394 strict volatile bitfield handling.
38395
38396 2015-03-05 Martin Liska <mliska@suse.cz>
38397
38398 PR ipa/65318
38399 * ipa-icf.c (sem_variable::equals): Compare variables types.
38400
38401 2015-03-05 Richard Henderson <rth@redhat.com>
38402
38403 PR target/65121
38404 * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
38405 correctly check weak symbol binding.
38406
38407 2015-03-05 Steve Ellcey <sellcey@imgtec.com>
38408
38409 PR middle-end/65315
38410 * cfgexpand.c (expand_stack_vars): Update large_align to maximum
38411 needed alignment.
38412
38413 2015-03-05 Martin Liska <mliska@suse.cz>
38414
38415 * ipa-inline.c (inline_small_functions): Set default value to
38416 prevent warning during bootstrap.
38417 * tree.h: Add pragma guard that ignores false positives during
38418 bootstrap.
38419
38420 2015-03-05 Richard Biener <rguenther@suse.de>
38421
38422 PR tree-optimization/65310
38423 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
38424 Properly preserve alignment of the base of the access.
38425
38426 2015-03-05 Richard Biener <rguenther@suse.de>
38427
38428 PR ipa/65270
38429 * ipa-icf-gimple.c (func_checker::compare_memory_operand):
38430 Compare dependence info.
38431
38432 2015-03-05 Richard Biener <rguenther@suse.de>
38433
38434 PR middle-end/65233
38435 * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
38436 tree-into-ssa.h.
38437 (walk_ssa_copies): Revert last chage. Instead do not walk
38438 SSA names registered for SSA update.
38439
38440 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
38441
38442 PR ipa/65270
38443 * ipa-icf.c (sem_item::compare_cgraph_references): Compare
38444 vtable references for their containing type.
38445 (sem_function::equals_wpa): Compare TYPE_RESTRICT
38446 and type attributes.
38447
38448 2015-03-04 Eric Botcazou <ebotcazou@adacore.com>
38449
38450 * fold-const.c (round_up_loc): Cast divisor to signed on all paths
38451 before negating it.
38452 * stor-layout.c (finalize_record_size): Revert latest change.
38453
38454 2015-03-04 Andreas Tobler <andreast@gcc.gnu.org>
38455
38456 * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
38457
38458 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
38459
38460 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
38461 for correct comdat handling.
38462 (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
38463 Likewise.
38464 * cgraph.h (call_for_symbol_and_aliases): Fix formating.
38465 (used_from_object_file_p_worker): Remove.
38466 (cgraph_node::only_called_directly_or_alised): Add
38467 used_from_object_file_p.
38468 * ipa-inline-analysis.c (growth_likely_positive): Optimie.
38469 * ipa-inline-transform.c (can_remove_node_now_p_1): Use
38470 can_remove_if_no_direct_calls_and_refs_p.
38471
38472 2015-03-04 Nick Clifton <nickc@redhat.com>
38473
38474 * config/rl78/rl78.h (enum reg_class): Remove real registers from
38475 General register class.
38476 * config/rl78/rl78-real.md: Replace general register constraints
38477 with real+virtual register constraints.
38478
38479 2015-03-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
38480
38481 * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
38482 from checking for -mhtm option.
38483
38484 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
38485
38486 * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
38487 (struct ipa_sra_check_caller_data): Add has_thunk field.
38488 (ipa_sra_check_caller): Check for thunk.
38489 (ipa_sra_preliminary_function_checks): Give up on function with
38490 thunks.
38491 (ipa_early_sra): Use call_for_symbol_and_aliases.
38492
38493 2015-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
38494
38495 PR target/65249
38496 * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
38497 called for __stack_chk_guard symbol.
38498
38499 2015-03-03 DJ Delorie <dj@redhat.com>
38500
38501 * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
38502 inc/dec.
38503 (*addhi3_real): Likewise.
38504 * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
38505 pattern to match incrementing memory.
38506 * config/rl78/predicates.md (rl78_1_2_operand): New.
38507 * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
38508 it's the same and only mem.
38509 (rl78_alloc_physical_registers_op2): If there's effectively only
38510 one MEM, transcode it into HL.
38511 (rl78_far_p): Reject addresses that aren't legitimate.
38512
38513 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
38514
38515 * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
38516 negating it.
38517
38518 * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
38519
38520 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
38521
38522 Implement call0 ABI for xtensa
38523 * config/xtensa/constraints.md ("a" constraint): Include stack
38524 pointer in case of call0 ABI.
38525 ("q" constraint): Make empty in case of call0 ABI.
38526 ("D" constraint): Include stack pointer in case of call0 ABI.
38527 * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
38528 xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
38529 prototypes.
38530 * config/xtensa/xtensa.c (xtensa_callee_save_size): New
38531 variable.
38532 (xtensa_regno_to_class): Make it a local variable in the
38533 function xtensa_regno_to_class.
38534 (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
38535 macro, function prototype and implementation.
38536 (reg_nonleaf_alloc_order): Make it a local variable in the
38537 function order_regs_for_local_alloc.
38538 (xtensa_conditional_register_usage): New function.
38539 (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
38540 (xtensa_valid_move): Allow direct moves to stack pointer
38541 register in call0 ABI.
38542 (xtensa_setup_frame_addresses): Only spill register windows in
38543 windowed ABI.
38544 (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
38545 call0 ABI respectively.
38546 (xtensa_function_arg_1): Only mark a7 register for copying in
38547 windowed ABI.
38548 (xtensa_call_save_reg): New function.
38549 (compute_frame_size): Add space for callee saved register
38550 storage to the frame size in call0 ABI.
38551 (xtensa_expand_prologue): Generate code to set up stack frame
38552 and save callee-saved registers in call0 ABI.
38553 (xtensa_expand_epilogue): New function.
38554 (xtensa_set_return_address): New function.
38555 (xtensa_return_addr): Calculate return address in call0 ABI.
38556 (xtensa_builtin_saveregs): Only mark a7 register for copying and
38557 emit copying code in windowed ABI.
38558 (order_regs_for_local_alloc): Add preferred register allocation
38559 order for non-leaf function in call0 ABI.
38560 (xtensa_static_chain): Add atatic chain passing for call0 ABI.
38561 (xtensa_asm_trampoline_template): Add trampoline generation for
38562 call0 ABI.
38563 (xtensa_trampoline_init): Add trampoline initialization for
38564 call0 ABI.
38565 (xtensa_conditional_register_usage, xtensa_regno_to_class): New
38566 functions.
38567 * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
38568 (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
38569 (CALL_USED_REGISTERS): Modify to encode both windowed and call0
38570 ABI call-used registers.
38571 (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
38572 (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
38573 call0 ABI.
38574 (REG_CLASS_CONTENTS): Include all registers into the preferred
38575 reload registers set, adjust the set in the
38576 xtensa_conditional_register_usage.
38577 (xtensa_regno_to_class): Drop variable declaration.
38578 (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
38579 function.
38580 (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
38581 respectively.
38582 (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
38583 (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
38584 (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
38585 (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
38586 location in call0 ABI.
38587 (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
38588 stack adjustment size when handling exception.
38589 (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
38590 * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
38591 definitions.
38592 ("return" pattern): Generate ret.n/ret in call0 ABI.
38593 ("epilogue" pattern): Expand epilogue.
38594 ("nonlocal_goto" pattern): Use default in call0 ABI.
38595 ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
38596 emit eh_set_a0_* depending on ABI.
38597 ("eh_set_a0_windowed" pattern): Former eh_return pattern.
38598 ("eh_set_a0_call0", "blockage"): New patterns.
38599
38600 2015-03-03 Martin Liska <mliska@suse.cz>
38601
38602 PR ipa/65287
38603 * ipa-icf.c (sem_variable::parse): Skip all alias variables.
38604
38605 2015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com>
38606
38607 PR 65138/target
38608 * config/rs6000/rs6000-tables.opt: Regenerate table.
38609
38610 2015-03-03 Renlin Li <renlin.li@arm.com>
38611
38612 * doc/md.texi (@item ^): Change ? into ^.
38613
38614 2015-03-03 H.J. Lu <hongjiu.lu@intel.com>
38615
38616 * doc/tm.texi: Regenerated.
38617
38618 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
38619
38620 * builtins.c (expand_builtin_return_addr): Add
38621 RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
38622 surrounding #ifdef.
38623 * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
38624 definition to 1.
38625 * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
38626 Likewise.
38627 * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
38628 undefined.
38629 * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
38630 paragraph.
38631
38632 2015-03-03 Martin Jambor <mjambor@suse.cz>
38633 Eric Botcazou <ebotcazou@adacore.com>
38634
38635 * tree-sra.c (ipa_sra_check_caller_data): New type.
38636 (has_caller_p): Removed.
38637 (ipa_sra_check_caller): New function.
38638 (ipa_sra_preliminary_function_checks): Use it.
38639
38640 2015-03-03 Martin Liska <mliska@suse.cz>
38641
38642 * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
38643 instead of if branch.
38644
38645 2015-03-03 Martin Liska <mliska@suse.cz>
38646
38647 PR ipa/65282
38648 * ipa-icf.c (sem_variable::equals): Fix wrong condition.
38649
38650 2015-03-23 Jeff Law <law@redhat.com>
38651
38652 PR tree-optimization/65241
38653 * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
38654 hash table if INSERT is true.
38655
38656 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
38657
38658 PR target/65296
38659 * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
38660
38661 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
38662
38663 PR target/64331
38664 * config/avr/avr.c (context.h, tree-pass.h): Include them.
38665 (avr_pass_data_recompute_notes): New static variable.
38666 (avr_pass_recompute_notes): New class.
38667 (avr_register_passes): New static function.
38668 (avr_option_override): Call it.
38669
38670 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
38671
38672 Fix various problems with specs file generation.
38673
38674 PR target/65296
38675 * config.gcc (extra_gcc_objs) [avr]: Remove.
38676 * config/avr/driver-avr.c: Remove file.
38677 * config/avr/t-avr (driver-avr.o): Remove rule.
38678 (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
38679 INCLUDES to build. Depend on TM_H.
38680 * config/avr/gen-avr-mmcu-specs.c: Tidy up code. Fix various
38681 build warnings. Fix non-matching types and non-existing %-codes.
38682 (tm.h): Include.
38683 (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
38684 (*libgcc) [WITH_AVRLIBC]: Add "-lm".
38685 * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
38686 * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
38687 (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
38688 (LIBGCC_SPEC): Remove definitions.
38689
38690 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
38691
38692 * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
38693 to create a register in testing mode.
38694
38695 2015-03-03 Martin Liska <mliska@suse.cz>
38696 Jan Hubicka <hubicka@ucw.cz>
38697
38698 PR ipa/65263
38699 * cgraph.c (cgraph_node::has_thunk_p): New function.
38700 * cgraph.h (cgraph_node::has_thunk_p: Likewise.
38701 * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
38702 (sem_function::merge): Assert is changed.
38703
38704 2015-03-03 Martin Liska <mliska@suse.cz>
38705 Martin Jambor <mjambor@suse.cz>
38706
38707 PR ipa/65087
38708 * ipa-icf.c (sem_item_optimizer::execute): Change function
38709 return value to boolean.
38710 (sem_item_optimizer::merge_classes): Likewise.
38711 (ipa_icf_driver): Return TODO_remove_functions in case there's
38712 a merge operation processed.
38713 * ipa-icf.h: Change function return value to boolean.
38714
38715 2015-03-02 Michael Meissner <meissner@linux.vnet.ibm.com>
38716
38717 PR 65138/target
38718 * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
38719 processor type for 64-bit little endian PowerPC.
38720
38721 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
38722 -mdebug=reg, print TARGET_DEFAULT. Fix logic to use
38723 TARGET_DEFAULT if there is no default cpu. Fix -mdebug=reg
38724 printing built-in mask so it does not pass NULL pointers.
38725
38726 * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
38727 -mcpu=powerpc64le.
38728
38729 2015-03-02 Steve Ellcey <sellcey@imgtec.com>
38730
38731 PR target/58158
38732 * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
38733 !ISA_HAS_FP_CONDMOVE.
38734
38735 2015-03-02 Aldy Hernandez <aldyh@redhat.com>
38736
38737 * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
38738 reload_completed.
38739
38740 2015-03-02 Ulrich Drepper <drepper@gmail.com>
38741
38742 * doc/invoke.texi (Options for Code Generation Conventions):
38743 Fix URL of DSO paper.
38744
38745 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
38746
38747 PR ipa/65130
38748 * ipa-inline.c (check_callers): Looks for recursion.
38749 (inline_to_all_callers): Give up on uninlinable or recursive edges.
38750 * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
38751 summary of inline clones.
38752 (do_estimate_growth_1): Fix recursion check.
38753
38754 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
38755
38756 PR ipa/64988
38757 * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
38758 comdat groups.
38759
38760 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
38761 Aldy Hernandez <aldyh@redhat.com>
38762
38763 PR lto/65276
38764 * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
38765 when checking TYPE_BINFO.
38766
38767 2015-03-02 Richard Biener <rguenther@suse.de>
38768
38769 PR ipa/65270
38770 * ipa-icf-gimple.c: Include builtins.h.
38771 (func_checker::compare_memory_operand): Compare base alignment.
38772
38773 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
38774
38775 PR target/65184
38776 * config/i386/i386.c (ix86_pass_by_reference): Bounds are never
38777 passed by reference.
38778
38779 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
38780
38781 PR target/65183
38782 * tree-chkp.c (chkp_check_lower): Don't check against
38783 zero bounds for already instrumented functions.
38784 (chkp_check_upper): Likewise.
38785 (chkp_fini): Clean pass local data to avoid wrong reusage.
38786
38787 2015-02-28 Martin Liska <mliska@suse.cz>
38788 Jan Hubicka <hubicka@ucw.cz>
38789
38790 * ipa-icf.c (sem_variable::equals): Improve debug output;
38791 get variable constructor.
38792 (sem_variable::parse): Do not filter out too early; give up on
38793 volatile and register vars.
38794 (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
38795 variables.
38796 * ipa-icf.h (sem_variable::init): Do not set ctor.
38797 (sem_variable::ctor): Remove.
38798
38799 2015-03-01 Aldy Hernandez <aldyh@redhat.com>
38800
38801 PR middle-end/65233
38802 * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
38803
38804 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
38805
38806 * ipa-icf.c: Include stor-layout.h
38807 (sem_function::compare_cgraph_references): Rename to ...
38808 (sem_item::compare_cgraph_references): ... this one.
38809 (sem_variable::equals_wpa): New function
38810 (sem_variable::equals): Do not check stuff already verified by
38811 equals_wpa.
38812 (sem_variable::equals): Reorg based on varasm.c:compare_constant.
38813 * ipa-icf.h (sem_item): Add compare_cgraph_references.
38814 (sem_function): Remove compare_cgraph_references.
38815 (sem_variable): Turns equals_wpa into non-inline.
38816
38817 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
38818
38819 * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
38820 (sem_item::add_expr): New function.
38821 (sem_function::hash_stmt): Handle operands of most statements.
38822 (sem_variable::get_hash): Hash the actual constructor.
38823 * ipa-icf.h (sem_item): Add add_expr.
38824 (sem_function): Update prototype of hash_stmt
38825
38826 2015-02-28 Martin Liska <mliska@suse.cz>
38827 Jan Hubicka <hubicka@ucw.cz>
38828
38829 PR ipa/65245
38830 * ipa-icf-gimple.c (func_checker::compare_function_decl):
38831 Remove.
38832 (func_checker::compare_variable_decl): Skip symtab vars.
38833 (func_checker::compare_cst_or_decl): Update.
38834 * ipa-icf.c (sem_function::parse): Do not consider aliases.
38835 (sem_function::compare_cgraph_references): Add ADDRESS parameter;
38836 use correct symtab predicates.
38837 (sem_function::equals_wpa): Update uses of compare_cgraph_references.
38838 (sem_variable::parse): Update comment.
38839 (sem_item_optimizer::build_graph): Consider ultimate aliases
38840 for references.
38841
38842 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
38843
38844 * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
38845 of OBJ_TYPE_REF.
38846
38847 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
38848
38849 * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
38850 (sem_variable::merge) Likewise.
38851
38852 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
38853
38854 * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
38855 target; also match flag_ipa_devirt.
38856
38857 2015-03-01 Martin Liska <mliska@suse.cz>
38858 Jan Hubicka <hubicka@ucw.cz>
38859
38860 * ipa-icf-gimple.c (func_checker::compare_variable_decl):
38861 Validate variable alignment.
38862 * ipa-icf.c (sem_function::equals_private): Be more precise
38863 about non-common function attributes.
38864 (sem_variable::equals): Likewise.
38865
38866 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
38867
38868 PR ipa/65237
38869 * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
38870 across COMDAT group boundary.
38871
38872 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
38873
38874 PR ipa/65232
38875 * ipa-icf.c (clear_decl_rtl): New function.
38876 (sem_function::merge): Clear RTL before forming alias.
38877 (sem_variable::merge): Clear RTL before forming alias.
38878
38879 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
38880
38881 PR ipa/65236
38882 * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
38883
38884 2015-02-28 Xingxing Pan <xxingpan@marvell.com>
38885
38886 * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
38887 to neon_to_gp<q>.
38888
38889 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
38890
38891 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
38892 a typo in the description.
38893
38894 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
38895
38896 PR target/64317
38897 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
38898 * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
38899 * lra-constraints.c: Include "params.h".
38900 (EBB_PROBABILITY_CUTOFF): Use
38901 LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
38902 (lra_inheritance): Use '<' instead of '<=' for
38903 EBB_PROBABILITY_CUTOFF.
38904 * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
38905 Document change.
38906
38907 2015-02-27 Martin Liska <mliska@suse.cz>
38908
38909 * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
38910 vector length condition.
38911
38912 2015-02-27 Sandra Loosemore <sandra@codesourcery.com>
38913
38914 * doc/extend.texi (x86 transactional memory intrinsics):
38915 Reorganize discussion of _xbegin. Clarify that the return
38916 value is a bit mask. Expand example and move to end of section.
38917
38918 2015-02-26 Jakub Jelinek <jakub@redhat.com>
38919 Aldy Hernandez <aldyh@redhat.com>
38920
38921 PR rtl-optimization/65220
38922 * config/i386/i386.md (*udivmod<mode>4_pow2): New.
38923
38924 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
38925
38926 PR target/65032
38927 * lra-remat.c (update_scratch_ops): New.
38928 (do_remat): Call it.
38929 * lra.c (lra_register_new_scratch_op): New. Take code from ...
38930 (remove_scratches): ... here.
38931 * lra-int.h (lra_register_new_scratch_op): New prototype.
38932
38933 2015-02-27 Marek Polacek <polacek@redhat.com>
38934
38935 PR c/65040
38936 * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
38937 -Wformat-signedness anymore.
38938
38939 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
38940
38941 * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
38942 function.
38943 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
38944
38945 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
38946
38947 * config/s390/s390.c (enum s390_builtin):
38948 Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
38949 (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
38950 (s390_init_builtins): Generate new builtin functions.
38951 * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
38952 (s390_sfpc, s390_efpc): New pattern definitions.
38953
38954 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
38955
38956 * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
38957 Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
38958 (s390_builtin_decls): New array.
38959 (s390_init_builtins): Put builtin decls into s390_builtin_decls.
38960 (s390_builtin_decl): New function.
38961 (TARGET_BUILTIN_DECL): Define macro.
38962
38963 2015-02-27 Richard Biener <rguenther@suse.de>
38964
38965 PR middle-end/63175
38966 * builtins.c (get_object_alignment_2): Make sure to re-apply
38967 the ANDed mask after recursing to its operand gets us a new
38968 misalignment bit position.
38969
38970 2015-02-26 Jan Hubicka <hubicka@ucw.cz>
38971 Martin Liska <mliska@suse.cz>
38972
38973 PR bootstrap/65150
38974 * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
38975 Use address_matters_p.
38976 (redirect_all_callers, set_addressable): New functions.
38977 (sem_function::merge): Reorganize and fix merging issues.
38978 (sem_variable::merge): Likewise.
38979 (sem_variable::compare_sections): Remove.
38980 * common.opt (fmerge-all-constants, fmerge-constants): Remove
38981 Optimization flag.
38982 * symtab.c (symtab_node::resolve_alias): When alias has aliases,
38983 redirect them.
38984 (symtab_node::make_decl_local): Set ADDRESSABLE bit when
38985 decl is used.
38986 (address_matters_1): New function.
38987 (symtab_node::address_matters_p): New function.
38988 * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
38989 check for merged flag.
38990 * cgraph.h (address_matters_p): Declare.
38991 (symtab_node::address_taken_from_non_vtable_p): Remove.
38992 (symtab_node::address_can_be_compared_p): New method.
38993 (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
38994 * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
38995 Remove.
38996 (comdat_can_be_unshared_p_1) Use address_matters_p.
38997 (update_vtable_references): Fix formating.
38998 * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
38999 * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
39000 * cgraphclones.c: Preserve merged and icf_merged flags.
39001
39002 2015-02-26 Sandra Loosemore <sandra@codesourcery.com>
39003
39004 * doc/extend.texi (Function Attributes): Fix spelling and typos.
39005 (Label Attributes): Likewise.
39006 (Cilk Plus Builtins): Likewise.
39007 (ARC SIMD Built-in Functions): Likewise.
39008 (ARM C Language Extensions (ACLE)): Likewise.
39009 (PowerPC Built-in Functions): Likewise.
39010 (PowerPC Hardware Transactional Memory Built-in Functions):
39011 Likewise.
39012
39013 2015-02-26 Jakub Jelinek <jakub@redhat.com>
39014
39015 PR tree-optimization/65216
39016 * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
39017 new stmt and new SSA_NAME for lhs whenever the arguments have
39018 changed and weren't just swapped. Fix comment typo.
39019
39020 PR tree-optimization/65215
39021 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
39022 for PDP endian targets.
39023 (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
39024 Fix up formatting issues.
39025 (bswap_replace): Likewise. For BYTES_BIG_ENDIAN, if the final access
39026 size is smaller than the original, adjust MEM_REF offset by the
39027 difference of sizes. Use is_gimple_mem_ref_addr instead of
39028 is_gimple_min_invariant test to avoid adding address temporaries.
39029
39030 2015-02-26 Martin Liska <mliska@suse.cz>
39031 Jan Hubicka <hubicka@ucw.cz>
39032
39033 PR ipa/64693
39034 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
39035 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
39036 (sem_item_optimizer::process_cong_reduction): Include division by
39037 sensitive references.
39038 * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
39039 * ipa-ref.c (ipa_ref::address_matters_p): New function.
39040 * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
39041
39042 2015-02-26 Georg-Johann Lay <avr@gjlay.de>
39043
39044 PR target/65192
39045 * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
39046 Remove.
39047 * config/avr/avr.c: Same.
39048 (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
39049 Refuse any constant address not in 0..0xbf.
39050 * config/avr/avr.md (*mov<mode>, *movsf): Remove
39051 tiny_valid_direct_memory_access_range from insn conditions.
39052 (mov<mode>): Don't special-case expansion of avrtiny addresses.
39053
39054 2015-02-26 Oleg Endo <olegendo@gcc.gnu.org>
39055
39056 PR target/61142
39057 * config/sh/sh.c (sh_check_add_incdec_notes): New function.
39058 * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
39059 * config/sh/predicates.md (const_logical_operand): New predicate.
39060 * config/sh/sh.md: Add new peephole2 patterns.
39061
39062 2015-02-26 Marek Polacek <polacek@redhat.com>
39063
39064 PR ipa/65008
39065 * ipa-inline.c (early_inliner): Recompute inline parameters.
39066
39067 2015-02-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
39068
39069 PR target/65171
39070 * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
39071 instructions with TImode operands are included in the analysis.
39072
39073 2015-02-26 Sebastian Pop <s.pop@samsung.com>
39074
39075 * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
39076 of an EDGE_FSM_THREAD.
39077
39078 2015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
39079
39080 * config/rs6000/htm.md (tcheck): Fix assembly encoding.
39081
39082 2015-02-25 Aldy Hernandez <aldyh@redhat.com>
39083
39084 PR debug/46102
39085 * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
39086
39087 2015-02-26 Sebastian Pop <s.pop@samsung.com>
39088
39089 PR tree-optimization/65048
39090 * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
39091 (thread_through_all_blocks): Call valid_jump_thread_path.
39092 Remove invalid FSM jump-thread paths.
39093
39094 2015-02-26 Jakub Jelinek <jakub@redhat.com>
39095
39096 * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
39097 (ipa_write_optimization_summaries): Likewise.
39098 * tree-streamer.h: Include data-streamer.h.
39099 (streamer_mode_table): Declare extern variable.
39100 (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
39101 * lto-streamer-out.c (lto_output_init_mode_table,
39102 lto_write_mode_table): New functions.
39103 (produce_asm_for_decls): Call lto_write_mode_table when streaming
39104 offloading LTO.
39105 * lto-section-in.c (lto_section_name): Add "mode_table" entry.
39106 (lto_create_simple_input_block): Add mode_table argument to the
39107 lto_input_block constructors.
39108 * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
39109 Likewise.
39110 * data-streamer-in.c (string_for_index): Likewise.
39111 * ipa-inline-analysis.c (inline_read_section): Likewise.
39112 * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
39113 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
39114 * lto-streamer-in.c (lto_read_body_or_constructor,
39115 lto_input_toplevel_asms): Likewise.
39116 (lto_input_mode_table): New function.
39117 * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
39118 pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
39119 Use bp_pack_machine_mode.
39120 * real.h (struct real_format): Add name field.
39121 * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
39122 (class lto_input_block): Add mode_table member.
39123 (lto_input_block::lto_input_block): Add mode_table_ argument,
39124 initialize mode_table.
39125 (struct lto_file_decl_data): Add mode_table field.
39126 (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
39127 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
39128 unpack_ts_decl_common_value_fields,
39129 unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
39130 * tree-streamer.c (streamer_mode_table): New variable.
39131 * real.c (ieee_single_format, mips_single_format,
39132 motorola_single_format, spu_single_format, ieee_double_format,
39133 mips_double_format, motorola_double_format,
39134 ieee_extended_motorola_format, ieee_extended_intel_96_format,
39135 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
39136 ibm_extended_format, mips_extended_format, ieee_quad_format,
39137 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
39138 decimal_single_format, decimal_double_format, decimal_quad_format,
39139 ieee_half_format, arm_half_format, real_internal_format): Add name
39140 field.
39141 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
39142
39143 2015-02-26 Yuri Rumyantsev <ysrumyan@gmail.com>
39144
39145 PR target/65161
39146 * config/i386/i386.c (ix86_sched_reorder): Skip instruction
39147 reordering for selective scheduling.
39148
39149 2015-02-26 Terry Guo <terry.guo@arm.com>
39150
39151 * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
39152 * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
39153 (arm_arch_no_volatile_ce): Declare new global variable.
39154 * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
39155 (arm_option_override): Assign value to arm_arch_no_volatile_ce.
39156 * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
39157 (TARGET_NO_VOLATILE_CE): New macro.
39158 * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
39159 volatile memory access in IT block
39160
39161 2015-02-25 Kai Tietz <ktietz@redhat.com>
39162
39163 PR tree-optimization/61917
39164 * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
39165 that reduc_def_stmt is null.
39166
39167 2015-02-25 Martin Liska <mliska@suse.cz>
39168
39169 * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
39170 hard register variables.
39171
39172 2015-02-25 Kai Tietz <ktietz@redhat.com>
39173
39174 PR target/64212
39175 * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
39176 (symtab::noninterposable_alias): Likewise.
39177
39178 2015-02-25 Ilya Enkovich <ilya.enkovich@intel.com>
39179
39180 PR target/65167
39181 * config/i386/i386.c (ix86_function_arg_regno_p): Support
39182 bounds registers.
39183 (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
39184
39185 2015-02-25 Alan Lawrence <alan.lawrence@arm.com>
39186
39187 PR target/64997
39188 * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
39189 as split condition; force split via '#' in output pattern.
39190
39191 2015-02-25 Richard Biener <rguenther@suse.de>
39192 Kai Tietz <ktietz@redhat.com>
39193
39194 PR tree-optimization/61917
39195 * tree-vect-loop.c (vectorizable_reduction): Allow
39196 vect_internal_def without reduction to exit graceful.
39197
39198 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
39199
39200 PR target/65196
39201 * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
39202 only with NONDEBUG_INSN_P.
39203
39204 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
39205
39206 Use variadic macros with avr-log.c.
39207
39208 * config/avr/avr-protos.h (avr_vdump): New prototype.
39209 (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
39210 (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
39211 * config/avr/avr-log.c: Adjust comments.
39212 (avr_vdump): New function.
39213 (avr_vadump): Pass caller as 2nd argument instead of format string.
39214 (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
39215 (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
39216
39217 2015-02-25 Jakub Jelinek <jakub@redhat.com>
39218
39219 PR lto/64374
39220 * target.def (target_option_stream_in): New target hook.
39221 * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
39222 targetm.target_option.post_stream_in if non-NULL.
39223 * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
39224 * doc/tm.texi: Updated.
39225 * config/i386/i386.c (ix86_function_specific_post_stream_in): New
39226 function.
39227 (TARGET_OPTION_POST_STREAM_IN): Redefine.
39228
39229 2015-02-24 Jeff Law <law@redhat.com>
39230
39231 PR target/65117
39232 * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
39233 of operand 0 and operand 2.
39234 (zero_cost_loop_end, loop_end): Similarly.
39235
39236 2015-02-24 Aldy Hernandez <aldyh@redhat.com>
39237
39238 * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
39239 CXX_MEM_STAT_INFO.
39240
39241 2015-02-24 DJ Delorie <dj@redhat.com>
39242
39243 * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
39244 * config/rl78/rl78-expand.md (movsf): New, same as movsi.
39245 * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
39246 instead of hardcoding SImode.
39247
39248 2015-02-24 Bernd Schmidt <bernds@codesourcery.com>
39249
39250 * omp-low.c (create_omp_child_function): Tag entrypoint
39251 functions with a special attribute.
39252
39253 2015-02-24 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
39254
39255 PR target/65058
39256 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
39257
39258 2015-02-24 Vladimir Makarov <vmakarov@redhat.com>
39259
39260 PR rtl-optimization/65123
39261 * lra-remat.c (operand_to_remat): Check hard regs in insn
39262 definition too.
39263
39264 2015-02-24 Nick Clifton <nickc@redhat.com>
39265
39266 * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
39267 to the assembler.
39268
39269 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
39270
39271 PR libgomp/64625
39272 * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
39273 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
39274 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
39275 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
39276 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
39277 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
39278 (BUILT_IN_GOACC_PARALLEL): Specify as
39279 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
39280 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
39281 * builtin-types.def
39282 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
39283 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
39284 Remove function types.
39285 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
39286 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
39287 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
39288 New function types.
39289
39290 2015-02-24 Georg-Johann Lay <avr@gjlay.de>
39291
39292 * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
39293
39294 2015-02-24 Jakub Jelinek <jakub@redhat.com>
39295
39296 PR tree-optimization/65170
39297 * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
39298 if val[1] < 0, clear also val[2] and return 3.
39299
39300 2015-02-24 Alan Modra <amodra@gmail.com>
39301
39302 PR target/65172
39303 * config/rs6000/rs6000.c (get_memref_parts): Only return true
39304 when *base is a reg. Handle nested plus addresses. Simplify
39305 pre_modify test.
39306
39307 2015-02-22 Max Filippov <jcmvbkbc@gmail.com>
39308
39309 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
39310 use natural alignment when optimizing for size.
39311
39312 2015-02-23 Kaz Kojima <kkojima@gcc.gnu.org>
39313
39314 PR target/65153
39315 * config/sh/sh.md (movsicc_true+3): Remove peephole.
39316 * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
39317 * config/sh/sh.c (replace_n_hard_rtx): Remove.
39318
39319 2015-02-23 Richard Sandiford <richard.sandiford@arm.com>
39320
39321 PR fortran/63427
39322 * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
39323 too big for a wide_int. Implement missing wrapping operation.
39324
39325 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
39326
39327 PR target/65163
39328 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
39329 instead of const_int 4294901760.
39330
39331 2015-02-23 Georg-Johann Lay <avr@gjlay.de>
39332
39333 * config/avr/t-avr: Fix typo in comment.
39334
39335 2015-02-21 Richard Sandiford <richard.sandiford@arm.com>
39336
39337 * doc/rtl.texi (fma): Clarify documentation.
39338
39339 2015-02-20 Aldy Hernandez <aldyh@redhat.com>
39340
39341 PR debug/58123
39342 * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
39343 over input_location.
39344
39345 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
39346
39347 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
39348 unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
39349 restrict alignments to absolute_biggest_alignment.
39350 * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
39351 Define.
39352 * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
39353 * doc/tm.texi: Regenerate.
39354 * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
39355
39356 2015-02-20 Vladimir Makarov <vmakarov@redhat.com>
39357
39358 PR target/64172
39359 * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
39360
39361 2015-02-20 Richard Biener <rguenther@suse.de>
39362
39363 PR tree-optimization/65136
39364 * tree-ssa-propagate.c: Include cfgloop.h.
39365 (replace_phi_args_in): Avoid replacing loop latch edge PHI
39366 arguments with constants.
39367
39368 2015-02-20 Jakub Jelinek <jakub@redhat.com>
39369 Martin Liska <mliska@suse.cz>
39370
39371 PR target/63892
39372 * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
39373 don't try to create_thunk if stdarg_p. If
39374 !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
39375 redirect_callers if possible.
39376 (sem_item_optimizer::execute): Call unregister_hooks here...
39377 (ipa_icf_driver): ... instead of here.
39378
39379 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
39380
39381 * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
39382 Mark operand 0 as earlyclobber in 2nd alternative.
39383 (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
39384 Write negated shift amount into QI lowpart operand 0 and use it
39385 in the shift step.
39386 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
39387
39388 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
39389
39390 * cgraph.h (clone_function_name_1): Declare.
39391 * cgraphclones.c (clone_function_name_1): New function.
39392 (clone_function_name): Use it.
39393 * lto-partition.c: Include "stringpool.h".
39394 (must_not_rename, maybe_rewrite_identifier)
39395 (validize_symbol_for_target): New static functions.
39396 (privatize_symbol_name): Use must_not_rename.
39397 (promote_symbol): Call validize_symbol_for_target.
39398 (lto_promote_cross_file_statics): Likewise.
39399 (lto_promote_statics_nonwpa): Likewise.
39400
39401 2015-02-20 Georg-Johann Lay <avr@gjlay.de>
39402
39403 PR target/64452
39404 * config/avr/avr.md (pushhi_insn): New insn.
39405 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
39406
39407 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
39408 Jakub Jelinek <jakub@redhat.com>
39409
39410 * tree-streamer.c (preload_common_nodes): Don't preload
39411 TI_VA_LIST* for offloading.
39412 * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
39413 in_lto_p.
39414
39415 2015-02-19 John David Anglin <danlgin@gcc.gnu.org>
39416
39417 * config/pa/pa.c (pa_emit_move_sequence): Always force
39418 (const (plus (symbol) (const_int))) to const mem. Put REG_EQUAL
39419 note on insn.
39420
39421 * config/pa/pa.c (pa_reloc_rw_mask): New function.
39422 (TARGET_ASM_RELOC_RW_MASK): Define.
39423 (pa_cannot_force_const_mem): Revert previous change.
39424
39425 2015-02-19 Martin Jambor <mjmabor@suse.cz>
39426 Jan Hubicka <hubicka@ucw.cz>
39427
39428 PR ipa/65028
39429 * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
39430 across jump functions.
39431
39432 2015-02-19 Uros Bizjak <ubizjak@gmail.com>
39433
39434 * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
39435
39436 2015-02-19 Sandra Loosemore <sandra@codesourcery.com>
39437
39438 * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
39439
39440 2015-02-19 Richard Henderson <rth@redhat.com>
39441
39442 PR middle-end/65074
39443 * varasm.c (default_binds_local_p_2): Don't test node->definition;
39444 test DECL_EXTERNAL independent of symtab_node.
39445
39446 2015-02-19 Jakub Jelinek <jakub@redhat.com>
39447
39448 PR lto/65012
39449 * varpool.c (varpool_node::get_constructor): Return early
39450 if this->lto_file_data is NULL.
39451
39452 2015-02-19 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
39453
39454 * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
39455 (rank_for_schedule_debug): Update.
39456 (ready_sort): Make static. Move sorting logic to ...
39457 (ready_sort_debug, ready_sort_real): New static functions.
39458 (schedule_block): Sort both debug insns and real insns in preparation
39459 for ready list trimming. Improve debug output.
39460 * sched-int.h (ready_sort): Remove global declaration.
39461
39462 2015-02-18 Trevor Saunders <tsaunders@mozilla.com>
39463
39464 * ipa-icf.c (sem_function::equals_private): Adjust.
39465 (sem_function::bb_dict_test): Take a vec<int> * instead of
39466 auto_vec<int>.
39467 * ipa-icf.h (bb_dict_test): Likewise.
39468
39469 2015-02-18 Jakub Jelinek <jakub@redhat.com>
39470
39471 PR gcov-profile/64634
39472 * tree-eh.c (frob_into_branch_around): Fix up typos
39473 in function comment.
39474 (lower_catch): Put eh_seq resulting from EH lowering of
39475 the cleanup sequence after the cleanup rather than before it.
39476
39477 2015-02-18 Tom de Vries <tom@codesourcery.com>
39478
39479 * common.opt (fstdarg-opt): New option.
39480 * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
39481 * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
39482 (@item -fstdarg-opt): New item.
39483
39484 2015-02-18 H.J. Lu <hongjiu.lu@intel.com>
39485
39486 PR target/65064
39487 * config/ia64/predicates.md (sdata_symbolic_operand): Return false
39488 for common symbols.
39489
39490 2015-02-18 Jakub Jelinek <jakub@redhat.com>
39491
39492 * config/i386/t-intelmic (mkoffload.o): Remove dependency on
39493 insn-modes.h.
39494 (ALL_HOST_OBJS): Add mkoffload.o.
39495 * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
39496
39497 2015-02-18 Jan Hubicka <hubicka@ucw.cz>
39498
39499 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
39500 (compare_virtual_tables): Be smarter about skipping typeinfos;
39501 do sane output on virtual table table mismatch.
39502 (warn_odr): Be ready for forward declarations of enums;
39503 output sane info on base mismatch and virtual table mismatch.
39504 (add_type_duplicate): Fix code choosing prevailing type; do not ICE
39505 when only one type is polymorphic.
39506 (get_odr_type): Fix hashtable corruption.
39507 (dump_odr_type): Dump mangled names.
39508
39509 2015-02-18 Richard Biener <rguenther@suse.de>
39510
39511 PR tree-optimization/65063
39512 * tree-predcom.c (determine_unroll_factor): Return 1 if we
39513 have replaced looparound PHIs.
39514
39515 2015-02-18 Martin Liska <mliska@suse.cz>
39516
39517 * lto-streamer.c (lto_streamer_init): Encapsulate
39518 streamer_check_handled_ts_structures with checking macro.
39519
39520 2015-02-18 Jakub Jelinek <jakub@redhat.com>
39521
39522 PR ipa/65087
39523 * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
39524 section if !implicit_section.
39525 (cgraph_node::create_version_clone_with_body): Likewise.
39526 * trans-mem.c (ipa_tm_create_version): Likewise.
39527
39528 2015-02-18 Richard Biener <rguenther@suse.de>
39529
39530 PR tree-optimization/62217
39531 * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
39532 into BIVs.
39533
39534 2015-02-18 Marek Polacek <polacek@redhat.com>
39535
39536 PR sanitizer/65081
39537 * ubsan.c (OBJSZ_MAX_OFFSET): Define.
39538 (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
39539 is in range [-16K, -1]. Don't issue run-time error if
39540 (ptr > ptr + offset).
39541
39542 2015-02-18 Thomas Schwinge <thomas@codesourcery.com>
39543
39544 * doc/install.texi (nvptx-*-none): New section.
39545 * doc/invoke.texi (Nvidia PTX Options): Likewise.
39546 * config/nvptx/nvptx.opt: Update.
39547
39548 * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
39549 (access_check): New functions, copied from
39550 config/i386/intelmic-mkoffload.c.
39551 (main): For non-installed testing, look in all COMPILER_PATHs for
39552 GCC_INSTALL_NAME.
39553
39554 * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
39555
39556 2015-02-18 Andrew Pinski <apinski@cavium.com>
39557 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
39558
39559 * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
39560 Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
39561
39562 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
39563
39564 * ipa-visibility.c (function_and_variable_visibility): Only
39565 check locality if node is not already local.
39566 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
39567 call_for_symbol_and_aliases instead of
39568 call_for_symbol_thunks_and_aliases.
39569 (ipa_inline): Likewise.
39570 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
39571 first walk aliases.
39572 * ipa.c (symbol_table::remove_unreachable_nodes): Use
39573 call_for_symbol_and_aliases.
39574 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
39575 (ipa_propagate_frequency_1): Use it; use opt_for_fn
39576 (ipa_propagate_frequency): Update.
39577 (ipa_profile): Add opt_for_fn gueards.
39578
39579 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
39580
39581 * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
39582 * doc/invoke.texi (SH options): Document it.
39583 * config/sh/sh.c (sh_insn_length_adjustment): Check
39584 TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
39585
39586 2015-02-17 H.J. Lu <hongjiu.lu@intel.com>
39587
39588 * common.opt (fipa-cp-alignment): New.
39589 * ipa-cp.c (ipcp_store_alignment_results): Check
39590 flag_ipa_cp_alignment.
39591 * opts.c (default_options_table): Enable -fipa-cp-alignment for
39592 -O2.
39593 (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
39594 * doc/invoke.texi: Document -fipa-cp-alignment.
39595
39596 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
39597
39598 PR target/64793
39599 * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
39600 to nil. Adjust comments.
39601
39602 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
39603
39604 * ipa-visibility.c (function_and_variable_visibility): Only
39605 check locality if node is not already local.
39606 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
39607 call_for_symbol_and_aliases instead of
39608 call_for_symbol_thunks_and_aliases.
39609 (ipa_inline): Likewise.
39610 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
39611 first walk aliases.
39612 * ipa.c (symbol_table::remove_unreachable_nodes): Use
39613 call_for_symbol_and_aliases.
39614 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
39615 (ipa_propagate_frequency_1): Use it; use opt_for_fn
39616 (ipa_propagate_frequency): Update.
39617 (ipa_profile): Add opt_for_fn guards.
39618
39619 2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
39620
39621 * config/nvptx/mkoffload.c (parse_file): Fix logic error in
39622 skipping of "strange" tokens.
39623
39624 2015-02-17 Jeff Law <law@redhat.com>
39625
39626 * tree-vrp.c (identify_jump_threads): Use last_stmt. Remove
39627 obsolete comment.
39628
39629 2015-02-17 James Greenhalgh <james.greenhalgh@arm.com>
39630
39631 * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
39632 as forcing a HARD_DEP between instructions, thereby
39633 disallowing rewriting to break dependencies.
39634
39635 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
39636
39637 * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
39638 * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
39639 variables in boundary that have no inlitalizer encoded and are
39640 not aliases.
39641 * varasm.c (default_binds_local_p_2): External definitions do not
39642 count as definitions here.
39643
39644 2015-02-16 Jeff Law <law@redhat.com>
39645
39646 PR tree-optimization/64823
39647 * tree-vrp.c (identify_jump_threads): Handle blocks with no real
39648 statements.
39649 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
39650 threading through blocks with PHIs, but no statements.
39651 (thread_through_normal_block): Distinguish between blocks where
39652 we did not process all the statements and blocks with no statements.
39653
39654 2015-02-16 Jakub Jelinek <jakub@redhat.com>
39655 James Greenhalgh <james.greenhalgh@arm.com>
39656
39657 PR ipa/64963
39658 * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
39659 section if not linkonce. Fix up formatting.
39660 (cgraph_node::create_version_clone_with_body): Copy section.
39661 * trans-mem.c (ipa_tm_create_version): Likewise.
39662
39663 2015-02-16 Richard Biener <rguenther@suse.de>
39664
39665 PR tree-optimization/65077
39666 * tree-ssa-structalias.c (get_constraint_for_1): Handle
39667 IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
39668 (find_func_aliases): Allow float values to carry pointers again.
39669
39670 2015-02-16 James Greenhalgh <james.greenhalgh@arm.com>
39671
39672 * doc/install.texi (Specific): Reorder targets list to put
39673 aarch64 in alphabetical order. Add a link to aarch64*-*-*
39674 from the top menu.
39675
39676 2015-02-16 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
39677 David Edelsohn <dje.gcc@gmail.com>
39678
39679 PR target/65058
39680 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
39681 mapping class to external variable or function reference.
39682 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
39683 mapping class.
39684
39685 2015-02-16 David Eelsohn <dje.gcc@gmail.com>
39686
39687 PR target/53348
39688 * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
39689 ASM_WEAKEN_DECL if defined.
39690
39691 2015-02-16 Richard Biener <rguenther@suse.de>
39692
39693 PR lto/65015
39694 * varasm.c (default_file_start): For LTO produced units
39695 emit <artificial> as file directive.
39696
39697 2015-02-16 Richard Biener <rguenther@suse.de>
39698
39699 PR tree-optimization/63593
39700 * tree-predcom.c (execute_pred_commoning_chain): Delay removing
39701 stmts and releasing SSA names until...
39702 (execute_pred_commoning): ... after processing all chains.
39703
39704 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
39705
39706 PR ipa/65059
39707 * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
39708 external functions.
39709
39710 2015-02-15 Sandra Loosemore <sandra@codesourcery.com>
39711
39712 * doc/bugreport.texi: Adjust section titles throughout the file
39713 to use "Title Case".
39714 * doc/extend.texi: Likewise.
39715 * doc/gcov.texi: Likewise.
39716 * doc/implement-c.texi: Likewise.
39717 * doc/implement-cxx.texi: Likewise.
39718 * doc/invoke.texi: Likewise.
39719 * doc/objc.texi: Likewise.
39720 * doc/standards.texi: Likewise.
39721 * doc/trouble.texi: Likewise.
39722
39723 2015-02-15 Jan Hubicka <hubicka@ucw.cz>
39724
39725 * cgraph.h (symtab_node::has_aliases_p): Simplify.
39726 (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
39727 * tree.c (lookup_binfo_at_offset): Make static.
39728 (get_binfo_at_offset): Do not shadow offset; add explanatory
39729 comment.
39730
39731 2015-02-15 John David Anglin <danglin@gcc.gnu.org>
39732
39733 * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
39734 for all floading point loads and stores except those using a register
39735 index address.
39736 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
39737 to a register.
39738
39739 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
39740
39741 * ipa-inline-analysis.c (growth_data): Add uninlinable field.
39742 (do_estimate_growth_1): Record if any uninlinable edge was seen.
39743 (estimate_growth): Handle uninlinable edges correctly.
39744 (check_callers): New.
39745 (growth_likely_positive): Handle aliases correctly.
39746
39747 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
39748
39749 * ipa-chkp.c: Use iterate_direct_aliases.
39750 * symtab.c (resolution_used_from_other_file_p): Move inline.
39751 (symtab_node::create_reference): Fix formating.
39752 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
39753 (symtab_node::iterate_reference): Move inline.
39754 (symtab_node::iterate_referring): Move inline.
39755 (symtab_node::iterate_direct_aliases): Move inline.
39756 (symtab_node::used_from_object_file_p_worker): Inline into ...
39757 (symtab_node::used_from_object_file_p): ... this one; move inline.
39758 (symtab_node::call_for_symbol_and_aliases): Move inline;
39759 use iterate_direct_aliases.
39760 (symtab_node::call_for_symbol_and_aliases_1): New method.
39761 (cgraph_node::call_for_symbol_and_aliases): Move inline;
39762 use iterate_direct_aliases.
39763 (cgraph_node::call_for_symbol_and_aliases_1): New method.
39764 (varpool_node::call_for_node_and_aliases): Rename to ...
39765 (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
39766 use iterate_direct_aliases.
39767 (varpool_node::call_for_symbol_and_aliases_1): New method.
39768 * ipa.c (ipa_single_use): Use iterate_direct_aliases.
39769 (ipa_discover_readonly_nonaddressable_var): Update.
39770 * ipa-devirt.c: Fix formating.
39771 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
39772 Move inline.
39773 (cgraph_node::call_for_symbol_and_aliases): Move inline.
39774 (cgraph_node::call_for_symbol_and_aliases_1): New function..
39775 * cgraph.h (used_from_object_file_p_worker): Remove.
39776 (resolution_used_from_other_file_p): Move inline.
39777 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
39778 (symtab_node::iterate_reference): Move inline.
39779 (symtab_node::iterate_referring): Move inline.
39780 (symtab_node::iterate_direct_aliases): Move inline.
39781 (symtab_node::used_from_object_file_p_worker): Inline into ...
39782 (symtab_node::used_from_object_file_p): Move inline.
39783 * tree-emutls.c (ipa_lower_emutls): Update.
39784 * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
39785 (varpool_node::call_for_node_and_aliases): Remove.
39786
39787 2015-02-14 Jakub Jelinek <jakub@redhat.com>
39788
39789 PR tree-optimization/62209
39790 * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
39791 op == range->exp, insert seq and gimplified code after labels
39792 instead of after the phi.
39793
39794 2015-02-13 Jeff Law <law@redhat.com>
39795
39796 PR bootstrap/65060
39797 Revert my change for tree-optimization/64823.
39798
39799 2015-02-13 Jakub Jelinek <jakub@redhat.com>
39800
39801 PR tree-optimization/65053
39802 * tree-ssa-phiopt.c (value_replacement): When moving assign before
39803 cond, either reset VR on lhs or set it to phi result VR.
39804
39805 2015-02-13 Jeff Law <law@redhat.com>
39806
39807 PR tree-optimization/64823
39808 * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
39809 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
39810 threading through blocks with PHIs, but no statements.
39811 (thread_through_normal_block): Distinguish between blocks where
39812 we did not process all the statements and blocks with no statements.
39813
39814 PR rtl-optimization/47477
39815 * match.pd (convert (plus/minus (convert @0) (convert @1): New
39816 simplifier to narrow arithmetic.
39817
39818 2015-02-13 Jan Hubicka <hubicka@ucw.cz>
39819
39820 PR ipa/65028
39821 * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
39822 polymorphic call info when type is not known to be preserved.
39823
39824 2015-02-13 Maritn Jambor <mjambor@suse.cz>
39825
39826 PR ipa/65028
39827 * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
39828 (inline_call): Use it.
39829
39830 2015-02-13 Thomas Schwinge <thomas@codesourcery.com>
39831
39832 * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
39833 GOMP_DEVICE_NVIDIA_PTX.
39834
39835 2015-02-13 Jakub Jelinek <jakub@redhat.com>
39836
39837 PR ipa/65034
39838 * stmt.c (emit_case_nodes): Use void_type_node instead of
39839 NULL_TREE as LABEL_DECL type.
39840
39841 2015-02-13 John David Anglin <danglin@gcc.gnu.org>
39842
39843 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
39844 constraints.
39845 * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
39846 symbolic references to data to be forced to constant memory on the
39847 SOM target.
39848
39849 2015-02-13 Ilya Enkovich <ilya.enkovich@intel.com>
39850
39851 PR tree-optimization/65002
39852 * tree-cfg.c (pass_data_fixup_cfg): Don't update
39853 SSA on start.
39854 * tree-sra.c (some_callers_have_no_vuse_p): New.
39855 (ipa_early_sra): Reject functions whose callers
39856 assume function is read only.
39857
39858 2015-02-13 Richard Biener <rguenther@suse.de>
39859
39860 PR lto/65015
39861 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
39862 for LTO produced CUs.
39863
39864 2015-02-13 Bin Cheng <bin.cheng@arm.com>
39865
39866 PR tree-optimization/64705
39867 * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
39868 * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
39869 * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
39870 (find_bivs, find_givs_in_stmt_scev): Pass new argument to
39871 expand_simple_operations.
39872
39873 2015-02-13 H.J. Lu <hongjiu.lu@intel.com>
39874 Richard Henderson <rth@redhat.com>
39875
39876 PR rtl/32219
39877 * cgraphunit.c (cgraph_node::finalize_function): Set definition
39878 before notice_global_symbol.
39879 (varpool_node::finalize_decl): Likewise.
39880 * varasm.c (default_binds_local_p_2): Rename from
39881 default_binds_local_p_1, add weak_dominate argument. Use direct
39882 returns instead of assigning to local variable. Unify varpool and
39883 cgraph paths via symtab_node. Reject undef weak variables before
39884 testing visibility. Reorder tests for simplicity.
39885 (default_binds_local_p): Use default_binds_local_p_2.
39886 (default_binds_local_p_1): Likewise.
39887 (decl_binds_to_current_def_p): Unify varpool and cgraph paths
39888 via symtab_node.
39889 (default_elf_asm_output_external): Emit visibility when specified.
39890
39891 2015-02-13 Alan Modra <amodra@gmail.com>
39892
39893 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
39894 code setting up r11 for out-of-line fp restore.
39895
39896 2015-02-13 Eric Botcazou <ebotcazou@adacore.com>
39897
39898 * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
39899 (muser-mode): Likewise.
39900
39901 2015-02-13 Alan Modra <amodra@gmail.com>
39902
39903 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
39904 or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
39905
39906 2015-02-12 David Howells <dhowells@redhat.com>
39907
39908 * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
39909 warning.
39910 * tree-ssa-uninit.c (dump_predicates): Likewise.
39911 * opts.c (print_filtered_help): Likewise.
39912
39913 2015-02-12 Jakub Jelinek <jakub@redhat.com>
39914
39915 * dwarf2out.c (output_die): Use "%s", name instead of name to
39916 avoid -Wformat-security warning.
39917
39918 * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
39919 if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
39920 * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
39921 only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
39922
39923 2015-02-12 Jason Merrill <jason@redhat.com>
39924
39925 * common.opt (-flifetime-dse): New.
39926
39927 2015-02-12 Jakub Jelinek <jakub@redhat.com>
39928
39929 PR sanitizer/65019
39930 * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
39931
39932 PR tree-optimization/65014
39933 * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
39934 use original second operand of arg0 or arg1 instead of
39935 that adjusted by STRIP_NOPS.
39936
39937 2015-02-11 Jeff Law <law@redhat.com>
39938
39939 PR target/63347
39940 * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
39941 that needs to be queued, just queue it for a single cycle.
39942
39943 2015-02-11 Jan Hubicka <hubicka@ucw.cz>
39944
39945 * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
39946 bodies of thunks; comment on why.
39947 * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
39948 symbols are extern.
39949
39950 2015-02-11 Richard Henderson <rth@redhat.com>
39951
39952 PR sanitize/65000
39953 * tree-eh.c (mark_reachable_handlers): Mark source and destination
39954 regions of __builtin_eh_copy_values.
39955
39956 2015-02-11 Jakub Jelinek <jakub@redhat.com>
39957
39958 PR middle-end/65003
39959 * varasm.c (place_block_symbol): Assert that DECL_RTL of the
39960 ultimate alias is MEM with SYMBOL_REF satisfying
39961 SYMBOL_REF_HAS_BLOCK_INFO_P as its operand. Don't pass the MEM
39962 to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
39963
39964 2015-02-11 Thomas Schwinge <thomas@codesourcery.com>
39965
39966 * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
39967 "diagnostic-core.h".
39968 (main): Initialize progname, and call diagnostic_initialize.
39969
39970 * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
39971 instead of __OPENMP_TARGET__.
39972
39973 * config/nvptx/mkoffload.c: Include "gomp-constants.h".
39974 (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
39975 hard-coding PTX_ID.
39976
39977 2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
39978
39979 * doc/sourcebuild.texi (pie_enabled): Document.
39980
39981 2015-02-11 Martin Liska <mliska@suse.cz>
39982
39983 PR ipa/64813
39984 * cgraphunit.c (cgraph_node::expand_thunk): Do not create
39985 a return value for call to a function that is noreturn.
39986
39987 2015-02-11 Richard Biener <rguenther@suse.de>
39988
39989 PR lto/65015
39990 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
39991 and -fresolution.
39992
39993 2015-02-11 Andrew Pinski <apinski@cavium.com>
39994
39995 PR target/64893
39996 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
39997 Change the first argument type to size_type_node and add another
39998 size_type_node.
39999 (aarch64_simd_expand_builtin): Handle the new argument to
40000 AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
40001 print an out when the first two arguments are not
40002 nonzero integer constants.
40003 * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
40004 Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
40005
40006 2015-02-11 Jakub Jelinek <jakub@redhat.com>
40007
40008 PR target/61925
40009 * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
40010 (ix86_reset_previous_fndecl): Restore it here, unconditionally.
40011 (ix86_set_current_function): Rewritten.
40012 (ix86_add_new_builtins): Temporarily clear current_target_pragma
40013 when creating builtin fndecls.
40014
40015 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
40016
40017 PR ipa/65005
40018 * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
40019 function.
40020 * symtab.c (symtab_node::verify_base): Remove check that non-definitions
40021 have no comdat group.
40022 * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
40023 (lto_output_varpool_node): Always output alias info.
40024 (output_refs): Output refs of boundary aliases, too.
40025 (compute_ltrans_boundary): Add alias and thunk target into boundaries.
40026 (output_symtab): Output call eges in thunks in boundary.
40027 (get_alias_symbol): Remove.
40028 (input_node, input_varpool_node): Do not special case weakrefs.
40029 * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
40030 alias and thunks targets in the boundary; do not take removed symbols
40031 from their comdat groups.
40032 * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
40033 (cgraph_node::global_info): Remove.
40034 (cgraph_node::rtl_info): Look through aliases and thunks.
40035 * cgrpah.h (global_info): Remove.
40036 (non_local_p): Remove.
40037
40038 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
40039 Sandra Loosemore <sandra@codesourcery.com>
40040
40041 * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
40042 to inline asm. List dialects in proper order.
40043
40044 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
40045 Sandra Loosemore <sandra@codesourcery.com>
40046
40047 * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
40048
40049 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
40050
40051 * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
40052 modified) reference to Solaris.
40053
40054 2015-02-10 Sandra Loosemore <sandra@codesourcery.com>
40055
40056 * doc/extend.texi (Extended Asm): Fix typos.
40057
40058 2015-02-10 Jakub Jelinek <jakub@redhat.com>
40059
40060 PR sanitizer/65004
40061 * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
40062
40063 2015-02-10 Oleg Endo <olegendo@gcc.gnu.org>
40064
40065 PR target/64661
40066 * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
40067 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
40068 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
40069 * config/sh/constraints.md (Ara, Add): New constraints.
40070 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
40071 predicates.
40072 (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
40073 atomic_mem_operand_0. Don't use force_reg on the memory address.
40074 (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
40075 Sra constraint. Convert to insn_and_split. Add workaround for
40076 PR 64974.
40077 (atomic_compare_and_swap<mode>_hard): Copy to
40078 atomic_compare_and_swap<mode>_hard_1. Convert to insn_and_split.
40079 Use atomic_mem_operand_0 predicate.
40080 (atomic_compare_and_swap<mode>_soft_gusa,
40081 atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
40082 AraAdd constraints.
40083 (atomic_compare_and_swap<mode>_soft_tcb,
40084 atomic_compare_and_swap<mode>_soft_imask,
40085 atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
40086 atomic_mem_operand_0 predicate and SraSdd constraints.
40087 (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
40088 constraint.
40089 (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
40090 Convert to insn_and_split. Use atomic_mem_operand_0 predicate.
40091 (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
40092 atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1. Don't use
40093 force_reg on the memory address.
40094 (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
40095 atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
40096 atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
40097 atomic_mem_operand_1 predicate and Sra constraint.
40098 (atomic_fetch_<fetchop_name><mode>_hard): Copy to
40099 atomic_fetch_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
40100 Use atomic_mem_operand_1 predicate.
40101 (atomic_<fetchop_name><mode>_hard): Copy to
40102 atomic_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
40103 Use atomic_mem_operand_1 predicate.
40104 (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
40105 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
40106 (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1. Convert to
40107 insn_and_split. Use atomic_mem_operand_1 predicate.
40108 (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
40109 atomic_<fetchop_name>_fetch<mode>_hard_1. Convert to insn_and_split.
40110 Use atomic_mem_operand_1 predicate.
40111 (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
40112 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
40113 (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
40114 in generated insn with original mem operand before emitting the insn.
40115 (atomic_fetch_<fetchop_name><mode>_soft_gusa,
40116 atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
40117 atomic_<fetchop_name>_fetch<mode>_soft_gusa,
40118 atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
40119 Use atomic_mem_operand_1 predicate and AraAdd constraints.
40120 (atomic_fetch_<fetchop_name><mode>_soft_tcb,
40121 atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
40122 atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
40123 atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
40124 atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
40125 atomic_<fetchop_name>_fetch<mode>_soft_tcb,
40126 atomic_not_fetch<mode>_soft_tcb,
40127 atomic_<fetchop_name>_fetch<mode>_soft_imask,
40128 atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
40129 atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
40130 Use atomic_mem_operand_1 predicate and SraSdd constraints.
40131
40132 2015-02-10 Uros Bizjak <ubizjak@gmail.com>
40133
40134 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
40135 and 3 earlyclobber operands.
40136
40137 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
40138
40139 * common.opt (fstack-reuse): Mark as optimization.
40140
40141 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
40142
40143 PR ipa/64982
40144 * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
40145
40146 2015-02-10 Trevor Saunders <tsaunders@mozilla.com>
40147
40148 PR tree-optimization/64326
40149 * cfghooks.c (make_forwarder_block): Cap frequency of created block.
40150
40151 2015-02-10 Rainer Emrich <rainer@emrich-ebersheim.de>
40152
40153 PR gcov-profile/61889
40154 * gcov-tool.c: Remove wrong #if !defined(_WIN32)
40155
40156 2015-02-10 Richard Biener <rguenther@suse.de>
40157
40158 PR tree-optimization/64995
40159 * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
40160 value we use is final.
40161 (visit_reference_op_store): Always valueize op.
40162 (visit_use): Properly valueize vuses.
40163
40164 2015-02-10 Richard Biener <rguenther@suse.de>
40165
40166 PR tree-optimization/64909
40167 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
40168 pass a scalar-stmt count estimate to the cost model.
40169 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
40170
40171 2015-02-10 Alexander Monakov <amonakov@ispras.ru>
40172
40173 * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
40174 enabled by default together with var-tracking.
40175
40176 2015-02-10 Nick Clifton <nickc@redhat.com>
40177
40178 * config/rl78/rl78.c: Remove DIV attribute code accidentally
40179 included in previous rl78 commit.
40180
40181 2015-02-10 Richard Biener <rguenther@suse.de>
40182
40183 * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
40184 * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
40185 return the bitpack.
40186
40187 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
40188
40189 PR gcov-profile/61889
40190 * config.in: regenerate.
40191 * configure.in: Likewise.
40192 * configure.ac: Check for ftw.h.
40193 * gcov-tool.c: Check for ftw.h before using nftw.
40194
40195 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
40196
40197 PR lto/64076
40198 * ipa-visibility.c (update_visibility_by_resolution_info): Only
40199 assert when not in lto mode.
40200
40201 2015-02-09 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
40202
40203 * ira-color.c (setup_left_conflict_sizes_p): Simplify
40204 initialization/assignment of conflict_size.
40205
40206 2015-02-09 Jan Hubicka <hubicka@ucw.cz>
40207
40208 PR ipa/64978
40209 * ipa-cp.c (gather_caller_stats): Skip thunks.
40210 (propagate_constants_topo): Skip aliases.
40211
40212 2015-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
40213
40214 PR target/64761
40215 * config/sh/sh.c (sh_option_override): Don't change
40216 -freorder-blocks-and-partition to -freorder-blocks even when
40217 unwinding is enabled.
40218 (sh_can_follow_jump): Return false if the followee jump is
40219 a crossing jump when -freorder-blocks-and-partition is specified.
40220 * config/sh/sh.md (*jump_compact_crossing): New insn.
40221
40222 2015-02-09 Joern Rennecke <joern.rennecke@embecosm.com>
40223 Kaz Kojima <kkojima@gcc.gnu.org>
40224
40225 PR target/64761
40226 * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
40227 * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
40228 (sh_can_redirect_branch): Rename to ...
40229 (sh_can_follow_jump): ... this. Constify argument types.
40230 * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
40231 * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
40232 * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
40233 * doc/tm.texi: Regenerate.
40234
40235 2015-02-09 Jakub Jelinek <jakub@redhat.com>
40236
40237 PR sanitizer/64981
40238 * builtins.c (expand_builtin): Call targetm.expand_builtin
40239 for BUILT_IN_MD builtins regardless of asan_intercepted_p.
40240
40241 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
40242
40243 PR ipa/61548
40244 * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
40245
40246 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
40247
40248 PR ipa/63566
40249 * ipa-icf.c (set_local): New function.
40250 (sem_function::merge): Use it.
40251
40252 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
40253
40254 * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
40255 (add_type_duplicate): Fix comparison of BINFOs.
40256
40257 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
40258
40259 * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
40260 on getting VOID pointer.
40261
40262 2015-02-09 Jakub Jelinek <jakub@redhat.com>
40263
40264 PR target/64979
40265 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
40266 va_list escapes.
40267
40268 2015-02-09 Richard Biener <rguenther@suse.de>
40269
40270 * genmatch.c (replace_id): Copy expr_type.
40271
40272 2015-02-09 Richard Biener <rguenther@suse.de>
40273
40274 * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
40275 (streamer_write_tree_bitfields): Declare.
40276 * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
40277 properly unpack padding.
40278 (unpack_value_fields): Inline ...
40279 (streamer_read_tree_bitfields): ... here.
40280 * tree-streamer-out.c (pack_ts_base_value_fields): Inline
40281 and properly add padding bits.
40282 (streamer_pack_tree_bitfields): Fold into ...
40283 (streamer_write_tree_bitfields): ... this new function,
40284 exposing the bitpack object.
40285 * lto-streamer-out.c (lto_write_tree_1): Call
40286 streamer_write_tree_bitfields.
40287
40288 2015-02-09 Richard Biener <rguenther@suse.de>
40289
40290 PR tree-optimization/54000
40291 * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
40292 (struct ivopts_data): Add loop_loc member.
40293 (tree_ssa_iv_optimize_loop): Dump loop location.
40294 (create_new_ivs): Likewise, also dump number of IVs generated.
40295
40296 2015-02-09 Martin Liska <mliska@suse.cz>
40297
40298 * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
40299 just if not yet registered.
40300 (ipa_icf_generate_summary): Register callgraph hooks.
40301
40302 2015-02-08 Andrew Pinski <apinski@cavium.com>
40303
40304 * config/aarch64/aarch64.c (gty_dummy): Delete.
40305
40306 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
40307
40308 PR ipa/63566
40309 * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
40310 (cgraph_node::local_p): Remove thunk related FIXME.
40311
40312 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
40313
40314 PR ipa/63566
40315 * i386.c (ix86_function_regparm): Look through aliases to see if callee
40316 is local and optimized.
40317 (ix86_function_sseregparm): Likewise; also use target's SSE math
40318 settings; error out instead of silently generating wrong code
40319 on mismatches.
40320 (init_cumulative_args): Look through aliases.
40321
40322 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
40323
40324 PR ipa/63566
40325 * ipa-split.c (execute_split_functions): Split if function has aliases.
40326
40327 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
40328
40329 PR ipa/63566
40330 * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
40331 aliases before trying to expand it.
40332 (cgraph_node::expand_thunk): Fix formating.
40333
40334 2015-02-07 Sandra Loosemore <sandra@codesourcery.com>
40335
40336 * doc/extend.texi (Function Attributes [naked]): Copy-edit.
40337 (Using Assembly Language with C): Expand introduction.
40338 (Basic Asm): Copy-edit. Add more information about uses of
40339 basic asm.
40340 (Extended Asm): Copy-edit. Document new escape syntax and
40341 %l[label] syntax.
40342 (Global Reg Vars): Copy-edit.
40343 (Local Reg Vars): Likewise.
40344
40345 2015-02-06 David Edelsohn <dje.gcc@gmail.com>
40346
40347 PR debug/2714
40348 PR bootstrap/64256
40349 * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
40350 (DBX_CONTIN_CHAR): Define.
40351
40352 2015-02-06 Sebastian Pop <s.pop@samsung.com>
40353 Brian Rzycki <b.rzycki@samsung.com>
40354
40355 PR tree-optimization/64878
40356 * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
40357 (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
40358 Stop recursion at loop phi nodes after having visited a loop phi node.
40359
40360 2015-02-06 Jakub Jelinek <jakub@redhat.com>
40361
40362 * toplev.c (process_options): Change flag_ipa_ra before creating
40363 optimization_{default,current}_node.
40364
40365 PR ipa/64896
40366 * cgraphunit.c (cgraph_node::expand_thunk): If
40367 restype is not is_gimple_reg_type nor the thunk_fndecl
40368 returns aggregate_value_p, set restmp to a temporary variable
40369 instead of resdecl.
40370
40371 2015-02-06 Vladimir Makarov <vmakarov@redhat.com>
40372
40373 * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
40374
40375 2015-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
40376
40377 PR target/64205
40378 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
40379 add a general secondary reload handler for SDmode, unless we have
40380 both read/write support for SDmode.
40381
40382 2015-02-06 Jakub Jelinek <jakub@redhat.com>
40383
40384 PR middle-end/64937
40385 * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
40386 Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
40387 or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
40388 1 before, push it to abstract_vec.
40389 (dwarf2out_abstract_function): Adjust caller. Don't call
40390 set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
40391 DECL_ABSTRACT_P flags for all abstract_vec elts.
40392
40393 2015-02-06 Renlin Li <renlin.li@arm.com>
40394
40395 * tree-ssa-forwprop.c (execute): Keep location info while rewrite
40396 complex gimple.
40397 * tree-ssa.c (execute_update_addresses_taken): Likewise.
40398
40399 2015-02-06 Jeff Law <law@redhat.com>
40400
40401 PR target/64889
40402 * config/h8300/h8300.c (push): New argument "in_prologue".
40403 Pass "in_prologue" along to "F".
40404 (h8300_push_pop): Corresponding changes.
40405 (h8300_expand_prologue): Likewise.
40406 (h8300_swap_into_er6): Likewise. Do not set RTX_FRAME_RELATED_P.
40407
40408 2015-02-06 Jakub Jelinek <jakub@redhat.com>
40409
40410 PR rtl-optimization/64957
40411 PR debug/64817
40412 * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
40413 IOR rather than for AND.
40414
40415 2015-02-06 Eric Botcazou <ebotcazou@adacore.com>
40416
40417 PR target/62631
40418 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
40419 of shift-add and (add + shift) operations. Rename local variable.
40420
40421 2015-02-05 Jeff Law <law@redhat.com>
40422
40423 PR target/17306
40424 * config/h8300/constraints.md (U): Correctly dectect
40425 "eightbit_data" memory addresses.
40426 * config/h8300/h8300.c (eightbit_constant_address_p): Also
40427 handle (const (plus (symbol_ref (x)))) where x is declared
40428 as an 8-bit data memory address.
40429 * config/h8300/h8300.md (call, call_value): Correctly detect
40430 "funcvec" functions.
40431
40432 PR target/43264
40433 * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
40434 24 to 28 bits for the H8/300.
40435
40436 2015-02-06 Alan Modra <amodra@gmail.com>
40437
40438 PR target/64876
40439 * config/rs6000/rs6000.c (chain_already_loaded): New function.
40440 (rs6000_call_aix): Use it.
40441
40442 2015-02-05 Jan Hubicka <hubicka@ucw.cz>
40443
40444 * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
40445 check.
40446
40447 2015-02-05 Joern Rennecke <joern.rennecke@embecosm.com>
40448
40449 * config/h8300/constraints.md ("U" constraint): Use strict
40450 variant of REG_OK_FOR_BASE_P after reload has started.
40451
40452 2015-02-04 Mantas Mikaitis <mantas.mikaitis@arm.com>
40453
40454 * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
40455 define to zero if !TARGET_NEON.
40456 (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
40457
40458 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
40459 Trevor Saunders <tsaunders@mozilla.com>
40460
40461 PR ipa/61548
40462 * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
40463
40464 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
40465
40466 PR ipa/61548
40467 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
40468 when removing varpool nodes.
40469
40470 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
40471
40472 PR ipa/61548
40473 * varpool.c (varpool_node::remove): Fix order of variables.
40474
40475 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
40476
40477 PR ipa/64686
40478 * ipa-inline.c (inline_small_functions): Fix ordering issue between
40479 speculation resolution and key updates.
40480
40481 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
40482
40483 * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
40484 about not letting any speculative edges unupdated.
40485
40486 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
40487
40488 PR gcov/64123
40489 * gcov-io.c (gcov_var): Export.
40490
40491 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
40492
40493 PR middle-end/64922
40494 * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
40495 edges that become speculative.
40496
40497 2015-02-04 Jakub Jelinek <jakub@redhat.com>
40498
40499 * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
40500 or DW_LANG_Fortran08.
40501 (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
40502 DW_LANG_Fortran08.
40503 (gen_compile_unit_die): Handle "GNU Fortran2003" and
40504 "GNU Fortran2008" language strings.
40505 * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
40506 * langhooks.h (lang_GNU_Fortran): New prototype.
40507 * langhooks.c (lang_GNU_Fortran): New function.
40508 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
40509 lang_GNU_Fortran.
40510
40511 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
40512
40513 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
40514 (RTX_OK_FOR_OLO10_P): Likewise.
40515
40516 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
40517
40518 * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
40519
40520 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
40521
40522 PR middle-end/64922
40523 * gimple.c: Include gimple-ssa.h.
40524 (maybe_remove_unused_call_args): New function.
40525 * gimple.h (maybe_remove_unused_call_args): Declare.
40526 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
40527 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
40528 * gimple-fold.c (gimple_fold_call): Likewise.
40529
40530 2015-02-04 H.J. Lu <hongjiu.lu@intel.com>
40531
40532 PR rtl-optimization/64905
40533 * lra-eliminations.c (setup_can_eliminate): Clear hard frame
40534 pointer alignment if it isn't needed.
40535
40536 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
40537
40538 * config/aarch64/aarch64-cores.def: Add cortex-a72 and
40539 cortex-a72.cortex-a53.
40540 * config/aarch64/aarch64-tune.md: Regenerate.
40541 * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
40542
40543 2015-02-04 Nick Clifton <nickc@redhat.com>
40544
40545 * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
40546 inside a MEM.
40547
40548 2015-02-04 Jakub Jelinek <jakub@redhat.com>
40549
40550 * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
40551 (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
40552 (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
40553 of DEF_BUILTIN.
40554 (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
40555 BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
40556 DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
40557 (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
40558 BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
40559 BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
40560 DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
40561 * tree-core.h (enum built_in_function): In between
40562 BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
40563 for builtins that use DEF_BUILTIN_CHKP macro.
40564
40565 2015-02-04 Alexandre Oliva <aoliva@redhat.com>
40566
40567 PR debug/64817
40568 * cfgexpand.c (expand_debug_expr): Compute unsignedp from
40569 operands for tcc_comparison exprs. Fix typos.
40570
40571 PR debug/64817
40572 * simplify-rtx.c (simplify_binary_operation_1): Simplify one
40573 of two XORs that have an intervening AND or IOR.
40574
40575 PR debug/64817
40576 * simplify-rtx.c (simplify_binary_operation_1): Rewrite
40577 simplification of XOR of AND to not allocate new rtx before
40578 committing to a simplification.
40579
40580 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40581
40582 * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
40583 manual swaps in all peepholes.
40584
40585 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40586
40587 * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
40588 of manual swapping implementation.
40589 (aarch64_expand_vec_perm_const_1): Likewise.
40590
40591 2015-02-04 James Greenhalgh <james.greenhalgh@arm.com>
40592
40593 * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
40594 (generic_addrcost_table): Remove NAMED_PARAM.
40595 (cortexa57_addrcost_table): Likewise.
40596 (xgene1_addrcost_table): Likewise.
40597 (generic_regmove_table): Likewise.
40598 (cortexa53_regmove_table): Likewise.
40599 (xgene1_regmove_table): Likewise.
40600 (generic_vector_table): Likewise.
40601 (cortexa57_vector_table): Likewise.
40602 (xgene1_vector_table): Likewise.
40603 (generic_tunings): Likewise.
40604 (cortexa53_tunings): Likewise.
40605 (cortexa57_tunings): Likewise.
40606 (xgene1_tunings): Likewise.
40607
40608 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
40609
40610 * config/arm/arm-cores.def: Add cortex-a72 and
40611 cortex-a72.cortex-a53.
40612 * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
40613 * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
40614 * config/arm/arm-tune.md: Regenerate.
40615 * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
40616 "cortex-a72.cortex-a53".
40617 * doc/invoke.texi (ARM Options/-mtune): Likewise.
40618
40619 2015-02-04 Nick Clifton <nickc@redhat.com>
40620
40621 PR target/64408
40622 * config/fr30/predicates.md (di_operand): Add SUBREG to the list
40623 of accepted codes.
40624 (nonimmediate_di_operand): Likewise.
40625
40626 * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
40627 prefixes of known F5 using MSP430 MCUs.
40628
40629 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40630
40631 * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
40632 * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
40633 instead of __builtin_sqrt.
40634
40635 2015-02-04 Ilya Enkovich <ilya.enkovich@intel.com>
40636
40637 * varasm.c (do_assemble_alias): Follow transparent alias
40638 chain for target.
40639 (default_assemble_visibility): Follow transparent alias
40640 chain for decl name.
40641
40642 2015-02-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
40643
40644 PR middle-end/62103
40645 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
40646 to compute size of referenced value in the constant case.
40647
40648 2015-02-03 Jakub Jelinek <jakub@redhat.com>
40649
40650 PR rtl-optimization/64756
40651 * cse.c (invalidate_dest): New function.
40652 (cse_insn): Use it. If dest != SET_DEST (sets[i].rtl) and
40653 HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
40654 invalidate and do not record it.
40655
40656 2015-02-03 Oleg Endo <olegendo@gcc.gnu.org>
40657
40658 PR target/64660
40659 * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
40660 atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
40661 atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
40662 atomic_nand<mode>_soft_tcb): New insns.
40663 (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
40664 Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
40665 (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
40666 Split into atomic_not_fetchsi_hard if operands[0] is unused.
40667 (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
40668 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
40669 (atomic_fetch_not<mode>_hard): Convert to insn_and_split. Split into
40670 atomic_not<mode>_hard if operands[0] is unused.
40671 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
40672 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
40673 if operands[0] is unused.
40674 (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split. Split
40675 into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
40676 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
40677 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
40678 unused.
40679 (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split. Split
40680 into atomic_not<mode>_soft_tcb if operands[0] is unused.
40681 (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
40682 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
40683 if operands[0] is unused.
40684 (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split. Split
40685 into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
40686 (atomic_fetch_nandsi_hard): Convert to insn_and_split. Split into
40687 atomic_nand_fetchsi_hard if operands[0] is unused.
40688 (atomic_fetch_nand<mode>_hard): Convert to insn_and_split. Split into
40689 atomic_nand<mode>_hard if operands[0] is unused.
40690 (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split. Split
40691 into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
40692 (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split. Split
40693 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
40694 (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split. Split
40695 into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
40696 (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
40697 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
40698 (atomic_not_fetch<mode>_hard): Convert to insn_and_split. Split into
40699 atomic_not<mode>_hard if operands[0] is unused.
40700 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
40701 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
40702 unused.
40703 (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
40704 into atomic_not<mode>_soft_tcb if operands[0] is unused.
40705 (atomic_nand_fetch<mode>_hard): Convert to insn_and_split. Split into
40706 atomic_nand<mode>_hard if operands[0] is unused.
40707 (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
40708 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
40709
40710 2015-02-03 David Malcolm <dmalcolm@redhat.com>
40711
40712 PR jit/64810
40713 * Makefile.in (GCC_OBJS): Add gcc-main.o.
40714 * gcc-main.c: New file, containing "main" taken from gcc.c.
40715 * gcc.c (do_self_spec): Free decoded_options.
40716 (class driver): Move declaration to gcc.h.
40717 (main): Move declaration and implementation to new file
40718 gcc-main.c.
40719 (driver_get_configure_time_options): New function.
40720 * gcc.h (class driver): Move this declaration here, from
40721 gcc.c.
40722 (driver_get_configure_time_options): New declaration.
40723
40724 2015-02-03 Jan Hubicka <hubicka@ucw.cz>
40725
40726 * ipa-inline-analysis.c (simple_edge_hints): Fix check for
40727 cross-module inlining.
40728 * cgraph.h (cgraph_node): Add flag merged.
40729 * ipa-icf.c (sem_function::merge): Maintain it.
40730
40731 2015-02-03 Richard Sandiford <richard.sandiford@arm.com>
40732
40733 * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
40734 instead of OBJECT_P.
40735
40736 2015-02-03 Eric Botcazou <ebotcazou@adacore.com>
40737
40738 PR target/62631
40739 * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
40740 (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
40741 * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
40742 int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
40743
40744 2015-02-03 Jakub Jelinek <jakub@redhat.com>
40745
40746 PR other/63504
40747 * combine.c (reg_n_sets_max): New variable.
40748 (can_change_dest_mode, reg_nonzero_bits_for_combine,
40749 reg_num_sign_bit_copies_for_combine, get_last_value_validate,
40750 get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
40751 (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
40752 (rest_of_handle_combine): Initialize reg_n_sets_max.
40753
40754 2015-02-02 Jan Hubicka <hubicka@ucw.cz>
40755
40756 * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
40757 if some always_inline was inlined, apply changes before inlining
40758 heuristically.
40759
40760 2015-02-02 David Malcolm <dmalcolm@redhat.com>
40761
40762 PR jit/64810
40763 * config/arm/arm.c (arm_option_override): Set
40764 arm_selected_arch/cpu/tune to NULL on entry.
40765
40766 2015-02-02 Tejas Belagod <tejas.belagod@arm.com>
40767 Andrew Pinski <pinskia@gcc.gnu.org>
40768 Jakub Jelinek <jakub@gcc.gnu.org>
40769
40770 PR target/64231
40771 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
40772 integer typing for small model. Use IN_RANGE.
40773
40774 2015-02-02 Richard Biener <rguenther@suse.de>
40775
40776 * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
40777 * tree-vrp.c (vrp_valueize_1): Likewise.
40778
40779 2015-02-02 Alan Modra <amodra@gmail.com>
40780
40781 * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
40782 than mem for toc_restore.
40783 * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
40784 (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
40785 (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
40786
40787 2015-02-01 David Edelsohn <dje.gcc@gmail.com>
40788
40789 PR target/64047
40790 * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
40791 explicit default options.
40792
40793 2015-02-01 Jan Hubicka <hubicka@ucw.cz>
40794
40795 PR ipa/64872
40796 * ipa-utils.c (ipa_merge_profiles): Add release argument.
40797 * ipa-icf.c (sem_function::merge): Do not release body when merging.
40798 * ipa-utils.h (ipa_merge_profiles): Update prototype.
40799
40800 2015-02-01 Jakub Jelinek <jakub@redhat.com>
40801
40802 PR debug/64817
40803 * cfgexpand.c (deep_ter_debug_map): New variable.
40804 (avoid_deep_ter_for_debug): New function.
40805 (expand_debug_expr): If TERed SSA_NAME is in
40806 deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
40807 instead of trying to expand SSA_NAME's def stmt.
40808 (expand_debug_locations): When expanding debug bind
40809 of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
40810 temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
40811 value.
40812 (pass_expand::execute): Call avoid_deep_ter_for_debug on
40813 all debug bind stmts. Delete deep_ter_debug_map after
40814 expand_debug_location if non-NULL and clear it.
40815
40816 2015-02-01 Oleg Endo <olegendo@gcc.gnu.org>
40817
40818 PR target/64851
40819 * config/sh/sync.md (atomic_fetch_notsi_hard,
40820 atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
40821 atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
40822 atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
40823 atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
40824 atomic_not_fetch<mode>_soft_imask): New insns.
40825
40826 2015-02-01 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
40827
40828 * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
40829 (rank_for_schedule_debug): Split from ...
40830 (rank_for_schedule): ... this.
40831 (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
40832 * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
40833
40834 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
40835
40836 * doc/md.texi (Machine Constraints): Alphabetize table by target.
40837 * doc/extend.texi (x86 Variable Attributes): Move section to
40838 correct alphabetization after renaming.
40839 (x86 Type Attributes): Likewise.
40840 (Target Builtins): Re-alphabetize menu.
40841 (x86 Built-in Functions): Move section to correct alphabetization
40842 after renaming.
40843 (x86 transactional memory intrinsics): Likewise.
40844 * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
40845 and x86 Windows Options in table and menu.
40846 (x86 Options): Move section to correct alphabetization after
40847 renaming.
40848 (x86 Windows Options): Likewise.
40849
40850 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
40851
40852 * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
40853 preferred names of the architecture and its 32- and 64-bit
40854 variants.
40855 * doc/invoke.texi: Likewise.
40856 * doc/md.texi: Likewise.
40857
40858 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
40859
40860 PR target/64882
40861 * config/i386/predicates.md (address_no_seg_operand): Reject
40862 non-CONST_INT_P operands in invalid mode.
40863
40864 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
40865
40866 * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
40867 address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
40868 * config/i386/predicates.md (address_no_seg_operand): Call
40869 address_operand with VOIDmode.
40870 (vsib_address_operand): Ditto.
40871 (address_mpx_no_base_operand): Ditto.
40872 (address_mpx_no_index_operand): Ditto.
40873
40874 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
40875
40876 PR target/64688
40877 * lra-constraints.c (original_subreg_reg_mode): New.
40878 (simplify_operand_subreg): Try to simplify subreg of const. Use
40879 original_subreg_reg_mode for it.
40880 (swap_operands): Update original_subreg_reg_mode.
40881 (curr_insn_transform): Set up original_subreg_reg_mode.
40882
40883 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
40884
40885 PR target/64617
40886 * lra-constraints.c (prohibited_class_reg_set_mode_p): New
40887 function.
40888 (process_alt_operands): Use it.
40889 (curr_insn_transform): Check the optional reload pseudo class is
40890 ok for the mode.
40891
40892 2015-01-30 Joseph Myers <joseph@codesourcery.com>
40893
40894 * diagnostic.c (fatal_error (const char *, ...)): Remove function.
40895 * diagnostic-core.h (fatal_error (const char *, ...)): Remove
40896 prototype.
40897 * toplev.h (init_asm_output): Update comment on use of
40898 UNKNOWN_LOCATION with fatal_error.
40899 * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
40900 config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
40901 config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
40902 config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
40903 config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
40904 config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
40905 config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
40906 ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
40907 lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
40908 lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
40909 tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
40910 fatal_error changed to pass input_location as first argument.
40911
40912 2015-01-30 Martin Liska <mliska@suse.cz>
40913
40914 * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
40915 in #pragma GCC diagnostic guards.
40916
40917 2015-01-30 Richard Biener <rguenther@suse.de>
40918
40919 PR tree-optimization/64829
40920 * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
40921 not add a widening conversion pattern but hand off extra
40922 widenings to callers.
40923 (vect_recog_widen_mult_pattern): Handle extra widening produced
40924 by vect_handle_widen_op_by_const.
40925 (vect_recog_widen_shift_pattern): Likewise.
40926 (vect_pattern_recog_1): Remove excess vertical space in dumping.
40927 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
40928 (vect_init_vector_1): Likewise.
40929 (vect_get_vec_def_for_operand): Likewise.
40930 (vect_finish_stmt_generation): Likewise.
40931 (vectorizable_load): Likewise.
40932 (vect_analyze_stmt): Likewise.
40933 (vect_is_simple_use): Likewise.
40934
40935 2015-01-29 Jeff Law <law@redhat.com>
40936
40937 * combine.c (try_combine): Fix typo in comment.
40938
40939 2015-01-29 Segher Boessenkool <segher@kernel.crashing.org>
40940
40941 PR target/64580
40942 * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
40943 (rs6000_stack_info): Add assert.
40944 (rs6000_output_savres_externs): New function, split off from...
40945 (rs6000_output_function_prologue): ... here. Do not call it for
40946 thunks.
40947
40948 2015-01-29 Jeff Law <law@redhat.com>
40949
40950 PR target/15184
40951 * combine.c (try_combine): If I0 is a memory load and I3 a store
40952 to a related address, increase the "goodness" of doing a 4-insn
40953 combination with I0-I3.
40954 (make_field_assignment): Handle SUBREGs in the ior+and case.
40955
40956 2015-01-29 Yuri Rumyantsev <ysrumyan@gmail.com>
40957
40958 PR tree-optimization/64746
40959 * tree-if-conv.c (mask_exists): New function.
40960 (predicate_mem_writes): Save created mask with given size for further
40961 use.
40962 (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
40963 (ifcvt_repair_bool_pattern): Collect all statements that are root
40964 of bool pattern and use iterative algorithm to remove multiple uses
40965 of predicates, display number of required iterations.
40966
40967 2015-01-29 Richard Biener <rguenther@suse.de>
40968
40969 PR tree-optimization/64853
40970 * tree-vrp.c (vrp_valueize_1): Do not return anything if the
40971 stmt will get simulated again.
40972 * tree-ssa-ccp.c (valueize_op_1): Likewise.
40973
40974 2015-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40975
40976 * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
40977 return_in_pc. Remove redundant assignments.
40978 (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
40979 (arm_expand_epilogue): Don't compare boolean with true in if condition.
40980
40981 2015-01-29 Uros Bizjak <ubizjak@gmail.com>
40982
40983 * config/i386/i386.c (ix86_mode_after): Make static.
40984
40985 2015-01-29 Richard Biener <rguenther@suse.de>
40986
40987 PR tree-optimization/64844
40988 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
40989 dump cost model analysis.
40990 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
40991 Do not register adjusted load/store costs here.
40992
40993 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
40994 Uros Bizjak <ubizjak@gmail.com>
40995
40996 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
40997 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
40998 using x86_use_pseudo_pic_reg.
40999 * config/i386/i386.c (ix86_conditional_register_usage): Remove
41000 support for fixed PIC register.
41001 (ix86_use_pseudo_pic_reg): Not static any more.
41002
41003 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
41004
41005 PR middle-end/64805
41006 * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
41007 to avoid error in cgraph node verification.
41008
41009 2015-01-29 Marek Polacek <polacek@redhat.com>
41010
41011 * doc/standards.texi: Reflect that the default for C is gnu11.
41012
41013 2015-01-29 Kaz Kojima <kkojima@gcc.gnu.org>
41014
41015 PR target/64761
41016 * reorg.c (switch_text_sections_between_p): New function.
41017 (relax_delay_slots): Call it when testing if the jump insn
41018 is removable. Use targetm.can_follow_jump when testing if
41019 the conditional branch can follow an unconditional jump.
41020
41021 2015-01-27 Caroline Tice <cmtice@google.com>
41022
41023 Committing VTV Cywin/Ming patch for Patrick Wollgast
41024 * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
41025 if -fvtable-verify=preinit/std is used.
41026 * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
41027 * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
41028 * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
41029 if -fvtable-verify=preinit/std is used.
41030 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
41031 * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
41032 if -fvtable-verify=preinit/std is used.
41033 * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
41034 * config/i386/mingw32.h (LIB_SPEC): Likewise.
41035 * varasm.c (assemble_variable): Add code to properly set the comdat
41036 section and name for the .vtable_map_vars section in case the
41037 target is PE or COFF.
41038
41039 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
41040
41041 PR ipa/64801
41042 * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
41043 make sane BB profile.
41044 (cgraph_node::expand_thunk): Make sane BB profile.
41045 (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
41046 * cgraph.h (init_lowered_empty_function): Update prototype.
41047 * config/i386/i386.c (make_resolver_func): Update call.
41048 * predict.c (gate): Disable branch prediction pass if
41049 profile is already there.
41050
41051 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
41052
41053 * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
41054 * opth-gen.awk: Likewise.
41055 * common.opt: Mark flag_fp_contract_mode as Optimization.
41056
41057 2015-01-29 Bernd Edlinger <bernd.edlinger@hotmail.de>
41058
41059 * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
41060 * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
41061
41062 2015-01-28 Oleg Endo <olegendo@gcc.gnu.org>
41063
41064 PR target/64659
41065 * config/sh/predicates.md (atomic_arith_operand,
41066 atomic_logical_operand): Remove.
41067 * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
41068 (atomic_arith_operand_0): New predicate.
41069 (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
41070 Use atomic_arith_operand_0 for input values.
41071 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
41072 atomic_compare_and_swap<mode>_soft_gusa,
41073 atomic_compare_and_swap<mode>_soft_tcb,
41074 atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
41075 arith_reg_operand instead of register_operand.
41076 (atomic_exchange<mode>): Use arith_reg_dest for output value. Use
41077 atomic_arith_operand_0 for newval input.
41078 (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
41079 atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
41080 atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
41081 arith_reg_operand instead of register_operand.
41082 (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
41083 fetchop_predicate_1, fetchop_constraint_1_llcs,
41084 fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
41085 fetchop_constraint_1_imask): New code iterator attributes.
41086 (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
41087 register_operand. Use fetchop_predicate_1.
41088 (atomic_fetch_<fetchop_name>si_hard,
41089 atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
41090 register_operand. Use fetchop_predicate_1, fetchop_constraint_1_llcs.
41091 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
41092 and arith_reg_operand instead of register_operand. Use
41093 fetchop_predicate_1, fetchop_constraint_1_gusa.
41094 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
41095 and arith_reg_operand instead of register_operand. Use
41096 fetchop_predicate_1, fetchop_constraint_1_tcb. Adjust asm sequence
41097 to allow R0 usage.
41098 (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
41099 and arith_reg_operand instead of register_operand. Use
41100 fetchop_predicate_1, fetchop_constraint_1_imask. Adjust asm sequence
41101 to allow R0 usage.
41102 (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
41103 register_operand. Use atomic_logical_operand_1.
41104 (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
41105 atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
41106 arith_reg_operand instead of register_operand.
41107 (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
41108 Use arith_reg_dest and arith_reg_operand instead of register_operand.
41109 Use logical_operand and rK08. Adjust asm sequence to allow R0 usage.
41110 (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
41111 register_operand. Use fetchop_predicate_1.
41112 (atomic_<fetchop_name>_fetchsi_hard,
41113 atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
41114 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
41115 fetchop_constraint_1_llcs.
41116 (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
41117 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
41118 fetchop_constraint_1_gusa.
41119 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
41120 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
41121 fetchop_constraint_1_tcb. Adjust asm sequence to allow R0 usage.
41122 (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
41123 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
41124 fetchop_constraint_1_imask. Adjust asm sequence to allow R0 usage.
41125 (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
41126 register_operand. Use atomic_logical_operand_1.
41127 (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
41128 atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
41129 arith_reg_operand instead of register_operand.
41130 (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
41131 arith_reg_operand instead of register_operand. Use logical_operand
41132 and K08. Adjust asm sequence to allow R0 usage.
41133 (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
41134 arith_reg_operand instead of register_operand. Use logical_operand
41135 and K08.
41136
41137 2015-01-28 Jakub Jelinek <jakub@redhat.com>
41138
41139 PR other/63504
41140 * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
41141 Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
41142 (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
41143 only get_full_len HOST_WIDE_INTs from get_val () array rather than
41144 all bits in *val_wide.
41145
41146 2015-01-28 Jan Hubicka <hubicka@ucw.cz>
41147
41148 * varpool.c (tls_model_names): Fix names.
41149 (varpool_node::dump): Dump tls- prefix for tls models.
41150
41151 2015-01-28 Thomas Schwinge <thomas@codesourcery.com>
41152 Bernd Schmidt <bernds@codesourcery.com>
41153 Nathan Sidwell <nathan@codesourcery.com>
41154
41155 * config/nvptx/mkoffload.c: New file.
41156 * config/nvptx/t-nvptx: Add build rules for it.
41157 * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
41158 (extra_programs): Add mkoffload.
41159 * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
41160 function.
41161 (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
41162
41163 2015-01-28 Yuri Rumyantsev <ysrumyan@gmail.com>
41164
41165 PR middle-end/64809
41166 * cfgexpand.c (reorder_operands): Skip debug gimples.
41167
41168 2015-01-28 Ilya Enkovich <ilya.enkovich@intel.com>
41169
41170 PR tree-optimization/64277
41171 * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
41172 range info when possible to refine estimation.
41173
41174 2015-01-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
41175
41176 PR tree-optimization/64718
41177 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
41178 be a 16bit unsigned integer when n->range is 16.
41179 (bswap_replace): Convert src to that type if necessary for all bswap
41180 sizes. Fix rotation right notation in nearby comment. Use bswap_type
41181 set in pass_optimize_bswap::execute ().
41182
41183 2015-01-28 James Greenhalgh <james.greenhalgh@arm.com>
41184
41185 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
41186 * config/aarch64/aarch64-simd-builtins.def (abs): Split by
41187 integer and floating point variants.
41188 * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
41189
41190 2015-01-28 Robert Suchanek <robert.suchanek@imgtec.com>
41191
41192 * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
41193 for all vector modes.
41194
41195 2015-01-28 Jakub Jelinek <jakub@redhat.com>
41196
41197 PR bootstrap/64612
41198 * doc/sourcebuild.texi (comdat_group): Document.
41199
41200 2015-01-28 Terry Guo <terry.guo@arm.com>
41201
41202 * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
41203
41204 2015-01-27 David Malcolm <dmalcolm@redhat.com>
41205
41206 * toplev.c (print_version): Add param "show_global_state", and
41207 only print GGC and plugin information if it is true.
41208 (init_asm_output): Pass in "true" for the new param when calling
41209 print_version.
41210 (process_options): Likewise.
41211 (toplev::main): Likewise.
41212 * toplev.h (print_version): Add new param to decl.
41213
41214 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
41215
41216 PR ipa/60871
41217 PR ipa/64139
41218 * tree.c (lookup_binfo_at_offset): New function.
41219 (get_binfo_at_offset): Use it.
41220
41221 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
41222
41223 PR ipa/64282
41224 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
41225 on vtable being vtable.
41226
41227 2015-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
41228
41229 * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
41230 * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
41231 -mhotpatch= option.
41232 * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
41233 -mno-hotpatch options. Change syntax of -mhotpatch= option.
41234 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
41235 Renamed.
41236 (s390_hotpatch_trampoline_halfwords_max): Renamed.
41237 (s390_hotpatch_hw_max): New name.
41238 (s390_hotpatch_trampoline_halfwords): Renamed.
41239 (s390_hotpatch_hw_before_label): New name.
41240 (get_hotpatch_attribute): Removed.
41241 (s390_hotpatch_hw_after_label): New name.
41242 (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
41243 attribute.
41244 (s390_attribute_table): Ditto.
41245 (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
41246 (s390_function_num_hotpatch_hw): New name.
41247 Remove special handling of inline functions and hotpatching.
41248 Return number of nops before and after the function label.
41249 (s390_can_inline_p): Removed.
41250 (s390_asm_output_function_label): Emit a configurable number of nops
41251 after the function label.
41252 (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
41253 (TARGET_CAN_INLINE_P) Removed.
41254 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
41255
41256 2015-01-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
41257 Jiong Wang <jiong.wang@arm.com>
41258
41259 * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
41260 of scratch reg.
41261 (cb<optab><mode>1): Likewise.
41262 * config/aarch64/iterators.md (bcond): New define_code_attr.
41263
41264 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
41265
41266 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
41267 memory accesses.
41268
41269 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
41270
41271 * config/s390/s390.c (s390_register_move_cost): Increase costs for
41272 FPR->GPR moves.
41273
41274 2015-01-27 Richard Biener <rguenther@suse.de>
41275
41276 * tree-vrp.c (update_value_range): Intersect the range with
41277 old recorded SSA name range information.
41278
41279 2015-01-27 Nick Clifton <nickc@redhat.com>
41280
41281 * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
41282 BC, DE and HL registers directly, not via AX.
41283 When decrementing the stack pointer by a large amount, transfer SP
41284 into AX and perform the subtraction there.
41285 (rl78_expand_epilogue): Perform the inverse of the above
41286 enhancements.
41287
41288 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
41289
41290 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
41291
41292 2015-01-27 Jakub Jelinek <jakub@redhat.com>
41293 Yury Gribov <y.gribov@samsung.com>
41294
41295 PR ubsan/64741
41296 * ubsan.c (ubsan_source_location): Refactor code.
41297 (ubsan_type_descriptor): Update type size. Refactor code.
41298
41299 2015-01-27 Richard Biener <rguenther@suse.de>
41300
41301 PR tree-optimization/56273
41302 PR tree-optimization/59124
41303 PR tree-optimization/64277
41304 * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
41305 from the first VRP pass.
41306
41307 2015-01-27 Jakub Jelinek <jakub@redhat.com>
41308
41309 PR ipa/64776
41310 * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
41311 handle the first argument in the same loop as all the other arguments.
41312
41313 PR rtl-optimization/61058
41314 * jump.c (cleanup_barriers): Update basic block boundaries
41315 if BLOCK_FOR_INSN is non-NULL on PREV.
41316
41317 2015-01-27 Ilya Enkovich <ilya.enkovich@intel.com>
41318
41319 * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
41320 bounds narrowing, already instrumented calls and calls to
41321 not instrumentable functions.
41322
41323 2015-01-27 Jakub Jelinek <jakub@redhat.com>
41324
41325 PR tree-optimization/64807
41326 * wide-int.cc (wi::divmod_internal): Clear
41327 b_dividend[dividend_blocks_needed].
41328
41329 2015-01-26 DJ Delorie <dj@redhat.com>
41330
41331 * config/rl78/rl78.c (move_elim_pass): Don't optimize away
41332 volatile memory references.
41333
41334 2015-01-26 Oleg Endo <olegendo@gcc.gnu.org>
41335
41336 PR target/49263
41337 * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
41338 remove_insn.
41339 * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
41340 shifts if it already fits into K08.
41341
41342 2015-01-26 Jakub Jelinek <jakub@redhat.com>
41343
41344 PR ipa/64730
41345 * ipa-inline.c (inline_small_functions): Print "unknown" even
41346 if edge->call_stmt is non-NULL, but has builtins or unknown
41347 location.
41348
41349 PR middle-end/64421
41350 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
41351 with asterisk, skip the first character.
41352
41353 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
41354
41355 PR target/64806
41356 * config/i386/i386 (feature_priority): Revert the last P_POPCNT
41357 order change.
41358
41359 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
41360
41361 PR target/64795
41362 * config/i386/i386.md (*movdi_internal): Also check operand 0
41363 to determine TYPE_LEA operand.
41364 (*movsi_internal): Ditto.
41365
41366 2015-01-26 Jakub Jelinek <jakub@redhat.com>
41367
41368 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
41369 OPTION_MASK_QUAD_MEMORY_ATOMIC.
41370
41371 2015-01-26 Renlin Li <renlin.li@arm.com>
41372
41373 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
41374 the comment.
41375 * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
41376 for higher part.
41377
41378 2015-01-26 Richard Biener <rguenther@suse.de>
41379
41380 PR middle-end/64764
41381 * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
41382 combining two BIT_AND_EXPR predicates.
41383
41384 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
41385
41386 PR bootstrap/64754
41387 * tree-ssa-structalias.c (new_var_info): Initialize ruid.
41388
41389 2015-01-26 Terry Guo <terry.guo@arm.com>
41390
41391 * config/arm/arm.c (arm_file_start): Update the assignment of
41392 Tag_ABI_HardFP_use.
41393
41394 2015-01-25 James Greenhalgh <james.greenhalgh@arm.com>
41395
41396 * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
41397 pipeline model.
41398 config/arm/arm.md: Include the new Cortex-A57 model.
41399 (generic_sched): Don't use generic_sched when tuning for
41400 Cortex-A57.
41401
41402 2015-01-25 Allan Sandfeld Jensen <sandfeld@kde.org>
41403 Uros Bizjak <ubizjak@gmail.com>
41404
41405 * config/i386/i386.c (get_builtin_code_for_version): Add
41406 support for BMI and BMI2 multiversion functions.
41407
41408 2015-01-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
41409
41410 * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
41411 (extract_bit_field): Likewise.
41412 (extract_low_bits): Likewise.
41413 (expand_mult): Likewise.
41414 (expand_mult_highpart_adjust): Likewise.
41415
41416 2015-01-24 H.J. Lu <hongjiu.lu@intel.com>
41417
41418 * config/i386/driver-i386.c (host_detect_local_cpu): Check new
41419 Silvermont, Haswell, Broadwell and Knights Landing model numbers.
41420 * config/i386/i386.c (processor_model): Add
41421 M_INTEL_COREI7_BROADWELL.
41422 (arch_names_table): Add "broadwell".
41423
41424 2015-01-24 Oleg Endo <olegendo@gcc.gnu.org>
41425
41426 PR target/49263
41427 PR target/53987
41428 PR target/64345
41429 PR target/59533
41430 PR target/52933
41431 PR target/54236
41432 PR target/51244
41433 * config/sh/sh-protos.h
41434 (sh_extending_set_of_reg::can_use_as_unextended_reg,
41435 sh_extending_set_of_reg::use_as_unextended_reg,
41436 sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
41437 sh_is_movrt_insn, sh_insn_operands_modified_between_p,
41438 sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
41439 sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
41440 (sh_treg_insns): New class.
41441 * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
41442 (scope_counter): New class.
41443 (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
41444 sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
41445 sh_extending_set_of_reg::can_use_as_unextended_reg,
41446 sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
41447 sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
41448 sh_split_treg_set_expr): New functions.
41449 (addsubcosts): Handle treg_set_expr.
41450 (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
41451 (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
41452 (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
41453 (sh_insn_operands_modified_between_p): Make non-static.
41454 * config/sh/predicates.md (zero_extend_movu_operand): Allow
41455 simple_mem_operand in addition to displacement_mem_operand.
41456 (zero_extend_operand): Don't allow zero_extend_movu_operand.
41457 (treg_set_expr, treg_set_expr_not_const01,
41458 arith_reg_or_treg_set_expr): New predicates.
41459 * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
41460 arith_or_int_operand instead of logical_operand. Convert to
41461 insn_and_split. Try to optimize constant operand in splitter.
41462 (tsthi_t, tstqi_t): Fold into *tst<mode>_t. Convert to insn_and_split.
41463 (*tstqi_t_zero): Delete.
41464 (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
41465 (tstsi_t_and_not): Delete.
41466 (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
41467 Convert to insn_and_split.
41468 (unnamed split, tstsi_t_zero_extract_xor,
41469 tstsi_t_zero_extract_subreg_xor_little,
41470 tstsi_t_zero_extract_subreg_xor_big): Delete.
41471 (*tstsi_t_shift_mask): New insn_and_split.
41472 (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
41473 to recombine with surrounding insns when splitting.
41474 (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
41475 (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
41476 (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
41477 *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
41478 (*cbranch_div0s: Delete.
41479 (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
41480 Try to recombine with surrounding insns when splitting. Add operand
41481 order variants.
41482 (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
41483 (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
41484 *addc_r_r_msb, *addc_2r_msb): Delete.
41485 (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand
41486 order variant.
41487 (*addc_negreg_t): New insn_and_split.
41488 (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
41489 Try to recombine with surrounding insns when splitting.
41490 Add operand order variants.
41491 (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
41492 insn_and_split patterns.
41493 (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with
41494 surrounding insns when splitting.
41495 (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
41496 (*rotcl): Likewise. Add zero_extract variant.
41497 (*ashrsi2_31): New insn_and_split.
41498 (*negc): Convert to insn_and_split. Use treg_set_expr.
41499 (*zero_extend<mode>si2_disp_mem): Update comment.
41500 (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
41501 condition.
41502 (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine
41503 with surrounding insns when splitting.
41504 (any_treg_expr_to_reg): New insn_and_split.
41505 (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
41506 *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
41507 *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
41508 *zero_extract_2): New single bit zero extract patterns.
41509 (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
41510 (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
41511 *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
41512 *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
41513 set destination.
41514 (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
41515 register_operand for set source.
41516
41517 2015-01-23 Jan Hubicka <hubicka@ucw.cz>
41518
41519 * i386.opt (prefetch_sse): New targetsave.
41520 * i386.c (ix86_function_specific_save): Save prefetch_sse.
41521 (ix86_function_specific_restore): Restore prefetch_sse and initialize
41522 ix86_cost/ix86_tune_cost.
41523
41524 2015-01-23 David Malcolm <dmalcolm@redhat.com>
41525
41526 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
41527 Support the JIT by using 0 as the language type.
41528
41529 2015-01-23 Vladimir Makarov <vmakarov@redhat.com>
41530
41531 PR target/64317
41532 * lra-lives.c (make_hard_regno_born): Add parameter. Don't make
41533 REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
41534 (mark_regno_live, process_bb_lives): Pass new parameter value to
41535 make_hard_regno_born.
41536
41537 2015-01-23 Jakub Jelinek <jakub@redhat.com>
41538
41539 PR rtl-optimization/63637
41540 PR rtl-optimization/60663
41541 * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
41542 if elt->cost is MAX_COST for ASM_OPERANDS.
41543 (find_sets_in_insn): Fix up comment typo.
41544 (cse_insn): Don't set src_volatile for all non-volatile
41545 ASM_OPERANDS in PARALLELs, but just those with multiple outputs
41546 or with "memory" clobber. Set elt->cost to MAX_COST
41547 for ASM_OPERANDS in PARALLEL. Set src_elt->cost to MAX_COST
41548 if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
41549
41550 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
41551
41552 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
41553 alternative 1.
41554
41555 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
41556
41557 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
41558 libgcc/config/i386/elf-lib.h.
41559
41560 2015-01-23 Jakub Jelinek <jakub@redhat.com>
41561
41562 PR driver/64737
41563 * gcc.c (print_configuration): Don't print a blank line at the end
41564 here...
41565 (run_attempt): ... but here unstead.
41566
41567 PR middle-end/64734
41568 * omp-low.c (scan_sharing_clauses): Don't ignore
41569 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
41570 on target data/update constructs.
41571
41572 2015-01-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
41573
41574 PR target/50928
41575 * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
41576 (DEBUG_RELOAD): Removed define.
41577 (m32c_limit_reload_class): Enable traces with if DEBUG0.
41578 (m32c_function_arg): Added a type cast.
41579 (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
41580 * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
41581 * config/m32c/bitops.md (andqi3_16): Likewise.
41582 * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
41583 (push_a01_l): Likewise.
41584
41585 2015-01-23 David Malcolm <dmalcolm@redhat.com>
41586
41587 PR jit/64721
41588 * main.c (main): Construct toplev instances with init_signals=true.
41589 * toplev.c (general_init): Add param "init_signals", and use it to
41590 conditionalize the calls to signal and host_hooks.extra_signals.
41591 (toplev::toplev): Add param "init_signals".
41592 (toplev::main): When invoking general_init, pass m_init_signals
41593 to control whether signal-handlers are installed.
41594 * toplev.h (toplev::toplev): Add param "init_signals".
41595 (toplev::m_init_signals): New field.
41596
41597 2015-01-23 David Malcolm <dmalcolm@redhat.com>
41598
41599 PR jit/64722
41600 * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
41601 NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
41602 latter may be affected by the former (e.g. on i686).
41603
41604 2015-01-23 Martin Liska <mliska@suse.cz>
41605
41606 * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
41607 false positive during profiledbootstrap.
41608
41609 2015-01-23 Tom de Vries <tom@codesourcery.com>
41610
41611 PR libgomp/64672
41612 * lto-opts.c (lto_write_options): Output non-explicit conservative
41613 -fno-openacc.
41614 * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
41615 (append_compiler_options): Pass -fopenacc through.
41616
41617 2015-01-23 Tom de Vries <tom@codesourcery.com>
41618
41619 PR libgomp/64707
41620 * lto-opts.c (lto_write_options): Output non-explicit conservative
41621 -fno-openmp.
41622 * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
41623 (append_compiler_options): Pass -fopenmp through.
41624
41625 2015-01-23 Jakub Jelinek <jakub@redhat.com>
41626
41627 PR debug/64511
41628 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
41629 GTY markup.
41630
41631 * diagnostic-core.h (internal_error_no_backtrace): New prototype.
41632 * diagnostic.def (DK_ICE_NOBT): New kind.
41633 * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
41634 like DK_ICE, but never print backtrace.
41635 (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
41636 (internal_error_no_backtrace): New function.
41637 * gcc.c (execute): Use internal_error_no_backtrace instead of
41638 internal_error.
41639
41640 2015-01-22 Jeff Law <law@redhat.com>
41641
41642 PR target/52076
41643 * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
41644 improve code density for small immediate to memory case.
41645 (insv): Better handle bitfield assignments when the field is
41646 being set to all ones.
41647 * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
41648 operand predicate.
41649
41650 2015-01-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
41651 Jakub Jelinek <jakub@redhat.com>
41652
41653 PR middle-end/64729
41654 * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
41655 for !TARGET_LIBC_PROVIDES_SSP version and
41656 -fstack-protector-{all,strong,explicit} otherwise.
41657 * config/freebsd.h (LINK_SSP_SPEC): Handle
41658 -fstack-protector-{strong,explicit}.
41659
41660 2015-01-22 Jan Hubicka <hubicka@ucw.cz>
41661 H.J. Lu <hongjiu.lu@intel.com>
41662
41663 PR ipa/64694
41664 * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
41665 heap.
41666
41667 2015-01-22 Wei Mi <wmi@google.com>
41668
41669 PR rtl-optimization/64557
41670 * dse.c (record_store): Call get_addr for mem_addr.
41671 (check_mem_read_rtx): Likewise.
41672
41673 2015-01-22 Eric Botcazou <ebotcazou@adacore.com>
41674
41675 * fold-const.c (const_binop): Add early return for non-tcc_binary.
41676
41677 2015-01-22 Chen Gang <gang.chen.5i5j@gmail.com>
41678
41679 * toplev.c (init_local_tick): Process the failure when read
41680 fails for random_seed.
41681
41682 * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
41683 'pretty_name' to avoid memory overflow.
41684
41685 2015-01-22 Richard Biener <rguenther@suse.de>
41686
41687 PR middle-end/64728
41688 * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
41689 abnormal coalescing on undefined SSA names.
41690
41691 2015-22-01 Uros Bizjak <ubizjak@gmail.com>
41692
41693 PR target/64688
41694 PR target/64477
41695 * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
41696 for alternative 3.
41697 (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
41698
41699 2015-01-22 Trevor Saunders <tsaunders@mozilla.com>
41700
41701 PR middle-end/63325
41702 * fold-const.c (fold_checksum_tree): Don't include value of
41703 expr->decl_with_vis.symtab_node in the checksum.
41704
41705 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
41706
41707 * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
41708
41709 2015-01-22 Max Ostapenko <m.ostapenko@partner.samsung.com>
41710
41711 PR driver/64690
41712 * gcc.c (insert_comments): New function.
41713 (try_generate_repro): Call it.
41714 (append_text): Removed.
41715
41716 2015-01-22 Richard Biener <rguenther@suse.de>
41717
41718 * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
41719 with IL incompatible options. Properly honor user optimize
41720 attributes.
41721
41722 2015-01-21 Segher Boessenkool <segher@kernel.crashing.org>
41723
41724 PR rtl-optimization/64682
41725 * combine.c (distribute_notes): When moving a death note for
41726 a register that is set in the new I2, make sure to put it
41727 before that new I2.
41728
41729 2015-01-21 David Edelsohn <dje.gcc@gmail.com>
41730
41731 * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
41732 not TARGET_DEFAULT.
41733
41734 2015-01-21 Jakub Jelinek <jakub@redhat.com>
41735
41736 PR debug/64511
41737 * simplify-rtx.c (simplify_relational_operation_1): Don't try to
41738 optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
41739 into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
41740
41741 PR sanitizer/64706
41742 * doc/invoke.texi (-fsanitize=vptr): Document.
41743
41744 PR rtl-optimization/62078
41745 * dse.c: Include cfgcleanup.h.
41746 (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
41747 anything call purge_all_dead_edges and cleanup_cfg at the end
41748 of the pass.
41749
41750 2015-01-21 Jan Hubicka <hubicka@ucw.cz>
41751
41752 * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
41753 edges.
41754
41755 2015-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
41756
41757 * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
41758 decl attribute.
41759
41760 2015-01-21 David Sherwood <david.sherwood@arm.com>
41761 Tejas Belagod <Tejas.Belagod@arm.com>
41762
41763 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
41764 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
41765 * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
41766 Removed.
41767
41768 2015-01-21 David Sherwood <david.sherwood@arm.com>
41769 Tejas Belagod <Tejas.Belagod@arm.com>
41770
41771 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
41772 (aarch64_reverse_mask): New decls.
41773 * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
41774 (insn_count): New mode_attr.
41775 * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
41776 (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
41777 (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
41778 (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
41779 (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
41780 (aarch64_simd_st4): New patterns.
41781 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
41782 (aarch64_reverse_mask): New functions.
41783
41784 2015-01-21 Alan Hayward <alan.hayward@arm.com>
41785
41786 * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
41787 Declare.
41788 * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
41789 addressing modes for BE.
41790 (aarch64_print_operand): Add 'R' specifier.
41791 (aarch64_simd_disambiguate_copy): Delete.
41792 (aarch64_simd_emit_reg_reg_move): New function.
41793 * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
41794 in define_splits for structural moves.
41795 (mov<mode>): Use less restrictive predicates.
41796 (*aarch64_mov<mode>): Simplify and only allow for LE.
41797 (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
41798
41799 2015-01-21 Alan Hayward <alan.hayward@arm.com>
41800
41801 * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
41802
41803 2015-01-21 Richard Henderson <rth@redhat.com>
41804
41805 PR target/64669
41806 * ccmp.c (used_in_cond_stmt_p): Remove.
41807 (expand_ccmp_expr): Don't use it.
41808
41809 2015-01-21 Nick Clifton <nickc@redhat.com>
41810
41811 * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
41812 PARALLELs.
41813
41814 2015-01-21 Richard Biener <rguenther@suse.de>
41815
41816 PR middle-end/64313
41817 * tree-core.h (builtin_info, builtin_info_type): Turn from
41818 an object with two arrays into an array of an object with
41819 decl and two flags, implicit_p and declared_p.
41820 * tree.h (builtin_decl_explicit, builtin_decl_implicit,
41821 set_builtin_decl, set_builtin_decl_implicit_p,
41822 builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
41823 (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
41824 * builtins.c (builtin_info): Adjust.
41825 * gimplify.c (gimplify_addr_expr): References to builtins
41826 that have been declared by the user makes them eligible for
41827 use by the compiler. Call set_builtin_decl_implicit_p on them.
41828
41829 2015-01-20 Jeff Law <law@redhat.com>
41830
41831 PR target/59946
41832 * config/m68k/m68k.md (Comparison expanders and patterns): Do not
41833 allow pc-relative addresses in operand predicates or constraints.
41834
41835 2015-01-21 Bin Cheng <bin.cheng@arm.com>
41836
41837 * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
41838 neon on aarch32 processors for stringops.
41839
41840 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
41841
41842 PR ipa/63576
41843 * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
41844
41845 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
41846
41847 PR lto/45375
41848 * ipa-inline.c: Include lto-streamer.h
41849 (report_inline_failed_reason): Output source file differences and
41850 flags on optimization/target node mismatch.
41851 (can_inline_edge_p): Consider caller to be the outer inline function;
41852 be less restrictive about matching opimize and optimize_size attributes.
41853 (inline_account_function_p): Break out from ...
41854 (inline_small_functions): ... here.
41855 * ipa-inline-transform.c (clone_inlined_nodes): Use
41856 inline_account_function_p.
41857 (inline_call): Use optimize attribution; use inline_account_function_p.
41858 (inline_transform): Use opt_for_fn.
41859 * ipa-inline.h (inline_account_function_p): Declare.
41860
41861 2015-01-20 Jakub Jelinek <jakub@redhat.com>
41862
41863 PR debug/64663
41864 * dwarf2out.c (decl_piece_node): Don't put bitsize into
41865 mode if bitsize <= 0.
41866 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
41867 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
41868 sizes and positions.
41869
41870 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
41871
41872 * config/nios2/nios2.c (nios2_asm_file_end): Implement
41873 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
41874 needed.
41875 (TARGET_ASM_FILE_END): Define.
41876
41877 2015-01-20 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
41878
41879 * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
41880 (struct tune_params): Use the enum.
41881 * arm.c (arm_*_tune): Update.
41882 (arm_option_override): Update.
41883
41884 2015-01-20 Richard Biener <rguenther@suse.de>
41885
41886 PR ipa/64684
41887 * ipa-reference.c (add_static_var): Inline ...
41888 (analyze_function): ... here after splitting out from ...
41889 (is_proper_for_analysis): ... this.
41890
41891 2015-01-20 Matthew Wahab <matthew.wahab@arm.com>
41892
41893 PR target/64149
41894 * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
41895 * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
41896 replace the conditional with it's true branch.
41897 * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
41898 (arm_lra_p): Remove.
41899
41900 2015-01-20 Eric Botcazou <ebotcazou@adacore.com>
41901
41902 * config/visium/visium.h (LIB_SPEC): Adjust in default case.
41903
41904 2015-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
41905
41906 * config/tilegx/mul-tables.c: Move symtab.h include after
41907 coretypes.h include.
41908 * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
41909 vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
41910 flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
41911 wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
41912 explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
41913
41914 2015-01-20 Igor Zamyatin <igor.zamyatin@intel.com>
41915
41916 PR bootstrap/64676
41917 Revert:
41918 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
41919
41920 PR rtl-optimization/64081
41921 * loop-iv.c (def_pred_latch_p): New function.
41922 (latch_dominating_def): Allow specific cases with non-single
41923 definitions.
41924 (iv_get_reaching_def): Likewise.
41925 (check_complex_exit_p): New function.
41926 (check_simple_exit): Use check_complex_exit_p to allow certain cases
41927 with exits not executing on any iteration.
41928
41929 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
41930
41931 PR lto/45375
41932 * i386.c (ix86_option_override_internal): Use ix86_tune_cost
41933 to set branch cost.
41934
41935 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
41936
41937 PR lto/45375
41938 * i386.c (gate): Check flag_expensive_optimizations and
41939 optimize_size.
41940 (ix86_option_override_internal): Drop optimize_size condition
41941 on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
41942 MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
41943 MASK_PREFER_AVX128.
41944 (ix86_avx256_split_vector_move_misalign,
41945 ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
41946 * sse.md (all uses of TARGET_PREFER_AVX128): Add
41947 optimize_insn_for_speed_p check.
41948
41949 2015-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
41950
41951 * config/mips/mips.h (FP_ASM_SPEC): New define.
41952 (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
41953 instead.
41954
41955 2015-01-19 Oleg Endo <olegendo@gcc.gnu.org>
41956
41957 PR target/53988
41958 * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
41959 nullptr for insn when reaching the first insn.
41960 * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
41961 (sh_insn_operands_modified_between_p): Add nullptr check.
41962 (sh_find_extending_set_of_reg): Fix log message. Don't accept
41963 sign extending mem load if the insn contains any UNSPEC or
41964 UNSPEC_VOLATILE.
41965
41966 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
41967
41968 * params.def (inline-unit-growth): Drop to 15%.
41969 * invoke.texi (inline-unit-growth): Document change.
41970
41971 2015-01-19 Martin Liska <mliska@suse.cz>
41972
41973 PR ipa/64668
41974 * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
41975 function for second argument of OBJ_TYPE_REF.
41976
41977 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
41978
41979 PR ipa/64218
41980 * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
41981 whether function is an alias.
41982
41983 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
41984
41985 * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
41986 cases.
41987
41988 2015-01-19 Vladimir Makarov <vmakarov@redhat.com>
41989
41990 PR rtl-optimization/64671
41991 * lra-remat.c (operand_to_remat): Don't consider jump and call
41992 insns.
41993
41994 2015-01-19 David Edelsohn <dje.gcc@gmail.com>
41995
41996 PR target/59828
41997 * config/rs6000/default64.h: Include rs6000-cpus.def.
41998 (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
41999 (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
42000 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
42001 and POWER8.
42002 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
42003 POWER8.
42004 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
42005 pseudo-op to specify assembler dialect.
42006
42007 2015-01-19 Martin Liska <mliska@suse.cz>
42008
42009 PR ipa/64664
42010 * ipa-icf.c (sem_item_optimizer::filter_removed_items):
42011 Handle safe potentially removed nodes during filtering.
42012
42013 2015-01-19 Martin Liska <mliska@suse.cz>
42014
42015 * doc/extend.texi (no_icf): Add new attribute description.
42016 * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
42017 where the pass attempts to merge a function with no_icf attribute.
42018
42019 2015-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
42020
42021 PR target/64532
42022 * doc/md.texi (ARM Options): Document register constraints.
42023
42024 2015-01-19 Jiong Wang <jiong.wang@arm.com>
42025 Andrew Pinski <apinski@cavium.com>
42026
42027 PR target/64304
42028 * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
42029 (ashl<mode>3): Don't expand if operands[2] is not constant.
42030
42031 2015-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42032
42033 PR target/64448
42034 * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
42035 Match xor-and-xor RTL pattern.
42036
42037 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
42038
42039 PR rtl-optimization/64081
42040 * loop-iv.c (def_pred_latch_p): New function.
42041 (latch_dominating_def): Allow specific cases with non-single
42042 definitions.
42043 (iv_get_reaching_def): Likewise.
42044 (check_complex_exit_p): New function.
42045 (check_simple_exit): Use check_complex_exit_p to allow certain cases
42046 with exits not executing on any iteration.
42047
42048 2015-01-19 Jakub Jelinek <jakub@redhat.com>
42049
42050 * common.opt (fgraphite): Fix a typo.
42051
42052 2015-01-19 Felix Yang <felix.yang@huawei.com>
42053
42054 * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
42055 pattern.
42056 * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
42057 uminp, smax_nanp, smin_nanp): New builtins.
42058 * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
42059 vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
42060 vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
42061 vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
42062 vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
42063 vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
42064 vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
42065 vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
42066 vpminnms_f32): Rewrite using builtin functions.
42067
42068 2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
42069
42070 PR libgomp/64625
42071 * omp-low.c (offload_symbol_decl): Remove variable.
42072 (get_offload_symbol_decl): Remove function.
42073 (expand_omp_target): For BUILT_IN_GOMP_TARGET,
42074 BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
42075 instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
42076 BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
42077 BUILT_IN_GOACC_UPDATE don't pass it at all.
42078
42079 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
42080
42081 * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
42082 callers.
42083
42084 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
42085
42086 * ipa-chkp.c (chkp_produce_thunks): Add early param
42087 to split thunks production into two passes. Keep
42088 'always_inline' function bodies after the first pass.
42089 (pass_data_ipa_chkp_early_produce_thunks): New.
42090 (pass_ipa_chkp_early_produce_thunks): New.
42091 (pass_ipa_chkp_produce_thunks::execute): Adjust to new
42092 chkp_produce_thunks signature.
42093 (make_pass_ipa_chkp_early_produce_thunks): New.
42094 * passes.def (pass_ipa_chkp_early_produce_thunks): New.
42095 (pass_ipa_chkp_produce_thunks): Move after local optimizations.
42096 * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
42097
42098 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
42099
42100 * cgraph.c (cgraph_node::dump): Dump profile flags.
42101
42102 2015-01-18 Oleg Endo <olegendo@gcc.gnu.org>
42103
42104 PR target/64652
42105 * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
42106 reg appear first in the parallel.
42107
42108 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
42109
42110 * ipa-reference.c (set_reference_optimization_summary,
42111 ipa_reference_get_not_written_global): Do nothing if ipa-reference is
42112 disabled.
42113 (ignore_module_statics): New static var.
42114 (propagate_bits): If ipa-reference is disabled, do not look into local
42115 properties.
42116 (analyze_function): Disable analysis when ipa_reference is disabled.
42117 (generate_summary): Do not dump when reference is disabled;
42118 collect vars accessed from functions with ipa-reference disabled.
42119 (get_read_write_all_from_node): When ipa-reference is disabled, use the
42120 node flags.
42121 (gate): Enable for LTO.
42122 (ignore_edge_p): New function.
42123 (propagate): Skip functions w/o ipa-reference analysis.
42124 * optc-save-gen.awk: Handle optimize_debug correctly.
42125 * opth-gen.awk: Likewise.
42126 * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
42127 fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
42128 fira-share-save-slots, fira-share-spill-slots,
42129 fmodulo-sched-allow-regmoves, fpartial-inlining,
42130 sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
42131 ftracer, ftree-parallelize-loops, fassociative-math,
42132 freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
42133 Optimization
42134 (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
42135 ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
42136 Optimization.
42137 * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
42138 Fix for IPA.
42139
42140 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
42141
42142 PR ipa/64378
42143 * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
42144 flag correctly.
42145 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
42146
42147 2015-01-18 Sandra Loosemore <sandra@codesourcery.com>
42148
42149 * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
42150 Remove duplicate option listings.
42151
42152 2015-01-18 Felix Yang <felix.yang@huawei.com>
42153
42154 * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
42155 (autofdo_source_profile::get_callsite_total_count,
42156 function_instance::get_function_instance_by_decl,
42157 string_table::get_index, string_table::get_index_by_decl,
42158 afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
42159 Fix comment typos. Reformatting and minor code rearrangement.
42160
42161 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
42162
42163 * config/rs6000/rs6000.md (probe_stack): Delete.
42164 (probe_stack_address): New.
42165
42166 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
42167
42168 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
42169 to test for 32-bit ABIs, not !TARGET_POWERPC64.
42170
42171 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
42172
42173 * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
42174 (rs6000_function_value): Use it. Handle SCmode and TCmode as well,
42175 for TARGET_32BIT && TARGET_POWERPC64. Fix another BITS_PER_WORD
42176 snafu.
42177 (rs6000_libcall_value): Use the new function.
42178
42179 2015-01-17 Sandra Loosemore <sandra@codesourcery.com>
42180
42181 * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
42182
42183 2015-01-17 Eric Botcazou <ebotcazou@adacore.com>
42184
42185 * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
42186 implement a more precise life analysis for it during backward scan.
42187
42188 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
42189
42190 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
42191
42192 2015-01-17 Bernd Schmidt <bernds@codesourcery.com>
42193
42194 PR rtl-optimization/52773
42195 * calls.c (emit_library_call_value): When pushing arguments use
42196 stack_pointer_rtx rather than virtual_outgoing_args_rtx in
42197 CALL_INSN_FUNCTION_USAGE. Only emit one of use of the magic
42198 stack pointer reference into CALL_INSN_FUNCTION_USAGE.
42199
42200 2015-01-17 Jeff Law <law@redhat.com>
42201
42202 PR rtl-optimization/32790
42203 * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
42204 not ZERO_EXTEND in SET_DESTs.
42205
42206 2015-01-17 Alan Modra <amodra@gmail.com>
42207
42208 * cprop.c (do_local_cprop): Revert last change.
42209
42210 2015-01-16 DJ Delorie <dj@redhat.com>
42211 Nick Clifton <nickc@redhat.com>
42212
42213 * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
42214 (addhi3_real): Likewise. Fix [HL+0] syntax.
42215 (subqi3_real): Likewise.
42216 (subhi3_real): Likewise.
42217 (cbranchqi4_real): Likewise. Allow saddr,#imm.
42218 (cbranchhi4_real): Likewise.
42219 (cbranchhi4_real_inverted): Likewise.
42220 (cbranchsi4_real_lt): Likewise.
42221 (cbranchsi4_real_ge): Likewise.
42222 (cbranchsi4_real_ge): Likewise.
42223 * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
42224 (sub<mode>3_virt): Likewise.
42225 (cbranchqi4_virt): Likewise.
42226 (cbranchhi4_virt): Likewise.
42227 * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
42228 always use '[reg+imm]' even when imm is zero.
42229 * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
42230 (rl78_general_operand): New.
42231 (rl78_nonimmediate_operand): New.
42232 (rl78_nonfar_operand): Use them.
42233 (rl78_nonfar_nonimm_operand): Likewise.
42234 (rl78_stack_based_mem): Fix.
42235 * config/rl78/constraints.md (Ibqi): New.
42236 (IBqi): New.
42237 (Wsa): New.
42238 (Wsf): New.
42239 (Cs1): Fix.
42240 * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
42241 (iorqi3): Likewise.
42242 (xorqi3): Likewise.
42243 * config/rl78/rl78-protos.h (rl78_sfr_p): New.
42244
42245 * config/rl78/constrains (Qs8): New constraint.
42246 * config/rl78/rl78.c (rl78_flags_already_set): New function.
42247 * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
42248 * config/rl78/rl78-real.md (update_Z): New attribute.
42249 Update patterns to set it.
42250 (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
42251 shorter compare and branch sequence can be used.
42252 (cbranchhi4_real): Likewise.
42253 (cbranchhi4_real_inverted): Likewise.
42254
42255 * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
42256 * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
42257 address space.
42258 * config/rl78/rl78.c (rl78_get_name_encoding): New.
42259 (rl78_option_override): Allow -mes0 only if C.
42260 (characterize_address): Support subregs of symbol_refs.
42261 (rl78_addr_space_address_mode): Move. Add __near.
42262 (rl78_far_p): Likewise.
42263 (rl78_addr_space_pointer_mode): Likewise.
42264 (rl78_as_legitimate_address): Likewise.
42265 (rl78_addr_space_subset_p): Likewise.
42266 (rl78_addr_space_convert): Likewise.
42267 (rl78_print_operand_1): Support 16-bit addressing of 32-bit
42268 symbols with -mes0.
42269 (transcode_memory_rtx): Don't copy ES if -mes0. Allow symbol[BC]
42270 addressing.
42271 (rl78_alloc_physical_registers_op1): Change logic to prefer
42272 symbol[BC] addressing.
42273 (frodata_section): New.
42274 (rl78_asm_init_sections): Initialize it.
42275 (rl78_select_section): Put __far readonly symbols in .frodata.
42276 (rl78_make_type_far): New.
42277 (rl78_insert_attributes): Force all readonly symbols to be
42278 __far when -mes0.
42279 (rl78_asm_out_integer): New.
42280 * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
42281 * config/rl78/rl78.opt (-mes0): New.
42282
42283 * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
42284 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
42285 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
42286 * config/rl78/rl78-protos.h (rl78_output_labelref): New.
42287 (rl78_saddr_p): New.
42288 (rl78_output_aligned_common): New.
42289 * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
42290 (rl78_handle_saddr_attribute): New.
42291 (rl78_handle_naked_attribute): New.
42292 (rl78_attribute_table): Add saddr.
42293 (rl78_print_operand_1): Don't print '!' on saddr operands.
42294 (rl78_print_operand_1): Strip encodings.
42295 (rl78_sfr_p): New.
42296 (rl78_strip_name_encoding): New.
42297 (rl78_attrlist_to_encoding): New.
42298 (rl78_encode_section_info): New.
42299 (rl78_asm_init_sections): New.
42300 (rl78_select_section): New.
42301 (rl78_output_labelref): New.
42302 (rl78_output_aligned_common): New.
42303 (rl78_asm_out_integer): New.
42304 (rl78_asm_ctor_dtor): New.
42305 (rl78_asm_constructor): New.
42306 (rl78_asm_destructor): New.
42307
42308 * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
42309 * config/rl78/rl78.c (rl78_expand_epilogue): Update.
42310 (transcode_memory_rtx): Update.
42311 (rl78_expand_epilogue): Use A_REG instead of 0.
42312
42313 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
42314
42315 * config/arm/arm-protos.h (struct tune_params): New field
42316 sched_autopref_queue_depth.
42317 * config/arm/arm.c (sched-int.h): Include header.
42318 (arm_first_cycle_multipass_dfa_lookahead_guard,)
42319 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
42320 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
42321 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
42322 (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
42323 (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
42324 (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
42325 (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
42326 Specify sched_autopref_queue_depth value. Enabled for A15 and A57.
42327 * config/arm/t-arm (arm.o): Update.
42328 * haifa-sched.c (update_insn_after_change): Update.
42329 (rank_for_schedule): Use auto-prefetcher model, if requested.
42330 (autopref_multipass_init): New static function.
42331 (autopref_rank_for_schedule): New rank_for_schedule heuristic.
42332 (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
42333 variable for debug dumps.
42334 (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
42335 (autopref_multipass_dfa_lookahead_guard): New global function that
42336 implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
42337 (init_h_i_d): Update.
42338 * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
42339 * sched-int.h (enum autopref_multipass_data_status): New const enum.
42340 (autopref_multipass_data_): Structure for auto-prefetcher data.
42341 (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
42342 (struct _haifa_insn_data:autopref_multipass_data): New field.
42343 (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
42344 (autopref_multipass_dfa_lookahead_guard): Declare.
42345
42346 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
42347
42348 * rtlanal.c (get_base_term): Handle SCRATCH.
42349
42350 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
42351
42352 * config/aarch64/aarch64.c
42353 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
42354 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
42355 * config/arm/arm.c
42356 (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
42357 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
42358
42359 2015-01-17 Alan Modra <amodra@gmail.com>
42360
42361 * cprop.c (do_local_cprop): Disallow replacement of fixed
42362 hard registers.
42363
42364 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42365
42366 PR target/62066
42367 * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
42368 early return 0.
42369
42370 2015-01-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
42371
42372 * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
42373 * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
42374
42375 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42376
42377 * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
42378 * config/arm/thumb1.md: ... Here.
42379
42380 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
42381
42382 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
42383 TImode for TARGET_32BIT.
42384
42385 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
42386
42387 * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
42388 TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
42389 as ...
42390 (rs6000_abi_word_mode): New function.
42391
42392 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
42393
42394 * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
42395 instead of UNITS_PER_WORD to describe the size of stack slots.
42396
42397 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
42398
42399 * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
42400 as rs6000_promote_function_mode. Move comment to there.
42401 (rs6000_promote_function_mode): New function.
42402
42403 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
42404
42405 * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
42406 -mpowerpc64 is active.
42407
42408 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
42409
42410 PR middle-end/64353
42411 * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
42412 virtuals on start.
42413
42414 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
42415
42416 * config/arm/cortex-a57.md: Remove duplicate of file accidentally
42417 introduced in revision 219724.
42418
42419 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
42420 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
42421
42422 PR target/64263
42423 * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
42424 destination is not a GP reg.
42425 (*movdi_aarch64): Likewise.
42426
42427 2015-01-16 David Edelsohn <dje.gcc@gmail.com>
42428
42429 PR target/64623
42430 * config/rs6000/default64.h: Revert ISA change.
42431
42432 2015-01-16 Richard Biener <rguenther@suse.de>
42433
42434 PR middle-end/64614
42435 * tree-ssa-uninit.c: Include tree-cfg.h.
42436 (MAX_SWITCH_CASES): New define.
42437 (convert_control_dep_chain_into_preds): Handle switch statements.
42438 (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
42439 (normalize_one_pred_1): Do not split bit-manipulations.
42440 Record (x & CST).
42441
42442 2015-01-16 Richard Biener <rguenther@suse.de>
42443
42444 PR tree-optimization/64568
42445 * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
42446 complex load rewriting for TARGET_MEM_REFs.
42447
42448 2015-01-16 Uros Bizjak <ubizjak@gmail.com>
42449
42450 * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
42451
42452 2015-01-16 Matthew Wahab <matthew.wahab@arm.com>
42453
42454 PR target/64149
42455 * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
42456 variable.
42457 * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
42458 (aarch64_lra_p): Remove.
42459
42460 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
42461
42462 PR target/64363
42463 * ipa-chkp.h (chkp_instrumentable_p): New.
42464 * ipa-chkp.c: Include tree-inline.h.
42465 (chkp_instrumentable_p): New.
42466 (chkp_maybe_create_clone): Use chkp_instrumentable_p.
42467 Fix processing of not instrumentable functions.
42468 (chkp_versioning): Use chkp_instrumentable_p. Warn about
42469 not instrumentable functions.
42470 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
42471 chkp_instrumentable_p.
42472 * tree-inline.h (copy_forbidden): New.
42473 * tree-inline.c (copy_forbidden): Not static anymore.
42474
42475 2015-01-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
42476
42477 * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
42478 ptr1, ptr2 unused.
42479
42480 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
42481
42482 * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
42483 type OP_OUT to OP_INOUT.
42484
42485 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
42486
42487 * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
42488 (high x) y) to y if x and y have the same base.
42489
42490 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
42491
42492 * config/arm/cortex-a57.md: New.
42493 * config/aarch64/aarch64.md: Include it.
42494 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
42495 * config/aarch64/aarch64-tune.md: Regenerate.
42496
42497 2015-01-16 Zhenqiang Chen <zhenqiang.chen@arm.com>
42498
42499 PR target/64015
42500 * ccmp.c (expand_ccmp_next): New function.
42501 (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
42502 and compare insn sequence.
42503 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
42504 aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
42505 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
42506 * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
42507 (*ccmp_ior): Changed to ccmp_ior<mode>.
42508 (cmp<mode>): New pattern.
42509 * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
42510 parameters.
42511 * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
42512
42513 2015-01-16 Ilya Tocar <ilya.tocar@intel.com>
42514
42515 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
42516 _mm256_bsrli_epi128): New.
42517 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
42518
42519 2015-01-15 Jiong Wang <jiong.wang@arm.com>
42520
42521 * expmed.c (store_bit_field_using_insv): Improve warning message.
42522 Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
42523
42524 2015-01-15 Jiong Wang <jiong.wang@arm.com>
42525
42526 PR rtl-optimization/64011
42527 * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
42528 there is partial overflow.
42529
42530 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
42531
42532 * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
42533 prototype.
42534 (nds32_expand_epilogue_v3pop): Likewise.
42535 * config/nds32/nds32.md (sibcall): Define this for sibling call
42536 optimization.
42537 (sibcall_register): Likewise.
42538 (sibcall_immediate): Likewise.
42539 (sibcall_value): Likewise.
42540 (sibcall_value_register): Likewise.
42541 (sibcall_value_immediate): Likewise.
42542 (sibcall_epilogue): Likewise.
42543 (epilogue): Pass false to indicate this is not a sibcall epilogue.
42544 * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
42545 (nds32_expand_epilogue_v3pop): Likewise.
42546
42547 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
42548
42549 * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
42550 * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
42551 (return_internal): New.
42552 (return): Define this named pattern.
42553 (simple_return): Define this named pattern.
42554 * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
42555 pattern instead of unspec_volatile_func_return.
42556 (nds32_expand_epilogue_v3pop): Likewise.
42557 (nds32_can_use_return_insn): New function.
42558
42559 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
42560
42561 * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
42562 * config/nds32/nds32.md (pop25return): New.
42563 * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
42564 pop25return pattern.
42565
42566 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
42567
42568 * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
42569 -mforbid-fp-as-gp, and -mex9 options.
42570
42571 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
42572
42573 * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
42574 remove -mgp-direct option.
42575
42576 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
42577
42578 * doc/invoke.texi (--param early-inlining-insns): Update default value.
42579 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
42580
42581 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
42582
42583 * ipa-inline.c (inline_small_functions): Work around hints
42584 cache issue.
42585
42586 2015-01-15 Sandra Loosemore <sandra@codesourcery.com>
42587
42588 PR target/59710
42589 * doc/invoke.texi (Option Summary): Document new Nios II
42590 -mgpopt= syntax.
42591 (Nios II Options): Likewise.
42592 * config/nios2/nios2.opt: Add -mgpopt= option support.
42593 Modify existing -mgpopt and -mno-gpopt options to be aliases.
42594 * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
42595 * config/nios2/nios2.c (nios2_option_override): Adjust
42596 -mgpopt defaulting.
42597 (nios2_in_small_data_p): Return true for explicit small data
42598 sections even with -G0.
42599 (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
42600 option choices.
42601
42602 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
42603
42604 PR ipa/64612
42605 * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
42606 of comdat locals.
42607 (inline_call): Fix removal of aliases.
42608
42609 2015-01-15 Jakub Jelinek <jakub@redhat.com>
42610
42611 * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
42612 include SANITIZE_VPTR in SANITIZE_UNDEFINED.
42613 * opts.c (common_handle_option): Add -fsanitize=vptr.
42614 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
42615 BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
42616 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
42617 UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
42618 (ubsan_expand_vptr_ifn): New prototype.
42619 * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
42620 expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
42621 expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
42622 expand_LOOP_VECTORIZED): Make argument nameless, remove
42623 ATTRIBUTE_UNUSED.
42624 (expand_UBSAN_VPTR): New function.
42625 * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
42626 in fn spec.
42627 (UBSAN_VPTR): New internal function.
42628 * sanopt.c (tree_map_traits): Renamed to ...
42629 (sanopt_tree_map_traits): ... this.
42630 (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
42631 (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
42632 to sanopt_tree_map_traits renaming. Add vptr_check_map field.
42633 (maybe_optimize_ubsan_vptr_ifn): New function.
42634 (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
42635 (pass_sanopt::execute): Likewise. Call sanopt_optimize even for
42636 -fsanitize=vptr.
42637 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
42638 internal calls like pure functions for aliasing, even when they
42639 have other side-effects that prevent making them ECF_PURE.
42640 * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
42641 (ubsan_expand_vptr_ifn): New function.
42642
42643 2015-01-15 Vladimir Makarov <vmakarov@redhat.com>
42644
42645 PR rtl-optimization/64110
42646 * stmt.c (parse_output_constraint): Process '^' and '$'.
42647 (parse_input_constraint): Ditto.
42648 * lra-constraints.c (process_alt_operands): Process the new
42649 constraints.
42650 * ira-costs.c (record_reg_classes): Process the new constraint
42651 '^'.
42652 * genoutput.c (indep_constraints): Add '^' and '$'.
42653 * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
42654 * doc/md.texi: Add description of the new constraints.
42655
42656 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
42657 Bernd Schmidt <bernds@codesourcery.com>
42658 Cesar Philippidis <cesar@codesourcery.com>
42659 James Norris <jnorris@codesourcery.com>
42660 Tom de Vries <tom@codesourcery.com>
42661 Ilmir Usmanov <i.usmanov@samsung.com>
42662 Dmitry Bocharnikov <dmitry.b@samsung.com>
42663 Evgeny Gavrin <e.gavrin@samsung.com>
42664 Jakub Jelinek <jakub@redhat.com>
42665
42666 * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
42667 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
42668 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
42669 New function types.
42670 * builtins.c: Include "gomp-constants.h".
42671 (expand_builtin_acc_on_device): New function.
42672 (expand_builtin, is_inexpensive_builtin): Handle
42673 BUILT_IN_ACC_ON_DEVICE.
42674 * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
42675 New macros.
42676 * cgraph.c (cgraph_node::create): Consider flag_openacc next to
42677 flag_openmp.
42678 * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
42679 <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
42680 i386/intelmic-offload.h.
42681 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
42682 to libgomp and its dependencies.
42683 * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
42684 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
42685 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
42686 * config/ia64/hpux.h (LIB_SPEC): Likewise.
42687 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
42688 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
42689 * doc/generic.texi: Update for OpenACC changes.
42690 * doc/gimple.texi: Likewise.
42691 * doc/invoke.texi: Likewise.
42692 * doc/sourcebuild.texi: Likewise.
42693 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
42694 GF_OMP_FOR_KIND_OACC_LOOP.
42695 (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
42696 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
42697 GF_OMP_TARGET_KIND_OACC_UPDATE,
42698 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
42699 Dump more data.
42700 * gimple.c: Update comments for OpenACC changes.
42701 * gimple.def: Likewise.
42702 * gimple.h: Likewise.
42703 (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
42704 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
42705 GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
42706 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
42707 (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
42708 appropriate place.
42709 (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
42710 * gimplify.c: Include "gomp-constants.h".
42711 Update comments for OpenACC changes.
42712 (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
42713 OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
42714 OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
42715 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
42716 OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
42717 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
42718 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
42719 OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
42720 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
42721 OMP_CLAUSE_SEQ.
42722 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
42723 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
42724 OMP_CLAUSE_SET_MAP_KIND.
42725 (gimplify_oacc_cache): New function.
42726 (gimplify_omp_for): Handle OACC_LOOP.
42727 (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
42728 OACC_DATA.
42729 (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
42730 OACC_EXIT_DATA, OACC_UPDATE.
42731 (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
42732 OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
42733 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
42734 (gimplify_body): Consider flag_openacc next to flag_openmp.
42735 * lto-streamer-out.c: Include "gomp-constants.h".
42736 * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
42737 (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
42738 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
42739 (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
42740 (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
42741 (BUILT_IN_ACC_ON_DEVICE): New builtins.
42742 * omp-low.c: Include "gomp-constants.h".
42743 Update comments for OpenACC changes.
42744 (struct omp_context): Add reduction_map, gwv_below, gwv_this
42745 members.
42746 (extract_omp_for_data, use_pointer_for_field, install_var_field)
42747 (new_omp_context, delete_omp_context, scan_sharing_clauses)
42748 (create_omp_child_function, scan_omp_for, scan_omp_target)
42749 (check_omp_nesting_restrictions, lower_reduction_clauses)
42750 (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
42751 Update for OpenACC changes.
42752 (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
42753 OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
42754 OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
42755 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
42756 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
42757 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ. Use GOMP_MAP_* instead of
42758 OMP_CLAUSE_MAP_*.
42759 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
42760 Handle GF_OMP_FOR_KIND_OACC_LOOP.
42761 (expand_omp_target, lower_omp_target): Handle
42762 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
42763 GF_OMP_TARGET_KIND_OACC_UPDATE,
42764 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
42765 GF_OMP_TARGET_KIND_OACC_DATA.
42766 (pass_expand_omp::execute, execute_lower_omp)
42767 (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
42768 flag_openmp.
42769 (offload_symbol_decl): New variable.
42770 (oacc_get_reduction_array_id, oacc_max_threads)
42771 (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
42772 (maybe_lookup_oacc_reduction, enclosing_target_ctx)
42773 (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
42774 (oacc_gimple_assign, oacc_initialize_reduction_data)
42775 (oacc_finalize_reduction_data, oacc_process_reduction_data): New
42776 functions.
42777 (is_targetreg_ctx): Remove function.
42778 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
42779 OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
42780 OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
42781 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
42782 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
42783 OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
42784 * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
42785 * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
42786 (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
42787 (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
42788 (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
42789 (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
42790 * tree-core.h: Update comments for OpenACC changes.
42791 (enum omp_clause_map_kind): Remove.
42792 (struct tree_omp_clause): Change type of map_kind member from enum
42793 omp_clause_map_kind to unsigned char.
42794 * tree-inline.c: Update comments for OpenACC changes.
42795 * tree-nested.c: Likewise. Include "gomp-constants.h".
42796 (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
42797 (convert_tramp_reference_stmt, convert_gimple_call): Update for
42798 OpenACC changes. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
42799 OMP_CLAUSE_SET_MAP_KIND.
42800 * tree-pretty-print.c: Include "gomp-constants.h".
42801 (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
42802 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
42803 OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
42804 OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
42805 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
42806 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT. Use GOMP_MAP_*
42807 instead of OMP_CLAUSE_MAP_*.
42808 (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
42809 OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
42810 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
42811 * tree-streamer-in.c: Include "gomp-constants.h".
42812 (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
42813 OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
42814 * tree-streamer-out.c: Include "gomp-constants.h".
42815 (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
42816 OMP_CLAUSE_MAP_*.
42817 * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
42818 (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
42819 (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
42820 * tree.c (omp_clause_num_ops): Update accordingly.
42821 * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
42822 Likewise.
42823 (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
42824 (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
42825 (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
42826 (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
42827 (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
42828 (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
42829 * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
42830 (OMP_CLAUSE_SET_MAP_KIND): New macro.
42831 * varpool.c (varpool_node::get_create): Consider flag_openacc next
42832 to flag_openmp.
42833 * config/i386/intelmic-offload.h: New file.
42834 * config/nvptx/offload.h: Likewise.
42835
42836 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
42837
42838 * explow.h: Remove duplicate contents.
42839 * dojump.h: Likewise.
42840
42841 2015-01-15 Richard Earnshaw <rearnsha@arm.com>
42842
42843 * arm.c (arm_xgene_tune): Add default initializer for instruction
42844 fusion.
42845
42846 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
42847
42848 PR ipa/64068
42849 PR ipa/64559
42850 * ipa.c (symbol_table::remove_unreachable_nodes):
42851 Do not put abstract origins into boundary.
42852
42853 2015-01-15 Evgeny Stupachenko <evstupac@gmail.com>
42854
42855 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
42856 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
42857
42858 2015-01-15 Steve Ellcey <sellcey@mips.com>
42859
42860 * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
42861 cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
42862 builtins.def, and chkp-builtins.def.
42863
42864 2015-01-15 David Edelsohn <dje.gcc@gmail.com>
42865
42866 * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
42867 ISA 2.7 (POWER8).
42868
42869 2015-01-15 Richard Biener <rguenther@suse.de>
42870
42871 PR tree-optimization/61743
42872 * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
42873 information on PHIs for some simple cases.
42874
42875 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
42876
42877 * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
42878 Include xgene1.md.
42879 * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
42880 * config/arm/arm-cores.def (xgene1): New entry.
42881 * config/arm/arm-tables.opt: Regenerate.
42882 * config/arm/arm-tune.md: Regenerate.
42883 * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
42884
42885 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
42886
42887 * tree-if-conv.c: Include hash-map.h.
42888 (aggressive_if_conv): New variable.
42889 (fold_build_cond_expr): Add simplification of non-zero condition.
42890 (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
42891 destination block is not always executed.
42892 (if_convertible_phi_p): Fix commentary, allow phi nodes have more
42893 than two predecessors if AGGRESSIVE_IF_CONV is true.
42894 (if_convertible_stmt_p): Fix commentary.
42895 (all_preds_critical_p): New function.
42896 (has_pred_critical_p): New function.
42897 (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
42898 BB can have more than two predecessors and all incoming edges can be
42899 critical.
42900 (predicate_bbs): Skip predication for loop exit block, use build2_loc
42901 to compute predicate for true edge.
42902 (find_phi_replacement_condition): Delete this function.
42903 (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
42904 Allow interchange PHI arguments if EXTENDED is false.
42905 Change check that block containing reduction statement candidate
42906 is predecessor of phi-block since phi may have more than two arguments.
42907 (phi_args_hash_traits): New helper structure.
42908 (struct phi_args_hash_traits): New type.
42909 (phi_args_hash_traits::hash): New function.
42910 (phi_args_hash_traits::equal_keys): New function.
42911 (gen_phi_arg_condition): New function.
42912 (predicate_scalar_phi): Add handling of phi nodes with more than two
42913 arguments, delete COND and TRUE_BB arguments, insert body of
42914 find_phi_replacement_condition to predicate ordinary phi nodes.
42915 (predicate_all_scalar_phis): Skip blocks with the only predecessor,
42916 delete call of find_phi_replacement_condition and invoke
42917 predicate_scalar_phi with two arguments.
42918 (insert_gimplified_predicates): Add assert that non-predicated block
42919 don't have statements to insert.
42920 (ifcvt_split_critical_edges): New function.
42921 (ifcvt_split_def_stmt): Likewise.
42922 (ifcvt_walk_pattern_tree): Likewise.
42923 (stmt_is_root_of_bool_pattern): Likewise.
42924 (ifcvt_repair_bool_pattern): Likewise.
42925 (ifcvt_local_dce): Likewise.
42926 (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
42927 is copy of inner or outer loop force_vectorize field, invoke
42928 ifcvt_split_critical_edges, ifcvt_local_dce and
42929 ifcvt_repair_bool_pattern for aggressive if-conversion.
42930
42931 2015-01-15 Philipp Tomsich <ptomsich@theobroma-systems.com>
42932
42933 * config/aarch64/aarch64.md: Include xgene1.md.
42934 * config/aarch64/xgene1.md: New file.
42935
42936 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
42937
42938 * config/aarch64/aarch64-cores.def (xgene1): Update/add the
42939 xgene1 (APM XGene-1) core definition.
42940 * config/aarch64/aarch64.c: Add cost tables for APM XGene-1
42941 * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
42942 * doc/invoke.texi: Document -mcpu=xgene1.
42943
42944 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
42945
42946 * dojump.h: New header file.
42947 * explow.h: Likewise.
42948 * expr.h: Remove includes.
42949 Move expmed.c prototypes to expmed.h.
42950 Move dojump.c prototypes to dojump.h.
42951 Move alias.c prototypes to alias.h.
42952 Move explow.c prototypes to explow.h.
42953 Move calls.c prototypes to calls.h.
42954 Move emit-rtl.c prototypes to emit-rtl.h.
42955 Move varasm.c prototypes to varasm.h.
42956 Move stmt.c prototypes to stmt.h.
42957 (saved_pending_stack_adjust): Move to dojump.h.
42958 (adjust_address): Move to explow.h.
42959 (adjust_address_nv): Move to emit-rtl.h.
42960 (adjust_bitfield_address): Likewise.
42961 (adjust_bitfield_address_size): Likewise.
42962 (adjust_bitfield_address_nv): Likewise.
42963 (adjust_automodify_address_nv): Likewise.
42964 * explow.c (expr_size): Move to expr.c.
42965 (int_expr_size): Likewise.
42966 (tree_expr_size): Likewise.
42967 Include calls.h dojump.h emit-rtl.h explow.h expmed.h
42968 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
42969 * genemit.c (main): Generate includes statistics.h, real.h,
42970 fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
42971 stmt.h.
42972 * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
42973 function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
42974 explow.h, emit-rtl.h, stmt.h.
42975 * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
42976 fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
42977 * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
42978 real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
42979 emit-rtl.h, varasm.h, stmt.h.
42980 * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
42981 hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
42982 function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
42983 fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
42984 expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
42985 * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
42986 double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
42987 function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
42988 insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
42989 tm.h tree.h varasm.h vec.h wide-int.h.
42990 * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
42991 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
42992 hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
42993 real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
42994 * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
42995 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
42996 insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
42997 * loop-iv.c: Likewise.
42998 * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
42999 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
43000 statistics.h stmt.h tree.h varasm.h wide-int.h.
43001 * lra-constraints.c: Likewise.
43002 * lra-eliminations.c: Likewise.
43003 * lra-lives.c: Likewise.
43004 * lra-remat.c: Likewise.
43005 * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
43006 explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
43007 statistics.h stmt.h tree.h varasm.h wide-int.h.
43008 * hw-doloop.c: Likewise.
43009 * ira-color.c: Likewise.
43010 * ira-emit.c: Likewise.
43011 * loop-doloop.c: Likewise.
43012 * loop-invariant.c: Likewise.
43013 * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
43014 explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
43015 statistics.h stmt.h tree.h varasm.h wide-int.h.
43016 * caller-save.c: Include alias.h calls.h dojump.h double-int.h
43017 emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
43018 statistics.h stmt.h tree.h varasm.h wide-int.h.
43019 * combine-stack-adj.c: Likewise.
43020 * cse.c: Likewise.
43021 * ddg.c: Likewise.
43022 * ifcvt.c: Likewise.
43023 * ira-costs.c: Likewise.
43024 * jump.c: Likewise.
43025 * lra-coalesce.c: Likewise.
43026 * lra-spills.c: Likewise.
43027 * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
43028 explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
43029 stmt.h varasm.h wide-int.h.
43030 * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
43031 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
43032 varasm.h.
43033 * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
43034 double-int.h explow.h expmed.h fixed-value.h flags.h real.h
43035 statistics.h stmt.h varasm.h wide-int.h.
43036 * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
43037 expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
43038 varasm.h wide-int.h.
43039 * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
43040 expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
43041 * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
43042 emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
43043 statistics.h stmt.h.
43044 * config/tilepro/tilepro.c: Likewise.
43045 * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
43046 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
43047 * config/pdp11/pdp11.c: Likewise.
43048 * config/xtensa/xtensa.c: Likewise.
43049 * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
43050 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
43051 varasm.h.
43052 * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43053 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
43054 insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
43055 * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43056 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
43057 insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
43058 * rtl-chkp.c: Likewise.
43059 * tree-chkp-opt.c: Likewise.
43060 * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
43061 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
43062 hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
43063 * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43064 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
43065 statistics.h stmt.h.
43066 * tree-vect-data-refs.c: Likewise.
43067 * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
43068 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
43069 rtl.h statistics.h stmt.h varasm.h.
43070 * internal-fn.c: Likewise.
43071 * ipa-icf-gimple.c: Likewise.
43072 * lto-section-out.c: Likewise.
43073 * tree-data-ref.c: Likewise.
43074 * tree-nested.c: Likewise.
43075 * tree-outof-ssa.c: Likewise.
43076 * tree-predcom.c: Likewise.
43077 * tree-pretty-print.c: Likewise.
43078 * tree-scalar-evolution.c: Likewise.
43079 * tree-ssa-strlen.c: Likewise.
43080 * tree-vect-loop.c: Likewise.
43081 * tree-vect-patterns.c: Likewise.
43082 * tree-vect-slp.c: Likewise.
43083 * tree-vect-stmts.c: Likewise.
43084 * tsan.c: Likewise.
43085 * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43086 fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
43087 stmt.h.
43088 * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
43089 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
43090 statistics.h stmt.h varasm.h.
43091 * loop-unroll.c: Likewise.
43092 * ubsan.c: Likewise.
43093 * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
43094 expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
43095 stmt.h varasm.h.
43096 * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43097 fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
43098 * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
43099 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
43100 statistics.h stmt.h.
43101 * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
43102 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
43103 statistics.h stmt.h varasm.h.
43104 * gimple-match-head.c: Likewise.
43105 * lto-cgraph.c: Likewise.
43106 * lto-section-in.c: Likewise.
43107 * lto-streamer-in.c: Likewise.
43108 * lto-streamer-out.c: Likewise.
43109 * tree-affine.c: Likewise.
43110 * tree-cfg.c: Likewise.
43111 * tree-cfgcleanup.c: Likewise.
43112 * tree-if-conv.c: Likewise.
43113 * tree-into-ssa.c: Likewise.
43114 * tree-ssa-alias.c: Likewise.
43115 * tree-ssa-copyrename.c: Likewise.
43116 * tree-ssa-dse.c: Likewise.
43117 * tree-ssa-forwprop.c: Likewise.
43118 * tree-ssa-live.c: Likewise.
43119 * tree-ssa-math-opts.c: Likewise.
43120 * tree-ssa-pre.c: Likewise.
43121 * tree-ssa-sccvn.c: Likewise.
43122 * tree-tailcall.c: Likewise.
43123 * tree-vect-generic.c: Likewise.
43124 * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43125 fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
43126 * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43127 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
43128 * varasm.c: Likewise.
43129 * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43130 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
43131 varasm.h.
43132 * init-regs.c: Likewise.
43133 * ira.c: Likewise.
43134 * omp-low.c: Likewise.
43135 * stack-ptr-mod.c: Likewise.
43136 * tree-ssa-reassoc.c: Likewise.
43137 * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43138 fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
43139 varasm.h.
43140 * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43141 fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
43142 * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43143 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
43144 * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43145 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
43146 * tree-ssa-phiopt.c: Likewise.
43147 * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43148 fixed-value.h hashtab.h real.h statistics.h stmt.h.
43149 * config/fr30/fr30.c: Likewise.
43150 * config/frv/frv.c: Likewise.
43151 * expr.c: Likewise.
43152 * final.c: Likewise.
43153 * optabs.c: Likewise.
43154 * passes.c: Likewise.
43155 * simplify-rtx.c: Likewise.
43156 * stmt.c: Likewise.
43157 * toplev.c: Likewise.
43158 * var-tracking.c: Likewise.
43159 * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43160 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
43161 * lower-subreg.c: Likewise.
43162 * postreload-gcse.c: Likewise.
43163 * ree.c: Likewise.
43164 * reginfo.c: Likewise.
43165 * store-motion.c: Likewise.
43166 * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43167 fixed-value.h hashtab.h real.h stmt.h varasm.h.
43168 * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43169 fixed-value.h hashtab.h statistics.h stmt.h.
43170 * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43171 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
43172 * except.c: Likewise.
43173 * explow.c: Likewise.
43174 * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43175 fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
43176 varasm.h.
43177 * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43178 fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
43179 * tree-ssa-structalias.c: Likewise.
43180 * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43181 fixed-value.h insn-config.h real.h statistics.h.
43182 * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43183 fixed-value.h insn-config.h real.h statistics.h stmt.h.
43184 * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43185 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
43186 * cfgbuild.c: Likewise.
43187 * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43188 fixed-value.h real.h rtl.h statistics.h stmt.h.
43189 * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43190 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
43191 * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43192 fixed-value.h real.h statistics.h stmt.h.
43193 * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
43194 fixed-value.h real.h statistics.h stmt.h varasm.h.
43195 * cprop.c: Likewise.
43196 * modulo-sched.c: Likewise.
43197 * postreload.c: Likewise.
43198 * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
43199 flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
43200 statistics.h stmt.h varasm.h.
43201 * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
43202 explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
43203 rtl.h statistics.h stmt.h varasm.h.
43204 * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
43205 fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
43206 varasm.h.
43207 * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
43208 function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
43209 varasm.h.
43210 * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
43211 fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
43212 varasm.h.
43213 * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
43214 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
43215 * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
43216 function.h real.h statistics.h stmt.h varasm.h.
43217 * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
43218 insn-config.h real.h statistics.h stmt.h.
43219 * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
43220 statistics.h stmt.h.
43221 * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
43222 fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
43223 statistics.h stmt.h varasm.h.
43224 * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
43225 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
43226 * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
43227 flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
43228 * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
43229 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
43230 statistics.h stmt.h varasm.h.
43231 * ipa-polymorphic-call.c: Likewise.
43232 * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
43233 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
43234 statistics.h stmt.h.
43235 * config/c6x/c6x.c: Likewise.
43236 * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
43237 explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
43238 statistics.h stmt.h varasm.h.
43239 * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
43240 fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
43241 stmt.h varasm.h.
43242 * ipa-split.c: Likewise.
43243 * tree-eh.c: Likewise.
43244 * tree-ssa-dce.c: Likewise.
43245 * tree-ssa-loop-niter.c: Likewise.
43246 * tree-vrp.c: Likewise.
43247 * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
43248 expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
43249 stmt.h.
43250 * config/nds32/nds32-fp-as-gp.c: Likewise.
43251 * config/nds32/nds32-intrinsic.c: Likewise.
43252 * config/nds32/nds32-isr.c: Likewise.
43253 * config/nds32/nds32-md-auxiliary.c: Likewise.
43254 * config/nds32/nds32-memory-manipulation.c: Likewise.
43255 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
43256 * config/nds32/nds32-predicates.c: Likewise.
43257 * config/nds32/nds32.c: Likewise.
43258 * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
43259 fixed-value.h hashtab.h real.h statistics.h.
43260 * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
43261 fixed-value.h hashtab.h real.h statistics.h stmt.h.
43262 * config/arm/arm.c: Likewise.
43263 * config/avr/avr.c: Likewise.
43264 * config/bfin/bfin.c: Likewise.
43265 * config/h8300/h8300.c: Likewise.
43266 * config/i386/i386.c: Likewise.
43267 * config/ia64/ia64.c: Likewise.
43268 * config/iq2000/iq2000.c: Likewise.
43269 * config/m32c/m32c.c: Likewise.
43270 * config/m32r/m32r.c: Likewise.
43271 * config/m68k/m68k.c: Likewise.
43272 * config/mcore/mcore.c: Likewise.
43273 * config/mep/mep.c: Likewise.
43274 * config/mips/mips.c: Likewise.
43275 * config/mn10300/mn10300.c: Likewise.
43276 * config/moxie/moxie.c: Likewise.
43277 * config/pa/pa.c: Likewise.
43278 * config/rl78/rl78.c: Likewise.
43279 * config/rx/rx.c: Likewise.
43280 * config/s390/s390.c: Likewise.
43281 * config/sh/sh.c: Likewise.
43282 * config/sparc/sparc.c: Likewise.
43283 * config/spu/spu.c: Likewise.
43284 * config/stormy16/stormy16.c: Likewise.
43285 * config/v850/v850.c: Likewise.
43286 * config/vax/vax.c: Likewise.
43287 * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
43288 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
43289 * config/msp430/msp430.c: Likewise.
43290 * predict.c: Likewise.
43291 * value-prof.c: Likewise.
43292 * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
43293 expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
43294 * config/microblaze/microblaze.c: Likewise.
43295 * config/nios2/nios2.c: Likewise.
43296 * config/rs6000/rs6000.c: Likewise.
43297 * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
43298 insn-config.h real.h rtl.h statistics.h stmt.h.
43299 * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
43300 insn-config.h real.h statistics.h stmt.h.
43301 * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
43302 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
43303 * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
43304 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
43305 * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
43306 fixed-value.h real.h statistics.h stmt.h.
43307 * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
43308 fixed-value.h statistics.h stmt.h.
43309 * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
43310 stmt.h.
43311
43312 2015-01-15 Jakub Jelinek <jakub@redhat.com>
43313
43314 * gengtype.c (create_user_defined_type): Workaround
43315 -Wmaybe-uninitialized false positives.
43316 * cse.c (fold_rtx): Likewise.
43317 * loop-invariant.c (gain_for_invariant): Likewise.
43318
43319 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
43320
43321 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
43322 set the memory attributes in all cases but clear MEM_EXPR if need be.
43323
43324 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
43325
43326 PR tree-optimization/64434
43327 * cfgexpand.c (reorder_operands): New function.
43328 (expand_gimple_basic_block): Insert call of reorder_operands if
43329 optimized is true.
43330
43331 2015-01-15 Matthew Fortune <matthew.fortune@imgtec.com>
43332
43333 * config/mips/micromips.md (*swp): Remove explicit parallel.
43334 (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
43335 * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
43336 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
43337 (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
43338 (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
43339 (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
43340 (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
43341 (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
43342 (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
43343 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
43344 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
43345 (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
43346 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
43347 (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
43348 (mips_wrdsp): Likewise.
43349 * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
43350 parallel.
43351 (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
43352 (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
43353 (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
43354 (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
43355 (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
43356 (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
43357 * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
43358 (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
43359 (ssmaddsqdq4, ssmsubsqdq4): Likewise.
43360
43361 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
43362
43363 * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
43364 (mips_print_operand): Support 'y' to print exact log2 in decimal
43365 of a const_int.
43366 * config/mips/mips.h (ISA_HAS_LSA): New define.
43367 (ISA_HAS_DLSA): Likewise.
43368 * config/mips/mips.md (<GPR:d>lsa): New define_insn.
43369 * config/mips/predicates.md (const_immlsa_operand): New predicate.
43370
43371 2015-01-15 Martin Liska <mliska@suse.cz>
43372
43373 PR target/64377
43374 * optc-save-gen.awk: Add support for array types.
43375
43376 2015-01-15 Richard Biener <rguenther@suse.de>
43377
43378 PR middle-end/64365
43379 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
43380 for MEM_REF access functions with the same base can never partially
43381 overlap.
43382
43383 2015-01-14 Marcos Diaz <marcos.diaz@tallertechnologies.com>
43384
43385 * common.opt: New option -fstack-protector-explicit.
43386 * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
43387 (stack_protect_decl_phase): Handle stack_protect attribute for
43388 explicit stack protection requests.
43389 (expand_used_vars): Similarly.
43390 * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
43391 * doc/extend.texi: Add documentation for "stack_protect" attribute.
43392 * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
43393
43394 2015-01-14 Oleg Endo <olegendo@gcc.gnu.org>
43395
43396 PR target/53988
43397 * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
43398 reg-reg copies.
43399 (sh_extending_set_of_reg): New struct.
43400 (sh_find_extending_set_of_reg, sh_split_tst_subregs,
43401 sh_remove_reg_dead_or_unused_notes): New Declarations.
43402 * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
43403 sh_find_extending_set_of_reg, sh_split_tst_subregs,
43404 sh_extending_set_of_reg::use_as_extended_reg): New functions.
43405 * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
43406 convert to insn_and_split and use new function sh_split_tst_subregs.
43407
43408 2015-01-14 Sandra Loosemore <sandra@codesourcery.com>
43409
43410 * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
43411 option.
43412 (Optimization Options): Move -fuse-ld documentation to...
43413 (Link Options): ...here.
43414
43415 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
43416
43417 * config/mips/constraints.md (ZC): Add support for R6 LL/SC
43418 offsets.
43419 (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
43420 * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
43421 (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
43422 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
43423 instead of ZR for the memory operand of LL/SC.
43424 (compare_and_swap_12, sync_add<mode>): Likewise.
43425 (sync_<optab>_12, sync_old_<optab>_12): Likewise.
43426 (sync_new_<optab>_12, sync_nand_12): Likewise.
43427 (sync_old_nand_12, sync_new_nand_12): Likewise.
43428 (sync_sub<mode>, sync_old_add<mode>): Likewise.
43429 (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
43430 (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
43431 (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
43432 (sync_nand<mode>, sync_old_nand<mode>): Likewise.
43433 (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
43434 (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
43435 (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
43436 * doc/md.texi (ZC): Update description.
43437
43438 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
43439
43440 * builtins.c (expand_builtin_atomic_exchange): Remove error when
43441 memory model is CONSUME.
43442 (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
43443 expand_builtin_atomic_store): Change invalid memory model errors to
43444 warnings.
43445 (expand_builtin_atomic_clear): Change invalid model errors to warnings
43446 and issue warning for CONSUME.
43447
43448 2015-01-14 Aldy Hernandez <aldyh@redhat.com>
43449
43450 * lto-cgraph: Update function comments for
43451 lto_symtab_encoder_encode_*.
43452
43453 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
43454
43455 * Makefile.in (site.exp): Do not set ENABLE_LTO.
43456
43457 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
43458
43459 * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
43460 * lto-cgraph.c (select_what_to_stream): Remove argument, use
43461 lto_stream_offload_p instead.
43462 * lto-streamer.h (select_what_to_stream): Remove argument.
43463 * passes.c (ipa_write_summaries): Likewise.
43464 * tree-pass.h (ipa_write_summaries): Likewise.
43465
43466 2015-01-14 Richard Biener <rguenther@suse.de>
43467
43468 PR tree-optimization/59354
43469 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
43470 groups larger than the slp group size as having gaps.
43471
43472 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
43473
43474 PR middle-end/59448
43475 * builtins.c (get_memmodel): Promote consume to acquire always.
43476
43477 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
43478
43479 PR target/64386
43480 * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
43481 V32HImode.
43482
43483 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
43484
43485 PR target/64393
43486 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
43487 Enable AVX512BW.
43488 (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
43489 * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
43490 AVX512VBMI, as it implies AVX512BW.
43491
43492 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
43493
43494 PR target/64387
43495 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
43496 (vec_unpacks_hi_v16sf): Ditto.
43497
43498 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43499
43500 * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
43501 is not available.
43502
43503 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43504
43505 * doc/invoke.texi (mapcs): Mention deprecation.
43506 (mapcs-frame): Likewise.
43507
43508 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
43509
43510 PR target/64453
43511 * config/arm/arm.c (callee_saved_reg_p): Define.
43512 (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
43513 register is callee saved instead of !call_used_regs[reg].
43514 (thumb1_compute_save_reg_mask): Likewise.
43515
43516 2015-01-14 Hale Wang <hale.wang@arm.com>
43517
43518 * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
43519 Cortex-M7.
43520
43521 2015-01-14 Richard Biener <rguenther@suse.de>
43522
43523 PR lto/64415
43524 * tree-inline.c (insert_debug_decl_map): Check destination
43525 function MAY_HAVE_DEBUG_STMTS.
43526 (insert_init_debug_bind): Likewise.
43527 (insert_init_stmt): Remove redundant check.
43528 (remap_gimple_stmt): Drop debug stmts if the destination
43529 function has var-tracking assignments disabled.
43530
43531 2015-01-14 Martin Liska <mliska@suse.cz>
43532
43533 * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
43534 IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
43535
43536 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43537
43538 PR target/64460
43539 * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
43540 (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
43541
43542 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
43543
43544 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
43545 level from an ARCH; do not inject the default.
43546 (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
43547 MIPS_ISA_LEVEL_SPEC.
43548 (MIPS_ISA_NAN2008_SPEC): Update comment.
43549 (BASE_DRIVER_SELF_SPECS): Likewise.
43550 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
43551 MIPS_DEFAULT_ISA_LEVEL_SPEC.
43552 * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
43553 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
43554 * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
43555
43556 2015-01-14 Richard Biener <rguenther@suse.de>
43557
43558 PR tree-optimization/64493
43559 PR tree-optimization/64495
43560 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
43561 assign the proper vectorized PHI to the inner loop exit PHIs.
43562
43563 2015-01-14 Joey Ye <joey.ye@arm.com>
43564
43565 * config/arm/arm.c (arm_compute_save_reg_mask):
43566 Do not save lr in case of tail call.
43567 * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
43568
43569 2015-01-14 Martin Uecker <uecker@eecs.berkeley.edu>
43570
43571 * tree-vrp.c (check_array_ref): Emit more warnings
43572 for warn_array_bounds >= 2.
43573 * common.opt: New option -Warray-bounds=.
43574 * doc/invoke.texi: Document -Warray-bounds=.
43575
43576 2015-01-14 Chung-Ju Wu <jasonwucj@gmail.com>
43577
43578 * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
43579 (mforbid-fp-as-gp): Remove.
43580 (mex9): Remove.
43581 * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
43582 (nds32_symbol_load_store_p): Remove.
43583 (nds32_fp_as_gp_check_available): Clean up implementation.
43584 * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
43585 cases.
43586 * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
43587 fp-as-gp and ex9 cases.
43588
43589 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
43590
43591 * tree-profile.c (init_ic_make_global_vars): Drop workaround
43592 for bintuils bug 14342.
43593 (init_ic_make_global_vars): Likewise.
43594 (gimple_init_edge_profiler): Likewise.
43595 (gimple_gen_ic_func_profiler): Likewise.
43596
43597 2015-01-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
43598
43599 * ipa-inline.c (inline_small_functions): Swap the operands in
43600 enum.
43601
43602 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
43603
43604 PR ipa/64481
43605 * ipa-inline-analysis.c (node_growth_cache): Remove.
43606 (initialize_growth_caches): Do not initialize it.
43607 (free_growth_caches): Do not free it.
43608 (do_estimate_growth): Rename to ...
43609 (estimate_growth): ... this one; drop growth cache code.
43610 (growth_likely_positive): Always go the heuristics way.
43611 * ipa-inline.c (can_inline_edge_p): Walk through aliases.
43612 (reset_edge_caches): Do not reset node growth.
43613 (heap_edge_removal_hook): Do not maintain cache.
43614 (inline_small_functions): Likewise; strenghten sanity check.
43615 (ipa_inline): Do not maintain caches.
43616 * ipa-inline.h (node_growth_cache): Remove.
43617 (do_estimate_growth): Remove to ...
43618 (estimate_growth): this one; remove inline version.
43619 (reset_node_growth_cache): Remove.
43620
43621 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
43622
43623 PR ipa/64565
43624 * ipa-inline.c (inline_small_functions): Update callee keys after
43625 resolving speculation
43626 (inline_small_functions): Always check monotonicity of the queue.
43627
43628 2015-01-13 Marek Polacek <polacek@redhat.com>
43629
43630 PR middle-end/64391
43631 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
43632
43633 2015-01-13 Jakub Jelinek <jakub@redhat.com>
43634
43635 PR rtl-optimization/64286
43636 * ree.c (combine_reaching_defs): Move part of comment earlier,
43637 remove !SCALAR_INT_MODE_P check.
43638 (add_removable_extension): Don't add vector mode
43639 extensions if all uses of the source register aren't the same
43640 vector extensions.
43641
43642 2015-01-13 Renlin Li <renlin.li@arm.com>
43643
43644 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
43645 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
43646
43647 2015-01-13 Martin Liska <mliska@suse.cz>
43648
43649 * ipa-icf.c (sem_function::equals_private): Call new functions
43650 cl_target_option_print_diff and cl_optimization_print_diff.
43651 * optc-save-gen.awk (cl_target_option_print_diff): New function.
43652 (cl_optimization_print_diff): Likewise.
43653 * opth-gen.awk: Likewise.
43654
43655 2015-01-13 Richard Sandiford <richard.sandiford@arm.com>
43656
43657 * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
43658 (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
43659 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
43660 (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
43661 (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
43662 (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
43663
43664 2015-01-13 Andrew Pinski <apinski@cavium.com>
43665
43666 * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
43667 instead of src mode.
43668
43669 2015-01-13 Richard Biener <rguenther@suse.de>
43670
43671 PR lto/64373
43672 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
43673 DECL_CONTEXT.
43674
43675 2015-01-13 Andrew Pinski <apinski@cavium.com>
43676
43677 * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
43678 volatile mems.
43679 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
43680
43681 2015-01-13 Jakub Jelinek <jakub@redhat.com>
43682
43683 PR middle-end/63974
43684 * cfgexpand.c (expand_computed_goto): Don't call
43685 convert_memory_address here.
43686
43687 2015-01-13 Richard Biener <rguenther@suse.de>
43688
43689 PR tree-optimization/64406
43690 * tree-loop-distibution.c (pass_loop_distribution::execute):
43691 Reset the SCEV hashtable if we distributed anything.
43692
43693 2015-01-13 Richard Biener <rguenther@suse.de>
43694
43695 PR tree-optimization/64404
43696 * tree-vect-stmts.c (vectorizable_load): Reject conflicting
43697 SLP types for CSEd loads.
43698
43699 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
43700
43701 PR tree-optimization/64436
43702 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
43703 merge of two symbolic numbers for a bitwise OR to ...
43704 (perform_symbolic_merge): This. Also fix computation of the range and
43705 end of the symbolic number corresponding to the result of a bitwise OR.
43706
43707 2015-01-13 Richard Biener <rguenther@suse.de>
43708
43709 PR tree-optimization/64568
43710 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
43711 release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
43712
43713 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
43714
43715 * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
43716 TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
43717
43718 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
43719
43720 * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
43721 target-specific symbol_ref flag.
43722 (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
43723 resides in rodata section.
43724 * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
43725 (nds32_encode_section_info): New function.
43726
43727 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
43728
43729 * config/nds32/nds32.md (call): Use pseudo instruction bal which
43730 clobbers TA_REGNUM if large code model is specified.
43731 (call_register): Likewise.
43732 (call_immediate): Likewise.
43733 (call_value): Likewise.
43734 (call_value_register): Likewise.
43735 (call_value_immediate): Likewise.
43736
43737 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
43738
43739 * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
43740 (TARGET_CMODEL_MEDIUM): New macro.
43741 (TARGET_CMODEL_LARGE): New macro.
43742 * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
43743 code model setting in assembly code.
43744
43745 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
43746
43747 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
43748 Remove MASK_GP_DIRECT flag.
43749 * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
43750 one of the multilib default options.
43751 * config/nds32/nds32.opt (mgp-direct): Remove.
43752 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
43753 -mgp-direct. We also remove unnecessary -mlittle-endian/-mbig-endian.
43754
43755 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
43756
43757 * config/nds32/nds32.opt (mcmodel): Add new option.
43758 * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
43759 to describe code model.
43760
43761 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
43762
43763 PR target/64479
43764 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
43765
43766 2015-01-12 Kaz Kojima <kkojima@gcc.gnu.org>
43767
43768 * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
43769 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
43770 (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
43771 (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
43772 __builtin_sh_set_fpscr.
43773
43774 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
43775
43776 * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
43777 after a funtion name just to indicate it is a function.
43778 ([-fsanitize-undefined-trap-on-error]): Likewise.
43779 ([-fdbg-cnt=]): Likewise.
43780 ([-mmemcpy]): Likewise.
43781 ([-mflush-func]): Likewise.
43782 ([-msynci]): Likewise.
43783
43784 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
43785
43786 * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
43787 example.
43788
43789 2015-01-12 Jakub Jelinek <jakub@redhat.com>
43790
43791 PR tree-optimization/64563
43792 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
43793 instead of != VR_VARYING.
43794
43795 PR target/64513
43796 * config/i386/i386.c (ix86_expand_prologue): Add
43797 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
43798
43799 PR tree-optimization/64454
43800 * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
43801 op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
43802 for signed or [0, op1 - 1] for unsigned modulo.
43803 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
43804 even if op1 does not satisfy integer_pow2p.
43805
43806 PR other/64370
43807 * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
43808
43809 2015-01-12 Jeff Law <law@redhat.com>
43810
43811 PR target/64461
43812 * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
43813 (trunchiqi2, truncsihi2): Similarly.
43814
43815 * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
43816 rather than calling F.
43817
43818 2015-01-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
43819
43820 * tsan.c (instrument_expr): Use force_gimple_operand.
43821 Use may_be_nonaddressable_p instead of is_gimple_addressable.
43822
43823 2015-01-12 Richard Biener <rguenther@suse.de>
43824
43825 PR tree-optimization/64530
43826 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
43827 back dr1.
43828
43829 2015-01-12 Richard Biener <rguenther@suse.de>
43830
43831 PR middle-end/64357
43832 * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
43833 latches properly.
43834
43835 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43836
43837 * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
43838 Cortex-A17 tuning parameters.
43839 * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
43840
43841 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43842
43843 * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
43844 * config/arm/arm.c (arm_macro_fusion_p): New function.
43845 (arm_macro_fusion_pair_p): Likewise.
43846 (TARGET_SCHED_MACRO_FUSION_P): Define.
43847 (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
43848 (ARM_FUSE_NOTHING): Likewise.
43849 (ARM_FUSE_MOVW_MOVT): Likewise.
43850 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
43851 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
43852 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
43853 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
43854 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
43855 arm_cortex_a5_tune): Specify fuseable_ops value.
43856
43857 2015-01-12 H.J. Lu <hongjiu.lu@intel.com>
43858
43859 PR bootstrap/64561
43860 * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
43861 test for PIE with copy reloc.
43862 * configure: Regenerated.
43863
43864 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
43865
43866 * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
43867 in gen_rtx_REG.
43868 (arm_tls_descseq_addr): Likewise.
43869 (arm_gen_movmemqi): Likewise.
43870 (arm_expand_epilogue_apcs_frame): Likewise.
43871 (arm_expand_epilogue): Likewise.
43872 (arm_expand_prologue): Likewise. Use R1_REGNUM instead of constant 1
43873 in gen_rtx_REG.
43874
43875 2015-01-12 Martin Liska <mliska@suse.cz>
43876
43877 PR ipa/64550
43878 * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
43879 volatility for correct operands.
43880
43881 2015-01-12 Martin Liska <mliska@suse.cz>
43882
43883 * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
43884 indication that a function is not leaf.
43885 (sem_function::compare_polymorphic_p): Likewise.
43886
43887 2015-01-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
43888
43889 * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
43890 machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
43891 fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
43892 fold-const.h, tree-check.h.
43893
43894 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
43895
43896 PR ipa/63967
43897 PR ipa/64425
43898 * ipa-inline.c (compute_uninlined_call_time,
43899 compute_inlined_call_time): Use counts for extra precision when
43900 needed possible.
43901 (big_speedup_p): Fix formating.
43902 (RELATIVE_TIME_BENEFIT_RANGE): Remove.
43903 (relative_time_benefit): Remove.
43904 (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
43905 merge guessed and read profile paths.
43906 (inline_small_functions): Count only !optimize_size functions into
43907 initial size; be more lax about sanity check when profile is used;
43908 be sure to update inlined function profile when profile is read.
43909
43910 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
43911
43912 PR ipa/63470
43913 * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
43914 cost when edge becomes direct.
43915 * ipa-prop.c (make_edge_direct): Do not adjust when speculation
43916 is resolved or when introducing new speculation.
43917
43918 2015-01-12 Chen Gang <gang.chen.5i5j@gmail.com>
43919
43920 PR ipa/64551
43921 PR ipa/64552
43922 * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
43923 '||' to fix typo issue.
43924
43925 * tree.h (target_opts_for_fn): Check NULL_TREE since it can
43926 accept and return NULL.
43927
43928 2015-01-12 Martin Liska <mliska@suse.cz>
43929
43930 * cgraph.c (cgraph_edge::remove_callee): Move function to header
43931 file for being inlined.
43932 (cgraph_set_edge_callee): Delete.
43933 (cgraph_edge::redirect_callee): Move function to header file
43934 for being inlined.
43935 (cgraph_edge::make_direct): Use new function.
43936 (cgraph_edge::dump_edge_flags): New function created from
43937 static dump_edge_flags function.
43938 (cgraph_node::dump): Use new function.
43939 (cgraph_edge::verify_count_and_frequency): New function created
43940 from verify_edge_count_and_frequency.
43941 (cgraph_edge::verify_corresponds_to_fndecl): New function created
43942 from verify_edge_corresponds_to_fndecl.
43943 (verify_edge_corresponds_to_fndecl): Delete.
43944 (cgraph_node::verify_node): Use new function.
43945 * cgraph.h (cgraph_edge::set_callee): New function.
43946 (cgraph_edge::dump_edge_flags): Likewise.
43947 (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
43948
43949 2015-01-11 Jan Hubicka <hubicka@ucw.cz>
43950
43951 * ipa-utils.c (estimate_function_body_sizes): Do not
43952 free node params when called late with early=true.
43953
43954 2015-01-11 James Greenhalgh <james.greenhalgh@arm.com>
43955
43956 * doc/md.texi (Instruction Patterns): Rewrite text for
43957 clarity.
43958 (Example): Likewise.
43959
43960 2015-01-10 Sandra Loosemore <sandra@codesourcery.com>
43961
43962 * doc/invoke.texi (Option Summary): Break long lines.
43963 [(-fdiagnostics-color)]: Put long literal in @smallexample
43964 instead of inline.
43965 [(-fsanitize-recover)]: Likewise.
43966 [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
43967 [(-ffast-math)]: Likewise.
43968 [(--param max-inline-insns-recursive)]: Likewise.
43969 [(--param max-inline-recursive-depth)]: Likewise.
43970 [(-mno-text-section-literals)]: Likewise.
43971
43972 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
43973
43974 * doc/install.texi: Update for libgomp being renamed from "GNU
43975 OpenMP Runtime Library" to "GNU Offloading and Multi Processing
43976 Runtime Library".
43977 * doc/sourcebuild.texi: Likewise.
43978
43979 2015-01-10 Anthony Green <green@moxielogic.com>
43980
43981 * config/moxie/moxie.c (moxie_option_override): Fix forcing of
43982 mul.x availability for moxiebox configuration.
43983
43984 2015-01-09 Anthony Green <green@moxielogic.com>
43985
43986 * config/moxie/moxie.md: Tabify assembly output.
43987
43988 2015-01-09 Anthony Green <green@moxielogic.com>
43989
43990 * config/moxie/moxie.md (CC_REG): Correct register definition.
43991
43992 2015-01-09 Sandra Loosemore <sandra@codesourcery.com>
43993
43994 * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
43995 ([-fvtv-debug], [-fvtv-counts]): Likewise. Correct location
43996 of log files.
43997
43998 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
43999
44000 * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
44001
44002 2015-01-09 Bernd Schmidt <bernds@codesourcery.com>
44003 Jakub Jelinek <jakub@redhat.com>
44004
44005 PR middle-end/64412
44006 * lto-streamer.h (lto_stream_offload_p): New declaration.
44007 * lto-streamer.c (lto_stream_offload_p): New variable.
44008 * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
44009 at the same time as section_name_prefix.
44010 * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
44011 if lto_stream_offload_p.
44012 * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
44013 stream TREE_TARGET_OPTION if lto_stream_offload_p.
44014 (write_ts_function_decl_tree_pointers): Don't
44015 stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
44016 * tree-streamer-in.c (unpack_value_fields): Don't stream
44017 TREE_TARGET_OPTION in if ACCEL_COMPILER.
44018 (lto_input_ts_function_decl_tree_pointers): Don't stream
44019 DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
44020 * lto-opts.c (lto_write_options): Use lto_stream_offload_p
44021 instead of section_name_prefix string comparisons.
44022
44023 2015-01-09 Jakub Jelinek <jakub@redhat.com>
44024
44025 PR rtl-optimization/64536
44026 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
44027 tablejumps.
44028
44029 2015-01-09 Michael Collison <michael.collison@linaro.org>
44030
44031 PR tree-optimization/64322
44032 * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
44033 range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
44034
44035 2015-01-09 Tom de Vries <tom@codesourcery.com>
44036
44037 PR rtl-optimization/64539
44038 * regcprop.c (kill_clobbered_values): Factor out of ...
44039 (copyprop_hardreg_forward_1): ... here. Use kill_clobbered_values
44040 instead of note_stores with kill_clobbered_value.
44041
44042 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
44043
44044 * ginclude/unwind-arm-common.h: Revert previous commit.
44045
44046 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
44047
44048 * config.gcc (arm*-*-freebsd*): New configuration.
44049 * config/arm/freebsd.h: New file.
44050 * config.host: Add extra components for arm*-*-freebsd*.
44051 * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
44052 * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
44053
44054 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
44055
44056 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
44057 for -mcpu=e6500.
44058 * config/rs6000/t-rtems: Add e6500 multilibs.
44059
44060 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
44061
44062 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
44063 MPC8540.
44064
44065 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
44066
44067 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
44068 MULTILIB_EXCEPTIONS.
44069
44070 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
44071
44072 * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
44073 MULTILIB_EXCEPTIONS.
44074
44075 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
44076
44077 * config/arm/t-rtems-eabi: Rename to...
44078 * config/arm/t-rtems: ...this.
44079 * config/arm/rtems-eabi.h: Rename to...
44080 * config/arm/rtems.h: ...this.
44081 * config.gcc (arm*-*-rtems*): Reflect changes above.
44082
44083 2015-01-09 Richard Biener <rguenther@suse.de>
44084
44085 PR tree-optimization/64410
44086 * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
44087 on the LHS.
44088 (execute_update_addresses_taken): Deal with that.
44089 * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
44090 loads/stores for complex variables.
44091
44092 2015-01-09 Martin Liska <mliska@suse.cz>
44093
44094 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
44095 name comparison.
44096 (func_checker::compare_memory_operand): New function.
44097 (func_checker::compare_operand): Split case to newly
44098 added functions.
44099 (func_checker::compare_cst_or_decl): New function.
44100 (func_checker::compare_gimple_call): Identify
44101 memory operands.
44102 (func_checker::compare_gimple_assign): Likewise.
44103 * ipa-icf-gimple.h: New function.
44104
44105 2015-01-09 Martin Liska <mliska@suse.cz>
44106
44107 PR ipa/64503
44108 * sreal.c (sreal::dump): Change unsigned format to signed for
44109 m_exp value.
44110 (sreal::to_double): Replace exp2 with scalbln.
44111
44112 2015-01-09 Martin Liska <mliska@suse.cz>
44113
44114 * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
44115 * ipa-icf.c (sem_function::equals_private): Add support for target and
44116 (sem_item_optimizer::merge_classes): Remove redundant function
44117 optimization flags comparison.
44118 * tree.h (target_opts_for_fn): New function.
44119
44120 2015-01-09 Tom de Vries <tom@codesourcery.com>
44121
44122 * omp-low.c (expand_omp_for_static_chunk): Fix assert.
44123
44124 2015-01-09 Kito Cheng <kito@0xlab.org>
44125
44126 PR rtl-optimization/64348
44127 * lra-constraints.c (split_reg): Fix caller-save store/restore
44128 instruction generation.
44129
44130 2015-01-08 John David Anglin <danglin@gcc.gnu.org>
44131
44132 PR gcov-profile/61790
44133 * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
44134 long long. Fallback to int64_t if host doesn't have long long and
44135 use strtol if int64_t is long. Otherwise, use sscanf for conversion.
44136
44137 2015-01-08 Jakub Jelinek <jakub@redhat.com>
44138
44139 PR tree-optimization/63989
44140 * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
44141 from 1000 to 10000.
44142 * tree-ssa-strlen.c (get_strinfo): Moved earlier.
44143 (get_stridx): If we don't have a record for certain SSA_NAME,
44144 but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
44145 constant offset, call get_stridx_plus_constant.
44146 (get_stridx_plus_constant): New function.
44147 (zero_length_string): Don't use get_stridx here.
44148
44149 PR target/55023
44150 PR middle-end/64388
44151 * dse.c (struct insn_info): Mention frame_read set also
44152 before reload for tail calls on some targets.
44153 (scan_insn): Revert 2014-12-22 change. Set frame_read
44154 also before reload for tail calls if
44155 HARD_FRAME_POINTER_IS_ARG_POINTER. Call add_wild_read
44156 instead of add_non_frame_wild_read for non-const/memset
44157 tail calls after reload.
44158
44159 2015-01-08 Jason Merrill <jason@redhat.com>
44160
44161 * ubsan.c (do_ubsan_in_current_function): New.
44162 (pass_ubsan::gate): Use it.
44163 * ubsan.h: Declare it.
44164 * convert.c (convert_to_integer): Use it.
44165
44166 2015-01-08 Jakub Jelinek <jakub@redhat.com>
44167
44168 PR target/64338
44169 * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
44170 compare_code when it is unconditionally overwritten afterwards.
44171 Use ix86_reverse_condition instead of reverse_condition. Don't
44172 change code if *reverse_condition* returned UNKNOWN and don't
44173 swap ct/cf and negate diff in that case.
44174
44175 2015-01-08 Mike Stump <mikestump@comcast.net>
44176
44177 * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
44178 (pass_tsan_O0::gate): Likewise.
44179 * extend.texi (Function Attributes): Add no_sanitize_thread
44180 documentation.
44181
44182 2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
44183
44184 * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
44185 for registering builtins.
44186 * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
44187 add -fopenmp to the argv_obstack used when invoking
44188 compile_for_target.
44189
44190 * config/i386/intelmic-mkoffload.c (compile_for_target): Always
44191 add "-m32" or "-m64" to argv_obstack.
44192 (generate_host_descr_file): Likewise, when invoking host_compiler.
44193 (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
44194 ld.
44195
44196 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
44197
44198 * config/sh/sh-mem.cc: Use constant as second operand when emitting
44199 tstsi_t insns.
44200
44201 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
44202
44203 PR target/55212
44204 * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
44205 constant load if constant operand fits into I08.
44206
44207 2015-01-08 Jakub Jelinek <jakub@redhat.com>
44208
44209 PR sanitizer/64336
44210 * tree.c (build2_stat): Fix up initialization of TREE_READONLY
44211 and TREE_THIS_VOLATILE for MEM_REFs.
44212 (build5_stat): Fix up initialization of TREE_READONLY and
44213 TREE_THIS_VOLATILE for TARGET_MEM_REFs.
44214
44215 2015-01-08 Kaz Kojima <kkojima@gcc.gnu.org>
44216
44217 PR target/64533
44218 * config/sh/sh.md (*addsi3_compact): Use u constraint instead
44219 of r for the second alternative of the destination operand.
44220
44221 2015-01-07 Segher Boessenkool <segher@kernel.crashing.org>
44222
44223 PR target/36557
44224 * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
44225
44226 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
44227
44228 * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
44229 keywords.
44230 ([-fivar-visibility], [-fvisibility]): Likewise.
44231
44232 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
44233
44234 * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
44235 the file where @code, @command, etc is more appropriate.
44236
44237 2015-01-06 Sandra Loosemore <sandra@codesourcery.com>
44238
44239 * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
44240 of -mrecip= documentation.
44241
44242 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
44243
44244 PR target/64505
44245 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
44246 correct reload handler if -m32 -mpowerpc64 is used.
44247
44248 2015-01-06 Tom de Vries <tom@codesourcery.com>
44249
44250 * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
44251
44252 2015-01-08 Christian Bruel <christian.bruel@st.com>
44253
44254 PR target/64507
44255 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
44256
44257 2015-01-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
44258
44259 PR tree-optimization/63259
44260 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
44261 if optab exists for 16bit byteswap.
44262
44263 2015-01-06 Jakub Jelinek <jakub@redhat.com>
44264
44265 * opts.c (common_handle_option): Add support for
44266 -fno-sanitize=all and -f{,no-}sanitize-recover=all.
44267 * doc/invoke.texi: Document -fno-sanitize=all,
44268 -f{,no-}sanitize-recover=all. Document that
44269 -fsanitize=float-cast-overflow is not enabled
44270 by -fsanitize=undefined. Fix up documentation
44271 of -f{,no-}sanitize-recover.
44272
44273 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
44274
44275 * config.gcc: Add Visium support.
44276 * configure.ac: Likewise.
44277 * configure: Regenerate.
44278 * doc/extend.texi (interrupt attribute): Add Visium.
44279 * doc/invoke.texi: Document Visium options.
44280 * doc/install.texi: Document Visium target.
44281 * doc/md.texi: Document Visium constraints.
44282 * common/config/visium: New directory.
44283 * config/visium: Likewise.
44284
44285 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
44286
44287 * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
44288 for the "(and X (ior (not X) Y) -> (and X Y)" transform.
44289
44290 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
44291
44292 * combine.c (combine_validate_cost): Do not count the cost of a
44293 split I2 twice. Do not display it twice in the dump, either.
44294
44295 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
44296
44297 Revert parts of r219199.
44298 * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
44299 <inttypes.h>.
44300 ([-Wtraditional]): Restore markup on <limits.h>.
44301
44302 2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
44303
44304 PR c++/31397
44305 * doc/invoke.texi: Document -Wsuggest-override.
44306
44307 2015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com>
44308
44309 PR rtl-optimization/64287
44310 * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
44311 (process_options): Disable flag_ipa_ra if profiling.
44312
44313 2015-01-05 Eric Botcazou <ebotcazou@adacore.com>
44314
44315 * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
44316
44317 2015-01-05 Max Filippov <jcmvbkbc@gmail.com>
44318
44319 * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
44320 hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
44321 put under #if TARGET_LOOPS guard.
44322
44323 2015-01-05 Uros Bizjak <ubizjak@gmail.com>
44324
44325 * config/i386/i386.c (output_387_binary_op): Use std::swap.
44326
44327 2015-01-05 Oleg Endo <olegendo@gcc.gnu.org>
44328
44329 * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
44330 * rtl.h (refers_to_regno_p): Add overload.
44331 * cse.c: Use it.
44332 * bt-load.c: Likewise.
44333 * combine.c: Likewise.
44334 * df-scan.c: Likewise.
44335 * sched-deps.c: Likewise.
44336 * config/s390/s390.c: Likewise.
44337 * config/m32r/m32r.c: Likewise.
44338 * config/rs6000/spe.md: Likewise.
44339 * config/rs6000/rs6000.c: Likewise.
44340 * config/pa/pa.c: Likewise.
44341 * config/stormy16/stormy16.c: Likewise.
44342 * config/cris/cris.c: Likewise.
44343 * config/arc/arc.md: Likewise.
44344 * config/arc/arc.c: Likewise.
44345 * config/sh/sh.md: Likewise.
44346 * config/sh/sh.c: Likewise.
44347 * config/frv/frv.c: Likewise.
44348
44349 2015-01-05 Jakub Jelinek <jakub@redhat.com>
44350
44351 PR sanitizer/64265
44352 * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
44353 call as cleanup of the whole body.
44354 * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
44355 * tsan.c (replace_func_exit): New function.
44356 (instrument_func_exit): Moved earlier.
44357 (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
44358 Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
44359 been found.
44360 (tsan_pass): Don't call instrument_func_exit.
44361 * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
44362 * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
44363 inlining.
44364
44365 PR sanitizer/64344
44366 * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
44367 * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
44368 it to libubsan handler instead of EXPR. Fold comparisons earlier,
44369 if the result is integer_zerop, return NULL_TREE.
44370 * convert.c (convert_to_integer): Pass expr as ARG.
44371
44372 PR tree-optimization/64465
44373 * tree-inline.c (redirect_all_calls): During inlining
44374 clean up EH stmts and EH edges if redirect_call_stmt_to_callee
44375 changed the stmt to a non-throwing call.
44376
44377 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
44378
44379 * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
44380 etc markup throughout the file.
44381
44382 2015-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
44383
44384 Enable experimental TSAN support for Ada.
44385 * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
44386
44387 2015-01-05 Jakub Jelinek <jakub@redhat.com>
44388
44389 PR tree-optimization/64494
44390 * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
44391 clear SSA_NAME_ANTI_RANGE_P flag.
44392
44393 2015-01-05 Marek Polacek <polacek@redhat.com>
44394
44395 * doc/extend.texi (Arrays of Length Zero): Add missing comma.
44396
44397 2015-01-05 Jakub Jelinek <jakub@redhat.com>
44398
44399 Update copyright years.
44400
44401 * gcc.c (process_command): Update copyright notice dates.
44402 * gcov-dump.c: Ditto.
44403 * gcov.c: Ditto.
44404 * doc/cpp.texi: Bump @copying's copyright year.
44405 * doc/cppinternals.texi: Ditto.
44406 * doc/gcc.texi: Ditto.
44407 * doc/gccint.texi: Ditto.
44408 * doc/gcov.texi: Ditto.
44409 * doc/install.texi: Ditto.
44410 * doc/invoke.texi: Ditto.
44411
44412 * auto-profile.c, auto-profile.h: Fix up Copyright line.
44413
44414 2015-01-04 Sandra Loosemore <sandra@codesourcery.com>
44415
44416 * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
44417 verb tense, etc.
44418 ([-fvtable-verify], [-fvtv-debug]): Likewise.
44419 ([-Wabi]): Likewise.
44420 ([-fmessage-length]): Likewise.
44421 ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
44422 ([-Wno-discarded-qualifiers]): Likewise.
44423 ([-Wnodiscarded-array-qualifiers]): Likewise.
44424 ([-Wno-virtual-move-assign]): Likewise.
44425 ([-fsanitize=address], [-fsanitize=thread]): Likewise.
44426 ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
44427 ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
44428 ([-fsanitize-undefined-trap-on-error]): Likewise.
44429 ([-floop-interchange]): Likewise.
44430 ([-ftree-coalesce-inlined-vars]): Likewise.
44431 ([-fvect-cost-model]): Likewise.
44432 ([-flto]): Likewise.
44433 ([--param]): Likewise.
44434 (Spec Files): Likewise.
44435 ([-mstrict-align]): Likewise.
44436 ([-mfix-cortex-a53-835769]): Likewise.
44437 ([-march], [-mtune]): Likewise.
44438 ([-mpic-register]): Likewise.
44439 ([-munaligned-access]): Likewise.
44440 ([-msp8]): Likewise.
44441 (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
44442 (AVR Built-in Macros): Likewise.
44443 ([-mpreferred-stack-boundary]): Likewise.
44444 ([-mtune-crtl]): Likewise.
44445 ([-mashf]): Likewise.
44446 ([-mmcu=]): Likewise.
44447 ([-minrt]): Likewise.
44448 ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
44449 ([-mupper-regs]): Likewise.
44450 ([-matomic-model]): Likewise.
44451 ([-mdiv]): Likewise.
44452 ([-mzdcbranch]): Likewise.
44453 ([-mdisable-callt]): Likewise.
44454 ([-msoft-float]): Likewise.
44455 ([-m8byte-align]): Likewise.
44456 ([-fstack-reuse]): Likewise.
44457
44458 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
44459
44460 * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
44461 Fix markup, light copy-editing.
44462 ([-fauto-profile]): Rewrite to fix formatting and content
44463 problems.
44464
44465 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
44466
44467 * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
44468 Copy-edit description.
44469 ([-fisolate-erroneous-paths-attribute]): Likewise.
44470 * common.opt (fisolate-erroneous-paths-dereference):
44471 Copy-edit description.
44472 (fisolate-erroneous-paths-attribute): Likewise.
44473
44474 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
44475
44476 * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
44477 tidy grammar.
44478
44479 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
44480
44481 * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
44482 ([-fvtv-debug]): Likewise.
44483 ([-Wc++-compat]): Likewise.
44484 ([-Wc++11-compat]): Likewise.
44485 ([-Wc++14-compat]): Likewise.
44486 ([-Wno-sized-deallocation]): Likewise.
44487 ([-femit-class-debug-always]): Likewise.
44488 ([-femit-struct-debug-detailed]): Likewise.
44489 ([-fno-keep-inline-dllexport]): Likewise.
44490 ([-fira-algorithm]): Likewise.
44491 ([-fira-region]): Likewise.
44492 ([-flra-remat]): Likewise.
44493 ([-fipa-ra]): Likewise.
44494 ([-fhoist-adjacent-loads]): Likewise.
44495 ([-fisolate-erroneous-paths-dereference]): Likewise.
44496 ([-fisolate-erroneous-paths-attribute]): Likewise.
44497 ([-ftree-switch-conversion]): Likewise.
44498 ([-ftree-tail-merge]): Likewise.
44499 ([-ftree-loop-if-convert]): Likewise.
44500 ([-ftree-loop-if-convert-stores]): Likewise.
44501 ([-ftree-loop-distribution]): Likewise.
44502 ([-ftree-loop-distribute-patterns]): Likewise.
44503 ([-flto-compression-level]): Likewise.
44504 ([-flto-report]): Likewise.
44505 ([-flto-report-wpa]): Likewise.
44506 ([-fuse-linker-plugin]): Likewise.
44507 ([-mfix-cortex-a53-835769]): Likewise.
44508 ([-mno-fix-cortex-a53-835769]): Likewise.
44509 ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
44510 explicit listing; add a note to the discussion indicating they
44511 exist. Reorder table to group similar options. Add missing
44512 @opindex entries. Add @need commands throughout the table to
44513 allow it to be split across multiple pages.
44514 ([-m8bit-idiv]): Fix @opindex.
44515 ([-mavx256-split-unaligned-load]): Likewise.
44516 ([-mavx256-split-unaligned-store]): Likewise.
44517 ([-mstack-protector-guard]): Likewise.
44518 ([-mcpu=]): Likewise.
44519 ([-mcpu]): Likewise.
44520 ([-mpointer-size=]): Likewise.
44521
44522 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
44523
44524 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
44525 instead of `m' constraint. Likewise for unnamed movb comparison
44526 patterns using reg_before_reload_operand predicate.
44527 * config/pa/predicates.md (reg_before_reload_operand): Tighten
44528 predicate to reject register index and LO_SUM DLT memory forms
44529 after reload.
44530
44531 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
44532
44533 * doc/invoke.texi (Option Summary): Fix spelling of
44534 -fdevirtualize-at-ltrans.
44535 ([-fdevirtualize]): Fix markup.
44536 ([-fdevirtualize-speculatively]): Fix typo.
44537 ([-fdevirtualize-at-ltrans]): Likewise. Make description less
44538 implementor-speaky.
44539 * common.opt (fdevirtualize-at-ltrans): Likewise.
44540 * ipa-devirt.c: Fix typos in comments throughout the file.
44541 (ipa_devirt): Fix typos in format strings for dump output.
44542
44543 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
44544
44545 * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
44546 discussion of defaults, light copy-editing.
44547
44548 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
44549
44550 * tsan.c (instrument_expr): corrected previous checkin.
44551
44552 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
44553
44554 Instrument bit field and unaligned accesses for TSAN.
44555 * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
44556 (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
44557 * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
44558 Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
44559 unaligned memory regions.
44560
44561 2015-01-01 Anthony Green <green@moxielogic.com>
44562
44563 * config/moxie/predicates.md (moxie_general_movsrc_operand):
44564 Restrict move source register offsets to 16 bits.
44565 \f
44566 Copyright (C) 2015 Free Software Foundation, Inc.
44567
44568 Copying and distribution of this file, with or without modification,
44569 are permitted in any medium without royalty provided the copyright
44570 notice and this notice are preserved.